Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Schleifen (https://www.delphipraxis.net/58197-schleifen.html)

netscanner 2. Dez 2005 19:48


Schleifen
 
Hi Leute,
ich muss ein Programm programmieren, welches den folgenden Zahlencode in einem Memo Feld ausgibt:
1,2,3,4,5,6,7,8,9,10,10,9,8,7,6,4,3,2,1,1,2,3,4,5, 6,7,8,9,10,10,9,8,7,6,4,3,2,1
Also von 1-10 dann von 10 - 1 und das ganze nocheinmal.
Dass Programm soll mit einer einzigen for-Schleife und mit einer einzigen if - Abfrage realisiert werden...
Über Ideen wäre ich sehr dankbar - ich vbin nämlich ratlos :(


Gruß netscanner

sakura 2. Dez 2005 19:50

Re: Schleifen
 
Da wir hier keine Hausaufgaben lösen (siehe Kodex) wäre es gut, wenn Du wenigstens auch posten würdest, was Du bis jetzt schon geschafft hast.

...:cat:...

netscanner 2. Dez 2005 19:54

Re: Schleifen
 
ich habe es bissher nur so geschafft, dass ich mehrere for schleifen (2 stück) verwendet habe...
desshalb ist es auch recht sinnlos den code zu posten

ichbins 2. Dez 2005 19:58

Re: Schleifen
 
hat er doch geschrieben: er hat keinen Plan ;)

ich schreib dir jetzt zwar keinen fertigen Code hin (viel zu faul :stupid:)

Aber du könntest eine for-schleife von 1-40 machen, und dann noch eine variable, in der der aktuelle wert (erst 1 dann 2, 3, 4, 5, 6, 7, 8, 9, 10, 10, 9...) gespeichert ist, und dann auch noch eine variable, in der gespeichert wird, ob der wert gerade hoch- oder runtergezählt wird (-1 oder +1). in der for-schleife erhöhst du den aktuellen wert um den in der anderen Variable.

Zusätzlich tust du in die for-schleife noch eine if-abfrage, die die hoch-runter-Variable umkehrt, falls du die Grenzwerte erreicht hast.

netscanner 2. Dez 2005 20:08

Re: Schleifen
 
danke erstmal für deinen beitrag aber wie soll ich das mit dem +1 bzw. -1 mit einer for-schleife machen?
dazu benötigt man doch eine repeat schleife oder?
sorry für die blöde frage aber schleifen sind echt nicht mein ding...

supermuckl 2. Dez 2005 20:11

Re: Schleifen
 
eventuell so?

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
zahl,i,switch:integer;
begin
  zahl := 0;
  switch := 1;
  for i := 1 to 21 do begin
    inc(zahl,switch);
    if (zahl > 10) then switch := -1 else memo1.Lines.Add(inttostr(zahl));
  end;
end;

Khabarakh 2. Dez 2005 20:16

Re: Schleifen
 
Die Aufgabe ist interessant ^^ . Die "mathematische Lösung": Für die n-te Zahl (mit 0 beginnend) gilt
Delphi-Quellcode:
Round(10.5 - Abs(10.5 - n mod 20 - 1));

netscanner 3. Dez 2005 11:39

Re: Schleifen
 
noch ne kleine frage bei dem Code von supermuckl:
Der Code gibt nur einmal von 1-10 und rückwerts aus....
Ich brauch das ganze aber 2 mal hintereinander...
wie kieg ich das ohne zusätzliche schleife und if abfrage hin?

monta 3. Dez 2005 11:58

Re: Schleifen
 
mal ein anderer Weg:

Code:
drei Variablen, eine für die Richtung [+1/-1], eine für die for schleife, eine für die Ausgabe;

Richtung entspricht -1

for-Schleife welche bis 40 hochzählt

  in die Schleife die if Abfrage, welche prüft ob die Zählvariable restlos durch 10 teilbar ist, wenn ja wird die Richtung einfach mittels * -1 umgedreht

  Ausgabe entspricht dann Ausgabe + Richtung

Ende der for-Schleife

netscanner 3. Dez 2005 12:19

Re: Schleifen
 
wenn ich den code dann aber so programmiere macht er es auch nur einmal durch oder is daran was falsch?
Code:
var a,i,c :integer ;
begin
a := -1; //richtung
i := 0; //zähler
//c Ausgabe
for i := 1 to 80 do
if i mod 10 = 0 then a := -1
else a := 1;
i := c * a ;
memo1.seltext := (inttostr (i));

end;

end.


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:17 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz