Για το (3) προσωπικά θα μου άρεσε να υπάρχει αυτή η δυνατότητα (αν βέβαια μιλήσω σαν υποψήφιος, ομολογώ πως για το συγκεκριμένο θα με ενδιέφερε αποκλειστικά και μόνο η γνώμη του διορθωτή που θα έπαιρνε στα χέρια του το γραπτό μου...

).
Συνεχίζω τη λίστα των αποριών μου με μια ερώτηση που αρχικά μπορεί να φανεί ελαφρώς παράξενη:
Έχουμε δικαίωμα να «βάζουμε» το χρήστη να αλληλεπιδράσει με τον αλγόριθμο μέσω ερωταπαντήσεων τύπου (Ναι/Όχι) ακόμη κι αν δεν ζητείται ρητά από την εκφώνηση? Για παράδειγμα:
Αλγόριθμος Θέμα
Αρχή_Επανάληψης
Εκτύπωσε Έτοιμος για την εισαγωγή των βαθμών?(Ναι/Όχι)
Διάβασε απ
Μέχρις_ότου (απ=Ναι) ή (απ=Όχι)
Αν απ=Όχι τότε
Αρχή_επανάληψης
Εκτύπωσε Εντάξει, θα περιμένω λίγο
μήπως τώρα είσαι έτοιμος?
Διάβασε απ
Μέχρις_ότου απ=Ναι
Τέλος_αν
(κτλ)
Το παραπάνω ερώτημα προέκυψε όταν έλυνα το Θέμα 4, Εσπερινά 2005 (με τα 20 σχολεία που το καθένα αξιολογεί 5 άλλα):
Σε ένα πανελλήνιο σχολικό διαγωνισμό μετέχουν 20 σχολεία. Κάθε σχολείο αξιολογεί 5 άλλα σχολεία και δεν αυτοαξιολογείται. Η βαθμολογία κυμαίνεται από 1 έως και 10. Να γραφεί τμήμα αλγορίθμου που
α) να διαβάζει τα ονόματα των σχολείων και να τα αποθηκεύει σε μονοδιάστατο πίνακα Α 20 θέσεων, Μονάδες 2
β) να εισάγει αρχικά την τιμή 0 σε όλες τις θέσεις ενός δισδιάστατου πίνακα Β 20 γραμμών και 20 στηλών. Μονάδες 2
γ) Να καταχωρίζει στον πίνακα Β τη βαθμολογία που δίνει κάθε σχολείο για 5 άλλα σχολεία.
Σημείωση: Στη θέση i,j του πίνακα Β αποθηκεύεται ο βαθμός που το σχολείο i δίνει στο σχολείο j, όπως φαίνεται στο παράδειγμα που ακολουθεί. Μονάδες 6
δ) να υπολογίζει τη συνολική βαθμολογία του κάθε σχολείου και να την καταχωρίζει σε μονοδιάστατο πίνακα 20 θέσεων με όνομα SUM, Μονάδες 4
ε) να εμφανίζει τα ονόματα και τη συνολική βαθμολογία όλων των σχολείων κατά φθίνουσα σειρά της συνολικής βαθμολογίας. Μονάδες 6
Θα ασχοληθώ με το ερώτημα γ καθώς τα υπόλοιπα είναι μάλλον τετριμμένα. Φτάνοντας λοιπόν στο γ, ήρθα αντιμέτωπος με μια ασάφεια στην εκφώνηση (ή τουλάχιστον έτσι μου φάνηκε): Συγκεκριμένα, δεν διευκρινίζεται με ποια ακριβώς μορφή αναμένεται να εισαχθεί στον αλγόριθμο το κάθε «σχολείο-j» που αξιολογείται από το «σχολείο-i».
1) Μέσω του j (Διάβασε j)?
2) Μέσω «ολόκληρου» του «σχολείου-j», δηλ. του ονόματός του (Διάβασε σχολείο), οπότε θα έπρεπε να προηγηθεί και μία σειριακή στον Α[ 20 ]?
(Η Σημείωση της εκφώνησης όπως την καταλαβαίνω, δεν υποδεικνύει τίποτα από τα παραπάνω. Πρόκειται απλώς για μια απαραίτητη οδηγία-διευκρίνιση που θα έπρεπε να υπάρχει έτσι κι αλλιώς, ότι δηλαδή το «γέμισμα» των κελιών του Β[ 20,20 ] πρέπει να γίνει γραμμή προς γραμμή. Σε διαφορετική περίπτωση θα επιτρεπόταν αλγόριθμος ο οποίος π.χ. καταχωρεί τους βαθμούς που έδωσε το πρώτο σχολείο στην πρώτη γραμμή, ενώ τους βαθμούς που έδωσε το δεύτερο σχολείο τους καταχωρεί στη δεύτερη στήλη (κάτι που θα «έσπαγε» όλο το θέμα, ειδικά τα επόμενα ερωτήματα δ και ε θα έπαυαν να έχουν οποιοδήποτε νόημα).)
Η επιλογή μου ήταν να προσπαθήσω να ακολουθήσω μία όσο γίνεται πιο έμμεση και «διπλωματική» προσέγγιση. Συγκεκριμένα, ο χρήστης «σχολείο-i» δεν θα εισήγαγε ούτε όνομα ούτε αριθμό, αλλά ο ίδιος ο αλγόριθμος θα φρόντιζε σχεδόν για όλα, παρουσιάζοντάς του μόνο «νόμιμες» επιλογές. Η λύση μου (για την οποία ζητάω τη γνώμη σας) ήταν:
Για i από 1 μέχρι 20 ! ερώτημα γ.
Εμφάνισε Αρχή αξιολογήσεων από το σχολείο, A[ i ]
μ<-0
Όσο μ<5 επανάλαβε
j<-1
Όσο (μ<5) και (j<=20) επανάλαβε
! Όταν το μ πάρει την τιμή 5 σταματάνε και οι δύο Όσο, ενώ αν μ<5 και το j πάρει την τιμή 21 η πρώτη Όσο συνεχίζει.
Αν (i<>j) και (Β[i,j]=0) τότε
! i<>j ώστε να μην επιτραπεί αυτοαξιολόγηση. B[i,j]=0 ώστε να μην επιτραπεί και δεύτερη αξιολόγηση του ίδιου σχολείου.
Αρχή_επανάληψης
Εμφάνισε Το σχολείο, A[ j ], είναι μεταξύ των 5 που θα αξιολογήσετε?(Ναι/Όχι)
Διάβασε απ
Μέχρις_ότου απ=Ναι ή απ=Όχι
Αν απ=Ναι τότε
Αρχή_επανάληψης
Εμφάνισε Δώσε βαθμό
Διάβασε βαθ
Μέχρις_ότου (βαθ>=1) και (βαθ<=10)
B[i,j]<-βαθ
μ<μ+1 ! έγινε αξιολόγηση
Τέλος_αν
Τέλος_αν
j<-j+1
! Στη συνέχεια πήγαινε στην αρχή του εσωτερικού Όσο και ρώτα για το επόμενο σχολείο-j μέχρι να γίνουν 5 αξιολογήσεις ή μέχρι να
! εξαντληθούν τα 20 σχολεία.
Τέλος_επανάληψης
! Τώρα, πήγαινε στην αρχή του εξωτερικού Όσο και έλεγξε την τιμή του μ. Αν μ=5 τότε το σχολείο-i έχει ολοκληρώσει τις αξιολογήσεις του
! οπότε σταμάτα. Αν μ<5, πάρε τον πίνακα των σχολείων από την αρχή και συνέχισε να ρωτάς μέχρι το (αναποφάσιστο) σχολείο-i να δώσει
! επιτέλους και την 5η και τελευταία αξιολόγησή του.
Τέλος_επανάληψης
! Και τώρα που ξεμπέρδεψες με το συγκεκριμένο σχολείο, πήγαινε στο επόμενο σχολείο-i.
Τέλος_επανάληψης
Ελπίζω να μην τα είπα πολύ μπερδεμένα
έχω φτιάξει και μία παραλλαγή της λύσης με χρήση λογικής μεταβλητής, το «ζουμί» όμως παραμένει το ίδιο. Το θέμα είναι: Είχα δικαίωμα να το κάνω αυτό με τις ερωταπαντήσεις (Ναι/Όχι)?