Δομές Επανάληψης - πακέτο 1

 Άσκηση 1. Πόσες φορές θα εκτελεστούν οι επαναληπτικές δομές στα παρακάτω τμήματα αλγορίθμων;

 x  5
 Όσο (x > 0) επανέλαβε 
   Εμφάνισε x
   x  x - 1
 Τέλος_επανάληψης
 x  5
 Όσο (x >= 0) επανέλαβε  
   Εμφάνισε x
   x  x - 1
 Τέλος_επανάληψης
 x  -5
 Όσο (x >= 0) επανέλαβε  
   Εμφάνισε x
   x  x - 1
 Τέλος_επανάληψης
 x  5
 Όσο (x >= 0) επανέλαβε  
   Εμφάνισε x
   x  x + 1
 Τέλος_επανάληψης
Λύση

1) Στην πρώτη περίπτωση η μεταβλητή x θα πάρει τις τιμές 5, 4, 3, 2, 1 (οι οποίες και θα εμφανιστούν), 0 οπότε και θα τερματιστεί ο βρόχος και συνεπώς θα εκτελεστεί 5 φορές
2) Στην δεύτερη περίπτωση η μεταβλητή x θα πάρει τις τιμές 5, 4, 3, 2, 1, 0 (οι οποίες και θα εμφανιστούν), -1 οπότε και θα τερματιστεί ο βρόχος και συνεπώς θα εκτελεστεί 6 φορές
3) Στην τρίτη περίπτωση ο βρόχος δεν θα εκτελεστεί καμία φορά αφού η τιμή -5 δεν είναι >= 0
4) Στην τέταρτη περίπτωση η μεταβλητή x θα πάρει τις τιμές 5, 6, 7, 8, .... Παρατηρούμε ότι δεν θα τερματιστεί ο βρόχος αφού το κριτήριο συνέχειας του δεν θα παραβιαστεί ποτέ. Άρα μιλάμε για έναν ατέρμων βρόχο, δηλαδή άπειρο πλήθος επαναλήψεων

Άσκηση 2. Υπάρχει κάποιο λάθος στα παρακάτω τμήματα αλγορίθμων;

Α
Β
Γ
  S  0
  Για i από -3 μέχρι 3
    Για j από 10 μέχρι 20 με_βήμα i  
      S  S + 1
    Τέλος_επανάληψης
  Τέλος_επανάληψης
  Εκτύπωσε S
  S  0
  Για i από -1 μέχρι -3
    Για j από 18 μέχρι 13 με_βήμα i  
      S  S + i * j
    Τέλος_επανάληψης
  Τέλος_επανάληψης
  Εκτύπωσε S
  S  0
  Για i από 2 μέχρι 5
    Για j από 14 μέχρι i  
      S  S + 2
    Τέλος_επανάληψης
  Τέλος_επανάληψης
  Εκτύπωσε S
Λύση

Α. Οι τιμές που θα πάρει ο μετρητής του εξωτερικού βρόχου - το i είναι: -3, -2, -1, 0, 1, 2, 3. Το βήμα για την αύξηση του μετρητή του εσωτερικού βρόχου j είναι το i. Όταν λοιπόν το i πάρει την τιμή 0, ο εσωτερικό βρόχος δεν θα τερματιστεί ποτέ (ατέρμων βρόχος), παραβιάζεται λοιπόν το κριτήριο της περατότητας
Β. Η τελική τιμή του εξωτερικού βρόχου είναι είναι μικρότερη της αρχικής ενώ το βήμα είναι θετικό (εννοείται η τιμή 1). Επομένως, δεν θα εκτελεστεί καμία επανάληψη του εξωτερικού βρόχου και επομένως και του εσωτερικού. Άρα θα εκτυπωθεί η (αρχική) τιμή 0
Γ. Οι τιμές που θα πάρει ο μετρητής του εξωτερικού βρόχου - το i είναι: 2, 3, 4, 5. Αυτές οι τιμές αποτελούν την τελική τιμή για τον εσωτερικό βρόχο. Ωστόσο, η εκτέλεση του αλγορίθμου δεν θα εισαχθεί ποτέ στον εσωτερικό βρόχο καθώς σε κάθε περίπτωση η τελική τιμή θα είναι μικρότερη της αρχικής με βήμα θετικό. Άρα δεν θα εκτελεστεί η εντολή εκχώρησης τιμής καμία φορά, επομένως θα εκτυπωθεί η (αρχική) τιμή 0

Άσκηση 3. Να σχηματίσετε τον πίνακα τιμών του παρακάτω αλγορίθμου. Τί θα εκτυπωθεί τελικά;

Αλγόριθμος Άσκηση12
  α  0
  Όσο (α <= 22) επανάλαβε
    Για i από 1 μέχρι 3
      α  α + i
    Τέλος_επανάληψης
    α  α + 5
  Τέλος_επανάληψης
  Εκτύπωσε α
Τέλος Άσκηση12
Λύση
 

    i    

    α    

    0

  0 <= 22 Ισχύει, 1η εξωτερική επανάλ 

   

 1η επανάλ 

1 1

 2η επανάλ 

2 3

 3η επανάλ 

3 6

 Πράξεις 

  11

   11 <= 22 Ισχύει, 2η εξωτερική επανάλ 

   

 1η επανάλ 

1 12

 2η επανάλ 

2 14

 3η επανάλ 

3 17

 Πράξεις 

  22

    22 <= 22 Ισχύει, 3η εξωτερική επανάλ 

   

 1η επανάλ 

1 23

 2η επανάλ 

2 25

 3η επανάλ 

3 28

 Πράξεις 

  33

    33 <= 22 Δεν ισχύει 
3η τερματισμός επανάληψης 

   

Θα εκτυπωθεί η τιμή 33

Άσκηση 4. Να μετατρέψετε το παρακάτω τμήμα αλγορίθμου χρησιμοποιώντας τις άλλες δυο δομές επανάληψης και να σχηματίσετε το διάγραμμα ροής

  α  2
  β  3
  Αρχή_επανάληψης
    Εκτύπωσε β
    β  β + 2
  Μέχρις_ότου (β > 11)
Λύση
  α  2
  β  3
  Όσο (β <= 11) επανάλαβε  
    Εκτύπωσε β
    β  β + 2
  Τέλος_επανάληψης
  α  2
  Για β από 3 μέχρι 11 μεήμα 2  
    Εκτύπωσε β
  Τέλος_επανάληψης

Άσκηση 5. Να αναπαραστήσετε τον αλγόριθμο που αντιστοιχεί στο παρακάτω διάγραμμα ροής και να σχηματίσετε τον πίνακα τιμών του παρακάτω αλγορίθμου. Τί θα εκτυπωθεί τελικά;

Λύση
  Αλγόριθμος Διάγραμμα_Ροής
   i  1
   S  0
   Όσο (i <= 5) επανάλαβε
     i  i + 1
     S  S + (-1) ^ i *  i ^2  
   Τέλος_επανάληψης
   Εμφάνισε S
  Τέλος Διάγραμμα_Ροής

   Ή  

  Αλγόριθμος Διάγραμμα_Ροής_Εναλ
   S  0
   Για i από 1 μέχρι 5
     S  S + (-1) ^ i * i ^ 2
   Τέλος_επανάληψης
   Εμφάνισε S
  Τέλος Διάγραμμα_Ροής_Εναλ

Η άσκηση θα εκτυπώσει το αποτέλεσμα της σειράς S = -1 + 4 - 9 + 16 - 25. Η δομή επανάληψης θα εκτελεστεί για 5 επαναλήψεις

  Επανάληψη: 

 

  1η 

  2η 

  3η 

  4η 

  5η 

 

  S : 

  0 

 -1 

  3  

 -6   

 10

 -15 

 

  i : 

 0

  1 

  2 

  3 

  4 

  5 

  6 

Θα εκτυπωθούν η τιμή:  -15

Άσκηση 6. Να σχηματίσετε τον πίνακα τιμών του παρακάτω αλγορίθμου. Τί θα εκτυπωθεί τελικά;

Αλγόριθμος Πίνακας_Τιμών2
  α  2
  β  1
  Όσο (α >= β) καιdiv 10 < 1) επανάλαβε
    α  α ^ 2
    Ανdiv β > 2) τότε
      β  β + 1
    Αλλιώς
      α  α + 1
    Τέλος_αν
  Τέλος_επανάληψης
  Εκτύπωσε α, β
Τέλος Πίνακας_Τιμών2
Λύση
   

  2 >= 1 και 2 div 10 = 0 < 1
