1. Homepage
  2. Programming
  3. Programmieren II - Praktikum 2: Sudoku, Game of Live

Programmieren II - Praktikum 2: Sudoku, Game of Live

Engage in a Conversation
Hochschule Osnabrück11b1651Programmieren IISudokuCC++Game of Live

2. Praktikum zum Programmieren II
CourseNana.COM

  1. a)  Bearbeiten Sie die Aufgaben in Teams zu zwei Personen. Sie erzeugen aber eine Lösung pro Team. CourseNana.COM

  2. b)  Achten Sie bei der Teamzusammenstellung darauf, dass Beide an der Lösung der Aufgabe tatsächlich arbeiten und sich gegenseitig kontrollieren und ergänzen.
    Nicht gewünscht ist es, dass eine Person die Aufgabe(n) erledigt und die zweite Person wohlwollend aber passiv zuschaut.
    CourseNana.COM

  3. c)  Zum vereinbarten Termin melden Sie sich im MS Teams an und besprechen Ihre Lösung mit dem Praktikumsleiter. CourseNana.COM

  4. d)  Wenn Sie eine Aufgabe ergänzen bzw. Wiederholen sollen, so besprechen Sie die „alte“ Aufgabe zuerst. CourseNana.COM

  5. e)  Beginnen Sie die Lösung so früh wie möglich, warten Sie nicht bis kurz vor Ultimo. Erstens ist der Lerneffekt dann nur gering und Sie können die Aufgabe auch nicht mit der nötigen Sorgfalt lösen. Gewöhnen Sie sich gar nicht erst an, Dinge zu verschieben. CourseNana.COM

  6. f)  Prüfen Sie vor Abgabe folgender Checkliste: CourseNana.COM

    1. i)  Jedes Programm ist kommentiert. CourseNana.COM

    2. ii)  Jede Datei enthält im Kopf einen Kommentar. Als Autor des Programmes führen Sie alle CourseNana.COM

      Team-Mitglieder auf. CourseNana.COM

    3. iii)  Der Programmcode lässt sich übersetzen und zwar fehlerfrei und ohne Warnings. Prüfen CourseNana.COM

      sie das mit dem Befehl „Projektmappe neu erstellen“. CourseNana.COM

    4. iv)  Sie haben das Programm ausprobiert und auch einmal im Debugger Schritt-für-Schritt CourseNana.COM

      verfolgt? CourseNana.COM

    5. v)  Sie halten die Codierungsrichtlinien ein? CourseNana.COM

      Einstimmung ins Thema CourseNana.COM

In diesem Praktikum soll vor allem der Anfang des Programmierens geübt werden: CourseNana.COM

  1. Mehrdimensionale Arrays und Strings CourseNana.COM

  2. Entwicklung von etwas komplexeren Algorithmen CourseNana.COM

Georg Westerkamp Programmieren II WS 2020/2021 CourseNana.COM

Aufgabe 2.1 – Sudoku
Beim Sudoku-Spiel muss ein 9 × 9-Spielfeld so mit den Zahlen 1 bis 9 gefüllt werden, dass CourseNana.COM

  1. a)  in jeder Zeile jede Zahl genau einmal vorkommt, CourseNana.COM

  2. b)  in jeder Spalte jede Zahl genau einmal vorkommt und CourseNana.COM

  3. c)  in jedem 3 × 3-Block jede Zahl genau einmal vorkommt. CourseNana.COM

Ein Beispiel für ein korrekt gelöstes Sudoku ist dieses Feld: CourseNana.COM

638749251 795621348 241385679 364852917 987413562 152976483 516297834 879534126 423168795 CourseNana.COM

  1. (a)  ProgrammierenSieeineFunktionmitdieserSignatur: CourseNana.COM

          int ausgabe(int feld[9][9]);
    

    Die Funktion soll das Sudoku-Feld auf dem Bildschirm so ausgeben, dass man die Struktur des CourseNana.COM

    Sudokus wiedererkennt. CourseNana.COM

  2. (b)  ProgrammierenSieeineFunktionmitdieserSignatur: CourseNana.COM

          int istLoesung(int feld[9][9]);
    

    Die Funktion soll eine 1 zurückliefern, wenn das übergebene Feld eine korrekte Sudoku-Lösung darstellt. Andernfalls soll sie eine 0 zurückliefern. CourseNana.COM

    Tipp: Es ist ausreichend, wenn Sie für eine Zeile (Spalte, Block) nur testen, ob jede Zahl mindes- tens einmal vorkommt. Wenn das nämlich für alle Zahlen 1 bis 9 der Fall ist, dann kann jede Zahl nur genau einmal vorgekommen sein. CourseNana.COM

    Hinweis: Sie können Ihr Programm so erweitern, dass es den Inhalt des Sudoku-Feldes vom Benutzer abfragt oder Sie verwenden das o.a. Standardbeispiel.
    Prüfen Sie Ihre Funktionen aber unbedingt mit „ungültigen“ Feldbelegungen.
    CourseNana.COM

Aufgabe 2.2 Game of Live.
Im Jahr 1968 wurde von J. H. Conway an der Universität Cambridge das ”game of life“ erfunden und CourseNana.COM

