Παράδειγμα 1, Κεφάλαιο 10, Τετράδιο μαθητή (εργασιών), Υπολογισμός Μέσης Τιμής, Τυπικής Απόκλισης, Ταξινόμηση, Διάμεσος

Πολλά από τα προγράμματα που αναπτύχθηκαν στα προηγούμενα κεφάλαια μπορούν να γραφούν καλύτερα με τη χρήση υποπρογραμμάτων. Εδώ θα δούμε το πρόγραμμα που υπολογίζει τα βασικά στατιστικά μεγέθη, τη μέση τιμή, την τυπική απόκλιση και τη διάμεσο τιμή που παρουσιάστηκε στο βιβλίο σου στο κεφάλαιο 9. Το πρόγραμμα χρησιμοποιεί τις εξής διαδικασίες και συναρτήσεις:

Υπολόγισε_ΜΟ_ΤυπΑπ: Υπολογίζει τη μέση τιμή και την τυπική απόκλιση ακεραίων αριθμών. Το τμήμα αυτό θα μπορούσε να υλοποιηθεί και με δύο συναρτήσεις, μία για τον υπολογισμό της μέσης τιμής και μίας δεύτερης για τον υπολογισμό της τυπικής απόκλισης.

Ταξινόμησε: Η διαδικασία αυτή ταξινομεί τα στοιχεία του πίνακα χρησιμοποιώντας μία παραλλαγή του αλγορίθμου που παρουσιάστηκε στο βιβλίο σου.

Υπολογισμός_Διαμέσου: Πραγματική συνάρτηση η οποία υπολογίζει τη διάμεσο τιμή. (περισσότερα…)

Παράδειγμα 2, Κεφάλαιο 10, Τετράδιο μαθητή (εργασιών), Πύργος του Ανόι

Ένα χαρακτηριστικό πρόβλημα το οποίο λύνεται εύκολα με τη χρήση αναδρομής, ενώ είναι πολύ δύσκολο με επαναληπτική διαδικασία, είναι οι πύργοι του Ανόι. Στο πρόβλημα των πύργων του Ανόι υπάρχουν τρεις στύλοι και στον πρώτο από αυτούς βρίσκονται περασμένοι δίσκοι διαφορετικής διαμέτρου, έτσι ώστε οι διάμετροι των δίσκων να μικραίνουν από κάτω προς τα πάνω. Όλοι οι δίσκοι, που βρίσκονται στον πρώτο στύλο, πρέπει να μεταφερθούν στο τρίτο ακολουθώντας τους εξής κανόνες:

  • Όταν ένας δίσκος μεταφέρεται, πρέπει να τοποθετηθεί σε έναν από τους τρεις στύλους.
  • Μόνο ένας δίσκος μπορεί να μεταφερθεί κάθε φορά και πρέπει να βρίσκεται στην κορυφή του στύλου.
  • Ένας μεγαλύτερος δίσκος δεν πρέπει να τοποθετηθεί πάνω από ένα μικρότερο.

Το παιγνίδι είναι σχετικά εύκολο να λυθεί για μικρό αριθμό δίσκων, τρεις-τέσσερις, αλλά δυσκολεύει εξαιρετικά όσο ο αριθμός των δίσκων αυξάνεται. Η γενική διατύπωση της λύσης όμως με χρήση αναδρομικής διαδικασίας είναι αρκετά απλή και περιγράφεται από τα παρακάτω βήματα:

  • Αν υπάρχει μόνο ένας δίσκος, τότε μεταφέρεται από το Στύλο1 στο Στύλο3. Το πρόβλημα λοιπόν έχει λύση για Ν = 1.
  • Αν υπάρχουν δύο δίσκοι, τότε χρειάζονται τρεις απλές κινήσεις:
    • Ο πρώτος δίσκος από το Στύλο1 μεταφέρεται στο Στύλο2.
    • Ο δεύτερος δίσκος από το Στύλο2 μεταφέρεται στο Στύλο3.
    • Ο δίσκος από το Στύλο2 μεταφέρεται στο Στύλο3.
  • Υποθέτουμε ότι η λύση υπάρχει για Ν-1 δίσκους, τότε για Ν δίσκους η λύση δίνεται αναδρομικά: l
  • Οι Ν-1 δίσκοι μεταφέρονται από το Στύλο1 στο Στύλο2, χρησιμοποιώντας το Στύλο3 ως βοηθητικό. l
  • Ο τελευταίος δίσκος, που είναι ο τελευταίος άρα και ο μεγαλύτερος, μεταφέρεται από το Στύλο1 στο Στύλο3.
  • Οι Ν-1 δίσκοι μεταφέρονται από το Στύλο2 στο Στύλο3, χρησιμοποιώντας το Στύλο1 ως βοηθητικό. Το πρόγραμμα που λύνει τους Πύργους του Ανόι είναι το ακόλουθο:

