Θέμα Γ, 2020, Hμερήσια και Eσπερινά, Νέο, Παλαιό

ΝΕΟ – ΠΑΛΑΙΟ
ΘΕΜΑ Γ

Ένα πλοίο μεταφέρει δέματα από λιμάνια της Ελλάδας στην Ιταλία. Σε κάθε  λιμάνι που καταπλέει για φόρτωση δηλώνει το βάρος που έχει ήδη φορτωμένο , καθώς και το μέγιστο βάρος που μπορεί να μεταφέρει (όριο βάρους). Η  διαδικασία φόρτωσης ελέγχεται από αρμόδιο υπάλληλο. 

Να αναπτύξετε πρόγραμμα σε ΓΛΩΣΣΑ το οποίο να υποστηρίζει τη διαδικασία  φόρτωσης σε ένα λιμάνι. Το πρόγραμμα: 

Γ1. Να περιλαμβάνει κατάλληλο τμήμα δηλώσεων.  
Μονάδες 2 

Γ2. Να διαβάζει: 

  • το όριο βάρους του πλοίου (μονάδα 1), 
  • το βάρος δεμάτων που έχει ήδη φορτωμένα, ελέγχοντας ότι η τιμή του είναι μικρότερη από το όριο βάρους, διαφορετικά να το  ξαναζητά (μονάδες 2). 

Μονάδες 3

Γ3. Για τη διαδικασία φόρτωσης: 
α) 

  • να εμφανίζει το βάρος που μπορεί ακόμα να φορτωθεί στο  πλοίο, 
  • να εμφανίζει το μήνυμα: «ΝΑ ΦΟΡΤΩΘΕΙ ΔΕΜΑ; (ΝΑΙ/ΟΧΙ)», 
  • να διαβάζει την απάντηση του αρμόδιου υπαλλήλου (χωρίς  έλεγχο εγκυρότητας). 

(μονάδες 3) 

β) Αν η απάντηση είναι «ΝΑΙ» 

  • να διαβάζει το βάρος του δέματος, να ελέγχει ότι δεν  παραβιάζεται το όριο βάρους και να επιτρέπει τη φόρτωσή του, διαφορετικά να εμφανίζει το μήνυμα «ΤΟ ΔΕΜΑ ΔΕΝ ΧΩΡΑΕΙ», (μονάδες 2) 
  • εφόσον επιτραπεί η φόρτωσή του, να υπολογίζει και να  εμφανίζει το κόστος μεταφοράς του κλιμακωτά, με βάση το  βάρος του, ως εξής: 
    • τα πρώτα 500 κιλά χρεώνονται 0,5 € / κιλό, 
    • τα επόμενα 1000 κιλά χρεώνονται 0,3 € / κιλό, 
    • τα υπόλοιπα χρεώνονται 0,1 € / κιλό.  (μονάδες 4) 

Η παραπάνω διαδικασία φόρτωσης επαναλαμβάνεται μέχρι να δοθεί ως  απάντηση από τον αρμόδιο υπάλληλο η λέξη «ΟΧΙ». (μονάδες 2) 
Μονάδες 11 

Γ4. Μετά το τέλος φόρτωσης να εμφανίζει: 

  • πόσα από τα δέματα που ελέγχθηκαν δεν φορτώθηκαν λόγω  υπέρβασης του ορίου βάρους (μονάδα 1), 
  • το συνολικό ποσό που εισπράχθηκε (μονάδα 1), 
  • το πλήθος των δεμάτων που φορτώθηκαν και είχαν βάρος που  ξεπερνούσε τα 1000 κιλά (μονάδες 2). 

Μονάδες 4

ΛΥΣΗ (περισσότερα…)

Θέμα Δ, 2020, Hμερήσια και Eσπερινά, Νέο, Παλαιό

ΝΕΟ – ΠΑΛΑΙΟ
ΘΕΜΑ Δ

Οι Κινητές Ομάδες Υγείας (ΚΟΜΥ) λαμβάνουν δείγματα βιολογικού υλικού  προσώπων για έλεγχο μόλυνσης από τον κορωνοϊό Covid-19. Σε μια  περιφέρεια δραστηριοποιούνται 20 ΚΟΜΥ. Κάθε ΚΟΜΥ στη διάρκεια μιας μέρας  μπορεί να λάβει μέχρι και 100 δείγματα από μια περιοχή της περιφέρειας. Τα  δείγματα αυτά ελέγχονται και κάθε αποτέλεσμα χαρακτηρίζεται ως θετικό (Θ) ή  αρνητικό (Α) και καταγράφεται σε πληροφοριακό σύστημα.  

Να αναπτύξετε πρόγραμμα σε ΓΛΩΣΣΑ το οποίο: 
Δ1. Να περιλαμβάνει κατάλληλο τμήμα δηλώσεων.  
Μονάδες 2 

Δ2. α) Να διαβάζει τα ονόματα των περιοχών που δραστηριοποιούνται οι  ΚΟΜΥ και να τα καταχωρίζει σε πίνακα με όνομα Π[20] (μονάδα 1). 

