Επιλογή Σελίδας

Ηλιακός άνεμος ονομάζεται η ροή σωματείων (κυρίως πρωτονίων) που εκπέμπονται από την εξωτερική «ατμόσφαιρα» του ήλιου, το ηλιακό στέμμα, τα οποία όπως αποδείχθηκε από τη διαστημική αποστολή Voyager Ι φτάνουν μέχρι τις εσχατιές του ηλιακού μας συστήματος. Στη γη, ο ηλιακός άνεμος έχει τεράστια επίπτωση στη δομή της ιονόσφαιρας, τις επικοινωνίες αλλά και τις μετεωρολογικές μεταβολές. Από το ξεκίνημα της διαστημικής εποχής (60′) με τους δορυφόρους της εποχής και ελάχιστη διαθεσιμότητα μνήμης (μερικές εκατοντάδες bytes η ανθρωπότητα προσπάθησε να τον μελετήσει. Συσκευές απίστευτης ευφυΐας αναπτύχτηκαν για την καταγραφή του ηλιακού ανέμου οι οποίες φυσικά είχαν απόλυτη ανάγκη τη συμπίεση της καταγραφόμενης πληροφορίας. Η βασική ιδέα ήταν να υπολογιστεί η κλίση της καμπύλης μεταβολής και αυτή να ενταμιευτεί στη μνήμη. Για να γίνει κάτι τέτοιο, και επειδή το φαινόμενο είχε πολλές διακυμάνσεις, ξεχωριστή σημασία έχει η εύρεση του σημείου ομαλής μεταβολής. Του σημείου δηλαδή εκείνου, όπου όλες οι προηγούμενες τιμές είναι μικρότερες και όλες οι επόμενες μεγαλύτερες.

Πρόβλημα:

Να γραφεί πρόγραμμα σε Γλώσσα το οποίο δοθείσης μιας ακολουθίας 128 ακεραίων  αριθμών, θα βρίσκει τον όρο της  ακολουθίας που όλοι οι προηγούμενοι του να είναι μικρότεροι του και όλοι οι επόμενοι του να είναι μεγαλύτεροι του. Αν υπάρχουν τέτοιοι όροι, να εκτυπώνεται ο μεγαλύτερος (τελευταίος στη χρονοσειρά).   Αν δεν υπάρχουν, να εκτυπώνεται «NOT FOUND». ΕΠΥ, 26ος ΠΔΠ (2014), Β’ Φάση (Θέμα Λυκείου

ΛΥΣΗ

Παράδειγμα 1 (για 10 αριθμούς): Παράδειγμα 2:
3
2
4
1
5
7
8
9
10
8
4
9
8
5
6
5
4
3
2
1
Οθόνη 7 Οθόνη NOT FOUND
ΠΡΟΓΡΑΜΜΑ ΑΣΚ14_ΠΑΡ_Β_ΠΙΝΑΚΕΣ_ΗΛΙΑΚΟΣ_ΑΝΕΜΟΣ_VOYAGER
ΣΤΑΘΕΡΕΣ
  Ν=10   ! εφαρμογή για 10 αριθμούς
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: i, j, ακέραιοι[Ν], μέγιστος                 
  ΛΟΓΙΚΕΣ: μικρότερος, μεγαλύτερος                     
ΑΡΧΗ
  ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ Ν
    ΔΙΑΒΑΣΕ ακέραιοι[i]   
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

  μέγιστος <-- 0
  
  ! για κάθε αριθμό ψάχνουμε ποιος ΔΕΝ πληρεί κάποιο κριτήριο
  ! ώστε να τον απορρίψουμε και να περάσουμε στον επόμενο
  i <-- 1 
  ΟΣΟ i<=Ν ΕΠΑΝΑΛΑΒΕ
    μικρότερος <-- ΑΛΗΘΗΣ
    μεγαλύτερος <-- ΑΛΗΘΗΣ

    ! Αναζήτηση μεγαλύτερου-ίσου στους προηγούμενους αριθμούς
    j <-- 1
    ΟΣΟ j < i ΚΑΙ μικρότερος = ΑΛΗΘΗΣ  ΕΠΑΝΑΛΑΒΕ              
      ΑΝ ακέραιοι[j] >= ακέραιοι[i] ΤΟΤΕ
        μικρότερος <-- ΨΕΥΔΗΣ
      ΑΛΛΙΩΣ
        j <-- j + 1                              
      ΤΕΛΟΣ_ΑΝ    
    ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

    ! Αναζήτηση μικρότερου-ίσου στους επόμενους αριθμούς
    j <-- i + 1   
    ΟΣΟ j <= Ν ΚΑΙ μικρότερος = ΑΛΗΘΗΣ ΚΑΙ μεγαλύτερος = ΑΛΗΘΗΣ ΕΠΑΝΑΛΑΒΕ
      ΑΝ ακέραιοι[j] <= ακέραιοι[i] ΤΟΤΕ
        μεγαλύτερος <-- ΨΕΥΔΗΣ
      ΑΛΛΙΩΣ 
        j <-- j+1
      ΤΕΛΟΣ_ΑΝ
    ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

    ! Εύρεση μεγίστου αριθμού
    ΑΝ μικρότερος = ΑΛΗΘΗΣ ΚΑΙ μεγαλύτερος = ΑΛΗΘΗΣ ΤΟΤΕ
      ΑΝ μέγιστος < ακέραιοι[i] ΤΟΤΕ
        μέγιστος <-- ακέραιοι[i]
      ΤΕΛΟΣ_ΑΝ
    ΤΕΛΟΣ_ΑΝ

    i <-- i + 1
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

  ΑΝ μέγιστος = 0 ΤΟΤΕ
    ΓΡΑΨΕ 'NOT FOUND'
  ΑΛΛΙΩΣ
    ΓΡΑΨΕ μέγιστος
  ΤΕΛΟΣ_ΑΝ

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





 

Share This