Κυριακή, 09 Δεκεμβρίου 2018

Ταξιδιάρικα Πλοία

Βαθμός Δυσκολίας:
5/5
Εκφώνηση Ασκησης: 

Ένα ταξιδιωτικό γραφείο έχει στη διάθεσή του 15 πλοία για τη θερινή περίοδο (Ιούνιος-Αύγουστος). Να γραφεί αλγόριθμος, ο οποίος

α) να διαβάζει τα ονόματα των πλοίων και να τα αποθηκεύει σε ένα πίνακα ΟΝ[15].

β) να διαβάζει για κάθε πλοίο το πλήθος των ταξιδιών του και να τα αποθηκεύει σε ένα πίνακα Τ[15]. Κάθε πλοίο δεν μπορεί να κάνει περισσότερα από 90 ταξίδια, να γίνει έλεγχος τιμών εισόδου.

1) να εμφανίζει το όνομα του πλοίου που έκανε τα περισσότερα ταξίδια.

γ) να διαβάζει για κάθε ταξίδι τον προορισμό του και να τον αποθηκεύει σε ένα πίνακα ΠΡΟΟΡ.

1) να εμφανίζει τον πιο δημοφιλή προορισμό.

δ) να διαβάζει τον πλήθος των επιβατών, ανά ταξίδι, για κάθε πλοίο και να τα αποθηκεύει σε ένα δισδιάστατο πίνακα. Αν η τιμή του εισιτηρίου ανά άτομο είναι 50 ευρώ ανά ταξίδι:

1) να εμφανίζει το όνομα του πλοίου που είχε τα λιγότερα έσοδα σε ένα ταξίδι 

2) να υπολογίζει και να εμφανίζει τα 3 πλοία με τα περισσότερα έσοδα στο τέλος της περιόδου.

Η άσκηση συμμετέχει στο διαγωνισμό "Σας πάμε σινεμά" 

Επιμέλεια: Ουρούτση Σαμουέλα

Λύση Άσκησης: 

 

Αλγόριθμος Ταξιδιάρικα_Πλοία
 
!Ερώτημα α
Για ι από 1 μέχρι 15
  Εμφάνισε "Δώσε το όνομα του πλοίου"
  Διάβασε ΟΝ[ι] 
Τέλος_επανάληψης
 
!Ερώτημα β
Για ι από 1 μέχρι 15
  Εμφάνισε "Δώσε το πλήθος των ταξιδιώ του ", ΟΝ[ι], " πλοίου!"
  Διάβασε Τ[ι] 
  Όσο Τ[ι] > 90 επανάλαβε
    Εμφάνισε "Ένα πλοίο μπορεί να κάνει μέχρι 90 ταξίδια. Ξαναδώσε το πλήθος των ταξιδιών."
    Διάβασε Τ[ι] 
  Τέλος_επανάληψης
Τέλος_επανάληψης
 
 
!Ερώτημα β1
ΜΑΧ ← Τ[1] 
ον_ΜΑΧ ← ΟΝ[1] 
Για ι από 2 μέχρι 15
  Αν Τ[ι] > ΜΑΧ τότε
    ΜΑΧ ← Τ[ι] 
    ον_ΜΑΧ ← ΟΝ[ι] 
  Τέλος_αν
Τέλος_επανάληψης
 
Εμφάνισε "Το πλοίο με τα περισσότερα ταξίδια είναι ", ον_ΜΑΧ
 
!Ερώτημα γ και γ1
κ ← 1
Για ι από 1 μέχρι 15
  Για j από 1 μέχρι Τ[ι] 
    Εμφάνισε "Δώσε το όνομα του προορισμού του ταξιδιού"
    Διάβασε ΠΡΟΟΡ[ι, j] 
!Θα μετατρέψουμε τον δισδιάστατο σε μονοδιάστατο για να μπορέσουμε να υπολογίσουμε το πλήθος των εμφανίσεων για κάθε προορισμό.
    ΠΡ[κ] ← ΠΡΟΟΡ[ι, j] 
    κ ← κ + 1
  Τέλος_επανάληψης
Τέλος_επανάληψης
 
!Ταξινομούμε τον πίνακα κατά αλφαβητική σειρά.
 
