Egy kis programozás Pascalban, csak ki kellene javítani?
számítsuk ki az első 10 szám összegét while..do ciklussal:
program while_ciklus;
uses crt;
var i,a,szum:word;
begin
clrscr;
szum:=0;
i:=1;
a:=0;
while a<10 do
begin
szum:=szum+i;
writeln('Az első 10 szám összege: ',szum);
end;
readln;
end.
Ha van i, akkor miért az a?
Az a a ciklusváltozód, akkor azt illene léptetni is a ciklus végén. Valamint ne a cikluson belül irasd ki a 10 szám összegét, hanem a végén.
A ciklusváltozó nem magától növekszik, hanem neked kell gondoskodnod a növeléséről. Különben a ciklus feltétele mindig igaz lesz, és ezzel megvalósítod a végtelen ciklust.
Tehát miután hozzáadtad az értékét a futó összeghez, meg kell növelned az értékét eggyel:
a := a + 1;
Ha most a ciklusban írod ki az összeget, akkor minden lefutásban kiírja az aktuális futó összeget:
Az első 10 szám összege 1.
Az első 10 szám összege 3.
...
Az első 10 szám összege 45.
Az első 10 szám összege 55.
Ezért kell csak a ciklus után kiíratni.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!