Projects στο Εργαστήριο Αρχιτεκτονικής Υπολογιστών Version 2 Ισχύει από Φεβρουάριο 2009



Σχετικά έγγραφα
επιµέλεια Θοδωρής Πιερράτος

Αρχιτεκτονική Υπολογιστών Ασκήσεις Εργαστηρίου

επιστρέφει αριθµό που προκύπτει µε αντιστροφή των στοιχείων του πρώτου

Ινστιτούτο Επαγγελµατική Κατάρτιση Κορυδαλλού "ΤΕΧΝΙΚΟΣ ΣΥΣΤΗΜΑΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ" (Ερωτήσεις Πιστοποίησης στην γλώσσα προγραµµατισµού C)

Καθηγητής Ε. Χ. ΖΙΟΥΛΑΣ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕ ΟΝΙΑΣ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΗΥ ΕΞΑΜΗΝΟ : Α. ΥΠΕΥΘΥΝΟΣ ΜΑΘΗΜΑΤΟΣ : Μάγια Σατρατζέµη

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ ΠΡΟΣΟΜΟΙΩΣΗΣ ΠΑΝΕΛΛΑΔΙΚΩΝ ΣΧΟΛΙΚΟΥ ΕΤΟΥΣ

ΔΙΑΓΩΝΙΣΜΑ ΠΡΟΣΟΜΟΙΩΣΗΣ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ

Α2. Να γράψετε στο τετράδιο απαντήσεών σας το κατάλληλο τμήμα κώδικα, κάνοντας τις απαραίτητες αλλαγές σύμφωνα με την εκάστοτε εκφώνηση:

Γράψτε ένα πρόγραμμα που θα προσομοιώνει τη ρίψη ενός νομίσματος και θα εμφανίζει στην οθόνη Κορώνα» ή «Γράμματα».

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ

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

Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2

8. Η δημιουργία του εκτελέσιμου προγράμματος γίνεται μόνο όταν το πηγαίο πρόγραμμα δεν περιέχει συντακτικά λάθη.

ΘΕΜΑ Α ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ

οµή Επιλογής Α. Κατηγορία προβληµάτων Β. Κριτήριο Αλγορίθµου Γ. Τρόπος αναπαράστασης αλγορίθµων . Είδος σταθεράς Ε. Λογική τιµή

viii. Α[7] Α[1] Α[3] + Α[8] 2. Δίνεται οι παρακάτω πίνακες ακεραίων Α και Β

2. ΑΡΙΘΜΗΤΙΚΗ ΤΟΥ ΥΠΟΛΟΓΙΣΤΗ. 2.1 Αριθμητικά συστήματα

Γενικά Στοιχεία Ηλεκτρονικού Υπολογιστή

Η πρώτη παράμετρος είναι ένα αλφαριθμητικό μορφοποίησης

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ

ΑΕΠΠ Ερωτήσεις θεωρίας

2 ΟΥ και 8 ΟΥ ΚΕΦΑΛΑΙΟΥ

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΔΙΑΓΩΝΙΣΜΑ ΠΡΟΣΟΜΟΙΩΣΗΣ 23/04/2012. Α. Να απαντήσετε με Σ ή Λ στις παρακάτω προτάσεις:

1. Πότε χρησιμοποιούμε την δομή επανάληψης; Ποιες είναι οι διάφορες εντολές (μορφές) της;

Αρχιτεκτονική Υπολογιστών Ασκήσεις Εργαστηρίου

Αρχιτεκτονική Υπολογιστών Ασκήσεις Εργαστηρίου

Εισαγωγή στην επιστήμη των υπολογιστών. Λογισμικό Υπολογιστών Κεφάλαιο 8ο Αλγόριθμοι

ΚΕΦΑΛΑΙΟ 9 ΒΑΣΙΚΕΣ ΕΝΤΟΛΕΣ

ΕΡΓΑΣΤΗΡΙΟ ΑΡΧΙΤΕΚΤΟΝΙΚΗΣ Η/Υ

ΓΛΩΣΣΑ ΑΛΦΑΒΗΤΟ ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ ΣΤΑΘΕΡΕΣ ΜΕΤΑΒΛΗΤΕΣ

Ο αλγόριθμος πρέπει να τηρεί κάποια κριτήρια

ΤΡΙΩΡΗ ΓΡΑΠΤΗ ΔΟΚΙΜΑΣΙΑ

Γ ΓΥΜΝΑΣΙΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕ ΤΗ ΓΛΩΣΣΑ MicroWorlds Pro

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

Γ ε ν ι κ ό Λ ύ κ ε ι ο Ε λ ε υ θ ε ρ ο ύ π ο λ η ς. Α λ γ ό ρ ι θ μ ο ι

Γενική οργάνωση υπολογιστή «ΑΒΑΚΑ»

ΟΜΟΣΠΟΝΔΙΑ ΕΚΠΑΙΔΕΥΤΙΚΩΝ ΦΡΟΝΤΙΣΤΩΝ ΕΛΛΑΔΟΣ (Ο.Ε.Φ.Ε.) ΕΠΑΝΑΛΗΠΤΙΚΑ ΘΕΜΑΤΑ ΕΠΑΝΑΛΗΠΤΙΚΑ ΘΕΜΑΤΑ 2019 Β ΦΑΣΗ Γ ΓΕΝΙΚΟΥ ΛΥΚΕΙΟΥ

ΕΡΓΑΣΤΗΡΙΑΚΕΣ ΑΣΚΗΣΕΙΣ C ΣΕΙΡΑ 1 η

Δομημένος Προγραμματισμός. Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων

Λύσεις Ασκήσεων ΣΕΙΡΑ 1 η. Πρόσημο και μέγεθος

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕ ΟΝΙΑΣ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ ΕΞΑΜΗΝΟ


ÔÏÕËÁ ÓÁÑÑÇ ÊÏÌÏÔÇÍÇ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ Τ Μ Η Μ Α Π Λ Η Ρ Ο Φ Ο Ρ Ι Κ Η Σ

Εισαγωγή στην επιστήμη των υπολογιστών. ΑΡΙΘΜΗΤΙΚΑ ΣΥΣΤΗΜΑΤΑ και Μετατροπές Αριθμών

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ ΣΧΟΛΙΚΟΥ ΕΤΟΥΣ

6. Αφού δημιουργήσετε ένα πίνακα 50 θέσεων με ονόματα μαθητών να τον ταξινομήσετε αλφαβητικά με την μέθοδο της φυσαλίδας

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ. 5x + 14y -2z = 6

ΚΕΦΑΛΑΙΟ 8 Η ΓΛΩΣΣΑ PASCAL

ΚΕΦΑΛΑΙΟ 2 ΑΛΓΟΡΙΘΜΟΙ ΔΟΜΗ ΑΚΟΛΟΥΘΙΑΣ ΘΕΩΡΙΑ

Ακρότατα πίνακα, χωρίς min, max, μόνο με pos

γρηγορότερα. Αν θέλουμε να μηδενίσουμε όλα τα υπόλοιπα bit μπορούμε να χρησιμοποιήσουμε την εντολή:

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ

ΘΕΜΑ Α. Α2. Να αναφέρετε από τι εξαρτάται η επιλογή του καλύτερου αλγορίθμου ταξινόμησης. Μονάδες 4. Σελίδα 1 από 8

ΕΡΓΑΣΤΗΡΙΑΚΕΣ ΑΣΚΗΣΕΙΣ C ΣΕΙΡΑ 1 η

