![]() |
repeat-until schleife
ich hoff mir kann jemand helfen ich muss für die schule ein Vortrag über Schleifen mit Austrittsbedingung machen, hab aber ehrlich gesagt nicht viel Plan davon. dazu gehört ein Struktogramm und ein grafisches programm. ich hab zwar angefangen aber weiß nicht wie ich die Grafik verwirklichen soll???
Delphi-Quellcode:
bitte helft mir!!!!!!!
var
Form1: TForm1; implementation {$R *.dfm} var i:Integer; procedure TForm1.Button1Click(Sender: TObject); begin i:=1; repeat ......{Hier weiß ich nicht wie ich das formulieren soll} i:=I+1; until i>5; end; procedure TForm1.Button2Click(Sender: TObject); begin close end; end. [edit=Luckie]Delphi-Tags gesetzt. Beim nächsten Mal bitte selber setzen. Mfg, Luckie[/edit] |
Re: repeat-until schleife
Hallo und willkommen in der DP :dp: .
Was genau ist denn nun Dein Problem? Das Struktogramm? |
Re: repeat-until schleife
Die Schleife an sich ist ja soweit richtig.
Was Du da einfügen sollst? Was soll das Programm den machen? Und das kommt dann dort rein. Zitat:
|
Re: repeat-until schleife
Guten Abend,
da gibt es fussgesteuerte Schleifen (repeat until) und kopgesteuerte Schleifen (while do). Fussgesteuert deswegen weil die Abbruchbedingung am Ende des Schleifendurchlaufs stattfindet. Der Schleifenkörper wird also mindestens einmal durchlaufen. Bei kopfgesteuerten Schleifen wird diese Prüfung zu beginn des Schleifendurchlaufs durchgeführt. Es kann hier also sein, dass der Schleifenkörper nicht durchlaufen wird. Was in der Schleife steht nennt man Schleifenkörper. Bei ![]() Grüße Klaus |
Re: repeat-until schleife
naja mein problem ist, dass ich nicht weiß wie ich dasmit der Grafik in meinen Quelltext rein bekomm. Ich dachte an ein Programm das quadrate oder do was zeichnet bis eine bestimmte größe erreicht ist!
|
Re: repeat-until schleife
Schau Dir mal das Freeware-Programm
![]() |
Re: repeat-until schleife
das struktogramm is ja nich so wichtig. Mir gehts hauptsächlich um das Programm und das dies mit einer repeat-until-schleife eine grafik zeichnet. am besten ein quadrat oder sowas das immer größer wird.Ich hab ja auch schon angefangen, nur ich weiß nich wie ich das in Delphi7 umsetzen soll. trotzdem schon mal vielen dank für die zahlreichen und hilfreichen Tipps!!
|
Re: repeat-until schleife
Was willst du genau umsetzen?
|
Re: repeat-until schleife
Die Repeat-Until-Schleife sieht ja schonmal nicht schlecht aus. Wenn du ein Rechteck zeichnen willst, schau dir mal Canvas.Rectangle() an.
Mfg |
Re: repeat-until schleife
ich wollte genau wissen was zwischen repeat und until geschrieben werden muss, damit ein paar Quadrate oder so gezeichnet werden. das mit rectangle wusst ich ja bloß funktionierte nicht wahrscheinlich wegen eingabefehlern von mir!
|
Re: repeat-until schleife
Zeig mal den Code, den du versucht hast.
|
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. |
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; |
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 |
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?
|
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; |
Re: repeat-until schleife
Hallo,
Delphi-Quellcode:
Du musst i doch verändern damit die Austrittsbedingung jemals erfüllt wird oder?
procedure TForm1.Button2Click(Sender: TObject);
begin i:=1; repeat with canvas.Rectangle(0,0,i,i); until i<5; end;
Delphi-Quellcode:
Nochwas: Auch wenn ich mich damit wieder einmal unbeliebt mache.
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; 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 |
Re: repeat-until schleife
Zitat:
![]() |
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! |
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:
Grüße
canvas.Rectangle(0,0,i*2,i*3);
Klaus |
Re: repeat-until schleife
Die Rechtecke werden, wie gesagt, wohl übermalt. Du kannst das aber auch so lösen:
Canvas.Brush.Style := bsClear; Dadurch werden die Rechtecke nicht gefüllt und man die anderen darunter sehen. Mfg |
Re: repeat-until schleife
Das mit den mehreren Rechtecken hat nicht geklappt.Die sind mit Canvas.Brush.Style := bsClear; nur schwarz gefüllt und nicht weiß!Trotzdem nochmal vielen Dank. Jetzt muss ich nur noch mein Struktogramm machen und dann bin ich so gut wie fertig! :)
|
Re: repeat-until schleife
Ahh.. Da du i immer um 1 erhöhst, liegt jedes Rechteck direkt am nächsten, und da die Linie schwarz ist, ist es im Endeffekt nur noch ein schwarzer Fleck :wink: Zähl in der Schleife mal immer 2 oder 3 drauf, dann sollte es klappen.
Mfg |
Re: repeat-until schleife
ja hatte ich auch grad ausprobiert und mit bissel Glück hatte es sogar funktioniert, d.h. mein Programm funktioniert jetzt so wie ich es gehofft hatte! Eure Tipps sind echt sehr hilfreich!!!!! Vielen Dank!!! :-D :-D
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:57 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-2025 by Thomas Breitkreuz