Rätsel: Fakultät

Spendenaufruf des DRK Ortsvereins Spielberg e.V.

16. April 2023

 

Hallo liebe Besucherin, hallo lieber Besucher!

In einem ganz anderen Kontext möchte ich hier nun bewerben:
Der Verein, für den ich auch einstehe, benötigt Spenden.
Ich habe vergangenes Jahr über fünf Monate versucht für delphi-lernen.de Spenden zu sammeln - es blieb leider bei 20 Euro von zwei Spendewilligen.
Nun hoffe ich, da es nicht um mich geht, dass sich mehr entschließen und für eine gute Sache zu spenden:

Alle Informationen - auch für die Überweisung den Verwendungszweck beachten!

Der neuste Stand, mindestens einmal im Monat hier zu sehen!

Geben ist seliger als Nehmen. (Apostel Paulus)

 

 

Wir nehmen an, wir sind in der achten Klasse und können etwas Delphi. Wir werden nun vom Mathelehrer beauftragt ein Programm zu schreiben, welches uns einfach die Fakultät einer Zahl.

Für alle, die an dem Tag, als "Fakultät" erklärt wurde, womöglich gerade nicht anwesend waren: Fakultät bedeutet, dass die angegebene Zahl immer wieder weiter mit dem Vorgänger der Zahl multipliziert wird, bis zur Zahl 1. Man schreibt das, indem man die Zahl mit einem Ausrufezeichen dahinter darstellt.
Also
x := 5!
bedeutet das gleiche, wie
x := 5*4*3*2*1;

Und es geht weiter... Bei den ersten Tests funktioniert alles. Damals wissen wir noch nichts von Planung und so kommt es, dass wir - schließlich haben unsere letzten Tests funktioniert - ganz unvorhergesehen von unseren Eltern gerufen werden, dass wir doch endlich den Abwasch machen!
Jeder der auf sich gestellt ist, weiß nun was passiert. Schnell ändert man noch etwas, was einem selbst aufgefallen ist, und dann verlässt man den PC.
Wir kommen zurück, in Erinnerung, dass ja alles funktioniert hat, schauen wir nochmal ob es compiliert... PRIMA! Werfen das Programm auf den USB-Stick (naja, früher hat man das noch so gemacht) für morgen und gehen an die übrigen Hausaufgaben.
Am Nächsten Tag, Beamer eingeschaltet, Schul-PC hochgefahren, wir starten das Programm Fakultaet.exe, doch egal welche Zahl wir eingeben, es kommt genau die Zahl wieder als Ergebnis.
Was ist hier passiert?
Zuhause sitzen wir nun vor dem Source, ignorieren unsere Eltern, die uns zum Essen rufen, und suchen den Fehler...
procedure TfmHomework.BtnCalcFacClick( Sender: TObject);
var
  i, f, res : Integer;
begin
  f := StrToInt( edFAK.Text);
  res := 1;
  for i:=1 to f do;
  begin
    res := res*i;
  end;
  ShowMessage( 'Fakultät von ' + IntToStr( f) + 'Fakultät von '' = ' + IntToStr( res));
end;
Habt ihr den Fehler gefunden?