Α2. Να γράψετε στο τετράδιο σας τον αριθμό 1-4 κάθε πρότασης και δίπλα το γράμμα που δίνει τη σωστή επιλογή.

Κεφάλαιο Πέµπτο: Η Εξάσκηση

4. Ασκήσεις στους Μονοδιάστατους Πίνακες

ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ : ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΑΞΗ : Γ ΛΥΚΕΙΟΥ ΣΠΟΥΔΕΣ ΟΙΚΟΝΟΜΙΑΣ & ΠΛΗΡΟΦΟΡΙΚΗΣ

Τμήμα Διοίκησης Τεχνολογίας Α/Α POSO Ν... SYN...

ΑΝΩΤΑΤΟ ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙ ΕΥΤΙΚΟ Ι ΡΥΜΑ ΣΕΡΡΩΝ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΩΝ ΑΡΧΙΤΕΚΤΟΝΙΚΗ Η/Υ.

ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ : ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΑΞΗ : Γ ΛΥΚΕΙΟΥ ΣΠΟΥΔΕΣ ΟΙΚΟΝΟΜΙΑΣ & ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΜΗΜΑ: Γ2

ΛΥΜΕΝΕΣ ΑΣΚΗΣΕΙΣ - ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ

Αναφέρατε τις ιδιότητες που πρέπει να διακρίνουν τα υποπρογράμματα. Μονάδες 3

ώστε επιλογή: Στη συνέχεια θα διαβάζει την επιλογή του χρήστη και την ακτίνα ενός κύκλου και θα εκτυπώνει το αντίστοιχο αποτέλεσµα.

Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο Κάθε δομή μπορεί να χρησιμοποιηθεί σε οποιοδήποτε πρόβλημα ή εφαρμογή

2ο ΓΕΛ ΑΓ.ΔΗΜΗΤΡΙΟΥ ΑΕΠΠ ΘΕΟΔΟΣΙΟΥ ΔΙΟΝ ΠΡΟΣΟΧΗ ΣΤΑ ΠΑΡΑΚΑΤΩ

Έστω ένας πίνακας με όνομα Α δέκα θέσεων : 1 η 2 η 3 η 4 η 5 η 6 η 7 η 8 η 9 η 10 η

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ

ΑΣΚΗΣΗ 2: ΔΟΜΗ ΠΡΟΓΡΑΜΜΑΤΟΣ C, ΧΕΙΡΙΣΜΟΣ ΜΕΤΑΒΛΗΤΩΝ ΚΑΙ ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥ ΚΑΙ ΕΞΟΔΟΥ

Σκοπός. Εργαστήριο 6 Εντολές Επανάληψης Τα Εργαστηριακά Προγράμματα. Η δομή Επιλογής στη PASCAL. H δομή Επανάληψης στη PASCAL. Η εντολή επανάληψης for

ΚΕΦΑΛΑΙΟ 2 Παράδειγμα 3 Παράδειγμα 5 Παράδειγμα 6 ΔΤ3 ΔΤ4 151

ΤΕΛΙΚΟ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ

ΚΕΦΑΛΑΙΟ 10 Ο ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ

ΕΚΦΩΝΗΣΕΙΣ. β. Να γράψετε αναλυτικά τα μειονεκτήματα της χρήσης των πινάκων. γ. Να γράψετε ονομαστικά τις τυπικές επεξεργασίες των πινάκων.

ΚΕΦΑΛΑΙΑ 3 & 9 (ΠΙΝΑΚΕΣ)

Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

4. Ποιος είναι ο τύπος και ποια η τιμή της μεταβλητής που χρησιμοποιείται παρακάτω;

Αρχιτεκτονική Υπολογιστών Ι

Α1. Στον προγραµµατισµό χρησιµοποιούνται δοµές δεδοµένων. 1. Τι είναι δυναµική δοµή δεδοµένων; Μονάδες 3 2. Τι είναι στατική δοµή δεδοµένων;

Αρχιτεκτονική Υπολογιστών Ασκήσεις Εργαστηρίου

3 ο ΦΥΛΛΑΔΙΟ ΑΣΚΗΣΕΩΝ - ΠΙΝΑΚΕΣ

Βαθµολογία Χαρακτηρισµός

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ ΣΧΟΛΙΚΟΥ ΕΤΟΥΣ

ΜΑΘΗΜΑ / ΤΑΞΗ : ΑΕΠΠ / Γ ΛΥΚΕΙΟΥ-ΘΕΡΙΝΑ ΣΕΙΡΑ: 1 η ΗΜΕΡΟΜΗΝΙΑ: 09/09/2012

ΕΠΑΝΑΛΗΠΤΙΚΗ ΕΞΕΤΑΣΗ (14/9/2012)

ΠΕΡΙΕΧΟΜΕΝΑ. Μονοδιάστατοι πίνακες Πότε πρέπει να χρησιμοποιούνται πίνακες Πολυδιάστατοι πίνακες Τυπικές επεξεργασίες πινάκων

ΟΜΟΣΠΟΝΔΙΑ ΕΚΠΑΙΔΕΥΤΙΚΩΝ ΦΡΟΝΤΙΣΤΩΝ ΕΛΛΑΔΟΣ (Ο.Ε.Φ.Ε.) ΕΠΑΝΑΛΗΠΤΙΚΑ ΘΕΜΑΤΑ ΕΠΑΝΑΛΗΠΤΙΚΑ ΘΕΜΑΤΑ 2019 A ΦΑΣΗ

2 ΟΥ και 7 ΟΥ ΚΕΦΑΛΑΙΟΥ

ΔΙΑΓΩΝΙΣΜΑ ΠΡΟΣΟΜΟΙΩΣΗΣ ΣΤΗΝ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ

ΕΙΔΙΚΟΤΗΤΑ: ΤΕΧΝΙΚΟΣ ΕΦΑΡΜΟΓΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΑΘΗΜΑ: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ

Προγραμματιστικό Περιβάλλον

Σηµείωση : Θεωρούµε ότι όλα τα ονόµατα µαθητών που ανήκουν στο ίδιο σχολείο είναι διαφορετικά µεταξύ τους, ενώ σε διαφορετικά σχολεία µπορεί να

ΠΡΟΣΟΜΟΙΩΣΗ ΠΑΝΕΛΛΑΔΙΚΩΝ ΕΞΕΤΑΣΕΩΝ Γʹ ΤΑΞΗΣ ΗΜΕΡΗΣΙΟΥ ΓΕΝΙΚΟΥ ΛΥΚΕΙΟΥ ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΑΕΠΠ ΤΡΙΤΗ 18 ΑΠΡΙΛΙΟΥ 2017 ΣΥΝΟΛΟ ΣΕΛΙΔΩΝ: ΕΠΤΑ (7)

φροντιστήρια Θέματα Ανάπτυξης Εφαρμογών σε Προγραμματιστικό Περιβάλλον Γ λυκείου Προσανατολισμός Σπουδών Οικονομίας και Πληροφορικής

ΔΙΑΓΩΝΙΣΜΑ ΣΤΟ ΜΑΘΗΜΑ Α.Ε.Π.Π. ΟΝΟΜΑ

ΑΡΧΗ 1ης ΣΕΛΙΔΑΣ ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ : ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΤΑΞΗ / ΤΜΗΜΑ : Γ ΛΥΚΕΙΟΥ ΔΙΑΓΩΝΙΣΜΑ ΠΕΡΙΟΔΟΥ : ΜΑΪΟΣ 2018 ΣΥΝΟΛΟ ΣΕΛΙΔΩΝ : 7 (ΕΠΤΑ)