1970 von M. Gardner im Scientific American einem breiten Publikum vorgestellt.
Dabei handelt es sich um einen Algorithmus, der das Wachstum von fiktiven Lebewesen (Bakterien) simuliert. Infolge der interessanten Muster, die dabei entstehen, ist das game of life weit über Biologenkreise hinaus bekannt geworden. Es ist ein Beispiel für einen sogenannten zellulären Automaten.
Schauplatz des game of life ist eine zweidimensionale Matrix aus Zellen, die entweder tot (’ ’) oder lebendig (’X’) sind. Wie sich eine Zelle weiterentwickelt, hängt von ihren acht Nachbarn ab, und zwar gelten folgende Regeln:
CourseNana.COM

  1. Eine lebende Zelle überlebt in der nächsten Generation, wenn sie zwei oder drei Nachbarn hat. Sind es weniger bzw. mehr, so stirbt sie an Vereinsamung bzw. Überbevölkerung. CourseNana.COM

  2. Eine tote Zelle wird immer dann in der nächsten Generation zum Leben erweckt, wenn sie genau drei lebendige Nachbarn hat, ansonsten bleibt sie tot. CourseNana.COM

  3. Als Nachbar zählen alle acht direkt oder diagonal benachbarten Felder. CourseNana.COM

Die Zeit verstreicht dabei in diskreten Schritten, d.h. jede Zelle verharrt in ihrem zuvor eingenommenen Zustand, bis gewissermaßen bei einem Gongschlag alle gleichzeitig in den neuen Zustand übergehen. Anders ausgedrückt:
Es wird für jede Zelle nachgeschaut, wie ihr Zustand und der ihrer Nachbarn zu einer bestimmten Zeit n ist und berechnet, wie ihr Zustand zur nächsten Zeit n + 1 sein wird. Hat man dies für alle Zellen getan, so werden alle gleichzeitig auf den neuen Zustand gesetzt.
CourseNana.COM

  1. (a)  GestaltensiedasProgrammso,dassmanalsAusgangsmusterentwedereinsderfolgendenfünf auswählen kann, oder über die Angabe der Koordinaten (Zeile, Spalte) ein eigenes Ausgangs- muster lebendiger Zellen eingeben kann. CourseNana.COM

  2. (b)  WählensiefürdasgameoflifeeinFeldderGrösse:22Zeilenund78Spalten.ÜberdemFeld sollte die Nummer der aktuellen Generation angezeigt werden. Jede neue Generation soll auf dem Bildschirm ausgegeben werden, wobei die vorhergehende Generation immer durch die aktuelle überschreiben werden soll. CourseNana.COM

    Mit folgendem Aufruf können Sie die den Inhalt der Konsole löschen. Verwenden Sie dazu den Header stdlib.h. CourseNana.COM

    system("cls"); CourseNana.COM

(c) DieEntwicklungsollfortlaufendangezeigtwerden.DasProgrammsollsolangelaufen,biseine Taste gedrückt wird. Unter Verwendung der beiden Header Windows.h und conio.h lässt sich dafür folgende Schleife nutzen:
CourseNana.COM

(d) ErweiternSiedieAuswahlderAusgangsformationnunumdieGleiterkanone: CourseNana.COM

Die Gleiterkanone wurde 1970 entdeckt von R. W. Gosper, der damals Student am Massachusetts Insti- tut of Technologie (MIT) war, und sich unbedingt den 50-Dollar-Preis verdienen wollte, den Conway aus- gelobt hatte. Den Preis sollte der erhalten, der als erster beweisen würde, dass eine Ausgangsstellung unbegrenzt wachsen kann. Gospers Gleiterkanone spuckt jeweils nach 30 Zeitschritten einen neuen Glei- ter aus, wobei sie selbst in den Ausgangszustand zurückkehrt. CourseNana.COM

while (!_kbhit()) / Abbruch bei Tastendruck { CourseNana.COM

Sleep(1000); // Das Programm pausiert für x Millisekunden CourseNana.COM

... } CourseNana.COM

Quellen: Prof. Dr. S. Rohjans, „Praktikumsaufgaben für PR1 und 2, HAW Hamburg. 4/4  CourseNana.COM

Get in Touch with Our Experts

WeChat WeChat
Whatsapp WhatsApp
Hochschule Osnabrück代写,11b1651代写,Programmieren II代写,Sudoku代写,C代写,C++代写,Game of Live代写,Hochschule Osnabrück代编,11b1651代编,Programmieren II代编,Sudoku代编,C代编,C++代编,Game of Live代编,Hochschule Osnabrück代考,11b1651代考,Programmieren II代考,Sudoku代考,C代考,C++代考,Game of Live代考,Hochschule Osnabrückhelp,11b1651help,Programmieren IIhelp,Sudokuhelp,Chelp,C++help,Game of Livehelp,Hochschule Osnabrück作业代写,11b1651作业代写,Programmieren II作业代写,Sudoku作业代写,C作业代写,C++作业代写,Game of Live作业代写,Hochschule Osnabrück编程代写,11b1651编程代写,Programmieren II编程代写,Sudoku编程代写,C编程代写,C++编程代写,Game of Live编程代写,Hochschule Osnabrückprogramming help,11b1651programming help,Programmieren IIprogramming help,Sudokuprogramming help,Cprogramming help,C++programming help,Game of Liveprogramming help,Hochschule Osnabrückassignment help,11b1651assignment help,Programmieren IIassignment help,Sudokuassignment help,Cassignment help,C++assignment help,Game of Liveassignment help,Hochschule Osnabrücksolution,11b1651solution,Programmieren IIsolution,Sudokusolution,Csolution,C++solution,Game of Livesolution,