Προβλήματα στους Πίνακες

Άσκηση 1
Όταν το πρωτάθλημα ποδοσφαίρου τελειώσει, βραβεύεται ο ποδοσφαιριστής που έχει σημειώσει τα περισσότερα τέρματα. Ωστόσο, αν υπάρχουν παραπάνω από ένας ποδοσφαιριστές με τον ίδιο αριθμό τερμάτων, νικητής βγαίνει αυτός που έχει τα λιγότερα λεπτά συμμετοχής.
Να γίνει αλγόριθμος, που με δεδομένα τα ονόματα, τον αριθμό των τερμάτων και τα λεπτά συμμετοχής (στους πίνακες ΟΝ, ΓΚΟΛ και ΛΣ αντίστοιχα) των 400 ποδοσφαιριστών που συμμετέχουν στο πρωτάθλημα, να εντοπίζει και να εμφανίζει το όνομα του πρώτου σκόρερ.

Αλγόριθμος ποδόσφαιρο
   Δεδομένα //ΟΝ, ΓΚΟΛ, ΛΣ//
   ! Έστω, ότι καλύτερος είναι ο πρώτος ...
   max <- 1
   Για i από 2 μέχρι 400
      ! Αν ο i-στός παίκτης, έχει περισότερα γκολ από τον max ή αν έχει τα ίδια
      ! αλλά λιγότερο λεπτά συμμετοχής ...
      Αν ΓΚΟΛ[i] > ΓΚΟΛ[max] Η (ΓΚΟΛ[i] = ΓΚΟΛ[max] ΚΑΙ ΛΣ[i] < ΛΣ[max]) τότε
         max <- i
      Τέλος_αν
   Τέλος_επανάληψης
   Εμφάνισε ΟΝ[max] 
Τέλος ποδόσφαιρο

Άσκηση 2
Μια εταιρεία ταχυμεταφορών χρεώνει τους πελάτες της ανάλογα με τον προορισμό της επιστολής και του βάρους της. Η βασική τιμή εξαρτάται από τον προορισμό ο οποίος καθορίζεται ανάλογα με τον ταχυδρομικό κωδικό που αναγράφεται στην διεύθυνση της επιστολής. Η εταιρεία διατηρεί σε έναν πίνακα με όνομα ΤΚ[1000], 1000 ταχυδρομικούς κωδικούς και σε έναν δεύτερο ΧΡ[1000] την χρέωση (σε ευρώ) για κάθε έναν από τους 1000 ταχυδρομικούς κωδικούς. Αν μια επιστολή προορίζεται για έναν ταχυδρομικό κωδικό που βρίσκεται εκτός λίστας τότε η βασική τιμή είναι 5 ευρώ. Επίσης ανάλογα με το βάρος της επιστολής η χρέωση ορίζεται σύμφωνα με τον επόμενο πίνακα:

Βάρος επιστολής Χρέωση
έως και 1000 γρ. +0% επί της βασικής τιμής
από 1001 έως και 5000 γρ. +25% επί της βασικης τιμής
από 5001 γρ. και πάνω +35% επί της βασικης τιμής

Να γίνει αλγόριθμος που:

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

Σημείωση: Θεωρήστε πως οι πίνακες ΤΚ και ΧΡ είναι δεδομένοι

Αλγόριθμος Ταχυμεταφορά
   Δεδομένα //ΤΚ, ΧΡ//
   ! διάβασε τον ταχυδρομικό κωδικό της επιστολής και έλεγξε αν είναι 5ψήφιος
   Αρχή_επανάληψης
      Διάβασε ταχ_κωδ
   Μέχρις_ότου ταχ_κωδ > 10000 ΚΑΙ ταχ_κωδ < 99999
 
   ! διάβασε το βάρος της επιστολής
   Διάβασε βάρος
 
   ! αναζήτησε τον πίνακα ΤΚ τον κωδικό ταχ_κωδ
   βρέθηκε <- ΨΕΥΔΗΣ
   ι <- 1
   Όσο (ι <= 1000 KΑΙ βρέθηκε = ΨΕΥΔΗΣ) επανάλαβε
      Αν ΤΚ[ι] = ταχ_κωδ τότε
         θέση <- ι
         βρέθηκε <- ΑΛΗΘΗΣ
      Τέλος_αν
      ι <- ι + 1
   Τέλος_επανάληψης
 
   ! Αν ο ταχυδρομικός κωδικός βρέθηκε τότε
   ! καταχώρισε στην μεταβλητή χρέωση το κόστος μεταφοράς
   ! αλλιώς θεώρησε πως το κόστος είναι 5 ευρώ
   Αν βρέθηκε = ΑΛΗΘΗΣ τότε
      χρέωση <- ΧΡ[θέση]
   Αλλιώς
      χρέωση <- 5
   Τέλος_αν
 
   ! αφού υπολόγισες την βασική τιμή, βρες το επιπρόσθετο κόστος λόγω βάρους
   Αν βάρος > 1000 και βάρος <= 5000 τότε
      χρέωση <- χρέωση + 25/100 * χρέωση
   Αλλιώς_αν χρέωση > 5000 τότε
      χρέωση <- χρέωση + 35/100 * χρέωση
   Αλλιώς
      χρέωση <- χρέωση + 0
   Τέλος_αν
 
   Εμφάνισε "Η χρέωση για την μεταφορά της επιστολής ανέρχεται σε ", χρέωση, " ευρώ"