β) Για κάθε ΚΟΜΥ να διαβάζει διαδοχικά τα αποτελέσματα των  ελέγχων που έχει πραγματοποιήσει και κάθε αποτέλεσμα να το  καταχωρίζει ως ένα γράμμα Α ή Θ στην αντίστοιχη θέση του πίνακα  ΑΠ[20,100]. Σε περίπτωση που λήφθηκαν λιγότερα από 100 δείγματα, μετά την καταχώριση του αποτελέσματος του τελευταίου  δείγματος διαβάζεται αντί αποτελέσματος η λέξη «ΤΕΛΟΣ», η οποία  δεν καταχωρίζεται στον πίνακα. Σε αυτή την περίπτωση  τερματίζεται η εισαγωγή τιμών για τη συγκεκριμένη ΚΟΜΥ και το  πρόγραμμα καταχωρίζει σε όλες τις υπόλοιπες θέσεις της  αντίστοιχης γραμμής το γράμμα Χ (μονάδες 5).  Μονάδες 6 

Δ3. Να εμφανίζει το όνομα ή τα ονόματα των περιοχών που βρέθηκαν τα  περισσότερα θετικά δείγματα. 
Μονάδες 6 

Δ4. Να εμφανίζει τα ονόματα των περιοχών, ταξινομημένα σε φθίνουσα  σειρά ως προς το πλήθος των θετικών δειγμάτων που εντοπίστηκαν. Σε  περίπτωση που δύο ή περισσότερες περιοχές έχουν το ίδιο πλήθος  θετικών δειγμάτων, τα ονόματά τους να εμφανίζονται με αλφαβητική σειρά. Για την ταξινόμηση να καλείται το υποπρόγραμμα ΤΑΞΙΝΟΜΗΣΗ  του ερωτήματος Δ5.  
Μονάδες 3 

Δ5. Να αναπτύξετε υποπρόγραμμα με όνομα ΤΑΞΙΝΟΜΗΣΗ, που υλοποιεί  τη λειτουργία της ταξινόμησης που περιγράφεται στο ερώτημα Δ4Μονάδες 3 

Σημειώσεις 
– Για την απάντηση των ερωτημάτων Δ3, Δ4 και Δ5 να θεωρήσετε ότι ο  πίνακας ΑΠ έχει συμπληρωθεί σωστά. 
– Δεν απαιτούνται έλεγχοι εγκυρότητας τιμών. 
– Να θεωρήσετε ότι τα ονόματα των περιοχών είναι διαφορετικά μεταξύ τους.

ΛΥΣΗ (περισσότερα…)

Θέμα Δ, 2020, Eπαναληπτικές, Hμερήσια και Eσπερινά, Νέο, Παλαιό, Ομογενών

ΝΕΟ ΣΥΣΤΗΜΑ
ΘΕΜΑ Δ
Μια εταιρεία μεταφορών δραστηριοποιείται σε 20 πόλεις της ηπειρωτικής  Ελλάδας και προσφέρει ειδικές τιμές για μετακομίσεις επιτυχόντων μαθητών  στις πανελλαδικές εξετάσεις. Για το σκοπό αυτό διατηρεί αρχείο με τις  αποστάσεις των είκοσι (20) πόλεων μεταξύ των οποίων εκτελεί μεταφορές.  Όποιος επιθυμεί να μετακομίσει καλεί την εταιρεία και δηλώνει τις δύο πόλεις  μεταξύ των οποίων θα γίνει η μετακόμιση. Να αναπτύξετε πρόγραμμα σε  ΓΛΩΣΣΑ το οποίο:

Δ1. α. Να περιλαμβάνει κατάλληλο τμήμα δηλώσεων. 
 β. Να διαβάζει τα ονόματα των πόλεων και να τα καταχωρίζει σε πίνακα  ΟΝ[20]. 
Μονάδες 2 

Δ2. Να διαβάζει για κάθε ζευγάρι πόλεων τη μεταξύ τους απόσταση σε  χιλιόμετρα και να καταχωρίζει τις τιμές σε πίνακα ΑΠ[20,20]. Οι τιμές να  καταχωρίζονται μόνο στις θέσεις του πίνακα που βρίσκονται κάτω από  την κύρια διαγώνιό του. Για παράδειγμα η απόσταση της πόλης 5 από την  πόλη 10 να καταχωρίζεται μόνο στο ΑΠ[10,5] (και όχι στο ΑΠ[5,10]). 
Μονάδες 3 

Δ3. Υλοποιώντας κατάλληλη επαναληπτική διαδικασία για καθεμιά από τις  κλήσεις που δέχεται η εταιρεία: 
α. Να διαβάζει το όνομα της πόλης αναχώρησης και της πόλης προορισμού  μεταξύ των οποίων θα γίνει η μετακόμιση (μονάδα 1). 
β. Να υπολογίζει την απόσταση των δύο πόλεων καλώντας τη συνάρτηση  ΑΠΟΣΤΑΣΗ η οποία περιγράφεται στο ερώτημα Δ5. Στη συνέχεια να  εμφανίζει το κόστος της συγκεκριμένης μετακίνησης, αν η εταιρεία  χρεώνει 50 λεπτά του ευρώ ανά χιλιόμετρο για τα πρώτα 100 χιλιόμετρα  και 30 λεπτά του ευρώ ανά χιλιόμετρο για τα υπόλοιπα χιλιόμετρα 
(μονάδες 3). 
γ. Να τερματίζει την επαναληπτική διαδικασία όταν ως όνομα πόλης  αναχώρησης δοθεί η λέξη «ΤΕΛΟΣ». Σε αυτή τη περίπτωση να μην  ζητείται το όνομα της πόλης προορισμού(μονάδες 2). 
Μονάδες 6 

