|
|
|
|
|
|
|
|
|
|
|
Beispiel Nr.1: -Einige Freunde schmeißen eine Party. Bei den Gästen Berlanda J., Amrain N. und Cainelli P. gibt es folgende Probleme:
1.Mit Amrain N. muss auch Berlanda J. eingeladen werden. 2.Entweder Amrain N. oder Cainelli P. wird eingeladen. 3.Berlanda J. und Cainelli P. dürfen nicht gemeinsam eingeladen werden.
Programm: (* * Name: P.S. & L.L. * Klasse: 3IA * Datum: 05.02.2007 * Aufgabe: Auf einer Party *)
PROGRAM Wahrheitstabelle; USES CRT; PROCEDURE Kopf; (*Erzeugt den Kopf der Wahrheitstabelle*) VAR i : INTEGER; (*Laufvariable*) BEGIN (*Kopf erstellen*) WRITELN; WRITELN ('Amrain N.',' ':4,'Berlanda J.',' ':4,'Cainelli P.',' ':4,'Ergebnis',' ':8); FOR i := 1 TO 51 DO WRITE ('-'); END; PROCEDURE Ausgabe (a, b, c, w : BOOLEAN); (*Ausgabe der 3 Elemente*) BEGIN WRITELN(' '); WRITE (a:5); (*A ausgeben*) WRITE (b:15); (*B ausgeben*) WRITE (c:15); (*C ausgeben*) WRITE (w:15); (*Ergebnis ausgeben*) END; PROCEDURE Rechnung; (*Erste Rechnung*) VAR a, b, c, erg : BOOLEAN; (*Variablen fr die Wahrheitstabelle*) BEGIN KOPF; (*Kopf wird geladen*) (*Mit den For Schleifen werden alle Kombinationen gerechnet*) FOR a := FALSE TO TRUE DO FOR b := FALSE TO TRUE DO FOR c := FALSE TO TRUE DO BEGIN DELAY(275) ; Write(' '); erg := (a<=b)AND(a=c)AND(NOT b OR NOT c);(*Wahrheitstabelle berechnen*) ausgabe(a, b, c, erg); (*Ausgabe der Wertetabelle*) END END;
VAR a, b, c, erg : BOOLEAN; (*Variablen der Wahrheitstabelle*) BEGIN CLRSCR; TextColor(White); (*Ausgabe des Raetsels*) WRITELN (' Folgendes Raetsel berechnet dieses Programm:'); WRITELN; WRITELN (' Es werden Einladungen verschickt, unter folgenden Bedingungen:'); WRITELN (' 1. Mit Amrain N. muss auch Berlanda J. eingeladen werden.'); WRITELN (' 2. Entweder Amrain N. oder Cainelli P., werden gemeinsam eingeladen,'); WRITELN (' oder keiner von beiden.'); WRITELN (' 3. Berlanda J. und Cainelli P. duerfen nicht gemeinsam eingeladen werden.'); WRITELN; WRITELN (' TRUE = Wahr FALSE = Falsch'); WRITELN; Rechnung; (*Berechnung und Ausgabe der Wahrheitstabelle*) Writeln; Writeln; Writeln('Antwort:'); Writeln('1. Niemand geht zur Party,'); Writeln(' oder'); Writeln('2. nur Berlanda J. geht zur Party'); Readln; END.
Antwort: Entweder niemand trinkt oder nur Berlanda J.
Beispiel Nr.2: Einige Freunde geben sich die Kante!
Die Sechs Freunde Franz, Heidi, Josef, Johan, Maria und Lasse, gehen an einem Samstag Abend in eine Bar, um ein Bierchen zu kippen. Allerdings ist die 'Orgie' durch einige Bedingungen eingegrenzt. Diese Bedingungen sind:
1.Wenn Heidi trinkt, dann trinken auch Josef und Johan. 2.Maria und Josef trinken nie zusammen, einer von ihnen jedoch trinkt immer. 3.Wenn Lasse trinkt, dann trinken auch Franz oder Josef. 4.Heidi hasst Johan und deshalb trinken sie nie zusammen, sondern immer nur einer von beiden. 5.Johan und Lasse trinken nur gemeinsem oder gar nicht.
Wer trinkt an diesen Abend etwas?
Programm: (* * Name: P.S. & L.L. * Klasse: 3IA * Datum: 05.02.2007 * Aufgabe: *)
PROGRAM Wahrheitstabelle; USES CRT; PROCEDURE Kopf; (*Erzeugt den Kopf der Wahrheitstabelle*) VAR i : INTEGER; (*Laufvariable*) BEGIN (*Kopf erstellen*) WRITELN; WRITELN ('Franz ', ' Heidi ',' Josef ',' Johan ',' Maria ',' Lasse '); FOR i := 1 TO 51 DO WRITE ('-'); END; PROCEDURE Ausgabe(a,b,c,d,e,f,B1,B2,B3,B4,B5,w:BOOLEAN);(*Ausgabe d.Elemente*)
PROCEDURE SCHREIBE(x:BOOLEAN); BEGIN IF x= FALSE THEN Write ('0') ELSE Write ('1'); END;
BEGIN WRITELN(' '); Write(' ');Textcolor(green); Schreibe (a ); Textcolor(White); Write(' | '); Textcolor(green); Schreibe (b ); Textcolor(White); Write(' | '); Textcolor(green); Schreibe (c ); Textcolor(White); Write(' | '); Textcolor(green); Schreibe (d ); Textcolor(White); Write(' | '); Textcolor(green); Schreibe (e ); Textcolor(White); Write(' | '); Textcolor(green); Schreibe (f ); Textcolor(White); Write(' | '); IF w= TRUE THEN BEGIN TextBackground(RED); END; Textcolor(White); Write (' '); Schreibe (B1); Write(' |'); Schreibe (B2); Write(' |'); Schreibe (B3); Write(' |'); Schreibe (B4); (*Werte Ausgaben*) Write(' |'); Schreibe (B5); Write(' |'); Schreibe (w); TEXTBackground(Blue); END; PROCEDURE Rechnung; (*Erste Rechnung*) VAR z: INTEGER; a,b,c,d,e,f,B1,B2,B3,B4,B5,erg:BOOLEAN;(*Variablen fr die Wahrheitstabelle*) BEGIN KOPF; (*Kopf wird geladen*) z:=0; (*Mit den For Schleifen werden alle Kombinationen gerechnet*) FOR a := FALSE TO TRUE DO FOR b := FALSE TO TRUE DO FOR c := FALSE TO TRUE DO FOR d := FALSE TO TRUE DO FOR e := FALSE TO TRUE DO FOR f := FALSE TO TRUE DO BEGIN DELAY(275) ; Write(' '); B1:=(b <= (d AND c)); B2:=(e <> c); B3:=(f <= (a OR c)); B4:=(b XOR d); B5:=(D = F); erg:=B1 AND B2 AND B3 AND B4 AND B5; ausgabe( a,b,c,d,e,f,B1,B2,B3,B4,B5,erg); (*Ausgabe der Wertetabelle*) z:= z+1; IF z MOD 4= 0 THEN BEGIN Writeln; Write('-----|-----|-----|-----|-----|-----|--------------------------'); END END END;
VAR a, b, c, d, e, f, erg : BOOLEAN; (*Variablen der Wahrheitstabelle*) BEGIN CLRSCR; TextBackground(Blue); Writeln; Write (' Die sechs Freunde '); TextColor(yellow); Write('Franz, Heidi, Josef, Johan, Maria '); Textcolor(White); Write('und'); TextColor(yellow); Write(' Lasse '); Textcolor(White); Writeln('treffen sich an'); Write(' einem Samstag Abend, um mal so richtig'); Writeln (' auf den Putz zu hauen und sich die '); Write (' absolute Kante zu geben. '); Writeln ('Dabei gelten folgende Bedingungen:'); Writeln; TextColor(yellow);Write(' 1.'); Writeln('Wenn Heidi Alkohol trinkt, dann trinken auch Josef und Johann. '); TextColor(yellow);Write(' 2.'); Write('Maria und Josef trinken nicht zusammen, aber einer von beiden '); Writeln('trinkt immer.'); TextColor(yellow);Write(' 3.'); Writeln('Wenn Lasse trinkt, dann trinkt auch Franz oder Josef.'); TextColor(yellow);Write(' 4.'); Writeln('Heidi hasst Johan, deshalb trinken sie nie gemeinsam.'); TextColor(yellow);Write(' 5.'); Write('Johan und Lasse trinken nur gemeinsam, ansonsten trinkt keiner von Beiden'); Writeln; Writeln; Writeln; Writeln; Writeln; Writeln; Writeln; Writeln; Writeln; Writeln; Writeln(' Zur Auswertung des Problems drcken sie bitte die Return-Taste und'); Writeln(' achten sie dabei auf die rot markierten Zeilen. Diese geben die Stelle'); Write (' an, an welchen alle Bedingungen erfllt sind.'); Readln; ClrScr; TextBackGround(Blue); (*Ausgabe des Raetsels*) Rechnung; (*Berechnung und Ausgabe der Wahrheitstabelle*) END.
Fazit des Rätsels:
1. Nur Josef, Johan und Lasse trinken. 2. Alle trinken, außer Heidi und Josef. 3. Heidi und Maria trinken nichts.
Zurück zur Theorieseite: Hier Klicken
|
|
|
|
|
|
|
|
|
Letzte Änderung: 07.02.2007
© Pädagogisches Institut für die deutsche Sprachgruppe
- Bozen. 2000 -
|
|
|
|
|
|
|
|
|