Τέλος Ταχυμεταφορά

Άσκηση 3
Να γίνει αλγόριθμος ο οποίος θα εμφανίζει στον χρήστη 4 ερωτήσεις. Ο χρήστης θα πρέπει να απαντήσει σε όλες τις ερωτήσεις. Για κάθε ερώτηση θα έχει τρεις ευκαιρίες. Δηλαδή για κάθε ερώτηση θα μπορεί να δώσει μέχρι και τρεις απαντήσεις. Ο αλγόριθμος θα εμφανίζει την επόμενη ερώτηση όταν ο χρήστης απαντά σωστά ή όταν ξεπεράσει τις τρεις προσπάθειες. Για κάθε ερώτηση που ο χρήστης απαντά με την πρώτη ευκαιρία κερδίζει 6 πόντους. Με την δεύτερη ευκαιρία κερδίζει 4 και με την τρίτη ευκαιρία 2 πόντους. Να γίνει αλγόριθμος που θα εμφανίζει τις ακόλουθες ερωτήσεις και ανάλογα με τις απαντήσεις του παίκτη, στο τέλος να εμφανίζει το σκορ του.
Ερώτηση 1: Ποιο είναι το αποτέλεσμα της πράξης 12 + 24;
Ερώτηση 2: Ποιο είναι το αποτέλεσμα της πράξης 122 – 67;
Ερώτηση 3: Ποιο είναι το αποτέλεσμα της πράξης 6 * 12;
Ερώτηση 4: Ποιο είναι το αποτέλεσμα της πράξης 81 / 3;

 Αλγόριθμος Quiz
   ! Οργάνωσε τα δεδομένα μέσα σε πίνακες.
   ! Αυτό θα μας βοηθήσει κατά την επανάληψη.
   Ερωτήσεις[1] <- "Ποιο είναι το αποτέλεσμα της πράξης 12 + 24;"
   Ερωτήσεις[2] <- "Ποιο είναι το αποτέλεσμα της πράξης 122 - 67;"
   Ερωτήσεις[3] <- "Ποιο είναι το αποτέλεσμα της πράξης 6 * 12;"
   Ερωτήσεις[4] <- "Ποιο είναι το αποτέλεσμα της πράξης 81 / 3;"
 
   Απαντήσεις[1] <- 36
   Απαντήσεις[2] <- 55
   Απαντήσεις[3] <- 72
   Απαντήσεις[4] <- 27
 
   Σ_πόντοι <- 0
   Για i από 1 μέχρι 4
      Εμφάνισε Ερωτήσεις[i]
      Διάβασε απάντηση_χρήστη
      ! Αυτή είναι η πρώτη προσπάθεια.
      προσπάθεια <- 1      
 
      ! Αν η απάντηση δεν είναι σωστή, ζήτα νέα απάντηση, αρκεί οι
      ! προσπάθειες που έχεις κάνει να μην είναι τρεις. 
      ! Αν είναι τρεις σταμάτα την επανάληψη
      Όσο απάντηση_χρήστη <> Απαντήσεις[i] ΚΑΙ προσπάθεια < 3 επανάλαβε
         προσπάθεια <- προσπάθεια + 1
         Εμφάνισε "Κάνατε λάθος, προσπαθήστε ξανά:"
         Διάβασε απάντηση_χρήστη
      Τέλος_επανάληψης
 
      ! Εφόσον η απάντηση του χρήστη είναι σωστή, υπολόγισε τους πόντους που του αναλογουν
      Αν απάντηση_χρήστη = Απαντήσεις[i] τότε
         ! Ανάλογα με τον αριθμό των προσπαθειών, οι πόντοι μειώνονται κατά δύο.
         πόντοι_ερώτησης <- 6 - (προσπάθεια - 1) * 2
         Σ_πόντοι <- Σ_πόντοι + πόντοι_ερώτησης
      Τέλος_αν
   Τέλος_επανάληψης
 
   Εμφάνισε "Οι συνολικοί πόντοι που συγκέντρωσες είναι: ", Σ_πόντοι
Τέλος Quiz