Progamm wiederholen < Pascal < Programmiersprachen < Praxis < Informatik < Vorhilfe
|
Hallo ihr begeisterten Informatiker :O)
Also, ich habe gestern ein Programm geschrieben, mit dem man durch Eingabe der Punkte eine Geradengleichung ausgeben kann. Nun würde ich gerne ein wenig dem Unterricht vorgreifen und eine Schleife einbauen, um das Programm nicht immer neu zu starten, wenn ich denn nochmal rechnen möchte.... nur wie ??
Meine Vorkenntnisse in Turbo Pascal sind minimal, habe es erst seit dem 2. Halbjahr als Wahlfach...
Mein Vorschlag sieht so aus:
Wiederholung mit REPEAT Anweisung UNTIL Bed...
Diese Schleife wird doch solange wiederholt, bis die Until Bedingung wahr ist, oder ?? Währe das hier eine gute Lösung für mein Vorhaben(oder ist eine andere Schleife besser geeignet?)
Das Problem ist nun, dass ich nicht verstehe, wo und wie ich diese Schleife in mein Programm einfügen müste ???
Hier mein Programm:
PROGRAM Geradengleichung;
uses crt;
VAR x1,x2,y1,y2,m,b:REAL;
BEGIN TextBackground(blue);
TextColor(yellow);
ClrScr;
WriteLn('Berechnungsprogramm für Geradengleichungen');
Write('Bitte x1 eingeben: ');
ReadLn(x1);
Write('Bitte y1 eingeben: ');
ReadLn(y1);
Write('Bitte x2 eingeben: ');
ReadLn(x2);
Write('Bitte y2 eingeben: ');
ReadLn(y2);
IF y1=y2 THEN WriteLn('y=',y1:10:2)
Else
IF x1=x2 THEN WriteLn('Paralell zur y-Achse')
Else
IF (x1=x2) AND (x2=y2) THEN WriteLn('Winkelhalbierende')
ELSE
BEGIN
m:= (y2-y1)/(x2-x1);
b:= y1-m*x1;
END;
Write('y=',m:10:2,'x ');
IF b>=0 THEN Write('+',b:10:2);
IF b<0 THEN Write(b:10:2);
ReadLn;
END:
Ich stelle mir vor, dass jemand aufgefordert wird, 'j' oder 'n' einzutippen, nachdem er die Frage bekommt: 'Nochmal rechnen ?'
Vielen Dank
Tobias
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 16:08 Fr 24.03.2006 | Autor: | Loddar |
Hallo Tobias!
Du musst Dir halt genau überlegen, was alles genau wiederholt werden soll (welche Befehlszeilen). diese müssen dann durch den REPEAT ... UNTIL-Block "eingerahmt werden.
Von daher mein Vorschlag:
> PROGRAM Geradengleichung;
> uses crt;
> VAR x1,x2,y1,y2,m,b:REAL;
>
> BEGIN TextBackground(blue);
> TextColor(yellow);
REPEAT
> ClrScr;
>
> WriteLn('Berechnungsprogramm für Geradengleichungen');
> Write('Bitte x1 eingeben: ');
> ReadLn(x1);
> Write('Bitte y1 eingeben: ');
> ReadLn(y1);
> Write('Bitte x2 eingeben: ');
> ReadLn(x2);
> Write('Bitte y2 eingeben: ');
> ReadLn(y2);
>
> IF y1=y2 THEN WriteLn('y=',y1:10:2)
> Else
> IF x1=x2 THEN WriteLn('Paralell zur y-Achse')
> Else
> IF (x1=x2) AND (x2=y2) THEN
> WriteLn('Winkelhalbierende')
> ELSE
>
> BEGIN
> m:= (y2-y1)/(x2-x1);
> b:= y1-m*x1;
>
> END;
>
> Write('y=',m:10:2,'x ');
> IF b>=0 THEN Write('+',b:10:2);
> IF b<0 THEN Write(b:10:2);
> ReadLn;
Abfrage ob nochmal?
Variable "nochmal" (sollte eine STRING- oder CHAR-Variable sein) einlesen.
UNTIL nochmal="n";
> END:
Gruß
Loddar
|
|
|
|
|
Hallo Loddar :O)
Dank deiner Anregung ist die Schleife im Programm funktionsfähig. Wie stolz man als Anfänger auf so ein Progrämmchen ist :O)
Danke und noch einen schönen abend
gruß tobias
|
|
|
|