Ισχύει   1η επανάληψη 

  4 div 1 = 4 > 2 
Iσχύει

  4 >= 2 και 4 div 10 = 0 < 1 Ισχύει 
2η επανάληψη

 16 div 2 = 8 > 2 
Isx;yei

  16 >= 3 και 16 div 10 = 1 < 1
Δεν ισχύει

  α :  

  2 

4

 

16 

   

 β :

 1

 

2

 

3

 

Θα εκτυπωθούν οι τιμές 16, 3

Άσκηση 7. Να σχηματίσετε τον πίνακα τιμών του παρακάτω αλγορίθμου. Τί θα εκτυπωθεί τελικά;

Αλγόριθμος Πίνακας_Τιμών3
  α  6
  β  11
  Αρχή_επανάληψης
    γ   (α + β) div 2
    Αν (γ > α) τότε
      α  γ - α
      β  β - γ
    Αλλιώς
      α  3 + α - γ
      β  γ - β
    Τέλος_αν
    ποσότητα  γ + α * β
  Μέχρις_οτου (ποσότητα < 0)
  Εκτύπωσε α, β, γ
Τέλος Πίνακας_Τιμών3
Λύση
   

 1η επανάληψη 

  8 > 6 
  Iσχύει 

  14 < 0 Δεν ισχύει 
2η επανάληψη

2 > 2
  Δεν ισχύει 

   -1 < 0 Ισχύει 

 α :

6

 

2

 

3

 

β :

 11 

 

3

 

-1

 

γ :

 

8

 

2

   

 ποσότητα : 

 

14

 

-1

   

Θα εκτυπωθούν οι τιμές 16, 3

Άσκηση 8. Να αναπτύξετε αλγόριθμο ο οποίος θα εκτυπώνει τις τιμές της συνάρτησης αν το χ παίρνει τιμές στο διάστημα [-0.5, 5] με βήμα 0.05

Λύση
Αλγόριθμος ΣυνάρτησηFx
  Για X από -0.5 μέχρι 5 με_βήμα 0.05
    Αν (Χ <> -1) τότε
      Fx  (X - 4) / (X + 1) ^ 3
      Εκτύπωσε "Για x = ", X, "η τιμή της συνάρτησης είναι", Fx
    Αλλιώς
      Εκτύπωσε "Η συνάρτηση δεν ορίζεται για x = -1"
    Τέλος_αν
  Τέλος_επανάληψης
Τέλος ΣυνάρτησηFx

Άσκηση 9. Να αναπτύξετε αλγόριθμο ο οποίος θα υπολογίζει και θα εκτυπώνει το άθροισμα 1 + 2 + 3 + 4 + 5 + 6 + ... + 1000

Λύση
Αλγόριθμος Άθροισμα
  S  0
  Για i από 1 μέχρι 1000
    S  S + i
  Τέλος_επανάληψης
  Εκτύπωσε "Το άθροισμα είναι ", S
Τέλος Άθροισμα

Άσκηση 10. Να αναπτυχθεί αλγόριθμος που θα διαβάζει έναν αριθμό Ν και να υπολογίζει τη σειρά

Λύση

Την αλλαγή του πρόσημου μπορούμε να την επιτύχουμε με την ύψωση του -1 σε άρτια ή περιττή δύναμη (αφού εναλλάξ πηγαίνουν και τα πρόσημα) όμοια με την εξέλιξη των τιμών του μετρητή της δομής επανάληψης. Παρατηρούμε πως όταν ο αριθμός υψώνεται σε περιττή δύναμη το πρόσημο είναι θετικό και σε άρτια αρνητικό...

Αλγόριθμος Σειρά_Πρόσημο
  Διάβασε N
  S  5
  Για i από 1 μέχρι Ν
    S  S + (-1) ^ (i+1) * 3 ^ i
  Τέλος_επανάληψης
  Εκτύπωσε "Η τιμή της σειράς είναι ", S
Τέλος Σειρά_Πρόσημο

Άσκηση 11. Να αναπτυχθεί αλγόριθμος που θα εκτυπώνει τους τριψήφιους αριθμούς που είναι πολλαπλάσια του 7 καθώς και το πόσοι είναι οι αριθμοί αυτοί

