Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον Λύσεις Θεμάτων Εξετάσεων Ενιαίου Λυκείου 2004 Θέμα 1 ο Α. Β. Γ. Δ. 1. Σωστό 2. Σωστό 3. Λάθος 4. Σωστό 5. Λάθος 1: β, δ 2: α, γ 1. Αληθής 2. Αληθής 3. Ψευδής 4. Ψευδής 3 φορές Καμία φορά 1 φορά 4 φορές Ε. Σελίδα 191 σχολικού βιβλίου: Οι πίνακες απαιτούν μνήμη. Κάθε πίνακας δεσμεύει από την αρχή του προγράμματος πολλές θέσεις μνήμης. Σε ένα μεγάλο και σύνθετο πρόγραμμα η άσκοπη χρήση μεγάλων πινάκων μπορεί να οδηγήσει ακόμη και σε αδυναμία εκτέλεσης του προγράμματος. Οι πίνακες περιορίζουν τις δυνατότητες του προγράμματος γιατί είναι είναι στατικές δομές και το μέγεθος τους πρέπει να δηλώνεται στην αρχή του προγράμματος, ενώ παραμένει υποχρεωτικά σταθερό κατά την εκτέλεση του προγράμματος.
ΣΤ. Σελίδα 208 209 σχολικού βιβλίου: 1. Διευκολύνει την ανάπτυξη του αλγορίθμου και του αντιστοίχου προγράμματος Διευκολύνει την κατανόηση και διόρθωση του προγράμματος Απαιτεί λιγότερο χρόνο και προσπάθεια στη συγγραφή του προγράμματος Επεκτείνει τις δυνατότητες των γλωσσών προγραμματισμού 2. Μπορείτε να αναπτύξετε οποιαδήποτε 2 από τα παρακάτω: Διευκολύνει την ανάπτυξη του αλγορίθμου και του αντιστοίχου προγράμματος: Επιτρέπει την εξέταση και την επίλυση απλών προβλημάτων και όχι στην αντιμετώπιση του συνολικού προβλήματος. Με τη σταδιακή επίλυση των υπό προβλημάτων και τη δημιουργία των αντιστοίχων υποπρογραμμάτων τελικά επιλύεται το συνολικό πρόβλημα Διευκολύνει την κατανόηση και διόρθωση του προγράμματος: Ο χωρισμός του προγράμματος σε μικρότερα αυτοτελή τμήματα επιτρέπει τη γρήγορη διόρθωση ενός συγκεκριμένου τμήματος του χωρίς οι αλλαγές αυτές να επηρεάσουν όλο το υπόλοιπο πρόγραμμα. Επίσης διευκολύνει οποιονδήποτε χρειαστεί να διαβάσει και να κατανοήσει τον τρόπο που λειτουργεί το πρόγραμμα. Όπως έχει πολλές φορές τονιστεί αυτό είναι πολύ σημαντικό χαρακτηριστικό του σωστού προγραμματισμού, αφού ένα μεγάλο πρόγραμμα στον κύκλο της ζωής του χρειάζεται να συντηρηθεί από διαφορετικούς προγραμματιστές. Απαιτεί λιγότερο χρόνο και προσπάθεια στη συγγραφή του προγράμματος: Πολύ συχνά χρειάζεται η ίδια λειτουργία σε διαφορετικά σημεία ενός προγράμματος. Από τη στιγμή που ένα υποπρόγραμμα έχει γραφεί, μπορεί το ίδιο να καλείται από πολλά σημεία του προγράμματος. Έτσι μειώνονται το μέγεθος του προγράμματος, ο χρόνος που απαιτείται για τη συγγραφή του και οι πιθανότητες λάθους, ενώ ταυτόχρονα το πρόγραμμα γίνεται πιο εύληπτο και κατανοητό. Επεκτείνει τις δυνατότητες των γλωσσών προγραμματισμού: Ένα υποπρόγραμμα που έχει γραφεί μπορεί να χρησιμοποιηθεί πολύ εύκολα και σε άλλα προγράμματα. Από τη στιγμή που έχει δημιουργηθεί, η χρήση του δεν διαφέρει από τη χρήση των ενσωματωμένων συναρτήσεων που παρέχει η γλώσσα προγραμματισμού, όπως για τον υπολογισμό του ημίτονου ή του συνημίτονου ή την εντολή με την οποία εκτελεί μία συγκεκριμένη διαδικασία, για παράδειγμα γράφει στην οθόνη (εντολή ΓΡΑΨΕ). Αν λοιπόν χρειάζεται συχνά κάποια λειτουργία που δεν υποστηρίζεται απευθείας από τη γλώσσα, όπως για παράδειγμα η εύρεση του μικρότερου δύο αριθμών, τότε μπορεί να γραφεί το αντίστοιχο υποπρόγραμμα. Η συγγραφή πολλών υποπρογραμμάτων και η δημιουργία βιβλιοθηκών με αυτά, ουσιαστικά επεκτείνουν την ίδια τη γλώσσα προγραμματισμού.
Θέμα 2ο Οι εμφανιζόμενες τιμές των μεταβλητών A, B, Lmin, Lmax, min, max είναι: A B Lmin Lmax min max D 1 η Επανάληψη 2 5 2 5 2 5 2 η Επανάληψη 15-1 -1 15-1 15 3 η Επανάληψη 32 14 14 32-1 32 Τελική τιμή -32 Θέμα 3ο Αλγόριθμος thema_3!-------------------------------εισαγωγή του βάρους και του προορισμού της επιστολής από τον χρήστη----------------------------! Εμφάνισε "Εισάγετε το βάρος της επιστολής:" Διάβασε weight Εμφάνισε "Εισάγετε τον προορισμό της επιστολής:" Διάβασε destination!----------------------------------------------υπολογισμός και εμφάνιση των εξόδων αποστολής-------------------------------------------! Αν destination = "ΕΣ" τότε Αν weight <= 500 τότε expenses 2 Αλλιώς_αν weight <= 1000 τότε expenses 3,5 Αλλιώς_αν weight <= 2000 τότε expenses 4,6 Αλλιώς Αν weight <= 500 τότε expenses 4,8 Αλλιώς_αν weight <= 1000 τότε expenses 7,2 Αλλιώς_αν weight <= 2000 τότε expenses 11,5 Εμφάνισε "Τα έξοδα αποστολής είναι: ", expenses Τέλος thema_3
Θέμα 4ο Αλγόριθμος thema_4!-----------------------------εισαγωγή του ονόματος και των 3 βαθμών κάθε μαθητή από τον χρήστη-------------------------------! Εμφάνισε "Εισάγετε το όνομα του ", student, " ου μαθητή" Διάβασε name[student] Εμφάνισε "Εισάγετε το βαθμό για την ", examination, " η γραπτή εξέταση" Διάβασε grade[student,examination]!--------------------------------------------------υπολογισμός του μέσου όρου κάθε μαθητή-------------------------------------------------! sum_grade 0!Σύνολο βαθμών κάθε μαθητή sum_grade sum_grade + grade[student,examination] avg[student] sum_grade / 3!--Φθίνουσα ταξινόμηση του μέσου όρου των μαθητών. Για ίσους μέσους όρους αύξουσα ταξινόμηση των ονομάτων-! Για i από 2 μέχρι 500 Για j από 500 μέχρι i με_βήμα -1 Αν avg[j] > avg[j-1] τότε temp_1 avg[j] avg[j] avg[j-1] avg[j-1] temp_1 Αλλιως_αν avg[j] = avg[j-1] τότε Αν name[j] < name[j-1] τότε!-------------------------------υπολογισμός του πλήθους των μαθητών με μέσο όρο ίσο με το μέγιστο------------------------------! max_avg avg[1]!μέγιστη τιμή μέσου όρου count 0 Αν avg[student] = max_avg τότε count count + 1
!--------------------------------Εμφάνιση των ονομάτων των μαθητών και του μέσου όρου τους--------------------------------------! Εμφάνισε "Ο μαθητής: ", name[student], " έχει μέσο όρο βαθμολογίας: ", avg[student]!--------------------------------εμφάνιση του πλήθους των μαθητών με μέσο όρο ίσο με το μέγιστο----------------------------------! Εμφάνισε "Το πλήθος των μαθητών με το μεγαλύτερο μέσο όρο είναι: ", count Τέλος thema_4
Ένας δεύτερος τρόπος επίλυσης του 5 ου ερωτήματος παρουσιάζεται παρακάτω. Ο αλγόριθμος πραγματοποιεί λιγότερες αναζητήσεις στο πίνακα που έχει τους μέσους όρους των μαθητών, εκμεταλλευόμενος το γεγονός ότι μετά την ταξινόμηση οι τιμές με το μεγαλύτερο μέσο όρο είναι συγκεντρωμένες σε διαδοχικές θέσεις του πίνακα, ξεκινώντας από την 1 η Αλγόριθμος thema_4!-----------------------------εισαγωγή του ονόματος και των 3 βαθμών κάθε μαθητή από τον χρήστη-------------------------------! Εμφάνισε "Εισάγετε το όνομα του ", student, " ου μαθητή" Διάβασε name[student] Εμφάνισε "Εισάγετε το βαθμό για την ", examination, " η γραπτή εξέταση" Διάβασε grade[student,examination]!--------------------------------------------------υπολογισμός του μέσου όρου κάθε μαθητή-------------------------------------------------! sum_grade 0 sum_grade sum_grade + grade[student,examination] avg[student] sum_grade / 3!--Φθίνουσα ταξινόμηση του μέσου όρου των μαθητών. Για ίσους μέσους όρους αύξουσα ταξινόμηση των ονομάτων-! Για i από 2 μέχρι 500 Για j από 500 μέχρι i με_βήμα -1 Αν avg[j] > avg[j-1] τότε temp_1 avg[j] avg[j] avg[j-1] avg[j-1] temp_1 Αλλιως_αν avg[j] = avg[j-1] τότε Αν name[j] < name[j-1] τότε
!-------------------------------Υπολογισμός του πλήθους των μαθητών με μέσο όρο ίσο με το μέγιστο------------------------------!!---------η διαφορά με τον προηγούμενο τρόπο είναι ότι η αναζήτηση τιμών ίσων με τη μέγιστη τιμή περιορίζεται--------!!------------στις θέσεις του πίνακα με τις μέγιστες τιμές και όχι σε όλο τον πίνακα όπως ο προηγούμενος τρόπος-----------! max_avg avg[1] count 0 student 1 flag Ψευδής Όσο (flag = Ψευδής και student <= 500) επανάλαβε Αν avg[student] = max_avg τότε count count + 1 Αλλιώς flag Αληθής student student + 1!--------------------------------Εμφάνιση των ονομάτων των μαθητών και του μέσου όρου τους--------------------------------------! Εμφάνισε "Ο μαθητής: ", name[student], " έχει μέσο όρο βαθμολογίας: ", avg[student]!--------------------------------εμφάνιση του πλήθους των μαθητών με μέσο όρο ίσο με το μέγιστο----------------------------------! Εμφάνισε "Το πλήθος των μαθητών με το μεγαλύτερο μέσο όρο είναι: ", count Τέλος thema_4 Παρατήρηση: Οι μαθητές έχουν τη δυνατότητα να επιλύσουν την άσκηση με όποιον τρόπο θέλουν / μπορούν, αφού όλοι τους θεωρούνται σωστοί βάσει της εξεταστέας ύλης που δημοσίευσε το Υπουργείο Παιδείας και κατ επέκταση θα πρέπει να βαθμολογούνται και να αξιολογούνται ισάξια Επιμέλεια: Δημητρόπουλος Γιώργος - Πληροφορικός