Α' ΤΕΛΙΚΗ ΕΞΕΤΑΣΗ - 5 ΙΟΥΝΙΟΥ 2010 ΧΡΟΝΟΣ ΕΞΕΤΑΣΗΣ 180' (Σύνολο μονάδων 115)

Σχετικά έγγραφα
Α' ΤΕΛΙΚΗ ΕΞΕΤΑΣΗ 8 ΙΟΥΝΙΟΥ 2008 ΑΠΑΝΤΗΣΕΙΣ ΣΤΑ ΘΕΜΑΤΑ

Αλγόριθμοι και Δομές Δεδομένων (IΙ) (γράφοι και δένδρα)

ΠΑΡΑΡΤΗΜΑ: QUIZ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ

Α. unsigned int Β. double. Γ. int. unsigned char x = 1; x = x + x ; x = x * x ; x = x ^ x ; printf("%u\n", x); Β. unsigned char

#include <stdlib.h> Α. [-128,127] Β. [-127,128] Γ. [-128,128]

Αφηρημένες Δομές Δεδομένων. Στοίβα (Stack) Υλοποίηση στοίβας

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

Άσκηση 1 (ανακοινώθηκε στις 20 Μαρτίου 2017, προθεσμία παράδοσης: 24 Απριλίου 2017, 12 τα μεσάνυχτα).

ιακριτά Μαθηµατικά και Μαθηµατική Λογική ΠΛΗ20 Ε ρ γ α σ ί α 4η Θεωρία Γραφηµάτων

Αλγόριθµοι και Πολυπλοκότητα

#2 Αλγόριθµοι, οµές εδοµένων και Πολυπλοκότητα

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. ΕΠΛ 035: οµές εδοµένων και Αλγόριθµοι για Ηλεκτρολόγους Μηχανικούς και Μηχανικούς Υπολογιστών

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

Α Β Γ static; printf("%c\n", putchar( A +1)+2); B DB BD. int i = 0; while (++i); printf("*");

Ουρές προτεραιότητας

Διάλεξη 22: Δυαδικά Δέντρα. Διδάσκων: Παναγιώτης Ανδρέου

Θεωρητικό Μέρος. int rec(int n) { int n1, n2; if (n <= 5) then return n; else { n1 = rec(n-5); n2 = rec(n-3); return (n1+n2); } }

ΠΛΗ111. Ανοιξη Μάθηµα 10 ο. Γράφοι. Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης

Άσκηση 3 (ανακοινώθηκε στις 24 Απριλίου 2017, προθεσμία παράδοσης: 2 Ιουνίου 2017, 12 τα μεσάνυχτα).

Πανεπιστήµιο Αθηνών. Τµήµα Πληροφορικής και Τηλεπικοινωνιών. Παραλληλία. Κ. Χαλάτσης, Εισαγωγή στην Επιστήµη της Πληροφορικής και των Τηλεπικοινωνιών

ΑΛΓΟΡΙΘΜΟΙ ΜΕ C. ΝΙΚΟΛΑΟΣ ΣΑΜΑΡΑΣ Αναπληρωτής Καθηγητής. CMOR Lab. Computational Methodologies and Operations Research

Δένδρα. Μαθηματικά (συνδυαστικά) αντικείμενα. Έχουν κεντρικό ρόλο στην επιστήμη των υπολογιστών :

ΠΛΗ111. Ανοιξη Μάθηµα 7 ο. έντρο. Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης

ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ (ΠΑΤΡΑ) ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Δοµές Δεδοµένων

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

Ουρά Προτεραιότητας (priority queue)

B' ΤΕΛΙΚΗ ΕΞΕΤΑΣΗ - 24 ΙΟΥΝΙΟΥ 2011 ΧΡΟΝΟΣ ΕΞΕΤΑΣΗΣ 180' (Σύνολο μονάδων 120)

Δομές δεδομένων (2) Αλγόριθμοι

Σχεδιαση Αλγοριθμων -Τμημα Πληροφορικης ΑΠΘ - Κεφαλαιο 9ο

Συλλογές, Στοίβες και Ουρές

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

Διδάσκων: Παναγιώτης Ανδρέου

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ

Ενότητες 3 & 4: Δένδρα, Σύνολα & Λεξικά Ασκήσεις και Λύσεις

Τύποι Δεδομένων και Απλές Δομές Δεδομένων. Παύλος Εφραιμίδης V1.0 ( )

Διάλεξη 16: Σωροί. Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Ουρές Προτεραιότητας - Ο ΑΤΔ Σωρός, Υλοποίηση και πράξεις

Διάλεξη 26: Σωροί. Διδάσκων: Παναγιώτης Ανδρέου

Insert(K,I,S) Delete(K,S)

Αλγόριθµοι και Πολυπλοκότητα

ΑΣΚΗΣΗ 1 Για τις ερωτήσεις 1-4 θεωρήσατε τον ακόλουθο γράφο. Ποιές από τις παρακάτω προτάσεις αληθεύουν και ποιές όχι;

