Seite 1 von 1
Chinahoroskop in Pascal
Verfasst: So Jan 24, 2010 8:00 pm
von TerenceSkill
Hi hoffe ihr könnt mir helfen da der compiler abricht und kein fehler anzeigt, muss das für ne Freundin bis Montag abend programmiert haben.

Hier die Vorlage!
Code: Alles auswählen
program chinahoroskop;
USES Crt;
TYPE int Ratte = (1900,1912,1936...);
TYPE int Ochse = (1901....);
....
VAR eingabe: integer;
VAR nratte: Ratte;
VAR nochse: Ochse;
....
BEGIN
ClrScr;
Write ('begrüßung was dein geburtsjahr..?');
Read (eingabe);
If eingabe = nratte then write ('..........');
If eingabe = nochse then write ('....');
......
ELSE Write ('........');
End.
Edit by Xin: Code-Tags eingefügt
Re: Chinahoroskop in Pascal
Verfasst: So Jan 24, 2010 8:05 pm
von cloidnerux
Hallo und Wilkommen im Forum.
Hi hoffe ihr könnt mir helfen da der compiler abricht und kein fehler anzeigt, muss das für ne Freundin bis Montag abend programmiert haben.

Hier die Vorlage!
Was bricht ab? Wenn du Compilieren willst oder wenn du es ausführtst?
Code: Alles auswählen
If eingabe = nratte then write ('..........');
If eingabe = nochse then write ('....');
Wie soll das Funktionieren? So wie ich das sehe wird noch "nochse" oder "nratte" kein Wert zugewiesen, wie soll dann if das Prüfen?
Re: Chinahoroskop in Pascal
Verfasst: Mo Jan 25, 2010 12:48 am
von TerenceSkill
Ja ich benutzt Free Pascal, wenn ich es ausführe, kommt Compiler abort.
Ja laut ner Seite zu Pascal stand da das man wenn man die TYPES macht diese nochmal zu einer VAR machen soll. Deswegen TYPE Ratte ...> VAR nratte: Ratte; oder ist das nun verdreht!?
Re: Chinahoroskop in Pascal
Verfasst: Mo Jan 25, 2010 9:26 am
von TerenceSkill
Grad der Anfang stimmt schon nicht, ich will die Jahreszahlen irgendwie abspeichern als TYP oder Feld also Array, das später beim Programm durchlauf nur schaut welches Jahr eingeben wurde und was er dann ist am ende.. kann mir keiner helfen??? pascal ist neuland ;(
Re: Chinahoroskop in Pascal
Verfasst: Mo Jan 25, 2010 11:17 am
von Xin
TerenceSkill hat geschrieben:Grad der Anfang stimmt schon nicht, ich will die Jahreszahlen irgendwie abspeichern als TYP oder Feld also Array, das später beim Programm durchlauf nur schaut welches Jahr eingeben wurde und was er dann ist am ende.. kann mir keiner helfen??? pascal ist neuland ;(
Ich vermute(!), dass Du ein Arraytypen mit einem Integer vergleichst und dass das nicht geht. Ich schätze der Vergleich ( = ) passt hier einfach nicht. Aber meine Pascalzeit ist sehr lange her.
Ich weiß es nicht, bitte poste doch mal, was der Compiler überhaupt meldet. Der wird vermutlich ja beschreiben, was ihn stört.
Ansonsten möchte ich Dich auffordern, Deine Entscheidung zu Pascal doch noch einmal zu überdenken. Das letzte mal, dass ich Pascal programmiert habe ist grob geschätzt 13 Jahre her. Auch das war nicht freiwillig, denn da war Pascal schon tot. Pascal ist heute so dermaßen tot, das stinkt nichtmals mehr. Wenn Du Dich nicht gerade zwangsläufig zu Delphi unterwegs bist (in dem Fall nimm auch Delphi) oder Dich ein Lehrer Dich dazu zwingt, dann kenne ich keinen sinnvollen Grund mehr, sich als Anfänger mit Pascal zu beschäftigen.
Edit:
Ansonsten nimm die Eingabe modolu 12 (also der Tierkreiszeichen), dann bekommst Du einen Wert zwischen 0 und 11 heraus.
Code: Alles auswählen
zeichen := eingabe mod 12;
if zeichen = 8 then println( "Du bist ein Drache" );
else if zeichen = 9 then println( "Du bist kein Drache" );
else println( "Du bist kein Drache und auch nicht das Vieh, das dem Drachen folgt" );
Das müsste für die Lösung des Problems zumindest reichen, so dass Du heute abend fertig sein kannst.
Re: Chinahoroskop in Pascal
Verfasst: Mo Jan 25, 2010 8:10 pm
von TerenceSkill
Naja hab so weit alles fertig, brauch nur noch ne Abbruch Möglichkeit falls jnd buchstaben oder eine riesen zahl ein tipp, also bewusst was falsches schreibt.
Re: Chinahoroskop in Pascal
Verfasst: Mo Jan 25, 2010 8:37 pm
von Xin
TerenceSkill hat geschrieben:Naja hab so weit alles fertig, brauch nur noch ne Abbruch Möglichkeit falls jnd buchstaben oder eine riesen zahl ein tipp, also bewusst was falsches schreibt.
Du liest doch nur Integer ein, also kannst Du zwar Buchstaben eingeben, aber es kann doch nur eine Zahl rauskommen.
Ansonsten fragst Du halt das Geburtsjahr ab und wenn das Geburtsjahr 0 ist, brichst Du ab, sonst (else) schaust Du, was das Geburtsjahr Modulu 12 ist. Wenn jemand im Jahr 100000000 geboren wird, ist der chinesische Kalender vermutlich nicht mehr gültig, aber wäre er noch gültig.... dann kann Dein Programm sagen, welchem Tierkreiszeichen er angehört
