You are on page 1of 7

2η ΓΡΑΠΤΗ ΕΡΓΑΣΙΑ ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ 2005-2006

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

2η ΓΡΑΠΤΗ ΕΡΓΑΣΙΑ

ΑΚΑΔΗΜΑΪΚΟΥ ΕΤΟΥΣ 2005-2006

2ος Τόμος

ΤΕΧΝΙΚΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ
14/11/2005

(Η εργασία σας θα πρέπει να βρίσκεται στα χέρια του Καθηγητή-Συμβούλου σας


το αργότερο την Παρασκευή 06/01/2006)

ΥΠΟΕΡΓΑΣΙΑ 1. (βαθμοί 20)

ΥΠΟΕΡΓΑΣΙΑ 2. (βαθμοί 25)

ΥΠΟΕΡΓΑΣΙΑ 3. (βαθμοί 25)

ΥΠΟΕΡΓΑΣΙΑ 4. (βαθμοί 30)

ΣΥΝΟΛΟ (βαθμοί 100)


2η ΓΡΑΠΤΗ ΕΡΓΑΣΙΑ ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ 2005-2006

ΥΠΟΕΡΓΑΣΙΑ 1.

Α. Στις επόμενες 4 ερωτήσεις, ο κώδικας σε ψευδογλώσσα πρέπει να συμπληρωθεί


εκεί όπου εμφανίζεται το σύμβολο του ερωτηματικού («?»). Το κάθε ερωτηματικό
μπορεί να αντικατασταθεί είτε με ένα χαρακτήρα ή αριθμό ή σύμβολο είτε μπορεί να
απαιτείται να συμπληρωθεί με μια ολόκληρη παράσταση ή εντολή.
1. Στο παρακάτω τμήμα αλγορίθμου να συμπληρώσετε τα ερωτηματικά («?»), ώστε
να υπολογίζεται η 4η δύναμη ενός ακέραιου αριθμού Χ (δηλαδή το Χ4 ) που θα
καταχωρείται στη μεταβλητή Δ, όπου Δ θετικός ακέραιος.
Δ:=1;
ΔΙΑΒΑΣΕ(Χ);
ΓΙΑ I:= ? ΕΩΣ 10 ΜΕ ΒΗΜΑ ? ΕΠΑΝΕΛΑΒΕ
Δ := Δ * Χ;
ΓΙΑ-ΤΕΛΟΣ;

2. Στον παρακάτω αλγόριθμο να συμπληρώσετε τα ερωτηματικά («?») της


Συνάρτησης ΔΥΝΑΜΗ, ώστε να υπολογίζεται η Ν-οστή δύναμη ενός ακέραιου
αριθμού Χ, λαμβάνοντας υπόψη και την περίπτωση που ο εκθέτης Ν είναι αρνητικός.
Θυμίζουμε ότι ΧΝ =1/ Χ-Ν όταν Χ ≠ 0. Για παράδειγμα, το 2-3 =1/23. Θεωρήστε ότι
στον παρακάτω αλγόριθμο η βάση VASH είναι πάντα διάφορη του μηδενός. Επίσης
να συμπληρωθούν τα ερωτηματικά στο Κυρίως Πρόγραμμα.

ΑΛΓΟΡΙΘΜΟΣ ΔΥΝΑΜΗ_ΑΚΕΡΑΙΟΥ
ΔΕΔΟΜΕΝΑ
VASH, EKTHETIS: INTEGER;
Y:= REAL;
_____________________________
ΣΥΝΑΡΤΗΣΗ ΔΥΝΑΜΗ (Χ, Ν)
_____________________________
ΔΙΕΠΑΦΗ
ΕΙΣΟΔΟΣ
Χ: INTEGER;
N: INTEGER;
ΕΞΟΔΟΣ
ΔΥΝΑΜΗ: REAL;
ΔΕΔΟΜΕΝΑ
Ι: INTEGER;
ΑΡΧΗ
ΔΥΝΑΜΗ:= ?;
ΕΑΝ (Ν>=0) ΤΟΤΕ
ΓΙΑ I := 1 ΕΩΣ N ΕΠΑΝΕΛΑΒΕ
ΔΥΝΑΜΗ:= ?;
ΓΙΑ-ΤΕΛΟΣ
2η ΓΡΑΠΤΗ ΕΡΓΑΣΙΑ ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ 2005-2006

ΑΛΛΙΩΣ {Αν ο εκθέτης είναι αρνητικός}