Δ4. Μετά την ολοκλήρωση της επαναληπτικής διαδικασίας να εμφανίζει: 
α. Τις συνολικές εισπράξεις της εταιρείας σε ευρώ (μονάδα 1). 
β. Το πλήθος των μετακομίσεων μεταξύ της πρώτης και της τελευταίας  πόλης του πίνακα ΟΝ προς οποιαδήποτε κατεύθυνση (μονάδες 2). Μονάδες 3 

Δ5. Να αναπτύξετε τη συνάρτηση ΑΠΟΣΤΑΣΗ η οποία: 
α. να δέχεται ως παραμέτρους:  
τα ονόματα δύο πόλεων,  
τους πίνακες ΑΠ, ΟΝ (μονάδες 2). 
β. να εντοπίζει τις θέσεις των δύο πόλεων στον πίνακα ΟΝ (μονάδες 2). 
γ. να επιστρέφει την απόσταση μεταξύ των δύο πόλεων εξετάζοντας τις  τιμές που βρίσκονται κάτω από την κύρια διαγώνιο (μονάδες 2). Μονάδες 6 
Σημείωση:  
α. Δεν απαιτείται κανένας έλεγχος εγκυρότητας για τις τιμές εισόδου β. Να θεωρήσετε ότι οι τιμές του πίνακα ΟΝ είναι μοναδικές. 
γ. Οι πόλεις αναχώρησης και προορισμού είναι διαφορετικές και υπάρχουν  στον πίνακα ΟΝ.

ΠΑΛΑΙΟ ΣΥΣΤΗΜΑ
Δ3. Για καθεμιά από τις τηλεφωνικές κλήσεις που δέχεται η εταιρεία:
α. Να διαβάζει το όνομα της πόλης αναχώρησης και της πόλης προορισμού μεταξύ των οποίων θα γίνει η μετακόμιση (μονάδα 1).
β. Να υπολογίζει την απόσταση των δύο πόλεων καλώντας τη συνάρτηση ΑΠΟΣΤΑΣΗ, η οποία περιγράφεται στο ερώτημα Δ5. Στη συνέχεια να εμφανίζει το κόστος της συγκεκριμένης μετακίνησης, αν η εταιρεία χρεώνει 50 λεπτά του ευρώ ανά χιλιόμετρο για τα πρώτα 100 χιλιόμετρα και 30 λεπτά του ευρώ ανά χιλιόμετρο για τα υπόλοιπα χιλιόμετρα (μονάδες 2).
Να τερματίζει την επαναληπτική διαδικασία όταν ως όνομα πόλης αναχώρησης δοθεί η λέξη «ΤΕΛΟΣ». Σε αυτή τη περίπτωση να μην ζητείται το όνομα της πόλης προορισμού (μονάδες 2).
Μονάδες 5

Δ4. Μετά την ολοκλήρωση της επαναληπτικής διαδικασίας να εμφανίζει:
α. Τις συνολικές εισπράξεις της εταιρείας σε ευρώ (μονάδα 1).
β. Το πλήθος των μετακομίσεων μεταξύ της 1ης και της 20ης πόλης του πίνακα ΟΝ προς οποιαδήποτε κατεύθυνση (μονάδες 2).
Μονάδες 3

ΟΜΟΓΕΝΩΝ ΝΕΟ
Δ3. Να ζητά το πλήθος των κλήσεων που δέχτηκε η εταιρεία στη διάρκεια μιας ημέρας (μονάδα 1).
Υλοποιώντας κατάλληλη επαναληπτική διαδικασία για καθεμιά από τις κλήσεις:
α. Να διαβάζει τον αριθμό (1-20) της πόλης αναχώρησης και της πόλης προορισμού μεταξύ των οποίων θα γίνει η μετακόμιση (μονάδα 1).
β. Να υπολογίζει την απόσταση των δύο πόλεων καλώντας τη συνάρτηση ΑΠΟΣΤΑΣΗ η οποία περιγράφεται στο ερώτημα Δ5. Στη συνέχεια να εμφανίζει το κόστος της συγκεκριμένης μετακίνησης, αν η εταιρεία χρεώνει 50 λεπτά του ευρώ ανά χιλιόμετρο για τα πρώτα 100 χιλιόμετρα και 30 λεπτά του ευρώ ανά χιλιόμετρο για τα υπόλοιπα χιλιόμετρα (μονάδες 3). Μονάδες 5

Δ4. Μετά την ολοκλήρωση της επαναληπτικής διαδικασίας να εμφανίζει:
α. Τις συνολικές εισπράξεις της εταιρείας σε ευρώ (μονάδα 1).
β. Το πλήθος των μετακομίσεων μεταξύ της πρώτης και της τελευταίας πόλης προς οποιαδήποτε κατεύθυνση (μονάδες 2).
Μονάδες 3

Δ5. Να αναπτύξετε τη συνάρτηση ΑΠΟΣΤΑΣΗ η οποία:
α. να δέχεται ως παραμέτρους:
– τους αριθμούς δύο πόλεων,
– τον πίνακα ΑΠ (μονάδες 2).
β. να επιστρέφει την απόσταση μεταξύ των δύο πόλεων εξετάζοντας τις τιμές, που βρίσκονται κάτω από την κύρια διαγώνιο (μονάδες 4).
Μονάδες 6

