[Turbo Pascal] Repeat...Until Problem

DomDynamite

Cadet 3rd Year
Registriert
Feb. 2002
Beiträge
47
[TP] Repeat...Until Problem

Ich hab jetzt (so nebenbei...) auch mal mit´m Programmieren angefangen und da mal ein Problem mit der Repeat Until Funktion bei Turbo Pascal...

Bilder sagen mehr als Worte, deshalb -> Screenshot...


Es soll also solange wiederholt werden, bis 1, 2, oder 3 eingetippt wurde.....

THX
DomD.
 

Anhänge

  • statik.jpg
    statik.jpg
    73,4 KB · Aufrufe: 856
Hi,

ich glaube mich zu erinnern, dass hinter dem REPEAT kein ; kommt und zweitens fragst du doch bei IN (..) Zahlen ab, d.h. das sie ohne Hochkomma geschrieben werden? Ist aber ehrlich gesagt lange lange her, dass ich Pascal programmiert habe ;)

greetz shadow
 
Das Ganze sollte wohl eher so aus sehen:


program statik;

uses crt;

var taste:char;

begin
textbackground(black);
textcolor(red);
clrscr;
writeln('Statikberechnung:');
writeln;
writeln('1 ... Einfeldträger');
writeln('2 ... Mehrfeldträger');
writeln('3 ... Einfeldträger mit Tragarm');
writeln;
write('Ihre Wahl: ');
repeat
taste:=readly;
until taste in ['1','2','3'];
writeln;
write('Du hast ',taste,' gewählt, das ist ');
case taste of
'1' : writeln ('Einfeldträger.');
'2' : writeln ('Mehrfeldträger.');
'3' : writeln ('Einfeldträger mit Tragarm.')
end;
taste:=readkey;
end.


Dein Problem ist die Variablenart von "art"... Du wirst sie wahrscheinlich als char unter var definiert haben, prüft sie dann aber wie eine numerische Variable ab....
 
Als was hast du Art deklariert?
Wenn es keine geordnete Datenmenge (z.B. Integer) ist, kannst du den Case-Befehl nicht benutzen.
Versuche es doch mal mit integer oder Byte-Deklaration.
Ansonsten kannst du natürlich den Case of-Befehl durch mehrere If then-Anweisungen zu ersetzen.
 
THX an Kunibert, [SOI] Shadow und Valium 110...

Ich habe die variable jetzt als byte deklariert (verbraucht auch weniger Speicher, oder?) und den Rest so gemacht wie Kunibert geschrieben hat.....LÄUFT ALLES SUPI *freu* :)

Eine Frage noch:
Muß die Until anweisung immer hinter der "abfrage" (bei mir also ReadKey) stehen, oder kann ich nach ReadKey erst noch mit IF...THEN....ELSE... arbeiten und dann UNTIL hinterhängen???????
 
Zuletzt bearbeitet:
Klar kannst Du das auch so machen......

Aber es is natürlich von der Abarbeitung her schneller nur zulässige Tastendrücke durch zu lassen, als immer zusätzlich durch die Schleifenabfragen zu hüpfen.....

Strukturiertes Programmieren... ;-)
 
ahaaaa, langsam lichtet sich das Bild....

Strukturiertes Programmieren...., verstehe.....;)
 
Zurück
Oben