ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ Γ ΤΑΞΗΣ ΗΜΕΡΗΣΙΟΥ ΓΕΝΙΚΟΥ ΛΥΚΕΙΟΥ ΚΑΣΤΡΙΤΣΙΟΥ ΠΑΡΑΣΚΕΥΗ 5 Μαΐου 2014 ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΕΧΝΟΛΟΓΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ (ΚΥΚΛΟΥ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΗΡΕΣΙΩΝ) ΘΕΜΑΤΑ- ΛΥΣΕΙΣ Θέμα Β Β1. Να μεταφέρετε στο τετράδιό σας τον πίνακα Α και να συμπληρώσετε τις τιμές των στοιχείων του, όπως θα είναι μετά την εκτέλεση του παρακάτω τμήματος αλγορίθμου. ΓΙΑ γ ΑΠΟ 1 ΜΕΧΡΙ 4 ΓΙΑ δ ΑΠΟ 1 ΜΕΧΡΙ 4 Α[γ,δ] 17 - (γ-1)*4 - δ ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗ Μονάδες 4 Β2. Να γράψετε στο τετράδιό σας τον αριθμό για καθένα από τα κενά 1-2 και δίπλα την κατάλληλη έκφραση, ώστε το παρακάτω τμήμα αλγορίθμου να έχει ακριβώς το ίδιο αποτέλεσμα με το προηγούμενο, δηλαδή να εκχωρεί στα στοιχεία του πίνακα Α τις ίδιες τιμές. κ (1) ΓΙΑ γ ΑΠΟ 1 ΜΕΧΡΙ 4 ΓΙΑ δ ΑΠΟ 1 ΜΕΧΡΙ 4 Α[γ,δ] κ κ (2) Μονάδες 4 Β3. Να μεταφέρετε στο τετράδιό σας τον πίνακα Β και να συμπληρώσετε τις τιμές των στοιχείων του, όπως θα είναι μετά την εκτέλεση του παρακάτω τμήματος αλγορίθμου. 1
Σημείωση: Δεν συμπληρώνονται όλα τα στοιχεία του πίνακα Β. λ 4 ΓΙΑ κ ΑΠΟ 0 ΜΕΧΡΙ 15 ΜΕ_ΒΗΜΑ 5 γ (κ div 4) + 1 δ (κ mod 4) + 1 Β[γ,δ] κ + 1 Β[γ,5-δ] κ + λ λ λ - 2 Μονάδες 4 Β4. Για το παρακάτω τμήμα αλγορίθμου, να γράψετε στο τετράδιό σας τον αριθμό 1 και δίπλα την κατάλληλη συνθήκη, έτσι ώστε ο πίνακας Μ να περιέχει στην κύρια διαγώνιο τις τιμές από τα αντίστοιχα στοιχεία του πίνακα Β (δείτε 1ο σχήμα). Επίσης, η συνθήκη με την ένδειξη (2) είναι λανθασμένη. Να γράψετε στο τετράδιό σας τον αριθμό 2 και δίπλα τη σωστή συνθήκη, έτσι ώστε ο πίνακας Μ να περιέχει στη δευτερεύουσα διαγώνιο τις τιμές από τα αντίστοιχα στοιχεία του πίνακα Β (δείτε 2ο σχήμα). Στις υπόλοιπες θέσεις ο πίνακας Μ πρέπει να περιέχει τις τιμές από τα αντίστοιχα στοιχεία του πίνακα Α. ΓΙΑ γ ΑΠΟ 1 ΜΕΧΡΙ 4 ΓΙΑ δ ΑΠΟ 1 ΜΕΧΡΙ 4 ΑΝ (1) ΤΟΤΕ Μ[γ,δ] Β[γ,δ] ΑΛΛΙΩΣ_ΑΝ γ+δ=4 (2) ΤΟΤΕ Μ[γ,δ] Β[γ,δ] ΑΛΛΙΩΣ Μ[γ,δ] Α[γ,δ] ΤΕΛΟΣ_ΑΝ Μονάδες 8 2
Παρατήρηση: Αν όλα τα ερωτήματα έχουν απαντηθεί σωστά τότε ο πίνακας Μ θα πρέπει να είναι ένα μαγικό τετράγωνο, δηλαδή τα αθροίσματα κάθε γραμμής, κάθε στήλης και των δύο διαγωνίων θα πρέπει να είναι ίσα. Θέμα Γ 3
Σε μία δημοπρασία, οι πλειοδότες ξεκινούν να δίνουν προσφορές (με την πρώτη προσφορά να πρέπει να είναι μεγαλύτερη από την τιμή εκκίνησης του αντικειμένου που δημοπρατείται). Για το αντικείμενο που δημοπρατείται ορίζεται αρχικά η τιμή εκκίνησης. Κάθε προσφορά για να είναι αποδεκτή πρέπει οπωσδήποτε να είναι μεγαλύτερη από την προηγούμενη (ειδικά η πρώτη προσφορά πρέπει να είναι μεγαλύτερη από την τιμή εκκίνησης του αντικειμένου της δημοπρασίας). Η διαδικασία σταματά: 1. όταν ο υπεύθυνος της δημοπρασίας πληκτρολογήσει την τιμή 0 αντί για τιμή προσφοράς. Σε αυτή την περίπτωση το αντικείμενο της δημοπρασίας κατοχυρώνεται στον πλειοδότη που ανακοίνωσε την τελευταία (άρα και μεγαλύτερη προσφορά). 2. όταν οι προσφορές έχουν φτάσει τις 100 οπότε το αντικείμενο της δημοπρασίας κατοχυρώνεται στον πλειοδότη που έκανε την εκατοστή προσφορά. Να γραφεί πρόγραμμα σε ψευδογλώσσα το οποίο α) περιλαμβάνει κατάλληλο τμήμα δηλώσεων : Μονάδες 2 β) Διαβάζει αρχικά την τιμή εκκίνησης ενός αντικειμένου (μονάδα 1) και στην συνέχεια δέχεται επαναληπτικά για κάθε πλειοδότη το όνομά του και την προσφορά του, πραγματοποιώντας τον κατάλληλο έλεγχο εγκυρότητας (εξασφαλίζοντας δηλ. ότι κάθε προσφορά είναι μεγαλύτερη από την προηγούμενη ή ότι το μέγεθος της προσφοράς είναι 0). Ο έλεγχος εγκυρότητας γίνεται με την κλήση κατάλληλου υποπρογράμματος που διαβάζει την τιμή προσφοράς. (Μονάδες 5) Μονάδες 6 γ) Για κάθε νέα προσφορά να υπολογίζει την επί τοις εκατό μέγιστη διαφορά μεταξύ 2 διαδοχικών προσφορών. Για παράδειγμα αν η τρέχουσα προσφορά είναι 100 ευρώ και η επόμενη προσφορά 130 ευρώ τότε η επί τοις εκατό διαφορά μεταξύ 2 διαδοχικών προσφορών είναι 30 % (δηλαδή η τιμή προσφοράς είναι 30% μεγαλύτερη από την προηγούμενη τιμή). Μονάδες 4 δ) Αν δεν υπάρχει επόμενη προσφορά τότε ο υπεύθυνος να περνάει στο πρόγραμμα την τιμή 0 σαν επόμενη προσφορά χωρίς το όνομα πλειοδότη ώστε να τερματίσει η δημοπρασία. Επίσης η δημοπρασία τερματίζει όταν γίνει και η εκατοστή προσφορά. Μονάδες 4 ε) Τέλος να εμφανίζει το όνομα του πλειοδότη ο οποίος τελικά αγόρασε το αντικείμενο, την τιμή που πωλήθηκε το αντικείμενο καθώς και τη μέγιστη επί τοις εκατό διαφορά μεταξύ 2 διαδοχικών προσφορών επί του συνόλου των προσφορών. Μονάδες 6 4
Θεωρούμε, ότι θα πραγματοποιηθεί οπωσδήποτε μια προσφορά πάνω από την τιμή εκκίνησης. ΠΡΟΓΡΑΜΜΑ Θέμα_3 ΑΚΕΡΑΙΕΣ: Πλήθος ΠΡΑΓΜΑΤΙΚΕΣ: Max_raise, raise, Τιμή_Εκκίνησης, Max, Προσφορά, Προηγ_ προσφορά ΧΑΡΑΚΤΗΡΕΣ: Όνομα Max_raise <- 0 ΔΙΑΒΑΣΕ Τιμή_Εκκίνησης Πλήθος <- 0 Max <- Τιμή_Εκκίνησης _ΕΠΑΝΑΛΗΨΗΣ ΚΑΛΕΣΕ ελεγχος_τιμής (Max, Προσφορά) ΑΝ Προσφορά <> 0 ΤΟΤΕ ΔΙΑΒΑΣΕ Όνομα Προηγ_προσφορά <- Max Max <- Προσφορά Πλήθος <- Πλήθος + 1 raise <- (Max - Προηγ_προσφορά)/ Προηγ_προσφορά*100 ΑΝ raise > Max_raise ΤΟΤΕ Max_raise <- raise ΤΕΛΟΣ_ΑΝ ΤΕΛΟΣ_ΑΝ ΜΕΧΡΙΣ_ΟΤΟΥ Προσφορά = 0 Η Πλήθος >= 100 ΓΡΑΨΕ "Πλειοδότης είναι ο", Όνομα, " με τιμή αγοράς ", Max ΓΡΑΨΕ "Η μεγαλύτερη % διαφορά μεταξύ δυο διαδοχικών προσφορών είναι ", Max_raise ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ ΔΙΑΔΙΚΑΣΙΑ ελεγχος_τιμής (μεγιστο, Προσφορά) ΠΡΑΓΜΑΤΙΚΕΣ: μεγιστο, Προσφορά _ΕΠΑΝΑΛΗΨΗΣ ΔΙΑΒΑΣΕ Προσφορά ΜΕΧΡΙΣ_ΟΤΟΥ Προσφορά > μεγιστο Η Προσφορά = 0 ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ Θέμα Ε(ναλλακτικό) Κάθε χρόνο, μετά τις Πανελλαδικές Εξετάσεις, το Υπουργείο Παιδείας ανακοινώνει τη βαθμολογία των υποψηφίων και τους ζητά να δηλώσουν ηλεκτρονικά τις σχολές στις οποίες επιθυμούν να εισαχθούν, κατά σειρά προτίμησης. Στη συνέχεια, λαμβάνοντας υπόψη τη βαθμολογία, τις προτιμήσεις, αλλά και το πλήθος των εισακτέων σε κάθε σχολή, υπολογίζεται σε ποια σχολή εισήχθη κάθε υποψήφιος. Συγκεκριμένα, οι υποψήφιοι διατάσσονται σε φθίνουσα βαθμολογική σειρά και κάθε υποψήφιος εισάγεται στην υψηλότερη δυνατή του προτίμηση που έχει ακόμα διαθέσιμες θέσεις. Στις εξετάσεις του Μαΐου 2012 διαγωνίστηκαν 110.851 υποψήφιοι για την εισαγωγή τους σε 636 σχολές. Να αναπτύξετε αλγόριθμο ο οποίος: Ε1. Θεωρεί δεδομένο έναν μονοδιάστατο πίνακα ακεραίων ΕΙΣ, 636 θέσεων, ο οποίος περιέχει τον αριθμό των εισακτέων κάθε σχολής. Μονάδα 1 5
Ε2. Για κάθε έναν από τους 110.851 υποψηφίους διαβάζει το όνομά του και τη βαθμολογία του, εξασφαλίζοντας με κατάλληλους ελέγχους ότι τα δεδομένα των υποψηφίων δίνονται με φθίνουσα βαθμολογική σειρά. Ενδεχόμενες ισοβαθμίες μεταξύ των υποψηφίων είναι αποδεκτές, αλλά να υποθέσετε ότι δεν παίζουν κανένα ρόλο στη διαδικασία που ακολουθεί. Μονάδες 3 Ε3. Για κάθε υποψήφιο διαβάζει τις σχολές στις οποίες επιθυμεί να εισαχθεί, κατά σειρά προτίμησης. Κάθε σχολή προσδιορίζεται με έναν ακέραιο, ο οποίος αντιστοιχεί στη θέση της σχολής στον πίνακα ΕΙΣ. Η ανάγνωση των προτιμήσεων ενός υποψηφίου τερματίζεται όταν δοθεί ως προτίμηση το 0 ή όταν συμπληρωθούν 636 προτιμήσεις. Να υποθέσετε ότι κανένας υποψήφιος δε θα δηλώσει πολλές φορές την ίδια σχολή. Μονάδες 4 Ε4. Για κάθε υποψήφιο υπολογίζει κι εμφανίζει το όνομά του και τον αριθμό της σχολής στην οποία εισήχθη ή ένα κατάλληλο μήνυμα αν δεν εισήχθη σε καμία σχολή. Μονάδες 8 Ε5. Για κάθε σχολή υπολογίζει κι εμφανίζει τη βάση της, δηλαδή τη βαθμολογία του τελευταίου επιτυχόντα σε αυτήν. Να υποθέσετε ότι υπάρχει τουλάχιστον ένας εισακτέος σε κάθε σχολή. 6
7
8
Θέμα Δ Το τμήμα Πληροφορικής του Οικονομικού Πανεπιστημίου Αθηνών διατηρεί μια βάση δεδομένων με τα στοιχεία των φοιτητών του (μέγιστος αριθμός φοιτητών 200). Σε κάθε φοιτητή έχει αντιστοιχισθεί ένας αριθμός μητρώου που αποτελείται από έναν πενταψήφιο αριθμό Τα πρώτα δυο ψηφία αποτελούν το σχολικό έτος που εισήχθη στο πανεπιστήμιο και τα υπόλοιπα τρία είναι ο αύξων αριθμός εγγραφής στο πανεπιστημιακό αυτό τμήμα (για παράδειγμα ο φοιτητής με αριθμό μητρώου 10003 εισήχθη το σχολικό έτος 2010-2011 και έχει γραφτεί τρίτος στη γραμματεία του τμήματος). Να αναπτύξετε πρόγραμμα με τη χρήση υποπρογραμμάτων όπου: Δ1 : Το πρόγραμμα να καλεί υποπρογράμματα για κάθε μια από τις παρακάτω διαδικασίες Μονάδες 2 Δ2. Να διαβάζει το πλήθος των φοιτητών του τμήματος, το όνομα και επώνυμο των φοιτητών. Ακόμη, για κάθε φοιτητή πρέπει να εισάγεται από το χρήστη η βαθμολογία του στα 12 μαθήματα του πρώτου έτους φοίτησης. Σημειώνεται ότι πρέπει να εισαχθούν από το χρήστη και τα ονόματα των 12 μαθημάτων σε έναν ξεχωριστό μονοδιάστατο πίνακα Μονάδες 2 9
Δ3. Να υπολογίζει τους μέσους όρους των μαθητών και να εκτυπώνει τον γενικό μέσο όλων των φοιτητών του πρώτου έτους Μονάδες 3 Δ4. Να διαβάζει το όνομα ενός φοιτητή και να εκτυπώνει το μέσο όρο της βαθμολογίας του Μονάδες 3 Δ5. Να εντοπίζει και να εκτυπώνει το όνομα του φοιτητή που έχει το μεγαλύτερο μέσο όρο; Δ6. Να εντοπίζει ποιοι είναι οι 3 φοιτητές που δικαιούνται υποτροφία από το ΙΚΥ Μονάδες 4 Μονάδες 6 1 0
ΠΡΟΓΡΑΜΜΑ Μηχανογράφηση_τμήματος_Πληροφορικής ΧΑΡΑΚΤΗΡΕΣ: ΜΑΘΗΜΑΤΑ[12], ΟΝΟΜΑΤΑ[200], όνομα_προς_αναζήτηση ΠΡΑΓΜΑΤΙΚΕΣ: ΒΑΘΜΟΙ[200,12], ΜΕΣΟΣ_ΟΡΟΣ[200], Συν_ΜΟ ΑΚΕΡΑΙΕΣ: ΠΛΗΘΟΣ, i, j! Ερώτημα 1 ΚΑΛΕΣΕ Είσοδος_δεδομένων (ΠΛΗΘΟΣ, ΜΑΘΗΜΑΤΑ, ΟΝΟΜΑΤΑ, ΒΑΘΜΟΙ)! Ερώτημα 2 ΚΑΛΕΣΕ Υπολογισμός_ΜΟ (ΠΛΗΘΟΣ, ΒΑΘΜΟΙ, ΜΕΣΟΣ_ΟΡΟΣ) Συν_ΜΟ <- Υπολογισμός_Συνολικού_ΜΟ (ΠΛΗΘΟΣ, ΜΕΣΟΣ_ΟΡΟΣ) ΓΡΑΨΕ Ο συνολικός μέσος όρος είναι, Συν_ΜΟ! Ερώτημα 3, προηγείται διάβασμα ονόματος από το χρήστη ΓΡΑΨΕ Δώστε το όνομα ενός φοιτητή για αναζήτηση ΔΙΑΒΑΣΕ όνομα_προς_αναζήτηση ΚΑΛΕΣΕ Εκτύπωση_Μέσου_Όρου_Φοιτητών (όνομα_προς_αναζήτηση, ΠΛΗΘΟΣ, ΟΝΟΜΑΤΑ, ΜΕΣΟΣ_ΟΡΟΣ)! Ερώτημα 4 ΚΑΛΕΣΕ Εύρεση_Μεγ_ΜΟ (ΠΛΗΘΟΣ, ΟΝΟΜΑΤΑ, ΜΕΣΟΣ_ΟΡΟΣ)! Ερώτημα 5 ΚΑΛΕΣΕ Ταξινόμηση (ΠΛΗΘΟΣ, ΟΝΟΜΑΤΑ, ΜΕΣΟΣ_ΟΡΟΣ) ΚΑΛΕΣΕ Εκτύπωση_top3 (ΠΛΗΘΟΣ, ΟΝΟΜΑΤΑ, ΜΕΣΟΣ_ΟΡΟΣ) ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ ΔΙΑΔΙΚΑΣΙΑ Είσοδος_δεδομένων (Πλήθος_Φοιτητών, Μαθήματα, Ονόματα_Φοιτητών, Βαθμοί_Φοιτητών) ΧΑΡΑΚΤΗΡΕΣ: Μαθήματα[12], Ονόματα_Φοιτητών[200] ΠΡΑΓΜΑΤΙΚΕΣ: Βαθμοί_Φοιτητών[200,12] ΑΚΕΡΑΙΕΣ: Πλήθος_Φοιτητών, i, j! Διάβασμα του πλήθους των φοιτητών _ΕΠΑΝΑΛΗΨΗΣ ΓΡΑΨΕ Δώσε τo πλήθος των φοιτητών ΔΙΑΒΑΣΕ Πλήθος_Φοιτητών ΜΕΧΡΙΣ_ΟΤΟΥ (Πλήθος_Φοιτητών >0) ΚΑΙ (Πλήθος_Φοιτητών <=200)! Διάβασμα των ονομάτων των μαθημάτων ΓΙΑ j ΑΠΟ 1 ΜΕΧΡΙ 12 ΓΡΑΨΕ Δώσε τo όνομα του μαθήματος, j ΔΙΑΒΑΣΕ Μαθήματα[j]! Διάβασμα των ονομάτων των φοιτητών ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ Πλήθος_Φοιτητών ΓΡΑΨΕ Δώσε τo όνομα του μαθητή, i ΔΙΑΒΑΣΕ Ονόματα_Φοιτητών[i]! Διάβασμα των βαθμών των φοιτητών ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ Πλήθος_Φοιτητών ΓΙΑ j ΑΠΟ 1 ΜΕΧΡΙ 12 _ΕΠΑΝΑΛΗΨΗΣ ΓΡΑΨΕ Δώσε τo βαθμό του φοιτητή,ονόματα_φοιτητών[i], για το μάθημα, Μαθήματα[j] ΔΙΑΒΑΣΕ Βαθμοί_Φοιτητών[i, j] ΜΕΧΡΙΣ_ΟΤΟΥ (Βαθμοί_Φοιτητών[i, j]>0) ΚΑΙ (Βαθμοί_Φοιτητών[i, j]<=10) 1 1
ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ [top] 2B. Θα χρησιμοποιήσουμε μια διαδικασία για τη δημιουργία του πίνακα μέσων όρων και μια συνάρτηση για την εύρεση του συνολικού μέσου όρου, η εκτύπωση του οποίου θα πραγματοποιηθεί στο κυρίως πρόγραμμα Η πρώτη διαδικασία με όνομα Υπολογισμός_ΜΟ είναι η εξής: ΔΙΑΔΙΚΑΣΙΑ Υπολογισμός_ΜΟ (Πλήθος_Φοιτητών, Βαθμοί_Φοιτητών, Μέσος_Όρος_Φοιτητών) ΠΡΑΓΜΑΤΙΚΕΣ: Βαθμοί_Φοιτητών[200,12], Μέσος_Όρος_Φοιτητών[200] ΑΚΕΡΑΙΕΣ: Πλήθος_Φοιτητών, i, j, άθροισμα! Δημιουργία του πίνακα Μέσων Όρων ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ Πλήθος_Φοιτητών άθροισμα <- 0 ΓΙΑ j ΑΠΟ 1 ΜΕΧΡΙ 12 άθροισμα <- άθροισμα + Βαθμοί_Φοιτητών[i, j] Μέσος_Όρος_Φοιτητών[i] <- άθροισμα / 12 ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ [top] Η συνάρτηση για τον υπολογισμό του συνολικού μέσου όρου και την εκτύπωσή του είναι η εξής: ΣΥΝΑΡΤΗΣΗ Υπολογισμός_Συνολικού_ΜΟ (Πλήθος_Φοιτητών, Μέσος_Όρος_Φοιτητών) : ΠΡΑΓΜΑΤΙΚΗ ΠΡΑΓΜΑΤΙΚΕΣ: Μέσος_Όρος_Φοιτητών[200] ΑΚΕΡΑΙΕΣ : Πλήθος_Φοιτητών, i, άθροισμα! Υπολογισμός του συνολικού μέσου όρου άθροισμα <- 0 ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ Πλήθος_Φοιτητών άθροισμα <- άθροισμα + Βαθμοί_Φοιτητών[i, j] Υπολογισμός_Συνολικού_ΜΟ <- άθροισμα / Πλήθος_Φοιτητών! Εκτύπωση του συνολικού μέσου όρου ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ [top]! Η διαδικασία που θα υλοποιηθεί πρέπει να έχει ως όρισμα εισόδου το όνομα ενός φοιτητή (αυτό θα διαβαστεί!από το χρήστη στο κυρίως πρόγραμμα) στη συνέχεια με τον αλγόριθμο της σειριακής αναζήτησης θα 1εντοπίζει τη θέση που βρίσκεται στον πίνακα Ονόματα_Φοιτητών ο φοιτητής αυτός και θα εντυπώνει το!στοιχείο της αντίστοιχης θέσης του πίνακα Μέσος_Όρος_Φοιτητών ΔΙΑΔΙΚΑΣΙΑ Εκτύπωση_Μέσου_Όρου_Φοιτητής (Δοθέν_Όνομα, Πλήθος_Φοιτητών, Ονόματα_Φοιτητών, Μέσος_Όρος_Φοιτητών) ΧΑΡΑΚΤΗΡΕΣ: Δοθέν_Όνομα, Ονόματα_Φοιτητών[200] 1 2
ΠΡΑΓΜΑΤΙΚΕΣ: Μέσος_Όρος_Φοιτητών[200] ΑΚΕΡΑΙΕΣ: Πλήθος_Φοιτητών, i, θέση_βρέθηκε ΛΟΓΙΚΕΣ: βρέθηκε! Αναζήτηση με τον αλγόριθμο σειριακής αναζήτησης για την εύρεση της θέσης του δοθέντος ονόματος βρέθηκε <- ΨΕΥΔΗΣ θέση_βρέθηκε <- 0 i <- 1 ΟΣΟ (βρέθηκε = ΨΕΥΔΗΣ) ΚΑΙ (i <= Πλήθος_Φοιτητών) ΕΠΑΝΑΛΑΒΕ ΑΝ (Ονόματα_Φοιτητών[i] = Δοθέν_Όνομα) ΤΟΤΕ βρέθηκε <- ΑΛΗΘΗΣ θέση_βρέθηκε <- i ΑΛΛΙΩΣ i <- i + 1 ΤΕΛΟΣ_ΑΝ ΑΝ (βρέθηκε = ΨΕΥΔΗΣ) ΤΟΤΕ ΓΡΑΨΕ 'Το όνομα που δόθηκε δεν ανήκει σε φοιτητή' ΑΛΛΙΩΣ ΓΡΑΨΕ 'Ο φοιτητής', Δοθέν_Όνομα,' έχει μέσο όρο', Μέσος_Όρος_Φοιτητών[θέση_βρέθηκε] ΤΕΛΟΣ_ΑΝ ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ! Τα δεδομένα εισόδου στη διαδικασία Εύρεση_Μεγ_ΜΟ είναι το πλήθος των φοιτητών, ο πίνακας με τα!ονόματα των φοιτητών καθώς και αυτός που περιέχει τους μέσους όρους ΔΙΑΔΙΚΑΣΙΑ Εύρεση_Μεγ_ΜΟ (Πλήθος_Φοιτητών, Ονόματα_Φοιτητών, Μέσος_Όρος_Φοιτητών) ΧΑΡΑΚΤΗΡΕΣ: Ονόματα_Φοιτητών[200] ΠΡΑΓΜΑΤΙΚΕΣ: Μέσος_Όρος_Φοιτητών[200], μέγιστος ΑΚΕΡΑΙΕΣ: Πλήθος_Φοιτητών, i, θέση_βρέθηκε! Αναζήτηση για τη θέση του μεγίστου μέσου όρου μέγιστος <- Μέσος_Όρος_Φοιτητών[1] θέση_βρέθηκε <- 1 ΓΙΑ i ΑΠΟ 2 ΜΕΧΡΙ Πλήθος_Φοιτητών ΑΝ (Μέσος_Όρος_Φοιτητών[i] > μέγιστος) ΤΟΤΕ μέγιστος <- Μέσος_Όρος_Φοιτητών[i] θέση_βρέθηκε <- i ΤΕΛΟΣ_ΑΝ! Εκτύπωση του ονόματος που κατέχει τη θέση της μεταβλητής θέση_βρέθηκε ΓΡΑΨΕ 'Ο φοιτητής', Ονόματα_Φοιτητών[θέση_βρέθηκε],' έχει το μεγαλύτερο μέσο όρο που είναι: ', μέγιστος ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ [top]! να ταξινομηθεί ο πίνακας με τους μέσους όρους των φοιτητών. Για το σκοπό αυτό πρέπει να χρησιμοποιηθεί ο αλγόριθμος της φυσαλίδας ΔΙΑΔΙΚΑΣΙΑ Ταξινόμηση (Πλήθος_Φοιτητών, Ονόματα_Φοιτητών, Μέσος_Όρος_Φοιτητών) 1 3
ΧΑΡΑΚΤΗΡΕΣ: Ονόματα_Φοιτητών[200], temp_όνομα ΠΡΑΓΜΑΤΙΚΕΣ: Μέσος_Όρος_Φοιτητών[200], temp_βαθμός ΑΚΕΡΑΙΕΣ: Πλήθος_Φοιτητών, i, j! Αλγόριθμος ταξινόμησης φυσαλίδας για την ταξινόμηση του πίνακα των μέσων όρων ΓΙΑ i ΑΠΟ 2 ΜΕΧΡΙ Πλήθος_Φοιτητών ΓΙΑ j ΑΠΟ Πλήθος_Φοιτητών ΜΕΧΡΙ i ΜΕ_ΒΗΜΑ -1 ΑΝ (Μέσος_Όρος_Φοιτητών[j-1] > Μέσος_Όρος_Φοιτητών[j]) ΤΟΤΕ! Αντιμετάθεση στοιχείων πίνακα Μέσος_Όρος_Φοιτητών temp_βαθμός <- Μέσος_Όρος_Φοιτητών[j-1] Μέσος_Όρος_Φοιτητών[j-1] <- Μέσος_Όρος_Φοιτητών[j] Μέσος_Όρος_Φοιτητών[j] <- temp_βαθμός! Αντίστοιχη αντιμετάθεση στοιχείων πίνακα Ονόματα_Φοιτητών temp_όνομα <- Ονόματα_Φοιτητών[j-1] Ονόματα_Φοιτητών[j-1] <- Ονόματα_Φοιτητών[j] Ονόματα_Φοιτητών[j] <- temp_όνομα ΤΕΛΟΣ_ΑΝ ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ [top] Μετά την εκτέλεση της παραπάνω διαδικασίας εκτελείται η Εκτύπωση_top3 η οποία θα εκτυπώσει τα ονόματα και τους μέσους όρους των τριών πρώτων φοιτητών στην κατάταξη. ΔΙΑΔΙΚΑΣΙΑ Εκτύπωση_top3 (Πλήθος_Φοιτητών, Ονόματα_Φοιτητών, Μέσος_Όρος_Φοιτητών) ΧΑΡΑΚΤΗΡΕΣ : Ονόματα_Φοιτητών[200] ΠΡΑΓΜΑΤΙΚΕΣ : Μέσος_Όρος_Φοιτητών[200] ΑΚΕΡΑΙΕΣ : Πλήθος_Φοιτητών, i! Λόγω αύξουσας διάταξης του πίνακα μέσων όρων εκτυπώνω της 3 τελευταίες θέσεις των δυο πινάκων ΓΙΑ i ΑΠΟ Πλήθος_Φοιτητών ΜΕΧΡΙ (Πλήθος_Φοιτητών-2) ΜΕ_ΒΗΜΑ -1 ΓΡΑΨΕ 'O', Πλήθος_Φοιτητών-i+1,' ος φοιτητής είναι ο', Ονόματα_Φοιτητών[i],' με μέσο όρο:', Μέσος_Όρος_Φοιτητών [i] ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ Τα θέματα προέρχονται κυρίως από Επαναληπτικά Διαγωνίσματα από τον ιστότοπο του Στεκιού Πληροφορικών και του Π. Τσιωτάκη 1 4