Allgemeine Informatik WS~2000/01 Allgemeine Informatik WS 2000/01
Prof. Dr. H. Neumann · Dr. K. Murmann · S. Geschwentner · Dr. F. Schwenker
7. Aufgabenblatt (bis zum 17.01.2001)


Aufgabe 17.
Ein Skatblatt besteht aus 32 Spielkarten. Die 8 Kartenwerte As, Koenig, Dame, Bube, Zehn, Neun, Acht, Sieben kommen in den 4 Farben Kreuz, Pik, Herz, Karo vor.

Definieren Sie zunächst einen geeigneten Datentyp Skatkarte und realisieren Sie das Skatblatt als ARRAY beispielsweise durch:

VAR skatblatt : ARRAY [1..32] OF Skatkarte;

Hierbei ist skatblatt[1] die obere und skatblatt[32] die untere Karte des Kartenstapels.

Vor dem Mischen seien die Karten nach Kartenwert und Farbe absteigend sortiert, d.h. die Kreuz-As-Karte ist in skatblatt[1] gespeichert, bis schließlich zur Karo-Sieben-Karte, die in skatblatt[32] gespeichert ist.

  1. Schreiben Sie ein Programm, das einen Mischvorgang durch wiederholte Vertauschung zweier Spielkarten aus diesem Kartenstapel simuliert. Verwenden Sie zum Auswählen einer Spielkarte den folgenden Algorithmus:

             zz   := (125*zz) MOD 8192;
             zahl := ((zz DIV 4) MOD (b-a+1))+a
    

    Initialisieren Sie hierbei zz zu Beginn mit dem Wert 1354.

    Durch wiederholtes Abarbeiten der beiden angegeben Zeilen wird eine Sequenz von Pseudo-Zufallszahlen (zahl) im Interval [a,b] erzeugt. (a, b, zz, zahl sind dabei vom Typ CARDINAL).

    Insgesamt sollen zum Mischen des Blattes genau 5000 Kartenvertauschungen durchgeführt werden. Es sollen dabei nur die Vertauschungen berücksichtigt werden, die auch zu einer Veränderung des Kartenstapels führen.

    Drucken Sie den Kartenstapel nach dem Mischen aus!

  2. Schreiben Sie nun ein Programmstück, das feststellt ob sich unter den oberen fünf Karten im Kartenstapel mindestens ein Paar befindet. Mit einem Paar bezeichnet man zwei Karten des gleichen Kartenwertes.

Aufgabe 18.
Schreiben Sie ein Programm crypt1.m2, das einen Text von der Standardeingabe einliest und diesen verschlüsselt wieder ausgibt. Jedes einzelne Wort soll dabei zunächst nach dem Verfahren aus der Aufgabe 11 verschlüsselt werden. Damit die Entschlüsselung für Dritte schwieriger wird, sollen die verschlüsselten Wörter in umgekehrter Reihenfolge ausgegeben werden.

Schreiben Sie ein zugehöriges Dekodierungsprogramm decrypt1.m2 und testen sie Ihre Programme.

Hinweis: Ihre Programme sollen in der Lage sein, Texte mit bis zu 1000 Wörtern mit bis zu 30 Zeichen pro Wort zu verarbeiten. Dabei ist ein Wort entweder eine Folge von alphanumerischen Zeichen oder eine Folge von nicht-alphanumerischen Zeichen. Beispiele: Informatik Modula2 ?*! sind Wörter und 2,5 [a,b) sind keine Wörter. Ihr Programm soll mit einer sinnvollen Meldung abbrechen, falls der Text die genannten Voraussetzungen nicht erfüllt.

Wir wünschen Ihnen frohe Feiertage und eine erfolgreiches Neues Jahr!


File translated from TEX by TTH, version 1.95.
On 20 Dec 2000, 13:29.