>

Kopfgesteuerten Schleife bei Pascal

#
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.
#
oh Gott was ist das lange her, dass ich das in der Schule hatte...
#
Deine Schleife wird einmal zu oft durchlaufen.

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
#
Ich habs gefunden ich muss Longinteger statt Integer nehmen. Trotzdem vielen Dank. Und auf den ersten Sieg am Samstag!
#
hessenadler92 schrieb:
Ich habs gefunden ich muss Longinteger statt Integer nehmen. Trotzdem vielen Dank. Und auf den ersten Sieg am Samstag!


Völlig klar.

Um wen oder was geht es hier eigentlich?
#
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???
#
singender_hesse schrieb:
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:


Teilen