PDA

Visualizza la versione completa : [PASCAL] While..do & Repeat...until


Porippoppero
16-01-2004, 18:02
Stampare a video la somma dei quadratidei primi N (n dato da tastiera) numeri naturali.


Dati due numeri N,M > 0 e N < M, stampare la somma dei numeri compresi tra N e M.

Potete aiutarmi?

pdpmpd
16-01-2004, 18:10
prima procedura (stampa i quadrati da 0 a numero), il numero da tastiera lo acquisisci dal prog. principale:


procedure stampa(numero: integer);
var
cx: integer;
begin
for cx:=1 to numero do
writeln('quadrato di ',cx,' = ',cx*cx);
end;


seconda procedura


procedure stampadue(n,m:integer);
var
cx,ctr: integer;
begin
ctr:=0;
for cx:=n to m do inc(ctr,cx);
writeln('Somma: ',ctr);
end;

pdpmpd
16-01-2004, 18:14
ok, tu volevi il repeat..until (ma per queste funzioni non affatto utile).



procedure stampa(numero: integer);
var
cx: integer;
begin
cx:=1
while cx<=numero do begin
writeln('quadrato di ',cx,' = ',cx*cx);
inc(cx);
end;
end;

procedure stampadue(n,m:integer);
var
cx,ctr: integer;
begin
ctr:=0;
cx:=n;
repeat
inc(ctr,cx);
inc(cx);
until cx=m;
writeln('Somma: ',ctr);
end;

LeleFT
16-01-2004, 21:12
Attenzione: la prima chiedeva la somma dei quadrati dei primi n numeri, non di visualizzare tutti i quadrati dei primi n numeri:


procedure SommaQuadrati (n: integer);
var somma: integer;
i: integer;
begin
somma := 0;

for i := 0 to n do
somma := somma + n * n;

writeln('La somma dei primi n quadrati : ', somma);
end;

Con while...do:
procedure SommaQuadrati (n: integer);
var somma: integer;
i: integer;
begin
somma := 0;
i := 0;
while (i <= n) do
begin
somma := somma + n * n;
i := i + 1;
end;
end;

E la si potrebbe trasformare in una funzione:


function SommaQuadrati (n: integer) : integer;
var somma: integer;
i: integer;
begin
somma := 0;
i := 0;
while (i <= numero) do
begin
somma := somma + n * n;
i := i + 1;
end;

SommaQuadrati := somma;
end;

oppure ricorsiva:

function SommaQuadrati (n: integer) : integer;
var risultato: integer;
begin
if (n = 0) Then
risultato := 0
else
risultato := (n * n) + SommaQuadrati(n - 1);

SommaQuadrati := risultato;
end;


Ciao.

pdpmpd
16-01-2004, 21:26
oooopps! sorry :dh:

Loading