Σημείωση:
α. Δεν απαιτείται κανένας έλεγχος εγκυρότητας για τις τιμές εισόδου
β. Οι αριθμοί των πόλεων αναχώρησης και προορισμού είναι διαφορετικοί.

ΟΜΟΓΕΝΩΝ ΠΑΛΑΙΟ
Για καθεμιά από τις τηλεφωνικές κλήσεις που δέχεται η εταιρεία:
α. Να διαβάζει το όνομα της πόλης αναχώρησης και της πόλης
προορισμού μεταξύ των οποίων θα γίνει η μετακόμιση (μονάδα 1).
β. Να υπολογίζει την απόσταση των δύο πόλεων καλώντας τη συνάρτηση ΑΠΟΣΤΑΣΗ, η οποία περιγράφεται στο ερώτημα Δ5. Στη συνέχεια να εμφανίζει το κόστος της συγκεκριμένης μετακίνησης , αν η εταιρεία χρεώνει 50 λεπτά του ευρώ ανά χιλιόμετρο για τα πρώτα 100 χιλιόμετρα και 30 λεπτά του ευρώ ανά χιλιόμετρο για τα υπόλοιπα χιλιόμετρα (μονάδες 3).
Να τερματίζει την επαναληπτική διαδικασία όταν ως όνομα πόλης αναχώρησης δοθεί η λέξη «ΤΕΛΟΣ». Σε αυτή τη περίπτωση να μην ζητείται το όνομα της πόλης προορισμού (μονάδες 3).
Μονάδες 6

Δ4. Να αναπτύξετε τη συνάρτηση ΑΠΟΣΤΑΣΗ η οποία:
α. να δέχεται ως παραμέτρους:
– τα ονόματα δύο πόλεων,
– τους πίνακες ΑΠ, ΟΝ.
β. να εντοπίζει τις θέσεις των δύο πόλεων στον πίνακα ΟΝ.
γ. να επιστρέφει την απόσταση μεταξύ των δύο πόλεων εξετάζοντας τις τιμές που βρίσκονται κάτω από την κύρια διαγώνιο.
Μονάδες 5

Σημειώσεις:
– Δεν απαιτείται κανένας έλεγχος εγκυρότητας για τις τιμές εισόδου.
– Να θεωρήσετε ότι οι τιμές του πίνακα ΟΝ είναι μοναδικές.
– Οι πόλεις αναχώρησης και προορισμού είναι διαφορετικές και υπάρχουν στον πίνακα ΟΝ.

ΛΥΣΗ (περισσότερα…)

Θέμα Β1, 2018, επαναληπτικές, ημερήσια και εσπερινά

Β1. Δίνεται το παρακάτω τμήμα αλγόριθμου

Αν Α>5 τότε 
   Αν Β<8 τότε 
      Γράψε ‘επιτυχία’ 
   Αλλιώς_αν Α>8 τότε  
          Γράψε ‘επιτυχία’ 
   Αλλιώς 
      Γράψε ‘αποτυχία’ 
   Τέλος_αν 
Αλλιώς 
   Γράψε ‘αποτυχία’ 
Τέλος_αν 
</code class="language-javascript">

α. Να σχεδιάσετε το αντίστοιχο διάγραμμα ροής (μονάδες 5)
β. Να γράψετε ισοδύναμο τμήμα αλγορίθμου χρησιμοποιώντας μόνο μία εντολή σύνθετης επιλογής. (μονάδες 5)
Μονάδες 10

Παράρτημα Α – 2.5 Επιλογή – Άσκηση 8

Να γραφεί πρόγραμμα σε «ΓΛΩΣΣΑ»,
το οποίο να δέχεται από το πληκτρολόγιο έναν ακέραιο αριθμό και να ελέγχει
εάν είναι διψήφιος και θετικός. Στην περίπτωση που ισχύει, να τυπώνεται
το μήνυμα «Θετικός, Διψήφιος αριθμός»,
ενώ διαφορετικά να τυπώνονται για κάθε περίπτωση
«Μόνο θετικός» ή «Μόνο διψήφιος» ή «Ούτε θετικός, !ούτε διψήφιος»

Λύση με flags | Λύση με σύνθετες λογικές συνθήκες | λύση με πολλαπλές επιλογές

ΛΙΓΕΣ ΣΚΕΨΕΙΣ
! 53 div 10 = 5, έχει δεκάδες
! 153 div 100 = 1, έχει εκατοντάδες συνεπώς είναι τριψήφιος
! ή διαφορετικά
! 153 div 10 = 15, > 9
! 03 div 10 = 0, δεν έχει δεκάδες
! 53 div 100 = 0, δεν είναι τριψήφιος
! αν υπάρχουν δεκάδες,
! δεν πρέπει να υπάρχουν εκατοντάδες
! > 0 αν είναι θετικός
! (0 μπορεί να πάει είτε στους θετικούς είτε στους αρνητικούς)

ΠΡΟΓΡΑΜΜΑ parartima_a_sel_36_8_v1
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ: a
ΛΟΓΙΚΕΣ: θετικός, διψήφιος
ΑΡΧΗ
διψήφιος <– ΨΕΥΔΗΣ
θετικός <– ΨΕΥΔΗΣ
ΔΙΑΒΑΣΕ a
! a div 10 <> 0 είναι τουλάχιστον διψήφιος
! και
! a div 100 = 0 δεν είναι τριψήφιος
Αν a div 10 <> 0 και a div 100 = 0 τότε
διψήφιος <– ΑΛΗΘΗΣ
τέλος_αν