Διάλεξη 12: Δέντρα ΙΙ Δυαδικά Δέντρα

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

Ενδεικτικές Λύσεις 1ου Σετ Ασκήσεων

Πληροφορική 2. Αλγόριθμοι

Αλγόριθµοι και Πολυπλοκότητα

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. ΘΕΩΡΗΤΙΚΗ ΑΣΚΗΣΗ 2 ΛΥΣΕΙΣ Γραμμικές Δομές Δεδομένων, Ταξινόμηση

Ουρά Προτεραιότητας (priority queue)

Δομές Δεδομένων (Εργ.) Ακ. Έτος Διδάσκων: Ευάγγελος Σπύρου. Εργαστήριο 10 Δυαδικά Δένδρα Αναζήτησης

Αλγόριθμοι και Δομές Δεδομένων (Ι) (εισαγωγικές έννοιες)

Στοιχεία Αλγορίθµων και Πολυπλοκότητας

Διάλεξη 16: Σωροί. Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Ουρές Προτεραιότητας - Ο ΑΤΔ Σωρός, Υλοποίηση και πράξεις

Ουρά Προτεραιότητας: Heap

ιαφάνειες παρουσίασης #11

Γράφημα. Συνδυαστικό αντικείμενο που αποτελείται από 2 σύνολα: Σύνολο κορυφών (vertex set) Σύνολο ακμών (edge set) 4 5 πλήθος κορυφών πλήθος ακμών

Περιεχόμενα. Περιεχόμενα

Διάλεξη 17: Δυαδικά Δέντρα. Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ

Τι είναι αλγόριθμος; Υποπρογράμματα (υποαλγόριθμοι) Βασικές αλγοριθμικές δομές

Αλγόριθμοι Ταξινόμησης Μέρος 4

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

Διάλεξη 17: O Αλγόριθμος Ταξινόμησης HeapSort

Ταξινόμηση κάδου και ταξινόμηση Ρίζας Bucket-Sort και Radix-Sort

Δομές Δεδομένων. Καθηγήτρια Μαρία Σατρατζέμη. Τμήμα Εφαρμοσμένης Πληροφορικής. Δομές Δεδομένων. Τμήμα Εφαρμοσμένης Πληροφορικής

Δομές Δεδομένων και Αλγόριθμοι

Πελάτες φθάνουν στο ταμείο μιας τράπεζας Eνα μόνο ταμείο είναι ανοικτό Κάθε πελάτης παρουσιάζεται με ένα νούμερο - αριθμός προτεραιότητας Όσο ο

Αλγόριθμοι Ταξινόμησης Μέρος 1

Ουρά Προτεραιότητας: Heap

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

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

Προγραμματισμός Ι (ΗΥ120)

Οι βασικές λειτουργίες (ή πράξεις) που γίνονται σε μια δομή δεδομένων είναι:

ΤΕΛΟΣ 1ΗΣ ΑΠΟ 5 ΣΕΛΙ ΕΣ

Διάλεξη 3η: Τύποι Μεταβλητών, Τελεστές, Είσοδος/Έξοδος

Κατ οίκον Εργασία 2 Σκελετοί Λύσεων

Λύσεις 4ης Σειράς Ασκήσεων

Κεφάλαιο 10 Ψηφιακά Λεξικά

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. Βασικές Ιδιότητες και Διάσχιση Κεφάλαιο 5 ( και ) Ε. Μαρκάκης Επίκουρος Καθηγητής

ΑΛΓΟΡΙΘΜΟΙ ΚΑΙ ΠΟΛΥΠΛΟΚΟΤΗΤΑ Φεβρουάριος 2005 Σύνολο μονάδων: 91

Κατ οίκον Εργασία 5 Σκελετοί Λύσεων

Εισαγωγή στους Αλγορίθμους

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #4

Αναζήτηση σε Γράφους. Μανόλης Κουμπαράκης. ΥΣ02 Τεχνητή Νοημοσύνη 1

Προγραμματισμός Ι. Δομές Δεδομένων. Δημήτρης Μιχαήλ. Ακ. Έτος Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

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

Δομές Δεδομένων & Αλγόριθμοι

Βασικές δοµές δεδοµένων. Ορολογία λιστών. 8.1 Βασικές έννοιες δοµών δεδοµένων 8.2 Υλοποίηση δοµών δεδοµένων 8.3 Μια σύντοµη υπόθεση εργασίας

6η Διάλεξη Διάσχιση Γράφων και Δέντρων

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

Κεφάλαιο 8.6. Πίνακες ΙI (Διάλεξη 17)

ΣΕΙΡΑ: ΗΜΕΡΟΜΗΝΙΑ: 05/03/2012 ΑΠΑΝΤΗΣΕΙΣ. ΘΕΜΑ Α Α1. Α2. 1. ΣΩΣΤΟ 1 στ 2. ΛΑΘΟΣ 2 δ 3. ΣΩΣΤΟ 3 ε 4. ΛΑΘΟΣ 4 β 5. ΣΩΣΤΟ 5 γ

Βασικές Έννοιες Δοµών Δεδοµένων

Μεθόδων Επίλυσης Προβλημάτων

ΔΙΑΣΧΙΣΗ ΓΡΑΦΗΜΑΤΩΝ 1

Μη γράφετε στο πίσω μέρος της σελίδας

Δομές Δεδομένων και Αλγόριθμοι

Διάλεξη 21: Γράφοι II - Τοπολογική Ταξινόμηση

ΕΝΤΟΛΕΣ ΕΠΑΝΑΛΗΨΗΣ. for (παράσταση_1; παράσταση_2; παράσταση_3) εντολή επόμενη εντολή

Δομές Δεδομένων και Αλγόριθμοι

Transcript:

ΕΛΛΝΚΟ ΝΟΚΤΟ ΠΝΕΠΣΤΜΟ ΠΡΟΡΜΜ ΣΠΟΥΩΝ: ΜΕΤΠΤΥΧΚ ΕΞΕΚΕΥΣ ΣΤ ΠΛΡΟΦΟΡΚ ΣΥΣΤΜΤ (ΠΛΣ) ΘΕΜΤΚ ΕΝΟΤΤ: ΒΣΚΕΣ ΕΞΕΚΕΥΣΕΣ ΣΕ ΘΕΩΡ Κ ΛΟΣΜΚΟ (ΠΛΣ50) ' ΤΕΛΚ ΕΞΕΤΣ - 5 ΟΥΝΟΥ 2010 ΧΡΟΝΟΣ ΕΞΕΤΣΣ 180' (Σύνολο μονάδων 115) Επώνυμο Μ Ονομα Τμήμα ΘΕΜ 1 (ΜΟΝΕΣ 3) Τι θα εμφανίσει στην οθόνη η εκτέλεση του παρακάτω προγράμματος; #include<stdio.h> void blah(char s[],char c) { int i,j; for(i=j=0;s[i]!='\0';i++) if(s[i]!=c) s[j++]= s[i]; s[j]='\0'; int main() { char s[10]="abcdef"; blah(s,'w'); printf("%s\n", s); blah(s, 'c'); printf("%s\n", s); Β Ε abcdef abcdef wwwwww cccccc abcdef abdef bcdef cef ύο κενές γραμμές ΘΕΜ 2 (ΜΟΝΕΣ 3) Ποιο από τα τμήματα κώδικα που ακολουθούν είναι ισοδύναμο με τον ακόλουθο κώδικα; int n=0; while(n!=99) scanf( %d,&n); Β Ε int n = 0; for ( ; n!= 99; ) scanf( "%d", &n ); do{ scanf( %d,%n); while(n!=99) for ( n=0; n!= 99; n++) scanf( "%d", &n ); π

ΠΛΣ50: ΒΣΚΕΣ ΕΞΕΚΕΥΣΕΣ ΣΕ ΘΕΩΡ Κ ΛΟΣΜΚΟ - ' ΤΕΛΚ ΕΞΕΤΣ - 13 ΟΥΝΟΥ 2009 ΘΕΜ 3 (ΜΟΝΕΣ 6) Τι θα εμφανίσει στην οθόνη η εκτέλεση του παρακάτω προγράμματος; #include <stdio.h> void gaou(int n) { if (n > 4) return; gaou(n+1); printf("%d ", n); gaou(n+2); int main() { gaou(1); Β E τίποτε 4 3 4 2 4 3 1 4 3 2 4 1 3 4 4 3 2 4 1 4 3 1 2 3 4 4 3 4 ΘΕΜ 4 (ΜΟΝΕΣ 6) Στο πιο κάτω πρόγραμμα με τι θα πρέπει να αντικαταστήσουμε το για να εκτυπώσει: 0 1 2 3 4 5 6 7 8 9 #include <stdio.h> int array[10] = { 0,1,2,3,4,5,6,7,8,9 ; int *ptr, counter; main() { ptr = array; for (counter = 0; counter < 10; counter++) printf("%d ", A); return 0; Β Ε array[counter++] ptr++ ++ptr *ptr++ array[++counter] ΘΕΜ 5 (ΜΟΝΕΣ 3) Έστω η παρακάτω διπλά συνδεδεμένη Λίστα στην οποία σημειώνονται μεταβλητές δεικτών και η τιμή τους. Θέλουμε να 2

ΠΛΣ50: ΒΣΚΕΣ ΕΞΕΚΕΥΣΕΣ ΣΕ ΘΕΩΡ Κ ΛΟΣΜΚΟ - ' ΤΕΛΚ ΕΞΕΤΣ - 13 ΟΥΝΟΥ 2009 διαγράψουμε τον κόμβο e. Ποιά από τις παρακάτω επιλογές περιγράφει ακριβώς τα βήματα που θα κάνουμε για το σκοπό αυτό; a c e g head current tail Β Ε current - > next = tail; head - > next = current - > next - > next - > prev; current - >next - > next - > prev = current; current - > next = current - > next - > next; current = current - > next - > next; current - > next - > prev = current - > prev; current - > next = current - > next - > next; current - > next - > next - > prev = current - > prev; current - > next = current - > prev - > next; current - > next = current - > prev; ΘΕΜ 6 (ΜΟΝΕΣ 6) Έστω η ακολουθία ΣΚΛ*Ρ**Π*Χ**Ν** όπου η εμφάνιση γράμματος σημαίνει την Εισαγωγή του γράμματος αυτού σε μια Στοίβα (stack), ενώ η εμφάνιση αστεριού την λειτουργία Εξαγωγής στοιχείου από τη Στοίβα. Κάθε φορά που γίνεται εξαγωγή στοιχείου από τη Στοίβα αυτό εισάγεται σε ένα υαδικό ένδρο ναζήτησης (), που στην αρχή είναι κενό. σύγκριση των κόμβων του δένδρου γίνεται αλφαβητικά. Ποια θα είναι η τελική μορφή του μετά την ολοκλήρωση όλων των κινήσεων της ακολουθίας; Λ Ρ Π Χ Λ Π Β Ρ Χ 3

ΠΛΣ50: ΒΣΚΕΣ ΕΞΕΚΕΥΣΕΣ ΣΕ ΘΕΩΡ Κ ΛΟΣΜΚΟ - ' ΤΕΛΚ ΕΞΕΤΣ - 13 ΟΥΝΟΥ 2009 Λ Π Ρ N Λ Π Ρ Χ Λ Ε Π Ρ N ΘΕΜ 7 (ΜΟΝΕΣ 6) Τρεις ακριβώς από τις παρακάτω προτάσεις είναι αληθείς. Ποιες; 1. Μπορούμε να διαβάσουμε Ν ακεραίους και να εξετάσουμε αν είναι ταξινομημένοι σε αύξουσα σειρά χρησιμοποιώντας μνήμη Θ(1) (χωρίς πίνακα, λίστα, κλπ). 2. Μπορούμε να διαβάσουμε Ν ακεραίους και να εμφανίσουμε όλους εκείνους που είναι μεγαλύτεροι κατά 10% από το μέσο όρο τους, με πολυπλοκότητα χώρου Θ(1). 3. Σε ένα υαδικό δένδρο αναζήτησης για να διαγράψουμε ένα κόμβο που έχει μόνο ένα υποδένδρο, αφαιρούμε τον κόμβο και τον αντικαθιστούμε με το υποδένδρο αυτό. 4. Ο πίνακας που περιέχει τα στοιχεία 8, 7, 4, 1, 6, 2, 1, 0, 4, 0 αποτελεί Σωρό μεγίστου (max heap). 5. χρονική πολυπλοκότητα της συνάρτησης max- heapify είναι Ο(1) όταν οι αριθμοί που περιέχονται στο Σωρό είναι όλοι ίσοι. 6. ν σε μια Στοίβα ή σε μια Ουρά αφαιρέσουμε (DELETE OPERATION) ένα στοιχείο και το επαναεισαγάγουμε (INSERT OPERATION) αμέσως μετά, τότε η ομή (Στοίβα ή Ουρά) δεν μεταβάλλεται. Β Ε 1, 3, 5 2, 4, 6 2, 5, 6 1, 4, 6 1, 2, 6 4

ΠΛΣ50: ΒΣΚΕΣ ΕΞΕΚΕΥΣΕΣ ΣΕ ΘΕΩΡ Κ ΛΟΣΜΚΟ - ' ΤΕΛΚ ΕΞΕΤΣ - 13 ΟΥΝΟΥ 2009 ΘΕΜ 8 (ΜΟΝΕΣ 6) Έστω ο πίνακας: 0 1 2 3 4 5 6 7 8 9 32 28 69 15 8 12 23 ώστε την pre- order διάταξη του δυαδικού δέντρου αναζήτησης που σχηματίζεται μετά τις αλλαγές που γίνονται με την ακόλουθη σειρά: 1. Μετά την εξαγωγή τριών στοιχείων του πίνακα με την λογική «στοίβας» και την εισαγωγή τους (με τη σειρά που διαγράφονται) στο υαδικό ένδρο ναζήτησης 2. Μετά την εξαγωγή των τεσσάρων υπολοίπων στοιχείων του πίνακα με την λογική «ουράς» και την εισαγωγή τους (με τη σειρά που διαγράφονται) στο υαδικό ένδρο ναζήτησης Β Ε 23 12 8 15 32 28 69 23 12 32 8 15 28 69 8 12 15 23 28 32 69 8 12 15 28 69 32 23 32 12 23 15 28 69 8 ΘΕΜ 9 (ΜΟΝΕΣ 9) Ένα δυαδικό δένδρο αναζήτησης έχει 11 κόμβους με κλειδιά γράμματα του αγγλικού αλφαβήτου συγκρινόμενα αλφαβητικά. προδιατεταγμένη (preorder) διαπέραση έχει ως αποτέλεσμα την επίσκεψη των κόμβων του με τη σειρά P, F, B, H, G, S, R, Y, T, W, Z. (α) Να βρείτε ποια είναι η σειρά επίσκεψης με την ενδοδιατεταγμένη διάσχιση (inorder) (μονάδες 1) και στη συνέχεια, (β) Να σχεδιάσετε το δυαδικό δένδρο, δίνοντας και μια περιγραφή των βημάτων που ακολουθείτε (μονάδες 8). παντήστε στο χώρο που διατίθεται στο φύλλο απαντήσεων α) η ενδοδιατεταγμένη διαπέραση προκύπτει με αλφαβητική ταξινόμηση των 11 κόμβων, σύμφωνα με το κλειδί. σειρά είναι B, F, G, H, P, R, S, T, W, Y, Z. β) Βλέπε Βιβλίο ΕΠ «ομές εδομένων», ωάννη Χατζηλυγερούδη, έκδοση 2000, Άσκηση αυτοαξιολόγησης 5.1, σελ. 126. Στο τέλος της διαδικασίας το θα έχει την ακόλουθη μορφή: P F S B H R Y G T Z W 5

ΠΛΣ50: ΒΣΚΕΣ ΕΞΕΚΕΥΣΕΣ ΣΕ ΘΕΩΡ Κ ΛΟΣΜΚΟ - ' ΤΕΛΚ ΕΞΕΤΣ - 13 ΟΥΝΟΥ 2009 ΘΕΜ 10 (ΜΟΝΕΣ 3) Ποια από τα παρακάτω 5 τμήματα ιαγραμμάτων Ροής εδομένων (Ρ) έχουν λογικά σφάλματα, όπως αυτά προκύπτουν θεωρώντας αυτοτελώς τους μετασχηματισμούς που εμφανίζονται, ή παραβιάζουν τις αρχές δημιουργίας Ρ; X Z P Y K Ώρες Εργασίας Μισθός B Κόστος Ώρας Υπολογισµός Μισθού µεροµηνία έννησης P2 A X X Y P1 Y P3 B Z P4 C P1 X P3 Y P2 Z ραµµατεία Λίστα Μ νάγνωση Στοιχείων Λίστα Μ, Όνοµα, Τηλέφωνο, ιεύθυνση Μορφοποίηση Μορφοποιηµένα στοιχεία Εκτυπωτής Ε Στοιχεία Φοιτητών ρχείο Φοιτητών Β Ε,Β,, Ε Β,, Ε,Β,,,, Όλα 6

ΠΛΣ50: ΒΣΚΕΣ ΕΞΕΚΕΥΣΕΣ ΣΕ ΘΕΩΡ Κ ΛΟΣΜΚΟ - ' ΤΕΛΚ ΕΞΕΤΣ - 13 ΟΥΝΟΥ 2009 ΘΕΜ 11 (ΜΟΝΕΣ 6) Παρακάτω δίνονται τρεις λεπτομερείς σχεδιασμοί μονάδων λογισμικού σε ψευδοκώδικα (- ). πό ποια ιαγράμματα Ροής εδομένων (1-3) προκύπτουν οι παρακάτω ψευδοκώδικες, αν εφαρμοστούν οι κανόνες σχεδιασμού της τεχνολογίας λογισμικού; ναφέρετε σε κάθε ιάγραμμα Ροής εδομένων τον ψευδοκώδικα που αντιστοιχεί. Σημειώστε την αντιστοίχιση στο φύλο απαντήσεων) Β procedure Exec_XXX CALL execm1(,, ) CALC 2(,Z) CALC 4(Z,E, ) CALC 3(, ) IF < 9 THEN PUT(I) END IF CALL execm5( ) END Procedure Exec_XXX CALL execm1(, ) CALCM2(, ) CALC 3(, ) CALC 4(, ) PUT(I) CALL execm5( ) END END Procedure Exec_XXX CALL execm1(, ) CALCM3(, ) CALC 2(,, ) WHILE (E > 0 ) DO CALL exec 4( ) END WHILE CALL execm5( ) M2 Ζ A M4 1 M1 Ε B M3 M5 Θ M2 Ζ A M4 2 Ε M1 B M3 M5 Θ M2 Ζ A M4 3 Β M1 B M3 Ε M5 Θ 7

ΠΛΣ50: ΒΣΚΕΣ ΕΞΕΚΕΥΣΕΣ ΣΕ ΘΕΩΡ Κ ΛΟΣΜΚΟ - ' ΤΕΛΚ ΕΞΕΤΣ - 13 ΟΥΝΟΥ 2009 ΘΕΜ 12 (ΜΟΝΕΣ 6) Έστω η παρακάτω συνάρτηση dosomething η οποία υπολογίζει και επιστρέφει πόσοι διαιρέτες του ακέραιου αριθμού a υπάρχουν στο διάστημα [b,c) : int dosomething( int a, int b, int c ) { int i, n=0; for (i=b; i < c; ++i) n = (i &&!(a%i)? ++n:n); return(n); Με ποια από τα παρακάτω ορίσματα θα καλούσατε την συνάρτηση dosomething, προκειμένου αυτή να ελεγχθεί σύμφωνα με τη μέθοδο των κλάσεων ισοδύναμων τιμών; Β Ε (1, 2, 10) (3, 15, 5) (12, 5, 20) (12, 5, 10) (0, 3, 25) (2, 9, 7) (8, - 10, - 2) (2, - 4, 4) (11, 3, 9) (7, 2, 5) (3, - 5, 1) (4, 12, 30) (5, - 30, - 1) (- 2, - 6, - 3) (3, 12, 8) ΘΕΜ 13 (ΜΟΝΕΣ 6) ίνεται η παρακάτω συνάρτηση chop, η οποία διαχωρίζει («σπάει») τη συμβολοσειρά που δίνεται ως είσοδος s σε διαδοχικά τμήματα μήκους ακριβώς ίσα με 5 και τα εμφανίζει στην οθόνη. Τμήματα με μήκος μικρότερο από 5 δεν εμφανίζονται καθόλου. Πόσες είναι οι ελάχιστες δοκιμές που πρέπει να γίνουν αν πρόκειται η συνάρτηση chop να ελεγχθεί με τη μέθοδο των κλάσεων ισοδύναμων τιμών; int chop(char *s) { char t[6]; int l = strlen(s); if (l < 5 ) return(-1); else if (l == 5){ printf("%s\n", s); return(0); strncpy(t, s, 5); *(t+5) = '\0'; printf("%s\n", t); return( chop(s+5) ); Β Ε 1 2 3 4 5 8

ΠΛΣ50: ΒΣΚΕΣ ΕΞΕΚΕΥΣΕΣ ΣΕ ΘΕΩΡ Κ ΛΟΣΜΚΟ - ' ΤΕΛΚ ΕΞΕΤΣ - 13 ΟΥΝΟΥ 2009 ΘΕΜ 14 (ΜΟΝΕΣ 9) Επανερχόμαστε στην εργασία Ε5 στην οποία προδιαγράφεται ένα σύστημα ηλεκτρονικής υποβολής εργασιών στο ΕΠ, μέσω διαδικτυακής πύλης. Στην εργασία αναφέρεται ότι "Οι συντονιστές των ΘΕ που χρησιμοποιούν το σύστημα, εισάγουν στο σύστημα τα στοιχεία για κάθε γραπτή εργασία και την εκφώνησή της. Το σύστημα δημιουργεί μια εγγραφή για την εργασία και της αποδίδει αυτόματα έναν κωδικό." Το αντίστοιχο Ρ δεύτερου επιπέδου, δίνεται στην ενδεικτική επίλυση: ΣΥΝΤΟΝΣΤΣ ΘΕ ΘΕ, ΕΡΣ, Μ.ΥΠΟΒΟΛΣ, ΜΟΝΕΣ ΚΩ.ΕΡΣΣ ΣΥΝΤΟΝΣΤΣ ΘΕ 2. Χ/Σ ΕΡΣΩΝ ΕΡΦ ΕΡΣΣ ΚΩ ΕΡΣΣ ΕΡΣΕΣ Να κατασκευάσετε το Ρ 3ου επιπέδου (να μην περιέχει περισσότερους από 2 μετασχηματισμούς) και το αντίστοιχο Π. Τι θα άλλαζε αν η αυτόματη απόδοση κωδικού εργασίας γίνονταν από ένα εξωτερικό σύστημα λογισμικού; παντήστε στο χώρο που διατίθεται στο φύλλο απαντήσεων ΣΥΝΤΟΝΣΤΣ ΘΕ ΘΕ, ΕΡΣ, Μ.ΥΠΟΒΟΛΣ, ΜΟΝΕΣ 2.1 ΝΝΩΣ ΣΤΟΧΕΩΝ ΕΡΣΣ ΕΡΦ ΕΡΣΣ 2.2 ΕΠΒΕΒΩΣ ΕΡΦΣ ΚΩ. ΕΡΣΣ ΣΥΝΤΟΝΣΤΣ ΘΕ ΚΩ ΕΡΣΣ ΕΡΦ ΕΡΣΣ ΕΡΣΕΣ RUN21 GET ΘΕ, ΕΡΣ, Μ.ΥΠΟΒΟΛΣ, ΜΟΝΕΣ DO PREPARE REC RUN22 GET ΚΩ ΕΡΣΣ DO CONFIRM REC PUT REC PUT ΚΩΚΟΣ ΕΡΣΣ Στην περίπτωση που είχαμε εξωτερικό σύστημα λογισμικού για την αυτόματη απόδοση κωδικών, θα έπρεπε να έχουμε έναν επιπλέον μετασχηματισμό οποίος θα διάβαζε τον τελευταίο "Κωδικό εργασίας" από την αποθήκη "Εργασίες" και θα υπολόγιζε τον επόμενο, τον οποίο και θα επέστρεφε. 9

