Wir müssen für Info eine Kopfgesteuerte Schleife programmieren, die das Produkt der ersten 10 natürlichen Zahlen ausgibt. Doch mein Programm macht es nicht richtig. Kann mir jemand helfen?
PROGRAM TEST; USES CRT; vAR I:INTEGER; Var P:INtEGER; Begin P:=1; I:=0; While I < 11 do Begin I:=I+1; P:=P*I; end; Write ('Das Produkt der ersten 10 natuerlichen Zahlen ist: '); Writeln (P); Readln; End.
hessenadler92 schrieb: Ich habs gefunden ich muss Longinteger statt Integer nehmen. Trotzdem vielen Dank. Und auf den ersten Sieg am Samstag!
duerfte aber trotzdem nicht stimmen. du durchlaeufst die schleife einmal zu viel. btw. warum zur hoelle pascal???
hmm...hessenadler92...sprich 16/17 Jahre... kommt mir irgendwie der Gedanke an 11.Klasse Gymnasium, da durfte ich mich auch mit pascal rumquälen (obwohl ichs gar nicht so schlimm fand smile:
PROGRAM TEST;
USES CRT;
vAR I:INTEGER;
Var P:INtEGER;
Begin
P:=1;
I:=0;
While I < 11
do
Begin
I:=I+1;
P:=P*I;
end;
Write ('Das Produkt der ersten 10 natuerlichen Zahlen ist: ');
Writeln (P);
Readln;
End.
Wenn i = 10 ist, dann gilt immer noch < 11
Du erhöhst das dann aber auf 11 ( in i=i+1)
und somit hast Du 1*2*3*4*5+6*7*8*9*10*11
Wenn Du es in While i < 10 änderst geht es.
Oder Du beginnst bei I = 1
und vertauschst die beiden Zeilen
i=i+1
und
p=p*i
Völlig klar.
Um wen oder was geht es hier eigentlich?
duerfte aber trotzdem nicht stimmen.
du durchlaeufst die schleife einmal zu viel.
btw. warum zur hoelle pascal???
hmm...hessenadler92...sprich 16/17 Jahre...
kommt mir irgendwie der Gedanke an 11.Klasse Gymnasium, da durfte ich mich auch mit pascal rumquälen (obwohl ichs gar nicht so schlimm fand smile: