Soluzioni esercizi proposti il 26/10/2006
Esercizio 1
program esercizio1;
var
i: integer; {Variabile utilizzata per il contatore}
n: integer; {intero inserito dall'utente}
m: char; {Operazione scelta}
t: integer; {variabile per i risultati}
q: integer; {variabile per il numero perfetto}
begin
i:= 0;
n:= 0;
t:= 0;
write('Inserire un numero intero: ');
readln(n);
writeln;
writeln('*****************************');
writeln('* Scegli un operazione: *');
writeln('*****************************');
writeln;
writeln('p = Esegue la somma dei numeri pari da 1 a n');
writeln('d = Esegue la somma dei numeri dispari da 1 a n');
writeln('a = Esegue la somma dei primi n numeri pari');
writeln('b = Esegue la somma dei primi n numeri dispari');
writeln('f = Calcola il fattoriale');
writeln('x = verifica se e'' un numero perfetto');
readln(m);
case m of
'p':begin
{istruzioni per la somma dei numeri pari da 1 a n}
for i:=1 to n do
if not odd(i) then t:= t+i;
writeln('La somma dei numeri pari da 1 a ', n, ' e'': ',t);
end;
'd': begin
{Istruzioni per la somma dei numeri dispari da 1 a n}
for i:=1 to n do
if odd(i) then t:= t+i;
writeln('La somma dei numeri dispari da 1 a ',n,' e'': ',t);
end;
'a':begin
{istruzioni per la somma dei primi n numeri pari}
for i:=1 to n do
t:= t + 2*i;
writeln('La somma dei primi ',n,' numeri pari e'': ',t);
end;
'b': begin
{Istruzioni per la somma dei primi n numeri dispari}
for i:=1 to n do
t := t + (2 * i - 1);
writeln('La somma dei primi ',n,' numeri dispari e'': ',t);
end;
'f': begin
{istruzioi per il calcolo del fattoriale}
t:=1;
for i:=n downto 1 do
t:= t*i;
Writeln(n,' Fattoriale = ',t);
end;
'x': begin
{Istruzioni per la verifica del numero perfetto}
for i:= 1 to n do
begin
t:=0;
for q:= 1 to i-1 do
begin
if i mod q = 0 then t:=t+q;
end;
if t = i then Writeln('Trovato il numero: ',i)
end;
end;
else begin
write('Hai inserito un parametro sbagliato')
end;
end;
readln
end.
Esercizio 2 - Primo metodo
program esercizio2;
var
x,y,z: integer;
i: Integer; {variabile contatore}
begin
writeln('Programma per la verifica dei cubi da 150 a 450');
writeln;
for i:= 150 to 450 do
begin
x:=i div 100;
y:= (i-x*100) div 10;
z:= ((i-x*100)-y*10);
if ((sqr(x)*x)+(sqr(y)*y)+(sqr(z)*z)) = i then writeln('Hai trovato il numero: ',x,y,z);
end;
readln
end.
Esercizio 2 - secondo metodo
program esercizio2;
var
x,y,z: integer;
i: Integer; {variabile contatore}
begin
writeln('Programma per la verifica dei cubi da 100 a 999');
writeln;
for x:=1 to 9 do
for y:= 0 to 9 do
for z:= 0 to 9 do
if (sqr(x)*x)+ (sqr(y)*y)+(sqr(z)*z) = (x*100)+(y*10)+z then writeln('Hai trovato il numero: ',x,y,z);
readln
end.
Torna a Programmazione e Lab.
Non ci sono commenti in questa pagina. [Scrivi commento]