ΠΛΣ50: ΒΣΚΕΣ ΕΞΕΚΕΥΣΕΣ ΣΕ ΘΕΩΡ Κ ΛΟΣΜΚΟ - ' ΤΕΛΚ ΕΞΕΤΣ - 13 ΟΥΝΟΥ 2009 ΘΕΜ 15 (ΜΟΝΕΣ 3) Ποια είναι η χρονική πολυπλοκότητα του παρακάτω κώδικα σε Θ- συμβολισμό; for i=1 to n do for j=2*i to n do s=s+1 Β Ε Θ(n) Θ(! log!) Θ(!) Θ(n 2 ) Καμία από τις προηγούμενες ΘΕΜ 16 (ΜΟΝΕΣ 6) Ποια είναι η πολυπλοκότητα της παρακάτω συνάρτησης σε O- συμβολισμό; 8 log! + 4! 3! 2 log! Β Ε! 1!!! 1!! 1! log!! 1!! log! Καμία από τις προηγούμενες ΘΕΜ 17 (ΜΟΝΕΣ 9). Έστω ότι σας δίνονται δύο πίνακες n ακεραίων και σας ζητάνε να ελέγξετε εάν έχουν τα ίδια στοιχεία. Περιγράψτε ένα αλγόριθμο με πολυπλοκότητα Ο(n) που να επιλύει το παραπάνω πρόβλημα χρησιμοποιώντας hashing. Υποθέστε ότι σε κάθε πίνακα όλα τα στοιχεία είναι διαφορετικά μεταξύ τους. Β. Έστω ότι σας δίνονται δύο πίνακες n ακεραίων και σας ζητάνε να ελέγξετε εάν έχουν έστω και ένα κοινό στοιχείο. Περιγράψτε ένα αλγόριθμο με πολυπλοκότητα Θ(! log!) που να επιλύει το παραπάνω πρόβλημα χωρίς να χρησιμοποιεί hashing. Υποθέστε ότι σε κάθε πίνακα όλα τα στοιχεία είναι διαφορετικά μεταξύ τους. παντήστε στο χώρο που διατίθεται στο φύλλο απαντήσεων. Κάνουμε hashing τα στοιχεία του πρώτου πίνακα. ια κάθε στοιχείο του δεύτερου πίνακα, το αναζητούμε στον πίνακα hashing. Ο αναμενόμενος χρόνος είναι γραμμικός O(n). Β. ρχικά ενώνουμε τα στοιχεία των δύο πινάκων φτιάχνοντας ένα τρίτο πίνακα με μέγεθος 2n. Ταξινομούμε τον πίνακα αυτό και στη συνέχεια ελέγχουμε αν υπάρχουν δύο συνεχόμενα στοιχεία του που να είναι ίσα. Ο χρόνος είναι Θ(! log!), όσο χρειάζεται για την ταξινόμηση. ΘΕΜ 18 (ΜΟΝΕΣ 3) ια κάθε μία από τις παρακάτω προτάσεις, αναφέρετε εάν είναι αληθής ή ψευδής: ) αναπαράσταση γράφου με συνδεδεμένες λίστες είναι πιο συμπαγής (απαιτεί λιγότερη μνήμη) έναντι της αναπαράστασης γράφου με πίνακα γειτνίασης για σχεδόν πλήρως συνδεδεμένους γράφους (δηλαδή για γράφους όπου υπάρχουν ακμές των περισσοτέρων ζευγών κορυφών). Β) Ο αλγόριθμος breadth- first search βρίσκει πάντα το συντομότερο μονοπάτι μεταξύ δύο κορυφών ενός γράφου. ) Ένας κατευθυνόμενος μη- κυκλικός γράφος μπορεί να έχει περισσότερες από μία τοπολογικές ταξινομήσεις (topological sort) των κορυφών του. ) ακμή με το μικρότερο βάρος (υποθέτουμε ότι είναι μοναδική) σε έναν μη- κατευθυνόμενο γράφο συμμετέχει πάντα στο ελάχιστο ζευγνύον δένδρο (minimum spanning tree). Ε) Μια ακμή με το μεγαλύτερο βάρος (υποθέτουμε ότι είναι μοναδική) σε έναν μη- κατευθυνόμενο γράφο δεν συμμετέχει ποτέ στο ελάχιστο ζευγνύον δένδρο. ΣΤ) ελάχιστη απόσταση μεταξύ δύο οποιωνδήποτε κορυφών σε γράφο που περιλαμβάνει αρνητικούς κύκλους δεν 10