! α > 0 είναι θετικός
αν a > 0 τότε
θετικός <– ΑΛΗΘΗΣ
τέλος_αν

αν διψήφιος = ΑΛΗΘΗΣ και θετικός = ΑΛΗΘΗΣ τότε
Γράψε ‘διψήφιος και θετικός’
τέλος_αν

αν διψήφιος = ΑΛΗΘΗΣ και θετικός = ΨΕΥΔΗΣ τότε
Γράψε ‘διψήφιος’
Τέλος_αν

αν διψήφιος = ΨΕΥΔΗΣ και θετικός = ΑΛΗΘΗΣ τότε
Γράψε ‘θετικός’
Τέλος_αν

αν διψήφιος = ΨΕΥΔΗΣ και θετικός = ΨΕΥΔΗΣ τότε
Γράψε ‘Ούτε Διψήφιος, ούτε θετικός’
Τέλος_αν

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

ΠΡΟΓΡΑΜΜΑ parartima_a_sel_36_8_v2
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ: a
ΑΡΧΗ
ΔΙΑΒΑΣΕ a

! αν a div 10 <> 0 τότε τουλάχιστον διψήφιος
! αν a div 100 = 0 τότε δεν είναι τριψήφιος
! αν a > 0 τότε είναι θετικός

! 1η περίπτωση (διψήφιος και θετικός)
! a div 10 <> 0 είναι τουλάχιστον διψήφιος
! και
! a div 100 = 0 δεν είναι τριψήφιος
! και
! α > 0 είναι θετικός
Αν a div 10 <> 0 και a div 100 = 0 και a > 0 τότε
Γράψε ‘διψήφιος και θετικός’

! 2η περίπτωση (μόνο διψήφιος – αρνητικός ή 0)
! a div 10 <> 0 είναι τουλάχιστον διψήφιος
! και
! a div 100 = 0 δεν είναι τριψήφιος
! και
! α < 0 είναι αρνητικός
Αλλιώς_αν a div 10 <> 0 και a div 100 = 0 και a < 0 τότε
Γράψε ‘διψήφιος’

! 3η περίπτωση (δεν είναι διψήφιος, μόνο θετικός)
! a div 10 = 0 είναι μονοψήφιος
! ή
! a div 100 <> 0 είναι τουλάχιστον τριψήφιος
! και
! α > 0 είναι θετικός
Αλλιώςαν a div 10 = 0 ή a div 100 <> 0 και a > 0 τότε
Γράψε ‘θετικός’
Αλλιώς
αν a div 10 = 0 ή a div 100 <> 0 και a <= 0 τότε
Γράψε ‘Ούτε Διψήφιος, Ούτε Θετικός’
Τέλος_αν

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

ΠΡΟΓΡΑΜΜΑ parartima_a_sel_36_8_v3
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ: a
ΑΡΧΗ
ΔΙΑΒΑΣΕ a

! 1η περίπτωση (διψήφιος και θετικός)
Αν a >=10 και a <=99 τότε Γράψε ‘διψήφιος και θετικός’ Αλλιώςαν a> 0 τότε
Γράψε ‘μόνο θετικός, όχι διψήφιος’
Αλλιώς
αν a <= -10 και a >= -99 τότε
Γράψε ‘διψήφιος’
Αλλιώς
Γράψε ‘ούτε θετικός ούτε διψήφιος’
Τέλος_αν

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

Παράδειγμα 1, Κεφάλαιο 8, Βιβλίο, Κλίμακα υπολογισμού τιμής Υπολογιστών

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

Ο υπολογισμός με χρήση εμφωλευμένων εντολών ΑΝ είναι:

ΑΝ Ποσότητα<=50 ΤΟΤΕ 
   Κόστος <-- Ποσότητα*580 
ΑΛΛΙΩΣ
  ΑΝ Ποσότητα<=100 ΤΟΤΕ 
     Κόστος <-- Ποσότητα*520 
  ΑΛΛΙΩΣ
     ΑΝ Ποσότητα<=200 ΤΟΤΕ 
        Κόστος <-- Ποσότητα*470 
     ΑΛΛΙΩΣ 
        Κόστος <-- Ποσότητα*440 
     ΤΕΛΟΣ_ΑΝ 
  ΤΕΛΟΣ_ΑΝ 
ΤΕΛΟΣ_ΑΝ

Το ίδιο πρόγραμμα με τη χρήση της εντολής ΑΝ…ΤΟΤΕ…ΑΛΛΙΩΣ_ΑΝ έχει ως εξής:

ΑΝ Ποσότητα <= 50 ΤΟΤΕ 
   Κόστος <-- Ποσότητα*580 
ΑΛΛΙΩΣ_ΑΝ Ποσότητα<=100 ΤΟΤΕ 
Κόστος <-- Ποσότητα*520 
ΑΛΛΙΩΣ_ΑΝ Ποσότητα<=200 ΤΟΤΕ 
Κόστος <-- Ποσότητα*470 
ΑΛΛΙΩΣ 
Κόστος <-- Ποσότητα*440 
ΤΕΛΟΣ_ΑΝ 

Ένα συχνό λάθος που παρατηρείται στα προγράμματα είναι ο έλεγχος περιττών συνθηκών. Οι επιπλέον έλεγχοι αυξάνουν την πολυπλοκότητα του προγράμματος. Στο προηγούμενο παράδειγμα για το οποίο θεωρούμε ότι η ποσότητα είναι θετικός αριθμός, ένα παράδειγμα περιττών ελέγχων είναι το ακόλουθο:

