Μετάβαση στο κύριο περιεχόμενο

Πληροφορική Γ' Λυκείου: Επαναληπτική Άσκηση #16

Η δέκατη έκτη επαναληπτική άσκηση για το μάθημα της Πληροφορικής (πρώην ΑΕΠΠ) σχετίζεται με μία διαφορετική χρήση της δυαδικής αναζήτησης. Συνήθως η δυαδική αναζήτηση χρησιμοποιείται σε έναν ταξινομημένο πίνακα αλλά στην παρούσα άσκηση ζητείται να χρησιμοποιηθεί σε έναν αταξινόμητο πίνακα. Καλή προσπάθεια!

16η Επαναληπτική άσκηση για το μάθημα της Πληροφορικής

16η Επαναληπτική Άσκηση

Τίτλος: Τιμές μετοχών
Κατηγορία: Δυαδική Αναζήτηση

Επενδυτής κατέγραψε την τιμή της μετοχής μίας εταιρείας τις τελευταίες τριάντα ημέρες. Αυτό που κυρίως τον ενδιαφέρει είναι οι ημέρες στις οποίες η τιμή της μετοχής έχει τοπικό μέγιστο (είναι δηλαδή μεγαλύτερη ή ίση τόσο από την τιμή της μετοχής την αμέσως προηγούμενη ημέρα όσο και από την τιμή της μετοχής την αμέσως επόμενη ημέρα). Θέλει όμως να καταφέρει να βρει μία τέτοια ημέρα χωρίς να ελέγξει την τιμή της μετοχής όλες τις ημέρες.

Να γραφεί πρόγραμμα το οποίο:
α) Θα διαβάζει την τιμή της μετοχής τις τελευταίες τριάντα ημέρες και θα την αποθηκεύει σε μονοδιάστατο πίνακα και
β) Θα βρίσκει, με χρήση δυαδικής αναζήτησης, μία οποιαδήποτε ημέρα στην οποία η τιμή της μετοχής παρουσιάζει τοπικό μέγιστο.

Λύση 16ης επαναληπτικής άσκησης

ΠΡΟΓΡΑΜΜΑ Τιμή_Μετοχής
ΜΕΤΑΒΛΗΤΕΣ 
  ΠΡΑΓΜΑΤΙΚΕΣ: ΤΙΜΗ[30] 
  ΑΚΕΡΑΙΕΣ: Ι, ΑΡΧ, ΤΕΛΟΣ, ΜΕΣΗ
  ΛΟΓΙΚΕΣ: ΒΡΕΘΗΚΕ
ΑΡΧΗ 

  ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ 30
    ΔΙΑΒΑΣΕ ΤΙΜΗ[Ι] 
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

  ΑΡΧ <- 1
  ΤΕΛΟΣ <- 30
  ΒΡΕΘΗΚΕ <- ΨΕΥΔΗΣ

  ΟΣΟ ΑΡΧ <= ΤΕΛΟΣ ΚΑΙ ΟΧΙ ΒΡΕΘΗΚΕ ΕΠΑΝΑΛΑΒΕ
    ΜΕΣΗ <- ( ΑΡΧ + ΤΕΛΟΣ) div 2

    ΑΝ ΜΕΣΗ = 1 ΤΟΤΕ
      ΑΝ ΤΙΜΗ[ΜΕΣΗ + 1] <= ΤΙΜΗ[ΜΕΣΗ] ΤΟΤΕ
        ΒΡΕΘΗΚΕ <- ΑΛΗΘΗΣ
      ΑΛΛΙΩΣ
        ΑΡΧ <- ΜΕΣΗ + 1
      ΤΕΛΟΣ_ΑΝ
    ΑΛΛΙΩΣ_ΑΝ ΜΕΣΗ = 30 ΤΟΤΕ
      ΑΝ ΤΙΜΗ[ΜΕΣΗ - 1] <= ΤΙΜΗ[ΜΕΣΗ] ΤΟΤΕ
        ΒΡΕΘΗΚΕ <- ΑΛΗΘΗΣ
      ΑΛΛΙΩΣ
        ΑΡΧ <- ΜΕΣΗ + 1
      ΤΕΛΟΣ_ΑΝ
    ΑΛΛΙΩΣ_ΑΝ ΤΙΜΗ[ΜΕΣΗ - 1] <= ΤΙΜΗ[ΜΕΣΗ] ΚΑΙ ΤΙΜΗ[ΜΕΣΗ + 1] <= ΤΙΜΗ[ΜΕΣΗ] ΤΟΤΕ
      ΒΡΕΘΗΚΕ <- ΑΛΗΘΗΣ
    ΑΛΛΙΩΣ_ΑΝ ΤΙΜΗ[ΜΕΣΗ - 1] > ΤΙΜΗ[ΜΕΣΗ] ΤΟΤΕ
      ΤΕΛΟΣ <- ΜΕΣΗ - 1
    ΑΛΛΙΩΣ
      ΑΡΧ <- ΜΕΣΗ + 1
    ΤΕΛΟΣ_ΑΝ

  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

  ΓΡΑΨΕ 'Το ζητούμενο στοιχείο είναι στη θέση: ', ΜΕΣΗ

ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ Τιμή_Μετοχής


Όλες τις επαναληπτικές ασκήσεις για το μάθημα της Πληροφορικής (πρώην ΑΕΠΠ) μπορείτε να τις βρείτε στο παρακάτω άρθρο:

Σχόλια

Δημοφιλείς αναρτήσεις από αυτό το ιστολόγιο

30 επαναληπτικές ασκήσεις για το μάθημα της Πληροφορικής της Γ' Λυκείου

10 Επαναληπτικές Ασκήσεις στην Πληροφορική (2021)

Πληροφορική Γ' Λυκείου: Επαναληπτική Άσκηση #6 (2021)