!===================================================================================================================
! Ένας διαγωνισμός τραγουδιού στην Ευρώπη διεξάγεται ως εξής:
! Γίνεται μία πρώτη ακρόαση των τραγουδιών κάθε χώρας από την Κριτική Επιτροπή,
! η οποία δίνει κάποιους βαθμούς σε κάθε τραγούδι (από 1-100).
! Έστω ότι είναι γνωστοί οι βαθμοί που δόθηκαν στο τραγούδι κάθε χώρας.
! (Δημιουργήστε ένα πίνακα με βαθμολογίες 1-100)
! Να γραφεί ένας αλγόριθμος που θα επιλέγει για τη συνέχεια στη δεύτερη φάση του διαγωνισμού,
! τις χώρες με τη μεγαλύτερη βαθμολογία κάθε φορά ώστε το άθροισμα της βαθμολογίας όλων των τραγουδιών
! που θα προχωρήσουν στη δεύτερη φάση να είναι μικρότερο από 1000 βαθμούς.
! Θεωρήστε ότι οι χώρες είναι αρχικά 25. Να εμφανίσετε ποιες χώρες προκρίνονται και το συνολικό άθροισμα βαθμών τους.
!
! (Δραστηριότητα ΔΣ5, από το σχολικό ΤΕΤΡΑΔΙΟ του ΜΑΘΗΤΗ, σελιδα 43, κεφ. 4, Τεχνικές Σχεδίασης Αλγορίθμων)
!====================================================================================================================
ΠΡΟΓΡΑΜΜΑ Διαγωνισμός_τραγουδιού
ΣΤΑΘΕΡΕΣ
Ν=25
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ: i,j,Β[Ν],temp,sum, Χ[Ν]
ΑΡΧΗ
ΓΡΑΨΕ '---- αρχική βαθμολογία ------- '
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ Ν
Χ[i] <-- i ! δημιουργία ενός πίνακα, με τον αριθμό κάθε χώρας (θα μπορούσαμε να έχουμε τα ονόματα τους)
Β[i] <-- 70 + i + Α_Μ ((-1)^i)*2 ! δημιουργία ενός πίνακα, με τις βαθμολογίες κάθε χώρας
ΓΡΑΨΕ_ Β[i],' '
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
! προκρίνονται οι χώρες με τη μεγαλύτερη βαθμολογία
ΓΙΑ i ΑΠΟ 2 ΜΕΧΡΙ Ν ! επομένως χρείαζεται να τις ταξινομήσουμε κατά φθίνουσα βαθμολογία
ΓΙΑ j ΑΠΟ Ν ΜΕΧΡΙ i ΜΕ ΒΗΜΑ -1
ΑΝ Β[j-1]<Β[j] ΤΟΤΕ
temp <-- Β[j]
Β[j] <-- Β[j-1]
Β[j-1] <-- temp
temp <-- Χ[j] ! Η αλλαγή της θέσης των βαθμών, πρέπει να συνοδεύεται με παράλληλη αλλαγή του αριθμού τους
Χ[j] <-- Χ[j-1]
Χ[j-1] <-- temp
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΓΡΑΨΕ
ΓΡΑΨΕ
ΓΡΑΨΕ '---- ταξινομημένη βαθμολογία ------- '
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ Ν ! Εμφανίζουμε το νέο πίνακα ταξινομημένο
ΓΡΑΨΕ_ Β[i],' '
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΓΡΑΨΕ
sum <-- 0
i <-- 0 ! Επιλέγουμε τις καλύτερες χώρες μέχρι το άθροισμα των βαθμών να ξεπεράσει το 1000
ΟΣΟ (sum<=1000) ΚΑΙ (i<Ν) ΕΠΑΝΑΛΑΒΕ
i <-- i+1 ! μετρητής χωρών που προκρίνονται
sum <-- sum+Β[i]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
sum <-- sum-Β[i] !Απαιτούμε όμως άθροισμα <1000 επομένως αφαιρούμε την τελευταία βαθμολογία
i <-- i-1 ! αφού σιγουρα sum>=1000 και μειώνουμε το πλήθος των χωρών κατα 1
ΓΡΑΨΕ ! παρουσίαση αποτελεσμάτων
ΓΡΑΨΕ_ 'Προκρίνονται ',i, ' χώρες '
ΓΡΑΨΕ 'με αθροισμα βαθμών: ',sum
ΓΡΑΨΕ
ΓΡΑΨΕ 'Οι χώρες που προκρίνονται είναι οι παρακάτω:'
ΓΙΑ j ΑΠΟ 1 ΜΕΧΡΙ i
ΓΡΑΨΕ_ Χ[j], ' '
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΓΡΑΨΕ
ΓΡΑΨΕ
ΓΡΑΨΕ 'με βαθμολογίες αντίστοιχα:'
ΓΙΑ j ΑΠΟ 1 ΜΕΧΡΙ i
ΓΡΑΨΕ_ Β[j], ' '
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