Εργαστήριο 1 - C Recap / Debugging

Προθεσμία τελικής παράδοσης: Κυριακή 20/3, 23:59.

Καλώς ήρθατε στο πρώτο εργαστήριο του μαθήματος Δομές Δεδομένων και Τεχνικές Προγραμματισμού! Για οποιαδήποτε απορία προκύψει κατα την διάρκεια του εργαστηρίου, επικοινωνήστε με τον υπεύθυνο ή κάποιον απο τους βοηθούς. Καλή αρχή!

1. Κατεβάστε τον κώδικα του εργαστηρίου

Όπως σε όλα τα εργαστήρια, ο κώδικας δίνεται μέσω Git. Για να τον κατεβάσετε:

  1. Επισκεφτείτε τον παρακάτω σύνδεσμο: https://classroom.github.com/a/msIc2jlB
    • Δεν θα σας ζητηθεί ξανά αντιστοίχιση account (εφόσον το έχετε ήδη κάνει)
    • Αναλυτικές οδηγίες, αν χρειάζεστε, υπάρχουν στο Εισαγωγικό Εργαστήριο.
  2. Αφού ολοκληρώσετε το προηγούμενο βήμα, κατεβάστε με git clone το προσωπικό σας repository (όπου <username> το username σας στο github):
    git clone https://github.com/chatziko-k08/2022-lab-1-<username> 
    
    

2. Δημιουργία ενός απλού προγράμματος και Makefile

  1. Δημιουργήστε το directory programs/hello, προσθέστε ένα αρχείο hello.c που να υλοποιεί ένα πρόγραμμα που απλά τυπώνει Hello, world.
  2. Αντιγράψτε το programs/minmax/Makefile στο directory που φτιάξατε και τροποποιήστε το ώστε να κάνει compile το hello.c
  3. Δοκιμάστε να το κάνετε compile από το τερματικό
  4. Τροποποιήστε το αρχείο .vscode/settings.json ώστε το VS Code να κάνει compile του πρόγραμμα που φτιάξατε
    • δοκιμάστε να κάνετε compile με Ctrl-Shift-B
    • και debug με F5
  5. Από την περιοχή Source Control του VS Code, κάντε commit τα νέα αρχεία
  6. Από το ... menu στην ίδια περιοχή επιλέξτε Push
    • ελέγξτε στο github.com ότι το repository περιέχει τις αλλαγές σας

3. C recap exercises

  1. Στο directory programs/recap υπάρχουν αρχεία κώδικα με ελλείψεις και λάθη. Διορθώστε τα ώστε το πρόγραμμα να τρέχει χωρίς μηνύματα λάθους.
    • όπως και προηγουμένως, τροποποιήστε το .vscode/settings.json για να κάνετε compile το recap
  2. Κάντε commit και push τις αλλαγές όπως και στην προηγούμενη άσκηση

4. Generic max

  1. Στο directory generic_max υπάρχει υλοποιημένη μια συνάρτηση generic_max που επιστρέφει το μέγιστο από δύο ορίσματα οποιουδήποτε τύπου (μέσω void*)
  2. Προσπαθήστε να καταλάβετε πώς δουλεύει η συνάρτηση
  3. Τροποποιήστε τη main ώστε να τυπώνει το μέγιστο (αλφαβητικά) από 2 strings aaa και zzz
  4. Τροποποιήστε το stats.h module, προσθέτωντας τη συνάρτηση generic_max
  5. Τροποιήστε το αρχείο generic_max.c, αφαιρώντας τη συνάρτηση και καλώντας την υλοποίηση του module.

Παράδοση

Ολα τα αρχεία που φτιάξατε πρέπει να τα κάνετε commit και push στο github. Αν επιθυμείτε, μπορείτε να συνεχίσετε να τα δουλεύετε και μετά τη λήξη του εργαστηρίου, μέχρι την τελική ημερομηνία παράδοσης.