L`algoritmo e il Flow Chart

Download Report

Transcript L`algoritmo e il Flow Chart

L’algoritmo e il Flow Chart
Etimologia della parola algoritmo
•
•
•
•
La parola algoritmo deriva dal nome
di un matematico arabo Abu Jafar
Muhammad ibn Musa al-Khwārizmī
(Baghdad 780-850 d. C.). AlKhwārizmī si è latinizzato in
algoritmi.
Questi era una figura di spicco
esperto in matematica, geografia,
storia e astronomia.
Egli era originario della Persia.
Le sue opere sono state apprezzate
grazie alla precisione con cui l’autore
riusciva a risolvere le intricatissime
questioni di eredità.
Definizione di algoritmo
•
Un algoritmo è la
descrizione della
procedura di soluzione
relativa a un problema.
•
Il concetto di algoritmo in informatica
è strettamente collegato al concetto
di problema.
Un algoritmo viene definito
informalmente come una sequenza
finita di operazioni elementari che
consentono di trasformare (process) i
valori di input (dati di ingresso) in
valori di output (dati di uscita).
•
Proprietà di un algoritmo
•
Un algoritmo deve essere:
•
•
•
•
•
•
finito;
univoco;
completo.
Finito  un algoritmo deve essere
composto da un numero finito di
passi.
Univoco  un algoritmo deve
prestarsi a una unica interpretazione
(deve essere non ambiguo!).
Completo  un algoritmo deve
prevedere tutti i casi possibili.
Linguaggio naturale algoritmico
•
Il linguaggio algoritmico usa parole
ben precise del linguaggio naturale.
•
•
•
•
•
•
•
•
•
•
•
Inizio
Fine
Leggi
Scrivi
Assegna
Esegui azione
Se condizione allora azione altrimenti azione
Caso valore esegui azione
Esegui azione finché condizione
Finché condizione esegui azione
Per contatore che va da valore iniziale a valore
finale con incremento/decremento di passo n
esegui azione
AUGH!
Linguaggio algoritmico e flow chart
•
Le espressioni verbali del linguaggio
algoritmico corrispondono
biunivocamente ai costrutti
rappresentati graficamente mediante
flow chart.
•
Flow chart e algoritmo corrispondenti si equivalgono.
•
Flow chart e algoritmo sono modelli
differenti per rappresentare la
procedura risolutiva di un problema.
•
•
Un flow chart è un modello grafico
bidimensionale.
Un algoritmo è un modello logico.
Inizio
Leggi A
Assegna a A il
prodotto l*l
Scrivi a
fine
Algoritmo e flow chart
•
Algoritmo e flow chart sono
modellizzazioni differenti dello
stesso concetto:
•
•
•
strategia risolutiva di un
problema.
La risoluzione indica il
procedimento.
La soluzione è il risultato.
Algoritmo e flow chart: inizio
EQUIVALENZA FRA ALGORITMO E FLOW CHART
MODELLO LOGICO
Linguaggio verbale
naturale algoritmico
Inizio
MODELLO GRAFICO
Rappresentazione grafica
bidimensionale flow chart
Algoritmo e flow chart: fine
EQUIVALENZA FRA ALGORITMO E FLOW CHART
MODELLO LOGICO
Linguaggio verbale
naturale algoritmico
fine
MODELLO GRAFICO
Rappresentazione grafica
bidimensionale flow chart
Algoritmo e flow chart: input (leggi)
EQUIVALENZA FRA ALGORITMO E FLOW CHART
MODELLO LOGICO
Linguaggio verbale
naturale algoritmico
leggi dato
MODELLO GRAFICO
Rappresentazione grafica
bidimensionale flow chart
Algoritmo e flow chart: output (scrivi)
EQUIVALENZA FRA ALGORITMO E FLOW CHART
MODELLO LOGICO
Linguaggio verbale
naturale algoritmico
scrivi dato
MODELLO GRAFICO
Rappresentazione grafica
bidimensionale flow chart
Algoritmo e flow chart: esecuzione azione
EQUIVALENZA FRA ALGORITMO E FLOW CHART
MODELLO LOGICO
Linguaggio verbale
naturale algoritmico
esegui azione
MODELLO GRAFICO
Rappresentazione grafica
bidimensionale flow chart
Algoritmo e flow chart: scelta unaria per vero
EQUIVALENZA FRA ALGORITMO E FLOW CHART
MODELLO LOGICO
Linguaggio verbale
naturale algoritmico
se condizione
allora esegui azione
MODELLO GRAFICO
Rappresentazione grafica
bidimensionale flow chart
Algoritmo e flow chart: scelta unaria per falso
EQUIVALENZA FRA ALGORITMO E FLOW CHART
MODELLO LOGICO
Linguaggio verbale
naturale algoritmico
se non condizione
allora esegui azione
MODELLO GRAFICO
Rappresentazione grafica
bidimensionale flow chart
Algoritmo e flow chart: scelta binaria
EQUIVALENZA FRA ALGORITMO E FLOW CHART
MODELLO LOGICO
Linguaggio verbale
naturale algoritmico
se condizione
allora esegui azioneV
altrimenti esegui azioneF
MODELLO GRAFICO
Rappresentazione grafica
bidimensionale flow chart
Algoritmo e flow chart: scelta multipla
EQUIVALENZA FRA ALGORITMO E FLOW CHART
MODELLO LOGICO
Linguaggio verbale
naturale algoritmico
caso
valore1 esegui azione1
valore2 esegui azione2
.
.
valoren esegui azionen
MODELLO GRAFICO
Rappresentazione grafica
bidimensionale flow chart
Algoritmo e flow chart: ciclo condizionale con controllo iniziale per vero
EQUIVALENZA FRA ALGORITMO E FLOW CHART
MODELLO LOGICO
Linguaggio verbale
naturale algoritmico
finchè condizione
esegui azione
MODELLO GRAFICO
Rappresentazione grafica
bidimensionale flow chart
Algoritmo e flow chart: ciclo condizionale con controllo iniziale per falso
EQUIVALENZA FRA ALGORITMO E FLOW CHART
MODELLO LOGICO
Linguaggio verbale
naturale algoritmico
finchè non condizione
esegui azione
MODELLO GRAFICO
Rappresentazione grafica
bidimensionale flow chart
Algoritmo e flow chart: ciclo condizionale con controllo finale per vero
EQUIVALENZA FRA ALGORITMO E FLOW CHART
MODELLO LOGICO
Linguaggio verbale
naturale algoritmico
esegui azione
finchè condizione
MODELLO GRAFICO
Rappresentazione grafica
bidimensionale flow chart
Algoritmo e flow chart: ciclo condizionale con controllo finale per falso
EQUIVALENZA FRA ALGORITMO E FLOW CHART
MODELLO LOGICO
Linguaggio verbale
naturale algoritmico
esegui azione
finchè non condizione
MODELLO GRAFICO
Rappresentazione grafica
bidimensionale flow chart
Algoritmo e flow chart: ciclo enumerativo
EQUIVALENZA FRA ALGORITMO E FLOW CHART
MODELLO LOGICO
Linguaggio verbale
naturale algoritmico
per contatore che va da
valore iniziale a valore finale
con
incremento/decremento
di passo n esegui azione
MODELLO GRAFICO
Rappresentazione grafica
bidimensionale flow chart