ΑΣΚΗΣΕΙΣ ΣΤΗ ΟΜΗ ΕΠΙΛΟΓΗΣ (ΑΝΑΦΕΡΟΝΤΑΙ ΟΣΑ ΠΡΟΕΡΧΟΝΤΑΙ ΑΠΟ ΤΗΝ ΤΡΑΠΕΖΑ ΘΕΜΑΤΩΝ)

Transcript:

ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙ ΕΥΤΙΚΟ Ι ΡΥΜΑ ΣΕΡΡΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΕΠΙΚΟΙΝΩΝΙΩΝ ΜΑΘΗΜΑ : ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ 4 ο ΕΞΑΜΗΝΟ Projects στο Εργαστήριο Αρχιτεκτονικής Υπολογιστών Version 2 Ισχύει από Φεβρουάριο 2009 (Α) ΑΡΙΘΜΗΤΙΚΑ ΠΡΟΓΡΑΜΜΑΤΑ 1. Να κατασκευαστεί πρόγραµµα που να µπορεί να επιλύει εξισώσεις µίας µεταβλητής 1 ου βαθµού της µορφής Αχ+Β=0. Οι συντελεστές της εξίσωσης θα βρίσκονται σε µεταβλητές διευθύνσεις και θα εισάγονται από το πληκτρολόγιο, ενώ τα αποτελέσµατα θα γράφονται σε σταθερές διευθύνσεις και θα εµφανίζονται στην οθόνη. Να ελεγχθούν οι περιπτώσεις αόριστης (ταυτότητας) και αδύνατης εξίσωσης και στις περιπτώσεις αυτές να εµφανίζεται στην οθόνη σχετικό µήνυµα. 2. Να υλοποιηθεί πρόγραµµα που να υλοποιεί τον πολλαπλασιασµό δύο αριθµών των 8 bit και να αποθηκεύει το αποτέλεσµα σε δύο θέσεις µνήµης (16 bit) χωρίς την χρήση των εντολών MUL και IMUL. Κατόπιν: Το παραπάνω πρόγραµµα να υλοποιηθεί ως υπορουτίνα και να κατασκευαστεί κυρίως πρόγραµµα που θα υπολογίζει εκφράσεις της µορφής AxB+CxD+ExF όπου οι αριθµοί A,B,C,D,E,F θα εισάγονται από το πληκτρολόγιο ενώ το αποτέλεσµα θα εκτυπώνεται και στην οθόνη. Να κατασκευαστεί άλλη µια υπορουτίνα που να υπολογίζει το τετράγωνο ενός αριθµού 8 bit. Ο αριθµός θα εισάγεται, στο ίδιο κυρίως πρόγραµµα µε το προηγούµενο ερώτηµα, από το πληκτρολόγιο και το αποτέλεσµα θα εκτυπώνεται στην οθόνη. 3. Να κατασκευαστεί πρόγραµµα που θα εισάγει από το πληκτρολόγιο δύο 8 bit αριθµούς και µία πράξη κωδικοποιηµένη σε αριθµό µε την εξής αντιστοίχιση : 0 : τίποτα 1 : πρόσθεση 2 : αφαίρεση 3 : πολλαπλασιασµός 4 : διαίρεση 5 : Λογικό AND 6 : Λογικό OR 7 : Λογικό XOR και θα εκτελεί την κατάλληλη πράξη µεταξύ των αριθµών. Η κάθε πράξη να υλοποιηθεί ως µία υπορουτίνα. Το κυρίως πρόγραµµα απλά θα περιέχει µία δοµή τύπου case ή switch για λήψη 1

απόφασης σχετικά µε την πράξη. Τα δεδοµένα θα είναι σε µεταβλητές διευθύνσεις ενώ το αποτέλεσµα να καταχωρείται σε συγκεκριµένη διεύθυνση και θα εµφανίζεται στην οθόνη. 4. Να κατασκευαστεί πρόγραµµα που θα υλοποιεί µία αναδροµική συνάρτηση (που θα καλεί τον εαυτό της) για τον υπολογισµό του αθροίσµατος 1+2+3+...+Ν όπου το Ν θα είναι µεταβλητό και θα εισάγεται από το πληκτρολόγιο. Το κυρίως πρόγραµµα απλά θα διαβάζει την τιµή του ορίου του αθροίσµατος της ακολουθίας θα εκτελεί την αναδροµική συνάρτηση και θα αποθηκεύει το αποτέλεσµα σε συγκεκριµένη διεύθυνση µνήµης και θα το εµφανίζει στην οθόνη. 5. Να κατασκευαστεί πρόγραµµα που θα υλοποιεί έναν αριθµό υπορουτινών για τον χειρισµό 32 bit και 64 bit αριθµών. Συγκεκριµένα θα υλοποιηθούν ρουτίνες πρόσθεσης, αφαίρεσης, εύρεση του αρνητικού (- Χ), απόλυτη τιµή αριθµού Χ και θα υπολογίζει εκφράσεις της µορφής : -Α+ Β -Γ-. Οι αριθµοί A, B, Γ, θα εισάγονται από το πληκτρολόγιο και τα αποτελέσµατα θα εµφανίζονται στην οθόνη. 6. Να υλοποιηθεί πρόγραµµα που να υλοποιεί την διαίρεση δύο αριθµών των 8 bit και να αποθηκεύει το πηλίκο και το υπόλοιπο της διαίρεσης σε δύο θέσεις µνήµης, χωρίς την χρήση των εντολών DIV και IDIV. Κατόπιν: Το παραπάνω πρόγραµµα να υλοποιηθεί ως υπορουτίνα και να κατασκευαστεί κυρίως πρόγραµµα που θα υπολογίζει εκφράσεις της µορφής (Α+Β+C)/(D+E+F), όπου οι αριθµοί A,B,C,D,E,F θα εισάγονται από το πληκτρολόγιο ενώ το αποτέλεσµα θα εκτυπώνεται και στην οθόνη. Να κατασκευαστεί άλλη µια υπορουτίνα που θα ελέγχει αν ένας αριθµός είναι πρώτος. Ο αριθµός θα εισάγεται, στο ίδιο κυρίως πρόγραµµα µε το προηγούµενο ερώτηµα, από το πληκτρολόγιο και το αποτέλεσµα θα εκτυπώνεται στην οθόνη σαν «ΕΙΝΑΙ ΠΡΩΤΟΣ» ή «ΕΝ ΕΙΝΑΙ ΠΡΩΤΟΣ». 7. Να κατασκευαστεί πρόγραµµα που θα παίρνει έναν 16 bit αριθµό που θα βρίσκεται σε µεταβλητή διεύθυνση και θα τον µετατρέπει σε δυαδικό αριθµό αναπτυγµένο σε 16 bytes (ένα ψηφίο σε κάθε byte 00 ή 01) σε συγκεκριµένη διεύθυνση µνήµης. Επίσης το πρόγραµµα να εκτελεί και την αντίστροφη λειτουργία (να παίρνει έναν δυαδικό αναπτυγµένο σε 16 bytes σε µεταβλητή διεύθυνση µνήµης και να υπολογίζει τον αντίστοιχο αριθµό) αποθηκεύοντας τον τελικό αριθµό σε σταθερή διεύθυνση µνήµης. Επίσης να αναπτυχθεί ρουτίνα για την µετατροπή ενός 8 bit δυαδικού αριθµού σε δεκαδικό αριθµό 3 ψηφίων (ένα byte το κάθε ψηφίο). Οι τρεις αυτές λειτουργίες να υλοποιηθούν ως υπορουτίνες. θα χρειαστεί επίσης η υλοποίηση υπορουτίνας διαίρεσης. Το κυρίως πρόγραµµα θα εισάγει έναν αριθµό 0,1 ή 2 που θα καθορίζει ποια µετατροπή θα εκτελεστεί και τον προς µετατροπή αριθµό, θα καλεί την ανάλογη υπορουτίνα και θα εµφανίζει στην οθόνη το αποτέλεσµα. 8. Να κατασκευαστεί πρόγραµµα που υλοποιεί δύο υπορουτίνες που θα παίρνουν τρεις παραµέτρους. Η πρώτη θα επιστρέφει τον µικρότερο των τριών αριθµών ( min(x,y,z) ) και η δεύτερη το µεγαλύτερο των τριών αριθµών ( max(x,y,z) ). Tο κυρίως πρόγραµµα θα εισάγει 5 αριθµούς από το πληκτρολόγιο, θα τους αποθηκεύει σε µεταβλητές θέσεις µνήµης και θα υπολογίζει την µέγιστη διαφορά µεταξύ τους µε χρήση των δύο υπορουτινών, αποθηκεύοντας το αποτέλεσµα σε συγκεκριµένη διεύθυνση µνήµης και εµφανίζοντάς το στην οθόνη. 2

