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

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




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

Εγγραφή: Πέμ 22 Απρ 2004 11:16 am
Δημοσιεύσεις: 60
Τοποθεσία: Θεσσαλονίκη
Syntax: [ Download ] [ Hide ]
! =====================================================================================================
! Να γίνει πρόγραμμα το οποίο να δέχεται τους βαθμούς μιας τάξης 15 μαθητών στο μάθημα της φυσικής
! και στη συνέχεια να εμφανίζει το βαθμό που παρατηρήθηκε τις περισσότερες φορές (επικρατούσα τιμή),
! όπως και πόσες φορές εμφανίστηκε. Θεωρήστε ότι οι βαθμοί είναι ακέραιοι και ανήκουν στο διάστημα 1-20.
! Στο τέλος να παρουσιάζει μονο τους διαφορετικούς βαθμούς που εμφανίστηκαν στην τάξη κατά αύξουσα σειρά.
! =====================================================================================================


ΠΡΟΓΡΑΜΜΑ Επικρατέστερος_Βαθμός
ΣΤΑΘΕΡΕΣ
  N=15
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: i,Β[N],βαθμός,ΣΥΧΝ[20],ΜΑΧ
ΑΡΧΗ

  ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ N
    ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
      ΓΡΑΨΕ 'Δώσε το βαθμό του ',i,'ου μαθητή'
      ΔΙΑΒΑΣΕ Β[i]
    ΜΕΧΡΙΣ_ΟΤΟΥ (Β[i]>=1) ΚΑΙ (Β[i]<=20)
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 20
    ΣΥΧΝ[i] <-- 0        ! χρειαζόμαστε έναν πίνακα 20 θέσεων, όπου πχ στη θέση 7,
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ       ! θα έχει την πληροφορία πόσες φορές εμφανίστηκε ο βαθμός 7

 ! ********  υπολογισμός συχνότητας εμφάνισης βαθμών *** 1ος τρόπος ***********************

  ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ N                      ! ο αλγόριθμος αυτός είναι αρκετά αργός
    ΓΙΑ βαθμός ΑΠΟ 1 ΜΕΧΡΙ 20              ! αλλά σχετικά εύκολος για να τον υλοποιήσει κάποιος
      ΑΝ Β[i]=βαθμός ΤΟΤΕ                  ! ακόμη και αν δεν τον έχει δει ποτε !
        ΣΥΧΝ[βαθμός] <-- ΣΥΧΝ[βαθμός] + 1
      ΤΕΛΟΣ_ΑΝ
    ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ                         ! συνολικά απαιτούνται Ν*20 επαναλήψεις

! ****************************************************************************************

  ΓΡΑΨΕ  'Οι βαθμοί που εμφανίστηκαν είναι οι παρακάτω'
  ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ N
    ΓΡΑΨΕ_ Β[i],' '
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  ΓΡΑΨΕ
  ΓΡΑΨΕ

  ΓΡΑΨΕ  'Οι διαφορετικοί βαθμοί που εμφανίστηκαν είναι οι παρακάτω κατά αύξουσα σειρα'

  ΜΑΧ <-- ΣΥΧΝ[1]
  ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 20
    ΑΝ ΣΥΧΝ[i]>ΜΑΧ ΤΟΤΕ
      ΜΑΧ <-- ΣΥΧΝ[i]
    ΤΕΛΟΣ_ΑΝ
    ΑΝ ΣΥΧΝ[i]<>0 ΤΟΤΕ
      ΓΡΑΨΕ_ i,' '
    ΤΕΛΟΣ_ΑΝ
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

  ΓΡΑΨΕ
  ΓΡΑΨΕ
  ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 20
    ΑΝ ΣΥΧΝ[i]=ΜΑΧ ΤΟΤΕ
      ΓΡΑΨΕ 'Ο βαθμός που παρατηρήθηκε περισσότερες φορές ήταν ο ',i,' με συχνότητα ',  ΜΑΧ
    ΤΕΛΟΣ_ΑΝ
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

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


Syntax: [ Download ] [ Hide ]
! ********  υπολογισμός συχνότητας εμφάνισης βαθμών *** 2ος τρόπος ***********************

                        ! ο αλγόριθμος αυτός είναι πιο γρήγορος
                        ! αφού στατιστικά απαιτούνται λιγότερες από Ν*20 επαναλήψεις

                                     ! είναι αρκετά γρήγορος αν πχ οι βαθμοί της τάξης είναι χαμηλοί <10
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ N                  ! αν οι βαθμοί της τάξης είναι υψηλοί >10 μπορούμε να θέσουμε:
  βαθμός <-- 1                       !   βαθμός <-- 20
  ΟΣΟ (βαθμός<>Β[i]) ΕΠΑΝΑΛΑΒΕ       !   ΟΣΟ (βαθμός<>Β[i]) ΕΠΑΝΑΛΑΒΕ
    βαθμός <-- βαθμός+1              !      βαθμός <-- βαθμός-1
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ                   !   ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  ΣΥΧΝ[βαθμός] <-- ΣΥΧΝ[βαθμός] + 1
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

