Αποτελεί πλέον κοινή παραδοχή ότι το υφιστάμενο μοντέλο ανάπτυξης, πέραν όλων των άλλων στρεβλώσεων προκαλεί μια τρομακτική υποβάθμιση στο περιβάλλον του πλανήτη μας. Η μείωση της καύσης υδρογονανθράκων και ο περιορισμός της ποσότητας του εκπεμπόμενου διοξειδίου του άνθρακα (CO2), αποτελούν πρώτιστη προτεραιότητα για την ανθρωπότητα. Η χρήση υδρογόνου (Η2), που μπορεί να παραχθεί φθηνά από το θαλασσινό νερό με ηλεκτρόλυση, τα ηλεκτρικά φορτία της οποίας μπορούν να μας τα παρέχουν φωτοβολταϊκά στοιχεία, είναι μια ελπιδοφόρα λύση. Η ένωση του Υδρογόνου (Η2) με το Οξυγόνο (O2) γίνεται με ισχυρή εξώθερμη αντίδραση και μόνο κατάλοιπο το νερό! (2Η2 + O2 -> 2Η2O). Η ελεγχόμενη αντίδραση σε «κυψέλες υδρογόνου» παράγει ηλεκτρικό ρεύμα.

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

Πρόβλημα:

Να αναπτύξετε ένα πρόβλημα σε Γλώσσα το οποίο, αφού διαβάσει τις αναφορές βλαβών για κάθε τμήμα, θα καταχωρεί σε δύο πίνακες 100 θέσεων το όνομα του ανταλλακτικού (τμήματος του αυτοκινήτου που παρουσίασε βλάβη) και τον αριθμό των βλαβών. Στη συνέχεια θα εμφανίζει τα ονόματα των ανταλλακτικών με φθίνουσα σειρά βλαβών. ΕΠΥ, 22ος Π.Δ.Π. (2010) Α’ Φάση

ΛΥΣΗ

ΠΡΟΓΡΑΜΜΑ  ΑΣΚ5_ΠΑΡ_Β_ΙΕΠ_ΠΙΝ_ΑΝΤΑΛΛΑΚΤΙΚΑ_ΑΥΤΟΚΙΝΗΤΩΝ_ΥΔΡΟΓΟΝΟΥ
ΣΤΑΘΕΡΕΣ
  n=10    ! πλήθος αναφορών βλαβών
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: i, j, temp, ant[n], vl[n]

ΑΡΧΗ
  ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ n
    ΔΙΑΒΑΣΕ ant[i], vl[i]  ! αύξων αριθμός ανταλλακτικού, 
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ         ! αριθμός βλαβών

  ! παράλληλη φθίνουσα ταξινόμηση bubblesort
  ΓΙΑ i ΑΠΟ 2 ΜΕΧΡΙ n
    ΓΙΑ j ΑΠΟ n ΜΕΧΡΙ i ΜΕ ΒΗΜΑ -1
      ΑΝ vl[j]> vl[j-1] ΤΟΤΕ
        temp <-- vl[j]
        vl[j] <-- vl[j-1]
        vl[j-1] <-- temp

        temp <-- ant[j]
        ant[j] <-- ant[j-1]
        ant[j-1] <-- temp
      ΤΕΛΟΣ_ΑΝ
    ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

  ! Αποκλεισμός εμφάνισης ανταλλακτικών με αναφορά μηδενικών βλαβών
  i <-- 1
  ΟΣΟ i <= n και vl[i]<>0 ΕΠΑΝΑΛΑΒΕ
    ΓΡΑΨΕ ant[i], vl[i]
    i <-- i+1
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

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

! Θα μπορούσε να χρησιμοποιηθεί επίσης η "έξυπνη φυσασίδα".
! για την περίπτωση αναφορών μηδενικών βλαβών.
! Εναλλακτικά, θα μπορούσαν να αποκλειστούν στην είσοδο δεδομένων

ΦΥΛΛΑΔΙΟ ΘΕΜΑΤΩΝ ΤΟΥ ΔΙΑΓΩΝΙΣΜΟΥ