ΑΝ Ποσότητα<=50 ΤΟΤΕ 
   Κόστος <-- Ποσότητα*580 
ΑΛΛΙΩΣ_ΑΝ Ποσότητα > 50 ΚΑΙ Ποσότητα <=100 ΤΟΤΕ 
Κόστος <-- Ποσότητα*520 
ΑΛΛΙΩΣ_ΑΝ Ποσότητα>100 ΚΑΙ Ποσότητα <=200 ΤΟΤΕ
      Κόστος <-- Ποσότητα*470 
ΑΛΛΙΩΣ 
      Κόστος <-- Ποσότητα*440 
ΤΕΛΟΣ_ΑΝ

Βλέπε επίσης: ΔΕ1, Κεφαλαίου 8

Παράδειγμα 2, Κεφάλαιο 8, Τετράδιο Εργασιών, Κλίμακα χρέωσης κατανάλωσης νερού (λογαριασμός νερού)

Ο λογαριασμός του νερού είναι τριμηνιαίος και υπολογίζεται με βάση την κατανάλωση νερού. Η αξία του νερού υπολογίζεται από τον παρακάτω πίνακα.

Στην αξία του νερού προστίθεται το πάγιο (έστω 1,47€), η αποχέτευση 40% της αξίας του νερού, άλλες επιβαρύνσεις 1% καθώς και το ΦΠΑ που είναι 18% στο σύνολο του λογαριασμού. Να γραφεί πρόγραμμα που διαβάζει το ονοματεπώνυμο του καταναλωτή, τον αριθμό του μετρητή νερού, την κατανάλωση (ανά τρίμηνο) και να υπολογίζει και να τυπώνει τα ποσά του λογαριασμού. Η διαδικασία επαναλαμβάνεται συνεχώς για διάφορους καταναλωτές και τερματίζεται με την είσοδο του 0 ως αριθμού μετρητή.

ΛΥΣΗ

Παραθέτουμε τη λύση του, μέ τη χρήση ΑΛΛΙΩΣ ΑΝ (αντί της ΕΠΙΛΕΞΕ)

ΠΡΟΓΡΑΜΜΑ ΛΟΓΑΡΙΑΣΜΟΣ_ΝΕΡΟΥ 
ΣΤΑΘΕΡΕΣ 
ΦΠΑ=0.18 
ΤΙΜΗ1=0,34 
ΤΙΜΗ2=0,52 
ΤΙΜΗ3=1,51 
ΤΙΜΗ4=2,11 
ΤΙΜΗ5=2,64 
ΠΑΓΙΟ=1,47 
ΜΕΤΑΒΛΗΤΕΣ 
ΑΚΕΡΑΙΕΣ: Μετρητής 
ΠΡΑΓΜΑΤΙΚΕΣ: Κατανάλωση, Τιμή, Αποχέτευση, Άλλα, Αξία_ΦΠΑ, Αξία, & Τελική_Τιμή 
ΧΑΡΑΚΤΗΡΕΣ: Όνομα, Επώνυμο 
ΑΡΧΗ 
ΓΡΑΨΕ 'Δώσε Αριθμό του μετρητή (0 για τέλος)' 
ΔΙΑΒΑΣΕ Μετρητής 
ΟΣΟ Μετρητής <> 0 ΕΠΑΝΑΛΑΒΕ 
    ΓΡΑΨΕ 'Δώσε το Ονοματεπώνυμο'
    ΔΙΑΒΑΣΕ Επώνυμο, Όνομα 
    ΓΡΑΨΕ 'Δώσε την Κατανάλωση' 
    ΔΙΑΒΑΣΕ Κατανάλωση 
    ΑΝ Κατανάλωση <= 15 ΤΟΤΕ
       Αξία <- Κατανάλωση*ΤΙΜΗ1 
    ΑΛΛΙΩΣ_ΑΝ Κατανάλωση <= 60 ΤΟΤΕ 
          Αξία <- 15*ΤΙΜΗ1 + (Κατανάλωση-15)*ΤΙΜΗ2 
    ΑΛΛΙΩΣ_ΑΝ Κατανάλωση <= 81 ΤΟΤΕ 
          Αξία <- 15*ΤΙΜΗ1 + 45*ΤΙΜΗ2 + (Κατανάλωση-60)*ΤΙΜΗ3 
    ΑΛΛΙΩΣ_ΑΝ Κατανάλωση <= 105 ΤΟΤΕ 
          Αξία <- 15*ΤΙΜΗ1 + 45*ΤΙΜΗ2 + 21*ΤΙΜΗ3 + (Κατανάλωση-81)*ΤΙΜΗ4 
    ΑΛΛΙΩΣ 
       Αξία <- 15*ΤΙΜΗ1+45*ΤΙΜΗ2+21*ΤΙΜΗ3+24*ΤΙΜΗ4+(Κατανάλωση-105)*ΤΙΜΗ5 
    ΤΕΛΟΣ_ΑΝ 
    Αποχέτευση <- Αξία*0.4 
    Άλλα <- Αξία*0.01 Τιμή <- Αξία+ Αποχέτευση+ Άλλα+ ΠΑΓΙΟ 
    Αξία_ΦΠΑ <- Τιμή* ΦΠΑ Τελική_τιμή <- Τιμή + Αξία_ΦΠΑ 
    ΓΡΑΨΕ 'Ο λογαριασμός του', Επώνυμο,' είναι ', Τελική_τιμή 
    ΓΡΑΨΕ 'Αξία νερού:', Αξία ΓΡΑΨΕ 'άλλα:', Αποχέτευση+ Άλλα, 'ΦΠΑ:', Αξία_ΦΠΑ 
    ΓΡΑΨΕ 'Δώσε Αριθμό του επόμενου μετρητή (0 για τέλος)' 
    ΔΙΑΒΑΣΕ Μετρητής 
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ 
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

