![]() |
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 |
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:... |
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 |
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. |
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... |
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; |
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));
|
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? |
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 |
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 19:49 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz