25/04/2013

 

ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΩΝ ΜΑΘΗΜΑΤΙΚΩΝ

ΤΕΜ-102: ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Η/Υ

 

3η ΣΕΙΡΑ ΑΣΚΗΣΕΩΝ

 

Ημερομηνία Παράδοσης: Μέχρι το Σάββατο 18/05 στις 24:00. Η παράδοση θα γίνει στέλνοντας με email το αρχείο αναφοράς στην διδάσκουσα ΚΑΙ στο/στη βοηθό της εργαστηριακής ομάδας στην οποία είστε εγγεγραμμένοι.

Το email θα έχει ως subject: C_Lab3_AM_OMx. (π.χ. C_Lab3_1212_OM2)

Θα παραδώσετε κάθε άσκηση σε ξεχωριστό αρχείο με ονόματα: Lab31_ΑΜ.c, Lab32_ΑΜ.c και Lab33_ΑΜ.c όπου ΑΜ είναι ο αριθμός μητρώου σας και ΟΜ η ομάδα σας.

Επίσης θα υπάρχει στην αρχή κάθε προγράμματος σχόλιο της μορφής:

 

/*

* TEM-102 3h Ergastiriaki Askisi

* Onoma: …… (your name)

* A.M. : ….(your AM)

*/

 

1.      Να γίνει πρόγραμμα το οποίο να ζητάει από τον χρήστη μία συμβολοσειρά και a) να την εμφανίζει ανεστραμμένη (π.χ. Hello world ® dlrow olleH). b) Να δημιουργηθεί συνάρτηση η οποία να παίρνει την αρχική συμβολοσειρά, να διαγράφει τα κενά διαστήματα, που ενδεχομένως περιέχει, και να εμφανίζει το αποτέλεσμα στο κυρίως πρόγραμμα. (π.χ. Hello world ® Helloworld).                                     [30 μονάδες]

Υπόδειξη: Να δουλέψετε με δείκτες.

 

 

2.      Να γίνει πρόγραμμα στο οποίο ο χρήστης θα δώσει τιμές σε δύο συμβολοσειρές και στην συνέχεια θα δημιουργήσει τρεις συναρτήσεις. a)  Η πρώτη συνάρτηση θα μετράει το μήκος της κάθε μίας συμβολοσειράς, θα επιστρέφει και θα τυπώνει το αποτέλεσμα στο κυρίως πρόγραμμα με το αντίστοιχο μήνυμα. b) Η δεύτερη συνάρτηση θα συγκρίνει αλφαβητικά τις δυο συμβολοσειρές και θα επιστρέφει την τιμή 0 στο κυρίως πρόγραμμα εάν είναι ίσες και το μήνυμα “different strings” εάν δεν είναι ίσες. c) Η τρίτη συνάρτηση θα ελέγχει εάν η πρώτη συμβολοσειρά υπάρχει μέσα στην δεύτερη. Εάν την βρει, θα επιστρέψει ως τιμή στο κυρίως πρόγραμμα έναν δείκτη στην θέση που την εντόπισε (1η θέση) αλλιώς θα επιστρέψει τον δείκτη NULL.                                                                                                   [36 μονάδες]

Υπόδειξη: Να δουλέψετε με δείκτες. Οι παραπάνω συναρτήσεις υπάρχουν έτοιμες στην C και είναι οι: strlen(), strcmp(), και strstr() αντίστοιχα. Η άσκηση ζητάει να τις υλοποιήσετε με δικό σας κώδικα.

 

 

3.      Να γίνει πρόγραμμα το οποίο να προσομοιώνει ένα τηλεπαιχνίδι. Οι κανόνες του παιχνιδιού είναι οι εξής: Στο παιχνίδι μπορούν να παίξουν διαδοχικά μέχρι 10 παίκτες αλλά το παιχνίδι τελειώνει αν υπάρξουν 3 νικητές. Κάθε παίκτης πρέπει να απαντήσει σε πέντε ερωτήσεις και θεωρείται νικητής εάν έχει απαντήσει σωστά σε όλες. Αν ένας παίκτης δώσει μία λάθος απάντηση προχωράμε κατευθείαν στον επόμενο.

Υλοποίηση:

Για κάθε παίκτη που θα συμμετέχει στο παιχνίδι ο χρήστης δίνει από το πληκτρολόγιο τα εξής στοιχεία: name, surname, job, address. Στην συνέχεια ο χρήστης δίνει από το πληκτρολόγιο το αποτέλεσμα της κάθε ερώτησης για τον παίκτη, το οποίο εάν πάρει την τιμή right είναι σωστό, αλλιώς είναι λάθος. Αν ο παίκτης είναι νικητής εμφανίζεται το μήνυμα: “The Player with the following information…name…surname…job…address…is a winner”. Στο τέλος του παιχνιδιού εμφανίζονται τα εξής μηνύματα: “The players of todays game were:… namesurname..” και “…xplayers were played andyof them were winners” (όπου x πόσοι παίκτες έπαιξαν και y πόσοι ήταν οι νικητές).

Υπόδειξη: Να δουλέψετε με structures.                                                             [34 μονάδες]