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