Λύση
Αλγόριθμος Πολλαπλάσια_7
  πλήθος  0
  Για i από 100 μέχρι 999
    Αν (i mod 7 = 0) τότε
      πλήθος  πλήθος + 1
      Εκτύπωσε "Ο αριθμός", i, " ικανοποιεί την εκφώνηση"
    Τέλος_αν
  Τέλος_επανάληψης
  Εκτύπωσε "Το πλήθος των αριθμών που ικανοποιούν την εκφώνηση είναι ", πλήθος
Τέλος Πολλαπλάσια_7

Η άσκηση μπορεί να λυθεί και με άλλο τρόπο. Θα ξεκινήσουμε από τον πρώτο τριψήφιο αριθμό που είναι πολλαπλάσιο του 7 (που είναι ο αριθμός 105) και με βήμα 7 θα "σαρώνει" τους αριθμούς μέχρι τον τελευταίο τριψήφιο αριθμό που είναι πολλαπλάσιο του 7 (που είναι ο αριθμός 994)

Αλγόριθμος Πολλαπλάσια_7_αλλιώς
  πλήθος  0
  Για i από 105 μέχρι 994 με_βήμα 7
    πλήθος  πλήθος + 1
    Εκτύπωσε "Ο αριθμός", i, " ικανοποιεί την εκφώνηση"
  Τέλος_επανάληψης
  Εκτύπωσε "Το πλήθος των αριθμών που ικανοποιούν την εκφώνηση είναι ", πλήθος
Τέλος Πολλαπλάσια_7_αλλιώς

Άσκηση 12. Να αναπτύξετε αλγόριθμο ο οποίος θα εντοπίζει και θα εκτυπώνει όλους τους τριψήφιους αριθμούς που το άθροισμα τετραγώνων των ψηφίων τους είναι μικρότερο από αυτούς (για παράδειγμα 131, 12+32+12 = 11 < 131)

Λύση
Αλγόριθμος Άθροισμα_Τετραγώνων
  Για X από 100 μέχρι 999
    εκατοντάδες  X div 100
    βοηθητική  X mod 100
    δεκάδες  βοηθητική div 10
    μονάδες  βοηθητική mod 10
    ποσότητα  εκατοντάδες ^ 2 + δεκάδες ^ 2 + μονάδες ^ 2
    Αν (ποσότητα < Χ) τότε
      Εκτύπωσε "Ο αριθμός", Χ, " ικανοποιεί την εκφώνηση"
    Τέλος_αν
  Τέλος_επανάληψης
Τέλος Άθροισμα_Τετραγώνων

Άσκηση 13. Να αναπτυχθεί αλγόριθμος που θα διαβάζει έναν ακέραιο αριθμό και θα εμφανίζει όλους τους διαιρέτες του καθώς και το πλήθος τους

Λύση
Αλγόριθμος Διαιρέτες
  Διάβασε αριθμός
  πλήθος 0
  Για i από 1 μέχρι αριθμός
    Αν (αριθμός mod i = 0) τότε
      Εμφάνισε "Ο αριθμός ", i, " είναι διαιρέτης"
      πλήθος  πλήθος + 1
    Τέλος_αν
  Τέλος_επανάληψης
  Εμφάνισε "Οι διαιρέτες του αριθμού", αριθμός, " είναι ", πλήθος
Τέλος Διαιρέτες

Άσκηση 14. Να αναπτυχθεί αλγόριθμος που θα διαβάζει Ν αριθμούς και θα υπολογίζει και θα εκτυπώνει τον ελάχιστο

Λύση

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

Αλγόριθμος Εύρεση_Ελαχίστου
  Δεδομένα // Ν //
  Διάβασε αριθμός  ! Διαβάζω τον πρώτο αριθμό
  ελάχιστος  αριθμός
  Για i από 2 μέχρι Ν  ! Διαβάζω τους υπόλοιπους
    Διάβασε αριθμός
    Αν (αριθμός < ελάχιστος) τότε
      ελάχιστος  αριθμός
    Τέλος_αν
  Τέλος_επανάληψης
  Εκτύπωσε "Ο ελάχιστος αριθμός είναι ", ελάχιστος
Τέλος Εύρεση_Ελαχίστου

Άσκηση 15. Να αναπτυχθεί αλγόριθμος που θα διαβάζει έναν αριθμό (μεγαλύτερο του 0) και να υπολογίζει τη σειρά

μέχρι να ξεπεράσει την τιμή του αριθμού αυτού και να εκτυπώνει το πλήθος των επαναλήψεων που χρειάστηκαν

Λύση
Αλγόριθμος Σειρά_Όριο
  Αρχή_επανάληψης
    Διάβασε Όριο
  Μέχρις_ότου (Όριο > 0)
  i  1
  S  0
  Όσο (S <= Όριο) επανάλαβε
    S  S + i ^ i
    i  i + 1
  Τέλος_επανάληψης
  Εκτύπωσε "Απαιτήθηκαν ", i, " επαναλήψεις"
Τέλος Σειρά_Όριο

Άσκηση 16. Να αναπτύξετε αλγόριθμο που θα διαβάζει αριθμούς αγνώστου πλήθους και θα εκτυπώνει το μέσο όρο των θετικών. Η επαναληπτική διαδικασία να τερματίζεται όταν δοθεί ο αριθμός 0

Λύση
Αλγόριθμος Μέσος_Όρος_Αριθμών
  άθροισμα  0
  πλήθος  0
  Αρχή_επανάληψης
    Διάβασε αριθμός
    Αν αριθμός > 0 τότε ! Ο αριθμός δεν πρέπει είναι 0
      άθροισμα  άθροισμα + αριθμός
      πλήθος  πλήθος + 1
    Τέλος_αν
  Μέχρις_ότου αριθμός = 0
  Αν πλήθος <> 0 τότε
    μέσος_όρος  άθροισμα / πλήθος
    Εκτύπωσε "Τα στοιχεία που διαβάστηκαν είναι ", πλήθος
    Εκτύπωσε "Ο μέσος όρος είναι ", μέσος_όρος
  Αλλιώς
    Εκτύπωσε "Τελικά δεν δόθηκε κανένας αριθμός"
  Τέλος_αν
Τέλος Μέσος_Όρος_Αριθμών

Παρατηρούμε πως υπάρχει η περίπτωση να μην εκτελεστεί το τμήμα εντολών του βρόχου καμία φορά, άρα μάλλον ταιριάζει η δομή όσο...επανάλαβε στην άσκηση αυτή. Στη συνέχεια παρατίθεται λοιπόν, η εναλλακτική μορφή του αλγορίθμου

Αλγόριθμος Μέσος_Όρος_Αριθμών_εναλ
  άθροισμα  0
  πλήθος  0
  Διάβασε αριθμός
  Όσο αριθμός <> 0 επανάλαβε
    Αν αριθμός  0 τότε
      άθροισμα  άθροισμα + αριθμός
      πλήθος  πλήθος + 1
    Τέλος_αν
    Διάβασε αριθμός
  Τέλος_επανάληψης
  Αν πλήθος <> 0 τότε
    μέσος_όρος  άθροισμα / πλήθος
    Εκτύπωσε "Τα στοιχεία που διαβάστηκαν είναι ", πλήθος
    Εκτύπωσε "Ο μέσος όρος είναι ", μέσος_όρος
  Αλλιώς
    Εκτύπωσε "Τελικά δεν δόθηκε κανένας αριθμός"
  Τέλος_αν
Τέλος Μέσος_Όρος_Αριθμών_εναλ

Παρατηρούμε επίσης, πως έχει προστεθεί άλλη μια εντολή Διάβασε πριν τη δομή επανάληψης κάτι που ξεχνάνε συχνά οι μαθητές σε αντίστοιχα παραδείγματα. Η ενέργεια αυτή είναι απαραίτητη καθώς πρέπει να έχει αρχικοποιηθεί η μεταβλητή αριθμός προτού χρησιμοποιηθεί στη συνθήκη του Όσο. Στη συνέχεια, στο τέλος του βρόχου διαβάζεται η επόμενη τιμή για να χρησιμοποιηθεί στον επόμενο έλεγχο

Άσκηση 17. Να αναπτυχθεί αλγόριθμος που θα διαβάζει άγνωστο πλήθος αριθμών και θα εντοπίζει και εκτυπώνει το ποσοστό αυτών που είναι πολλαπλάσια του 5. Ο αλγόριθμος θα τερματίζεται όταν εισαχθεί ο αριθμός 0

