esercizio: dispari-parirossano/didattica/mdams-0708/mdams-12.pdf• il numero n è un numero primo...
TRANSCRIPT
![Page 1: Esercizio: dispari-parirossano/DIDATTICA/MDAMS-0708/mdams-12.pdf• Il numero N è un numero primo se è divisibile solo per 1 e per N • Quindi, per verificare se un numero N è](https://reader030.vdocuments.mx/reader030/viewer/2022040606/5eaf7cfadefbeb22ee7c3432/html5/thumbnails/1.jpg)
94
Fondamenti di Informatica Fondamenti di Informatica ---- R.GaetaR.Gaeta
Esercizio: dispari-pari
startread Nwhile (N > 1)
N := N – 2end whileif (N = 0) then
write “pari”else
write “dispari”end if
end
Dato un numero, verificare se è pari o dispari e stampare il relativo messaggio
end
start
read N
N > 1N := N - 2
N = 0
write "pari" write "dispari"
vero
falso
vero falso
![Page 2: Esercizio: dispari-parirossano/DIDATTICA/MDAMS-0708/mdams-12.pdf• Il numero N è un numero primo se è divisibile solo per 1 e per N • Quindi, per verificare se un numero N è](https://reader030.vdocuments.mx/reader030/viewer/2022040606/5eaf7cfadefbeb22ee7c3432/html5/thumbnails/2.jpg)
95
Fondamenti di Informatica Fondamenti di Informatica ---- R.GaetaR.Gaeta
Esercizio: dispari-pari (controllo input)
startread Nif (N < 0) then
N := -Nend ifwhile (N > 1)
N := N – 2end whileif (N = 0) then
write “pari”else
write “dispari”end if
end
Dato un numero stampare se è pari o dispari
end
start
read N
N > 1N := N - 2
N = 0
write "pari" write "dispari"
vero
falso
vero falso
N < 0 N := -Nvero
falso
![Page 3: Esercizio: dispari-parirossano/DIDATTICA/MDAMS-0708/mdams-12.pdf• Il numero N è un numero primo se è divisibile solo per 1 e per N • Quindi, per verificare se un numero N è](https://reader030.vdocuments.mx/reader030/viewer/2022040606/5eaf7cfadefbeb22ee7c3432/html5/thumbnails/3.jpg)
96
Fondamenti di Informatica Fondamenti di Informatica ---- R.GaetaR.Gaeta
Esercizio: minimo di una sequenza di K numeri
• Si supponga di fornire in input ad un programma un numero K e K interi positivi. Il programma deve restituire il valore minimo tra quelli introdotti.
![Page 4: Esercizio: dispari-parirossano/DIDATTICA/MDAMS-0708/mdams-12.pdf• Il numero N è un numero primo se è divisibile solo per 1 e per N • Quindi, per verificare se un numero N è](https://reader030.vdocuments.mx/reader030/viewer/2022040606/5eaf7cfadefbeb22ee7c3432/html5/thumbnails/4.jpg)
97
Fondamenti di Informatica Fondamenti di Informatica ---- R.GaetaR.Gaeta
Esercizio: minimo di una sequenza di K numeristart
read Kread numeromin := numeroinseriti := 1while (inseriti < K)
read numeroif (numero < min) then
min := numeroend ifinseriti := inseriti + 1
end whilewrite min
end
end
read numero
start
vero
falsoinseriti < K write min
K
min := numero
inseriti := 1
read numero
numero < min
min := numero
inseriti := inseriti + 1
vero
falso
![Page 5: Esercizio: dispari-parirossano/DIDATTICA/MDAMS-0708/mdams-12.pdf• Il numero N è un numero primo se è divisibile solo per 1 e per N • Quindi, per verificare se un numero N è](https://reader030.vdocuments.mx/reader030/viewer/2022040606/5eaf7cfadefbeb22ee7c3432/html5/thumbnails/5.jpg)
98
Fondamenti di Informatica Fondamenti di Informatica ---- R.GaetaR.Gaeta
Esercizio: minimo di una sequenza di K numeri (controllo input)
startread Kif ( K <= 0) then
write “K deve essere positivo!”else
read numeromin := numeroinseriti := 1while (inseriti < K)
read numeroif (numero < min) then
min := numeroend ifinseriti := inseriti + 1
end whilewrite min
end ifend
end
read numero
start
vero
falsoinseriti < K write min
K
min := numero
inseriti := 1
read numero
numero < min
min := numero
inseriti := inseriti + 1
vero
falso
K <= 0 write "K deve essere positivo!"
vero
falso
![Page 6: Esercizio: dispari-parirossano/DIDATTICA/MDAMS-0708/mdams-12.pdf• Il numero N è un numero primo se è divisibile solo per 1 e per N • Quindi, per verificare se un numero N è](https://reader030.vdocuments.mx/reader030/viewer/2022040606/5eaf7cfadefbeb22ee7c3432/html5/thumbnails/6.jpg)
99
Fondamenti di Informatica Fondamenti di Informatica ---- R.GaetaR.Gaeta
Esercizio: elevamento a potenza
Data la base e l’esponente calcolare l’elevamento a potenza
startpotenza := 1read B,Ewhile (E > 0)
potenza := potenza * BE := E - 1
end whilewrite potenza
end
end
read B,E
start
vero
falso
potenza:= 1
E > 0 write potenza
potenza:= potenza * B
E := E -1
![Page 7: Esercizio: dispari-parirossano/DIDATTICA/MDAMS-0708/mdams-12.pdf• Il numero N è un numero primo se è divisibile solo per 1 e per N • Quindi, per verificare se un numero N è](https://reader030.vdocuments.mx/reader030/viewer/2022040606/5eaf7cfadefbeb22ee7c3432/html5/thumbnails/7.jpg)
100
Fondamenti di Informatica Fondamenti di Informatica ---- R.GaetaR.Gaeta
Esercizio: elevamento a potenza (controllo input)
Data la base e l’esponente calcolare l’elevamento a potenzastart
read B,Eif (E >= 0) then
potenza := 1while (E > 0)
potenza := potenza * BE := E - 1
end whilewrite potenza
elsewrite “esponente negativo!”
end ifend
end
read B,E
start
vero
falsoE > 0 write potenza
potenza:= potenza * B
E := E -1
E >= 0vero
falso write"esponentenegativo!"
potenza := 1
![Page 8: Esercizio: dispari-parirossano/DIDATTICA/MDAMS-0708/mdams-12.pdf• Il numero N è un numero primo se è divisibile solo per 1 e per N • Quindi, per verificare se un numero N è](https://reader030.vdocuments.mx/reader030/viewer/2022040606/5eaf7cfadefbeb22ee7c3432/html5/thumbnails/8.jpg)
101
Fondamenti di Informatica Fondamenti di Informatica ---- R.GaetaR.Gaeta
Esercizio: fattoriale
Dato un numero calcolare il suo fattoriale
startfattoriale := 1read Nwhile (N > 0)
fattoriale := fattoriale * NN := N - 1
end whilewrite fattoriale
end
end
read N
start
vero
falso
fattoriale:= 1
N > 0 write fattoriale
fattoriale:= fattoriale * N
N:= N -1
![Page 9: Esercizio: dispari-parirossano/DIDATTICA/MDAMS-0708/mdams-12.pdf• Il numero N è un numero primo se è divisibile solo per 1 e per N • Quindi, per verificare se un numero N è](https://reader030.vdocuments.mx/reader030/viewer/2022040606/5eaf7cfadefbeb22ee7c3432/html5/thumbnails/9.jpg)
102
Fondamenti di Informatica Fondamenti di Informatica ---- R.GaetaR.Gaeta
Esercizio: fattoriale (controllo input)
Dato un numero calcolare il suo fattorialestart
read Nif (N >= 0) then
fattoriale := 1while (N > 0)
fattoriale := fattoriale * NN := N - 1
end whilewrite fattoriale
elsewrite “numero negativo!”
end ifend
end
read N
start
vero
falsoN > 0 write fattoriale
fattoriale:= fattoriale * N
N := N -1
vero
falso
fattoriale:= 1
N >= 0 write"numeronegativo!"
![Page 10: Esercizio: dispari-parirossano/DIDATTICA/MDAMS-0708/mdams-12.pdf• Il numero N è un numero primo se è divisibile solo per 1 e per N • Quindi, per verificare se un numero N è](https://reader030.vdocuments.mx/reader030/viewer/2022040606/5eaf7cfadefbeb22ee7c3432/html5/thumbnails/10.jpg)
103
Fondamenti di Informatica Fondamenti di Informatica ---- R.GaetaR.Gaeta
Esercizio: numero primo
• Dato un numero N scrivere un algoritmo che verifichi se N è un numero primo e stampi un relativo messaggio
• Il numero N è un numero primo se è divisibile solo per 1 e per N
• Quindi, per verificare se un numero N è primo èsufficiente provare a dividerlo per tutti gli interi minori di esso– Se almeno uno di questi interi è un divisore di n allora n non è
primo– Altrimenti n è primo
![Page 11: Esercizio: dispari-parirossano/DIDATTICA/MDAMS-0708/mdams-12.pdf• Il numero N è un numero primo se è divisibile solo per 1 e per N • Quindi, per verificare se un numero N è](https://reader030.vdocuments.mx/reader030/viewer/2022040606/5eaf7cfadefbeb22ee7c3432/html5/thumbnails/11.jpg)
104
Fondamenti di Informatica Fondamenti di Informatica ---- R.GaetaR.Gaeta
Esercizio: numero primostart
read Ndivisore := 2primo := verowhile (divisore < N)
if (N divisibile per divisore) thenprimo := falso
end ifdivisore := divisore + 1
end whileif (primo = vero) then
write “numero primo”else
write “numero non primo”end if
endend
start
vero falsodivisore < N
N
divisore := 2
primo := vero
N divisibeper divisore
primo := falso
divisore := divisore + 1
vero
falso
primo = vero
write"numero primo"
write"numero nonprimo"
vero falso
![Page 12: Esercizio: dispari-parirossano/DIDATTICA/MDAMS-0708/mdams-12.pdf• Il numero N è un numero primo se è divisibile solo per 1 e per N • Quindi, per verificare se un numero N è](https://reader030.vdocuments.mx/reader030/viewer/2022040606/5eaf7cfadefbeb22ee7c3432/html5/thumbnails/12.jpg)
105
Fondamenti di Informatica Fondamenti di Informatica ---- R.GaetaR.Gaeta
Esercizio: numero primo – ottimizzazione Istart
read Ndivisore := 2primo := verowhile (divisore < N and primo = vero)
if (N è divisibile per divisore) thenprimo := falso
end ifdivisore := divisore + 1
end whileif (primo = vero) then
write “numero primo”else
write “numero non primo”end if
endend
start
vero falso
N
divisore := 2
primo := vero
N divisibeper divisore
primo := falso
divisore := divisore + 1
vero
falso
primo = vero
write"numero primo"
write"numero nonprimo"
vero falso
divisore < Nand
primo = vero
![Page 13: Esercizio: dispari-parirossano/DIDATTICA/MDAMS-0708/mdams-12.pdf• Il numero N è un numero primo se è divisibile solo per 1 e per N • Quindi, per verificare se un numero N è](https://reader030.vdocuments.mx/reader030/viewer/2022040606/5eaf7cfadefbeb22ee7c3432/html5/thumbnails/13.jpg)
106
Fondamenti di Informatica Fondamenti di Informatica ---- R.GaetaR.Gaeta
Esercizio: numero primo – ottimizzazione IIstart
read Ndivisore := 2primo := verowhile (divisore < N)
if (N è divisibile per divisore) thenprimo := falsodivisore := N
end ifdivisore := divisore + 1
end whileif (primo = vero) then
write “numero primo”else
write “numero non primo”end if
endend
start
vero falsodivisore < N
N
divisore := 2
primo := vero
N divisibeper divisore
primo := falso
divisore := divisore + 1
vero
falso
primo = vero
write"numero primo"
write"numero nonprimo"
vero falso
divisore := N
![Page 14: Esercizio: dispari-parirossano/DIDATTICA/MDAMS-0708/mdams-12.pdf• Il numero N è un numero primo se è divisibile solo per 1 e per N • Quindi, per verificare se un numero N è](https://reader030.vdocuments.mx/reader030/viewer/2022040606/5eaf7cfadefbeb22ee7c3432/html5/thumbnails/14.jpg)
107
Fondamenti di Informatica Fondamenti di Informatica ---- R.GaetaR.Gaeta
Esercizi
• Produrre un algoritmo che controlla la correttezza dell’input
• Produrre un algoritmo più efficiente di quello di base (più efficiente vuol dire che compie meno operazioni)
![Page 15: Esercizio: dispari-parirossano/DIDATTICA/MDAMS-0708/mdams-12.pdf• Il numero N è un numero primo se è divisibile solo per 1 e per N • Quindi, per verificare se un numero N è](https://reader030.vdocuments.mx/reader030/viewer/2022040606/5eaf7cfadefbeb22ee7c3432/html5/thumbnails/15.jpg)
108
Fondamenti di Informatica Fondamenti di Informatica ---- R.GaetaR.Gaeta
Esercizio: divisibilità
startread DD,DSwhile (DD >= DS)
DD := DD – DSend whileif (DD = 0) then
write “divisibile”else
write “non divisibile”end if
end
Dati un dividendo ed un divisore scrivere un algoritmo che verifichi la divisibilità
end
start
read DD,DS
DD := DD - DS
DD = 0
write "divisibile" write "non divisibile"
vero
falso
vero falso
DD >= DS
![Page 16: Esercizio: dispari-parirossano/DIDATTICA/MDAMS-0708/mdams-12.pdf• Il numero N è un numero primo se è divisibile solo per 1 e per N • Quindi, per verificare se un numero N è](https://reader030.vdocuments.mx/reader030/viewer/2022040606/5eaf7cfadefbeb22ee7c3432/html5/thumbnails/16.jpg)
109
Fondamenti di Informatica Fondamenti di Informatica ---- R.GaetaR.Gaeta
Esercizi
• Produrre un algoritmo che sia corretto per ogni tipologia di dati in ingresso
• Come risolvereste il problema del pari o dispari adesso?
![Page 17: Esercizio: dispari-parirossano/DIDATTICA/MDAMS-0708/mdams-12.pdf• Il numero N è un numero primo se è divisibile solo per 1 e per N • Quindi, per verificare se un numero N è](https://reader030.vdocuments.mx/reader030/viewer/2022040606/5eaf7cfadefbeb22ee7c3432/html5/thumbnails/17.jpg)
110
Fondamenti di Informatica Fondamenti di Informatica ---- R.GaetaR.Gaeta
Esercizio: triangoli
• Scrivere un algoritmo che, date le coordinate di tre punti corrispondenti ai vertici di un triangolo, riconosca se si tratta di un triangolo degenere o no, e nel caso di triangolo non degenere calcoli il suo perimetro
B
A
C
![Page 18: Esercizio: dispari-parirossano/DIDATTICA/MDAMS-0708/mdams-12.pdf• Il numero N è un numero primo se è divisibile solo per 1 e per N • Quindi, per verificare se un numero N è](https://reader030.vdocuments.mx/reader030/viewer/2022040606/5eaf7cfadefbeb22ee7c3432/html5/thumbnails/18.jpg)
111
Fondamenti di Informatica Fondamenti di Informatica ---- R.GaetaR.Gaeta
Esercizio: triangoli – soluzione preliminare
start
end
leggi coordinatedei vertici A,B,C del
triangolo
triangolo degenere
write"triangolo degenere"
calcola la lunghezzadei lati
calcola il perimetro del
triangolo
writeperimetro
vero falso
![Page 19: Esercizio: dispari-parirossano/DIDATTICA/MDAMS-0708/mdams-12.pdf• Il numero N è un numero primo se è divisibile solo per 1 e per N • Quindi, per verificare se un numero N è](https://reader030.vdocuments.mx/reader030/viewer/2022040606/5eaf7cfadefbeb22ee7c3432/html5/thumbnails/19.jpg)
112
Fondamenti di Informatica Fondamenti di Informatica ---- R.GaetaR.Gaeta
Esercizio: triangoli - raffinamentostart
end
write"triangolo degenere"
LAB := distanza(A,B)LBC := distanza(B,C)LCA := distanza(C,A)
perimetro:=LAB+LBC+LCA
writeperimetro
vero falso
leggi coordinatedei vertici A,B,C del
triangolo
(A coincide con B) OR(B coincide con C) OR(C coincide con A) OR(A,B,C sono allineati)
![Page 20: Esercizio: dispari-parirossano/DIDATTICA/MDAMS-0708/mdams-12.pdf• Il numero N è un numero primo se è divisibile solo per 1 e per N • Quindi, per verificare se un numero N è](https://reader030.vdocuments.mx/reader030/viewer/2022040606/5eaf7cfadefbeb22ee7c3432/html5/thumbnails/20.jpg)
113
Fondamenti di Informatica Fondamenti di Informatica ---- R.GaetaR.Gaeta
Esercizio: triangoli – raffinamento ulteriorestart
end
write"triangolo degenere"
perimetro:=LAB+LBC+LCA
writeperimetro
vero falso
read AX,AY,BX,BY,CX,CY
(AX=BX AND AY=BY) OR(BX=CX AND BY=CY) OR(CX=AX AND CY=AY) OR
(A,B,C sono allineati)
LAB := sqrt((AX-BX)*(AX-BX)+(AY-BY)*(AY-BY))LBC := sqrt((BX-CX)*(BX-CX)+(BY-CY)*(BY-CY))LCA := sqrt((CX-AX)*(CX-AX)+(CY-AY)*(CY-AY))
![Page 21: Esercizio: dispari-parirossano/DIDATTICA/MDAMS-0708/mdams-12.pdf• Il numero N è un numero primo se è divisibile solo per 1 e per N • Quindi, per verificare se un numero N è](https://reader030.vdocuments.mx/reader030/viewer/2022040606/5eaf7cfadefbeb22ee7c3432/html5/thumbnails/21.jpg)
114
Fondamenti di Informatica Fondamenti di Informatica ---- R.GaetaR.Gaeta
Esercizio: triangoli
• Se i tre vertici sono allineati allora otteniamo due triangoli rettangoli i cui cateti sono nella stessa proporzione
(AY-BY):(AX-BX)=(AY-CY):(AX-CX)
B
A
C
![Page 22: Esercizio: dispari-parirossano/DIDATTICA/MDAMS-0708/mdams-12.pdf• Il numero N è un numero primo se è divisibile solo per 1 e per N • Quindi, per verificare se un numero N è](https://reader030.vdocuments.mx/reader030/viewer/2022040606/5eaf7cfadefbeb22ee7c3432/html5/thumbnails/22.jpg)
115
Fondamenti di Informatica Fondamenti di Informatica ---- R.GaetaR.Gaeta
Esercizi: triangoli
• In una proporzione il prodotto dei medi è uguale al prodotto degli estremi per cui i tre vertici sono allineati se è vera la condizione logica
(AX-BX)*(AY-CY)=(AY-BY)*(AX-CX)
![Page 23: Esercizio: dispari-parirossano/DIDATTICA/MDAMS-0708/mdams-12.pdf• Il numero N è un numero primo se è divisibile solo per 1 e per N • Quindi, per verificare se un numero N è](https://reader030.vdocuments.mx/reader030/viewer/2022040606/5eaf7cfadefbeb22ee7c3432/html5/thumbnails/23.jpg)
116
Fondamenti di Informatica Fondamenti di Informatica ---- R.GaetaR.Gaeta
Esercizi: triangoli - soluzionestart
end
write"triangolo degenere"
perimetro:=LAB+LBC+LCA
writeperimetro
vero falso
read AX,AY,BX,BY,CX,CY
(AX=BX AND AY=BY) OR(BX=CX AND BY=CY) OR(CX=AX AND CY=AY) OR
(AX-BX)*(AY-CY)=(AY-BY)*(AX-CX)
LAB := sqrt((AX-BX)*(AX-BX)+(AY-BY)*(AY-BY))LBC := sqrt((BX-CX)*(BX-CX)+(BY-CY)*(BY-CY))LCA := sqrt((CX-AX)*(CX-AX)+(CY-AY)*(CY-AY))
![Page 24: Esercizio: dispari-parirossano/DIDATTICA/MDAMS-0708/mdams-12.pdf• Il numero N è un numero primo se è divisibile solo per 1 e per N • Quindi, per verificare se un numero N è](https://reader030.vdocuments.mx/reader030/viewer/2022040606/5eaf7cfadefbeb22ee7c3432/html5/thumbnails/24.jpg)
117
Fondamenti di Informatica Fondamenti di Informatica ---- R.GaetaR.Gaeta
Individuazione di sottoproblemi
• Quando il problema è complesso conviene partire con una individuazione di sottoproblemi
• Scriviamo un algoritmo contenente azioni o condizioni complesse per l’esecutore che dettaglieremo e raffineremo in passaggi successivi per ottenere un algoritmo direttamente eseguibile
• Ognuno dei sottoproblemi potrà essere risolto da un algoritmo a parte che potremo riutilizzare, quando sarànecessario, nella soluzione di ulteriori problemi complessi.
![Page 25: Esercizio: dispari-parirossano/DIDATTICA/MDAMS-0708/mdams-12.pdf• Il numero N è un numero primo se è divisibile solo per 1 e per N • Quindi, per verificare se un numero N è](https://reader030.vdocuments.mx/reader030/viewer/2022040606/5eaf7cfadefbeb22ee7c3432/html5/thumbnails/25.jpg)
118
Fondamenti di Informatica Fondamenti di Informatica ---- R.GaetaR.Gaeta
Individuazione di sottoproblemi: vantaggi
• I dettagli delle diverse soluzioni sono descritti negli algoritmi dei sottoproblemi
• In generale, uno stesso sottoproblema deve essere risolto più volte nella soluzione di un problema principale
• Dagli algoritmi derivano programmi, quindi si possono raccogliere librerie di software da riutilizzare in nuovi programmi
![Page 26: Esercizio: dispari-parirossano/DIDATTICA/MDAMS-0708/mdams-12.pdf• Il numero N è un numero primo se è divisibile solo per 1 e per N • Quindi, per verificare se un numero N è](https://reader030.vdocuments.mx/reader030/viewer/2022040606/5eaf7cfadefbeb22ee7c3432/html5/thumbnails/26.jpg)
119
Fondamenti di Informatica Fondamenti di Informatica ---- R.GaetaR.Gaeta
Esercizio: frazioni
• Scrivere un algoritmo che verifichi se una frazione èapparente o propria
• Sapreste risolverlo senza un’analisi del problema?• Vi ricordate la “FASE 1: Dare un nome al problema
partendo dall’analisi del problema” e la “FASE 2: Scrivere la specifica funzionale”?– apparenti: numeratore multiplo di denominatore– proprie: numeratore minore di denominatore
![Page 27: Esercizio: dispari-parirossano/DIDATTICA/MDAMS-0708/mdams-12.pdf• Il numero N è un numero primo se è divisibile solo per 1 e per N • Quindi, per verificare se un numero N è](https://reader030.vdocuments.mx/reader030/viewer/2022040606/5eaf7cfadefbeb22ee7c3432/html5/thumbnails/27.jpg)
120
Fondamenti di Informatica Fondamenti di Informatica ---- R.GaetaR.Gaeta
Esercizio: MCD
• Scrivere un algoritmo che calcoli il massimo comune divisore di due numeri
• Sapreste risolverlo senza un’analisi del problema?• Vi ricordate la “FASE 1: Dare un nome al problema
partendo dall’analisi del problema” e la “FASE 2: Scrivere la specifica funzionale”?– Il massimo comune divisore di due numeri è il più grande
numero, minore o uguale del più piccolo dei due, che divide entrambi
![Page 28: Esercizio: dispari-parirossano/DIDATTICA/MDAMS-0708/mdams-12.pdf• Il numero N è un numero primo se è divisibile solo per 1 e per N • Quindi, per verificare se un numero N è](https://reader030.vdocuments.mx/reader030/viewer/2022040606/5eaf7cfadefbeb22ee7c3432/html5/thumbnails/28.jpg)
121
Fondamenti di Informatica Fondamenti di Informatica ---- R.GaetaR.Gaeta
Esercizio: anno bisestile
• Scrivere un algoritmo che verifichi se un anno èbisestile producendo un messaggio
• Sapreste risolverlo senza un’analisi del problema?• Vi ricordate la “FASE 1: Dare un nome al problema
partendo dall’analisi del problema” e la “FASE 2: Scrivere la specifica funzionale”?– Un anno è bisestile (ha 366 giorni) se è divisibile per quattro (come
il 1980) e non è divisibile per 100 (ad es. il 1900 non è bisestile). Fanno eccezione gli anni divisibili per 400, che sono bisestili (ad es. il 2000 è bisestile).
– Questa regola non si applica prima del 1582, anno di introduzione del calendario gregoriano.
![Page 29: Esercizio: dispari-parirossano/DIDATTICA/MDAMS-0708/mdams-12.pdf• Il numero N è un numero primo se è divisibile solo per 1 e per N • Quindi, per verificare se un numero N è](https://reader030.vdocuments.mx/reader030/viewer/2022040606/5eaf7cfadefbeb22ee7c3432/html5/thumbnails/29.jpg)
122
Fondamenti di Informatica Fondamenti di Informatica ---- R.GaetaR.Gaeta
Esercizio: busta paga
• Scrivete un algoritmo che calcoli l’importo della busta paga settimanale di un lavoratore sapendo il numero di ore che ha lavorato durante una settimana e la retribuzione oraria
• L’algoritmo deve segnalare l’opportunità di far recuperare al lavoratore delle ore di lavoro se non è stato rispettato l’accordo sindacale che prevede un minimo di 35 ore settimanali
• L’algoritmo deve altresì tenere in conto le ore di straordinario che sono, come da contratto, retribuite il doppio di quelle normali
![Page 30: Esercizio: dispari-parirossano/DIDATTICA/MDAMS-0708/mdams-12.pdf• Il numero N è un numero primo se è divisibile solo per 1 e per N • Quindi, per verificare se un numero N è](https://reader030.vdocuments.mx/reader030/viewer/2022040606/5eaf7cfadefbeb22ee7c3432/html5/thumbnails/30.jpg)
123
Fondamenti di Informatica Fondamenti di Informatica ---- R.GaetaR.Gaeta
Esercizio: poligoni
• Scrivere un algoritmo che, date le coordinate di quattro punti corrispondenti ai vertici di un poligono irregolare, riconosca se si tratta di un quadrato o di un rettangolo e nel caso calcoli la sua area
![Page 31: Esercizio: dispari-parirossano/DIDATTICA/MDAMS-0708/mdams-12.pdf• Il numero N è un numero primo se è divisibile solo per 1 e per N • Quindi, per verificare se un numero N è](https://reader030.vdocuments.mx/reader030/viewer/2022040606/5eaf7cfadefbeb22ee7c3432/html5/thumbnails/31.jpg)
124
Fondamenti di Informatica Fondamenti di Informatica ---- R.GaetaR.Gaeta
Problema: calcolare il massimo tra K numeri
• Scrivere un algoritmo che fornisca in input ad un programma un numero K e K interi positivi. L’algoritmo deve restituire il valore massimo tra quelli introdotti e stampare in ordine inverso i numeri inseriti.
• Sembra un problema già visto:– Si supponga di fornire in input ad un programma un numero K e K
interi positivi. Il programma deve restituire il valore minimo tra quelli introdotti.
• ma non lo è!! Infatti dobbiamo memorizzare tutti i valori inseriti per stampare il primo inserito per ultimo
• Ma quante variabili usiamo?