ΠΟΛΥΤΕΧΝΕΙΟ ΚΡΗΤΗΣ
Τμήμα Ηλεκτρονικών Μηχ. και Μηχ. Υπολογιστών

ΛΟΓ 102: Τεχνολογία Λογισμικού Ι
http://www.softlab.ntua.gr/~nickie/TUC/log102/

1η Σειρά Ασκήσεων

Ημερομηνία παράδοσης: Τρίτη 7 Μαρτίου 2000
Ποσοστό επί της συνολικής βαθμολογίας:

10%

Η παράδοση των ασκήσεων μπορεί να γίνει με έναν από τους ακόλουθους τρόπους κατά σειρά προτίμησης:


Άσκηση 1 (40%)

Να γραφεί ένα πρόγραμμα σε C το οποίο να ζητάει από το χρήστη ένα φυσικό αριθμό n και να εκτυπώνει τους πρώτους αριθμούς μεταξύ 1 και n. Μπορείτε να χρησιμοποιήσετε οποιονδήποτε τρόπο υπολογισμού των πρώτων αριθμών, αρκεί το αποτέλεσμα να είναι σωστό.

Ένα παράδειγμα χρήσης του προγράμματος δίνεται παρακάτω, όπου τα στοιχεία που εισάγει ο χρήστης φαίνονται υπογραμμισμένα.

Give me a number: 42
The prime numbers between 1 and 42 are:
2, 3, 5, 7, 11, 13, 17, 19,
23, 29, 31, 37, 41.

Οι πρώτοι αριθμοί θα πρέπει να εμφανίζονται με τον τρόπο που φαίνεται στο παράδειγμα, δηλαδή:

Κατάλληλο διαγνωστικό μήνυμα θα πρέπει να εμφανίζεται σε περίπτωση εσφαλμένης εισόδου από το χρήστη.


Άσκηση 2 (30%)

Να υλοποιηθούν σε C οι ακόλουθες συναρτήσεις, χρησιμοποιώντας δείκτες σε χαρακτήρες.

int my_strlen (const char * s);

Υπολογίζει το πλήθος των χαρακτήρων της συμβολοσειράς s, χωρίς να μετρά τον καταληκτικό χαρακτήρα '\0'.

void my_strcpy (char * s1, const char * s2);

Αντιγράφει τη συμβολοσειρά s2 στη συμβολοσειρά s1, υποθέτοντας ότι η s1 διαθέτει τον απαραίτητο χώρο.


Άσκηση 3 (30%)

Να υλοποιηθεί σε C η ακόλουθη συνάρτηση με δύο τρόπους: πρώτα χρησιμοποιώντας πίνακες και μετά χρησιμοποιώντας δείκτες σε χαρακτήρες.

void my_strrev (char * s);

Αντιστρέφει επί τόπου τη συμβολοσειρά s. Αν π.χ. κληθεί η συνάρτηση με αρχική τιμή της συμβολοσειράς "hello", τότε μετά την κλήση η τιμή της συμβολοσειράς θα πρέπει να είναι "olleh".


Νίκος Παπασπύρου (nickie@softlab.ntua.gr). 21/2/2000 .