Error: Ordinal expression expected
Error: Ordinal expression expected
Hallo zusammen,
ich habe folgendes Programm in Lazarus geschrieben:
program Temperaturumrechnung (input, output);
{Fahrenheit werden in Celsius umgerechntet}
var
Fahrenheit,
Celsius : real;
begin
{lese die Fahrenheitwerte ein}
writeln('Bitte geben Sie die Fahrenheitwerte als real Werte ein');
readln(Fahrenheit);
if Fahrenheit then
{Berechne Wert in Celsius}
Celsius:= [5 * (Fahrenheit - 32)] / 9
write('Der Wert', Fahrenheit, 'betraegt in Celsius', Celsius)
end. {Werte in Celsius wurden ausgegeben}
In der Zeile Fahrenheit in Celsius umgewandelt werden soll wird nun folgender Fehler gemeldet:
Error: Ordinal expression expected
Wenn ich aber bei der Variablendeklaration real durch integer ersetze dann erscheint folgender Fehler:
Für die Umrechnungszeile:
Fahrenheit(15,18) Error: Incompatible types: got "Set Of Byte" expected "Extended"
Wie behebe ich dieses Problem? Ich will gerne das real Werte eigelesen werden können.
Kann mir da jemand helfen.
Vielen Dank,
DetRRG
ich habe folgendes Programm in Lazarus geschrieben:
program Temperaturumrechnung (input, output);
{Fahrenheit werden in Celsius umgerechntet}
var
Fahrenheit,
Celsius : real;
begin
{lese die Fahrenheitwerte ein}
writeln('Bitte geben Sie die Fahrenheitwerte als real Werte ein');
readln(Fahrenheit);
if Fahrenheit then
{Berechne Wert in Celsius}
Celsius:= [5 * (Fahrenheit - 32)] / 9
write('Der Wert', Fahrenheit, 'betraegt in Celsius', Celsius)
end. {Werte in Celsius wurden ausgegeben}
In der Zeile Fahrenheit in Celsius umgewandelt werden soll wird nun folgender Fehler gemeldet:
Error: Ordinal expression expected
Wenn ich aber bei der Variablendeklaration real durch integer ersetze dann erscheint folgender Fehler:
Für die Umrechnungszeile:
Fahrenheit(15,18) Error: Incompatible types: got "Set Of Byte" expected "Extended"
Wie behebe ich dieses Problem? Ich will gerne das real Werte eigelesen werden können.
Kann mir da jemand helfen.
Vielen Dank,
DetRRG
- af0815
- Lazarusforum e. V.
- Beiträge: 6947
- Registriert: So 7. Jan 2007, 10:20
- OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
- CPU-Target: 32Bit (64Bit)
- Wohnort: Burgenland
- Kontaktdaten:
Re: Error: Ordinal expression expected
Die eckigen Klammern durch runde ersetzen.
Code: Alles auswählen
Celsius:= (5 * (Fahrenheit - 32)) / 9;
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
Re: Error: Ordinal expression expected
Prima jetzt klappt es. Aber es gibt noch ein Problem:
Ich kann jetzt die Werte eingeben. Da wo aber das Programm angezeigt werden soll blink die Berechnung nur kurz auf und verschwindet dann sofort wieder ohne das ich das Ergebnis schnell genug sehen könnte. Wie kann man denn das beheben?
Gruß,
DetRRG
Ich kann jetzt die Werte eingeben. Da wo aber das Programm angezeigt werden soll blink die Berechnung nur kurz auf und verschwindet dann sofort wieder ohne das ich das Ergebnis schnell genug sehen könnte. Wie kann man denn das beheben?
Gruß,
DetRRG
-
- Beiträge: 768
- Registriert: Mo 4. Mai 2009, 13:24
- OS, Lazarus, FPC: Arch Linux, Lazarus 1.3 r44426M FPC 2.6.4
- CPU-Target: x86_64-linux-qt/gtk2
- Kontaktdaten:
Re: Error: Ordinal expression expected
1. GUI (Anwendung statt Programm oder Konsolenanwendung)DetRRG hat geschrieben:Wie kann man denn das beheben?
2. Script (pause)
3. Eine eigene Tastaturabfrage einbauen (repeat until keypressed o.ä.)
4. Ausgabe woanders hin (Drucker, Browser, Datei etc.)
Re: Error: Ordinal expression expected
Ok, ich nähere mich einem Ergebnis. Wie kann ich denn den Punkt zur Pause bzw. zur Tastaturabfrage umsetzen? Ich kenne diese beiden Kommandos leider noch nicht.
-
- Beiträge: 512
- Registriert: Mo 25. Aug 2008, 18:17
- OS, Lazarus, FPC: ArchLinux x86, WinVista x86-64, Lazarus 0.9.29, FPC 2.4.1
- CPU-Target: x86
- Wohnort: Chemnitz
Re: Error: Ordinal expression expected
Code: Alles auswählen
readln;
-
- Beiträge: 657
- Registriert: Sa 9. Jan 2010, 17:32
- OS, Lazarus, FPC: Linux 2.6.x, SVN-Lazarus, FPC 2.4.0-2
- CPU-Target: 64Bit
Re: Error: Ordinal expression expected
Vom Programm aus die Zeile abzufragen ist ein ziemlich schlechter Trick.
Besser wäre, ein Konsolenprogramm auch wirklich in der Konsole auszuführen
Besser wäre, ein Konsolenprogramm auch wirklich in der Konsole auszuführen

-
- Lazarusforum e. V.
- Beiträge: 2808
- Registriert: Fr 22. Sep 2006, 10:38
- OS, Lazarus, FPC: Lazarus v2.0.10, FPC 3.2.0
- Wohnort: Hessen
- Kontaktdaten:
Re: Error: Ordinal expression expected
Hallo DetRRG,
Eckige Klammern haben bei der Programmiersprache Pascal oft eine besondere Bedeutung.
Viele Grüße, Euklid
EDIT:
Habe gerade gesehen, das Problem wurde schon behoben. Abweichende, nicht zur Überschrift passende Fragen bitte jeweils in einem neuen Thread stellen, danke!
Ansonsten stimme ich meinem Vorredner zu: readln; würde das neue Problem lösen.
Ich vermute das Problem liegt darin, dass Du eine rechteckige Klammer benutzt. Kannst sie ja mal durch eine Runde ersetzen, dann dürfte der Fehler meines Erachtens nicht mehr auftreten.DetRRG hat geschrieben: In der Zeile Fahrenheit in Celsius umgewandelt werden soll wird nun folgender Fehler gemeldet:
Error: Ordinal expression expected
Eckige Klammern haben bei der Programmiersprache Pascal oft eine besondere Bedeutung.
Viele Grüße, Euklid
EDIT:
Habe gerade gesehen, das Problem wurde schon behoben. Abweichende, nicht zur Überschrift passende Fragen bitte jeweils in einem neuen Thread stellen, danke!
Ansonsten stimme ich meinem Vorredner zu: readln; würde das neue Problem lösen.