| Autor |
Beitrag |
Greek
      
Beiträge: 45
|
Verfasst: Sa 20.09.08 12:20
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
Zuletzt bearbeitet von Greek am Sa 20.09.08 12:42, insgesamt 1-mal bearbeitet
|
|
nagel
      
Beiträge: 708
Win7, Ubuntu 10.10
|
Verfasst: Sa 20.09.08 12:25
Hallo,
mach mal Begin/End-Blöcke nach Then und Else.
|
|
Greek 
      
Beiträge: 45
|
Verfasst: 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
      
Beiträge: 1097
Erhaltene Danke: 2
|
Verfasst: 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..
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 
      
Beiträge: 45
|
Verfasst: 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
      
Beiträge: 2242
Erhaltene Danke: 55
Win10
VS Code, Delphi 2010 Prof.
|
Verfasst: 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,
_________________ Centaur spears can block many spells, but no one tries to block if they see that the spell is a certain shade of green. For this purpose it is useful to know some green stunning hexes. (HPMoR)
|
|
Greek 
      
Beiträge: 45
|
Verfasst: Sa 20.09.08 12:37
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
Zuletzt bearbeitet von Greek am Sa 20.09.08 12:38, insgesamt 1-mal bearbeitet
|
|
Chryzler
      
Beiträge: 1097
Erhaltene Danke: 2
|
Verfasst: Sa 20.09.08 12:37
Greek hat folgendes geschrieben: | ä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 |
Dann würde ich vorschlagen dass du dir den Delphi-Crashkurs von Christian S. aneignest, besonders in diesem Falle Schleifen.
|
|
Christian S.
      
Beiträge: 20451
Erhaltene Danke: 2264
Win 10
C# (VS 2019)
|
Verfasst: 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:
| 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
_________________ Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
|
|
Greek 
      
Beiträge: 45
|
Verfasst: 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 
      
Beiträge: 45
|
Verfasst: Sa 20.09.08 13:00
Wow ich habs gerade selber hingegrigt!!
Danke für den Begin/end tipp 
|
|
Jakob_Ullmann
      
Beiträge: 1747
Erhaltene Danke: 15
Win 7, *Ubuntu GNU/Linux*
*Anjuta* (C, C++, Python), Geany (Vala), Lazarus (Pascal), Eclipse (Java)
|
Verfasst: Sa 20.09.08 13:02
Wieso nicht einfach for-to-do bzw. for-downto-do nehmen?
|
|
Greek 
      
Beiträge: 45
|
Verfasst: Sa 20.09.08 13:32
muss es in jeder schleife machen und mit repeat hab ich gerade angefangen
|
|
wazup
      
Beiträge: 101
Windows XP
Delphi 2009
|
Verfasst: 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; | Quelltext 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; | Quelltext 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; |
Zuletzt bearbeitet von wazup am Sa 20.09.08 13:58, insgesamt 1-mal bearbeitet
|
|
Greek 
      
Beiträge: 45
|
Verfasst: Sa 20.09.08 13:56
|
|
Greek 
      
Beiträge: 45
|
Verfasst: Sa 20.09.08 13:57
wazup du benutzt 2 Schleifen , in der aufgabe steht aber das man nur eine verwenden darf
|
|
wazup
      
Beiträge: 101
Windows XP
Delphi 2009
|
Verfasst: Sa 20.09.08 14:05
|
|
Greek 
      
Beiträge: 45
|
Verfasst: 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 
      
Beiträge: 45
|
Verfasst: Sa 20.09.08 15:15
nagut habs so gelassen danke für eure hilfe! =)
|
|
wazup
      
Beiträge: 101
Windows XP
Delphi 2009
|
Verfasst: 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; |
|
|