Θέμα Α, Eρώτημα 5, 2015, Ημερήσια

α. Δίνονται οι παρακάτω προτάσεις σε φυσική γλώσσα:

  1. Αύξησε το Χ κατά 2.
  2. Εκχώρησε στο Υ τον μέσο όρο των Κ, Λ, Μ.
  3. Το τελευταίο ψηφίο του Α είναι
  4. Ο Β είναι διψήφιος.

Να θεωρήσετε ότι οι Α και Β είναι θετικοί ακέραιοι. Να γράψετε στο τετράδιό σας τον αριθμό της κάθε πρότασης και δίπλα την κωδικοποίησή της σε ΓΛΩΣΣΑ. (μονάδες 4)
β. Δίνεται το παρακάτω τμήμα αλγορίθμου:

 Διάβασε Χ 
 Αν Χ > 15 τότε
     Γράψε 1 
 αλλιώς_αν Χ > 23 τότε
     Γράψε 2 
 αλλιώς
     Γράψε 3 
 Τέλος_αν

Μια εντολή εξόδου στο παραπάνω τμήμα δεν πρόκειται να εκτελεστεί, όποια και αν είναι η τιμή του Χ.

  1. Ποια είναι η εντολή αυτή; (μονάδες 2)
  2. Να γράψετε τις εντολές εξόδου που είναι δυνατόν να εκτελεστούν και, δίπλα σε καθεμία από αυτές, το διάστημα τιμών του Χ για το οποίο θα εκτελεστεί η εντολή. (μονάδες 4)

Μονάδες 10

Τα θέματα σε pdf, 2015, Μαΐου-Ιουνίου, Ημερήσια

ΛΥΣΗ

Α.5.α.

  1. Χ ← Χ + 2

  2. Υ ← ( Κ + Λ + Μ ) /3

  3. Α mod 10 = 5

  4. B >= 10 KAI B < 100

A.5.β

  1. Η εντολή Γράψε 2

  2. Γράψε 1 για x > 15

Γράψε 3 για x <= 15

Θέμα Β, 2015, Επαναληπτικές, Ημερήσια

Δίνεται το παρακάτω τμήμα αλγορίθμου ΤΑ_1:

Αν x>10 τότε
   Αν x<30 τότε 
      Κ <-- 3*x
   Αλλιώς
      Κ <-- 5*x
   Τέλος_αν
Κ<-- Κ/2
Αλλιώς
   Κ <-- x
   Αν x<5 τότε 
      Κ <-- 2*Κ
   Τέλος_αν 
 Τέλος_αν

Β1. Να σχεδιάσετε στο τετράδιό σας το αντίστοιχο διάγραμμα ροής.
Μονάδες 8

Β2. Χρησιμοποιώντας μόνο μία εντολή πολλαπλής επιλογής και μόνο απλές συνθήκες, να γράψετε στο τετράδιό σας τμήμα αλγορίθμου το οποίο θα παράγει το ίδιο αποτέλεσμα με το ΤΑ_1.
Μονάδες 12

Τα θέματα σε pdf, 2015, Επαναληπτικές, Ημερήσια

ΛΥΣΗ

(περισσότερα…)

Θέμα Γ, 2013, Μαΐου-Ιουνίου, Ημερήσια

Η χρήση των κινητών τηλεφώνων, των φορητών υπολογιστών, των tablet υπολογιστών από τους νέους αυξάνεται ραγδαία. Ένας από τους στόχους των ερευνητών είναι να διερευνήσουν αν υπάρχουν επιπτώσεις στην υγεία των ανθρώπων από την αυξημένη έκθεση στα ηλεκτρομαγνητικά πεδία. Για τον σκοπό αυτό γίνονται μετρήσεις του ειδικού ρυθμού απορρόφησης (SAR) της ηλεκτρομαγνητικής ακτινοβολίας, πάνω στο ανθρώπινο σώμα. Ο δείκτης SAR μετράται σε Watt/Kgr και ο παγκόσμιος οργανισμός υγείας έχει θεσμοθετήσει ότι τα επιτρεπτά όρια για το κεφάλι και τον κορμό είναι μέχρι και 2 Watt/Kgr, ενώ για τα άκρα μέχρι και 4 Watt/Kgr. Θέλοντας να προσομοιάσουμε την έρευνα, θεωρούμε ότι σε 30 μαθητές έχουν τοποθετηθεί στον καθένα δυο μετρητές του δείκτη SAR, ο ένας στο κεφάλι και ο άλλος σε ένα από τα άνω άκρα, οι οποίοι καταγράφουν τις τιμές του αντίστοιχου δείκτη SAR κάθε 6 λεπτά.

Να αναπτύξετε αλγόριθμο σε ψευδογλώσσα, ο οποίος:

