![]() |
Turmrechenprogramm
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo Leute, ich habe in dieser Woche noch zwei andere FreePascal-Programme ohne Probleme programmiert und habe mir vorgenommen ein Turmrechenprogramm zu programmieren. Folgendes habe ich schon:
Delphi-Quellcode:
program turmrechner;
uses crt; var zaehler:integer; zahl, ergebnis:longint; ergebnis1:real; begin clrscr; writeln('Das hier ist ein Turmrechenprogramm. Bitte geben Sie Ihre Startzahl ein!'); readln(zahl); zahl:=ergebnis; FOR zaehler:=1 TO 9 DO begin ergebnis:=zahl*zaehler; writeln('zahl,'X' ,zaehler, '=',ergebnis); end; FOR zaehler:=9 DOWNTO 1 DO begin ergebnis:=zahl/zaehler; writeln('zahl,'/' , zaehler, '=',ergebnis); end; writeln('Ende der Schleife!'); writeln('Zaehlerstand am Ende der Schleife: ',zaehler);ä readln; end. Naja, das Programm funktioniert nicht so toll oder besser gesagt gar nicht :pale: . Irgendwo ist bei mir der Hund drin :gruebel: Ich glaube es ginge so: ergebnis:=zahl*zaehler; Ausgabe des Ergebnisses; ergebnis=:zahl; Im dritten Schritt(ergebnis=:zahl;) wird dann sichergestellt, dass bei einem weiteren Schleifendurchlauf mit dem Ergebnis aus dem vorigen Durchlauf weitergerechnet wird. Wäre nett, wenn mir irgendwer weiterhelfen könnte, ich bin fast schon am verzweifeln. |
Re: Turmrechenprogramm
Du solltset vielleicht ein Fliesskommazahl für zahl nehmen. Aber auch dann könnte wegen Rundungsfehlern am Ende was anderes herauskommen
|
Re: Turmrechenprogramm
Es ist ja leider nicht so, dass am Ende ein falsches Ergebnis rauskommt, sondern der debug zeigt mir 3 Fehler an, deswegen kann ich es garnicht erst ausführen :pale: .Ich denke, zuerst sollte alles einwandfrei funktionieren und dann erst Feinheiten verbessern wie Fliesskommazahl.
Irgendwo ist ein grundlegender Fehler, den gilt es jetzt herauszufinden. Nur da ich leider 'Beginner' bin wollte ich mich den Profis zuwenden :roll: :?: :gruebel: danke, martin, der für jede Hilfe wirklich dankbar ist :!: |
Re: Turmrechenprogramm
Den Grund habe ich eigentlich schon geschrieben, hast du aber übersehen, deshalb mal detailierter:
Der / Operator leifert eine Fliesskommazahl zurück deshalb muss zahl einen entsprechenden Typ (Z.B. Extended) besitzen |
Re: Turmrechenprogramm
Hi,
dann bereinige mal deinen Quelltext
Delphi-Quellcode:
program turmrechner;
uses crt; var zaehler:integer; zahl, ergebnis:longint; ergebnis1:real; begin clrscr; writeln('Das hier ist ein Turmrechenprogramm. Bitte geben Sie Ihre Startzahl ein!'); readln(zahl); zahl:=ergebnis; FOR zaehler:=1 TO 9 DO begin ergebnis:=zahl*zaehler; writeln('zahl,'X' ,zaehler, '=',ergebnis); <<<<<< das erste Anführungszeichen ist wohl zu viel !! end; FOR zaehler:=9 DOWNTO 1 DO begin ergebnis:=zahl/zaehler; writeln('zahl,'/' , zaehler, '=',ergebnis); <<<<<<< hier ebenso !! end; writeln('Ende der Schleife!'); writeln('Zaehlerstand am Ende der Schleife: ',zaehler);ä <<<<<<<<<<<<< und was macht das ä hier ? readln; end. |
Re: Turmrechenprogramm
Hallo Thomas,
jetzt habe ich alles bereinigt, dennoch ist ein Fehler da, gsd nur einer, und zwar bei 26,25 Gruß, Martin, der für jede Hilfe äußerst dankbar ist. |
Re: Turmrechenprogramm
Und was für ein Fehler?
|
Re: Turmrechenprogramm
Folgender Fehler:
Delphi-Quellcode:
Dieser Fehler :lol:
turmrechner.pas(26.25) Fatal: Syntax error, ")" expected but "identifier X" found
|
Re: Turmrechenprogramm
Ich kann bei Thomas' Programmierung keinen Fehler finden, dennoch ist er da. Wisst ihr wo da der Fehler liegt und ob man das noch anders programmieren kann :?: Wenn ja, wäre sehr dankbar für einen Quelltext.
Thx, Martin, der sich mit Pascal herumschlägt :mrgreen: |
Re: Turmrechenprogramm
Eventuell solltest du erstmal deinen Quelltext gescheit formatieren, dann sieht man auch die Fehler. Und was ist ein "Turmrechenprogramm"?
|
Re: Turmrechenprogramm
Bei diesem Programm geht es um Turmrechnen, du weisst schon, Pyramidenrechnen :thumb:
der Quelltext ist jetzt folgender:
Delphi-Quellcode:
Das ist jetzt mein Quelltext
program turmrechner;
uses crt; var zaehler:integer; zahl, ergebnis:longint; ergebnis1:real; begin clrscr; writeln('Das hier ist ein Turmrechenprogramm. Bitte geben Sie Ihre Startzahl ein!'); readln(zahl); zahl:=ergebnis; FOR zaehler:=1 TO 9 DO begin ergebnis:=zahl*zaehler; writeln(zahl,'X' ,zaehler, '=',ergebnis); end; FOR zaehler:=9 DOWNTO 1 DO begin ergebnis:=zahl/zaehler; writeln(zahl,'/' , zaehler, '=',ergebnis); end; writeln('Ende der Schleife!'); writeln('Zaehlerstand am Ende der Schleife: ',zaehler); readln; end. Gruß, Martin, der für jede Hilfe sehr dankbar ist. |
Re: Turmrechenprogramm
Hi!
Und in welcher Zeile tritt der Fehler jetzt auf? Am besten mal die betroffene Zeile mitsamt der Fehlermeldung mal hier reinkopieren. Ciao, Frederic |
Re: Turmrechenprogramm
Delphi-Quellcode:
Writeln(format( '%d X %d = %g', [zahl, zaehler, ergebnis]));
|
Re: Turmrechenprogramm
Die Argumente die an Format übergeben werden, müssen in ein offenes Array. Also
Delphi-Quellcode:
format('%d %d %s', [Wert1, Wert2, Wrt3]);
|
Re: Turmrechenprogramm
Hi,
bei dem vorhin geschriebenen Programmierung treten die Fehler bei 41,24 und 50,13 auf Zeile 41:
Delphi-Quellcode:
Zeile 50:
ergebnis:=zahl/zaehler;
Delphi-Quellcode:
:gruebel:
end.
PS: Dieses format('%d %d %s', [Wert1, Wert2, Wrt3]); wo soll das hin :?: Gruß Martin, der für jede Hilfe dankbar ist. :roll: |
Re: Turmrechenprogramm
Zitat:
|
Re: Turmrechenprogramm
Das war nur ein Beispiel. Das musst du schon für dich umändern.
Und der Fehler bei Zeile 41 kommt daher, dass du den / Operator nutzt. Das Ergebnis kann eine reelle Zahl sein, jedoch ist Ergbenis als ganzzahliger Typ deklariert. Entweder du nutzt an dieser Stelle div oder änders Ergebnis in einen reellen Datentypen. Wie gesagt, ich kann es dir nur ans Herz legen, dir die Grundlagen von Delphi anzueignen. |
Re: Turmrechenprogramm
Ich programmiere aber in Free Pascal :!:
Gruß, Martin |
Re: Turmrechenprogramm
Beides ist (Object-)Pascal.
Zudem wäre es ratsam unsere Vorschläge auch umzusetzen! Sonst könnte es sein, dass sich mancher hier verarscht fühlt! |
Re: Turmrechenprogramm
Was ist denn jetzt schon wieder Turmrechnen? Meinst du die Türme von Hanoi?
|
Re: Turmrechenprogramm
@Michael: Schau dir den Code doch mal an
|
Re: Turmrechenprogramm
Ich habe jetzt diese Vorschläge umgesetzt, dann werden aus den 2 plötzlich 5 Fehler
Quelltext:
Delphi-Quellcode:
:arrow: Ps:ich will hier níemanden verarschen, sóndern endlich das Programm fertigmachen
program turmrechner;
uses crt; var zaehler:integer; zahl, ergebnis:longint; ergebnis1:real; begin clrscr; writeln('Das hier ist ein Turmrechenprogramm. Bitte geben Sie Ihre Startzahl ein!'); readln(zahl); zahl:=ergebnis; FOR zaehler:=1 TO 9 DO begin ergebnis:=zahl*zaehler; writeln(format( '%d X %d = %g', [zahl, zaehler, ergebnis])); end; FOR zaehler:=9 DOWNTO 1 DO begin ergebnis:=zahl/zaehler; writeln(format( '%d X %d = %g', [zahl, zaehler, ergebnis])); end; writeln('Ende der Schleife!'); writeln('Zaehlerstand am Ende der Schleife: ',zaehler); readln; end. Sonst täte ich ja nicht um Hilfe bitten PPS: Fehler sind in 26,24 und 42,24 und 43,24 und 52 und 0. 26,24: Error: identifier not found "format" 42,24: Error: Incompatible types: got "Extended" expected "longInt" 43,24: Error: identifier not found "format" 50: Fatal: There were 3 errors compiling module, stopping 0: Fatal: Compilation aborted |
Re: Turmrechenprogramm
Das habe ich schon. Einmal multipliziert er was und ein mal dividiert er was. Aber ich weiß nicht was und mir erschließt auch sich der Sinn nicht.
|
Re: Turmrechenprogramm
Kopiere doch bitte mal gleich die Fehler mit.
|
Re: Turmrechenprogramm
Beispiel
Zahl := 5 5 * 2 = 10 * 3 = 30 ... 5 = 2 / 10 = 3 / 30 ... |
Re: Turmrechenprogramm
Die Fehler habe ich schon oben reinkopiert!+
Gruß Martin, der für jede Hilfe sehr dankbar ist. |
Re: Turmrechenprogramm
Wenn du für jede Hilfe dankbar bist. warum baust du die Tipps dann nicht ein?
|
Re: Turmrechenprogramm
Ich hab sie ja eingebaut siehe Beitrag 22
Gruß Martin |
Re: Turmrechenprogramm
Zitat:
Delphi-Quellcode:
zahl, ergebnis:longint;
|
Re: Turmrechenprogramm
Soll ich die Varialbe zahl statt longint mit real definieren?
Gruß, Martin |
Re: Turmrechenprogramm
Ja, ansonsten würde es ja nicht gehen :roll:
|
Re: Turmrechenprogramm
Damit hast du bewiesen wie genau du unsere Antworten liest :wall:
|
Re: Turmrechenprogramm
Weil ich den Begriff Fliesskommazahl nicht in meinem Wortschatz hatte1
Gruß Martin Quellcode:
Delphi-Quellcode:
program turmrechner;
uses crt; var zaehler:integer; ergebnis:longint; zahl:real; begin clrscr; writeln('Das hier ist ein Turmrechenprogramm. Bitte geben Sie Ihre Startzahl ein!'); readln(zahl); zahl:=ergebnis; FOR zaehler:=1 TO 9 DO begin ergebnis:=zahl*zaehler; writeln(format( '%d X %d = %g', [zahl, zaehler, ergebnis])); end; FOR zaehler:=9 DOWNTO 1 DO begin ergebnis:=zahl/zaehler; writeln(format( '%d X %d = %g', [zahl, zaehler, ergebnis])); end; writeln('Ende der Schleife!'); writeln('Zaehlerstand am Ende der Schleife: ',zaehler); readln; end. Noch immer die gleichen 5 Fehler :!: |
Re: Turmrechenprogramm
Grundlagen sind auch was für Deppen und alte Säcke :stupid: :wall:
|
Re: Turmrechenprogramm
Ich sehe meine Fehler nicht, haben Sie eine Ahnung wo sie sein könnten :?:
Gruß, Martin |
Re: Turmrechenprogramm
Ich sagte bereits, das Ergebnis auch ein reeller Datentyp (= real) sein muss.
|
Re: Turmrechenprogramm
Wenn du endlich verstehen würdest das ein / eine Fliesskommazahl zurückliefert, würdest du den Fehler sehen!!!!!!!!
|
Re: Turmrechenprogramm
Jetzt steht im debug: got "Real" expected "LongInt"
|
Re: Turmrechenprogramm
Und wenn Ihr wisst, wie es geht, dass alles geht, dann sagt mir bitte den kompletten Quelltext, aber nicht in kleinen Stückchen, sodass es nur eingefleischte Informatiker verstehen können.
Wenn ich den richtigen Quelltext hätte, dann würde ich für lange Zeit, vlt. für immer, von hier verschwinden. Danke, MArtin |
Re: Turmrechenprogramm
Da du den Typ von Zahl geändert hast musst du den auch im Format anpassen oder wieder zurückändern
Delphi-Quellcode:
Aber jede deiner fragen zeigt ganz deutlich, dass du dir mal die Grundlagen aneignen solltest.
writeln(format( '%g X %d = %g', [zahl, zaehler, ergebnis]));
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:23 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