![]() |
Pascal-Rechenprogramm: Fussschleife
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo, ich bin neu hier im Forum und programmiere so ein bisschen nebenbei in FreePascal.
Jetzt habe ich es geschafft ein Rechenprogramm zu erstellen, das alle 4 Grundrechungsarten beherrscht, mit einer CASE ... OF Verknüpfung. Nun habe ich mir vorgenommen eine fußgesteuerte Schleife einzubauen, komme aber leider nicht weiter. Wäre nett :lol: wenn mir bitte irgendwer weiterhelfen könnte, danke :lol: weil ich bin echt bald am verwzeifeln :cry: . Das habe ich bereits programmiert:
Delphi-Quellcode:
program fussschleife;
uses crt; var name:string; Zahl1,Zahl2,summe,diff,prod,ergebnis:longint; quo:real; auswahl:char; begin clrscr; writeln('Hallo, lieber Benutzer, bitte gib deinen Vornamen ein'); readln(name); writeln('Herzlich willkommen, lieber ',name,'!'); writeln('dieses Programm beherrscht alle 4 Grundrechnungsarten!'); writeln('Für Addition A drücken, für Subtrakion S drücken, für Multiplikation M drücken und für Division D drücken!'); readln(auswahl); auswahl:=UPCASE(auswahl); IF (auswahl='A') OR (auswahl='S') OR (auswahl='M') OR (auswahl='D') THEN begin writeln('Bitte gib die erste Zahl ein!'); readln(Zahl1); writeln('Bitte gib jezt die zweite Zahl ein!'); readln(Zahl2); CASE auswahl OF 'A':begin summe=:Zahl1+Zahl2; writeln('Die sUmme beträgt ',summe,'!'); 'S':begin diff=:Zahl1-Zahl2; writeln('Die Differenz beträgt ',diff,'!'); 'M':begin prod=:Zahl1*Zahl2; writeln('Das Produkt beträgt ',prod,'!'); 'D':begin quo=:Zahl1/Zahl2; writeln('Der Quotient beträgt ',quo:10:2,'!'); end; end; end ELSE writeln('Falsche Eingabe! Programmabbruch!'); readln; end. So weit, so gut. :wall: Ich bin echt am verzweifeln. Wo kann ich hier bitte die fussschleife einbauen. Wäre nett, wenn mir das bitte jemand sagen könnte, wie und wohin die fusschleife da reingehört :angel: [edit=mkinzler]Delphi-Tag eingefügt Mfg, mkinzler[/edit] |
Re: Pascal-Rechenprogramm: Fussschleife
Und welche Bedingung soll die Repeat-Schleife als Abbruchbedingung haben?
BTW. Herzlich Willkommen in der Delphi Praxis! |
Re: Pascal-Rechenprogramm: Fussschleife
Zitat:
da fehlen mir ein paar ENDs drin :shock: Zitat:
und um diesen Teil drumrum kommt dann die Schleife. :zwinker: z.B.:
Delphi-Quellcode:
oder
program fussschleife;
uses crt; var name:string; Zahl1,Zahl2,summe,diff,prod,ergebnis:longint; quo:real; auswahl:char; begin clrscr; writeln('Hallo, lieber Benutzer, bitte gib deinen Vornamen ein'); readln(name); writeln('Herzlich willkommen, lieber ',name,'!'); writeln('dieses Programm beherrscht alle 4 Grundrechnungsarten!'); repeat // <<<<<<<<<<<<<<<< writeln('Für Addition A drücken, für Subtrakion S drücken, für Multiplikation M ' + 'drücken, für Division D und E für Ende drücken!'); readln(auswahl); auswahl:=UPCASE(auswahl); IF (auswahl='A') OR (auswahl='S') OR (auswahl='M') OR (auswahl='D') THEN begin writeln('Bitte gib die erste Zahl ein!'); readln(Zahl1); writeln('Bitte gib jezt die zweite Zahl ein!'); readln(Zahl2); CASE auswahl OF 'A':begin summe=:Zahl1+Zahl2; writeln('Die sUmme beträgt ',summe,'!'); end; // <<<<<<<<<<<<<<<< 'S':begin diff=:Zahl1-Zahl2; writeln('Die Differenz beträgt ',diff,'!'); end; // <<<<<<<<<<<<<<<< 'M':begin prod=:Zahl1*Zahl2; writeln('Das Produkt beträgt ',prod,'!'); end; // <<<<<<<<<<<<<<<< 'D':begin quo=:Zahl1/Zahl2; writeln('Der Quotient beträgt ',quo:10:2,'!'); end; end; end ELSE IF auswahl<>'E' THEN writeln('Falsche Eingabe! Programmabbruch!'); writeln(''); until (auswahl<>'A') AND (auswahl<>'S') AND (auswahl<>'M') AND (auswahl<>'D'); end.
Delphi-Quellcode:
aber ich muß sagen, daß du an deiner Einrückung nochetwas arbeiten/verbessern mußt ... so erkennt man kaum, was wo wie zusammenhängt und wo es weitergeht...
...
end ELSE IF auswahl<>'E' THEN writeln('Falsche Eingabe!'); writeln(''); until auswahl='E'; end. [edit] ok, das mit den [delphi]-Tags hätt ich jetzt umsonst geschrieben ... böser mkinzler das einfach so zu machen :lol: |
Re: Pascal-Rechenprogramm: Fussschleife
Ja, die Sache mit dem Einrücken... :lol:
Ich möchte haben, dass das Programm mich am Ende fragt, ob ich nochmal rechnen will oder nicht. :angel: Ja, mein Quellcode passt,allerdings in FreePAscal. :gruebel: Gruß, ein FreePascal(er) |
Re: Pascal-Rechenprogramm: Fussschleife
Am Besten rückst du so ein, das begin und end immer untereinander stehen und der Code innerhalb mit einem Tab mehr
Delphi-Quellcode:
Für den Schleife alles in
begin
... if .... then begin ... //Hier den Code end; ... end;
Delphi-Quellcode:
repeat
... WriteLN( 'Beenden (J/N)?'); ReadLn( Eingabe); until UpperCase( Eingabe = 'N'); |
Re: Pascal-Rechenprogramm: Fussschleife
na gut, dann ist Freepascal aber etwas eigenartig BEGIN ohne END ... nja, wenn es so geht, dann isses wohl OK :stupid:
und das UpperCase würde ich anders verschachteln :angel:
Delphi-Quellcode:
until UpperCase(Eingabe) = 'N';
|
Re: Pascal-Rechenprogramm: Fussschleife
Auch in FreePascal braucht jedes begin ein end
Delphi-Quellcode:
So funktioniert das Programm, aber das mit UpperCase geht leider nicht, weil: im debug modus steht: UpperCase indetifier not found.
program fussschleife;
uses crt; var name:string; Zahl1,Zahl2,summe,diff,prod,ergebnis:longint; quo:real; auswahl:char; begin clrscr; writeln('Hallo, lieber Benutzer, bitte gib deinen Vornamen ein'); readln(name); writeln('Herzlich willkommen, lieber ',name,'!'); writeln('dieses Programm beherrscht alle 4 Grundrechnungsarten!'); repeat // <<<<<<<<<<<<<<<< writeln('Für Addition A drücken, für Subtrakion S drücken, für Multiplikation M ' + 'drücken, für Division D und E für Ende drücken!'); readln(auswahl); auswahl:=UPCASE(auswahl); IF (auswahl='A') OR (auswahl='S') OR (auswahl='M') OR (auswahl='D') THEN begin writeln('Bitte gib die erste Zahl ein!'); readln(Zahl1); writeln('Bitte gib jezt die zweite Zahl ein!'); readln(Zahl2); CASE auswahl OF 'A':begin summe=:Zahl1+Zahl2; writeln('Die sUmme beträgt ',summe,'!'); end; // <<<<<<<<<<<<<<<< 'S':begin diff=:Zahl1-Zahl2; writeln('Die Differenz beträgt ',diff,'!'); end; // <<<<<<<<<<<<<<<< 'M':begin prod=:Zahl1*Zahl2; writeln('Das Produkt beträgt ',prod,'!'); end; // <<<<<<<<<<<<<<<< 'D':begin quo=:Zahl1/Zahl2; writeln('Der Quotient beträgt ',quo:10:2,'!'); end; end; end ELSE IF auswahl<>'E' THEN writeln('Falsche Eingabe! Programmabbruch!'); writeln(''); until (auswahl<>'A') AND (auswahl<>'S') AND (auswahl<>'M') AND (auswahl<>'D'); end. Hhhmmm, das muss doch :gruebel: noch irgendwie anders hinhauen, dass das JA Nein funktioniert. Gruß, ein FreePascal [edit=mkinzler]Delphi-Tag eingefügt, solltest du aber das nächste mal selber machen! Mfg, mkinzler[/edit] [edit=mkinzler]Überflüssige Zeichen entfernt Mfg, mkinzler[/edit] |
Re: Pascal-Rechenprogramm: Fussschleife
Zitat:
[Edit] Das Uppercase sorgt nur dafür, das die Eingabe in Großbuchstaben umgewandelt wird, so dass auch bei der Eingabe 'n' abgebrochen wird. [/Edit] |
Re: Pascal-Rechenprogramm: Fussschleife
Juhu Ike habe es geschafft :wink:
DANKE AN ALLE :dancer: :hi: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:10 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz