Autor Beitrag
Greek
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 45



BeitragVerfasst: 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:

ausblenden 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 user profile iconChristian S.: Delphi-Tags hinzugefügt


Zuletzt bearbeitet von Greek am Sa 20.09.08 12:42, insgesamt 1-mal bearbeitet
nagel
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 708

Win7, Ubuntu 10.10

BeitragVerfasst: Sa 20.09.08 12:25 
Hallo,

mach mal Begin/End-Blöcke nach Then und Else.
Greek Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 45



BeitragVerfasst: Sa 20.09.08 12:28 
öh so?

ausblenden 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 user profile iconChristian S.: Delphi-Tags hinzugefügt
Chryzler
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1097
Erhaltene Danke: 2



BeitragVerfasst: Sa 20.09.08 12:30 
Titel: Re: Delphi Hausaufgabe hilfe
user profile iconGreek 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 45



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 2242
Erhaltene Danke: 55

Win10
VS Code, Delphi 2010 Prof.
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 45



BeitragVerfasst: Sa 20.09.08 12:37 
ausblenden volle Höhe 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
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  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
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1097
Erhaltene Danke: 2



BeitragVerfasst: Sa 20.09.08 12:37 
user profile iconGreek 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 user profile iconChristian S. aneignest, besonders in diesem Falle Schleifen.
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: 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 user defined image oder user defined image 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 45



BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 45



BeitragVerfasst: Sa 20.09.08 13:00 
Wow ich habs gerade selber hingegrigt!! :D

Danke für den Begin/end tipp :)
Jakob_Ullmann
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1747
Erhaltene Danke: 15

Win 7, *Ubuntu GNU/Linux*
*Anjuta* (C, C++, Python), Geany (Vala), Lazarus (Pascal), Eclipse (Java)
BeitragVerfasst: Sa 20.09.08 13:02 
Wieso nicht einfach for-to-do bzw. for-downto-do nehmen?
Greek Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 45



BeitragVerfasst: Sa 20.09.08 13:32 
muss es in jeder schleife machen und mit repeat hab ich gerade angefangen
wazup
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 101

Windows XP
Delphi 2009
BeitragVerfasst: Sa 20.09.08 13:48 
ausblenden Quelltext
1:
for-to-do/for-downto-do Schleife					
ausblenden 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;
ausblenden Quelltext
1:
repeat-until-Schleife					
ausblenden 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;
ausblenden Quelltext
1:
while-do-Schleife					
ausblenden 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 45



BeitragVerfasst: Sa 20.09.08 13:56 
ausblenden 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;



ausblenden 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 45



BeitragVerfasst: Sa 20.09.08 13:57 
wazup du benutzt 2 Schleifen , in der aufgabe steht aber das man nur eine verwenden darf
wazup
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 101

Windows XP
Delphi 2009
BeitragVerfasst: Sa 20.09.08 14:05 
user profile iconGreek hat folgendes geschrieben:
wazup du benutzt 2 Schleifen , in der aufgabe steht aber das man nur eine verwenden darf
While-Do-Schleife
ausblenden 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
ausblenden 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 45



BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 45



BeitragVerfasst: Sa 20.09.08 15:15 
nagut habs so gelassen danke für eure hilfe! =)
wazup
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 101

Windows XP
Delphi 2009
BeitragVerfasst: Sa 20.09.08 16:03 
user profile iconGreek hat folgendes geschrieben:
nagut habs so gelassen danke für eure hilfe! =)
Ich habs nochmal überarbeitet!

For-To-Do Schleife:
ausblenden 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
ausblenden 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
ausblenden 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
ausblenden 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;