adam33 10 Geschrieben 4. Juni 2010 Melden 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
blub 115 Geschrieben 4. Juni 2010 Melden 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
adam33 10 Geschrieben 4. Juni 2010 Autor Melden 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.
Windowsbetatest 10 Geschrieben 4. Juni 2010 Melden 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
adam33 10 Geschrieben 4. Juni 2010 Autor Melden 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.
Windowsbetatest 10 Geschrieben 4. Juni 2010 Melden 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
adam33 10 Geschrieben 4. Juni 2010 Autor Melden 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.
adam33 10 Geschrieben 4. Juni 2010 Autor Melden 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?
Dukel 468 Geschrieben 4. Juni 2010 Melden 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.
adam33 10 Geschrieben 4. Juni 2010 Autor Melden 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.
mba 133 Geschrieben 6. Juni 2010 Melden 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.
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde dich hier an.
Jetzt anmelden