(περισσότερα…)

Παράδειγμα 2, Κεφάλαιο 9, Βιβλίο, Στατιστικά μεγέθη στοιχείων πίνακα, μέση τιμή, τυπική απόκλιση, διάμεσος τιμή

Να γραφεί πρόγραμμα το οποίο να υπολογίζει τα βασικά στατιστικά μεγέθη, τη μέση τιμή, την τυπική απόκλιση και τη διάμεσο τιμή Ν ακεραίων αριθμών, όπου το Ν είναι από 2 μέχρι 100.
Τα δεδομένα εισάγονται από το πληκτρολόγιο και καταχωρούνται στον πίνακα Χ.

Η μέση τιμή μ δίνεται από τον τύπο  

Η τυπική απόκλιση σ δίνεται από τον τύπο 

Για να βρεθεί η διάμεσος τιμή πρέπει υποχρεωτικά οι αριθμοί να ταξινομηθούν κατά αύξουσα σειρά. Τότε διάμεσος τιμή, είναι η τιμή για την οποία οι μισοί αριθμοί είναι μικρότεροι και οι άλλοι μισοί μεγαλύτεροι. Στην περίπτωση που το πλήθος των αριθμών είναι περιττό, τότε διάμεσος είναι ο μεσαίος, ενώ στην περίπτωση που είναι άρτιο, τότε διάμεσος είναι το ημιάθροισμα των δύο μεσαίων αριθμών. Η ταξινόμηση των στοιχείων γίνεται με τη μέθοδο ταξινόμησης ευθείας ανταλλαγής, η οποία παρουσιάστηκε στο κεφάλαιο 3.

ΠΡΟΓΡΑΜΜΑ Στατιστική 
ΜΕΤΑΒΛΗΤΕΣ 
ΑΚΕΡΑΙΕΣ : i, Ν, Χ[100], Άθροισμα, Άθροισμα_2, Βοηθητική, ΝΖ, ΝΜ, j ! Παρόραμα δεν δηλώθηκε η j
ΠΡΑΓΜΑΤΙΚΕΣ: ΜΤ, Τυπ_Απόκλιση, Διάμεσος 
ΑΡΧΗ 
! Εισαγωγή δεδομένων 
ΓΡΑΨΕ 'Δώσε το πλήθος των αριθμών (μέγιστο 100)' 
ΔΙΆΒΑΣΕ Ν 
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ Ν 
    ΓΡΑΨΕ 'Δώσε τον ',i,'-το αριθμό' 
    ΔΙΑΒΑΣΕ Χ[i] 
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ 
! Υπολογισμός αθροισμάτων 
Άθροισμα <-- 0 
Άθροισμα_2 <-- 0 
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ Ν 
   ! ΓΡΑΨΕ 'Δώσε τον',i,'-το αριθμό'  Παρόραμα - Ξαναδιαβάζει τους αριθμούς
   ! ΔΙΑΒΑΣΕ Χ[i] 
    Άθροισμα <-- Άθροισμα + Χ[i] 
    Άθροισμα_2 <-- Άθροισμα_2 + Χ[i]^2 
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ 
! Υπολογισμός μέσου όρου 
ΜΤ <-- Άθροισμα/Ν 
!Υπολογισμός τυπικής απόκλισης 
Τυπ_Απόκλιση <-- Τ_Ρ(Άθροισμα_2/Ν - ΜΤ^2) 
!Ταξινόμηση των στοιχείων του πίνακα 
ΓΙΑ i ΑΠΟ 2 ΜΕΧΡΙ Ν 
    ΓΙΑ j ΑΠΟ Ν ΜΕΧΡΙ i ΜΕ ΒΗΜΑ -1 
       ΑΝ Χ[j-1] > Χ[j] ΤΟΤΕ 
