Οργάνωση προγραμμάτων: σχεδιασμός σε τμήματα αφηρημένοι τύποι δεδομένων

Διομήδης Σπινέλλης
Τμήμα Διοικητικής Επιστήμης και Τεχνολογίας
Οικονομικό Πανεπιστήμιο Αθηνών
dds@aueb.gr

Χωρισμός του προγράμματος σε αρχεία

Ξεχωριστή μεταγλώττιση

Δήλωση και χρήση καθολικών μεταβλητών

Δήλωση και χρήση συναρτήσεων

Χρήση αρχείων επικεφαλίδων

Περιορισμός της εμβέλειας

Αφηρημένοι τύποι

Ασκήσεις

Υλοποίηση σε τμήματα - έλεγχος

  1. Να γράψετε μια συνάρτηση void hangman(int n) η οποία θα σχεδιάζει στην οθόνη μια κρεμάλα με έναν κρεμασμένο άνθρωπο όπως τον παρακάτω:
    ++----
    |    O
    |   /|\
    |   / \
    
    
    (Επιτρέπεται να βελτιώσετε το παραπάνω σχέδιο).

    Ανάλογα με την τιμή του n (0-6) θα εμφανίζεται και αντίστοιχος αριθμός από τα μέλη του ανθρώπου.

    n = 0
    
    ++----
    |
    |
    |
    
    n = 1
    ++----
    |    O
    |
    |
    
       ...
    
    n = 6
    ++----
    |    O
    |   /|\
    |   / \
    
    
    Προσπαθήστε η συνάρτησή σας να μην περιέχει επαναλαμβανόμενο κώδικα.
  2. Ολοκληρώστε το πρόγραμμά σας προσθέτοντας τη συνάρτηση main με εντολές κατάλληλες για να ελέγξετε τη σωστή λειτουργία της συνάρτησης hangman.
  3. Γράψτε (σε ξεχωριστό αρχείο C) πρόγραμμα το οποίο υλοποιεί το παιγνίδι "κρεμάλα" μεταξύ δύο παικτών. Συγκεκριμένα το πρόγραμμα διαβάζει από ένα χρήστη μια λέξη μέχρι 20 χαρακτήρες. Στη συνέχεια επαναλαμβάνει τα παρακάτω: Όταν ο δεύτερος παίκτης "κρεμαστεί" ή μαντέψει τη λέξη εμφανίζεται αντίστοιχο μήνυμα.
    Σημείωση: για να διαβάσετε τη λέξη μπορείτε να διαβάζετε χαρακτήρες μέχρι να συναντήσετε \n.
    Παράδειγμα:
    Enter word: hello
    
    ++----
    |
    |
    |
    
    The word is: *****
    Enter letter guess: a
    Sorry...
    
    
    
    
    ++----
    |    O
    |
    |
    
    The word is: *****
    Enter letter guess: e
    Bravo!
    
    
    
    
    ++----
    |    O
    |
    |
    
    The word is: *e***
    Enter letter guess: t
    Sorry...
    
    
    
    
    
    ++----
    |    O
    |    |
    |
    
    The word is: *e***
    Enter letter guess: l
    Bravo!
    
    
    
    
    ++----
    |    O
    |    |
    |
    The word is: *ell*
    Enter letter guess: t
    Sorry...
    
    
    
    ++----
    |    O
    |   /|
    |
    The word is: *ell*
    Enter letter guess:
    ...
    

Βιβλιογραφία