Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   repeat-until schleife (https://www.delphipraxis.net/110985-repeat-until-schleife.html)

mkinzler 27. Mär 2008 22:46

Re: repeat-until schleife
 
Zeig mal den Code, den du versucht hast.

Die Muhkuh 27. Mär 2008 22:49

Re: repeat-until schleife
 
Hi,

da ich Nachhilfe bei mir in der Klasse gebe und wir auch viel mit malen machen, kann ich Dir nur den Tipp geben: Mal es erst auf Papier auf und geh erstmal alles nach und nach im Kopf auf dem Papier durch. Das ist bei den meisten das Problem. Das Umsetzen in Code schaffen sie, aber ohne den theoretischen Bereich, klappt das eben nicht.

Deswegen aufmalen. Mit Koordinaten, wenn es mit Platzhalten noch nicht klappt, nimm absolute, feste Koordinaten und wechsle diese dann nach und nach aus in variable.

Grubi90 27. Mär 2008 22:54

Re: repeat-until schleife
 
naja mir ist glaub ich schon klar wie das malen funktionieren soll.
als code hab ich

var
i:integer;

procedure TForm1.Button2Click(Sender: TObject);
begin
i:=1;
repeat
with canvas.Rectangle(0,0,i,i);
until i<5;
end;

mkinzler 27. Mär 2008 22:59

Re: repeat-until schleife
 
Warum das with?
Die Abbruchbedingung ist falsch, da i von Anfang an <5 ist. Es fehlt die Inkrementierung der Variable i

Grubi90 27. Mär 2008 23:03

Re: repeat-until schleife
 
ich find euer forum eigentlich tiptop bloß teilweise sind für einen leihen wie mich einfach zuviele Fachbegriffe dabei bzw. die beiträge sind zu kurz um sie nach zu voll ziehen.Was ist Inkrementierung der Variable i?

Die Muhkuh 27. Mär 2008 23:06

Re: repeat-until schleife
 
Inkrementieren bedeutet Erhöhen (ist eig. kein Fachbegriff, mein Lieber :) ).

Du kennst doch eine For-Schleife? Dort wird Deine Zählvariable automatisch erhöht, was aber bei einer Repeat-Until-Schleife nicht passiert.

Markus meint z.B. sowas hier:

Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
begin
i:=1;
repeat
canvas.Rectangle(0,0,i,i); // Hier das With weg.
i := i + 1; // Inkrementieren der Variable
until i < 5;
end;

WS1976 28. Mär 2008 05:13

Re: repeat-until schleife
 
Hallo,

Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
begin
  i:=1;
  repeat
    with canvas.Rectangle(0,0,i,i);
   until i<5;
end;
Du musst i doch verändern damit die Austrittsbedingung jemals erfüllt wird oder?

Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
begin
  i:=1;
  repeat
    canvas.Rectangle(0,0,i,i);
    inc(i); // oder i:=i+1 zum Verständnis. Ist aber das Gleiche.
   until i>5; // hier war ein Fehler. Schleife wurde nur einmal durchlaufen.
end;
Nochwas: Auch wenn ich mich damit wieder einmal unbeliebt mache.
Das sind solche absolute Grundlagen, dass ich dir empfehlen würde ein Buch zu kaufen oder in der
Schule (wenns der Lehrer besser kann) besser aufzupassen.

(PS: Wir sind keine Hausaufgabenerledigungsmaschine für faule Schüler )


Grüsse
Rainer

mkinzler 28. Mär 2008 05:31

Re: repeat-until schleife
 
Zitat:

Das sind solche absolute Grundlagen,
Deshalb auch nur eine verbale Beschreibung der Fehler meinerseits und keinen Code.
Hier noch der obligatorische Verweis auf die Grundlagentutorials auf Delphi-Treff

Grubi90 28. Mär 2008 10:14

Re: repeat-until schleife
 
Cool mein Programm funktioniert schon mal. :-D Ich versteh schon das ihr kein Bock habt für irgendwelche Schüler Hausaufgaben zu machen. Ich hab aber wirklich ewig gesessen und unser Lehrbuch durchgelesen ohne einen guten Hinweis zu erkennen!! Unser Lerhrer ist in der Beziehung ein bisschen seltsam und kann uns bei unseren Problemen meist auch nicht weiter helfen. Ich hab z.b. letztens ein einfaches Programm geschrieben zur Eintrittspreis berechnung(funktionierte einwandfrei) und unser Lehrer wollte darin unbedingt ein Fehler finden hatt das programm extra ne Woche mitgenommen und trotzdem nix gefunden. :wall:

nochmal zur schleife zurück, das funktioniert zwar und es entsteht auch ein rechteck aber kann man das auch so programmieren, dass mehrere Rechtecke gezeichnet werden bis die Abbruchbedingung erfüllt ist?
danke!

Klaus01 28. Mär 2008 10:18

Re: repeat-until schleife
 
Hallo,

es werden wahrscheinlich mehrere Rechtecke gemalt,
nur sie werden übereinander gemalt.

Du kannst die Position des Rechtecks mit der Laufvariablen i
verschieben.

Delphi-Quellcode:
canvas.Rectangle(0,0,i*2,i*3);
Grüße
Klaus


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

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-2025 by Thomas Breitkreuz