Entwickler-Ecke
Sonstiges (Delphi) - Delphi Hausaufgabe Schleife von 1-10 und dann wieder 10-1
Greek - Sa 20.09.08 12:20
Titel: Delphi Hausaufgabe Schleife von 1-10 und dann wieder 10-1
Also meine Hausaufgabe ist , ein Programm zu machen das von 1-10 zählt und dann wieder von 10-1 runterzählt , mit nur einer einzigen schleife...
das hab ich bis jetzt gemacht:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| var i, swert, ewert, j : integer; begin Memo1.Clear; swert:=StrToInt(Edit1.Text); ewert:=StrToInt(Edit2.Text); i:=swert; j:=ewert; Repeat if (i<=ewert) then Memo1.Lines.Add(IntToStr(i)) Inc(i) else Memo1.Lines.Add(IntToStr(j)); dec(j); Until (j<=swert) and (i>=ewert); |
funktioniert gerade überhaupt nicht, weil ich zu viel verändert hab
hoffe ihr könnt mir meine fehler sagen
Mfg Greek
Moderiert von
Christian S.: Delphi-Tags hinzugefügt
nagel - Sa 20.09.08 12:25
Hallo,
mach mal Begin/End-Blöcke nach Then und Else.
Greek - Sa 20.09.08 12:28
öh so?
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| Repeat if (i<=ewert) then Begin Memo1.Lines.Add(IntToStr(i)) Inc(i) end; else Begin Memo1.Lines.Add(IntToStr(j)); dec(j); Until (j<=swert) and (i>=ewert); end; |
sry kenn mich mit delphi noch net gut aus
Moderiert von
Christian S.: Delphi-Tags hinzugefügt
Chryzler - Sa 20.09.08 12:30
Titel: Re: Delphi Hausaufgabe hilfe
Greek hat folgendes geschrieben: |
| Also meine Hausaufgabe ist , ein Programm zu machen das von 1-10 zählt und dann wieder von 10-1 runterzählt , mit nur einer einzigen schleife... |
Was die Lehrer immer für tolle Aufgaben stellen.. :lol:
Ich würde eine Schleife nehmen die von 1 bis 20 zählt, dann frägst du in der Schleife ab, ob die Schleifenvariable <= 10 ist, wenn ja gibst du sie aus, wenn nicht gibst du 21 - Schleifenvariable aus.
Greek - Sa 20.09.08 12:32
äh wie mach ich das?
Ich kann delphi noch überhaupt net und die aufgabe ist so schwer.. ich glaub der hat sich verschrieben O.o
Hidden - Sa 20.09.08 12:33
Hi,
Deinen Quelltext packst du am besten in <span class="inlineSyntax"><span class="codecomment">{PROTECTTAG63b7dd3fc42a514aa747449ec646bba7}</span></span> Einzelne Stellen markierst du mit dem Highlight-Tag: [highlight ] markierte Stelle [/highlight]
mfG,
Greek - Sa 20.09.08 12:37
Delphi-Quelltext
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: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79: 80:
| unit Aufgabe3U1;
interface
uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons;
type TForm1 = class(TForm) Edit1: TEdit; Edit2: TEdit; Memo1: TMemo; Button1: TButton; Button2: TButton; Button3: TButton; BitBtn1: TBitBtn; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button3Click(Sender: TObject); private public end;
var Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.Button1Click(Sender: TObject); var i, swert, ewert : integer; begin Memo1.Clear; swert:=StrToInt(Edit1.Text); ewert:=StrToInt(Edit2.Text); i:=swert; if (i<=swert) then For i:=swert to ewert do Memo1.Lines.add(IntToStr(i)); if (i>=ewert) then For i:=ewert downto swert do Memo1.Lines.add(IntToStr(i));
end;
procedure TForm1.Button2Click(Sender: TObject); var i, swert, ewert : integer; begin Memo1.Clear; swert:=StrToInt(Edit1.Text); ewert:=StrToInt(Edit2.Text); i:=swert; While (i<=ewert) do begin Memo1.Lines.Add(IntToStr(i)); inc(i); end; end;
procedure TForm1.Button3Click(Sender: TObject); var i, swert, ewert, j : integer; begin Memo1.Clear; swert:=StrToInt(Edit1.Text); ewert:=StrToInt(Edit2.Text); i:=swert; j:=ewert; Repeat if (i<=ewert) then Begin Memo1.Lines.Add(IntToStr(i)) Inc(i) end; else Begin Memo1.Lines.Add(IntToStr(j)); dec(j); Until (j<=swert) and (i>=ewert); end; end;
end. |
Achja wir müssen mit Delphi 3 programmier ist also ne recht alte version
Christian S. - Sa 20.09.08 12:40
Hallo,
bitte ändere den Titel des Topics, da er wenig über das eigentlich Thema verrät. Hier der entsprechende Absatz aus den
Richtlinien [
http://www.entwickler-ecke.de/richtlinien.html]:
| 1.2 Beiträge: |
| Bitte formuliere den Betreff Deiner Beiträge so, dass andere Mitglieder anhand dieser bereits das eigentliche Thema festmachen können. Beiträge wie etwa "Eine Anfängerfrage" oder "Weiß jemand, wie das geht?" lassen den Leser im Unklaren darüber, was das Thema der Diskussion ist.[...] |
Einfach oben bei Deinem ersten Beitrag auf

oder

klicken und den Titel ändern. Danke Dir!
Viele Grüße,
Christian
Greek - Sa 20.09.08 12:44
ok danke hab ich gemacht, also kann mir jemand sagen wie das mit den 1-20 zählen und so geht? ich muss das nämlich demnächst abschicken, hab net mehr viel zeit noch nen crash kurs zu machen...(ich fang ihn aber gleich mal an)
Greek - Sa 20.09.08 13:00
Wow ich habs gerade selber hingegrigt!! :D
Danke für den Begin/end tipp :)
Jakob_Ullmann - Sa 20.09.08 13:02
Wieso nicht einfach for-to-do bzw. for-downto-do nehmen?
Greek - Sa 20.09.08 13:32
muss es in jeder schleife machen und mit repeat hab ich gerade angefangen
wazup - Sa 20.09.08 13:48
Quelltext
1:
| for-to-do/for-downto-do Schleife |
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| var Zahl1, Zahl2, I: Integer; begin Zahl1 := 1; Zahl2 := 5;
for I := Zahl1 to Zahl2 do Memo1.Lines.Add(IntToStr(I));
for I := Zahl2 downto Zahl1 do Memo1.Lines.Add(IntToStr(I)); end; |
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20:
| var Zahl1, Zahl2, TEMP1, TEMP2: Integer; begin TEMP1 := 1; TEMP2 := 10; Zahl1 := TEMP1; Zahl2 := TEMP2;
repeat if Zahl1 <= TEMP2 then begin Memo1.Lines.Add(IntToStr(Zahl1)); Inc(Zahl1); end else begin Memo1.Lines.Add(IntToStr(Zahl2)); Dec(Zahl2); end; until (Zahl1 >= TEMP2) and (Zahl2 + 1 <= TEMP1); end; |
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21:
| var Zahl1, Zahl2, TEMP1, TEMP2: Integer; begin TEMP1 := 1; TEMP2 := 10; Zahl1 := TEMP1; Zahl2 := TEMP2;
while (Zahl2 >= TEMP1) do begin if Zahl1 <= TEMP2 then begin Memo1.Lines.Add(IntToStr(Zahl1)); Inc(Zahl1); end else begin Memo1.Lines.Add(IntToStr(Zahl2)); Dec(Zahl2); end; end; end; |
Greek - Sa 20.09.08 13:56
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18:
| Memo1.Clear; swert:=StrToInt(Edit1.Text); ewert:=StrToInt(Edit2.Text); i:=swert; j:=ewert; While (j>swert) and (i<=ewert) do Begin if (i<=ewert) then Begin Memo1.Lines.Add(IntToStr(i)); Inc(i); end; If (i>=ewert) then Begin Memo1.Lines.Add(IntToStr(j)); dec(j); end; end; end; |
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19:
| var i, swert, ewert, j : integer; begin Memo1.Clear; swert:=StrToInt(Edit1.Text); ewert:=StrToInt(Edit2.Text); i:=swert; j:=ewert; Repeat if (i<=ewert) then Begin Memo1.Lines.Add(IntToStr(i)); Inc(i); end; If (i>=ewert) then Begin Memo1.Lines.Add(IntToStr(j)); dec(j); end; Until (j<swert) and (i>=ewert); |
die repeat schleife stimmt aber while zählt er nur bis 9 runter wieso?
Greek - Sa 20.09.08 13:57
wazup du benutzt 2 Schleifen , in der aufgabe steht aber das man nur eine verwenden darf
wazup - Sa 20.09.08 14:05
Greek hat folgendes geschrieben: |
| wazup du benutzt 2 Schleifen , in der aufgabe steht aber das man nur eine verwenden darf |
While-Do-Schleife
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21:
| var Zahl1, Zahl2, TEMP1, TEMP2: Integer; begin TEMP1 := 1; TEMP2 := 10; Zahl1 := TEMP1; Zahl2 := TEMP2;
while (Zahl2 >= TEMP1) do begin if Zahl1 <= TEMP2 then begin Memo1.Lines.Add(IntToStr(Zahl1)); Inc(Zahl1); end else begin Memo1.Lines.Add(IntToStr(Zahl2)); Dec(Zahl2); end; end; end; |
For-Schleife
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| var Zahl1: Integer; Zahl2: Integer; I: Integer; begin Zahl1 := 1; Zahl2 := 10;
for I := Zahl1 to Zahl2 * 2 do begin if I <= Zahl2 then Memo1.Lines.Add(IntToStr(I)) else Memo1.Lines.Add(IntToStr(Zahl2 * 2 - I + 1)); end; |
Greek - Sa 20.09.08 14:14
Ich hab aber bei der Repeat Schleife jetzt noch den Luxus reingemacht das man sich die zahlen aus wählen kann ( swert:=StrToInt(Edit1.Text); ) geht das auch für die while und for schleife?
Greek - Sa 20.09.08 15:15
nagut habs so gelassen danke für eure hilfe! =)
wazup - Sa 20.09.08 16:03
Greek hat folgendes geschrieben: |
| nagut habs so gelassen danke für eure hilfe! =) |
Ich habs nochmal überarbeitet!
For-To-Do Schleife:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19:
| var Num1, Num2, I: Integer; begin Num1 := 6; Num2 := 10;
for I := Num1 to Num2 * 2 do begin if I <= Num2 then Memo1.Lines.Add(IntToStr(I)) else begin if Num2 + 1 = Num1 then Break else begin Memo1.Lines.Add(IntToStr(Num2)); Dec(Num2); end; end; end; end; |
For-DownTo-Schleife
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18:
| var Num1, Num2, I: Integer; begin Num1 := 6; Num2 := 10;
for I := Num2 * 2 downto Num1 do begin if I <= Num2 then Memo1.Lines.Add(IntToStr(I)) else begin if not (Num1 - 1 >= Num2) then begin Memo1.Lines.Add(IntToStr(Num1)); Inc(Num1); end; end; end; end; |
Repeat-Until-Schleife
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20:
| var Num1, Num2, Tmp1, Tmp2: Integer; begin Num1 := 5; Num2 := 16; Tmp1 := Num1; Tmp2 := Num2;
repeat if Num1 <= Tmp2 then begin Memo1.Lines.Add(IntToStr(Num1)); Inc(Num1); end else begin Memo1.Lines.Add(IntToStr(Num2)); Dec(Num2); end; until (Num1 >= Tmp2) and (Num2 + 1 <= Tmp1); end; |
While-Do-Schleife
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21:
| var Num1, Num2, Tmp1, Tmp2: Integer; begin Num1 := 5; Num2 := 16; Tmp1 := Num1; Tmp2 := Num2;
while (Num1 <= Tmp2) and (Num2 >= Tmp1) do begin if Num1 < Tmp2 then begin Memo1.Lines.Add(IntToStr(Num1)); Inc(Num1); end else begin Memo1.Lines.Add(IntToStr(Num2)); Dec(Num2); end; end; end; |
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!