23
Fondamenti di Informatica Fondamenti di Informatica ---- R.GaetaR.Gaeta
Esempio: somma di due numeri• Scrivere l’algoritmo che esegue la somma di due numeri
<HTML><HEAD><TITLE>ESEMPIO: somma di due numeri</TITLE></HEAD><BODY>
<SCRIPT><!-- Inizio script JavaScript
var X;var Y;var Z;
X = window.prompt("Inserisci il primo numero");Y = window.prompt("Inserisci il secondo numero");X = X*1; Y=Y*1;
Z = X + Y;
window.alert("Somma = " + Z);// Fine script --></SCRIPT></BODY></HTML>
24
Fondamenti di Informatica Fondamenti di Informatica ---- R.GaetaR.Gaeta
Esempio: massimo tra due numeri
Dati due numeri, dire qual è il massimo tra i due.
startread Xread Yif (X > Y) then
max := Xelse
max := Yend ifwrite max
endend
read X
read Y
start
X > Yvero falso
write max
max := X max := Y
25
Fondamenti di Informatica Fondamenti di Informatica ---- R.GaetaR.Gaeta
Esempio: massimo tra due numeri<HTML><HEAD><TITLE>ESEMPIO: massimo tra due numeri</TITLE></HEAD><BODY><SCRIPT><!-- Inizio script JavaScriptvar X;var Y;var max;X = window.prompt("Inserisci il primo numero");Y = window.prompt("Inserisci il secondo numero");X = X*1; Y=Y*1;if (X>Y){max = X;
}else{max = Y;
}window.alert("Massimo = " + max);// Fine script --></SCRIPT></BODY></HTML>
26
Fondamenti di Informatica Fondamenti di Informatica ---- R.GaetaR.Gaeta
Strutture di controllo: iterazione
……azioniwhile (condizione logica)
azioni da ripetereend whileazioni seguenti ……
condizionelogica
azioni seguenti
azioni daripetere
vero
falso
azioni
27
Fondamenti di Informatica Fondamenti di Informatica ---- R.GaetaR.Gaeta
Iterazioni while
• Istruzione “while”while (condizione logica)
{
azioni da ripetere
}
• Se il blocco di istruzioni contengono una sola istruzione le parentesi graffe non sono necessarie (ma voi usatele comunque!)
• Come al solito le istruzioni vanno sempre terminate con un punto e virgola
28
Fondamenti di Informatica Fondamenti di Informatica ---- R.GaetaR.Gaeta
Esercizio: massimo di una sequenza
startmax := -1read numerowhile (numero > 0)
if (numero > max) thenmax := numero
end ifread numero
end whilewrite max
end
end
read numero
start
vero
falso
max := -1
numero >0 write max
numero > max
max := numero
read numero
vero
falso
29
Fondamenti di Informatica Fondamenti di Informatica ---- R.GaetaR.Gaeta
Esercizio: massimo di una sequenza<HTML><HEAD><TITLE>ESEMPIO: massimo tra due numeri</TITLE></HEAD><BODY><SCRIPT><!-- Inizio script JavaScriptvar numero;var max;
max = -1;numero = window.prompt("Inserisci un numero");numero = numero * 1;while (numero > 0){if (numero > max){max = numero;
}numero = window.prompt("Inserisci un numero");numero = numero * 1;
}window.alert("Massimo = " + max);// Fine script --></SCRIPT></BODY></HTML>
30
Fondamenti di Informatica Fondamenti di Informatica ---- R.GaetaR.Gaeta
Esercizio: massimo di una sequenzastart
max := -1read numerowhile (numero <> 0)
if (numero < 0) thenwrite “solo positivi!!”
elseif (numero > max) then
max := numeroend if
end ifread numero
end whilewrite max
end
end
read numero
start
vero
falso
max := -1
numero <> 0 write max
numero > max
max := numero
read numero
vero
falso
write "solo positivi!!"
numero < 0vero
falso
31
Fondamenti di Informatica Fondamenti di Informatica ---- R.GaetaR.Gaeta
Esercizio: massimo di una sequenza<HTML><HEAD><TITLE>ESEMPIO: massimo di una sequenza</TITLE></HEAD><BODY><SCRIPT><!-- Inizio script JavaScriptvar numero;var max;max = -1;numero = window.prompt("Inserisci un numero");numero = numero * 1;while (numero != 0){if (numero < 0){window.alert("Solo numeri positivi!");
}else {if (numero > max){max = numero;
}}
numero = window.prompt("Inserisci un numero");numero = numero * 1;
}window.alert("Massimo = " + max);// Fine script --></SCRIPT></BODY></HTML>
32
Fondamenti di Informatica Fondamenti di Informatica ---- R.GaetaR.Gaeta
Esercizio: moltiplicazione
end
read A,B
start
vero
falso
P := 0
A <> 0 write P
P := P + B
vero
falso
A := A / 2
B := B * 2
A è dispari
startP := 0read A,Bwhile (A <> 0)
if (A è dispari) thenP := P + B
end ifA := A / 2B := B * 2
end whilewrite P
end
33
Fondamenti di Informatica Fondamenti di Informatica ---- R.GaetaR.Gaeta
Esercizio: moltiplicazione<HTML><HEAD><TITLE>ESEMPIO: moltiplicazione</TITLE></HEAD><BODY><SCRIPT><!-- Inizio script JavaScriptvar P;var A;var B;A = window.prompt("Inserisci il primo fattore");A = A * 1;B = window.prompt("Inserisci il secondo fattore");B = B * 1;while (A != 0){if (A%2 == 1){P = P + B;
}A = A / 2;B = B * 2;
}window.alert("Prodotto = " + P);// Fine script --></SCRIPT></BODY></HTML>
34
Fondamenti di Informatica Fondamenti di Informatica ---- R.GaetaR.Gaeta
Esercizio: moltiplicazione<HTML><HEAD><TITLE>ESEMPIO: moltiplicazione</TITLE></HEAD><BODY><SCRIPT><!-- Inizio script JavaScriptvar P;var A;var B;P = 0;A = window.prompt("Inserisci il primo fattore");A = A * 1;B = window.prompt("Inserisci il secondo fattore");B = B * 1;while (A != 0){if (A%2 == 1){P = P + B;
}A = Math.floor(A / 2);B = B * 2;
}window.alert("Prodotto = " + P);// Fine script --></SCRIPT></BODY></HTML>
35
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
36
Fondamenti di Informatica Fondamenti di Informatica ---- R.GaetaR.Gaeta
Esercizio: dispari-pari<HTML><HEAD><TITLE>ESEMPIO: pari o dispari</TITLE></HEAD><BODY><SCRIPT><!-- Inizio script JavaScriptvar N;
N = window.prompt("Inserisci il numero");N = N * 1;while (N > 1){N = N - 2;
}if (N==0){window.alert("Il numero è pari");
}else{window.alert("Il numero è dispari");
}// Fine script --></SCRIPT></BODY></HTML>
37
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
38
Fondamenti di Informatica Fondamenti di Informatica ---- R.GaetaR.Gaeta
Esercizio: dispari-pari (controllo input)<HTML><HEAD><TITLE>ESEMPIO: pari o dispari</TITLE></HEAD><BODY><SCRIPT><!-- Inizio script JavaScriptvar N;N = window.prompt("Inserisci il numero");N = N * 1;if (N < 0){N = -N;
}while (N > 1){N = N - 2;
}if (N==0){window.alert("Il numero è pari");
}else{window.alert("Il numero è dispari");
}// Fine script --></SCRIPT></BODY></HTML>
39
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
40
Fondamenti di Informatica Fondamenti di Informatica ---- R.GaetaR.Gaeta
Esercizio: minimo di una sequenza di K numeri
var K;var numero;var min;var inseriti;
K = window.prompt("Inserisci la lunghezza della sequenza");K = K * 1;numero = window.prompt("Inserisci un numero");numero = numero * 1;min = numero;inseriti = 1;while (inseriti < K){numero = window.prompt("Inserisci un numero");numero = numero * 1;if (numero < min){min = numero;
}inseriti = inseriti + 1;
}window.alert("Minimo = " + min);
41
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
42
Fondamenti di Informatica Fondamenti di Informatica ---- R.GaetaR.Gaeta
Esercizio: minimo di una sequenza di K numeri (controllo input)
var K;var numero;var min;var inseriti;K = window.prompt("Inserisci la lunghezza della sequenza");K = K * 1;if (K <= 0){window.alert("K deve essere positivo!");
}else{numero = window.prompt("Inserisci un numero");numero = numero * 1;min = numero;inseriti = 1;while (inseriti < K){numero = window.prompt("Inserisci un numero");numero = numero * 1;if (numero < min){min = numero;
}inseriti = inseriti + 1;
}window.alert("Minimo = " + min);
}
43
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
44
Fondamenti di Informatica Fondamenti di Informatica ---- R.GaetaR.Gaeta
Esercizio: elevamento a potenza<HTML><HEAD><TITLE>ESEMPIO: elevamento a potenza</TITLE></HEAD><BODY><SCRIPT><!-- Inizio script JavaScriptvar potenza;var B;var E;
potenza = 1;B = window.prompt("Inserisci la base");B = B * 1;E = window.prompt("Inserisci l'esponente");E = E * 1;
while (E > 0){potenza = potenza * B;E = E - 1;
}window.alert("Risultato = " + potenza);// Fine script --></SCRIPT></BODY></HTML>
45
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
46
Fondamenti di Informatica Fondamenti di Informatica ---- R.GaetaR.Gaeta
Esercizio: elevamento a potenza (controllo input)
var potenza;var B;var E;
potenza = 1;B = window.prompt("Inserisci la base");B = B * 1;E = window.prompt("Inserisci l'esponente");E = E * 1;
if (E >= 0){while (E > 0){potenza = potenza * B;E = E - 1;
}window.alert("Risultato = " + potenza);
}else{window.alert("Esponente negativo!");
}
47
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
48
Fondamenti di Informatica Fondamenti di Informatica ---- R.GaetaR.Gaeta
Esercizio: fattoriale<HTML><HEAD><TITLE>ESEMPIO: fattoriale</TITLE></HEAD><BODY>
<SCRIPT><!-- Inizio script JavaScript
var fattoriale;var N;
fattoriale = 1; N = window.prompt("Inserisci il numero");N = N * 1;while (N > 0){fattoriale = fattoriale * N;N = N - 1;
}window.alert("Risultato = " + fattoriale);
// Fine script --></SCRIPT></BODY></HTML>
49
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!"
50
Fondamenti di Informatica Fondamenti di Informatica ---- R.GaetaR.Gaeta
Esercizio: fattoriale (controllo input)<HTML><HEAD><TITLE>ESEMPIO: fattoriale</TITLE></HEAD><BODY><SCRIPT><!-- Inizio script JavaScriptvar fattoriale;var N;N = window.prompt("Inserisci il numero");N = N * 1;if (N >= 0){fattoriale = 1; while (N > 0){fattoriale = fattoriale * N;N = N - 1;
}window.alert("Risultato = " + fattoriale);
}else{window.alert("Numero negativo!");
}// Fine script --></SCRIPT></BODY></HTML>