Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   FreePascal (https://www.delphipraxis.net/74-freepascal/)
-   -   Turmrechenprogramm (https://www.delphipraxis.net/135162-turmrechenprogramm.html)

FreePascal 5. Jun 2009 18:20


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.

mkinzler 5. Jun 2009 18:22

Re: Turmrechenprogramm
 
Du solltset vielleicht ein Fliesskommazahl für zahl nehmen. Aber auch dann könnte wegen Rundungsfehlern am Ende was anderes herauskommen

FreePascal 5. Jun 2009 18:38

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 :!:

mkinzler 5. Jun 2009 18:42

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

thkerkmann 5. Jun 2009 18:44

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.

FreePascal 5. Jun 2009 19:12

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.

mkinzler 5. Jun 2009 19:16

Re: Turmrechenprogramm
 
Und was für ein Fehler?

FreePascal 5. Jun 2009 19:23

Re: Turmrechenprogramm
 
Folgender Fehler:

Delphi-Quellcode:
turmrechner.pas(26.25) Fatal: Syntax error, ")" expected but "identifier X" found
Dieser Fehler :lol:

FreePascal 5. Jun 2009 19:56

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:

Luckie 5. Jun 2009 20:02

Re: Turmrechenprogramm
 
Eventuell solltest du erstmal deinen Quelltext gescheit formatieren, dann sieht man auch die Fehler. Und was ist ein "Turmrechenprogramm"?

FreePascal 5. Jun 2009 20:27

Re: Turmrechenprogramm
 
Bei diesem Programm geht es um Turmrechnen, du weisst schon, Pyramidenrechnen :thumb:
der Quelltext ist jetzt folgender:
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.
Das ist jetzt mein Quelltext
Gruß, Martin, der für jede Hilfe sehr dankbar ist.

fkerber 5. Jun 2009 20:38

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

mkinzler 5. Jun 2009 20:42

Re: Turmrechenprogramm
 
Delphi-Quellcode:
Writeln(format( '%d X %d = %g', [zahl, zaehler, ergebnis]));

quendolineDD 5. Jun 2009 20:47

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]);

FreePascal 5. Jun 2009 20:52

Re: Turmrechenprogramm
 
Hi,
bei dem vorhin geschriebenen Programmierung treten die Fehler bei 41,24 und 50,13 auf
Zeile 41:
Delphi-Quellcode:
 ergebnis:=zahl/zaehler;
Zeile 50:
Delphi-Quellcode:
 end.
:gruebel:

PS: Dieses format('%d %d %s', [Wert1, Wert2, Wrt3]); wo soll das hin :?:
Gruß Martin, der für jede Hilfe dankbar ist. :roll:

mkinzler 5. Jun 2009 20:54

Re: Turmrechenprogramm
 
Zitat:

PS: Dieses format('%d %d %s', [Wert1, Wert2, Wrt3]); wo soll das hin Question
In das Writeln()

quendolineDD 5. Jun 2009 20:59

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.

FreePascal 5. Jun 2009 21:05

Re: Turmrechenprogramm
 
Ich programmiere aber in Free Pascal :!:
Gruß, Martin

mkinzler 5. Jun 2009 21:08

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!

Luckie 5. Jun 2009 21:14

Re: Turmrechenprogramm
 
Was ist denn jetzt schon wieder Turmrechnen? Meinst du die Türme von Hanoi?

mkinzler 5. Jun 2009 21:15

Re: Turmrechenprogramm
 
@Michael: Schau dir den Code doch mal an

FreePascal 5. Jun 2009 21:16

Re: Turmrechenprogramm
 
Ich habe jetzt diese Vorschläge umgesetzt, dann werden aus den 2 plötzlich 5 Fehler
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(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.
:arrow: Ps:ich will hier níemanden verarschen, sóndern endlich das Programm fertigmachen
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

Luckie 5. Jun 2009 21:18

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.

quendolineDD 5. Jun 2009 21:18

Re: Turmrechenprogramm
 
Kopiere doch bitte mal gleich die Fehler mit.

mkinzler 5. Jun 2009 21:24

Re: Turmrechenprogramm
 
Beispiel
Zahl := 5

5 * 2 = 10 * 3 = 30 ...
5 = 2 / 10 = 3 / 30 ...

FreePascal 5. Jun 2009 21:36

Re: Turmrechenprogramm
 
Die Fehler habe ich schon oben reinkopiert!+
Gruß Martin, der für jede Hilfe sehr dankbar ist.

mkinzler 5. Jun 2009 21:45

Re: Turmrechenprogramm
 
Wenn du für jede Hilfe dankbar bist. warum baust du die Tipps dann nicht ein?

FreePascal 5. Jun 2009 21:48

Re: Turmrechenprogramm
 
Ich hab sie ja eingebaut siehe Beitrag 22
Gruß Martin

mkinzler 5. Jun 2009 21:51

Re: Turmrechenprogramm
 
Zitat:

Zitat von FreePascal
Ich hab sie ja eingebaut siehe Beitrag 22
Gruß Martin

Dann ist ein longint nun ein Fliesskommatyp?
Delphi-Quellcode:
zahl, ergebnis:longint;

FreePascal 5. Jun 2009 21:55

Re: Turmrechenprogramm
 
Soll ich die Varialbe zahl statt longint mit real definieren?

Gruß, Martin

quendolineDD 5. Jun 2009 21:55

Re: Turmrechenprogramm
 
Ja, ansonsten würde es ja nicht gehen :roll:

mkinzler 5. Jun 2009 21:56

Re: Turmrechenprogramm
 
Damit hast du bewiesen wie genau du unsere Antworten liest :wall:

FreePascal 5. Jun 2009 22:00

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 :!:

mkinzler 5. Jun 2009 22:02

Re: Turmrechenprogramm
 
Grundlagen sind auch was für Deppen und alte Säcke :stupid: :wall:

FreePascal 5. Jun 2009 22:05

Re: Turmrechenprogramm
 
Ich sehe meine Fehler nicht, haben Sie eine Ahnung wo sie sein könnten :?:
Gruß, Martin

quendolineDD 5. Jun 2009 22:06

Re: Turmrechenprogramm
 
Ich sagte bereits, das Ergebnis auch ein reeller Datentyp (= real) sein muss.

mkinzler 5. Jun 2009 22:07

Re: Turmrechenprogramm
 
Wenn du endlich verstehen würdest das ein / eine Fliesskommazahl zurückliefert, würdest du den Fehler sehen!!!!!!!!

FreePascal 5. Jun 2009 22:10

Re: Turmrechenprogramm
 
Jetzt steht im debug: got "Real" expected "LongInt"

FreePascal 5. Jun 2009 22:13

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

mkinzler 5. Jun 2009 22:13

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:
writeln(format( '%g X %d = %g', [zahl, zaehler, ergebnis]));
Aber jede deiner fragen zeigt ganz deutlich, dass du dir mal die Grundlagen aneignen solltest.


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:23 Uhr.
Seite 1 von 2  1 2      

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