Ich muss jetzt leider in Pascal programmieren und komme noch nicht so richtig klar.
Ich habe zum üben ein kleines Programm geschrieben, dass Bestellungen entgegen nimmt.
Hört sich doof an aber was solls für den Anfang ist es Okay.
Es wird der Name des Artikels, die StueckZahl sowie der StueckPreis eingegeben.
StueckZahl wird mit StueckPreis multipliziert und als Gesamtpreis Ausgegeben.
Bedingung ist, das StueckZahl und StueckPreis >= 0 sind.
Die Eingabe von StueckZahl und StueckPreis wird so lange wiederholt, bis StueckZahl und StueckPreis >= 0 sind.
Danach wird der EndPreis berechnet.
Ist der EndPreis berechnet wird er ausgegeben und es wird über ein if abgefragt ob der Benutzer weitere Artikel kaufen moechte (J oder j) für ja und (N oder n) keine Artikel mehr kaufen (Programm beenden).
Genau hier ist der Knackpunkt, man kann das Programm momentan durch das betätigen jeder beliebigen Taste außer N bzw n fortführen, das Programm soll aber nur durch betätigen von J bzw j durchgeführt werden.
Ich weiß absolut nicht wo der Fehler liegt und bin am verzweifeln, könnte sich bitte jemand das Programm anschauen und mir einen Tip geben ?
Grüße gizno
Code: Alles auswählen
program multi2 (input, output);
uses crt;
var
ProduktBezeichnung : string[30];
StueckZahl : integer;
StueckPreis : integer;
EndPreis : integer;
QuitFlag : boolean;
Beenden : char;
begin
{Initialisierung QuitFlag}
QuitFlag := false;
repeat {Programm beenden J/N ?}
repeat {Wiederholung bis Eingaben >= 0}
writeln('Bitte geben Sie das Produkt an, dass Sie kaufen moechten.');
readln(ProduktBezeichnung);
writeln('Bitte geben Sie die Stueckzahl ein.');
readln(StueckZahl);
writeln('Bitte geben Sie den StueckPreis ein.');
readln(StueckPreis);
if ( (StueckZahl < 0) or (StueckPreis < 0) ) then
writeln('Sie duerfen keine negativen Werte eingeben.');
until ( (StueckZahl >= 0) and (StueckPreis >= 0) );
EndPreis := StueckZahl * StueckPreis;
writeln('Sie haben ',StueckZahl,' ',ProduktBezeichnung,' zu einem Stueckpreis von ',StueckPreis,' Euro Gekauft, die Summe betraegt ',EndPreis,' Euro.');
writeln('Moechten Sie weitere Artikel kaufen (J/N) ?');
Beenden := ReadKey;
if ( (Beenden = 'J') or (Beenden = 'j') ) then
QuitFlag := false
else if ( (Beenden = 'N') or (Beenden = 'n') ) then
begin
QuitFlag := true;
writeln('Danke fuer Ihren Einkauf, beehren Sie uns bald wieder.');
end
until QuitFlag = true; {noch einen Artikel kaufen ?}
end.