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

Επαναληπτικό ΔΙΑΓΩΝΙΣΜΑ ΣΧ. ΕΤΟΣ 2010 – 2011

Επιμέλεια :

Ομάδα Διαγωνισμάτων από  “Το στέκι των πληροφορικών”

Θέμα  Α

Α1. Δίνονται οι παρακάτω εντολές από ένα τμήμα προγράμματος:

ΔΙΑΒΑΣΕ α, β

x ! α > β

Να χαρακτηρίσετε αν κάθε μία από τις παρακάτω προτάσεις είναι σωστή (Σ) ή λανθασμένη (Λ). Αιτιολογήσετε κάθε σας απάντηση

  1. Η x είναι λογική μεταβλητή.
  2. Τα α, β μπορεί να είναι μεταβλητές τύπου χαρακτήρα.
  3. Τα α , β μπορεί να είναι λογικές μεταβλητές.
  4. Τα α , x είναι πάντα μεταβλητές διαφορετικού τύπου.
  5. Το α πρέπει να έχει τιμή μεγαλύτερη του β.

(Μονάδες  5)

Α2. Ένας προγραμματιστής καλείται να σχεδιάσει ένα πρόγραμμα το οποίο θα διαχειρίζεται τα ονόματα και τους βαθμούς 160 μαθητών και θα υπολογίζει και θα εμφανίζει τα ονόματα των μαθητών με βαθμό μεγαλύτερο από τον μέσο όρο του σχολείου.
Για το πρόβλημα που καλείται να αντιμετωπίσει, να γράψετε:

  1. Ποια είναι τα δεδομένα ;
  2. Ποια είναι τα ζητούμενα ;
  3. Σε ποια κατηγορία θα το  κατατάσσατε με βάση τη δυνατότητα επίλυσής του;
  4. Είναι απαραίτητη η χρήση πίνακα; (ΝΑΙ/ΟΧΙ).Αιτιολογήστε την απάντησή σας.

(Μονάδες  4)

Α3. Δίνεται το παρακάτω τμήμα δηλώσεων ενός προγράμματος σε «ΓΛΩΣΣΑ»:

ΜΕΤΑΒΛΗΤΕΣ

ΠΡΑΓΜΑΤΙΚΕΣ: Π[10]

ΛΟΓΙΚΕΣ: ΒΡΕΘΗΚΕ

ΑΚΕΡΑΙΕΣ: i

Να μετατρέψετε τις ενέργειες που δίνονται παρακάτω σε εντολές της «ΓΛΩΣΣΑΣ» χρησιμοποιώντας αποκλειστικά και μόνο την εντολή εκχώρησης (χωρίς δομή επιλογής ή επανάληψης).

1. Αύξησε το 3ο στοιχείο του πίνακα κατά 30% .

2. Μείωσε το τελευταίο στοιχείο του πίνακα κατά το ήμισυ.

3. Τριπλασίασε το πρώτο στοιχείο του πίνακα.

4. Εκχώρησε στη μεταβλητή ΒΡΕΘΗΚΕ την τιμή ΑΛΗΘΗΣ αν το 6ο στοιχείο του

πίνακα είναι θετικός αριθμός αλλιώς την τιμή ΨΕΥΔΗΣ.

5. Εκχώρησε στη λογική μεταβλητή ΒΡΕΘΗΚΕ τιμή διαφορετική από αυτή που έχει.

  1. Εκχώρησε στη μεταβλητή i το ακέραιο μέρος του 2ου στοιχείου του πίνακα.

(Μονάδες 12)

Α4. α) Τα παρακάτω τμήματα αλγορίθμων εκτελέστηκαν μια φορά το καθένα και έδωσαν όλα την ίδια έξοδο. Να βρείτε ποια τιμή πληκτρολογήθηκε ως είσοδος κατά την εκτέλεση καθενός από αυτά.

A B Γ Δ
Διάβασε Ν

Αν Ν=28   Τότε

Εμφάνισε 32

Αλλιώς

Εμφάνισε 10

Τέλος_Αν

Διάβασε Ν

Σ ! 1

Για i Από 1 Μέχρι Ν

Σ ! Σ + 1

Τέλος_Επανάληψης

Εμφάνισε Σ

Διάβασε Ν

Σ ! 1

Για i Από 1 Μέχρι Ν

Σ ! Σ *2*i

Τέλος_Επανάληψης

Εμφάνισε Σ – 16

Διάβασε Ν

Σ !22

Για i Από 1 Μέχρι Ν

Σ ! Σ + i

Τέλος_Επανάληψης

Εμφάνισε Σ

(Μονάδες 4)

β) Να συμπληρωθούν τα κενά έτσι, ώστε το κάθε τμήμα αλγορίθμου, να γεμίζει έναν πίνακα Α με τους αριθμούς 1, 2, 3, 4, … ,8.

1.         Για Χ από 1 μέχρι 8

Α[___] ! Χ

Τέλος_επανάληψης

2.         Για ι από 8 μέχρι 1 με_βήμα -1

Α[__] ! __

Τέλος_επανάληψης

3.         Χ ! 1

Όσο Χ <= ___ επανάλαβε

Α[___] ! ___

Χ ! Χ + 1

Τέλος_επανάληψης

4.         Χ ! 1

Αρχή_επανάληψης

Χ ! Χ + 1

Α[___] ! ___

Μέχρις_ότου ___ > 8

(Μονάδες 9)

Α5. Δίνεται δισδιάστατος πίνακας Π με 8 γραμμές και 12 στήλες, στον οποίο σημειώνονται δύο στοιχεία του, το Π [ i1, j1 ] και το Π [ i2, j2 ] όπως φαίνονται στο παρακάτω σχήμα.

Να γράψετε τμήμα αλγορίθμου που με δεδομένο τον πίνακα Π και τις συντεταγμένες i1,j1, i2, j2, να εμφανίζει όλα τα στοιχεία που βρίσκονται στη σκιασμένη περιοχή του σχήματος, δηλαδή από το στοιχείο Π[i1, j1] έως και το Π[i2, j2].
Παρατηρήσεις:

Α. Θεωρήσετε δεδομένα τα παρακάτω:
1. Οι τιμές για τα i1 και i2 είναι θετικοί μικρότεροι ή ίσοι του 8 και για τα j1και j2 θετικοί μικρότεροι ή ίσοι του 12.
2. Το i1 είναι μικρότερο ή ίσο του  i2.
3. Σε περίπτωση που το i1 είναι ίσο με το i2, το j2 είναι μεγαλύτερο του j1.

Β. Η εμφάνιση των στοιχείων μπορεί να γίνει με οποιαδήποτε σειρά.

(Μονάδες 6)

Θέμα  Β

Β1. Δίνεται το παρακάτω πρόγραμμα και υποπρόγραμμα τα οποία έχουν κενά:

ΠΡΟΓΡΑΜΜΑ ΤΑΔΕ

ΜΕΤΑΒΛΗΤΕΣ

(Θέση1) ________________________________

ΑΡΧΗ

ΔΙΑΒΑΣΕ χ, y

(Θέση2) _________________( χ, y)

ΓΡΑΨΕ ‘ΤΟ ΑΠΟΤΕΛΕΣΜΑ ΕΙΝΑΙ’, κ

ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

(Θέση3) ________________   Πράξη (________________________

ΜΕΤΑΒΛΗΤΕΣ

ΑΚΕΡΑΙΕΣ: α, β, χ

ΑΡΧΗ

χ !  0

ΟΣΟ α >=β ΕΠΑΝΑΛΑΒΕ

α  ! α – β

χ !  χ + 1

ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

Πράξη  ! χ

(Θέση4)           ___________________________________

1.  Να συμπληρώσετε στο κυρίως πρόγραμμα :

  • Το  τμήμα δηλώσεων (Θέση1) (Μονάδες 1)
  • Την εντολή κλήσης του υποπρογράμματος (Θέση2) (Μονάδες 2)

2.   Να συμπληρώσετε  στο υποπρόγραμμα :

  • Τη γραμμή δήλωσης του υποπρογράμματος με τις μεταβλητές-παραμέτρους που δέχεται και επιστρέφει. (Θέση3) (Μονάδες 3)
  • Τη  δήλωση που ολοκληρώνει το υποπρόγραμμα (Θέση4)

(Μονάδες 1)

3.   Να γράψετε τι ακριβώς υπολογίζει το παραπάνω υποπρόγραμμα;

(Μονάδες 2)

Β2. Δίνεται το παρακάτω τμήμα αλγορίθμου, του οποίου οι εντολές έχουν αριθμηθεί:

  1. 1. Τ ! 0
  2. 2. δ ! 1
  3. 3. Όσο δ <= Ν1 – 1 επανάλαβε
  4. 4. Αν Α[δ] > A[δ + 1] τότε
  5. 5. temp ! Α[δ]
  6. 6. A[δ] !A[δ + 1]
  7. 7. A[δ + 1] ! temp
  8. 8. T ! δ
  9. 9. Τέλος_αν
  10. 10. δ ! δ + 1

11. Τέλος_επανάληψης

12. Ν1 ! Τ
1. Θεωρήστε ότι Ν1 = 10 και οι τιμές των στοιχείων του πίνακα Α έχουν ως εξής:

Α 15 10 5 100 50 200 150 300 400 400
1 2 3 4 5 6 7 8 9 10

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

Σημείωση: Στον πίνακα τιμών έχει συμπληρωθεί η εκτέλεση της πρώτης, δεύτερης και τρίτης εντολής του αλγορίθμου. Οι γραμμές 9 και 11 δεν χρειάζεται να αποτυπωθούν στον πίνακα τιμών.

Αριθμός Γραμμής συνθήκη δ temp T Πίνακας Α
1η 2η 3η 4η 5η 6η 7η 8η 9η 10η
15 10 5 100 50 200 150 300 400 400
1 0
2 1
3 ΑΛΗΘΗΣ
4 ΑΛΗΘΗΣ

(Μονάδες 8)

2.  Ποιος είναι ο ρόλος της μεταβλητής Τ;

(Μονάδες 1)
3. Στον αλγόριθμο που ακολουθεί, οι εντολές έχουν εμφωλευθεί σε μια επαναληπτική δομή με συνθήκη τερματισμού Τ = 0. Ποια είναι η βασική λειτουργία αυτού του αλγορίθμου;

Αλγόριθμος Παράδειγμα

Δεδομένα // Α, Ν //

Ν1 ! Ν

Αρχή_επανάληψης

Τ ! 0

δ ! 1

Όσο δ <= Ν1 – 1 επανάλαβε

Αν Α[δ] > A[δ + 1] τότε

temp ! Α[δ]

A[δ] ! A[δ + 1]

A[δ + 1] !temp

T ! δ

Τέλος_αν

δ ! δ + 1

Τέλος_επανάληψης

Ν1 <- Τ

Μέχρις_ότου Τ = 0

Αποτελέσματα // Α //

Τέλος Παράδειγμα

(Μονάδες 2)

Θέμα  Γ

Στον τελικό κυπέλλου στο ποδόσφαιρο, αν το παιγνίδι λήξει ισόπαλο τόσο στην κανονική διάρκεια του αγώνα όσο και στην παράταση που ακολουθεί, τότε ξεκινά η διαδικασία εκτέλεσης των πέναλτι. Η διαδικασία αυτή αποτελείται από δύο φάσεις:
Στην πρώτη φάση, οι ομάδες εκτελούν τα πέναλτι εναλλάξ, μέχρι η κάθε ομάδα να έχει εκτελέσει από πέντε πέναλτι. Νικήτρια αναδεικνύεται η ομάδα με το μεγαλύτερο πλήθος εύστοχων εκτελέσεων.
Υπάρχει ενδεχόμενο η διαδικασία να τερματιστεί νωρίτερα, εφόσον η μια ομάδα δεν είναι δυνατόν να φτάσει το πλήθος των εύστοχων εκτελέσεων της άλλης, ακόμα κι αν ευστοχήσει σε όλες τις προσπάθειες που της απομένουν.
Αν στο τέλος της πρώτης φάσης οι δύο ομάδες είναι ισόπαλες, τότε ξεκινά η δεύτερη φάση όπου οι ομάδες εκτελούν εναλλάξ από ένα πέναλτι η καθεμία μέχρι μια ομάδα να ευστοχήσει και η άλλη να αστοχήσει.

Παρακάτω δίνονται κάποια παραδείγματα για την καλύτερη κατανόηση της διαδικασίας:
Μετά την ολοκλήρωση της πρώτης φάσης, οι δύο ομάδες έχουν εκτελέσει από 5 πέναλτι και το σκορ είναι 5-3. Νικήτρια αναδεικνύεται η πρώτη ομάδα.
Κατά τη διάρκεια της πρώτης φάσης, η πρώτη ομάδα έχει εκτελέσει τρία πέναλτι και έχει ευστοχήσει σε ένα, ενώ η δεύτερη ομάδα έχει εκτελέσει τέσσερα πέναλτι και έχει ευστοχήσει σε όλα. Δεν υπάρχει πλέον περίπτωση ανατροπής του αποτελέσματος και νικήτρια αναδεικνύεται αυτόματα η δεύτερη ομάδα.
Κατά τη διάρκεια της πρώτης φάσης, η πρώτη ομάδα έχει εκτελέσει τρια πέναλτι και έχει ευστοχήσει σε όλα, ενώ η δεύτερη ομάδα έχει εκτελέσει επίσης τρία πέναλτι και δεν έχει ευστοχήσει σε κανένα. Δεν υπάρχει πλέον περίπτωση ανατροπής του αποτελέσματος και νικήτρια αναδεικνύεται αυτόματα η πρώτη ομάδα.
Μετά την ολοκλήρωση της πρώτης φάσης, οι δύο ομάδες έχουν εκτελέσει από 5 πέναλτι και το σκορ είναι 4-4, επομένως προχωρούν στο δεύτερο γύρο. Οι δύο ομάδες εκτελούν από ένα πέναλτι, αλλά αστοχούν και οι δύο. Συνεχίζοντας, οι δύο ομάδες εκτελούν από ένα πέναλτι αλλά ευστοχούν και οι δύο. Στον τρίτο γύρο, η πρώτη ομάδα αστοχεί ενώ η δεύτερη ευστοχεί. Νικήτρια αναδεικνύεται η δεύτερη ομάδα.

Να γραφεί αλγόριθμος ο οποίος:

Γ1. Διαβάζει τα ονόματα των δύο ομάδων του τελικού.

(Μονάδες 1)


Γ2. Για κάθε πέναλτι που εκτελείται:
α. εμφανίζει στην οθόνη το μήνυμα «Εκτελεί πέναλτι η ομάδα:» μαζί με το όνομα

της αντίστοιχης ομάδας, ξεκινώντας από την πρώτη που διαβάστηκε.

(Μονάδες 1)


β. ζητά και διαβάζει από το χρήστη το αποτέλεσμα της εκτέλεσης του πέναλτι

(ΕΥΣΤΟΧΟ ή ΑΣΤΟΧΟ) μη επιτρέποντας άλλες τιμές εισόδου.

(Μονάδες 3)


γ. εμφανίζει το σκορ, όπως έχει διαμορφωθεί εκείνη την στιγμή.

(Μονάδες 3)


Γ3. Τερματίζει τη διαδικασία όταν αναδειχθεί η νικήτρια ομάδα και εμφανίζει το όνομά της με την ένδειξη «ΚΥΠΕΛΟΥΧΟΣ 2010 – 11».

(Μονάδες 12)

Θέμα  Δ

Ένα ορυχείο έχει αναπτυχθεί σε 50 επίπεδα μέσα στο υπέδαφος. Σε κάθε επίπεδο έχει διανοιχτεί από μία οριζόντια στοά, μέσα από την οποία μετακινούνται οι εργαζόμενοι και μεταφέρονται τα μεταλλεύματα που εξορύσσονται. Όλες οι στοές φωτίζονται από λαμπτήρες που έχουν τοποθετηθεί σε κανονικές αποστάσεις, με τέτοιο τρόπο ώστε να αντιστοιχεί ένας λαμπτήρας για κάθε 10 μέτρα διανοιγμένης στοάς, με τον πρώτο λαμπτήρα κάθε στοάς να τοποθετείται στα 10 μέτρα από την αρχή της. Λόγω οικονομικών δυσχερειών ο φωτισμός του ορυχείου δεν έχει συντηρηθεί για μεγάλο χρονικό διάστημα, παρουσιάζοντας σημεία με πολλούς συνεχόμενους καμένους λαμπτήρες.

1. Να δημιουργήσετε πρόγραμμα στη ΓΛΩΣΣΑ το οποίο:

Δ1. Να περιλαμβάνει τμήμα δηλώσεων.

(Μονάδες 1)
Δ2. Για κάθε στοά του ορυχείου να διαβάζει το μήκος της στοάς σε μέτρα, ελέγχοντας ώστε να είναι από 20 έως 500 μέτρα. Να υπολογίζει και να καταχωρίζει σε πίνακα το πλήθος των λαμπτήρων της κάθε στοάς. Να εμφανίζει το συνολικό πλήθος των λαμπτήρων που έχουν τοποθετηθεί στο ορυχείο.

(Μονάδες 3)
Δ3. Για κάθε στοά του ορυχείου να διαβάζει και να καταχωρίζει σε δισδιάστατο πίνακα την κατάσταση κάθε λαμπτήρα, ελέγχοντας ώστε να δίνονται οι τιμές: 1 – για λαμπτήρα που φωτίζει κανονικά, 0 – για καμένο λαμπτήρα.

(Μονάδες 3)

Δ4. Να εμφανίζει τη στοά ή τις στοές που παρουσιάζουν το μεγαλύτερο ποσοστό καμένων λαμπτήρων, καθώς και το συνολικό ποσοστό καμένων λαμπτήρων του ορυχείου. Επίσης, να εμφανίζει τις στοές που δεν έχουν καθόλου φωτισμό, δηλαδή με όλους τους λαμπτήρες καμένους. Αν δεν υπάρχουν τέτοιες στοές τότε να εμφανίζει κατάλληλο μήνυμα.

(Μονάδες 4)

Δ5. Να εμφανίζει το μεγαλύτερο πλήθος συνεχόμενων καμένων λαμπτήρων του ορυχείου και τη στοά στην οποία βρίσκονται (θεωρήστε ότι δεν υπάρχουν στοές με το ίδιο μέγιστο πλήθος συνεχόμενων καμένων λαμπτήρων). Για το σκοπό αυτό να καλεί τη συνάρτηση ΣΥΝΕΧΟΜΕΝΟΙ_ΚΑΜΕΝΟΙ_ΣΤΟΑΣ που περιγράφεται στο ερώτημα 2.

(Μονάδες 4)

2. Να αναπτύξετε τη συνάρτηση ΣΥΝΕΧΟΜΕΝΟΙ_ΚΑΜΕΝΟΙ_ΣΤΟΑΣ, η οποία :

Δ6. Να δέχεται ως παραμέτρους: i) τον πίνακα της κατάστασης των λαμπτήρων, ii) έναν αριθμό στοάς και iii) το πλήθος των λαμπτήρων της στοάς, και να επιστρέφει το μεγαλύτερο πλήθος συνεχόμενων καμένων λαμπτήρων αυτής της στοάς. Για παράδειγμα, αν για κάποια στοά με 14 λαμπτήρες η κατάσταση των λαμπτήρων είναι:  1 0 0 1 1 1 1 1 0 0 0 0 1 0, τότε η συνάρτηση να επιστρέφει το 4.

(Μονάδες 5)

Παρατήρηση: Όλα τα ποσοστά είναι επί τοις εκατό (%).