ΓΙΑ I := 1 ΕΩΣ -Ν ΕΠΑΝΕΛΑΒΕ
ΔΥΝΑΜΗ:= ?;
ΓΙΑ-ΤΕΛΟΣ
ΕΑΝ-ΤΕΛΟΣ
ΤΕΛΟΣ-ΣΥΝΑΡΤΗΣΗΣ;
ΑΡΧΗ {ΚΥΡΙΩΣ ΠΡΟΓΡΑΜΜΑ}
ΔΙΑΒΑΣΕ(?);
ΔΙΑΒΑΣΕ(?);
Y:= (?);
ΤΥΠΩΣΕ (?);
ΤΕΛΟΣ {ΚΥΡΙΩΣ ΠΡΟΓΡΑΜΜΑΤΟΣ}

3. Στο παρακάτω τμήμα αλγορίθμου να συμπληρώσετε τα ερωτηματικά («?»), έτσι


ώστε αυτός να εμφανίζει τους εξής αριθμούς: 2, 5, 8, 11, 14, 4, 7, 10, 13, 6, 9, 12, 15,
8, 11, 14.
ΓΙΑ Χ := ? ΕΩΣ ? ΜΕ ΒΗΜΑ ? ΕΠΑΝΕΛΑΒΕ
ΓΙΑ Υ:= ? ΕΩΣ ? ΜΕ ΒΗΜΑ ? ΕΠΑΝΕΛΑΒΕ
ΤΥΠΩΣΕ(?);
ΓΙΑ-ΤΕΛΟΣ;
ΓΙΑ-ΤΕΛΟΣ;

4. Στο παρακάτω τμήμα αλγορίθμου να συμπληρώσετε τα ερωτηματικά («?»), ώστε


να εμφανίζει τους αριθμούς 0, 1, 2, 9, 4, 25, 6, 49, 8, 81, 10.

Α := 0;
ΕΝΟΣΩ ( Α ? ) ΕΠΑΝΕΛΑΒΕ
ΕΑΝ (?) ΤΟΤΕ
ΤΥΠΩΣΕ (Α)
ΑΛΛΙΩΣ
Β:= ?;
ΤΥΠΩΣΕ (?)
ΕΑΝ-ΤΕΛΟΣ;
?;
ΕΝΟΣΩ-ΤΕΛΟΣ;

Σημείωση:
Σε κάποια από τα παραπάνω υποερωτήματα χρησιμοποιείται μια επέκταση της
εντολής επανάληψης ΓΙΑ…ΓΙΑ-ΤΕΛΟΣ, στην οποία προστέθηκε η δυνατότητα
μεταβολής του Βήματος αύξησης του μετρητή, με τιμές διαφορετικές της μονάδας.
Για παράδειγμα, στο ακόλουθο τμήμα αλγορίθμου που τυπώνει όλους τους περιττούς
αριθμούς από το 1 έως και το 199, ο μετρητής Ι αυξάνεται κάθε φορά κατά 2.
2η ΓΡΑΠΤΗ ΕΡΓΑΣΙΑ ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ 2005-2006

ΓΙΑ I:= 1 ΕΩΣ 200 ΜΕ ΒΗΜΑ 2 ΕΠΑΝΕΛΑΒΕ


ΤΥΠΩΣΕ (Ι);
ΓΙΑ-ΤΕΛΟΣ;

Β. Να σχεδιασθεί Διάγραμμα Ροής Προγράμματος (flowchart) που θα διαβάζει ένα


μονοδιάστατο πίνακα ακεραίων μεγέθους Μ και θα αντιστρέφει τη σειρά των
στοιχείων του. Δηλαδή το 1ο στοιχείο του πρέπει να τοποθετηθεί στη θέση Μ, το Μ-
στο να τοποθετηθεί στη θέση 1, το δεύτερο να τοποθετηθεί στη θέση Μ-1 και το (Μ-
1)-στο να τοποθετηθεί στη θέση 2 κ.ο.κ.)

ΥΠΟΕΡΓΑΣΙΑ 2.
Έστω οι ακέραιες βαθμολογίες των φοιτητών που περιέχονται στον παρακάτω
πίνακα και οι οποίες αφορούν σε ένα τμήμα της Θ.Ε. ΠΛΗ89. Ο πίνακας αυτός
περιέχει τις ακέραιες βαθμολογίες των 4 εργασιών ενός τμήματος της ΠΛΗ89 που
έχει 30 φοιτητές. Συνολικά στον πίνακα υπάρχουν 120 τιμές βαθμολογίας, οι οποίες
πρέπει να είναι μεταξύ -1 και 10. Με -1 βαθμολογείται ο φοιτητής που δεν παρέδωσε
εργασία.

ΕΡΓΑΣΙΑ
ΦΟΙΤΗΤΗΣ
1η 2η 3η 4η
1 4 9 6 9
2 9 -1 5 9
… … … … …
30 8 10 7 4

Α. Να γράψετε σε Ψευδοκώδικα έναν αλγόριθμο ο οποίος θα δίνει τη δυνατότητα


