adam33 10 Geschrieben 4. Juni 2010 Melden Teilen Geschrieben 4. Juni 2010 Hallo, ich versuche gerade Pascal zu erarbeiten. Ich habe folgende Source geschrieben: program rabattsatz; uses crt; const mwstsatz : real = 0.19; var nettobetrag, bruttobetrag, mwst, rabatt, Stueckzahl, Gesamtbetrag : real; begin; clrscr; Writeln('Geben sie den Nettopreis der Ware ein: '); Readln(nettobetrag); Writeln('Geben sie die Stueckzahl ein'); Readln(Stueckzahl); mwst = nettobetrag * 0.19; bruttobetrag = nettobetrag + mwst; Gesamtbetrag = bruttobetrag * Stueckzahl; case Gesamtbetrag <= 10: Writeln('Sie bekommen leider keinen Rabatt') ; case Gesamtbetrag <= 20: Gesaamtbetrag = Gesaamtbetrag - (Gesamtbetrag * 0,03); case Gesamtbetrag <= 50: Gesamtbetrag = Gesaamtbetrag - (Gesamtbetrag * 0,05); case Gesamtbetrag > 50: Gesaamtbetrag - (Gesamtbetrag * 0,1); writeln(Stueckzahl); writeln (nettobetrag); writeln(mwst); writeln(Gesamtpreis); end. Ich möchte ein Programm schreiben, welches letzten Endes eine Rechnung ausgibt. Dazu zählen die unten genannten Variablen + den Rabatt in %. Da möchte ich dann noch eine Schleife maachen aebr die habe ich noch nicht drin, also "neue Rechnung j/n". Das Programm funktioniert nicht. Ich habe glaube ich mehrere grundlegende Denkfehler. Kann jemand helfen? MfG Zitieren Link zu diesem Kommentar
blub 115 Geschrieben 4. Juni 2010 Melden Teilen Geschrieben 4. Juni 2010 Hallo, auf jedenfall hast du Vertipper drinnen " Gesaamtbetrag" . Da müsste Pascal ja schon wegen einer nichtdefinierten Variable pfeifen. Warum definierst du die Konstante mwstsatz, wenn du sie unten nicht benutzt. Ist das Programm eine Schulhausaufgabe? cu blub Zitieren Link zu diesem Kommentar
adam33 10 Geschrieben 4. Juni 2010 Autor Melden Teilen Geschrieben 4. Juni 2010 Ich habe deine Vorschläge beherzigt und nun auch die case-Abfrage ÜBERARBEITET: Geht leider immer noch nichzt... program rabattsatz; uses crt; const mwstsatz : real = 0.19; var nettobetrag, bruttobetrag, mwst, rabatt, Stueckzahl, Gesamtbetrag : real; begin; clrscr; Writeln('Geben sie den Nettopreis der Ware ein: '); Readln(nettobetrag); Writeln('Geben sie die Stueckzahl ein'); Readln(Stueckzahl); mwst := nettobetrag * mwstsatz; bruttobetrag := nettobetrag + mwst; Gesamtbetrag := bruttobetrag * Stueckzahl; if Gesamtbetrag <= 10 then Writeln('Sie bekommen leider keinen Rabatt') ; if Gesamtbetrag <= 20 then Gesaamtbetrag = Gesaamtbetrag - (Gesamtbetrag * 0,03); if Gesamtbetrag <= 50 then Gesamtbetrag = Gesaamtbetrag - (Gesamtbetrag * 0,05); if Gesamtbetrag > 50 then Gesaamtbetrag - (Gesamtbetrag * 0,1); writeln(Stueckzahl); writeln (nettobetrag); writeln(mwst); writeln(Gesamtpreis); end. Zitieren Link zu diesem Kommentar
Windowsbetatest 10 Geschrieben 4. Juni 2010 Melden Teilen Geschrieben 4. Juni 2010 Hallo, auf die schnelle (Pascal ist lange her). "Gesamtpreis" vs. "Gesamtbetrag" -> falscher Variablenname? "Gesaamtbetrag" vs. "Gesamtbetrag" -> mehrfach vorhanden Was sagt dir den der Compiler? mfg Zitieren Link zu diesem Kommentar
adam33 10 Geschrieben 4. Juni 2010 Autor Melden Teilen Geschrieben 4. Juni 2010 program rabattsatz; uses crt; const mwstsatz : real = 0.19; var nettobetrag, bruttobetrag, mwst, rabatt, Stueckzahl, Gesamtbetrag : real; begin; clrscr; Writeln('Geben sie den Nettopreis der Ware ein: '); Readln(nettobetrag); Writeln('Geben sie die Stueckzahl ein'); Readln(Stueckzahl); mwst := nettobetrag * mwstsatz; bruttobetrag := nettobetrag + mwst; Gesamtbetrag := bruttobetrag * Stueckzahl; if Gesamtbetrag <= 10 then Writeln('Sie bekommen leider keinen Rabatt') ; if Gesamtbetrag <= 20 then Gesamtbetrag = Gesamtbetrag - (Gesamtbetrag * 0.03); if Gesamtbetrag <= 50 then Gesamtbetrag = Gesamtbetrag - (Gesamtbetrag * 0.05); if Gesamtbetrag > 50 then Gesamtbetrag - (Gesamtbetrag * 0.1); writeln(Stueckzahl); writeln (nettobetrag); writeln(mwst); writeln(Gesamtbetrag); end. Zitieren Link zu diesem Kommentar
Windowsbetatest 10 Geschrieben 4. Juni 2010 Melden Teilen Geschrieben 4. Juni 2010 writeln (nettobetrag); besser writeln(nettobetrag); Wozu die Variable "rabatt"? if Gesamtbetrag > 50 then Gesamtbetrag - (Gesamtbetrag * 0.1); besser if Gesamtbetrag > 50 then Gesamtbetrag = Gesamtbetrag - (Gesamtbetrag * 0.1); oder if Gesamtbetrag > 50 then Gesamtbetrag = Gesamtbetrag * 0.9; mfg Zitieren Link zu diesem Kommentar
adam33 10 Geschrieben 4. Juni 2010 Autor Melden Teilen Geschrieben 4. Juni 2010 da treten Fehler auf in den if-Abfragen, ich sehe den Fehlerr nicht. Da sind 3 illegal expressions in den Anweisungen in den if Abfragen. Zitieren Link zu diesem Kommentar
adam33 10 Geschrieben 4. Juni 2010 Autor Melden Teilen Geschrieben 4. Juni 2010 der code scheint zu gehen, jedoch kann ich die Ausgabe noch nicht sehen, da sich das Fenster schnell schließt. Das kann man doch offenhalten, oder? Zitieren Link zu diesem Kommentar
Dukel 454 Geschrieben 4. Juni 2010 Melden Teilen Geschrieben 4. Juni 2010 Ich kenn Pascal nicht, aber bei anderen Sprachen gibt es Pause oder ein ReadLn, welches dann auf einen Tastendruck (z.B. Enter) wartet. Zitieren Link zu diesem Kommentar
adam33 10 Geschrieben 4. Juni 2010 Autor Melden Teilen Geschrieben 4. Juni 2010 ja ich denke readln sollte es eigentlich gewesen sein, geht allerdings nicht. Das geht auch nicht in Variation mit Klammern und Hochkommata. Zitieren Link zu diesem Kommentar
mba 133 Geschrieben 6. Juni 2010 Melden Teilen Geschrieben 6. Juni 2010 Wieso wird der gleiche Gesamtpreis (z.B. 19) mehrfach rabattiert? Ist das absichtlich so? Noch ein Tipp: http://www.hadels.com/programmit/TPi.html Meine Pascalprogrammierungen sind leider schon über 15 Jahre her. Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.