Θέμα Α, Ερώτημα 1
Δίνονται τα παρακάτω τμήματα αλγορίθμου σε φυσική γλώσσα.
- Αν η βαθμολογία (ΒΑΘΜΟΣ) είναι μεγαλύτερη από τον Μέσο Όρο (ΜΟ), τότε να τυπώνει «Πολύ Καλά», αν είναι ίση ή μικρότερη του Μέσου Όρου μέχρι και δύο μονάδες να τυπώνει «Καλά», σε κάθε άλλη περίπτωση να τυπώνει «Μέτρια».
- Αν το τμήμα (ΤΜΗΜΑ) είναι το Γ1 και η βαθμολογία (ΒΑΘΜΟΣ) είναι μεγαλύτερη από 15, τότε να τυπώνει το επώνυμο (ΕΠΩΝΥΜΟ).
- Αν η απάντηση (ΑΠΑΝΤΗΣΗ) δεν είναι Ν ή ν ή Ο ή ο, τότε να τυπώνει «Λάθος απάντηση».
- Αν ο αριθμός (Χ) είναι αρνητικός ή το ημίτονό του είναι μηδέν, τότε να τυπώνει «Λάθος δεδομένο», αλλιώς να υπολογίζει και να τυπώνει την τιμή της παράστασης
Να γράψετε στο τετράδιό σας τους αριθμούς 1 έως 4 και δίπλα σε κάθε αριθμό την αντίστοιχη κωδικοποίηση σε ΓΛΩΣΣΑ.
Σημείωση: Οι λέξεις με κεφαλαία μέσα στις παρενθέσεις είναι τα ονόματα των αντίστοιχων μεταβλητών.
Μονάδες 8
ΛΥΣΗ
1.Αν ΒΑΘΜΟΣ>ΜΟ τότε Γράψε 'ΠΟΛΥ ΚΑΛΑ' αλλιώς_αν ΜΟ-ΒΑΘΜΟΣ<=2 τότε Γράψε 'ΚΑΛΑ' αλλιώς Γράψε 'ΜΕΤΡΙΑ' Τέλος_αν 2.Αν ΤΜΗΜΑ='Γ1' και ΒΑΘΜΟΣ>15 τότε Γράψε ΕΠΩΝΥΜΟ Τέλος_αν 3.Αν ΑΠΑΝΤΗΣΗ<>'Ν' και ΑΠΑΝΤΗΣΗ<>'Ο' και ΑΠΑΝΤΗΣΗ<>'ν' και ΑΠΑΝΤΗΣΗ<>'ο' τότε Γράψε 'ΛΑΘΟΣ ΑΠΑΝΤΗΣΗ' Τέλος_αν 4.Αν x<0 ή ΗΜ(x)=0 τότε Γράψε 'ΛΑΘΟΣ ΔΕΔΟΜΕΝΟ' αλλιώς Γράψε (x^2+5*x+1)/(T_Ρ(x)* ΗΜ(x)) Τέλος_αν
Θέμα Α, Ερώτημα 2
Να αναφέρετε τους τύπους των μεταβλητών που υποστηρίζει η ΓΛΩΣΣΑ. Για κάθε τύπο μεταβλητής, να γράψετε μια εντολή εκχώρησης σταθερής τιμής σε μεταβλητή.
Μονάδες 8
ΛΥΣΗ
Ακέραιες α <- 7 Πραγματικές τιμή <- 3.14 Χαρακτήρες όνομα <- 'Λένα' Λογικές βρέθηκε <- Αληθής
Θέμα Α, Ερώτημα 3
Δίνεται το παρακάτω τμήμα αλγορίθμου:
Α<- 0 Β<- 0 Γ<- 0 Δ<- 0 Για Ε από 1 μέχρι 496 Διάβασε Ζ Αν Ε=1 Τότε Η<- Ζ Α<- Α+Ζ Αν Ζ ≥ 18 Τότε Β<- Β+Ζ Γ<- Γ+1 Τέλος_Αν Αν Ζ > 0 Τότε Δ<- Δ+1 Αν Ζ < Η Τότε Η<-Ζ Τέλος_Επανάληψης Θ<- Α/496 Αν Γ≠0 Τότε Ι<-Β/Γ Κ<- 496 - Γ
Το παραπάνω τμήμα αλγορίθμου υπολογίζει στις μεταβλητές Η, Θ, Ι, Κ και Δ τις παρακάτω πληροφορίες:
- Μέσος όρος όλων των τιμών εισόδου
- Πλήθος των θετικών τιμών εισόδου
- Μικρότερη τιμή εισόδου
- Μέσος όρος των τιμών εισόδου από 18 και πάνω
- Πλήθος των τιμών εισόδου κάτω από 18.
Να γράψετε στο τετράδιό σας τους αριθμούς των πληροφοριών 1 έως 5 και δίπλα το όνομα της μεταβλητής που αντιστοιχεί σε κάθε πληροφορία.
Μονάδες 10
ΛΥΣΗ
- Θ
- Δ
- Η
- Ι
- Κ
Θέμα Α, Ερώτημα 4
Έστω πίνακας table με Μ γραμμές και Ν στήλες που περιέχει αριθμητικές τιμές. Δίνεται ο παρακάτω αλγόριθμος που υπολογίζει το άθροισμα κατά γραμμή, κατά στήλη και συνολικά.
-
Αλγόριθμος Αθρ_Πίνακα
-
Δεδομένα // m, n, table //
-
sum <- 0
-
Για i από 1 μέχρι m
-
row [i] <- 0
-
Τέλος_επανάληψης
-
Για j από 1 μέχρι n
-
col [j] <- 0
-
Τέλος_επανάληψης
-
Για i από 1 μέχρι m
-
Για j από 1 μέχρι n
-
______________
-
______________
-
______________
-
Τέλος_επανάληψης
-
Τέλος_επανάληψης
-
Αποτελέσματα // row, col, sum //
-
Τέλος Αθρ_Πίνακα
Τα αθροίσματα των γραμμών καταχωρίζονται στον πίνακα row, των στηλών στον πίνακα col και το συνολικό άθροισμα στη μεταβλητή sum.
Να γράψετε στο τετράδιό σας τις εντολές που πρέπει να συμπληρωθούν στις γραμμές 12, 13 και 14, ώστε ο αλγόριθμος να επιτελεί τη λειτουργία που περιγράφτηκε.
Μονάδες 6
ΛΥΣΗ
-
row[i] <- row[i] + table[i,j]
-
col[j] <- col[j] + table[i,j]
-
sum <- sum + table[i,j]
Θέμα Α, Ερώτημα 5
Δίνεται πίνακας Π[20] με αριθμητικές τιμές. Στις μονές θέσεις βρίσκονται καταχωρισμένοι θετικοί αριθμοί και στις ζυγές αρνητικοί αριθμοί. Επίσης, δίνεται το παρακάτω τμήμα αλγορίθμου ταξινόμησης τιμών του πίνακα.
Για x από 3 μέχρι 19 με_βήμα ______ Για y από ______ μέχρι________ με_βήμα _________ Αν Π[________ ] < Π[________ ] Τότε Αντιμετάθεσε Π[________ ], Π[_________ ] Τέλος_αν Τέλος_Επανάληψης Τέλος_Επανάληψης
Να μεταφέρετε στο τετράδιό σας το παραπάνω τμήμα αλγορίθμου συμπληρώνοντας τα κενά με τις κατάλληλες σταθερές, μεταβλητές ή εκφράσεις, ώστε να ταξινομούνται σε αύξουσα σειρά μόνο οι θετικές τιμές του πίνακα.
Μονάδες 8
ΛΥΣΗ
Για x από 3 μέχρι 19 με_βήμα 2 Για y από 19 μέχρι x με_βήμα -2 Αν Π[y] < Π[y-2] τότε Αντιμετάθεσε Π[y] ,Π[y-2] Τέλος_αν Τέλος_επανάληψης Τέλος_επανάληψης
Θέμα Β
Δίνεται το παρακάτω τμήμα αλγορίθμου, στο οποίο έχουν αριθμηθεί οι γραμμές:
- j<-1
- i<-2
- Αρχή_επανάληψης
- i<-i + j
- j<-i – j
- Εμφάνισε i
- Μέχρις_ότου i ≥ 5
Επίσης δίνεται το ακόλουθο υπόδειγμα πίνακα τιμών:
αριθμός γραμμής | συνθήκη | έξοδος | i | j |
… | … | … | … | … |
Στη στήλη με τίτλο «αριθμός γραμμής» καταγράφεται ο αριθμός γραμμής της εντολής που εκτελείται.
Στη στήλη με τίτλο «συνθήκη» καταγράφεται η λογική τιμή ΑΛΗΘΗΣ ή ΨΕΥΔΗΣ, εφόσον η εντολή που εκτελείται περιλαμβάνει συνθήκη.
Στη στήλη με τίτλο «έξοδος» καταγράφεται η τιμή εξόδου, εφόσον η εντολή που εκτελείται είναι εντολή εξόδου.
Στη συνέχεια του πίνακα υπάρχει μια στήλη για κάθε μεταβλητή του αλγόριθμου.
Να μεταφέρετε τον πίνακα στο τετράδιό σας και να τον συμπληρώσετε εκτελώντας τις εντολές του τμήματος αλγορίθμου ως εξής:
Για κάθε εντολή που εκτελείται να γράψετε σε νέα γραμμή του πίνακα τον αριθμό της γραμμής της και το αποτέλεσμά της στην αντίστοιχη στήλη.
Σημείωση: Η εντολή της γραμμής 3 δεν χρειάζεται να αποτυπωθεί στον πίνακα.
Μονάδες 20
ΛΥΣΗ
Αρ. Γραμμής | Συνθήκη | Έξοδος | i | j |
1 | 1 | |||
2 | 2 | |||
4 | 3 | |||
5 | 2 | |||
6 | 3 | |||
7 | ψευδής | |||
4 | 5 | |||
5 | 3 | |||
6 | 5 | |||
7 | αληθής |
Θέμα Γ
Σε κάποιο σχολικό αγώνα, για το άθλημα «Άλμα εις μήκος» καταγράφεται για κάθε αθλητή η καλύτερη έγκυρη επίδοσή του. Τιμής ένεκεν, πρώτος αγωνίζεται ο περσινός πρωταθλητής. Η Επιτροπή του αγώνα διαχειρίζεται τα στοιχεία των αθλητών που αγωνίστηκαν. Να γράψετε αλγόριθμο ο οποίος:
Γ1. Να ζητάει το ρεκόρ αγώνων και να το δέχεται, εφόσον είναι θετικό και μικρότερο των 10 μέτρων.
Μονάδες 2
Γ2. Να ζητάει τον συνολικό αριθμό των αγωνιζομένων και για κάθε αθλητή το όνομα και την επίδοσή του σε μέτρα με τη σειρά που αγωνίστηκε.
Μονάδες 4
Γ3. Να εμφανίζει το όνομα του αθλητή με τη χειρότερη επίδοση.
Μονάδες 4
Γ4. Να εμφανίζει τα ονόματα των αθλητών που κατέρριψαν το ρεκόρ αγώνων. Αν δεν υπάρχουν τέτοιοι αθλητές, να εμφανίζει το πλήθος των αθλητών που πλησίασαν το ρεκόρ αγώνων σε απόσταση όχι μεγαλύτερη των 50 εκατοστών.
Μονάδες 6
Γ5. Να βρίσκει και να εμφανίζει τη θέση που κατέλαβε στην τελική κατάταξη ο περσινός πρωταθλητής.
Μονάδες 4
Σημείωση: Να θεωρήσετε ότι κάθε αθλητής έχει έγκυρη επίδοση και ότι όλες οι επιδόσεις των αθλητών που καταγράφονται είναι διαφορετικές μεταξύ τους.
ΛΥΣΗ
Στο εν λόγω θέμα υπήρξε μια συζήτηση για το αν έπρεπε να επιλυθεί με χρήση πινάκων. Κάθε λειτουργική λύση είναι αποδεκτή, οπότε οι προτεινόμενες λύσεις είναι 2. (Η εκτέλεση αλγορίθμων είναι δυνατή με το πρόγραμμα Γλώσσα)
! Λύση χωρίς πίνακες Αλγόριθμος Θέμα3 ! Έλεγχος Εγκυρότητας Αρχή_επανάληψης Γράψε 'Δώσε ρεκόρ αγώνων (0 < ρεκόρ < 10): ' Διάβασε ρεκόρ Μέχρις_ότου ρεκόρ > 0 και ρεκόρ < 10 Γράψε 'Δώσε αριθμό αθλητών' Διάβασε αρ_αθλητών ! περυσινός πρωταθλητής Γράψε 'Δώσε όνομα αθλητή 1' Διάβασε όνομα Γράψε 'Δώσε επίδοση αθλητή 1' Διάβασε επίδοση_1ου min_όνομα ← όνομα min ← επίδοση_1ου τελική_θέση_πρωταθλητή ← 1 κοντά_στο_ρεκόρ ← 0 βρέθηκε ← Ψευδής Αν επίδοση_1ου > ρεκόρ τότε Εμφάνισε 'Κατέριψε το ρεκόρ: ' , όνομα βρέθηκε ← Αληθής αλλιώς Αν επίδοση_1ου ≥ ρεκόρ - 0.5 τότε κοντά_στο_ρεκόρ ← κοντά_στο_ρεκόρ + 1 Τέλος_αν Τέλος_αν Για ι από 2 μέχρι αρ_αθλητών Γράψε 'Δώσε όνομα αθλητή ' , ι Διάβασε όνομα Γράψε 'Δώσε επίδοση αθλητή ' , ι Διάβασε επίδοση Αν επίδοση < min τότε min ← επίδοση min_όνομα ← όνομα Τέλος_αν Αν επίδοση > επίδοση_1ου τότε τελική_θέση_πρωταθλητή ← τελική_θέση_πρωταθλητή + 1 Τέλος_αν Αν επίδοση > ρεκόρ τότε Εμφάνισε 'Κατέριψε το ρεκόρ: ' , όνομα βρέθηκε ← Αληθής αλλιώς Αν επίδοση ≥ ρεκόρ - 0.5 τότε κοντά_στο_ρεκόρ ← κοντά_στο_ρεκόρ + 1 Τέλος_αν Τέλος_αν Τέλος_επανάληψης Αν βρέθηκε = Ψευδής τότε Εμφάνισε 'Πλησίασαν στο ρεκόρ: ' , κοντά_στο_ρεκόρ Τέλος_αν Εμφάνισε 'Ο αθλητής με την χειρότερη επίδοση: ' , min_όνομα Εμφάνισε 'Η τελική θέση του περυσινού πρωταθλητή: ' , τελική_θέση_πρωταθλητή Τέλος Θέμα3
! Λύση με πίνακες Αλγόριθμος Θέμα_Γ !Γ1 Αρχή_επανάληψης Γράψε 'Δώσε ρεκόρ αγώνων (0 < ρεκόρ < 10): ' Διάβασε ρεκόρ Μέχρις_ότου ρεκόρ > 0 και ρεκόρ < 10 ! Γ2 Γράψε 'Δώσε αριθμό αθλητών' Διάβασε αρ_αθλητών Για i από 1 μέχρι αρ_αθλητών Γράψε 'Δώσε όνομα αθλητή ' , i Διάβασε όνομα[i] Γράψε 'Δώσε επίδοση αθλητή ' , i Διάβασε επίδοση[i] Τέλος_επανάληψης ! Γ3 min_όνομα ← όνομα[1] min ← επίδοση[1] Για i από 2 μέχρι αρ_αθλητών Αν επίδοση[i] < min τότε min ← επίδοση[i] min_όνομα ← όνομα[i] Τέλος_αν Τέλος_επανάληψης Εμφάνισε 'Αθλητής με την χειρότερη επίδοση: ', min_όνομα ! Γ4 Βρέθηκε ← Ψευδής Για i από 1 μέχρι αρ_αθλητών Αν επίδοση[i] > ρεκόρ τότε Εμφάνισε 'Κατέριψε το ρεκόρ αγώνων: ', όνομα[i] Βρέθηκε ← Αληθής Τέλος_αν Τέλος_επανάληψης Αν Βρέθηκε = Ψευδής τότε κοντά_στο_ρεκόρ ← 0 Για i από 1 μέχρι αρ_αθλητών Αν επίδοση[i] >= ρεκόρ - 0.5 τότε κοντά_στο_ρεκόρ ← κοντά_στο_ρεκόρ + 1 Τέλος_αν Τέλος_επανάληψης Εμφάνισε 'Αριθμός αθλητών που πλησίασαν το ρεκόρ: ', κοντά_στο_ρεκόρ Τέλος_αν ! Γ5 Θέση ← 1 Για i από 2 μέχρι αρ_αθλητών Αν επίδοση[i] > επίδοση[1] τότε Θέση ← Θέση + 1 Τέλος_αν Τέλος_επανάληψης Εμφάνισε 'Τελική κατάταξη περυσινού πρωταθλητή: ', Θέση Τέλος Θέμα_Γ
Θέμα Δ
Το ράλλυ Βορείων Σποράδων είναι ένας αγώνας ιστοπλοΐας ανοικτής θάλασσας που γίνεται κάθε χρόνο. Στην τελευταία διοργάνωση συμμετείχαν 35 σκάφη που διαγωνίστηκαν σε διαδρομή συνολικής απόστασης 70 μιλίων. Κάθε σκάφος ανήκει σε μια από τις κατηγορίες C1, C2, C3. Επειδή στον αγώνα συμμετέχουν σκάφη διαφορετικών δυνατοτήτων, η κατάταξη δεν προκύπτει από τον «πραγματικό» χρόνο τερματισμού αλλά από ένα «σχετικό» χρόνο, που υπολογίζεται διαιρώντας τον «πραγματικό» χρόνο του σκάφους με τον «ιδανικό». Ο ιδανικός χρόνος είναι διαφορετικός για κάθε σκάφος και προκύπτει πολλαπλασιάζοντας την απόσταση της διαδρομής με τον δείκτη GPH του σκάφους. Ο δείκτης GPH αντιπροσωπεύει τον ιδανικό χρόνο που χρειάζεται το σκάφος για να καλύψει απόσταση ενός μιλίου. Να κατασκευάσετε αλγόριθμο ο οποίος
Δ1. Να ζητάει για κάθε σκάφος:
- το όνομά του
- την κατηγορία του ελέγχοντας την ορθή καταχώρηση
- τον χρόνο (σε δευτερόλεπτα) που χρειάστηκε για να τερματίσει
- τον δείκτη GPH (σε δευτερόλεπτα).
Μονάδες 4
Δ 2. Να υπολογίζει τον σχετικό χρόνο κάθε σκάφους.
Μονάδες 5
Δ3. Να εμφανίζει την κατηγορία στην οποία ανήκουν τα περισσότερα σκάφη.
Μονάδες 6
Δ4. Να εμφανίζει για κάθε κατηγορία καθώς και για την γενική κατάταξη τα ονόματα των σκαφών που κερδίζουν μετάλλιο. (Μετάλλια απονέμονται στους 3 πρώτους κάθε κατηγορίας και στους 3 πρώτους της γενικής κατάταξης).
Μονάδες 5
Σημείωση: Να θεωρήσετε ότι κάθε κατηγορία έχει διαφορετικό αριθμό σκαφών και τουλάχιστον τρία σκάφη.
ΛΥΣΗ
Αλγόριθμος Θέμα_Δ ! Δ1 Για i από 1 μέχρι 35 Διάβασε ον[i], χρ[i], GPH[i] Αρχή_επανάληψης Διάβασε κατ[i] Μέχρις_ότου κατ[i] = 'C1' ή κατ[i] = 'C2' ή κατ[i] = 'C3' Τέλος_επανάληψης ! Δ2 Για i από 1 μέχρι 35 σχετ[i] ← χρ[i]/(70* GPH[i]) Τέλος_επανάληψης ! Δ4 Για i από 2 μέχρι 35 Για j από 35 μέχρι i με_βήμα -1 Αν σχετ[j - 1] > σχετ[j] τότε Αντιμετάθεσε σχετ[j - 1], σχετ[j] Αντιμετάθεσε ον[j - 1], ον[j] Αντιμετάθεσε κατ[j - 1], κατ[j] Τέλος_αν Τέλος_επανάληψης Τέλος_επανάληψης ! Δ3 π1 ← 0 π2 ← 0 π3 ← 0 Για i από 1 μέχρι 35 Αν κατ[i] = 'C1' τότε π1 ← π1 + 1 ον1[π1] ← ον[i] αλλιώς_αν κατ[i] = 'C2' τότε π2 ← π2 + 1 ον2[π2] ← ον[i] αλλιώς π3 ← π3 + 1 ον3[π3] ← ον[i] Τέλος_αν Τέλος_επανάληψης Εμφάνισε 'Τα περισσότερα Σκάφη ανήκουν στη κατηγορία: ' Αν π1 > π2 και π1 > π3 τότε Εμφάνισε 'C1' αλλιώς_αν π2 > π1 και π2 > π3 τότε Εμφάνισε 'C2' αλλιώς Εμφάνισε 'C3' Τέλος_αν ! Δ4 Εμφάνισε 'ΜΕΤΑΛΛΙΑ' Εμφάνισε 'Γενική Κατηγορία: ' Για i από 1 μέχρι 3 Εμφάνισε ον[i] Τέλος_επανάληψης Εμφάνισε 'Κατηγορία C1:' Για i από 1 μέχρι 3 Εμφάνισε ον1[i] Τέλος_επανάληψης Εμφάνισε 'Κατηγορία C2:' Για i από 1 μέχρι 3 Εμφάνισε ον2[i] Τέλος_επανάληψης Εμφάνισε 'Κατηγορία C3:' Για i από 1 μέχρι 3 Εμφάνισε ον3[i] Τέλος_επανάληψης Τέλος Θέμα_Δ Αλγόριθμος Αρχείο_Εισόδου_ΗμερήσιαΜαιουΘΔ2010 Για i από 1 μέχρι 35 Εμφάνισε 'ον', i Εμφάνισε i + 40 Εμφάνισε 100 - i Αν i mod 2 = 0 τότε Εμφάνισε 'C1' αλλιώς_αν i mod 3 = 0 τότε Εμφάνισε 'C2' αλλιώς Εμφάνισε 'C3' Τέλος_αν Τέλος_επανάληψης Τέλος