Λύση
Αλγόριθμος Πολλαπλάσια_5
  πολλαπλάσια  0
  πλήθος  0
  Αρχή_επανάληψης
    Διάβασε αριθμός
    Αν (αριθμός <> 0) και (αριθμός mod 5 = 0) τότε
      ! Αν αριθμός = 0 δεν πρέπει να γίνει τίποτα από τα παρακάτω
      πολλαπλάσια  πολλαπλάσια + 1
    Τέλος_αν
    πλήθος  πλήθος + 1
  Μέχρις_ότου αριθμός = 0
  ποσοστό  100 * πολλαπλάσια / πλήθος
  Εκτύπωσε "Τα πολλαπλάσια του 5 ήταν το ", ποσοστό, "% των αριθμών που διαβάστηκαν"
Τέλος Πολλαπλάσια_5 

Άσκηση 18. Από έρευνες έχει φανεί ότι μια κοινότητα μελισσών υπό κανονικές συνθήκες αναπτύσσεται με ρυθμό 3.8 % ετησίως. Αν ένας μελισσοκόμος διαθέτει μελίσσια με συνολικό πληθυσμό 1200 μέλισσες σε πόσα έτη θα ξεπεράσει τη χωρητικότητα των κυψελών του που είναι 2000 μέλισσες;

Λύση

Δεδομένου ότι δεν είναι γνωστό το πλήθος των επαναλήψεων που θα χρειαστούν θα χρησιμοποιήσουμε την δομή επανάληψης Μέχρις_ότου. στη δομή θα εντάξουμε και την μεταβλητή Έτη που θα μετρά τα χρόνια

Αλγόριθμος Μέλισσες
  Μέλισσες  1200
  Ρυθμός  0.038
  Όριο  2000
  Έτη  0
  Αρχή_επανάληψης
    Μέλισσες  Μέλισσες * (1 + Ρυθμός)
    Έτη  Έτη + 1
  Μέχρις_ότου Μέλισσες > Όριο
  Εκτύπωσε "Το όριο θα ξεπεραστεί σε ", Έτη
Τέλος Μέλισσες

Άσκηση 19. Ο μισθός του κύριου Αρβίλογλου είναι 1250 €, ενώ σύμφωνα με το μισθολόγιο αυξάνεται κατά 11% ετησίως. Κάθε μήνα έχει αποφασίσει να αποταμιεύει 9% του μισθού για το όνειρό του που είναι η αγορά φουσκωτού σκάφους. Να αναπτύξετε αλγόριθμο που θα υπολογίζει και θα εκτυπώνει σε πόσους μήνες θα κατορθώσει να προβεί στην αγορά του φουσκωτού αξίας 7000 €

Λύση
Αλγόριθμος Φουσκωτό
  μισθός  1250
  συγκεντρωθέν_ποσό  0
  μήνες  0
  Όσο (συγκεντρωθέν_ποσό <= 7000) επανάλαβε
    συγκεντρωθέν_ποσό  συγκεντρωθέν_ποσό + 0.09 * μισθός
    μήνες  μήνες + 1
    Αν μήνες mod 12 = 0 τότε  ! συμπληρώθηκε νέο έτος
      μισθός  μισθός + 0.11 * μισθός
    Τέλος_άν
  Τέλος_επανάληψης
  Εκτύπωσε "Το ποσό των 7000 € θα συγκεντρωθεί σε ", μήνες
Τέλος Φουσκωτό

Άσκηση 20. Να αναπτυχθεί ο αλγόριθμος που εκτελείται στα διόδια. Για κάθε αυτοκίνητο που περνά να διαβάζεται ο τύπος του ("Φ" για φορτηγό, "Α" για αυτοκίνητο και "Μ" για μοτοσικλέτα) και να εκτυπώνεται το κόμιστρο. Ο αλγόριθμος να τερματίζεται όταν διαβάζει ως τύπο οχήματος "Τέλος" και να εκτυπώνει τις εισπράξεις της ημέρας. Πρέπει να επισημανθεί ότι το κόστος διέλευσης είναι 2.50 € για ένα φορτηγό, 1.40 για ένα αυτοκίνητο και 0.90 για μια μοτοσικλέτα