9. Να κατασκευαστεί πρόγραµµα που να υλοποιεί το Κόσκινο του Ερατοσθένη, δηλαδή να υπολογίζει τους πρώτους αριθµούς στην περιοχή 1 έως Ν, όπου το Ν θα εισάγεται από το πληκτρολόγιο και τα αποτελέσµατα θα εµφανίζονται στην οθόνη. 10. Να κατασκευαστεί πρόγραµµα που να υπολογίζει το παραγοντικό ενός αριθµού Ν χρησιµοποιώντας υπορουτίνα και αναδροµή, µε βάση τον τύπο A! = (A-1)! X A. Ο αριθµός Α θα εισάγεται από το πληκτρολόγιο και το αποτέλεσµα θα εµφανίζεται στην οθόνη. (Β) ΠΡΟΓΡΑΜΜΑΤΑ ΧΕΙΡΙΣΜΟΥ ΠΙΝΑΚΩΝ 11. Να κατασκευαστεί πρόγραµµα που να µπορεί να διαβάζει ένα διδιάστατο πίνακα αριθµών των 8 bit (µε διπλό βρόχο) µεταβλητών διαστάσεων και διεύθυνσης αρχής, να υπολογίζει τα αθροίσµατα κάθε γραµµής του διδιάστατου πίνακα και να τα αποθηκεύει σε άλλο µονοδιάστατο πίνακα. Η διεύθυνση αρχής, το πλήθος γραµµών και στηλών και τα δεδοµένα του πίνακα να εισάγονται από το πληκτρολόγιο και τα αποτελέσµατα να εµφανίζονται στην οθόνη. 12. Να κατασκευαστεί πρόγραµµα που θα παίρνει ένα διδιάστατο πίνακα που θα περιέχει για κάθε φοιτητή (γραµµές) τους βαθµούς που πέτυχε σε κάθε µάθηµα (στήλες). Οι αριθµοί φοιτητών και µαθηµάτων θα είναι µεταβλητοί και θα εισάγονται από το πληκτρολόγιο, όπως και τα δεδοµένα του πίνακα. Το πρόγραµµα να υπολογίζει για κάθε φοιτητή αν µπορεί να πάρει πτυχιακή ή όχι υπολογίζοντας αν έχει περάσει το 90% των µαθηµάτων. Τα αποτελέσµατα θα σώζονται σε άλλο πίνακα (µονοδιάστατο) µε το συµβολισµό 00=δεν µπορεί να πάρει πτυχιακή, 01=µπορεί να πάρει πτυχιακή. Ο πίνακας αποτελεσµάτων θα είναι σε συγκεκριµένη διεύθυνση. 13. Να κατασκευαστεί πρόγραµµα που να µπορεί να διαβάζει ένα διδιάστατο πίνακα αριθµών των 8 bit (µε διπλό βρόχο) µεταβλητών διαστάσεων και διεύθυνσης αρχής, και να υπολογίζει τον ανάστροφο πίνακα Α που θα τον αποθηκεύει σε άλλη (µεταβλητή) θέση µνήµης. (Α [i,j] = A[j,i]). Η διεύθυνση αρχής, το πλήθος γραµµών και στηλών και τα δεδοµένα του πίνακα να εισάγονται από το πληκτρολόγιο και τα αποτελέσµατα να εµφανίζονται στην οθόνη. 14. Να κατασκευαστεί πρόγραµµα που θα παίρνει ένα µονοδιάστατο πίνακα 8 bit αριθµών και θα υπολογίζει τον µέσο όρο των στοιχείων του πίνακα, καθώς και την µέση τιµή των διαφορών Xi-M (όπου Xi το i στοιχείο του πίνακα και Μ η µέση τιµή). Ο πίνακας θα είναι µεταβλητών διαστάσεων και διεύθυνσης αρχής ενώ το αποτέλεσµα θα γράφεται σε συγκεκριµένη διεύθυνση. Η διεύθυνση αρχής, το µέγεθος και τα περιεχόµενα του πίνακα θα εισάγονται από το πληκτρολόγιο ενώ το αποτέλεσµα θα εκτυπώνεται και στην οθόνη. 15. Να κατασκευαστεί πρόγραµµα που να ταξινοµεί ένα πίνακα 8 bit αριθµών µεταβλητού αριθµού θέσεων και διεύθυνσης αρχής µε την µέθοδο των φυσαλίδων. Κατόπιν να υλοποιηθεί δυαδική αναζήτηση ενός αριθµού µέσα στον ταξινοµηµένο πίνακα. Η ταξινόµηση και η αναζήτηση να υλοποιηθούν ως 3

