Verfügbare Informationen zu "Problem mit Repeat-Schleife"
Qualität des Beitrags: Beteiligte Poster: orluk - wirthi Forum: Tutorials.at Forenbeschreibung: Programmierforum aus dem Unterforum: Pascal Antworten: 4 Forum gestartet am: Mittwoch 19.04.2006 Sprache: deutsch Link zum Originaltopic: Problem mit Repeat-Schleife Letzte Antwort: vor 16 Jahren, 8 Monaten, 8 Tagen, 7 Minuten
Alle Beiträge und Antworten zu "Problem mit Repeat-Schleife"
Re: Problem mit Repeat-Schleife
orluk - 11.08.2007, 17:34Problem mit Repeat-Schleife
Hi, ich hab ein Problem mit einer Repeat-Schleife. Es geht um ein Rechnerprogramm. Zuerst wird ausgewählt ob man addieren, subtrahieren, dividieren oder multiplizieren möchte, dann werden 2 Zahlen eingelesen.
Die Repeat Schleife funktioniert mit 2 Zahlen, wenn der Benutzer 1 eingibt, soll das Programm neustarten, wenn er 2 eingibt wird die Schleife abgebrochen und das Programm geschlossen.
Problem Nr1: Nach der Bestätigung der Schleife für einen neuen Duchgang, wird die erste Abfrage (Operator) übersprungen und es werden gleich die Zahlen abgerufen.
Problem Nr2: Der Benutzer muss zwar 2 neue Zahlen eingeben, aber die Variablen werden nicht mit den neuen Zahlen überschrieben.
Ich benutze übrigens Free Pascal.
Code:
program rechner;
uses crt;
var operation: String;
zahl1, zahl2, ergebnis: Extended;
ausgang: 1..2;
BEGIN
REPEAT
BEGIN
ClrScr;
writeLn ('Rechenprogramm');
WriteLn ('(a)ddieren');
WriteLn ('(s)ubtrahieren');
WriteLn ('(m)ultiplizieren');
WriteLn ('(d)ividieren');
ReadLn (operation);
write ('1.Zahl ');
ReadLn (zahl1);
write ('2.Zahl ');
ReadLn (Zahl2);
END;
BEGIN
if operation = 'a' THEN ergebnis := zahl1+zahl2;
IF operation = 's' THEN ergebnis := zahl1-zahl2;
IF operation = 'm' THEN ergebnis := zahl1*zahl2;
IF operation = 'd' THEN ergebnis := zahl1/zahl2;
END;
writeLn ('Ergebnis: ',ergebnis:1:6);
writeLn;
WriteLn ('1: Neue Zahlen');
WriteLn ('2: Programm verlassen');
Read (ausgang);
IF ausgang = 2 THEN Exit;
UNTIL ausgang = 2;
ReadKey;
END.
Danke für die Hilfe
Re: Problem mit Repeat-Schleife
wirthi - 12.08.2007, 23:41
Du musst statt
Code: Read(ausgang); folgendes verwenden: Code: Readln(ausgang);
Zumindest bei mir sind dann beide Probleme behoben.
Die If-Abfrage samt Exit-Anweisung brauchst du eigentlich garnicht, weil du ja ohnehin die Schleife verlässt, wenn der Benutzer 2 eingibt.
Re: Problem mit Repeat-Schleife
orluk - 19.08.2007, 13:28
Wenn ich es so eingebe (siehe unten), sollte sich das Programm dann eigentlich nicht auch wiederholen? Weil es ja in prozeduren gespeichert ist, die am Ende wieder aufgerufen werden, sollte das Programm dann doch wieder von vorne gestartet werden. Oder nicht?
Code:
program rechner; { šbungsprogramm 1: Rechenprogramm
by C. Weiá, www.webplain.de }
uses crt;
var operation : char; { Variablendeklarationen }
zahl1,zahl2,ergebnis : real;
procedure titel; {---Titelbild---}
begin
clrscr; { Bildschirm l”schen }
gotoxy(33,5); { Cursor setzen }
write('Rechenprogramm');
gotoxy(1,15);
writeln('(A)ddieren');
writeln('(S)ubtrahieren');
writeln('(M)ultiplizieren');
write('(D)ividieren?');
readln(operation); { Lesen der Eingabe in Variable operation }
end;
procedure eingabe;
begin
write('1. Zahl: ');
readln(zahl1); { Lesen von Zahl 1 }
write('2. Zahl: ');
readln(zahl2); { Lesen von Zahl 2 }
{ Zuweisen der entsprechenden Operation
zu ergebnis }
if operation = 'a' then ergebnis := zahl1+zahl2;
if operation = 's' then ergebnis := zahl1-zahl2;
if operation = 'm' then ergebnis := zahl1*zahl2;
if operation = 'd' then ergebnis := zahl1/zahl2;
end;
procedure ausgabe;
begin
write('Ergebnis: ',ergebnis:1:2); { Ausgabe des Ergebnisses }
end; { auf 2 Stellen gerundet }
begin {---Main---}
titel;
eingabe;
ausgabe;
end.
Re: Problem mit Repeat-Schleife
wirthi - 19.08.2007, 21:27
Nein. Dein Programm macht folgendes:
Code:
begin {---Main---}
titel;
eingabe;
ausgabe;
end.
Es macht also einmal titel, dann einmal eingabe, dann einmal ausgabe. Danach ist es fertig und beendet sich.
Mit folgendem Code, können Sie den Beitrag ganz bequem auf ihrer Homepage verlinken
Weitere Beiträge aus dem Forum Tutorials.at
Umrechner Arabische in Römische Zahlen - gepostet von Walgo am Donnerstag 19.07.2007
Bots - gepostet von Trojaner am Montag 23.10.2006
Problem mit Tutorial - gepostet von Domu am Dienstag 08.08.2006
Wird das Tutorial erweitert? - gepostet von Der Neue am Dienstag 09.05.2006
Exitcode 106 bei Pascal - gepostet von Danny am Freitag 22.06.2007
Eckige Klammern - gepostet von ohio am Freitag 30.06.2006
Turbo C Problem! (Umfrage nur nebenbei) - gepostet von ChillerT am Dienstag 06.02.2007
Hey - gepostet von silver am Sonntag 31.12.2006
PC-Spiele programmieren - gepostet von Dominik92 am Mittwoch 13.09.2006
Ähnliche Beiträge wie "Problem mit Repeat-Schleife"
Wir haben ein Problem!!! - Langi (Freitag 09.11.2007)
Hassu N Problem ????? - Anonymous (Montag 13.12.2004)
schon das erste problem.... :-( - jonnyb (Donnerstag 21.06.2007)
Ein PC NooB hat ein Sound Problem - Vergil (Mittwoch 31.10.2007)
Problem - Dragonfly (Samstag 21.07.2007)
Rießen Problem!!Bitte alle lesen!!!! - Jule14 (Samstag 07.01.2006)
!!! kleines Problem bei Bundesliga 05/06 !!! - bundesliga0506 (Mittwoch 20.07.2005)
Point of Existence 2 Mod Singleplayer Problem! - dirtrunner (Dienstag 05.09.2006)
Und noch ein Altbekannter Aero - BAUR547 (Donnerstag 03.11.2011)
USKO - ServerLogin Problem "Disconnected from Server&qu - rauron (Freitag 21.04.2006)