1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33:
| procedure TBinomFrm.BinomEnterBtnClick(Sender: TObject); var i,n_fakt,p_fakt,nMINp_fakt,Eing1, Eing2,Eing3,Eing4,Wert1,Wert2,Erg1 : integer; Erg1_1:string;
begin n_fakt:=1; Eing1:=strtoint(edit1.text); for i:= 1 to Eing1 do n_fakt:=n_fakt*i; end;
begin p_fakt:=1; Eing2:=strtoint(edit2.text); for i:= 1 to Eing2 do p_fakt:=p_fakt*i; end;
begin Wert1:=strtoint(edit3.Text); Wert2:=strtoint(edit4.Text); Erg1 := Wert1-Wert2;
for i:= 1 to Erg1 do nMINp_fakt:=nMINp_fakt*i; Hauptfenster.LoesungAusg.Text:=(inttostr(nMINp_fakt)); end;
end; |
Was sollen die ganzen Begin-End Blöcke darstellen? Wie auch immer: Fakultät hat die unangenehme Eigenschaft, recht große Zahlen zu produzieren ...

In der Uni haben wir mal die Fakultät von 1000 per Programm berechnen lassen sollen. Die Berechnung dauerte je nach effizienz des Algorithmus 30 Sekunden bis 2 Stunden+++ und das Ergbniss ging in der Standard Konsolenausgabe über ~20-30 Zeilen
Versuche mal, dir die Zwischenergebnisse ausgeben zu lassen. Und denk dran, dass du mit den Standarddatentypen nicht wirklich mehr als die Fakultät von 12-15 berechnen kannst, sonst bekommst du falsche Ergebnisse

Ich glaube ab 13! crasht's also lass dir mal zwischenergebnisse ausgeben. Ausserdem, schreib dir doch lieber eine Funktion für die Fakultät, das ist übersichtlicher.
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.