στο χρήστη να εισάγει κατάλληλα τους βαθμούς των φοιτητών του Τμήματος
ΠΛΗ89 στον παραπάνω Πίνακα. Το σύστημα πρέπει να δέχεται μόνο ακέραιους
βαθμούς από -1 έως και 10. Υποθέστε ότι ο χρήστης του συστήματος εισάγει
μόνο ακέραιους βαθμούς. Δεν θα πρέπει όμως να γίνονται αποδεκτοί βαθμοί άνω
του 10 και κάτω του -1. Για το λόγο αυτό υιοθετήστε αμυντικό προγραμματισμό
έτσι ώστε να εξασφαλίζεται η σωστή εισαγωγή βαθμολογίας μέσα σε αποδεκτά
πλαίσια.
Β. Να γράψετε σε Ψευδοκώδικα έναν αλγόριθμο ο οποίος θα υπολογίζει και θα
τυπώνει:
2η ΓΡΑΠΤΗ ΕΡΓΑΣΙΑ ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ 2005-2006

1. τον μικρότερο βαθμό ανά εργασία χωρίς να λαμβάνονται υπόψη τα -1.


2. το μεγαλύτερο βαθμό ανά εργασία.
3. τη μέση βαθμολογία του κάθε φοιτητή χωρίς να λαμβάνονται υπόψη τα -1.
Υπόδειξη: Στον υπολογισμό του μέσου όρου κάθε εργασίας να ληφθούν υπόψη μόνο
οι εργασίες που παραδόθηκαν.
4. πόσοι φοιτητές σε κάθε εργασία πήραν βαθμό μεγαλύτερο από την αντίστοιχη
μέση τιμή της εργασίας χωρίς να λαμβάνονται υπόψη τα -1.
Υπόδειξη: Σαν πλήθος φοιτητών για τον υπολογισμό του μέσου όρου κάθε εργασίας
θεωρείται ο αριθμός των φοιτητών που παρέδωσαν τη συγκεκριμένη εργασία.
Γ. Δεδομένου ότι ο φοιτητής πρέπει να παραδώσει τουλάχιστον 3 εργασίες και να
έχει άθροισμα μονάδων ίσο ή μεγαλύτερο από το 20 για να αποκτήσει δικαίωμα
συμμετοχής στις εξετάσεις, ο αλγόριθμος πρέπει να αποφασίζει αν ο φοιτητής
δικαιούται να εξεταστεί ή όχι και να εμφανίζει ανάλογο μήνυμα.
Δ. Αναφέρατε τι διαστάσεων πίνακα θα χρησιμοποιούσαμε αν θέλαμε να
καταχωρήσουμε τις βαθμολογίες των 4 εργασιών κάθε φοιτητή δώδεκα (12)
τμημάτων της ΠΛΗ89 που το καθένα έχει 30 φοιτητές;

ΥΠΟΕΡΓΑΣΙΑ 3.
Στο Διάγραμμα Ροής Προγράμματος (flowchart) που ακολουθεί, φαίνεται ένας απλός
αλγόριθμος που δέχεται ως είσοδο ένα μονοδιάστατο πίνακα Α με Μ ακέραιους
αριθμούς.
ΕΙΣΟΔΟΣ ΕΚΤΥΠΩΣΗ
ΠΙΝΑΚΑ Α ΠΙΝΑΚΑ Α
ΑΡΧΗ ΜΕΓΕΘΟΥΣ
I:=1 I<M ΟΧΙ ΜΕΓΕΘΟΥΣ
ΤΕΛΟΣ
Μ Μ

ΝΑΙ

T:=A[I+1];
Α[Ι+1]<Α[Ι] ΝΑΙ A[I+1]:=A[I]; I:=1
A[I]:=T;

ΟΧΙ

I:=Ι+1

Α. Περιγράψτε με «φυσική γλώσσα» τη λειτουργία αυτού του αλγόριθμου.


Δηλαδή περιγράψτε ποια εργασία υλοποιείται και με ποιον τρόπο και επίσης
σχολιάστε τη μορφή που θα έχει το τελικό αποτέλεσμα που προκύπτει.
Β. Κατασκευάστε τον αντίστοιχο αλγόριθμο σε ψευδοκώδικα.
2η ΓΡΑΠΤΗ ΕΡΓΑΣΙΑ ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ 2005-2006

Γ. Χρησιμοποιώντας ως είσοδο τον πίνακα που ακολουθεί, καταγράψτε όλες


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

Α[1] Α[2] Α[3] Α[4] Α[5] Α[6]


3 2 5 8 6 1
Παράδειγμα:
ΣΤΟΙΧΕΙΑ ΠΟΥ
ΕΛΕΓΧΟΝΤΑΙ Έλεγχος, πιθανές αλλαγές στον πίνακα, νέα
Ι
Α[Ι] Α[Ι+1] τιμή του Ι
1 3 2 2 < 3 άρα ο πίνακας γίνεται:
2 3 5 8 6 1
και Ι :=1

