Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Diagrammi di flusso
Prof. E. Clementini
Sviluppo di algoritmi
Quali sono i passi elementari? Livello di programmazione ad alto livello,
quello a basso livello è molto più semplice.
Algoritmo:
1. Leggi i due numeri;
2. Fai il prodotto di essi;
3. Scrivi il risultato.
24/09/2021 Fondamenti di Informatica - Prof. Clementini 2
Le variabili
• Permettono il riferimento alla
memoria del calcolatore senza
gestire direttamente gli
indirizzi A
• Sono nomi simbolici B
• Una variabile contiene un
valore
• Il valore di una variabile
appartiene a un tipo, ad
esempio numeri interi
24/09/2021 Fondamenti di Informatica - Prof. Clementini 3
Le variabili
• In una variabile possiamo inserire
un valore
• Da una variabile possiamo
prelevare un valore
• Una variabile inizialmente possiede
un valore indeterminato
• Una variabile contiene un valore
finché non sovrascritto da un altro
valore
24/09/2021 Fondamenti di Informatica - Prof. Clementini 4
Istruzione di lettura
• Consente di memorizzare in una variabile un valore
proveniente dalla tastiera
• La indichiamo con:
Leggi A
Leggi B
• La indichiamo con:
A=B
A = C+D
• La indichiamo con:
Scrivi A
Scrivi "ciao"
1. Leggi A;
2. Leggi B;
4. Scrivi MAX.
flusso
A uscita
A>B confronto
C=A*B
istruzione A B C
A
Leggi A
B Leggi B
C=A*B
C=A*B
Scrivi C
C
MAX=A MAX=B
Scrivi MAX
MAX
Leggi B
B
• Somma di n numeri
• la somma di n numeri può
essere ottenuta X
aggiungendo ogni volta un
nuovo numero ad una
somma parziale S=S+X
• Istruzioni da ripetere:
I. Leggi X; Si somma il contenuto della variabile S alla variabile X sovrascrivendo il
II. S=S+X; valore. Quando si effettua la sovrascrizione si perdono i valori precedenti
ma non ci interessano. Ripetendo queste istruzioni si ottiene il risultato che
si vuole, si iterano queste istruzioni n volte perchè n sono i numeri da
sommare
24/09/2021 Fondamenti di Informatica - Prof. Clementini 22
Somma di n numeri
• Come contiamo le iterazioni?
• Con una variabile “contatore”
• La chiamiamo I
• Aggiungiamo una variabile che indica
quanti numeri si devono sommare in
totale
• La chiamiamo N
S=S+X
I=I+1
istruzione N I S X
Leggi N 0
I=1 1
S=0 0
I<=N false
Scrivi S
I=1
Leggi X 24
S=0 S=S+X 24
I<=N false I=I+1 2
true
X
S
I<=N
S=S+X
false
I=I+1
Scrivi S
24/09/2021 Fondamenti di Informatica - Prof. Clementini 27
Sequenze esecutive
• Sequenza istruzione
Leggi N
N
2
I S X
esecutiva n. 3 I=1 1
S=0 0
(per N=2): I<=N true
Leggi X 24
N S=S+X 24
I=1 I=I+1 2
S=0 I<=N true
I<=N false
Leggi X 7
true S
S=S+X 31
X I=I+1 3
S=S+X I<=N false
I=I+1 Scrivi S
true
X=1
Fino a quando X!=0 si ha che il ciclo continua a
S=0 fare la somma, in questo caso per entrare nel
ciclo per entrare nel ciclo si effettua un "
trucchetto" inizializzando X=1 per entrare nel
ciclo.
X!=0 false
Quando si hanno le letture, è il momento di
true S interazione con l'utente. Ovviamente per
terminare il programma con 0 il programmatore
X deve inserire un avviso in cui esplicita il fatto che
per finire il programma bisogna inserire 0.
S=S+X
S=0
X!=0 false
true S
S=S+X
i) leggi x;
ii)se x > max allora max=x
altrimenti max=max
I<=N false
true MAX
X
MAX=X MAX=MAX
I=I+1
soluzione X
MAX=X
I=I+1
(A=B) AND
true (B=C) false
"equilatero" (A=B)
OR (B=C) OR
true (A=C) false
"isoscele" "scaleno"
i< esponente
true false
potenza =
potenza * base
potenza
i=i+1
• approccio semplificato 1:
– l’ingresso di ogni cifra avviene in ordine inverso rispetto al numero
dato, in modo da evitare il calcolo diretto della potenza
n −1
i )
( c b i
i =0
base
I=1
potenza=1
valore=0
I<=N false
true
valore
cifra
valore=valore+
cifra*potenza
potenza=
potenza*base
I=I+1
base
I=1
potenza=1
valore=0
I<=N false
true
valore
cifra
valore=valore+
cifra*potenza
potenza=
potenza*base
I=I+1
• approccio semplificato 2:
– l’ingresso di ogni cifra avviene nello stesso ordine rispetto al numero
dato, utilizzando la formula di Horner
base
valore=0
I=1
I<=N false
true valore
cifra
valore=valore*
base+cifra
I=I+1
base
valore=0
I=1
I<=N false
true valore
cifra
valore=valore*
base+cifra
I=I+1
quoziente
false
!=0
true
resto=
quoziente MOD base
resto
quoziente=
quoziente DIV base
numero
base
quoziente=
numero
quoziente
false
!=0
true
resto=
quoziente MOD base
resto
quoziente=
quoziente DIV base
• Moltiplicazioni successive:
– Si moltiplica la parte frazionaria data
per la base, ottenendo un numero
frazionario, di cui si considera parte
intera e parte frazionaria
– Si continua a moltiplicare la parte
frazionaria per la base ottenendo L'operatore int(x) restituisce la parte intera,
sempre una parte frazionaria e una mnetre frac(x) la parte frazionaria
intera. Ci si arresta quando la parte
frazionaria è zero oppure si raggiunge
la precisione voluta.
– Il risultato è la sequenza di parti intere
ottenuta
I<=N
false
true
X
X==0 true
false
S=S+X
I=I+1