@nahpets
For ik:= 1 to i+3 do
begin
writeln("abc"); i:=i+1;
end;
Ja aber ich verstehe den Sinn nicht. Ich habe kapiert, dass die Schleife ik 1 bis i+3 hochzählt. D.h es wird solange hochgezählt bis i auf 3 ist? Eine endlosschleife ist es ja nicht oder? ich habe ja nachprogrammiert er lief 3 mal durch.
Die Sinnfrage ist hier, den Unsinn zu erkennen
Nimm Dir bitte ein Stück Papier, ruhig ein großes und schreibe für jeden Schleifendurchlauf auf, welchen Inhalt jeweils ik und i haben, zuzüglich i + 3.
Gehen wir davon aus, dass i bei 1 beginnt.
Also sowas:
Anfang:
ik := 1;
i := 1;
i + 3 := 4;
1. Schleifendurchlauf:
ik := 2;
i := i + 1 -> = 2
i + 3 := 2 + 3;
2. Schleifendurchlauf:
ik := 3;
i := i + 1 -> = 3
i + 3 := 3 + 3;
Wann wird wokl ik = i + 3 erreicht sein?
Aufgabe 3 er speichert ja für char:=" " also schreibt er " " rein bis das Ende erreicht wird. Es wird das letzte Zeichen vor dem Ende der Eingabe ausgegeben " ".
ja
Aufgabe 5: STR 2:= 1234345 ??
Nein.
Str2 wird zweimal eine Teilzeichenfolge zugewiesen. Welche wird am Ende übrigbleiben?
Zitat von
a.def:
Die Aufgabe ist so schlecht und sinnfrei, dass hier selbst die Profis (die anderen hier im Thema) nicht damit klar kommen
Wie kommst Du denn zu dieser steilen Aussage?
Die Routine ist sicherlich nicht wirklich sinnvoll, aber es könnte ja der Sinn der Aufgabe sein, genau dieses zu erkennen. Und das scheint ja wohl nicht so ganz einfach zu sein.
Übrigens: Delphi arbeitet hier anders, als z. B. Pascalscript. Delphi wertet am Anfang der For-Schleife i + 3 aus und läuft dann durch die Schleife. Aber bei anderen Programmiersprachen kann i im Ablauf der Schleife durchaus erhöht werden. Unter DOS half dann nur der Affengriff. Bei Pascalscript unter Windows brauchst Du den Taskmanager.
Wenn ich mal was habe "offiziell" zwecks Programmierung lernen müssen, dann waren da auch immer fehlerhafte Quelltextfragmente bei. Es war Aufgabe, diese Fehler zu erkennen. So pauschal unsinnig ist das meiner Meinung nach nicht. Könnt aber um längen besser sein.