ΥΠΟΕΡΓΑΣΙΑ 4.
ΣΥΝΟΛΟ (set) είναι μια συλλογή από ομοειδή δεδομένα τα οποία ονομάζονται
«στοιχεία» του συνόλου. Όλα τα στοιχεία μπορούν να εμφανίζονται μόνο μία φορά
στο σύνολο, ενώ η σειρά με την οποία αυτά τα στοιχεία καταγράφονται δεν έχει
καμία σημασία.
Για να συμβολίσουμε ένα σύνολο χρησιμοποιούμε τα κεφαλαία γράμματα, ενώ για να
καταγράψουμε τα στοιχεία του, τα περιλαμβάνουμε ανάμεσα σε άγκιστρα. Για
παράδειγμα, το σύνολο που περιλαμβάνει όλους τους άρτιους αριθμούς από το 1 έως
το 10 είναι το: Α = {2,6,8,4,10}.
Στα σύνολα ορίζονται μια σειρά από πράξεις ή λειτουργίες, μερικές από τις οποίες
είναι οι ακόλουθες:
• Οι λειτουργίες «ανήκει» (συμβολίζεται με ∈ ) και «δεν ανήκει» (συμβολίζεται με
∉ ) που αφορούν στην ύπαρξη ή μη ενός στοιχείου σε ένα σύνολο αντίστοιχα.
Έτσι αν x = 4 τότε γράφουμε x ∈ A , ενώ αν y = 3 τότε γράφουμε y ∉ A .
• Η λειτουργία «προσθήκη ενός στοιχείου» κατά την οποία ένα νέο στοιχείο
x προστίθεται σε ένα υπάρχον σύνολο, με την προϋπόθεση ότι το x δεν ανήκει
ήδη στο σύνολο και δεν παραβιάζεται ο κανόνας των διπλο-εμφανίσεων.
• Η λειτουργία «διαγραφή ενός στοιχείου» κατά την οποία ένα στοιχείο
x διαγράφεται από ένα υπάρχον σύνολο (εάν αυτό το στοιχείο ανήκει φυσικά στο
σύνολο).
2η ΓΡΑΠΤΗ ΕΡΓΑΣΙΑ ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ 2005-2006

Στις περισσότερες γλώσσες προγραμματισμού (με κάποιες εξαιρέσεις όπως η Pascal)


δεν υπάρχει άμεσος τρόπος δήλωσης και διαχείρισης συνόλων. Έτσι αναγκαζόμαστε
να «προσομοιώνουμε» αυτές τις συλλογές δεδομένων με άλλες υπάρχουσες δομές
δεδομένων. Από τη στιγμή που το πλήθος των στοιχείων ενός συνόλου δεν μπορεί να
είναι εκ των προτέρων γνωστό, είναι υποχρεωτικό να χρησιμοποιηθούν δυναμικές
δομές δεδομένων, όπως οι συνδεδεμένες λίστες.
Α. Κατασκευάστε αλγόριθμο σε μορφή ψευδοκώδικα, ο οποίος θα δέχεται ως είσοδο
μια συνδεδεμένη λίστα SET (που προσομοιώνει ένα σύνολο Α), θα διαβάζει ένα νέο
στοιχείο Υ (ακέραιο) και θα το προσθέτει σε έναν νέο κόμβο στο τέλος της λίστας
(άρα και στο σύνολο Α) εφόσον το στοιχείο αυτό δεν υπάρχει στη λίστα. Αν το Υ
υπάρχει ήδη στη λίστα, θα εμφανίζεται κατάλληλο μήνυμα.
Β. Κατασκευάστε αλγόριθμο σε μορφή ψευδοκώδικα, ο οποίος θα δέχεται ως είσοδο
μια συνδεδεμένη λίστα SET (που προσομοιώνει ένα σύνολο Α), θα διαβάζει ένα
στοιχείο Ζ και θα το διαγράφει (φυσικά μόνο εάν αυτό υπάρχει) από τη λίστα SET
(άρα και από το σύνολο Α). Αν το στοιχείο Ζ δεν υπάρχει θα εμφανίζεται κατάλληλο
μήνυμα.

Γενικές Υποδείξεις:
1. Οι απαντήσεις πρέπει να είναι γραμμένες με χρήση επεξεργαστή κειμένου
(π.χ.Word) σε σελίδες διαστάσεων Α4, με περιθώρια για παρατηρήσεις / σχόλια
από τον Καθηγητή - Σύμβουλο.
2. Η παρουσίαση των απαντήσεων και ιδίως του ψευδοκώδικα πρέπει να είναι σε
δομημένη μορφή με τα αναγκαία συνοπτικά σχόλια.
3. Οι απαντήσεις δεν πρέπει να υπερβαίνουν τις 10 σελίδες.
*******************************************************************_

You might also like