Γ1. Να διαβάζει τους πίνακες: ΚΩΔ[30], ο οποίος θα περιέχει τους κωδικούς των 30 μαθητών, τον πίνακα ΚΕΦ[30,10], του οποίου κάθε γραμμή θα αντιστοιχεί σε έναν μαθητή και θα έχει 10 τιμές που αντιστοιχούν στο SAR της κεφαλής για μια ώρα, καθώς και τον πίνακα ΑΚΡ[30,10] που κάθε γραμμή θα αντιστοιχεί σε έναν μαθητή και θα έχει 10 τιμές που αντιστοιχούν στο SAR του άκρου για μια ώρα.

Μονάδες 2

Γ2.     Για κάθε μαθητή να καταχωρεί σε δισδιάστατο πίνακα ΜΟ[30,2] τις μέσες τιμές του SAR για το κεφάλι στην 1η στήλη και για το άκρο στη 2η στήλη.

Μονάδες 4

Γ3.     Να εμφανίζει για κάθε μαθητή τον κωδικό του και ένα από τα μηνύματα, «Χαμηλός SAR», «Κοντά στα όρια», «Εκτός ορίων», όταν η μέση τιμή του SAR της κεφαλής, καθώς και η μέση τιμή του SAR ενός εκ των άκρων του κυμαίνονται στις παρακάτω περιοχές:

Μ.Ο. SAR κεφαλής <=1,8 >1,8 και <=2 >2
Μ.Ο. SAR άκρου <=3,6 >3,6   και <=4 >4
Μήνυμα «Χαμηλός SAR» «Κοντά στα όρια» «Εκτός ορίων»

Το μήνυμα που θα εμφανίζεται θα πρέπει να είναι ένα μόνο για κάθε μαθητή και θα εξάγεται από τον συνδυασμό των τιμών των μέσων όρων των δυο SAR, όπου βαρύτητα θα έχει ο μέσος όρος, ο οποίος θα βρίσκεται σε μεγαλύτερη περιοχή τιμών. Για παράδειγμα, αν ο μέσος όρος SAR του άκρου έχει τιμή 3,8 και της κεφαλής έχει τιμή 1,5 τότε πρέπει να εμφανίζεται το μήνυμα «Κοντά στα όρια» και κανένα άλλο.

Μονάδες 7

Γ4. Θεωρώντας ότι όλες οι τιμές του πίνακα ΜΟ[30,2] είναι διαφορετικές, να εμφανίζει τις τρεις μεγαλύτερες τιμές για τον μέσο όρο SAR της κεφαλής και τους κωδικούς των μαθητών που αντιστοιχούν σε αυτές. Μετά να εμφανίζει τις τρεις μεγαλύτερες τιμές για τον μέσο όρο SAR του άκρου και τους κωδικούς των μαθητών που αντιστοιχούν σε αυτές.

Μονάδες 7

2012, Μαΐου-Ιουνίου, Ημερήσια

ΛΥΣΗ (περισσότερα…)

Θέμα A, Ερώτημα 3, 2012, Επαναληπτικές, Ημερήσια

Ο παρακάτω αλγόριθμος προτάθηκε για να ελέγχει και να εκτυπώνει, αν ένας μη αρνητικός ακέραιος αριθμός είναι μονοψήφιος, διψήφιος ή τριψήφιος.

Στην περίπτωση που δοθεί αριθμός αρνητικός ή με περισσότερα από 3 ψηφία ο αλγόριθμος πρέπει να εμφανίζει το μήνυμα «Λάθος Δεδομένα».

Αλγόριθμος Ψηφία
Διάβασε x
Αν x >= 0 και x < 10 τότε
εμφάνισε ΄Μονοψήφιος΄
Αλλιώς_αν
x < 100 τότε
εμφάνισε ΄Διψήφιος΄
Αλλιώς_αν x < 1000 τότε
εμφάνισε
΄Τριψήφιος΄
Αλλιώς
εμφάνισε ΄Λάθος Δεδομένα΄
Τέλος_αν
Τέλος Ψηφία

Ο παραπάνω αλγόριθμος έχει λάθος. Δώστε ένα παράδειγμα εισόδου που θα καταδείξει το λάθος που υπάρχει στον αλγόριθμο (Μονάδες 3).
Στη συνέχεια να γράψετε τον αλγόριθμο στο τετράδιο σας κάνοντας τις απαραίτητες διορθώσεις, έτσι ώστε να λειτουργεί σωστά (Μονάδες 7).

Μονάδες 10

Τα θέματα σε pdf, 2012, Επαναληπτικές, Ημερήσια

Παράδειγμα 4, Βιβλίο μαθητή, Ανάθεση γραμμάτων σε αριθμούς

Να διαβασθεί ένας ακέραιος και να εκτυπωθεί το αντίστοιχο γράμμα της αλφαβήτου αν ο ακέραιος έχει τιμή 1 ή 2 ή 3, διαφορετικά να εκτυπωθεί η λέξη “άγνωστος”.

Αλγόριθμος Παράδειγμα_4
Διάβασε a
Αν a = 1 τότε
εκτύπωσε “Α”
αλλιώς_αν a = 2 τότε
εκτύπωσε “Β”
αλλιώς_αν a = 3 τότε
εκτύπωσε “Γ”
αλλιώς
εκτύπωσε “άγνωστος”
Τέλος_αν
Τέλος Παράδειγμα_4

par4kef2bm