Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον Λύσεις Θεμάτων Εξετάσεων Ενιαίου Λυκείου 2010 Θέμα Α Α1. 1. Αν ΒΑΘΜΟΛΟΓΙΑ > ΜΟ τότε Γράψε "Πολύ Καλά" Αλλιώς_αν ΒΑΘΜΟΛΟΓΙΑ + 2 >= ΜΟ τότε Γράψε "Καλά" Αλλιώς Γράψε "Μέτρια" 2. Αν ΤΜΗΜΑ = "Γ1" και ΒΑΘΜΟΣ > 15 τότε Γράψε ΕΠΩΝΥΜΟ 3. Αν ΑΠΑΝΤΗΣΗ <> "Ν" και ΑΠΑΝΤΗΣΗ <> "ν" και ΑΠΑΝΤΗΣΗ <> "Ο" και ΑΠΑΝΤΗΣΗ <> "ο" τότε Γράψε "Λάθος Απάντηση" 4. Αν Χ < 0 ή ΗΜ(Χ) = 0 τότε Γράψε "Λάθος Δεδομένο" Αλλιώς Γράψε (Χ ^ 2 + 5 * Χ + 1) / Τ_Ρ(Χ) * ΗΜ(Χ)) Α2. Οι τύποι μεταβλητών που υποστηρίζει η ΓΛΩΣΣΑ είναι: Τύπος Μεταβλητής Εντολή Εκχώρησης Ακέραιες Α 50 Πραγματικές Π 3.14 Χαρακτήρες Χ Προγραμματισμός Λογικές Λ Αληθής Α3. Α4. 1 Θ 2 Δ 3 Η 4 Ι 5 Κ 12 row[i] row[i] + table[i,j] 13 col[j] col[j] + table[i,j] 13 sum sum + table[i,j] Α5. Το συμπληρωμένο τμήμα αλγορίθμου είναι:
Για x από 3 μέχρι 19 με_βήμα 2 Για y από 19 μέχρι x με_βήμα -2 Αν Π[y] < Π[y-2] τότε Αντιμετάθεσε Π[y], Π[y-2] Θέμα Β Ο πίνακας τιμών έχει ως εξής: Αριθμός Γραμμής Συνθήκη Έξοδος i j 1 1 2 2 4 3 5 2 6 3 7 Ψευδής 4 5 5 3 6 5 7 Αληθής
Θέμα Γ Αλγόριθμος thema_3!----------------------------------------------εισαγωγή του ρεκόρ αγώνων από τον χρήστη--------------------------------------------------! Εμφάνισε "Εισάγετε το ρεκόρ αγώνων" Διάβασε record!-------------------------------------------------έλεγχος εγκυρότητας για το ρεκόρ αγώνων--------------------------------------------------! Όσο record <=0 ή record >= 10 επανάλαβε Εμφάνισε "Το ρεκόρ αγώνων πρέπει να είναι > 0 και < 10" Εμφάνισε "Εισάγετε ξανά το ρεκόρ αγώνων" Διάβασε record!-----------------------------------------εισαγωγή του αριθμού αγωνιζόμενων από τον χρήστη-------------------------------------------! Εμφάνισε "Εισάγετε τον συνολικό αριθμό των αγωνιζόμενων" Διάβασε competitors_number!---------------------------------------------------------αρχικοποίηση μεταβλητών----------------------------------------------------------------! flag_record Ψευδής!Λογική μεταβλητή για την ύπαρξη νέου ρεκόρ count_under_50 0!Μετρητής πλήθους επιδόσεων σε απόσταση 50 cm από το ρεκόρ competitor 1!Μετρητής για την επαναληπτική διαδικασία Όσο competitor <= competitors_number επανάλαβε!-----------------------------εισαγωγή ονόματος και επίδοσης κάθε αγωνιζόμενου από τον χρήστη----------------------------------! Εμφάνισε "Εισάγετε τα στοιχεία του ", competitor, " ου αγωνιζόμενου" Εμφάνισε "Όνομα:" Διάβασε competitor_name Εμφάνισε "Επίδοση:" Διάβασε performance!--------------------------------------------------------για τον περσινό πρωταθλητή--------------------------------------------------------------! Αν competitor = 1 τότε min_performance performance!μικρότερη επίδοση min_name competitor_name!όνομα μικρότερης επίδοσης last_champion_performance performance!επίδοση περσινού πρωταθλητή last_champion_rank 1!Κατάταξη περσινού πρωταθλητή!------------------------υπολογισμός επίδοσης και ονόματος αγωνιζόμενου με την μικρότερη επίδοση----------------------------! Αν performance < min_performance τότε min_performance performance min_name competitor_name!-----------------έλεγχος για νέο ρεκόρ. Σε περίπτωση που υπάρχει εμφάνιση του ονόματος του αγωνιζόμενου--------------! Αν performance > record τότε Εμφάνισε "Ο αγωνιζόμενος: ", competitor_name, " έκανε ρεκόρ αγώνων" flag_record Αληθής
!-----------------------------------------Υπολογισμός πλήθους επιδόσεων κοντά στο ρεκόρ------------------------------------------------! Αν record performance <= 0.5 τότε count_under_50 count_under_50 + 1!------------------------------------------Υπολογισμός κατάταξης περσινού πρωταθλητή----------------------------------------------------! Αν performance > last_champion_performance τότε last_champion_rank last_champion_rank + 1 competitor competitor + 1!-----------------------------------------Εμφάνιση αγωνιζόμενου με την χειρότερη επίδοση-----------------------------------------------!!---------σε περίπτωση που δεν υπάρχει νέο ρεκόρ. Εμφάνιση πλήθος αγωνιζόμενων με επίδοση κοντά στο ρεκόρ--------!!----------------------------------------------εμφάνιση κατάταξης περσινού πρωταθλητή----------------------------------------------------! Εμφάνισε "Ο αθλητής με την χειρότερη επίδοση είναι ο ", min_name Αν flag_record = Ψευδής τότε Εμφάνισε "Οι αθλητές που πλησίασαν το ρεκόρ αγώνων σε απόσταση 50 cm είναι: ", count_under_50 Εμφάνισε "Ο περσινός πρωταθλητής κατετάγη στη ", last_champion_rank, "η θέση" Τέλος thema_3
Θέμα Δ Αλγόριθμος thema_4!---------------------------------------------------------αρχικοποίηση μεταβλητών----------------------------------------------------------------! category_c1 0!Μετρητής πλήθους ιστιοπλοϊκών 1 ης κατηγορίας category_c2 0!Μετρητής πλήθους ιστιοπλοϊκών 2 ης κατηγορίας category_c3 0!Μετρητής πλήθους ιστιοπλοϊκών 3 ης κατηγορίας Για sailing από 1 μέχρι 35!-------------------------------------------Εισαγωγή ονόματος και κατηγορίας από τον χρήστη--------------------------------------------! Εμφάνισε "Εισάγετε το όνομα του ", sailing, " ου ιστιοπλοϊκού" Διάβασε name[sailing] Εμφάνισε "Εισάγετε την κατηγορία του ιστιοπλοϊκού ", name[sailing] Διάβασε category[sailing]!----------------------------------------------------έλεγχος εγκυρότητας για την κατηγορία---------------------------------------------------! Όσο category[sailing] <> "C1" και category[sailing] <> "C2" και category[sailing] <> "C3" επανάλαβε Εμφάνισε "Η κατηγορία μπορεί να είναι C1 ή C2 ή C3" Εμφάνισε "Εισάγετε ξανά την κατηγορία του ", name[sailing] Διάβασε category[sailing]!-----------------------------------------------εισαγωγή χρόνου και δείκτη GPH από τον χρήστη--------------------------------------------! Εμφάνισε "Εισάγετε τον χρόνο που χρειάστηκε το ", name[sailing], " για να τερματίσει" Διάβασε time[sailing] Εμφάνισε "Εισάγετε τον δείκτη GPH του ", name[sailing] Διάβασε gph[sailing]!--------------------------------υπολογισμός σχετικού χρόνου και πλήθος ιστιοπλοϊκών ανά κατηγορία------------------------------! relative_time[sailing] time[sailing] / (gph[sailing] * 70) Αν category[sailing] = "C1" τότε category_c1 category_c1 + 1 Αλλιώς_αν category[sailing] = "C2" τότε category_c2 category_c2 + 1 Αλλιώς category_c3 category_c3 + 1!-------------------------------------------Υπολογισμός κατηγορίας με τα περισσότερα σκάφη---------------------------------------------! max_category category_c1 max_category_name "C1" Αν category_c2 > max_category τότε max_category category_c2 max_category_name "C2" Αν category_c3 > max_category τότε max_category category_c3 max_category_name "C3"
!-----------------------Αύξουσα ταξινόμηση του ονόματος και της κατηγορίας με βάση τον σχετικό χρόνο------------------------! Για i από 2 μέχρι 35 Για j από 35 μέχρι i με_βήμα -1 Αν relative_time[j] < relative_time[j-1] τότε temp_1 relative_time[j] relative_time[j] relative_time[j-1] relative_time[j-1] temp_1 temp_2 name[j] name[j] name[j-1] name[j-1] temp_2 temp_3 category[j] category[j] category[j-1] category[j-1] temp_3!------------------εμφάνιση κατηγορίας με τα περισσότερα σκάφη και των 3 πρώτων της γενικής κατάταξης-------------------! Εμφάνισε "Η κατηγορία με τα περισσότερα σκάφη είναι η: ", max_category_name Εμφάνισε "Η γενική κατάταξη έχει ως εξής:" Για rank από 1 μέχρι 3 Εμφάνισε "Στην ", rank, " η θέση είναι το ιστιοπλοϊκό με τα ακόλουθα στοιχεία" Εμφάνισε "Κατηγορία: ", category[rank]!--------------------------------------------------------αρχικοποίηση μεταβλητών-----------------------------------------------------------------! medal_c1 1!Θέσεις μεταλλίου για την κατηγορία C1 medal_c2 1!Θέσεις μεταλλίου για την κατηγορία C2 medal_c3 1!Θέσεις μεταλλίου για την κατηγορία C3 rank 1!Μετρητής επαναληπτικής διαδικασίας!------------------------------------------------εμφάνιση των 3 πρώτων της κατηγορίας C1--------------------------------------------------! Εμφάνισε "Η ειδική κατάταξη κατηγορίας C1 έχει ως εξής:" Όσο rank <= 35 και medal_c1 <= 3 επανάλαβε Αν category[rank] = "C1" τότε Εμφάνισε "Στην ", medal_c1, " η θέση είναι το ιστιοπλοϊκό με τα ακόλουθα στοιχεία" medal_c1 medal_c1 + 1 rank rank + 1
rank 1!------------------------------------------------Εμφάνιση των 3 πρώτων της κατηγορίας C2--------------------------------------------------! Εμφάνισε "Η ειδική κατάταξη κατηγορίας C2 έχει ως εξής:" Όσο rank <= 35 και medal_c2 <= 3 επανάλαβε Αν category[rank] = "C2" τότε Εμφάνισε "Στην ", medal_c2, " η θέση είναι το ιστιοπλοϊκό με τα ακόλουθα στοιχεία" medal_c2 medal_c2 + 1 rank rank + 1 rank 1!------------------------------------------------Εμφάνιση των 3 πρώτων της κατηγορίας C3--------------------------------------------------! Εμφάνισε "Η ειδική κατάταξη κατηγορίας C3 έχει ως εξής:" Όσο rank <= 35 και medal_c3 <= 3 επανάλαβε Αν category[rank] = "C3" τότε Εμφάνισε "Στην ", medal_c3, " η θέση είναι το ιστιοπλοϊκό με τα ακόλουθα στοιχεία" medal_c3 medal_c3 + 1 rank rank + 1 Τέλος thema_4 Επιμέλεια: Δημητρόπουλος Γιώργος - Πληροφορικός