! ****************************************************************************************
 


Syntax: [ Download ] [ Hide ]
! ********  υπολογισμός συχνότητας εμφάνισης βαθμών *** 3ος τρόπος ***********************


ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ Ν                 ! ο αλγόριθμος αυτός είναι ο πιο γρήγορος
  ΣΥΧΝ[Β[i]] <-- ΣΥΧΝ[Β[i]]+1       ! αφού συνολικά απαιτούνται Ν επαναλήψεις
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ                    ! αλλά μάλλον είναι δύσκολη έμπνευση για κάποιον
                                    ! που δεν τον έχει δει ποτέ !
! ****************************************************************************************
 


Μια μικρή παράλαγη του παραπάνω προβλήματος είναι η επόμενη, η οποία απαιτεί ενα μικρό μετασχηματισμό στον πίνακα συχνοτήτων, όπως και κατά την εμφάνιση των αποτελεσμάτων.

Syntax: [ Download ] [ Hide ]
! =========================================================================================================================
! Να γίνει πρόγραμμα το οποίο να δέχεται τις θερμοκρασίες της πόλης της Μόσχας σε βαθμούς Κελσίου (στις 12 το μεσημέρι)
! για διάστημα 2 εβδομάδων και στη συνέχεια να εμφανίζει τη θερμοκρασία που παρατηρήθηκε τις περισσότερες ημέρες (επικρατούσα τιμή),
! όπως και πόσες φορές εμφανίστηκε.
! Θεωρήστε ότι οι θερμοκρασίες λαμβάνουν μόνο ακέραιες τιμές και ανήκουν στο διάστημα -20 έως 30.
! Στο τέλος να παρουσιάζονται μονο οι διαφορετικές θερμοκρασίες που εμφανίστηκαν κατά φθίνουσα σειρά.
! ==========================================================================================================================


ΠΡΟΓΡΑΜΜΑ Συχνότερη_Θερμοκρασία
ΣΤΑΘΕΡΕΣ
  N=14
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: i,θ[N],ΣΥΧΝ[51],ΜΑΧ
ΑΡΧΗ

  ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ N
    ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
      ΓΡΑΨΕ 'Δώσε τη θερμοκρασία της ',i,'ης ημέρας σε oC'
      ΔΙΑΒΑΣΕ Θ[i]
    ΜΕΧΡΙΣ_ΟΤΟΥ (θ[i]>=-20) ΚΑΙ (θ[i]<=30)
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 51
    ΣΥΧΝ[i] <-- 0        ! χρειαζόμαστε έναν πίνακα 51 θέσεων, όπου πχ στη θέση 1,
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ       ! θα έχει την πληροφορία πόσες φορές εμφανίστηκε η θερμοκρασία -20,
                         ! ενώ πχ στη θέση 51 αντιστοιχεί το πλήθος εμφάνισης της θερμοκρασίας 30

  ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ N
    ΣΥΧΝ[θ[i]+21] <-- ΣΥΧΝ[θ[i]+21]+1
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

  ΓΡΑΨΕ  'Οι θερμοκρασίες που εμφανίστηκαν είναι οι παρακάτω'
  ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ N
    ΓΡΑΨΕ_ θ[i],' '
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  ΓΡΑΨΕ
  ΓΡΑΨΕ

  ΓΡΑΨΕ  'Οι διαφορετικές θερμοκρασίες που εμφανίστηκαν είναι οι εξής κατά φθίνουσα σειρά'

  ΜΑΧ <-- ΣΥΧΝ[1]
  ΓΙΑ i ΑΠΟ 51 ΜΕΧΡΙ 1 ΜΕ ΒΗΜΑ -1
    ΑΝ ΣΥΧΝ[i]>ΜΑΧ ΤΟΤΕ
      ΜΑΧ <-- ΣΥΧΝ[i]
    ΤΕΛΟΣ_ΑΝ
    ΑΝ ΣΥΧΝ[i]<>0 ΤΟΤΕ
      ΓΡΑΨΕ_ i-21,' '
    ΤΕΛΟΣ_ΑΝ
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

  ΓΡΑΨΕ
  ΓΡΑΨΕ
  ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 51
    ΑΝ ΣΥΧΝ[i]=ΜΑΧ ΤΟΤΕ
      ΓΡΑΨΕ 'Η θερμοκρασία που παρατηρήθηκε τις περισσότερες μέρες ήταν η ',i-21,' C με συχνότητα ',  ΜΑΧ
    ΤΕΛΟΣ_ΑΝ
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

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



 


Τι γίνεται όμως στην περίπτωση που οι βαθμοί - θερμοκρασίες δεν είναι ακέραιες ποσότητες, και επιθυμούμε να βρούμε την επικρατούσα τιμή? Στην περίπτωση αυτή δεν μπορεί να χρησιμοποιηθεί ο πίνακας ΣΥΧΝ[Ν]...!
Δείτε ανάλογη άσκηση στη διεύθυνση http://spinet.gr/glossomatheia/programs ... .php?t=190


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

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


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

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


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

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