Title: Tasks: Das Manual von Unix
Course: PAC++ SchülerInnen > Section: UNIX

Tasks

Task_1: | Initialisiere ein ARRAY und speichere zwei von der oder dem Benutzenden eingegebenen Zahlen in dieses. Gib anschließend die Summe der zwei Zahlen aus!
Task_2: | Initialisiere ein CHAR ARRAY mit den Werten P, A, C, +, + und gib dieses in einer FOR-SCHLEIFE aus. Beachte: Eine char Variable wird immer unter Hochkomma ' ' gestartet. Ein Beispiel: 'P'
Task_3:
Dr. Error hat wieder zugeschlagen. Diesmal war er aber sehr leise unterwegs und hat nur eine Mini-Änderung vorgenommen, die allerdings große Auswirkungen hat. Die Berechnung des Durchschnitts, die unbedingt nötig ist, um in die nächste Welt zu gelangen, klappt nicht mehr. Korrigiere den Code, sodass die Berechnung wieder richtig funktioniert.

// In der nächsten Zeile wird eine Bibliothek eingebunden, um Standard Input/Output Funktionen verwenden zu können.
#include <stdio.h>
int main()
{
    int avg = 0;
    int sum =0;
    int x=0;

    // Array wird deklariert. Größe muss mindestens so groß sein wie die Anzahl der Eingaben.
    int arraysize = 2;
    int num[arraysize];


    // For-Schleife: Zahlen werden abgefragt und dann in das Array gespeichert. Achtung: Hier darf auf keinen Fall arraysize überschritten werden!
    for (x=0; x<=arraysize;x++)
    {
        /*
         *  Die Funktion printf stammt aus stdio.h (Siehe erste Zeile).
         *  Doku siehe https://de.wikibooks.org/wiki/C-Programmierung:_Einfache_Ein-_und_Ausgabe#Formatelemente_von_printf
         *  %d bedeutet, dass die Variable x als Integer ausgegeben werden soll
         *  \n bedeutet, dass ein Zeilenumbruch ausgegeben werden soll
         */
        printf("Geben Sie eine natürliche Zahl ein %d\n", x);
        /*
         * Die Funktion scanf stammt ebenfalls aus stdio.h, sie ist das Äquivalent zu printf für die Eingabe
         * %d bedeutet, dass ein Integer eingegeben werden soll
         * Der Wert wird in der Variable num gespeichert (Array)
         */
        scanf("%d", &num[x]);
    }
    for (x=0; x<=arraysize;x++)
    {
        sum = sum+num[x];
    }

    avg = sum/arraysize;
    printf("Durchschnitt der eingegebenen Zahlen: %d\n", avg);
    return 0;
}
Task_4:
Erstelle ein INTEGER ARRAY der Größe 10 und befülle es von 1 bis 10:

int feld[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10};

Führe folgende Berechnung durch und gib das Array erneut aus:

feld[2] = feld[3] - 5 * feld[7 + feld[3]];

Berechne den Wert an der Stelle feld[2] händisch nach!
Task_5: (++)
Programmiere ein Spiel, das dem Prinzip des Schiffeversenkens ähnelt und folgenden Spielablauf unterstützt:
- Initialisiere ein Spielfeld mit fixer Größe von 5x5 mit dem Charaktersymbol ? Hinweis: Nutze hierfür ARRAYs.

- In einem ersten Schritt soll die erste Spielerin oder der erste Spieler beliebige Bomben mittels Koordinatenangabe (Spalten und Zeilen) setzen können.

- Wurden ausreichend Bomben gesetzt, findet ein SpielerInnentausch statt.
Baue hierfür ausreichende Abstände mit cout << endl; im Code ein, damit die neue Spielerin oder der neue Spieler nicht die gesetzten Koordinaten erkennen kann.

- Die zweite Spielerin oder de zweite Spieler muss nun gesetzte Bomben im Spielfeld entschärfen und erhält Feedback, ob eine Bombe entschärft wurde und wieviele noch übrig sind.

- Gefundene Bomben müssen mit einem X am Feld markiert werden.
Felder, die zur Überprüfung von der zweiten Spielerin oder vom zweiten Spieler gewählt wurden, wo sich keine Bombe befindet, sollen mit 0 markiert werden.

- Sorge dafür, dass das Spielfeld nach jeder Aktion vollständig ausgegeben wird!

(++) schwierig, aber toll

Bonustasks

Bonus_1: | Deklariere ein zwei-dimensionales ARRAY in der Größe von [2][2]. Befülle dieses zwei-dimensionale Array mittels FOR-SCHLEIFE mit dem Zeichen $ und gib das gesamte Array mit seinen Inhalten in einem nächsten Schritt aus.
Bonus_2:
Erstelle eine kurze Chatbot-Sequenz mit einem CHAR ARRAY in der folgenden Form (fetter Text sind Benutzereingaben):

Wie heißt du? Max

Wo lebst du? Wien

Hallo Max aus Wien!
Bonus_3: | Erstelle ein INTEGER ARRAY der Größe 10 und gib die Array-Größe und Element-Größe aus. Hinweis: Nutze hierfür die Funktionalität sizeof()
Bonus_4: | Berechne die Element-Anzahl eines INTEGER ARRAYs der Größe 10. Nutze hierfür die Funktionalität sizeof(). Hinweis: Du kannst die Element-Anzahl wie folgt berechnen: (Array-Größe) / (Element-Größe).
Bonus_5:
Programmiere unter Verwendung der String Klasse ein einfaches Hangman-Spiel. Informationen über die String Klasse findest du unter: http://www.cplusplus.com/reference/string/string/
- Inkludiere die Klasse string mittels #include <string> direkt unter #include <iostream>

- Fordere die Spielenden auf, ein Wort einzugeben und speichere dieses in einer Variable. Nutze hierfür die Funktion getline().

- Nutze eine Zählvariable, die die Fehler der Benutzereingabe zählt. Wurden 6 Fehler erreicht (falsche Buchstaben gewählt), hat die Spielerin oder der Spieler verloren und das korrekte Wort wird der oder dem Benutzenden angezeigt.

- Gib der oder dem Benutzenden nach jeder Eingabe Information darüber, welche Buchstaben bereits korrekt erfasst wurden, wieviele Versuche noch übrig sind und wo Buchstaben an welcher Stelle noch fehlen.

- Hat die Benutzerin oder der Benutzer alle richtigen Buchstaben eingegeben, dann soll "Du hast gewonnen!" angezeigt werden.

- Nutze die Funktionalität .find(), um Tipps zu finden.

- Nutze die Funktionalität .replace(), um entsprechende Tipps zu vermerken.
- Weitere Tipps zu HangMan

So könnte eine Spielsequenz aussehen:

sh-4.3$ main

Gibt das Wort für eine andere Spielerin oder einen anderen Spieler ein:

Semmel

6 Buchstaben inkl. Leerzeichen

Du hast noch 6 Versuche

Errate einen Buchstaben oder ein Wort!

e

_e__e_

6 Buchstaben inkl. Leerzeichen

Du hast noch 6 Versuche

Errate einen Buchstaben oder ein Wort!

S

Se__e_

6 Buchstaben inkl. Leerzeichen

Du hast noch 6 Versuche

Errate einen Buchstaben oder ein Wort!

a

Das ist falsch

Se__e_

6 Buchstaben inkl. Leerzeichen

Du hast noch 5 Versuche

Errate einen Buchstaben oder ein Wort!

m

Semme_

6 Buchstaben inkl. Leerzeichen

Du hast noch 5 Versuche

Errate einen Buchstaben oder ein Wort!

l

Semmel

6 Buchstaben inkl. Leerzeichen

Du hast noch 5 Versuche

Du hast gewonnen!

sh-4.3$