υπορουτίνες. Ο ζητούµενος αριθµός θα εισάγεται από το πληκτρολόγιο και το αποτέλεσµα της αναζήτησης θα εµφανίζεται στην οθόνη ως «ΒΡΕΘΗΚΕ» ή «ΕΝ ΒΡΕΘΗΚΕ» 16. Να κατασκευαστεί πρόγραµµα που θα παράγει σε ένα πίνακα 16µπιτων αριθµών µεταβλητής διεύθυνσης τους πρώτους 23 όρους της σειράς Fibonacci, µε πρώτους δύο όρους το 1 και το 2. Σηµ. : Κάθε όρος της σειράς Fibonacci υπολογίζεται ως το άθροισµα των δύο προηγούµενων όρων. Να αποτελέσµατα να εµφανίζονται και στην οθόνη. 17. Να κατασκευαστεί πρόγραµµα που θα παίρνει ένα µονοδιάστατο πίνακα 16µπιτων αριθµών και θα βρίσκει το µεγαλύτερο και το µικρότερο στοιχείο του πίνακα καθώς και τις θέσεις τους στον πίνακα. Ο πίνακας θα είναι µεταβλητών διαστάσεων και διεύθυνσης αρχής ενώ τα αποτελέσµατα θα γράφονται σε συγκεκριµένες διευθύνσεις. Η εισαγωγή της διεύθυνσης αρχής, του µεγέθους και των περιεχοµένων του πίνακα θα γίνεται από το πληκτρολόγιο ενώ τα αποτελέσµατα θα εµφανίζονται και στην οθόνη. 18. Να κατασκευαστεί πρόγραµµα που να µπορεί να εκτελεί πράξεις µε µονοδιάστατους πίνακες αριθµών των 8 bit. Να υλοποιηθούν οι πράξεις της πρόσθεσης και της αφαίρεσης. Να µπορεί να χειρίζεται πίνακες µεταβλητών διαστάσεων και µεταβλητών διευθύνσεων αρχής. Η πρόσθεση και η αφαίρεση πινάκων να υλοποιηθούν ως υπορουτίνες. 19. Να κατασκευαστεί πρόγραµµα που θα παίρνει δύο πίνακες µεταβλητών διαστάσεων και διευθύνσεων αρχής. Ο πρώτος πίνακας είναι ο πίνακας µε τις βαθµολογίες όλων των φοιτητών. Ο δεύτερος πίνακας περιέχει κάποιες βαθµολογίες που µας ενδιαφέρουν (π.χ. 0, 5, 7). Το πρόγραµµα θα πρέπει να υπολογίζει για κάθε βαθµό του δεύτερου την συχνότητα εµφάνισής του στον πρώτο πίνακα βαθµολογιών φοιτητών (σαν αριθµό και σαν ποσοστό). Τα αποτελέσµατα καταχωρούνται σε τρίτο πίνακα σταθερής διεύθυνσης. 20. Να κατασκευαστεί πρόγραµµα που να µπορεί να διαβάζει από το πληκτρολόγιο έναν διδιάστατο πίνακα αριθµών των 8 bit (µε διπλό βρόχο), και να υπολογίζει και εκτυπώνει στην οθόνη το άθροισµα της διαγωνίου του, και τα αθροίσµατα του άνω και του κάτω τριγωνικού µέρους του. Ο αριθµός γραµµών και στηλών θα εισάγεται από το πληκτρολόγιο στην αρχή. 21. Να κατασκευαστεί πρόγραµµα που να µπορεί να δέχεται δύο διδιάστατους πίνακες αριθµών 3Χ3, µεταβλητής αρχής, και να εκτελεί τον πολλαπλασιασµό των δύο πινάκων, αποθηκεύοντας το αποτέλεσµα σε ένα τρίτο πίνακα 3Χ3 (µε τριπλό βρόχο). Ο υπολογισµός ενός στοιχείου του 3 ου πίνακα να γίνει µε υπορουτίνα. 22. Να κατασκευαστεί πρόγραµµα που να µπορεί να διαβάζει έναν µονοδιάστατο πίνακα βαθµολογιών µεταβλητού µεγέθους και διεύθυνσης αρχής και να εξάγει στατιστικά σχετικά µε τις βαθµολογίες. Συγκεκριµένα να υπολογίζει: 1) Πόσοι φοιτητές κόβονται, 2) Πόσοι φοιτητές περνάνε το µάθηµα, 3) Πόσοι φοιτητές αρίστευσαν (8-10), 4) Πόσοι δεν προσήλθαν ή έδωσαν λευκή κόλλα (0), 4

5) Πόσοι βαθµοί είναι εσφαλµένοι δηλαδή δεν είναι στην περιοχή 0..10 Τα αποτελέσµατα να καταχωρούνται σε σταθερές διευθύνσεις. Η διεύθυνση αρχής, το µέγεθος του πίνακα και τα δεδοµένα του πίνακα να εισάγονται από το πληκτρολόγιο και τα αποτελέσµατα να εµφανίζονται στην οθόνη. 23. Να κατασκευαστεί πρόγραµµα που να παίρνει έναν ταξινοµηµένο πίνακα µεταβλητού αριθµού θέσεων και διεύθυνσης αρχής και να βρίσκει τον ιάµεσο (median) των αριθµών που είναι αυτός που αφήνει ίσο πλήθος αριθµών πάνω και κάτω από αυτόν. Ο διάµεσος υπολογίζεται ως εξής : Αν το πλήθος των αριθµών είναι περιττός αριθµός (π.χ. 7, 11, 15, κ.λ.π.) τότε ο ιάµεσος είναι το µεσαίο στοιχείο της λίστας. Για παράδειγµα, σε 7 εγγραφές ο ιάµεσος είναι το 4 ο στοιχείο. Αν το πλήθος των αριθµών είναι άρτιος αριθµός (π.χ. 8, 12, 16, κ.λ.π.) τότε ο ιάµεσος είναι ο Μέσος Όρος των δύο µεσαίων στοιχείων της λίστας. Για παράδειγµα, σε 8 εγγραφές ο ιάµεσος είναι ο Μέσος Όρος του 4 ου και του 5 ου στοιχείου. Η διεύθυνση αρχής του πίνακα, το πλήθος των θέσεων και τα περιεχόµενά του να εισάγονται από το πληκτρολόγιο και τα αποτελέσµατα να εµφανίζονται στην οθόνη. (Β) ΠΡΟΓΡΑΜΜΑΤΑ ΜΕ ΣΥΜΒΟΛΟΣΕΙΡΕΣ (STRINGS) 24. Να κατασκευαστεί πρόγραµµα που να εισάγει από το πληκτρολόγιο δύο string, να τα αποθηκεύει στη µνήµη σε µεταβλητές διευθύνσεις και να ψάχνει µέσα στο πρώτο string για το αν υπάρχει το δεύτερο string. Αν δεν βρεθεί να εκτυπώνει στην οθόνη το µήνυµα «ΕΝ ΒΡΕΘΗΚΕ» ενώ αν βρεθεί να εκτυπώνει στην οθόνη το µήνυµα «ΒΡΕΘΗΚΕ ΣΤΗ ΘΕΣΗ #» και τη θέση µέσα στο 1 ο string όπου βρέθηκε το 2 ο. Ο χαρακτήρας τερµατισµού των strings είναι ο \0 (ASCII (00) 16 ). 25. Να κατασκευαστεί πρόγραµµα που να εισάγει από το πληκτρολόγιο ένα string, να το αποθηκεύει στη µνήµη σε µεταβλητή διεύθυνση, να κατόπιν να εισάγει από το πληκτρολόγιο και έναν χαρακτήρα αντικατάστασης. Εν συνεχεία να ψάχνει µέσα στο string και όπου βρει τον χαρακτήρα αναζήτησης να τον αντικαθιστά µε τον χαρακτήρα αντικατάστασης. Το string που προκύπτει να εκτυπώνεται στην οθόνη. Ο χαρακτήρας τερµατισµού των strings είναι ο \0 (ASCII (00) 16 ). 26. Να κατασκευαστεί πρόγραµµα που να ενώνει δύο string που εισάγονται από το πληκτρολόγιο και καθένα µπορεί να έχει µέγεθος µέχρι 255 bytes. Το µέγεθος του συνενωµένου string δεν µπορεί να ξεπερνά τους 255 χαρακτήρες. Συνεπώς, αν το µέγεθος των 2 string είναι µεγαλύτερο, γίνεται περικοπή του 2 ου string. Το string που προκύπτει να εκτυπώνεται στην οθόνη. Ο χαρακτήρας τερµατισµού των strings είναι ο \0 (ASCII (00) 16 ). 27. Να κατασκευαστεί πρόγραµµα που να εξάγει από ένα string ένα υπό-string. Το πρόγραµµα θα εισάγει από το πληκτρολόγιο ένα string και 2 αριθµούς, όπου ο πρώτος αριθµός θα δηλώνει τη θέση µέσα στο string που θα ξεκινά το υπό-string και ο δεύτερος τον αριθµό των χαρακτήρων που θα περιέχει το υπόstring. Κατόπιν, θα εξάγει το υπό-string από το αρχικό string, θα το αντιγράφει σε µια άλλη θέση µνήµης και θα το εκτυπώνει στην οθόνη. Το µέγιστο µέγεθος του string είναι 255 bytes. Πριν γίνει η αντιγραφή να ελέγχεται η περίπτωση το µήκος του υπό-string να είναι µηδενικό ή µεγαλύτερο από το κυρίως string 5