Για ι από 2 μέχρι 2000
  Για j από 2000 μέχρι ι με_βήμα -1
    Αν ΠΡ[j] < ΠΡ[j - 1] τότε
      temp ← ΠΡ[j] 
      ΠΡ[j] ← ΠΡ[j - 1] 
      ΠΡ[j - 1] ← temp
    Τέλος_αν
  Τέλος_επανάληψης
Τέλος_επανάληψης
 
!Υπολογίζουμε πόσες φορές εμφανίζεται κάθε προορισμός.
ζ ← 1
πλ ← 1
 
Για ι από 1 μέχρι κ - 2
  Αν ΠΡ[ι] ≠ ΠΡ[ι + 1] τότε
    ΠΡ_Τ[ζ] ← ΠΡ[ι] 
    ΠΛ_ΠΡΟΟΡ[ζ] ← πλ
    πλ ← 1
    ζ ← ζ + 1
  αλλιώς
    πλ ← πλ + 1
  Τέλος_αν
Τέλος_επανάληψης
 
 
!Αποθηκεύουμε μόνοι μας τον τελευταίο προορισμό γιατί η πιο πάνω επανάληψη δεν έχει πρόσβαση στο τελευταίο στοιχείο του πίνακα.
 
ΠΡ_Τ[ζ] ← ΠΡ[ι] 
ΠΛ_ΠΡΟΟΡ[ζ] ← πλ
 
!Θα βρούμε το μέγιστο στοιχείο από τον πίνακα ΠΛ_ΠΡΟΟΡ
ΜΑΧ ← ΠΛ_ΠΡΟΟΡ[1] 
πρ_ΜΑΧ ← ΠΡ_Τ[1] 
Για ι από 2 μέχρι 15
  Αν ΠΛ_ΠΡΟΟΡ[ι] > ΜΑΧ τότε
    ΜΑΧ ← ΠΛ_ΠΡΟΟΡ[ι] 
    πρ_ΜΑΧ ← ΠΡ_Τ[ι] 
  Τέλος_αν
Τέλος_επανάληψης
 
Εμφάνισε "Ο πιο δημοφιλής προορισμός είναι ο ", πρ_ΜΑΧ
 
!Ερώτημα δ
Για ι από 1 μέχρι 15
  Για j από 1 μέχρι Τ[ι] 
    Εμφάνισε "Δώσε το πλήθος των επιβατών για το πλοίο ", ΟΝ[ι], " στο ", j, " ταξίδι."
    Διάβασε ΕΠ[ι, j] 
  Τέλος_επανάληψης
Τέλος_επανάληψης
 
!Ερώτημα δ1
!Εύρεση ελαχίστου ολόκληρου του πίνακα
ΜΙΝ ← ΕΠ[1, 1] 
ον_ΜΙΝ ← ΟΝ[1] 
Για ι από 1 μέχρι 15
  Για j από 1 μέχρι Τ[ι] 
    Αν ΕΠ[ι, j] < ΜΙΝ τότε
      ΜΙΝ ← ΕΠ[ι, j] 
      ον_ΜΙΝ ← ΟΝ[ι] 
    Τέλος_αν
  Τέλος_επανάληψης
Τέλος_επανάληψης
Εμφάνισε "Το πλοίο με τα λιγότερα έσοδα σε ένα ταξίδι είναι ", ον_ΜΙΝ
 
!Ερώτημα δ2
Για ι από 1 μέχρι 15
  ΕΣ[ι] ← 0
  Για j από 1 μέχρι Τ[ι] 
    ΕΣ[ι] ← ΕΣ[ι] + ΕΠ[ι, j] 
  Τέλος_επανάληψης
  ΕΣ[ι] ← ΕΣ[ι]* 50
Τέλος_επανάληψης
 
 
Για ι από 2 μέχρι 15
  Για j από 15 μέχρι ι με_βήμα -1
    Αν ΕΣ[j] > ΕΣ[j - 1] τότε
      Αντιμετάθεσε ΕΣ[j], ΕΣ[j - 1] 
      Αντιμετάθεσε ΟΝ[j], ΟΝ[j - 1] 
    Τέλος_αν
  Τέλος_επανάληψης
Τέλος_επανάληψης
 
Εμφάνισε "Τα 3 πλοία με τα περισσότερα έσοδα είναι: "
Για ι από 1 μέχρι 3
  Εμφάνισε ΟΝ[ι] 
Τέλος_επανάληψης
 
Τέλος Ταξιδιάρικα_Πλοία