ΠΛΣ50: ΒΣΚΕΣ ΕΞΕΚΕΥΣΕΣ ΣΕ ΘΕΩΡ Κ ΛΟΣΜΚΟ - ' ΤΕΛΚ ΕΞΕΤΣ - 13 ΟΥΝΟΥ 2009 είναι δυνατόν να οριστεί σε καμία περίπτωση (δηλαδή είναι πάντα μείον άπειρο). ράψτε [Σ]ωστό ή [Λ]άθος σε κάθε περίπτωση στο φύλλο απαντήσεων Β Ε ΣΤ Λάθος. Λάβετε υπόψη και το μέγεθος των δεικτών που απαιτούνται για τις λίστες γειτνίασης. Σωστό. Σωστό. Σωστό. Λάθος. ια παράδειγμα, σκεφτείτε έναν γράφο με δύο κορυφές και μια ακμή μεταξύ τους. Λάθος. Είναι δυνατόν να μην υπάρχει κανένα μονοπάτι μεταξύ των δύο κορυφών που να περιλαμβάνει τον αρνητικό κύκλο. ΘΕΜ 19 (ΜΟΝΕΣ 6) ίνεται η παρακάτω ακολουθία A είκοσι ακεραίων αριθμών (προηγούνται οι ακέραιοι της πρώτης γραμμής και ακολουθούν αυτοί της δεύτερης). 23 61 53 6 94 5 91 22 59 89 26 87 93 98 79 18 27 52 68 10 Ως υπο- ακολουθία της παραπάνω ακολουθίας ορίζουμε οποιαδήποτε ακολουθία αριθμών που εμφανίζονται στην παραπάνω ακολουθία, όχι απαραίτητα συνεχόμενων αλλά χωρίς να αλλάξει η σειρά εμφάνισής τους. ια παράδειγμα, μια υπο- ακολουθία είναι η: 61 6 94 22 89 87 98 27 68 Ενδιαφερόμαστε για υπο- ακολουθίες της δοθείσης ακολουθίας στις οποίες οι αριθμοί εμφανίζονται σε αύξουσα σειρά, όπως π.χ. η: 6 22 26 27 68 Ειδικότερα, ενδιαφερόμαστε για τη μέγιστη υπο- ακολουθία της με αριθμούς σε αύξουσα σειρά (Longest Increasing Subsequence problem). Πόσα στοιχεία έχει αυτή; Υπόδειξη: Ορίστε ως L(j) το μήκος της μέγιστης αύξουσας υπο- ακολουθίας της L, το τελευταίο στοιχείο της οποίας είναι το A[j]. σχύει ότι: L( j) = max i< j A[ i] < A[ j] { L( i) + 1 τιμή που αναζητάμε είναι η max{ L( j) j. Β Ε 5 6 7 8 9 11

ΠΛΣ50: ΒΣΚΕΣ ΕΞΕΚΕΥΣΕΣ ΣΕ ΘΕΩΡ Κ ΛΟΣΜΚΟ - ' ΤΕΛΚ ΕΞΕΤΣ - 13 ΟΥΝΟΥ 2009 ΘΕΜ 20 (ΜΟΝΕΣ 9) Έστω το πρόβλημα της συμπλήρωσης ενός χρηματικού ποσού, έστω n, με κέρματα, με στόχο τη χρήση όσο το δυνατό λιγότερων κερμάτων. Έστω ότι έχετε απεριόριστα κέρματα στη διάθεσή σας από τις παρακάτω αξίες: 1, 10, 25, 50 Προτείνετε έναν άπληστο αλγόριθμο που να επιλέγει τα κέρματα που θα χρησιμοποιηθούν για τη συμπλήρωση του ποσού n. Είναι βέλτιστος ο αλγόριθμός σας; Εάν ναι, αποδείξτε το. Εάν όχι, δώστε ένα παράδειγμα που να μην βρίσκει το βέλτιστο σύνολο κερμάτων. Μπορείτε να σκεφτείτε μια ικανή συνθήκη για να είναι βέλτιστος ο αλγόριθμός σας; παντήστε στο χώρο που διατίθεται στο φύλλο απαντήσεων Ένας άπληστος αλγόριθμος είναι ο εξής: Όσο n>0 Επέλεξε ένα κέρμα με τη μεγαλύτερη δυνατή αξία k που να είναι μικρότερη από n Θέσε n=n- k ια παράδειγμα, έστω n=70. Ο παραπάνω αλγόριθμος θα επιλέξει αρχικά ένα κέρμα των 50 και στη συνέχεια δύο κέρματα των 10, σύνολο τρία κέρματα, που είναι η βέλτιστη λύση. ν όμως έχουμε n=80, τότε ο παραπάνω αλγόριθμος θα επιλέξει αρχικά ένα κέρμα των 50, μετά ένα κέρμα των 25 και μετά πέντε κέρματα του 1, σύνολο 7 κέρματα, που δεν είναι η βέλτιστη επιλογή. Πράγματι, το ίδιο ποσό θα μπορούσε να σχηματισθεί με 4 μόνο κέρματα, δηλαδή ένα κέρμα των 50 και τρία κέρματα των 10. Άρα ο αλγόριθμος δεν είναι βέλτιστος. Μια ικανή συνθήκη για να είναι βέλτιστος ο αλγόριθμος θα ήταν κάθε κέρμα να είναι πολλαπλάσιο του προηγούμενού του. 12