και σε περίπτωση λάθους αυτό να εµφανίζεται στην οθόνη µε σχετικό µήνυµα λάθους. Ο χαρακτήρας τερµατισµού των strings είναι ο \0 (ASCII (00) 16 ). 28. Να κατασκευαστεί πρόγραµµα που να διαγράφει ένα υπό-string από ένα string. Το πρόγραµµα θα εισάγει από το πληκτρολόγιο ένα string και 2 αριθµούς, όπου ο πρώτος θα δηλώνει τη θέση µέσα στο string που θα αρχίσει η διαγραφή και ο δεύτερος το πλήθος των χαρακτήρων που θα διαγραφούν. Μετά τη διαγραφή να γίνεται κατάλληλη µετακίνηση των χαρακτήρων εντός του string και το string που προκύπτει θα το εµφανίζει στην οθόνη. Το µέγιστο µέγεθος του string είναι 255 bytes. Πριν γίνει η διαγραφή να ελέγχεται η περίπτωση το µήκος του υπό-string να είναι µηδενικό ή µεγαλύτερο από το κυρίως string και, σε περίπτωση λάθους, αυτό να εµφανίζεται στην οθόνη µε σχετικό µήνυµα λάθους. Μετά τη διαγραφή να γίνεται κατάλληλη µετακίνηση των χαρακτήρων εντός του string. Ο χαρακτήρας τερµατισµού των strings είναι ο \0 (ASCII (00) 16 ). 29. Να κατασκευαστεί πρόγραµµα που να εισάγει ένα string σε ένα άλλο string. Το πρόγραµµα θα εισάγει από το πληκτρολόγιο τα 2 string, και 1 αριθµό, που θα δηλώνει τη θέση εντός του 1 ου string που θα εισαχθεί το 2 ο string. Το µέγιστο µέγεθος των string είναι 255 bytes. Το string που προκύπτει να εµφανίζεται στην οθόνη. Πριν γίνει η εισαγωγή να ελέγχεται η περίπτωση το µήκος του 2 ου string να είναι µηδενικό ή η θέση εισαγωγής µεγαλύτερη από το κυρίως string και, σε περίπτωση λάθους, αυτό να εµφανίζεται στην οθόνη µε σχετικό µήνυµα λάθους. Μετά την εισαγωγή να γίνεται κατάλληλη µετακίνηση των χαρακτήρων εντός του string. Ο χαρακτήρας τερµατισµού των strings είναι ο \0 (ASCII (00) 16 ). 30. Να κατασκευαστεί πρόγραµµα που θα εισάγει από το πληκτρολόγιο την διεύθυνση αρχής ενός string που βρίσκεται ήδη στη µνήµη, έχει µεταβλητό αριθµό χαρακτήρων και τερµατίζει µε τον χαρακτήρα \0 (ASCII (00) 16 ), όπως επίσης θα εισάγει από το πληκτρολόγιο την διεύθυνση αρχής και το µήκος µίας νέας περιοχής µνήµης στην οποία θα αντιγράφεται το αρχικό string αλλά κεντραρισµένο µέσα στην περιοχή, ενώ τα κενά δεξιά και αριστερά θα γεµίζουν από Space (ASCII (20) 16 ). Να ελέγχεται η περίπτωση λάθους όπου το µήκος της νέας περιοχής µνήµης είναι µικρότερο από το µήκος του string και να εµφανίζεται στην οθόνη σχετικό µήνυµα λάθους. 31. Να κατασκευαστεί πρόγραµµα που θα εισάγει από το πληκτρολόγιο δύο string, που τερµατίζονται µε το χαρακτήρα \0 (ASCII (00) 16 ), θα τα αποθηκεύει σε µεταβλητές διευθύνσεις µνήµης και θα τα συγκρίνει µεταξύ τους. Αν είναι ίδια τότε θα εκτυπώνει στην οθόνη το µήνυµα «ΤΑ STRINGS ΕΙΝΑΙ Ι ΙΑ», αν το πρώτο string είναι αλφαβητικά µεγαλύτερο από το δεύτερο τότε θα εκτυπώνει στην οθόνη το µήνυµα «ΤΟ ΠΡΩΤΟ STRING ΕΙΝΑΙ ΜΕΓΑΛΥΤΕΡΟ ΤΟΥ ΕΥΤΕΡΟΥ», ενώ αν το δεύτερο string είναι αλφαβητικά µεγαλύτερο από το πρώτο τότε θα εκτυπώνει στην οθόνη το µήνυµα «ΤΟ ΠΡΩΤΟ STRING ΕΙΝΑΙ ΜΙΚΡΟΤΕΡΟ ΤΟΥ ΕΥΤΕΡΟΥ» 32. Να κατασκευαστεί πρόγραµµα που θα παίρνει ένα κείµενο που θα βρίσκεται ήδη στη µνήµη αλλά σε µεταβλητή διεύθυνση και θα εξάγει στατιστικά από αυτό. Το κείµενο θα είναι πολλαπλών γραµµών. Η κάθε γραµµή τερµατίζει µε τον χαρακτήρα Enter \n (ASCII 13 10 (0D) 16 ). Το κείµενο τερµατίζει µε τον χαρακτήρα \0 (ASCII (00) 16 ). Τα στατιστικά από το κείµενο θα είναι τα ακόλουθα : α) Πόσες είναι οι γραµµές του κειµένου β) Πόσες είναι οι λέξεις του κειµένου 6