! Αντιμετάθεση των στοιχείων j και j-1 
      Βοηθητική <-- Χ[j-1] 
      Χ[j-i] <-- Χ[j] 
      Χ[j] <-- Βοηθητική 
      ΤΕΛΟΣ_ΑΝ 
    ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ! j 
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ! i 
!Υπολογισμός διαμέσου
ΝΖ <--Ν DIV 2
ΝΜ <--(Ν DIV 2) + 1
ΑΝ Ν MOD 2 =0 ΤΟΤΕ 
   Διάμεσος <-- (Χ[Ν div 2]+Χ[(Ν div 2)]+1)/2 !Παρόραμα - Πρόβλημα με την δήλωση τύπου του Ν
ΑΛΛΙΩΣ 
   Διάμεσος <-- Χ[(Ν+1)div 2] ! Παρόραμα
ΤΕΛΟΣ_ΑΝ 
! Εκτύπωση αποτελεσμάτων 
ΓΡΑΨΕ 'ΑΠΟΤΕΛΕΣΜΑΤΑ' 
ΓΡΑΨΕ '============' 
ΓΡΑΨΕ 'Πλήθος τιμών =', Ν 
ΓΡΑΨΕ 'Μέση τιμή = ', ΜΤ 
ΓΡΑΨΕ 'Τυπική απόκλιση = ', Τυπ_Απόκλιση 
ΓΡΑΨΕ 'Διάμεσος = ', Διάμεσος 
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

Παράδειγμα 2, Κεφάλαιο 8, Βιβλίο, Άθροισμα και Πλήθος αριθμών

Να γραφεί πρόγραμμα το οποίο διαβάζει από το πληκτρολόγιο μία σειρά μετρήσεων, ακεραίων μη μηδενικών αριθμών, υπολογίζει και τυπώνει το άθροισμά τους καθώς και το μέσο τους όρο. Ως τέλος της διαδικασίας εισαγωγής στοιχείων χρησιμοποιείται η τιμή 0.

ΠΡΟΓΡΑΜΜΑ Άθροισμα1  !Παρόραμα - ίδιο όνομα μεταβλητής
ΜΕΤΑΒΛΗΤΕΣ 
ΑΚΕΡΑΙΕΣ:Χ, Άθροισμα, Πλήθος 
ΠΡΑΓΜΑΤΙΚΕΣ: ΜΟ 
ΑΡΧΗ 
Πλήθος <--0 
Άθροισμα <-- 0 
ΓΡΑΨΕ 'Δώσε Αριθμό' 
ΔΙΑΒΑΣΕ Χ 
ΟΣΟ Χ<>0 ΕΠΑΝΑΛΑΒΕ 
    Άθροισμα <-- Άθροισμα+Χ 
    Πλήθος <-- Πλήθος+1 
    ΓΡΑΨΕ 'Δώσε Αριθμό' 
    ΔΙΑΒΑΣΕ Χ 
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΑΝ Πλήθος >0 ΤΟΤΕ  
   ΜΟ <-- Άθροισμα/Πλήθος 
   ΓΡΑΨΕ 'Το Άθροισμα είναι : ', Άθροισμα 
   ΓΡΑΨΕ 'Ο Μέσος όρος είναι : ', ΜΟ
ΑΛΛΙΩΣ 
   ΓΡΑΨΕ 'Δεν δόθηκαν στοιχεία' 
ΤΕΛΟΣ_ΑΝ 
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

Παρατηρήσεις:

Η χρήση τιμών για τον τερματισμό μίας επαναληπτικής διαδικασίας, όπως στο παράδειγμα η αυθαίρετη επιλογή του 0, είναι συνήθης στον προγραμματισμό. Η τιμή αυτή ορίζεται από τον προγραμματιστή και αποτελεί μια σύμβαση για το τέλος του προγράμματος. Η τιμή αυτή είναι τέτοια, ώστε να μην είναι λογικά σωστή για το πρόβλημα, για παράδειγμα η τιμή 0 αποκλείεται από τις μετρήσεις σύμφωνα με την εκφώνηση του παραδείγματος. Η τιμή αυτή συχνά αποκαλείται “τιμή φρουρός“.

*Το όνομα του προγράμματος Άθροισμα (όπως υπάρχει στο βιβλίο) έχει το ίδιο όνομα με μεταβλητή που χρησιμοποιείται μέσα στο πρόγραμμα. (παρόραμα). Έγινε Άθροισμα1.