AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Schleifen

Ein Thema von netscanner · begonnen am 2. Dez 2005 · letzter Beitrag vom 3. Dez 2005
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von netscanner
netscanner

Registriert seit: 2. Dez 2005
Ort: Dieburg
280 Beiträge
 
Delphi 6 Enterprise
 
#1

Schleifen

  Alt 2. Dez 2005, 19:48
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
Martin
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: München
11.412 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Schleifen

  Alt 2. Dez 2005, 19:50
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.

......
Daniel W.
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Benutzerbild von netscanner
netscanner

Registriert seit: 2. Dez 2005
Ort: Dieburg
280 Beiträge
 
Delphi 6 Enterprise
 
#3

Re: Schleifen

  Alt 2. Dez 2005, 19:54
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
Martin
  Mit Zitat antworten Zitat
ichbins

Registriert seit: 9. Jul 2005
Ort: Hohenaltheim
1.001 Beiträge
 
Delphi 2005 Personal
 
#4

Re: Schleifen

  Alt 2. Dez 2005, 19:58
hat er doch geschrieben: er hat keinen Plan

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

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.
Michael Enßlin
Ich, der ich weiß, mir einzubilden, dass ich weiß, nichts zu wissen, weiß, dass ich nichts weiß.
Sokrates
  Mit Zitat antworten Zitat
Benutzerbild von netscanner
netscanner

Registriert seit: 2. Dez 2005
Ort: Dieburg
280 Beiträge
 
Delphi 6 Enterprise
 
#5

Re: Schleifen

  Alt 2. Dez 2005, 20:08
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...
Martin
  Mit Zitat antworten Zitat
supermuckl

Registriert seit: 1. Feb 2003
1.340 Beiträge
 
FreePascal / Lazarus
 
#6

Re: Schleifen

  Alt 2. Dez 2005, 20:11
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;
Das echte Leben ist was für Leute...
... die im Internet keine Freunde finden!
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#7

Re: Schleifen

  Alt 2. Dez 2005, 20:16
Die Aufgabe ist interessant ^^ . Die "mathematische Lösung": Für die n-te Zahl (mit 0 beginnend) gilt
Round(10.5 - Abs(10.5 - n mod 20 - 1));
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
Benutzerbild von netscanner
netscanner

Registriert seit: 2. Dez 2005
Ort: Dieburg
280 Beiträge
 
Delphi 6 Enterprise
 
#8

Re: Schleifen

  Alt 3. Dez 2005, 11:39
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?
Martin
  Mit Zitat antworten Zitat
monta

Registriert seit: 18. Okt 2004
Ort: Dresden
141 Beiträge
 
#9

Re: Schleifen

  Alt 3. Dez 2005, 11:58
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
Johannes M.
  Mit Zitat antworten Zitat
Benutzerbild von netscanner
netscanner

Registriert seit: 2. Dez 2005
Ort: Dieburg
280 Beiträge
 
Delphi 6 Enterprise
 
#10

Re: Schleifen

  Alt 3. Dez 2005, 12:19
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.
Martin
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:36 Uhr.
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