γ) Πόσοι είναι οι χαρακτήρες του κειµένου (εξαιρώντας τα Enter) δ) Πόσο χώρο πιάνει συνολικά στη µνήµη ε) Ποιό είναι το µέσο µήκος των γραµµών σε χαρακτήρες Τα αποτελέσµατα θα σώζονται σε συγκεκριµένες διευθύνσεις µνήµης και θα εκτυπώνονται στην οθόνη. Σηµ.: για το (ε) θα χρειαστεί υλοποίηση ρουτίνας διαίρεσης. 33. Να κατασκευαστεί πρόγραµµα που θα εισάγει από το πληκτρολόγιο ένα string, τερµατιζόµενο µε τον χαρακτήρα \0 (ASCII (00) 16 ), θα το αποθηκεύει σε µεταβλητή διεύθυνση µνήµης και θα εξάγει στατιστικά από το κείµενο του string ως εξής : α) Πόσοι χαρακτήρες είναι πεζοί β) Πόσοι είναι κεφαλαίοι γ) Πόσα είναι τα σύµβολα δ) Πόσα κενά περιέχει ε) Πόσες λέξεις περιέχει στ) Πόσους συνολικά χαρακτήρες περιέχει Τα αποτελέσµατα θα εµφανίζονται στην οθόνη. 34. Να κατασκευαστεί πρόγραµµα που θα διαβάζει από το πληκτρολόγιο ένα string, τερµατιζόµενο µε τον χαρακτήρα \0 (ASCII (00) 16 ), και θα το εµφανίζει στην οθόνη σαν κυλιόµενο µήνυµα. Η οθόνη κειµένου θα ρυθµιστεί να έχει ανάλυση 80 Χ 25. Το string αρχικά θα εµφανίζεται από δεξιά προς τα αριστερά αλλά µε τα πλήκτρα-βελάκια του πληκτρολογίου θα µπορεί να ελέγχεται η φορά κύλισης (δεξιό, αριστερό βέλος) και η ταχύτητα κύλισης (πάνω, κάτω βέλος). Το πρόγραµµα θα τερµατίζεται όταν πατηθεί το πλήκτρο ESC. Υπόδειξη: Χρησιµοποιήστε την έκδοση 4 του emulator ή νεότερη και τα interrupts 15h για δηµιουργία καθυστερήσεων, 10h για ρύθµιση της ανάλυσης της οθόνης και 16h για να διαβάσετε το πληκτρολόγιο. (Γ) ΠΡΟΓΡΑΜΜΑΤΑ ΧΕΙΡΙΣΜΟΥ ΧΡΟΝΟΥ 35. Να κατασκευαστεί πρόγραµµα που να παίρνει µία ηµεροµηνία στη µορφή µµ-εεεε (µήνας και έτος) και να υπολογίζει πόσες ηµέρες έχει ο συγκεκριµένος µήνας, λαµβάνοντας υπ όψιν και την περίπτωση δίσεκτου έτους. Ο µήνας και το έτος θα εισάγονται από το πληκτρολόγιο και το αποτέλεσµα θα εµφανίζεται στην οθόνη. 36. Να κατασκευαστεί πρόγραµµα που θα εισάγει από το πληκτρολόγιο µία ηµεροµηνία σε συγκεκριµένη διεύθυνση στην µορφή dd-mm-yy (3 byte, το έτος θα είναι διψήφιο και > 2000) και έναν αριθµό ηµερών ως 16µπιτο νούµερο σε συγκεκριµένη διεύθυνση και θα υπολογίζει την ηµεροµηνία που προκύπτει (στην µορφή dd-mm-yy) αν στην αρχική ηµεροµηνία προστεθούν οι ηµέρες που δόθηκαν. Θεωρείστε ότι οι µήνες έχουν όλοι 30 ηµέρες και τα έτη 360 ηµέρες. Το αποτέλεσµα να καταχωρείται σε συγκεκριµένες διευθύνσεις και να εκτυπώνεται και στην οθόνη. 37. Να κατασκευαστεί πρόγραµµα που θα εισάγει από το πληκτρολόγιο δύο ηµεροµηνίες σε συγκεκριµένες διευθύνσεις στην µορφή dd-mm-yy (3 byte, το έτος θα είναι διψήφιο και > 2000), θα τις συγκρίνει µεταξύ 7

τους και ανάλογα µε τη σχέση των 2 ηµεροµηνιών θα εµφανίζει στην οθόνη ένα από τα 3 µηνύµατα: «ΟΙ ΗΜΕΡΟΜΗΝΙΕΣ ΕΙΝΑΙ Ι ΙΕΣ», «Η ΠΡΩΤΗ ΗΜΕΡΟΜΗΝΙΑ ΕΙΝΑΙ ΜΕΤΑΓΕΝΕΣΤΕΡΗ ΤΗΣ ΕΥΤΕΡΗΣ», «Η ΠΡΩΤΗ ΗΜΕΡΟΜΗΝΙΑ ΕΙΝΑΙ ΠΡΟΓΕΝΕΣΤΕΡΗ ΤΗΣ ΕΥΤΕΡΗΣ» 38. Να κατασκευαστεί πρόγραµµα που θα εισάγει από το πληκτρολόγιο δύο ηµεροµηνίες σε συγκεκριµένες διευθύνσεις στην µορφή dd-mm-yy (3 byte, το έτος θα είναι διψήφιο και > 2000) και θα υπολογίζει πόσες ηµέρες απέχουν οι δύο ηµεροµηνίες, θεωρώντας ότι οι µήνες έχουν όλοι 30 ηµέρες και τα έτη 360 ηµέρες. Το αποτέλεσµα να καταχωρείται σε 16µπιτο νούµερο (2 byte) σε συγκεκριµένη διεύθυνση και θα εµφανίζεται και στην οθόνη. 39. Να κατασκευαστεί πρόγραµµα που να εισάγει από το πληκτρολόγιο δύο χρονικές διάρκειες στη µορφή ωω:λλ:δδ, να τις αποθηκεύει σε µεταβλητές θέσεις µνήµης, να τις προσθέτει, να αποθηκεύει το αποτέλεσµα σε 3 θέσεις µνήµης και να το τυπώνει στην οθόνη, φροντίζοντας τα δευτερόλεπτα και τα λεπτά να µην ξεπερνούν το 60. Στη συνέχεια να υπολογίζει το αποτέλεσµα σε δευτερόλεπτα (16bit) και να τυπώνει το αποτέλεσµα στην οθόνη. 40. Να κατασκευαστεί πρόγραµµα που να εµφανίζει στην οθόνη την τρέχουσα ηµεροµηνία (π.χ. Τετάρτη 5 Ιανουαρίου 2008) και ένα ρολόι πραγµατικού χρόνου που θα εµφανίζει συνεχώς την τρέχουσα ώρα µε τη µορφή ώρα:λεπτά:δευτερόλεπτα. Το πρόγραµµα θα τερµατίζεται όταν ο χρήστης πατήσει το πλήκτρο ESC. Η εµφάνιση της ηµεροµηνίας και της ώρας να υλοποιηθούν σαν 2 υπορουτίνες και το κυρίως πρόγραµµα θα καλεί αυτές τις υπορουτίνες. Υπόδειξη: Χρησιµοποιήστε την έκδοση 4 του emulator ή νεότερη και τα interrupts 21h για να διαβάσετε την ηµεροµηνία/ώρα του συστήµατος, 15h για δηµιουργία καθυστερήσεων και 16h για να διαβάσετε το πληκτρολόγιο. 41. Να κατασκευαστεί πρόγραµµα που να εµφανίζει στην οθόνη ένα χρονόµετρο που θα µετρά το χρόνο στη µορφή ώρες:λεπτά:δευτερόλεπτα. Η λειτουργία του θα ελέγχεται µε 4 πλήκτρα του πληκτρολογίου: Πλήκτρο S: Έναρξη χρονοµέτρησης Πλήκτρο P: Παύση χρονοµέτρησης Πλήκτρο Z: Μηδενισµός χρονοµέτρησης Πλήκτρο ESC: Τερµατισµός προγράµµατος Θα πρέπει να ληφθεί υπόψιν ότι για να µηδενιστεί το χρονόµετρο θα πρέπει να είναι σε κατάσταση παύσης και όχι χρονοµέτρησης. Υπόδειξη: Χρησιµοποιήστε την έκδοση 4 του emulator ή νεότερη και τα interrupts 21h για να διαβάσετε την ώρα του συστήµατος, 15h για δηµιουργία καθυστερήσεων και 16h για να διαβάσετε το πληκτρολόγιο. ( ) ΙΑΦΟΡΑ ΠΡΟΓΡΑΜΜΑΤΑ 42. Να κατασκευαστεί πρόγραµµα που να προσθέτει και να αφαιρεί στοιχεία από µία λίστα, µε τρόπο ώστε η λίστα να παραµένει πάντα ταξινοµηµένη. Κατά την εισαγωγή ή διαγραφή στοιχείου θα πρέπει να µετακινούνται κατάλληλα τα περιεχόµενα της λίστας ώστε είτε να δηµιουργείται χώρος για το νέο στοιχείο είτε να συµπληρώνεται ο χώρος που προκύπτει από την αφαίρεση του στοιχείου. Η εισαγωγή 8

