Τώρα είναι Πέμ 28 Μαρ 2024 10:18 pm

Όλοι οι χρόνοι είναι UTC + 2 ώρες [ DST ]




Δημιουργία νέου θέματος Απαντήστε στο θέμα  [ 1 Δημοσίευση ] 
Συγγραφέας Μήνυμα
 Θέμα δημοσίευσης: Διαγωνισμός τραγουδιού
ΔημοσίευσηΔημοσιεύτηκε: Τετ 19 Μάιος 2004 04:15 pm 
Χωρίς σύνδεση

Εγγραφή: Πέμ 22 Απρ 2004 11:16 am
Δημοσιεύσεις: 60
Τοποθεσία: Θεσσαλονίκη
Syntax: [ Download ] [ Hide ]
!===================================================================================================================
! Ένας διαγωνισμός τραγουδιού στην Ευρώπη διεξάγεται ως εξής:
! Γίνεται μία πρώτη ακρόαση των τραγουδιών κάθε χώρας από την Κριτική Επιτροπή,
! η οποία δίνει κάποιους βαθμούς σε κάθε τραγούδι (από 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], ' '
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ




 


Κορυφή
 Προφίλ  
Απάντηση με παράθεση  
Τελευταίες δημοσιεύσεις:  Ταξινόμηση ανά  
Δημιουργία νέου θέματος Απαντήστε στο θέμα  [ 1 Δημοσίευση ] 

Όλοι οι χρόνοι είναι UTC + 2 ώρες [ DST ]


Μέλη σε σύνδεση

Μέλη σε αυτή την Δ. Συζήτηση : Δεν υπάρχουν εγγεγραμμένα μέλη και 1 επισκέπτης


Δεν μπορείτε να δημοσιεύετε νέα θέματα σε αυτή τη Δ. Συζήτηση
Δεν μπορείτε να απαντάτε σε θέματα σε αυτή τη Δ. Συζήτηση
Δεν μπορείτε να επεξεργάζεστε τις δημοσιεύσεις σας σε αυτή τη Δ. Συζήτηση
Δεν μπορείτε να διαγράφετε τις δημοσιεύσεις σας σε αυτή τη Δ. Συζήτηση
Δεν μπορείτε να επισυνάπτετε αρχεία σε αυτή τη Δ. Συζήτηση

Αναζήτηση για:
Μετάβαση σε:  
cron
Προβολές: