For loop i+3
For loop i+3
Hallo zusammen
Da ich noch nie einen for loop benötigte der die zählervariable beliebig inkrementiert weis ich nicht wie ich das lösen kann.
java beispiel:
for (int i = 0;i<=12;i+=3){
System.out.println(i);
}
Hier wäre die ausgabe vom system:
0
3
6
9
12
Wie kann ich das in freepascal machen?
danke für antworten
Da ich noch nie einen for loop benötigte der die zählervariable beliebig inkrementiert weis ich nicht wie ich das lösen kann.
java beispiel:
for (int i = 0;i<=12;i+=3){
System.out.println(i);
}
Hier wäre die ausgabe vom system:
0
3
6
9
12
Wie kann ich das in freepascal machen?
danke für antworten
Windows 7, Lazarus 0.9.28.2 fpc 2.2.4, Firebird 2.1, Zeoslib 6.6.6-stable
-
- Lazarusforum e. V.
- Beiträge: 2808
- Registriert: Fr 22. Sep 2006, 10:38
- OS, Lazarus, FPC: Lazarus v2.0.10, FPC 3.2.0
- Wohnort: Hessen
- Kontaktdaten:
Re: For loop i+3
Hallo slai,
oder:
Viele Grüße, Euklid
Entweder mit einer Repeat-Until-Schleife oder mit einer while-Schleife:slai hat geschrieben: Wie kann ich das in freepascal machen?
Code: Alles auswählen
//...
var n:integer;
//...
n:=0;
while n<=12 do
begin
writeln(n);
inc(n,3);
end;
Code: Alles auswählen
n:=0;
repeat
writeln(n);
inc(n,3);
until n=12;
-
- Lazarusforum e. V.
- Beiträge: 560
- Registriert: So 10. Sep 2006, 23:24
- OS, Lazarus, FPC: Linux Mint 22; Lazarus 4.0 FPC 3.2.2; RaspiOS
- CPU-Target: AMD 64, ARM 64
- Wohnort: nr Stuttgart
Re: For loop i+3
Hallo slai,
da in Pascal die for-Schleife zum hoch- oder runterzählen nur mit ordinalen Typen genutzt werden kann, musst du entweder in der Schleife multiplizieren, oder du benutzt gleich die while oder repeat until Schleife.
Hier einige Beispiele:
für alle Beispiele gilt:
for - Schleife:
while - Schleife:
reapeat-until - Schleife
Ich hoffe, ich konnte die weiter helfen.
Gruß, Linkat
da in Pascal die for-Schleife zum hoch- oder runterzählen nur mit ordinalen Typen genutzt werden kann, musst du entweder in der Schleife multiplizieren, oder du benutzt gleich die while oder repeat until Schleife.
Hier einige Beispiele:
für alle Beispiele gilt:
Code: Alles auswählen
var i :byte; (oder integer ...)
Code: Alles auswählen
for i:=0 to 3 do writeln(3*i);
while - Schleife:
Code: Alles auswählen
i:=0;
while i<=12 do begin
writeln(i);
inc(i,3); {oder: i:=i+3;}
end;
Code: Alles auswählen
i:=0;
repeat
writeln(i);
inc(i,3);
until i>12;
Ich hoffe, ich konnte die weiter helfen.
Gruß, Linkat
Linux Mint 21.3; Lazarus 3.4 FPC 3.2.2; RaspiOS
-
- Lazarusforum e. V.
- Beiträge: 560
- Registriert: So 10. Sep 2006, 23:24
- OS, Lazarus, FPC: Linux Mint 22; Lazarus 4.0 FPC 3.2.2; RaspiOS
- CPU-Target: AMD 64, ARM 64
- Wohnort: nr Stuttgart
Re: For loop i+3
Hallo Euklid,
da haben wir wohl gleichzeitig fast das Gleiche geantwortet. Aber ich war eben langsamer (abgelenkt durch die Familie). Aber in deiner Lösung (repeat-until) wird n nur bis 9 angezeigt.
Gruß, Linkat
da haben wir wohl gleichzeitig fast das Gleiche geantwortet. Aber ich war eben langsamer (abgelenkt durch die Familie). Aber in deiner Lösung (repeat-until) wird n nur bis 9 angezeigt.
Gruß, Linkat
Linux Mint 21.3; Lazarus 3.4 FPC 3.2.2; RaspiOS
Re: For loop i+3
Hallo Linkat und euklid
ich danke euch für eure antworten, an den while und repeat ansatz hab ich gar nicht gedacht
gruss
ich danke euch für eure antworten, an den while und repeat ansatz hab ich gar nicht gedacht

gruss
Windows 7, Lazarus 0.9.28.2 fpc 2.2.4, Firebird 2.1, Zeoslib 6.6.6-stable
-
- Lazarusforum e. V.
- Beiträge: 2808
- Registriert: Fr 22. Sep 2006, 10:38
- OS, Lazarus, FPC: Lazarus v2.0.10, FPC 3.2.0
- Wohnort: Hessen
- Kontaktdaten:
Re: For loop i+3
Linkat hat geschrieben:Hallo Euklid,
da haben wir wohl gleichzeitig fast das Gleiche geantwortet. Aber ich war eben langsamer (abgelenkt durch die Familie). Aber in deiner Lösung (repeat-until) wird n nur bis 9 angezeigt.
Gruß, Linkat
Ja, du hast recht. So ist es richtig:
Code: Alles auswählen
n:=-3;
repeat
inc(n,3);
writeln(n);
until n=12;
-
- Beiträge: 61
- Registriert: Di 11. Sep 2007, 16:59
- OS, Lazarus, FPC: Ubuntu Maverick (L 0.9.28.2-10, FPC 2.4.0)
- CPU-Target: 32Bit
- Wohnort: Lage
- Kontaktdaten:
Re: For loop i+3
Warum nicht so?
Dets ...
Code: Alles auswählen
for i:=0 to 4 do
writeln(i*3);
Re: For loop i+3
Meiner Meinung nach benötigt
mehr systemleistung, sobald man mehr als 1 mal auf das i*3 Element zugreifen muss.
Code: Alles auswählen
for i:=0 to 4 do
writeln(i*3);
Windows 7, Lazarus 0.9.28.2 fpc 2.2.4, Firebird 2.1, Zeoslib 6.6.6-stable
-
- Beiträge: 6079
- Registriert: Do 21. Sep 2006, 07:51
- OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
- CPU-Target: AVR,ARM,x86(-64)
- Wohnort: Dessau
- Kontaktdaten:
Re: For loop i+3
spekulation aber bitte
Code: Alles auswählen
#
for i:=0 to 4 do
begin
a := i*3;
writeln(a);
end;
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/
Re: For loop i+3
hy Christian
in deinem Fall hat man aber 2 variablen zum einen das i und dann noch das a, was man ja bei der repeat nicht hat
aber eben, schlussendlich kommts nicht wirklich drauf an...
in deinem Fall hat man aber 2 variablen zum einen das i und dann noch das a, was man ja bei der repeat nicht hat

aber eben, schlussendlich kommts nicht wirklich drauf an...
Windows 7, Lazarus 0.9.28.2 fpc 2.2.4, Firebird 2.1, Zeoslib 6.6.6-stable
Re: For loop i+3
Warum spekulieren, wenn man messen kann?
Sieht so aus als ob slai recht hat, dass die repeat Variante schneller ist. Aber messt selbst.
Sieht so aus als ob slai recht hat, dass die repeat Variante schneller ist. Aber messt selbst.