και διαγραφή στοιχείου να γίνει µε υπορουτίνες, ενώ το µήκος της λίστας και η διεύθυνση του πρώτου στοιχείου θα είναι µεταβλητά και θα περιέχονται στις διευθύνσεις 0400, 0401, 00402 αντίστοιχα. 43. Να κατασκευαστεί πρόγραµµα που να προσθέτει και να αφαιρεί στοιχεία από µία ουρά (queue, δοµή FIFO). Η αφαίρεση στοιχείων θα γίνεται από την αρχή της ουράς ενώ η προσθήκη στο τέλος. Μετά από κάθε αφαίρεση στοιχείου θα πρέπει να µετακινούνται το στοιχεία της ουράς ώστε αυτή να αρχίζει πάντα από την ίδια διεύθυνση. Η εισαγωγή και διαγραφή στοιχείου να γίνει µε υπορουτίνες, ενώ το µήκος της ουράς και η διεύθυνση του πρώτου στοιχείου θα είναι µεταβλητά και θα περιέχονται στις διευθύνσεις 0500, 0501, 0502 αντίστοιχα 44. Να κατασκευαστεί πρόγραµµα που να προσοµοιώνει έναν βιοµηχανικό αυτοµατισµό. Συγκεκριµένα, ο αυτοµατισµός διαθέτει έναν καταχωρητής ελέγχου 5 bit, τον οποίο θα προσοµοιώνει ένας καταχωρητής του 8088, κάθε bit του οποίου έχει την ακόλουθη σηµασία: Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Αισθητήρας Αισθητήρας Βαλβίδα Ανεµιστήρας Συναγερµός Πίεσης Θερµοκρασίας Εκτόνωσης Τα bit 4 & 3 όταν είναι 1 σηµαίνει ότι υπάρχουν αντίστοιχα πίεση και θερµοκρασία πάνω από τα όρια, ενώ όταν είναι 0 η πίεση και η θερµοκρασία αντίστοιχα είναι εντός ορίων. Τα bit 1 και 2 όταν είναι 1 σηµαίνει ότι ενεργοποιούνται αντίστοιχα ο ανεµιστήρας και η βαλβίδα εκτόνωσης, ενώ όταν είναι 0 σηµαίνει ότι ο ανεµιστήρας και η βαλβίδα εκτόνωσης είναι κλειστά. Τέλος το bit 0 όταν είναι 1 σηµαίνει ότι ηχεί συναγερµός ενώ όταν είναι 0 ο συναγερµός είναι OFF. Το πρόγραµµα θα πρέπει διαρκώς να παρακολουθεί τις τιµές των bit 3 και 4. Αν η πίεση ξεπεράσει τα όρια θα πρέπει να ανοίγει τη βαλβίδα εκτόνωσης και να την κλείνει όταν η πίεση επανέλθει στα φυσιολογικά όρια. Αν η θερµοκρασία ξεπεράσει τα όρια θα πρέπει να ανοίγει τον ανεµιστήρα και να τον κλείνει όταν η θερµοκρασία επανέλθει στα φυσιολογικά επίπεδα. Επιπλέον, αν ταυτόχρονα και η πίεση και η θερµοκρασία ξεπεράσουν τα όρια να ενεργοποιείται ο συναγερµός και να σταµατά όταν είτε η πίεση είτε η θερµοκρασία είτε και οι δύο επανέλθουν στα φυσιολογικά όρια. Για να παρακολουθείτε την λειτουργία του προγράµµατος θα εµφανίζονται µηνύµατα στην οθόνη συνεχώς σχετικά µε την κατάσταση του συστήµατος. Τέσσερα πλήκτρα του πληκτρολογίου θα ελέγχουν, ανά δύο, την πίεση και τη θερµοκρασία ενώ µε το πλήκτρο ESC το πρόγραµµα θα τερµατίζεται. Το πρόγραµµα να αναπτυχθεί µε υπορουτίνες και το κυρίως πρόγραµµα απλώς θα καλεί τις υπορουτίνες αυτές. 9

Ο ΗΓΙΕΣ ΓΙΑ ΤΗΝ ΕΚΠΟΝΗΣΗ ΤΩΝ PROJECTS Τα Projects είναι υποχρεωτικά για τους φοιτητές του 4 ου εξαµήνου (ή και µεγαλύτερου εξαµήνου που παίρνουν το µάθηµα για πρώτη φορά) και προαιρετικά για αυτούς που ξαναδίνουν το µάθηµα, εφ όσον έχουν παραδώσει project σε προηγούµενο εξάµηνο. Κάθε project ανατίθεται σε έναν σπουδαστή. Η εργασία αξιολογείται µε 0 έως 3 µονάδες στον τελικό βαθµό του εργαστηρίου ενώ 0 έως 7 µονάδες πιάνει η εξέταση εργαστηρίου. Οι σπουδαστές θα πρέπει να παραδώσουν τις εργασίες τους σε ηµεροµηνία που θα τους γνωστοποιηθεί από τους διδάσκοντες του εργαστηρίου και θα είναι σαφώς πριν τις εξετάσεις. Παραδοτέα της εργασίας είναι : o o o o o Ένα κείµενο/αναφορά της εργασίας όπου θα περιγράφεται το πρόβληµα, και θα περιέχεται πλήρη επεξήγηση του αλγορίθµου που χρησιµοποιήθηκε Λεπτοµερή αναφορά στις θέσεις µνήµης που χρησιµοποιήθηκαν και τη σηµασία τους σε µορφή πίνακα Λογικό διάγραµµα Listing του πηγαίου κώδικα O πηγαίος κώδικας σε ηλεκτρονική µορφή από τον emulator Οι φοιτητές επιβάλλεται να συνεργάζονται µε τους καθηγητές τους σε ότι αφορά την εργασία τους και να τους συµβουλεύονται καθ όλη την διάρκεια του εξαµήνου, για επίλυση τυχόν προβληµάτων που συναντούν, και για επιβεβαίωση της σωστής πορείας που ακολουθούν στην ανάπτυξη των εργασιών τους. Ο κώδικας θα πρέπει να αναπτυχθεί στο περιβάλλον του emulator. Κατά την παράδοση των εργασιών θα γίνει µια σύντοµη εξέταση των σπουδαστών πάνω στο αντικείµενο της εργασίας τους, όπου θα πρέπει να απαντήσουν σε ερωτήσεις σχετικά µε το project τους και να εκτελέσουν τον κώδικα, µε δεδοµένα που θα τους δοθούν, σε υπολογιστή του εργαστηρίου. Από την εξέταση αυτή θα καθοριστεί και ο τελικός τους βαθµός στο project. Projects που αποδεικνύονται προϊόντα αντιγραφής µηδενίζονται. ΟΙ Ι ΑΣΚΟΝΤΕΣ 10