Λύση
Αλγόριθμος Διόδια
  είσπραξη  0
  Διάβασε τύπος_οχήματος
  Όσο (τύπος_οχήματος <> "Τέλος") επανάλαβε
    Επίλεξε τύπος_οχήματος
      Περίπτωση "Φ"
        κόμιστρο  2.50
      Περίπτωση "Α"
        κόμιστρο  1.40
      Περίπτωση "Μ"
        κόμιστρο  0.90
      Περίπτωση Αλλιώς
        κόμιστρο  0
        Εκτύπωσε "Λάθος καταχώρηση"
    Τέλος_επιλογών
    είσπραξη  είσπραξη + κόμιστρο
    Διάβασε τύπος_οχήματος  ! για την επόμενη επανάληψη
  Τέλος_επανάληψης
  Εκτύπωσε "Η είσπραξη της ημέρας είναι : ", είσπραξη
Τέλος Διόδια

Άσκηση 21. Οι βαθμολογητές των γραπτών των πανελληνίων εξετάσεων βαθμολογούν με άριστα το 100, ενώ κάθε γραπτό διορθώνεται από 2 άτομα χωρίς να γνωρίζει ο ένας τη βαθμολογία του άλλου. Ωστόσο, αν μεταξύ των δυο βαθμολογιών παρατηρηθεί διαφορά μεγαλύτερη των 11 μορίων τότε το γραπτό διορθώνεται και από τρίτο βαθμολογητή και σε αυτήν την περίπτωση ο τελικός γραπτός βαθμός είναι ο μέσος όρος των 3 βαθμολογιών, διαφορετικά αν δεν υπάρξει αναβαθμολόγηση τελικός βαθμός θεωρείται ο μέσος όρος των 2 βαθμολογιών. Να αναπτυχθεί αλγόριθμος που θα διαβάζει το όνομα ενός μαθητή της Γ' Λυκείου, και για κάθε έναν από τα 9 μαθήματα που εξετάζεται πανελλαδικά τους προφορικούς του βαθμούς και τους βαθμούς του γραπτού του από τους δυο βαθμολογητές (και το βαθμό του τρίτου βαθμολογητή μόνο στην περίπτωση που αυτό είναι απαραίτητο) και θα εμφανίζει τους βαθμούς πρόσβασης σε κάθε μάθημα καθώς και το γενικό βαθμό πρόσβασης στις πανελλήνιες εξετάσεις (μέσος όρος βαθμών πρόσβασης). Ισχύει ότι βαθμός πρόσβασης = 70% * γραπτός βαθμός και 30% * προφορικός βαθμός

Λύση
Αλγόριθμος Πανελλαδικές_Εξετάσεις
  Διάβασε όνομα
  άθροισμα  0
  Για i από 1 μέχρι 9
    Διάβασε προφΑ, προφΒ
    μέσος_προφορικός  (προφΑ + προφΒ) / 2
    Διάβασε βαθμολογητήςΑ, βαθμολογητήςΒ
    διαφορά  βαθμολογητήςΑ - βαθμολογητήςΒ
    Αν διαφορά > 11 ή διαφορά < -11 τότε !  αναβαθμολόγηση
      Διάβασε βαθμολογητήςΓ
      τελικός_γραπτός  (βαθμολογητήςΑ + βαθμολογητήςΒ + βαθμολογητήςΓ) / 3
    Αλλιώς !   δεν χρειάζεται αναβαθμολόγηση
      τελικός_γραπτός  (βαθμολογητήςΑ + βαθμολογητήςΒ) / 2
    Τέλος_αν
    Αν τελικός_γραπτός - μέσος_προφορικός > 2 τότε !  διόρθωση προφορικού βαθμού 
      μέσος_προφορικός  τελικός_γραπτός - 2
    Αλλιώς_Αν μέσος_προφορικός - τελικός_γραπτός > 2 τότε
      μέσος_προφορικός  τελικός_γραπτός + 2
    Τέλος_αν
    βαθμός_πρόσβασης  0.7 * τελικός_γραπτός + 0.3 * μέσος_προφορικός
    άθροισμα  άθροισμα + βαθμός_πρόσβασης
    Εκτύπωσε "Ο βαθμός πρόσβασης στο μάθημα ", i, " είναι ", βαθμός_πρόσβασης
  Τέλος_επανάληψης
  γενικός_βαθμός_πρόβασης  άθροισμα / 10
  Εκτύπωσε "Ο γενικός βαθμός πρόσβασης του ", όνομα, " είναι ", γενικός_βαθμός_πρόβασης
Τέλος Πανελλαδικές_Εξετάσεις

Ημερομηνία τελευταίας τροποποίησης: 27/9/2007
Επικοινωνία: Τσιωτάκης Παναγιώτης