ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΕΤΑΡΤΗ 12 ΙΟΥΝΙΟΥ ΑΠΑΝΤΗΣΕΙΣ ΘΕΜΑ Α Α1. 1. Σ, 2. Λ, 3. Λ, 4. Σ, 5. Λ Α2. • • • •
Προσπέλαση (access) πρόσβαση σε ένα κελί με σκοπό να εξετασθεί ή να τροποποιηθεί το περιεχόμενο του. Αντιγραφή (copying), κατά την οποία όλοι οι κόμβοι ή μερικοί από τους κόμβους μιας δομής αντιγράφονται σε μια άλλη δομή. Αναζήτηση (searching) κατά την οποία προσπελαύνονται τα κελιά του πίνακα, προκειμένου να εντοπιστούν ένα ή περισσότερα που έχουν μια δεδομένη ιδιότητα. Ταξινόμηση (copying) κατά την οποία όλα τα κελιά ή μερικά από τα κελιά μίας δομής αντιγράφονται σε μία άλλη δομή.
Α3. α. 6, 8, 10 β. 7 γ. 1, 3 Α4. α. Συνθήκη Ψευδής
Αληθής Εντολές
β. Εντολές
Συνθήκη Αληθής
Ψευδής
Α5. ΔΙΑΒΑΣΕ Μ1, Μ2 P <− 0 ΟΣΟ Μ2 > 0 ΕΠΑΝΑΛΑΒΕ ΑΝ Μ2 MOD 2 = 1 TOTE P <− P + M1 ΤΕΛΟΣ_ΑΝ M1 <− M1 * 2 M2 <− M2 DIV 2 ΤΕΛΟΣ_ ΕΠΑΝΑΛΗΨΗΣ ΓΡΑΨΕ P ΘΕΜΑ Β Β1. (1) 0 (2) n (3) Ψευδής (4) i (5) count + 1 (6) 3 (7) ΑΛΗΘΗΣ (8) position (9) i + 1 (10) done = ΑΛΗΘΗΣ (ή count = 3 ή position <> 0) Β2. α. 1. 2. 3. 4. 5. β.
1. 2. 3. 4. 5.
Η δεύτερη παράμετρος της συνάρτησης αντιστοιχεί σε πίνακα, ενώ η δεύτερη παράμετρος της εντολής του κυρίως προγράμματος είναι μεταβλητή. Το υποπρόγραμμα Α είναι συνάρτηση και δεν εκτελείται με την εντολή ΚΑΛΕΣΕ. Ο πλήθος πραγματικών και τυπικών παραμέτρων διαφέρει. Η συνάρτηση επιστρέφει πραγματική τιμή η οποία εκχωρείται σε μεταβλητή τύπου χαρακτήρα. Το υποπρόγραμμα Β για να εκτελεστεί πρέπει να γίνει χρήση της εντολής ΚΑΛΕΣΕ. π ← Α(κ, θ) γ ← Α(μ, θ) ΚΑΛΕΣΕ Β(π, μ, γ) γ ← Α(μ, θ) ΚΑΛΕΣΕ Β(π, μ, ρ[1])
ΘΕΜΑ Γ ΠΡΟΓΡΑΜΜΑ ΘΕΜΑ_Γ ΜΕΤΑΒΛΗΤΕΣ ΑΚΕΡΑΙΕΣ: Π, Π1, Π2, Π3, ΜΑΧ, ΕΠ ΧΑΡΑΚΤΗΡΕΣ: ΤΙΤ, ΤΙΤΜΑΧ, ΚΑΤ ΑΡΧΗ Π <− 0 Π1 <− 0 Π2 <− 0 Π3 <− 0 ΜΑΧ <− –1 ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ ΓΡΑΨΕ 'Δώστε τίτλο (ΤΕΛΟΣ για έξοδο)' ΔΙΑΒΑΣΕ ΤΙΤ ΑΝ ΤΙΤ <> 'ΤΕΛΟΣ' ΤΟΤΕ ΑΡΧΗ_ ΕΠΑΝΑΛΗΨΗΣ ΓΡΑΨΕ 'Δώστε αριθμό επισκέψεων' ΔΙΑΒΑΣΕ ΕΠ ΜΕΧΡΙΣ_ΟΤΟΥ ΕΠ >= 0 ΑΝ ΜΑΧ < ΕΠ ΤΟΤΕ ΜΑΧ <− ΕΠ ΤΙΤΜΑΧ <− ΤΙΤ ΤΕΛΟΣ _ΑΝ ΑΝ ΕΠ > 0 ΤΟΤΕ ΑΝ ΕΠ <= 100 ΤΟΤΕ Π1 <− Π1 + 1 ΑΛΛΙΩΣ_ΑΝ ΕΠ <= 1000 ΤΟΤΕ Π2 <− Π2 + 1 ΑΛΛΙΩΣ Π3 <− Π3 + 1 ΤΕΛΟΣ_ΑΝ ΤΕΛΟΣ_ΑΝ ΤΕΛΟΣ_ΑΝ ΜΕΧΡΙ_ΟΤΟΥ ΤΙΤ = 'ΤΕΛΟΣ' ΓΡΑΨΕ 'Βίντεο με μεγαλύτερο αριθμό επισκέψεων: ', ΤΙΤΜΑΧ ΓΡΑΨΕ 'Χαμηλή κατηγορία: ' , Π1, 'βίντεο' ΓΡΑΨΕ 'Μεσαία κατηγορία: ' , Π2, 'βίντεο' ΓΡΑΨΕ 'Υψηλή κατηγορία: ', Π3, 'βίντεο' ΑΝ Π1 > Π2 ΚΑΙ Π1 > Π2 ΤΟΤΕ ΚΑΤ <− 'χαμηλή κατηγορία' ΑΛΛΙΩΣ_ΑΝ Π2 > Π1 ΚΑΙ Π2 > Π3 ΤΟΤΕ ΚΑΤ <− 'μεσαία κατηγορία'
ΑΛΛΙΩΣ ΚΑΤ <− 'υψηλή κατηγορία' ΤΕΛΟΣ_ΑΝ ΓΡΑΨΕ 'Τα περισσότερα βίντεο καταχωρήθηκαν στην ', ΚΑΤ, '.' ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ ΘΕΜΑ Δ ΠΡΟΓΡΑΜΜΑ ΘΕΜΑ_Δ ΜΕΤΑΒΛΗΤΕΣ ΑΚΕΡΑΙΕΣ: Ι, J, Κ, ΒΑΘ[40,6], Β, ΣB[40], Τ1 ΧΑΡΑΚΤΗΡΕΣ: ΟΝ[40], ΑΠ, Τ2 ΑΡΧΗ ! Δ2 ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ 40 ΔΙΑΒΑΣΕ ΟΝ[1] ΓΙΑ Κ ΑΠΟ 1 ΜΕΧΡΙ 6 ΒΑΘ[Ι,J] <− 0 ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ΤΕΛΟΣ _ΕΠΑΝΑΛΗΨΗΣ ! Δ3 ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ ΔΙΑΒΑΣΕ I, J, B ΑΝ Β > ΒΑΘ[I, J]ΤΟΤΕ ΒΑΘ[I, J] <− B ΤΕΛΟΣ_ΑΝ ΓΡΑΨΕ 'Υπάρχει νέα λύση προβλήματος; ΝΑΙ/ΟΧΙ' ΔΙΑΒΑΣΕΑΠ ΜΕΧΡΙΣ_ΟΤΟΥ ΑΠ = 'ΟΧΙ' ! Δ4 ΚΑΛΕΣΕ ΥΣΒ(ΒΑΘ, ΣΒ) ! Δ5 ΓΙΑ Κ ΑΠΟ 2 ΜΕΧΡΙ 40 ΓΙΑ Ι ΑΠΟ 40 ΜΕΧΡΙ Κ ΜΕ ΒΗΜΑ –1 ΑΝ ΣΒ[Ι – 1] < ΣΒ[Λ] ΤΟΤΕ Τ1<− ΣΒ[Ι – 1] ΣΒ[Ι – 1] <− ΣΒ[Ι] ΣΒ[Ι] <− Τ1 Τ2 <− ΟΝ[Ι – 1] ΟΝ[Ι – 1] <− ΟΝ[Ι] ΟΝ[Ι] <− Τ2 ΑΛΛΙΩΣ_ΑΝ ΣΒ[Ι – 1] = ΣΒ[Ι] ΤΟΤΕ ΑΝ ΟΝ[Ι – 1] > ΟΝ[Ι] ΤΟΤΕ
Τ2 <− ΟΝ[Ι – 1] ΟΝ[Ι – 1] <− ΟΝ[Ι] ΟΝ[Ι] <− Τ2 ΤΕΛΟΣ_ΑΝ ΤΕΛΟΣ_ΑΝ ΤΕΛΟΣ_ ΕΠΑΝΑΛΗΨΗΣ ΤΕΛΟΣ _ΕΠΑΝΑΛΗΨΗΣ ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ 40 ΓΡΑΨΕ ΟΝ[Ι] ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ ΔΙΑΔΙΚΑΣΙΑ ΥΣΒ(ΒΑΘ, ΣΒ) ΜΕΤΑΒΛΗΤΕΣ ΑΚΕΡΑΙΕΣ: Ι, J, ΒΑΘ[40,6], ΣΒ[40] ΑΡΧΗ ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ 40 ΣΒ[I] ← 0 ΓΙΑ J ΑΠΟ 1 ΜΕΧΡΙ 6 ΣΒ[I] <− ΣΒ[I] + ΒΑΘ[I, J] ΤΕΛΟΣ_ ΕΠΑΝΑΛΗΨΗΣ ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