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

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

Θέματα Εξετάσεων

Ημερομηνία εξέτασης:

Πέμπτη 14 Σεπτεμβρίου 2000

Διάρκεια: 3 ώρες
Ποσοστό επί της συνολικής βαθμολογίας:

60%


Άσκηση 1 (50%)

Ένα πολυώνυμο της μορφής:

a_n x^n + a_n-1 x^n-1 + ... + a_1 x + a_0

μπορεί να αναπαρασταθεί με έναν πίνακα (array) n+1 πραγματικών αριθμών, που να περιέχει τις τιμές a_0, a_1, ..., a_n. Να υλοποιηθεί μια κλάση C++ με το όνομα Polynomial που να χρησιμοποιεί αυτή την αναπαράσταση. Η κλάση πρέπει να υποστηρίζει τουλάχιστον τις ακόλουθες λειτουργίες.

Σημείωση: δύο πολυώνυμα είναι ίσα όταν είναι ίσοι οι αντίστοιχοι συντελεστές. Προσοχή απαιτείται στην περίπτωση που ένα πολυώνυμο περιέχει μηδενικούς συντελεστές.


Άσκηση 2 (50%)

Να γραφεί ένα πρόγραμμα σε περιβάλλον Unix System V που να προσομοιώνει τις λειτουργίες κατάθεσης και ανάληψης σε τραπεζικό λογαριασμό. Κατά την εκτέλεσή του, το πρόγραμμα θα αποτελείται από δύο διεργασίες που θα τρέχουν διαρκώς και θα επικοινωνούν μέσω μιας κοινής μεταβλητής (κοινή μνήμη). Η μεταβλητή αυτή θα έχει με τύπο double και θα παριστάνει το υπόλοιπο του λογαριασμού. Η πρώτη διεργασία θα καταθέτει διαρκώς 100 δραχμές στο λογαριασμό, ενώ η δεύτερη θα αφαιρεί διαρκώς 642 δραχμές, υπό την προϋπόθεση το ποσό αυτό να υπάρχει στο λογαριασμό.

Σημείωση: Πρέπει να εξασφαλίσετε ότι το υπόλοιπο του λογαριασμού θα αρχικοποιείται κατάλληλα και ότι οι δυο εργασίες δε θα μπορούν να το προσπελαύνουν συγχρόνως.


Καλή επιτυχία.


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