Schleife mit Abbruchbedingung einmal anders
lima-city → Forum → Programmiersprachen → Delphi & Pascal
anweisung
befehl
beitrag
benutzer
break
compiler
computer
eingabe
jahrgang
lehrer
milchreis
parameter
pascal
program
schleifen
schreibe
senf
sorte
vorliegen
wenigsten
-
hallo liebe Leut,
wir kauen geraden in Info Pascal durch.
Nat?rlich geht das ziiiiiiieeeeeeeeeeeeehmlich langsam vorw?rts.
Naja, wie das nun so ist, man sucht sich seine Nebenbesch?ftigungen...
Schlie?lich waren wir bei den Schleifen mit abbruchbedingungen angelangt (JA, wir sind schon so weit)
jedenfalls schoss mir etwas durch den Kopf:
Hat nicht die Z?hlschleife (For-to-do) auch eine Abbruchbedingung? Eigentlich schon, n?mlich genau dann wenn die Z?hlvariable den Maximalwert erreicht hat, wird die Schleife nicht nochmal durchlaufen!
Ich dachte mir: warum einfach wenn's auch kompliziert geht?
Also meldete ich mich und antwortete mit meiner ?berleung:
mein inoflehrer guckte recht verdutzt und sagte mir das das nicht geht.
Da sich meine positiven Erfahrungen mit Lehgrern in Grenzen halten, beschloss ich vorhin, als mir die Sache wieder einfiel, es mal auszu probieren.
Und tats?chlich, es geht!
Ist zwar ein bissl kompliziert, aber es geht und nur darum ging es bei dem experiment^^
program test; uses wincrt; var i:integer; t:string; begin for i:=1 to 2 do begin writeln('nochmal?'); readln(t); writeln(t,' hast du geschrieben.'); if t='ja' then i:=1; if t='nein' then i:=2; end; end.
zum Program
man wird immer wieder aufgefordert etwas einzugeben. Wenn man "ja" eingibt, wird die Schleife immer weiter ausgef?hrt, bei "nein"
wird sie sofort beendet und bei irgendeiner anderen Eingabe wird sie regul?r ausgef?hrt (in diesem Fall zwei mal)
Warum ich das gepostet habe?
naja ich fand es ganz interessant. Es wird zwar bestimmt schon einer vor mir gemacht haben, aber naja...ich wollt halt auch mal wieder bissl was posten^^
Beitrag ge?ndert am 27.06.2006 16:23 von milchreis -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Eigentlich l?st man sowas mit der Do..Loop-Anweisung:
1. M?glichkeit:
Code solange ausf?hren, bis der Benutzer was anderes will.
Befehl:
Do
'code
Loop Until 'code der Abbruchbedingung (wie bei If)
bzw.
Do Until 'code der Abbruchbedingung (wie bei If)
'code
Loop
------
2. M?glichkeit:
Code sooft ausf?hren, solange der Benutzer nichts anderes will.
Befehl:
Do
'code
Loop While 'code der Wiederholungsbedingung (wie bei If)
bzw.
Do While 'code der Wiederholungsbedingung (wie bei If)
'code
Loop
-
Hallo?
lest ihr ?berhaupt was ich schreibe?
Nat?rlich nimmt man die Z?hlschleife zum Z?HLEN!
DAS WAR NUR MAL EIN VERSUCH OB DAS FUNKTIONIERT!!!!
HABEN WIR ES JETZT LANGSAM VERSTANDEN?????
MEIN GOTT! KANN SICH HIER EINER MAL HINSETZTEN UND DEN LEUTEN ERZ?HLEN DAS SIE ERST LESEN SOLLEN UND DANN DENKEN!!
ERTS LESEN DANN DENKEN DANN POSTEN
(fetter geht's nicht, mal sehen wer es verstanden hat!)
PS:
loop? alles klar! wenn du schon postest dann solltest du auch was richtiges schreiben^^
Beitrag ge?ndert am 28.06.2006 07:24 von milchreis -
sehr nette variante... is zwar vollkommen hirnrissig aber auf die idee muss man erstmal kommen... so und nun mach das mal mit 3 parametern!
-
wenn w?rde ich es schon mit nem Break machen. Ist wesentlich einfacher. Und wird k?rzer ^^
for i:=0 to 1 do begin writeln('nochmal?'); readln(t); writeln(t,' hast du geschrieben.'); if t='nein' then break; i = 0; end;
Aber wie die anderen schon sagten, normalerweise nutzt man eine For Schleife nicht auf diese unortodoxe Weise ;) -
f?r abbruchsbedingungen nimmt man normalwerweise IF-Schleifen
also
IF blah = blah THEN blah ELSE Blah
hier kannste auch noch, wie bei PHP ne Erweiterung machen, wenn du willst... also:
IF blah = blah THEN blah ELSE blah AND IF blah = Blah Then Blah ELSE blah
das selbe geht auch mit OR -
Was haben wir denn oben gemacht? Das sind doch wohl eindeutig IF Anweisungen. Man sollte auch verstehen was man liest.
[OT]: Irgendwie wird man auf Lima dazu angehalten zynistisch zu sein, sry -.-
Beitrag ge?ndert am 28.06.2006 10:35 von evil-devil -
Was haben wir denn oben gemacht? Das sind doch wohl eindeutig IF Anweisungen. Man sollte auch verstehen was man liest.
[OT]: Irgendwie wird man auf Lima dazu angehalten zynistisch zu sein, sry -.-
Beitrag ge?ndert am 28.06.2006 10:35 von evil-devil
muss ich dir mal eindeutig zustimmen.
Die posts werden angelesen und dann wird irgendetwas , was ungef?hr zum theam passt gepostet!
?brigens:
bevor ich mir mit einer Programiersprache so einen Bl?dsinn ausdenke, wei? ich ein bischen ?ber sie bescheit!!!
Und was logische operatoren sind ist mir auch klar!
djtechnostyler schrieb:
hier kannste auch noch, wie bei PHP
man lese sich das bitte noch zweimal durch und ?berlege dann...
wie bei php? Schlaumeier!
Erst php gelernt und nun sich wundern warum pascal ?hnlich ist?!
Was glaubt ihr warum ihr Pascal in der Schule lernt???
weil viele andere Programiersprachen ?hnliche, um nicht zu sagen gleiche Strukturen aufweisen.
Wenn ich gewusst h?tte was hier f?r antworten kommen h?tt ich das Thema sein gelassen.
Beitrag ge?ndert am 28.06.2006 15:03 von milchreis -
da haste gl?ck das dass bei dir geht ... es gibt auch compiler, die geben dir einen fehler aus, wenn du versuchst die z?hlvariable im anweisungsblock zu ver?ndern...
auch dort ist es dann m?glich ... indem du direkt in den speicher schreibst ...
also so...
* Z?hlvariable i
* neue variable x
* "Pointer auf i"
* "Pointer auf x"
* "Pointer auf i" = "Pointer auf x"
-> ist aber komplizierter als n?tig...
einfachste m?glichkeit ist und bleibt nat?rlich
break;
:p -
welcher d?mliche compiler macht denn sowas? Jeder ordentliche l?sst eine inkrementierung zu.
-
1. @milchreis: Das interessiert kein Schwein! Und du solltest dich mal richtig zur?ckhalten, denn so fliegst du schnell auf die Schnauze!
2. Ich h?tte es mit nem Break gemacht, is viel einfacher, als 10.000x mit ner IF-Anweisung.
3. Pointer sind ebenfalls viel zu kompliziert und ich glaube auch nicht, dass der Milchreis sowas schon durchgenommen hat, wenn der sich erstmal gedanken ?ber for-to schleifen macht....
gr??e -
Ne hatten wir auch noch nicht^^
Deshalb brauchte ich ja ne nebenbesch?ftigung.
Ich wollt halt nur mal testen ob's funktioniert.
Warum beschwehren sich denn hier alle?
ihr spammt hier ?belste Sorte rum und regt euch aber ?ber mein Thema auf^^
Find ich lustig
PS @ Dreamweaver: warum postest du dann? -
lol... nee, ?berhaupt nicht, aber ich fand ja mal die ?berschrift ganz interessant bis ich milchreis antworten gelesen habe... dann wollte ich meinen senf auch ablassen...
naja, und wenn ich gulden brauche, dann schreibe ich wenigstens einen vern?nftigen beitrag @beide :P
Wir haben jo schon genug Gulden ;) Wei? gar nicht was ich mit denen soll. Kann bei den Auktionen schon >2000 an den Bot geben ^^ Solange Lucas oder so nicht mitbieten, hrhr. -
dann kauf doch f?r 2000 gulden dir ma ne datenbank... man k?nnte ja mal so nen rekorde thread aufmachen, wo du dann als erstes die liste anf?hrst ;).
-
Nein noch nicht!
Ich will auch noch 5 Gulden kassieren!
Hab auch ganz artig alles durchgelesen ...
Zum OP:
Du hast vollkommen recht -- und dein Lehrer ist doof. Das passiert denen meistens, wenn sie vom Fach nicht wirklich eine Ahnung haben und nur stur ihren Vorlagen folgen, wo au?ergew?hnliche Probleml?sungen nicht vorgesehen sind. Wie soll nur aus Deutschland was werden, wenn kreative Probleml?sungen einfach vom Lehrer weggewischt werden, weil er sie nicht versteht?
Deine L?sung funktioniert deshalb, weil eine for()-Schleife nichts weiter ist als eine spezielle Notation (oder Form) der while()-Schleife. Man kann for()-Schleifen immer auch mit while() nachbauen. Das geht in allen Programmiersprachen, die eine while()-Schleife kennen. Ein Compiler, der das Ver?ndern der im Schleifenkopf verwendeten Variablen nicht erlaubt, ist mir nicht bekannt. Das w?rde auch keinen Sinn machen. -
Danke lieber schlauer Fuchs, das ist sehr interessant.
Eigentlich ist unser Lehrer sehr wohl ein kluger Kopf in seinem Fach, zhwar manchmal etwas schwierig, aber wie das nunmal so ist...
Das eigentliche Problem ist folgendes:
Der Infounterricht ist zwar eigentlich extrem wichtig
Wo gibt's keine Computer?
Ist aber (zumindest in meiner Generation bzw. Jahrgang) In den Klassen 8,9,10 nicht zu zensieren.
Auf der Endjahresabrechnung wird nur vermerkt teilgenommen
Der Grund f?r diese schreckliche Realit?t, sind die Vorraussetzungen f?r dieses Fach:
man m?sste einheitliche (und gute(!!)) Unterrichtsmittel, soll hei?en Computer, zur Verf?gung stellen. Man bedenke die Kosten die beim Staat anfallen w?rden...
Aber der Jahrgang nach mir darf sich ja jetzt mit BIO, CH, PH UN einer zweiten Fremdsprache durch die Oberstufe pr?geln -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage