Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον Λύσεις Θεμάτων Επαναληπτικών Εξετάσεων Ενιαίου Λυκείου 2014 Θέμα Α Α1. 1. Λάθος 2. Λάθος 3. Λάθος 4. Σωστό 5. Σωστό Α2. α. Σελίδα 8 σχολικού βιβλίου: Με τον όρο δομή ενός προβλήματος αναφερόμαστε στα συστατικά του μέρη, στα επιμέρους τμήματα που το αποτελούν καθώς επίσης και στον τρόπο που αυτά τα μέρη συνδέονται μεταξύ τους β. Σελίδα 11 σχολικού βιβλίου: Η διαγραμματική αναπαράσταση είναι η παρακάτω: Αντιμετώπιση Ναρκωτικών Πρόληψη Θεραπεία Επανένταξη 1.1 1.2 1.3 2.1 2.2 2.3 3.1 3.2 3.3 1.1.1 1.1.2 1.1.3 1.2.1 1.2.2 1.2.3
Α3. Οι εντολές που ανταλλάσουν τα στοιχεία της 2 ης γραμμής με εκείνα της 5 ης γραμμής ενός πίνακα ακεραίων 5 X 6 είναι: Για column από 1 μέχρι 20 temp Α[2,column] Α[2,column] Α[5,column] Α[5,column] temp Α4. Σελίδα 219 σχολικού βιβλίου: Ο λόγος που απαιτείται η χρήση στοίβας και όχι ουράς είναι επειδή όταν μία διαδικασία ή συνάρτηση καλείται από το κύριο πρόγραμμα ή από υποπρόγραμμα, τότε η αμέσως επόμενη διεύθυνση του κύριου προγράμματος ή του υποπρογράμματος, που ονομάζεται διεύθυνση επιστροφής (return address), αποθηκεύεται από το μεταφραστή σε μία στοίβα που ονομάζεται στοίβα χρόνου εκτέλεσης (execution time stack). Μετά την εκτέλεση της διαδικασίας ή της συνάρτησης η διεύθυνση επιστροφής απωθείται από τη στοίβα και έτσι ο έλεγχος του προγράμματος μεταφέρεται και πάλι στο κύριο πρόγραμμα ή στο υποπρόγραμμα. Επιστρέφεται δηλαδή η τελευταία τιμή που εκχωρήθηκε στη δομή (LIFO). Η ιδιότητα αυτή είναι χαρακτηριστικό της στοίβας. Αν στη θέση της στοίβας είχαμε ούρα θα επιστρεφόταν η πρώτη διεύθυνση που θα είχε αποθηκευτεί στη δομή και όχι η τελευταία, με αποτέλεσμα να υπάρχει πρόβλημα στην εκτέλεση του προγράμματος. Α5. α. Σελίδα 187 σχολικού βιβλίου: Πίνακας είναι ένα σύνολο αντικειμένων ίδιου τύπου, τα οποία αναφέρονται με ένα κοινό όνομα. Κάθε ένα από τα αντικείμενα που απαρτίζουν τον πίνακα λέγεται στοιχείο του πίνακα. Η αναφορά σε ατομικά στοιχεία του πίνακα γίνεται με το όνομα του πίνακα ακολουθούμενο από ένα δείκτη β. Ο συμπληρωμένος αλγόριθμος είναι ο εξής: Αλγόριθμος Συνένωση Δεδομένα //Α, Ν, Β, Μ// Για i από 1 μέχρι N Γ[i] Α[i] Για i από 1 μέχρι M Γ[N+i] Β[i] Αποτελέσματα //Γ// Τέλος Συνένωση
Θέμα Β Β1. Ο συμπληρωμένος πίνακας τιμών φαίνεται παρακάτω: Αριθμός Γραμμής Έξοδος Συνθήκη α β γ π 05 2 06 3 07 Φ κ λ μ 3 2 25 5 26 25 07 25 08 27 09 Αληθής 10 Φ κ λ μ 27 3 25 30 26 27000 10 27000 14 0 15 Αληθής 16 1 17 2700 15 Αληθής 16 2 17 270 15 Αληθής 16 3 17 27 15 Ψευδής 19 27,3
Θέμα Γ Αλγόριθμος thema_3 Δεδομένα // Α, Β, Γ, Δ //!--------------------------------------------------Αρχικοποίηση μεταβλητών-----------------------------------------------------------------------! count_solutions 0 max_sum -300!Εισαγωγή στη μεταβλητή max_sum τιμής μικρότερης από το μικρότερο δυνατό άθροισμα (-297) max_x -100 max_y -100 max_z -100 count_positive_even 0!Αρχικοποίηση μετρητή για τον υπολογισμό του πλήθους των άρτιων θετικών λύσεων count_one_zero 0!Αρχικοποίηση μετρητή για τον υπολογισμό του πλήθους των λύσεων με ένα άγνωστο 0!-------------------------------------------------Επίλυση των ερωτημάτων: Γ1, Γ2, Γ3-----------------------------------------------------------! Για x από -99 μέχρι 99 Για y από -99 μέχρι 99 Για z από -99 μέχρι 99 Αν Α * x + Β * y + Γ * z = Δ τότε Εμφάνισε "Λύση εξίσωσης: (", x, ",", y, ",", z, ")" count_solutions count_solutions + 1 Αν x + y + z > max_sum τότε max_sum x + y + z max_x x max_y y max_z z Αν (x > 0 και x mod 2 = 0) και (y > 0 και y mod 2 = 0) και (z > 0 και z mod 2 = 0) τότε count_positive_even count_positive_even + 1 Αν (x = 0 και y * z <> 0) ή (y = 0 και x * z <> 0) ή (z = 0 και x * y <> 0) τότε count_one_zero count_one_zero + 1!---------Υπολογισμός ποσοστού λύσεων με ένα άγνωστο 0 και εμφάνιση αποτελεσμάτων όλων των ερωτημάτων--------! Αν count_solutions > 0 τότε percentage_one_zero count_one_zero / count_solutions * 100 Εμφάνισε "Λύση με άθροισμα x, y, z μέγιστο: (", max_x, ",", max_y, ",", max_z, ")" Εμφάνισε "Το πλήθος των λύσεων της εξίσωσης με x, y, z, θετικούς άρτιους, είναι: ", count_positive_even Εμφάνισε "Το ποσοστό των λύσεων με ένα μόνο από τα x, y, z, μηδέν, είναι: ", percentage_one_zero, "%" Αλλιώς Εμφάνισε "Δεν υπάρχουν λύσεις τις εξίσωσης για τις τιμές" Εμφάνισε "Α = ", Α Εμφάνισε "Β = ", Β Εμφάνισε "Γ = ", Γ Εμφάνισε "Δ = ", Δ Τέλος thema_3
Θέμα Δ Αλγόριθμος thema_4!---ερώτημα Δ1. Εισαγωγή: Πλήθους εκλογικών τμημάτων - Ονομάτων υποψηφίων - Αριθμού σταυρών υποψηφίων---!!----------------ερώτημα Δ2. Υπολογισμός και εμφάνιση του συνολικού αριθμού σταυρών για κάθε υποψήφιο--------------! Αρχή_επανάληψης sum_stations 0 Εμφάνισε "Το συνολικό πλήθος των εκλογικών τμημάτων πρέπει να είναι 217" Εμφάνισε "Εισάγετε το πλήθος των εκλογικών τμημάτων για κάθε ένα από τα εκλογικά καταστήματα: " Για election_building από 1 μέχρι 34 Εμφάνισε "Για το ", election_building, " ο εκλογικό κατάστημα: " Διάβασε station_number[election_building] Όσο station_number[election_building] <= 0 επανάλαβε Εμφάνισε "Το πλήθος των εκλογικών τμημάτων πρέπει να είναι θετικός αριθμός" Εμφάνισε "Εισάγετε το ξανά το πλήθος των εκλογικών τμημάτων" Διάβασε station_number[election_building] sum_stations sum_stations + station_number[election_building] Εμφάνισε "Απομένουν ", 217 sum_stations, " εκλογικά τμήματα" Μέχρις_ότου sum_stations = 217 Για candidate από 1 μέχρι 65 sum_cross[candidate] 0 Εμφάνισε "Εισάγετε το όνομα του ", candidate, " ου υποψηφίου: " Διάβασε name[candidate] Εμφάνισε "Εισάγετε τον αριθμό των σταυρών που έλαβε ο ", name[candidate], " στο: " Για station από 1 μέχρι 217 Εμφάνισε station, " ο εκλογικό τμήμα: " Διάβασε cross_number[candidate,station] sum_cross[candidate] sum_cross[candidate] + cross_number[candidate,station] Εμφάνισε "Συνολικός αριθμός σταυρών του υποψηφίου ", name[candidate], ":", sum_cross[candidate]!-ερώτημα Δ3. Υπολογισμός και εμφάνιση υποψηφίων με τους περισσότερους σταυρούς στο 2 ο εκλογικό κατάστημα-! Για candidate από 1 μέχρι 65 sum_cross_2[candidate] 0 Για station από station_number[1] + 1 μέχρι station_number[1] + station_number[2] sum_cross_2[candidate] sum_cross_2[candidate] + cross_number[candidate,station] max_cross_2 sum_cross_2[1] Για candidate από 2 μέχρι 65 Αν sum_cross_2[candidate] > max_cross_2 τότε max_cross_2 sum_cross_2[candidate]
Εμφάνισε "Οι υποψήφιοι με τους περισσότερους σταυρούς στο 2 ο εκλογικό κατάστημα είναι: " Για candidate από 1 μέχρι 65 Αν sum_cross_2[candidate] = max_cross_2 τότε Εμφάνισε "Ο / Η ", name[candidate], " με σύνολο σταυρών: ", max_cross_2!ερώτημα Δ4. Υπολογισμός και εμφάνιση με αλφαβητική σειρά των υποψηφίων με σύνολο σταυρών μέσα στη 10άδα! Για i από 2 μέχρι 65 Για j από 65 μέχρι i με_βήμα -1 Αν sum_cross[j] > sum_cross[j-1] τότε temp_1 sum_cross[j] sum_cross[j] sum_cross[j-1] sum_cross[j-1] temp_1 temp_2 name[j] name[j] name[j-1] name[j-1] temp_2 index 11 Όσο sum_cross[index] = sum_cross[10] επανάλαβε index index + 1 Για i από 2 μέχρι index 1 Για j από index 1 μέχρι i με_βήμα -1 Αν name[j] < name[j-1] τότε temp_1 sum_cross[j] sum_cross[j] sum_cross[j-1] sum_cross[j-1] temp_1 temp_2 name[j] name[j] name[j-1] name[j-1] temp_2 Εμφάνισε "Τα ονόματα των υποψηφίων με σύνολο σταυρών μέσα στη 10άδα είναι: " Για candidate από 1 μέχρι index 1 Εμφάνισε "Ο / Η ", name[candidate], " με σύνολο σταυρών: ", sum_cross[candidate] Τέλος thema_4 Επιμέλεια: Δημητρόπουλος Γιώργος - Πληροφορικός