Ich beschäftige mich zurzeit mit Delphi, habe auch einige Tutorials durchgearbeitet (u. a. von Delphi-Treff). Ich habe folgenden Code aus einem Tutorial abgetippt:
----------------------------------------------------------------------
var n, i : longint; //Drei Variablen werden deklariert
summe : real;
begin
n := strtoint(edit1.text); //edit1.text ist ein String, durch StrToInt wird die manuelle Eingabe in einen Integer umgewandelt und als Variable n definiert
summe := 0; //real-Werte sind von Anfang an rein zufällig, deshalb wird summe auf 0 gesetzt
for i := 1 to n do //i ist gleich 1, n hat den manuell eingegebenen Wert ausm Edit-Feld, von i bis n wird hochgezählt
begin
summe := summe+i; //Solange die Schleife läuft, ist die Summe gleich Summe + Wert von i, beim ersten Mal also 0 = 0 + 1
end;
label1.caption := 'S = ' + floattostr(summe); //Wenn Schleife durchbrochen -> auf der Labelcaption (Labeloberfläche) wird S, ein Leerzeichen sowie der Wert der Summe angezeigt.
end;
-----------------------------------------------------------------------
Dazu habe ich folgende Fragen:
1) Hab das ganze in Delphi eingegeben und bekomme die Fehlermeldung "Edit1 ist kein gültiger Integerwert". Woran kann das liegen? =0
2) Warum weist man den Variablen n, i, & Summe Typen wie jetzt longint oder real zu, wenn sie doch nach begin sowieso wieder umgewandelt werden?
3) Und wieso wird bei der Deklaration n von einem String in einen Integer umgewandelt (strtoint), obwohl es doch von Beginn an als Integer gekennzeichnet wurde (n; i : longint) und nicht als String?
4) Die Variable n hat hier keinen Anfangswert, wie kann man also mit der for-Schleife von i (hat ja den Wert 1 bekommen) bis nach n (hat keinen Wert) hochzählen?
Nachtrag: Hab den obigen Code durch die Antworten hier im Thread mal durchkommentiert, hoffe mal dass es so richtig ist ^^'