Λευκακησ Αεππ 2013 E-book
August 18, 2017 | Author: Filippou Theodosios | Category: N/A
Short Description
ΑΕΠΠ...
Description
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ
Γ ΤΑΞΗ ΓΕΝΙΚΟΥ ΛΥΚΕΙΟΥ Τεχνολογική Κατεύθυνση
Κ Υ Ρ Ι Α Κ Ο Σ Κ. Λ Ε Υ Κ Α Κ Η Σ
ΧΙΟΣ, ΙΟΥΝΙΟΣ 2013
Πρόλογος Το παρόν βοήθημα προτείνεται ως συμπλήρωμα του σχολικού βιβλίου για τη διδασκαλία του μαθήματος, «Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον» της Γ ’ Τάξης Γενικού Λυκείου στην Τεχνολογική κατεύθυνση. Είναι ένα πολύ σημαντικό μάθημα που προετοιμάζει τους μαθητές για τη διδασκαλία των σύγχρονων Γλωσσών Προγραμματισμού μετά την εισαγωγή τους στην τριτοβάθμια εκπαίδευση. Ο σκοπός του μαθήματος είναι να μεταδόσει στους μαθητές τις βασικές αρχές του δομημένου και του τμηματικού προγραμματισμού. Στις σελίδες που ακολουθούν παραθέτονται σημαντικά σημεία της θεωρίας, θεωρητικά ζητήματα και ασκήσεις, όλα προσαρμοσμένα στο πνεύμα των εξετάσεων. Οι πηγές είναι ποικίλου επιπέδου ξεκινούν από σχολικό επίπεδο και φτάνουν έως και πανεπιστημιακό. Σε καμία περίπτωση δεν πρέπει να θεωρηθεί ότι το βιβλίο αυτό αντικαθιστά το σχολικό. Έχει δημιουργηθεί με βάση αυτό και έρχεται να το συμπληρώσει και να το εμπλουτίσει. Ευελπιστώ ότι μια προσεκτική μελέτη του υλικού αποφέρει σχεδόν βέβαια το επιθυμητό αποτέλεσμα με βάση πάντα τις προσδοκίες τους καθενός μαθητή. Επιπλέον περιέχει περιέχει επαναληπτικά θέματα πάνω σε όλη την ύλη της Ανάπτυξης Εφαρμογών σε Προγραμματιστικό Περιβάλλον και αποσκοπεί στη σωστή επανάληψη όλων όσων διδαχθήκατε. Συγκεκριμένα περιέχει τα θέματα που τέθηκαν στις πανελλήνιες εξετάσεις στο μάθημα Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον της Τεχνολογικής κατευθυνσης κατά τη διάρκεια των ετών 2000 έως και 2013. Συγκεντρώθηκαν όλα τα θέματα από κάθε τύπο σχολείου και εξεταστικής περιόδου έτσι περιέχει : Θέματα Ημερησίων Λυκείων, θέματα Εσπερινών Λυκείων, θέματα Επαναληπτικών Ημερησίων Λυκείων καθώς και θέματα Επαναληπτικών Εσπερινών Λυκείων. Υπάρχουν διάφορες επαναληπτικές ασκήσεις που έχω συλλέξει από διάφορες πηγές ή έχω δημιουργήσει μόνος μου, καθώς και επαναληπτικά διαγωνίσματα προσομοίωσης που έχουν τεθεί σε υποψήφιους μαθητές προηγουμένων ετών και βοηθούν στο να μπείτε στο κλίμα των θεμάτων. Προτείνεται να λυθούν όλα τα θέματα για σωστή προετοιμασία και επανάληψη. Καλή μελέτη !
Καλό Ξεκίνημα Κυριάκος Λευκάκης
Περιεχόµενα ΠΡΟΛΟΓΟΣ ..................................................................................................................................................................... 4 ΠΕΡΙΕΧΟΜΕΝΑ.............................................................................................................................................................. 6 ΔΙΔΑΚΤΕΑ – ΕΞΕΤΑΣΤΕΑ ΎΛΗ ................................................................................................................................. 8 ΚΕΦΑΛΑΙΟ 1Ο – Η ΈΝΝΟΙΑ ΤΟΥ ΠΡΟΒΛΗΜΑΤΟΣ ............................................................................................ 11 Α. ΘΕΩΡΙΑ ............................................................................................................................................................... 11 1.1 ΟΡΙΣΜΟΣ – ΑΝΤΙΜΕΤΩΠΙΣΗ ΠΡΟΒΛΗΜΑΤΟΣ ....................................................................................................... 11 1.1.1 Ορισμός Προβλήματος .............................................................................................................................. 11 1.1.2 Αντιμετώπιση ............................................................................................................................................. 11 1.2 ΤΑ ΤΡΙΑ ΣΤΑΔΙΑ ΤΗΣ ΕΠΙΛΥΣΗΣ ........................................................................................................................... 11 1.2.1 Κατανόηση ................................................................................................................................................ 11 1.2.2 Ανάλυση..................................................................................................................................................... 11 1.2.3 Ορισμός Δομής Προβλήματος ................................................................................................................... 11 1.2.4 Επίλυση ..................................................................................................................................................... 12 1.2.5 Δεδομένα – Πληροφορίες – Επεξεργασία .................................................................................................. 12 1.3 ΚΑΤΗΓΟΡΙΟΠΟΙΗΣΗ ΠΡΟΒΛΗΜΑΤΩΝ ................................................................................................................... 12 1.3.1 Με κριτήριο τη δυνατότητα επίλυσης ......................................................................................................... 12 1.3.2 Με κριτήριο το βαθμό δόμησης των λύσεων .............................................................................................. 13 1.3.3 Με κριτήριο το είδος επίλυσης ................................................................................................................... 13 1.4 ΠΡΟΒΛΗΜΑ – ΆΝΘΡΩΠΟΣ – ΥΠΟΛΟΓΙΣΤΗΣ ......................................................................................................... 13 Β. ΕΡΩΤΗΣΕΙΣ ΘΕΩΡΙΑΣ ........................................................................................................................................... 14 Γ. ΘΕΜΑΤΑ ΓΙΑ ΛΥΣΗ .............................................................................................................................................. 15 ΚΕΦΑΛΑΙΟ 2Ο - ΑΛΓΟΡΙΘΜΟΙ – ΨΕΥΔΟΓΛΩΣΣΑ – «ΓΛΩΣΣΑ» - ΔΟΜΗ ΑΚΟΛΟΥΘΙΑΣ ......................... 21 Α. ΘΕΩΡΙΑ ............................................................................................................................................................... 21 2.1 O ΑΛΓΟΡΙΘΜΟΣ ................................................................................................................................................... 21 2.1.1 Ορισμός Αλγορίθμου – Κριτήρια ............................................................................................................... 21 2.2 ΜΕΘΟΔΟΙ ΑΝΑΠΑΡΑΣΤΑΣΗΣ ΑΛΓΟΡΙΘΜΩΝ ......................................................................................................... 21 2.2.1 Τρόποι Αναπαράστασης ............................................................................................................................. 21 2.2.2 Διαγραμματικές Τεχνικές (Διάγραμμα Ροής ή Flowchart) ......................................................................... 21 2.2.3 Με κωδικοποίηση ...................................................................................................................................... 22 2.3 ΣΤΟΙΧΕΙΑ ΨΕΥΔΟΓΛΩΣΣΑΣ .................................................................................................................................. 22 2.3.1 Ορισμοί – Εντολές ..................................................................................................................................... 22 2.3.2 Δομή Αλγορίθμου....................................................................................................................................... 23 2.3.3 Τελεστές – Συναρτήσεις – Εκφράσεις ........................................................................................................ 24 2.4 ΣΤΟΙΧΕΙΑ ΤΟΥ ΠΡOΓΡΑΜΜΑΤΙΣΤΙΚΟΥ ΠΕΡΙΒΑΛΛΟΝΤΟΣ ΤΗΣ «ΓΛΩΣΣΑΣ» ....................................................... 26 2.4.1 Δομή Προγράμματος της «ΓΛΩΣΣΑΣ» ...................................................................................................... 26 2.5 Η ΔΟΜΗ ΤΗΣ ΑΚΟΛΟΥΘΙΑΣ .................................................................................................................................. 27 Β. ΕΡΩΤΗΣΕΙΣ ΘΕΩΡΙΑΣ ........................................................................................................................................... 28 Γ. ΛΥΜΕΝΑ ΘΕΜΑΤΑ .............................................................................................................................................. 29 Δ. ΘΕΜΑΤΑ ΓΙΑ ΛΥΣΗ .............................................................................................................................................. 33 ΚΕΦΑΛΑΙΟ 3Ο – ΔΟΜΗ ΕΠΙΛΟΓΗΣ ........................................................................................................................ 47 ΘΕΩΡΙΑ ............................................................................................................................................................... 47 3.1 Η Δομή Επιλογής............................................................................................................................................ 47 3.2 Η ΕΝΤΟΛΗ ΕΠΙΛΟΓΗΣ ΑΝ ................................................................................................................................... 47 3.2.1 Απλή επιλογή.................................................................................................................................................. 47 3.2.2 Τυπική επιλογή ................................................................................................................................................ 48 3.2.3 Πολλαπλή επιλογή.......................................................................................................................................... 49 3.2.4 Εμφωλευμένες επιλογές ............................................................................................................................. 49 Β. ΕΡΩΤΗΣΕΙΣ .......................................................................................................................................................... 50 Γ. ΛΥΜΕΝΑ ΘΕΜΑΤΑ .............................................................................................................................................. 51 Δ. ΘΕΜΑΤΑ ΓΙΑ ΛΥΣΗ .............................................................................................................................................. 56 Α.
ΚΕΦΑΛΑΙΟ 4Ο – ΔΟΜΗ ΕΠΑΝΑΛΗΨΗΣ ................................................................................................................ 77 Α.
ΘΕΩΡΙΑ ............................................................................................................................................................... 77
4.1 Η ΔΟΜΗ ΕΠΑΝΑΛΗΨΗΣ ....................................................................................................................................... 77 4.1.1 Η εντολή Όσο ... Επανάλαβε...................................................................................................................... 77 4.1.2 Η εντολή ... Μέχρις_οτου........................................................................................................................... 78 4.1.3 Η εντολή Για ... από ... μέχρι ... με_βήμα ... ............................................................................................... 80 Β. ΕΡΩΤΗΣΕΙΣ .......................................................................................................................................................... 84 Γ. ΛΥΜΕΝΑ ΘΕΜΑΤΑ .............................................................................................................................................. 85 Δ. ΘΕΜΑΤΑ ΓΙΑ ΛΥΣΗ .............................................................................................................................................. 91 ΚΕΦΑΛΑΙΟ 5Ο – ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ – ΜΟΝΟΔΙΑΣΤΑΤΟΙ ΠΙΝΑΚΕΣ..................................................... 117 Α. ΘΕΩΡΙΑ ............................................................................................................................................................. 117 5.1 ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ......................................................................................................................................... 117 5.1.1 Σημασία δομών δεδομένων ..................................................................................................................... 117 5.2 ΟΙ ΚΥΡΙΟΤΕΡΕΣ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ................................................................................................................ 117 5.2.1 Η Στοίβα ................................................................................................................................................. 117 5.2.2 Η Ουρά .................................................................................................................................................... 118 5.2.3 Ο Πίνακας ............................................................................................................................................... 118 5.3 ΜΟΝΟΔΙΑΣΤΑΤΟΙ ΠΙΝΑΚΕΣ ................................................................................................................................ 118 5.3.1 Δήλωση δεδομένων πινάκων ................................................................................................................... 119 Β. ΕΡΩΤΗΣΕΙΣ ........................................................................................................................................................ 124 Γ. ΛΥΜΕΝΑ ΘΕΜΑΤΑ ............................................................................................................................................ 124 Δ. ΘΕΜΑΤΑ ΓΙΑ ΛΥΣΗ ............................................................................................................................................ 130 ΚΕΦΑΛΑΙΟ 6Ο – ΠΙΝΑΚΕΣ ΔΥΟ ΔΙΑΣΤΑΣΕΩΝ ................................................................................................. 147 Α. 6.1 Β. Γ. Δ.
ΘΕΩΡΙΑ ............................................................................................................................................................. 147 ΠΙΝΑΚΕΣ ΔΥΟ ΔΙΑΣΤΑΣΕΩΝ .............................................................................................................................. 147 ΕΡΩΤΗΣΕΙΣ ........................................................................................................................................................ 153 ΛΥΜΕΝΑ ΘΕΜΑΤΑ ............................................................................................................................................ 153 ΘΕΜΑΤΑ ΓΙΑ ΛΥΣΗ ............................................................................................................................................ 157
ΚΕΦΑΛΑΙΟ 7Ο – ΓΛΩΣΣΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ – ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΑ ΠΕΡΙΒΑΛΛΟΝΤΑ......... 173 Α. ΘΕΩΡΙΑ ............................................................................................................................................................. 173 ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΑ ΠΕΡΙΒΑΛΛΟΝΤΑ ........................................................................................................................ 173 Β. ΘΕΜΑΤΑ ΓΙΑ ΛΥΣΗ ............................................................................................................................................ 185 ΚΕΦΑΛΑΙΟ 8Ο – ΤΜΗΜΑΤΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ................................................................................ 189 Α. ΘΕΩΡΙΑ ............................................................................................................................................................. 189 8.1 ΟΡΙΣΜΟΣ ΤΜΗΜΑΤΙΚΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ..................................................................................................... 189 8.1.1 Ιδιότητες και πλεονεκτήματα των υποπρογραμμάτων .............................................................................. 189 8.1.2 Είδη υποπρογραμμάτων........................................................................................................................... 189 8.1.3 Παράμετροι ............................................................................................................................................. 190 8.2 ΣΥΝΑΡΤΗΣΕΙΣ .................................................................................................................................................... 191 8.3 ΔΙΑΔΙΚΑΣΙΕΣ ..................................................................................................................................................... 193 Β. ΕΡΩΤΗΣΕΙΣ ........................................................................................................................................................ 194 Γ. ΛΥΜΕΝΑ ΘΕΜΑΤΑ ............................................................................................................................................ 195 Δ. ΘΕΜΑΤΑ ΓΙΑ ΛΥΣΗ ............................................................................................................................................ 199 ΚΕΦΑΛΑΙΟ 9Ο – ΘΕΜΑΤΑ ΠΑΝΕΛΛΗΝΙΩΝ ΕΞΕΤΑΣΕΩΝ.............................................................................. 215 ΜΕΡΟΣ Α – ΕΝΝΟΙΑ ΤΟΥ ΠΡΟΒΛΗΜΑΤΟΣ – ΒΑΣΙΚΕΣ ΑΛΓΟΡΙΘΜΙΚΕΣ ΔΟΜΕΣ ...................................... 215 ΜΕΡΟΣ Β – ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ – ΠΙΝΑΚΕΣ .................................................................................................. 284 ΜΕΡΟΣ Γ – ΤΜΗΜΑΤΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ........................................................................................... 321 ΜΕΡΟΣ Δ – ΘΕΜΑΤΑ ΛΟΙΠΩΝ ΕΝΟΤΗΤΩΝ – ΣΥΝΔΥΑΣΤΙΚΑ ΘΕΩΡΙΑΣ...................................................... 334 ΚΕΦΑΛΑΙΟ 10Ο – ΓΕΝΙΚΑ ΕΠΑΝΑΛΗΠΤΙΚΑ ΘΕΜΑΤΑ .................................................................................. 349 ΚΕΦΑΛΑΙΟ 11Ο – ΤΕΛΙΚΕΣ ΠΡΟΤΕΙΝΟΜΕΝΕΣ ΑΣΚΗΣΕΙΣ .......................................................................... 373
∆ιδακτέα – Εξεταστέα Ύλη Από το βιβλίο "Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον" των Α. Βακάλη, Η. Γιαννόπουλου, Ν. Ιωαννίδη, Χ. Κοίλια, Κ. Μάλαμα, Ι. Μανωλόπουλου, Π. Πολίτη, έκδοση Παιδαγωγικού Ινστιτούτου. 1.
Ανάλυση προβλήματος 1.1 Η έννοια πρόβλημα 1.2 Κατανόηση προβλήματος 1.3 Δομή προβλήματος 1.4 Καθορισμός απαιτήσεων 1.5 Κατηγορίες προβλημάτων 1.6 Πρόβλημα και υπολογιστής
2.
Βασικές Έννοιες Αλγορίθμων 2.1 Τι είναι αλγόριθμος 2.3 Περιγραφή και αναπαράσταση αλγορίθμων 2.4 Βασικές συνιστώσες/εντολές ενός αλγορίθμου 2.4.1 Δομή ακολουθίας 2.4.2 Δομή επιλογής 2.4.3 Διαδικασίες πολλαπλών επιλογών (αφαιρείται η τελευταία πρόταση της σελ. 36 "Αν οι διαφορετικές επιλογές ... στο παράδειγμα που ακολουθεί.", που αναφέρεται στην πολλαπλή επιλογή, καθώς και το Παράδειγμα 5. Επιλογή ορίων, σελ. 37).
2.4.4 Εμφωλευμένες Διαδικασίες 2.4.5 Δομή επανάληψης 3.
Δομές Δεδομένων και Αλγόριθμοι Δεδομένα 3.1 3.2 Αλγόριθμοι + Δομές Δεδομένων =Προγράμματα 3.3 Πίνακες 3.4 Στοίβα 3.5 Ουρά Αναζήτηση 3.6 3.7 Ταξινόμηση
6.
Εισαγωγή στον Προγραμματισμό 6.1 Η έννοια του προγράμματος 6.2 Ιστορική αναδρομή 6.2.1 Γλώσσες Μηχανής 6.2.2 Συμβολικές γλώσσες ή γλώσσες χαμηλού επιπέδου 6.2.3 Γλώσσες υψηλού επιπέδου 6.2.4 Γλώσσες 4ης γενιάς 6.3 Φυσικές και τεχνητές γλώσσες 6.4 Τεχνικές σχεδίασης προγραμμάτων 6.4.1 Ιεραρχική σχεδίαση προγράμματος 6.4.2 Τμηματικός Προγραμματισμός 6.4.3 Δομημένος Προγραμματισμός 6.7 Προγραμματιστικά περιβάλλοντα
7.
Βασικά στοιχεία Προγραμματισμού 7.1 Το αλφάβητο της γλώσσας 7.2 Τύποι Δεδομένων 7.3 Σταθερές 7.4 Μεταβλητές 7.5 Αριθμητικοί τελεστές 7.6 Συναρτήσεις 7.7 Αριθμητικές εκφράσεις 7.8 Εντολή εκχώρησης 7.9 Εντολές εισόδου-εξόδου 7.10 Δομή προγράμματος
8.
Επιλογή και επανάληψη 8.1 Εντολές επιλογής 8.1.1 Εντολή ΑΝ 8.2 Εντολές επανάληψης 8.2.1 Εντολή ΟΣΟ... ΕΠΑΝΑΛΑΒΕ 8.2.2 Εντολή ΜΕΧΡΙΣ_ΟΤΟΥ 8.2.3 Εντολή ΓΙΑ... ΑΠΟ... ΜΕΧΡΙ Πίνακες 9.1 Μονοδιάστατοι πίνακες 9.2 Πότε πρέπει να χρησιμοποιούνται πίνακες 9.3 Πολυδιάστατοι πίνακες 9.4 Τυπικές επεξεργασίες πινάκων
9.
10.
Υποπρογράμματα 10.1 Τμηματικός Προγραμματισμός 10.2 Χαρακτηριστικά των υποπρογραμμάτων 10.3 Πλεονεκτήματα του τμηματικού Προγραμματισμού 10.4 Παράμετροι 10.5 Διαδικασίες και συναρτήσεις 10.5.1 Ορισμός και κλήση συναρτήσεων 10.5.2 Ορισμός και κλήση διαδικασιών 10.5.3 Πραγματικές και τυπικές παράμετροι
Οι ενότητες 3.4, 3.5 εξετάζονται μόνο ως θεωρία. ΣΗΜΕΙΩΣΗ: Οι μαθητές θα μπορούν να διατυπώνουν τις λύσεις των ασκήσεων των εξετάσεων είτε σε οποιαδήποτε μορφή παράστασης αλγορίθμου είτε σε «ΓΛΩΣΣΑ», όπως αυτή ορίζεται και χρησιμοποιείται στο διδακτικό εγχειρίδιο. H συγκεκριμένη ύλη εξετάστηκε στις πανελλήνιες του 2013. Τυχόν αλλαγές για τις φετινές εξετάσεις θα ανακοινωθούν μετά το άνοιγμα των σχολείων.
ΚΕΦΑΛΑΙΟ 1ο
Η ΕΝΝΟΙΑ ΤΟΥ ΠΡΟΒΛΗΜΑΤΟΣ
Κεφάλαιο 1ο – Η Έννοια του Προβλήµατος Α.
Θεωρία
1.1
Ορισμός – Αντιμετώπιση Προβλήματος 1.1.1 Ορισμός Προβλήματος Με τον όρο πρόβλημα εννοούμε μια κατάσταση που χρήζει αντιμετώπισης (επίλυσης) και η λύση της δεν είναι γνωστή ούτε προφανής. 1.1.2 Αντιμετώπιση Για να αντιμετωπίσουμε σωστά ένα πρόβλημα χρειάζεται να ακολουθήσουμε με τη σειρά τα παρακάτω στάδια :
1.2
Τα τρία στάδια της αντιμετώπισης ενός προβλήματος 1.2.1 Κατανόηση Η σωστή κατανόηση ενός προβλήματος εξαρτάται από δύο παράγοντες : α.
Τη σαφή διατύπωση από αυτόν που θέτει το πρόβλημα (να μην αφήνει ασάφειες και παρερμηνείες).
β.
Τη σωστή ερμηνεία από αυτόν που θα κληθεί να το επιλύσει ( δηλαδή τι ακριβώς έχει καταλάβει – κατανοήσει).
1.2.2 Ανάλυση Σημαίνει ότι ξεκινάμε να ανακαλύπτουμε τη δομή του προβλήματος, δηλαδή να το χωρίσουμε σε μικρότερα και απλούστερα υποπροβλήματα, καθένα από τα οποία έχει απλούστερη λύση. Ας δούμε όμως τι σημαίνει δομή ενός προβλήματος ; 1.2.3 Ορισμός Δομής Προβλήματος Εννοούμε τα συστατικά μέρη από τα οποία συντίθεται ένα πρόβλημα, δηλαδή τα επιμέρους τμήματα που το αποτελούν καθώς και τον τρόπο με τον οποίο συνδέονται μεταξύ τους. Η δομή ενός προβλήματος φαίνεται καλύτερα αν προχωρήσουμε στη διαγραμματική αναπαράσταση του προβλήματος. Συγκεκριμένα για να γίνει αυτή πρέπει να ακολουθηθούν τρεις κανόνες οι οποίοι αναφέρονται πιο κάτω. α.
Το αρχικό πρόβλημα αναπαρίσταται από ένα ορθογώνιο παραλληλόγραμμο.
β.
Καθένα από τα απλούστερα προβλήματα στα οποία αναλύεται ένα πρόβλημα αναπαρίσταται κι αυτό από ένα ορθογώνιο. 11
γ.
Τα παραλληλόγραμμα που αναπαριστούν τα απλούστερα προβλήματα σχεδιάζονται ένα επίπεδο χαμηλότερα έτσι ώστε σε κάθε κατώτερο επίπεδο δημιουργείται η γραφική αναπαράσταση των προβλημάτων στα οποία αναλύονται τα προβλήματος του αμέσως υψηλότερου επιπέδου.
1.2.4 Επίλυση Για τη σωστή επίλυση του προβλήματος βασική προϋπόθεση αποτελεί ο καθορισμός των απαιτήσεων. Αυτό σημαίνει α. να προσδιορίσουμε τα δεδομένα που παρέχονται και β. να προσδιορίσουμε τα ζητούμενα, δηλαδή τι αποτελέσματα περιμένουμε. 1.2.5 Δεδομένα – Πληροφορίες – Επεξεργασία Δεδομένο είναι οτιδήποτε μπορεί να γίνει αντιληπτό από έναν τουλάχιστον παρατηρητή με μία από τις πέντε αισθήσεις. Πληροφορία είναι γνωσιακό στοιχείο που προκύπτει από επεξεργασία δεδομένων. Επεξεργασία δεδομένων είναι μια διαδικασία κατά την οποία ένας μηχανισμός δέχεται δεδομένα, τα επεξεργάζεται και αποδίδει χρήσιμες πληροφορίες. Για παράδειγμα η μέση θερμοκρασία ενός μήνα (πληροφορία) προκύπτει από τον υπολογισμό (επεξεργασία) των μέσων ημερήσιων θερμοκρασιών του μήνα (δεδομένα).
1.3
Κατηγοριοποίηση Προβλημάτων 1.3.1 Με κριτήριο τη δυνατότητα επίλυσης Κατηγορία
Επιλύσιμα
Ανοικτά
Άλυτα
Χαρακτηριστικό Η λύση τους είναι γνωστή κι έχει διατυπωθεί. (π.χ. η λύση της δευτεροβάθμιας εξίσωσης). Υπάρχουν όμως προβλήματα που δεν έχουν λυθεί ακόμη αλλά η συνάφεια τους με κάποια άλλα μας οδηγεί στο να θεωρούμε ότι έχουν σίγουρα λύση. Η λύση τους δεν έχει ακόμα βρεθεί αλλά δεν έχει αποκλειστεί η δυνατότητα επίλυσης τους. (π.χ. το πρόβλημα της ενοποίησης των τεσσάρων πεδίων της φυσικής) Έχουμε παραδεχτεί ότι δεν επιδέχονται λύση. (π.χ. Ο τετραγωνισμός του κύκλου)
12
1.3.2 Με κριτήριο το βαθμό δόμησης των λύσεων Κατηγορία Δομημένα
Χαρακτηριστικό Η λύση τους είναι μια αυτοματοποιημένη διαδικασία. (π.χ. το σχήμα Horner)
Η λύση τους μπορεί να επιλεγεί ανάμεσα από ένα πλήθος πιθανών λύσεων. (π.χ. Το μέσο μεταφοράς που θα Ημιδομημένα επιλέξουμε για να μεταβούμε σε έναν προορισμό)
Αδόμητα
Η λύση τους δεν είναι αυτοματοποιημένη, δηλαδή δεν μπορούμε να βρούμε ένα συγκεκριμένο τρόπο λύσης, αλλά βασιζόμαστε στην ανθρώπινη διαίσθηση και εμπειρία. (π.χ. ο τόπος και ο τρόπος οργάνωσης ενός εφηβικού πάρτι)
1.3.3 Με κριτήριο το είδος επίλυσης Κατηγορία Απόφασης
Υπολογιστικά
Χαρακτηριστικό Η λύση τους είναι του τύπου «ΝΑΙ» ή «ΟΧΙ». (π.χ. το 5 διαιρείται με το 140 ;) Για να τα επιλύσουμε πρέπει να κάνουμε υπολογισμούς. (π.χ. η εύρεση του εμβαδού κυκλικού τμήματος)
Η λύση που ζητάμε πρέπει να είναι η καλύτερη δυνατή. Βελτιστοποίησης (π.χ. η φόρτωση ενός φορτηγού ώστε να χωρέσει τα περισσότερα πράγματα)
1.4
Πρόβλημα – Άνθρωπος – Υπολογιστής 1.4.1 Σε πολλούς δημιουργείται η λανθασμένη εντύπωση ότι ο ηλεκτρονικός υπολογιστής είναι μια μηχανή που λύνει τα προβλήματα μας. Σε καμία περίπτωση δεν μπορεί ο υπολογιστής να λύσει κάτι αν δεν υπάρχει ο κατάλληλος χειριστής. Ο υπολογιστής είναι μια μηχανή στην υπηρεσία του κατασκευαστή του. Δεν έχει κρίση, διαίσθηση και φυσική νοημοσύνη. Γι’ αυτό δεν μπορεί να αντικαταστήσει τον άνθρωπο, παρά μόνο να τον διευκολύνει. Οι λόγοι που καθιστούν τον υπολογιστή πολύ σημαντικό αναφέρονται παρακάτω : Η πολυπλοκότητα των υπολογισμών. Η μεγάλη ταχύτητα εκτέλεσης των πράξεων (Μερικά δισεκατομμύρια πράξεις ανά δευτερόλεπτο). Ο μεγάλος όγκος των δεδομένων. Η επαναληπτικότητα των διαδικασιών.
13
1.4.2 Παρόλη την ισχύ που διαθέτουν οι σύγχρονοι υπολογιστές είναι σημαντικό να σημειωθεί ότι τα κυκλώματα τους εκτελούν 3 μόνο λειτουργίες !!! Πρόσθεση. ( Με βάση την πρόσθεση εκτελούνται και όλες οι άλλες αριθμητικές πράξεις ) Σύγκριση. ( Η βάση για όλες τις λογικές πράξεις.) Μεταφορά των δεδομένων. 1.4.3 Σύγκριση υπολογιστή - ανθρώπου Ο άνθρωπος διαθέτει έμφυτες τις ικανότητες που απαιτούνται για την αντιμετώπιση μιας τεράστιας γκάμας προβλημάτων {ενώ ο υπολογιστής όχι}. Η πολυπλοκότητα συλλογισμών του ανθρώπου είναι εξαιρετικά μεγάλη. Ο υπολογιστής απλά χειρίζεται στοιχεία ενώ ο άνθρωπος σκέπτεται παράγει ιδέες. Το σημείο αυτό δίνει μία αναμφισβήτητα τεράστια ποιοτική διαφορά. Το σημείο που υπερτερεί αναμφισβήτητα ο Η/Υ είναι η ταχύτητα εκτέλεσης των πράξεων
Β.
Ερωτήσεις Θεωρίας
1.1 Να δώσετε τους ορισμούς των παρακάτω εννοιών : πρόβλημα, δομή προβλήματος. 1.2 Τι ονομάζεται δεδομένο, τι πληροφορία και τι επεξεργασία δεδομένων ; 1.3 Σε ποιες κατηγορίες και με βάση ποια κριτήρια χωρίζονται τα προβλήματα ; Ποιο είναι το βασικό χαρακτηριστικό των παραπάνω κατηγοριών προβλημάτων; Να αναφέρετε παραδείγματα. 1.4 Ποια είναι τα στάδια που πρέπει να ακολουθούμε για τη σωστή αντιμετώπιση ενός προβλήματος ; Να αναλύσετε το καθένα.
1.5 Ποια η σχέση του ανθρώπου με τον υπολογιστή σε ότι αφορά την επίλυση διαφόρων προβλημάτων ;
1.6 Ποιοι είναι οι κύριοι λόγοι που μας οδηγούν στο να αναθέσουμε την επίλυση ενός προβλήματος στον Η/Υ ; 1.7 Ποιες είναι οι λειτουργίες που μπορεί να εκτελέσει ένας Η/Υ ; 1.8 Να αναφέρετε κάποια σύγχρονα προβλήματα που αντιμετωπίστηκαν ή πρέπει να αντιμετωπιστούν.
14
1.9 Ποια μέθοδος χρησιμοποιείται για τη γραφική απεικόνιση της δομής ενός προβλήματος ; Να αναλύσετε τους κανόνες με βάση τους οποίους επιτυγχάνεται.
Γ.
Θέματα για λύση 1.10 Να χαρακτηρίσετε τις παρακάτω προτάσεις ως σωστές (Σ) ή λάθος (Λ).
α.
Η επίλυση της πρωτοβάθμιας εξίσωσης αποτελεί αδόμητο πρόβλημα.
β.
Ένα δομημένο πρόβλημα είναι πάντοτε επιλύσιμο.
γ.
Ένα επιλύσιμο πρόβλημα είναι πάντοτε δομημένο.
δ.
Τα άλυτα προβλήματα είναι αυτά που ακόμη δεν έχει βρεθεί η λύση τους.
ε.
Η ανάλυση ενός προβλήματος σε ένα σύγχρονο υπολογιστικό περιβάλλον, περιλαμβάνει την εισαγωγή και την εξαγωγή δεδομένων.
1.11 Να χαρακτηρίσετε τις παρακάτω προτάσεις ως σωστές (Σ) ή λάθος (Λ). α.
Η επίλυση ενός προβλήματος προϋποθέτει την κατανόηση και την ανάλυση.
β.
Ο υπολογιστής εκτελεί μόνο τρεις λειτουργίες, πολλαπλασιασμό και τη μεταφορά δεδομένων.
γ.
Επιλύσιμο είναι ένα πρόβλημα για το οποίο ξέρουμε ότι έχει λύση, αλλά αυτή δεν έχει βρεθεί ακόμη.
δ.
Οι ικανότητες του υπολογιστή περιορίζονται σε ποσοτικό και όχι σε ποιοτικό επίπεδο.
ε.
Όσο προχωράει η ανάλυση ενός προβλήματος τόσο γίνεται πιο σύνθετη η λύση του.
την
πρόσθεση,
τον
1.12 Να χαρακτηρίσετε τις παρακάτω προτάσεις ως σωστές (Σ) ή λάθος (Λ). α.
Ένα πρόβλημα μπορεί να παρασταθεί είτε διαγραμματικά, είτε φραστικά.
β.
Ένα πρόβλημα μπορεί να αναλυθεί σε επιμέρους προβλήματα.
γ.
Η κατανόηση ενός προβλήματος ακολουθεί την ανάλυση του.
δ.
Ο ταχύτερος μηχανισμός επεξεργασίας δεδομένων είναι ο υπολογιστής.
ε.
Αν ένα πρόβλημα απαιτεί απλούς υπολογισμούς σε μικρό όγκο δεδομένων δεν μπορεί να επιλυθεί σε Η/Υ.
15
1.13 Να χαρακτηρίσετε τις παρακάτω προτάσεις ως σωστές (Σ) ή λάθος (Λ). α.
Τα προβλήματα για τα οποία δεν μπορούμε να απαντήσουμε ακόμη εαν είναι δυνατόν να λυθούν ονομάζονται μη επιλύσιμα.
β.
Τα δεδομένα ενός προβλήματος είναι πάντοτε κάποιοι αριθμοί.
γ.
Η πρόσθεση είναι μια από τις βασικές λειτουργίες που μπορεί να εκτελέσει ένας Η/Υ.
δ.
Οι επιδόσεις πέντε αθλητών σε ένα αγώνα δρόμου αποτελούν δεδομένα, ενώ το όνομα του νικητή του αγώνα αποτελεί πληροφορία.
ε.
Με κριτήριο τη δυνατότητα επίλυσης ενός προβλήματος, διακρίνουμε τις κατηγορίες : επιλύσιμα, υπολογιστικά και άλυτα.
1.14 Να συμπληρώσετε τα κενά στις παρακάτω προτάσεις. α.
Με τον όρο ....................... εννοείται μια κατάσταση, η οποία απαιτεί ........... και η οποία δεν είναι .............. ούτε προφανής
β.
Με τον όρο ................... εννοούμε οποιοδήποτε στοιχείο γίνεται ................. από έναν τουλάχιστον .......................... με μια από τις πέντε ....................
γ.
Με τον όρο ............................. δεδομένων εννοούμε ένα ..................... ο οποίος δέχεται ..................., στη συνέχεια τα ............................. και αποδίδει .........................
δ.
Η επίλυση ενός προβλήματος ξεκινά από την .......................... του.
1.15 Να συμπληρώσετε τα κενά στις παρακάτω προτάσεις. α.
.......................... είναι το αποτέλεσμα επεξεργασίας δεδομένων.
β.
Σημαντικός παράγοντας στην κατανόηση ενός προβλήματος είναι η .........................
γ.
Με τον όρο ........................ προβλήματος αναφερόμαστε στα συστατικά μέρη που το αποτελούν.
δ.
Για να μπορέσουμε να επιλύσουμε ένα πρόβλημα θα πρέπει να γίνει ο καθορισμός των .......................
1.16 Δίνονται οι παρακάτω ομάδες λέξεων. Σε κάθε μια από αυτές, να βάλεις τις λέξεις στη σωστή σειρά. α.
Επίλυση, ανάλυση, κατανόηση (αναφορά σε πρόβλημα).
β.
Επεξεργασία, έλεγχος, έξοδος, είσοδος (αναφορά σε δεδομένα).
16
1.17 Να γράψετε από ένα παράδειγμα για τις ακόλουθες κατηγορίες προβλημάτων : α.
άλυτο
: ........................................................................................
β.
αδόμητο
: ........................................................................................
γ.
ανοικτό
: ........................................................................................
δ.
επιλύσιμο
: ........................................................................................
ε.
δομημένο
: ........................................................................................
1.18 Να γράψετε στο τετράδιό σας τους αριθμούς της στήλης Α και δίπλα το γράμμα της στήλης Β που αντιστοιχεί στο σωστό είδος προβλημάτων. Σε κάθε επιλογή της στήλης Α ενδέχεται να ταιριάζουν περισσότερο από ένα στοιχεία της στήλης Β. Στήλη Α Τύπος Προβλήματος
Στήλη Β Παράδειγμα προβλήματος α. Εύρεση του εμβαδού κυκλικού τομέα
β. Αγορά ενός συγκεκριμένου αυτοκινήτου 1.
Υπολογιστικό
2.
Βελτιστοποίησης
3.
Απόφασης
γ. Ταχύτερη διανομή επιστολών
δ. Έλεγχος αν ένας αριθμός διαιρείται με το 5
ε. Πόσοι μαθητές θα περάσουν στις εξετάσεις ζ. Ο μαθητής Σάκης Τζέκος θα πάρει αριστείο
1.19 Να επιλέξετε όσες από τις παρακάτω απαντήσεις θεωρείτε κατάλληλες. α.
Οι λόγοι για τους οποίους αναθέτουμε την επίλυση προβλημάτων σε Η/Υ σχετίζονται με : i. την ταχύτητα εκτέλεσης των πράξεων
ii. τον χειρισμό μεγάλου όγκου δεδομένων
iii.την ικανότητα συγκρίσεων
iv. την ικανότητα για ανάλυση δεδομένων
17
β.
γ.
Βασικές λειτουργίες που μπορεί να εκτελέσει ένας Η/Υ είναι : i. ο πολλαπλασιασμός
ii. ο χειρισμός μεγάλου όγκου δεδομένων
iii. η μεταφορά δεδομένων
iv. η σύγκριση
v. η ικανότητα για ανάλυση δεδομένων
vi. ο υπολογισμός δυνάμεων.
Ανάλογα με το είδος της επίλυσης που επιζητούν τα προβλήματα διακρίνονται σε: i. ημιδομημένα
ii. απόφασης
iii. ανοικτά
iv. υπολογιστικά
1.20 Να γράψετε στο τετράδιό σας τους αριθμούς της στήλης Α και δίπλα το γράμμα της στήλης Β που αντιστοιχεί στο σωστό είδος προβλημάτων. Στη στήλη Β περισσεύει ένα στοιχείο. Στήλη Α 1. Η διαδικασία λύσης τους είναι αυτοματοποιημένη.
Στήλη Β Α. Ανοικτά
2. Δεν έχει βρεθεί λύση, αλλά δεν έχει αποδειχθεί και η μη Β. Δομημένα ύπαρξη λύσης. 3. Ο τρόπος λύσης τους μπορεί να επιλεγεί από πλήθος Γ. Άλυτα δυνατών λύσεων. Δ. Ημιδομημένα 4. Ο τρόπος λύσης προκύπτει βάσει της διαίσθησης και της εμπειρίας. Ε. Αδόμητα
1.21 Να επιλέξετε τη σωστή απάντηση. α.
Τα δεδομένα ενός προβλήματος πρέπει : i. Να είναι δομημένα ii.Να έχουν καθοριστεί με σαφήνεια iii.Να είναι αριθμητικά
β.
Η διαδικασία μέσω της οποίας βρίσκουμε το ζητούμενο ενός προβλήματος λέγεται : i. Επίλυση ii. Ανάλυση iii. Αξιολόγηση
γ.
Τα ημιδομημένα είναι κατηγορία προβλημάτων που διακρινονται με κριτήριο : i. Το είδος επίλυσης ii. Τη δυνατότητα επίλυσης iii. Το βαθμό δόμησης
18
ΚΕΦΑΛΑΙΟ 2ο
ΑΛΓΟΡΙΘΜΟΙ ΨΕΥΔΟΓΛΩΣΣΑ - "ΓΛΩΣΣΑ" ΔΟΜΗ ΑΚΟΛΟΥΘΙΑΣ
.
ΚΕΦΑΛΑΙΟ 2ο - ΑΛΓΟΡΙΘΜΟΙ – ΨΕΥ∆ΟΓΛΩΣΣΑ – «ΓΛΩΣΣΑ» - ∆ΟΜΗ ΑΚΟΛΟΥΘΙΑΣ Α.
Θεωρία
2.1
O Αλγόριθμος Το βασικό μέρος του μαθήματος αποτελείται από ασκήσεις που ζητούν την κατασκευή αλγορίθμων ή άλλες που ζητούν εκτέλεση αλγορίθμων. Η έννοια του αλγορίθμου δεν αποτελεί καθαρά έννοια της πληροφορικής. Προέρχεται από τα μαθηματικά και έχει επικρατήσει στον προγραμματισμό. Αν προσπαθήσουμε να δούμε απλοϊκά την έννοια αλγόριθμος τότε λέμε ότι : « Αλγόριθμος είναι ένα σύνολο ενεργειών που κάνουμε για να πετύχουμε κάτι ». Με λίγη περισσότερη αυστηρότητα προκύπτει ο παρακάτω ορισμός. 2.1.1 Ορισμός Αλγορίθμου – Κριτήρια Αλγόριθμος είναι μια πεπερασμένη σειρά ενεργειών , αυστηρά καθορισμένων και εκτελέσιμων σε πεπερασμένο χρόνο, που στοχεύουν στην επίλυση ενός προβλήματος. Φυσικά, ο παραπάνω ορισμός συνοδεύεται από τα κριτήρια που πρέπει να ικανοποιεί μια δέσμη ενεργειών ώστε να αποτελεί αλγόριθμο. Αυτά είναι : α. Είσοδος β. Έξοδος γ. Καθοριστικότητα δ. Περατότητα ε. Αποτελεσματικότητα
2.2
Μέθοδοι Αναπαράστασης Αλγορίθμων 2.2.1 Τρόποι Αναπαράστασης Ένας αλγόριθμος μπορεί να παρασταθεί ισοδύναμα με έναν από τους παρακάτω τρόπους : α. Ελεύθερο κείμενο β. Φυσική γλώσσα με καθορισμό των βημάτων γ. Διαγραμματικές τεχνικές (διάγραμμα ροής ή Flowchart) δ. Με κωδικοποίηση Παρακάτω αναλύουμε τις περιπτώσεις γ. και δ. οι οποίες μας ενδιαφέρουν περισσότερο στις ασκήσεις. 2.2.2 Διαγραμματικές Τεχνικές (Διάγραμμα Ροής ή Flowchart) Δεδομένης της ύπαρξης ενός προβλήματος χρησιμοποιούμε γεωμετρικά σχήματα (παραλληλόγραμμο, ορθογώνιο, ρόμβο, έλλειψη κ.λ.π.) στα οποία έχουμε αντιστοιχίσει μια ξεχωριστή σημασία. Στο εσωτερικό κάθε σχήματος σημειώνουμε την αντίστοιχη ενέργεια και στη συνέχεια τα ενώνουμε μεταξύ τους με λογικά κριτήρια συνάφειας. Το αποτέλεσμα που παίρνουμε είναι ένας αλγόριθμος και συνεπώς οφείλει να λύνει το πρόβλημα. Φυσικά ο τρόπος αυτός δεν δημιουργεί 21
εκτελέσιμη λύση σε υπολογιστή είναι όμως απαραίτητη για μια πρόχειρη δημιουργία λύσης. Ας δούμε τώρα την αντιστοιχία σχημάτων και ενεργειών : α.
Έλλειψη
Δηλώνει αρχή ή τέλος του αλγορίθμου
β.
Παραλληλόγραμμο
γ.
Ορθογώνιο Παραλληλόγραμμο
δ.
Ρόμβος
Χρησιμοποιείται για είσοδο ή έξοδο δεδομένων
Δηλώνει υπολογισμούς ή ανάθεση τιμής
Χρησιμοποιείται για αλλαγή στη ροή του αλγόριθμου.
Υπάρχουν αρκετοί άλλοι συμβολισμοί τους οποίους δεν αναφέρουμε γιατί ξεφεύγουν από τα πλαίσια ενός εισαγωγικού μαθήματος προγραμματισμού. 2.2.3 Με κωδικοποίηση Η μέθοδος της κωδικοποίησης προϋποθέτει γνώση της ψευδογλώσσας ή κάποιας γλώσσας προγραμματισμού. Στην πρώτη περίπτωση μιλάμε για αλγόριθμο σε ψευδογλώσσα που δεν είναι δυνατό να εκτελεστεί σε Η/Υ ενώ στη δεύτερη μιλάμε για ένα προγραμματιστικό περιβάλλον σε Η/Υ που εκτελεί τις λύσεις που δίνουμε. Στο εξής όταν θα λέμε «Να γραφεί αλγόριθμος ...» θα εννοούμε λύση σε ψευδογλώσσα ενώ όταν θα λέμε «Να κατασκευαστεί πρόγραμμα στη ΓΛΩΣΣΑ» θα εννοούμε λύση στο εκπαιδευτικό προγραμματιστικό περιβάλλον «Γλωσσομάθεια» που διατίθεται δωρεάν στο διαδίκτυο.
2.3
Στοιχεία Ψευδογλώσσας 2.3.1 Ορισμοί – Εντολές Σταθερά : Μέγεθος που διατηρεί σταθερή τιμή καθόλη τη διάρκεια του αλγόριθμου (π.χ. Α = 5 , Β = “Δευτέρα” , X = 3.5 ) Μεταβλητή : Μέγεθος που μπορεί να αλλάζει τιμή σε διάφορα σημεία του αλγόριθμου. Μια μεταβλητή μπορεί να περιέχει ακέραιους αριθμούς ή πραγματικούς ή χαρακτήρες (αλφαριθμητικοί) ή την ένδειξη Αληθής ή Ψευδής (Λογική). Οι παραπάνω κατηγορίες ονομάζονται Τύποι Δεδομένων. Εντολή Εκχώρησης : Χρησιμοποιούμε το σύμβολο προκειμένου να δώσουμε τιμή σε μια μεταβλητή ή να εκτελέσουμε κάποιο υπολογισμό. Αριστερά του βέλους έχουμε το όνομα της μεταβλητής και δεξιά την τιμή που της δίνουμε. Είναι λάθος να θεωρεί κάποιος την εκχώρηση το ίδιο πράγμα με την ισότητα. Ας δούμε λίγο τι συμβαίνει στα κυκλώματα του Η/Υ. Με τη δήλωση μιας μεταβλητής ο υπολογιστής δεσμεύει ένα χώρο μέσα στη κεντρική του μνήμη (RAM) , τον ονομάζει και τον κρατάει κενό μέχρι να ζητηθεί να γεμίσει. Η εκχώρηση κάνει αυτή τη δουλειά. Δίνει
22
τιμές σ’ αυτόν το χώρο. Η χωρητικότητα του χώρου αυτού στη μνήμη εξαρτάται από τον τύπο δεδομένων που προορίζουμε να αποθηκεύσουμε. Ο χώρος αυτός κρατιέται στη μνήμη μέχρι να σβήσει ο Η/Υ. Εντολές Εισόδου – Εξόδου : Η εντολή Διάβασε ονομάζεται εντολή εισόδου και χρησιμοποιείται για να δώσουμε τιμές σε μεταβλητές κατά την εκτέλεση του αλγορίθμου. Συντάσσεται ως εξής :
Διάβασε
π.χ. Διάβασε x , α Η εντολή Εμφάνισε ονομάζεται εντολή εξόδου και χρησιμοποιείται για να δείξουμε στην οθόνη το περιεχόμενο μεταβλητών ή για να εμφανίσουμε μηνύματα. Συντάσσεται ως εξής : Εμφάνισε π.χ. Εμφάνισε x , α
Εμφάνισε ‘Το όνομα μου είναι’, name.
Εναλλακτικά μπορούμε να χρησιμοποιούμε την εντολή Γράψε και κάποιες φορές την εντολή Εκτύπωσε. 2.3.2 Δομή Αλγορίθμου Κάθε αλγόριθμος είναι απαραίτητο να έχει την παρακάτω δομή : Αλγόριθμος Όνομα Δεδομένα // // ...... Εντολές ...... Αποτελέσματα // // Τέλος Όνομα Τα Δεδομένα είναι μια εντολή της ψευδογλώσσας που τοποθετείται αμέσως μετά την εντολή αλγόριθμος και χρησιμοποιείται για να δηλώσει κάτι σταθερό ή δεδομένο. Στους περισσότερους όμως αλγόριθμους δεν θα τη συναντάμε. Η εντολή Αποτελέσματα χρησιμοποιείται πολύ σπάνια και ο σκοπός της είναι να εμφανίσει το περιεχόμενο κάποιων μεταβλητών. Θεωρείται καλύτερο να χρησιμοποιούμε τις εντολές εξόδου που περιγράφτηκαν παραπάνω. Η εντολή ! δηλώνει η συγκεκριμένη γραμμή περιέχει σχόλια του προγραμματιστή σχετικά με τον αλγόριθμο δεν εκτελείται και δε λαμβάνεται υπόψη. Παράδειγμα αλγορίθμου σε ψευδογλώσσα Αλγόριθμος Άσκηση_1 Δεδομένα // π = 3.14 // ! ρ : ακτίνα κύκλου , Ε : Εμβαδόν ! Υπολογισμός εμβαδού κυκλικού δίσκου Εμφάνισε ‘Δώσε ακτίνα να υπολογίσω εμβαδόν’ Διάβασε ρ Ε πρ2 ! Προσοχή σ’ αυτόν το συμβολισμό Εμφάνισε ‘ Ε= ’,Ε Τέλος Άσκηση_1
23
Εξάσκηση σε αλγορίθμους μπορείτε να κάνετε στον ιστοτοπο http://www.pseudoglossa.gr.
Σημαντική παρατήρηση !!! Όταν γράφουμε ονόματα σταθερών ή μεταβλητών ή ονόματα αλγορίθμων, πρέπει απαραίτητα να ακολουθούμε κάποιους κανόνες ώστε να είναι ορθά. Συγκεκριμένα μπορούμε να χρησιμοποιούμε ακολουθίες από μικρά ή κεφαλαία γράμματα ελληνικού ή λατινικού αλφαβήτου , σε συνδυασμό με τους αριθμούς (0 - 9) και το χαρακτήρα _ (underscore). Βέβαια ένα όνομα δεν πρέπει να περιέχει κενά, άλλα σύμβολα και δεν πρέπει να ξεκινά από αριθμό. Επιπλέον, μη αποδεκτά ονόματα αποτελούν οι διάφορες εντολές της Ψευδογλώσσας. 2.3.3 Τελεστές – Συναρτήσεις – Εκφράσεις Στο παραπάνω παράδειγμα χρησιμοποιήσαμε την πράξη του πολλαπλασιασμού καθώς επίσης και την ύψωση σε δύναμη. Είναι λοιπόν απαραίτητο να δώσουμε λειτουργίες σε κάποια σύμβολα που τα ονομάζουμε τελεστές, συναρτήσεις τα οποία συνδυάζουμε για να γράψουμε εκφράσεις. Έκφραση είναι μια ακολουθία από μεταβλητές και σταθερές συνδεδεμένες μεταξύ τους με κάποιους από τους παρακάτω τελεστές. Αυτοί είναι : α. Αριθμητικοί τελεστές + * / ^ν ^(1/ν) div mod
Πρόσθεση Αφαίρεση Πολλαπλασιασμός Διαίρεση Ύψωση εις την νιοστή νιοστή ρίζα Ακέραιο πηλίκο ακεραίων Υπόλοιπο της ακεραίας διαίρεσης ακεραίων
β. Συγκριτικοί τελεστές > < = ≥ ή >= ≤ ή 8
Αληθής
5 < -1
Ψευδής.
ε. Πίνακες αληθείας και χρήση στις λογικές εκφράσεις Όπως αναφέρθηκε παραπάνω, αν συνδυάσουμε μεταβλητές, σταθερές, τελεστές και συναρτήσεις τότε φτιάχνουμε τις εκφράσεις, που αποτελούν βασικό στοιχείο στον προγραμματισμό. Ας δούμε κάποια παραδείγματα : 2*α - β^2 , ΗΜ(2*ε) – 5^(1/2) κ.λ.π. Αυτές είναι απλές εκφράσεις. Αν τώρα ενώσουμε 2 ή περισσότερες εκφράσεις με λογικούς τελεστές και χρήση παρενθέσεων τότε φτιάχνουμε σύνθετες εκφράσεις. Ας δούμε κάποια παραδείγματα : (2*α – 5 > 3) ΚAI (5*y – 8 = 12) ΟΧΙ ( 3 < 5 ) ( Α > Β ) Ή ( 3 – Γ >= 5 ) Αληθής = Ψευδής κ.λ.π. Απαγορεύεται η χρήση αγκύλης, αγκίστρου. Ένα σημαντικό πράγμα που πρέπει να γνωρίζουμε για την τέλεση πράξεων μέσα σε εκφράσεις είναι η ιεραρχία. Συγκεκριμένα, η έκφραση εκτελείται από τα αριστερά προς τα δεξιά με τρόπο όπως στα μαθηματικά. Ο παρακάτω πίνακας ονομάζεται πίνακας αληθείας και είναι απαραίτητος βρίσκουμε το αποτέλεσμα σύνθετων λογικών εκφράσεων.
25
για
να
2.4
Πρόταση Α
Πρόταση Β
ΑήΒ (Διάζευξη)
Α και Β (Σύζευξη)
όχι Α (Άρνηση)
Ψευδής Ψευδής Αληθής Αληθής
Ψευδής Αληθής Ψευδής Αληθής
Ψευδής Αληθής Αληθής Αληθής
Ψευδής Ψευδής Ψευδής Αληθής
Αληθής Αληθής Ψευδής Ψευδής
Στοιχεία του Πρoγραμματιστικού Περιβάλλοντος της «ΓΛΩΣΣΑΣ» Η «ΓΛΩΣΣΑ» είναι μια απλουστευμένη γλωσσα προγραμματισμού εκπαιδευτικού χαρακτήρα και με τη βοήθεια της μπορούμε να δημιουργούμε κανονικά προγράμματα. Τα προγράμματα έχουμε τη δυνατότητα να τα εκτελέσουμε και να δούμε στην οθόνη του Η/Υ τα αποτελέσματα. Το πιο γνωστό λογισμικό με το οποίο μπορείτε να προγραμματίσετε σε «ΓΛΩΣΣΑ» είναι η Γλωσσόμάθεια που διακινείται ελεύθερα στο διαδίκτυο μέσω του ιστοτόπου http://spinet.gr/glossomatheia. Ας δούμε όμως τις διαφοροποιήσεις που υπάρχουν ανάμεσα σε ένα πρόγραμμα της «ΓΛΩΣΣΑΣ» και σε έναν αλγόριθμο σε ψευδογλώσσα. 2.4.1 Δομή Προγράμματος της «ΓΛΩΣΣΑΣ» Ένα πρόγραμμα στη «ΓΛΩΣΣΑ» έχει πάντα μια συγκεκριμένη δομή η οποία φαίνεται παρακάτω : ΠΡΟΓΡΑΜΜΑ Ονομα_προγράμματος ΤΜΗΜΑ ΔΗΛΩΣΗΣ ΣΤΑΘΕΡΩΝ
ΤΜΗΜΑ ΔΗΛΩΣΗΣ ΜΕΤΑΒΛΗΤΩΝ ΑΡΧΗ
ΚΥΡΙΟ ΜΕΡΟΣ ΤΟΥ ΠΡΟΓΡΑΜΜΑΤΟΣ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ Τμήμα Δήλωσης Σταθερών : ΣΤΑΘΕΡΕΣ ΟΝ1 = ΤΙΜΗ1 ΟΝ2 = ΤΙΜΗ2
26
Τμήμα Δήλωσης Μεταβλητών : ΜΕΤΑΒΛΗΤΕΣ ΑΚΕΡΑΙΕΣ : ΜΕΤ1 , ΚΛ ΠΡΑΓΜΑΤΙΚΕΣ : ΜΕΤ2 ΧΑΡΑΚΤΗΡΕΣ : ΑΒΓ ΛΟΓΙΚΕΣ : ΛΟΓ, done Όσα αναφέραμε στην παράγραφο 2.3 ισχύουν και στη «ΓΛΩΣΣΑ» απλά αλλάζει η δομή. Ας δούμε ένα παράδειγμα με αλγόριθμο και με πρόγραμμα. Αλγόριθμος Υπολογισμός Δεδομένα // Σ = 15 // Διάβασε χ , κ Β (χ – κ*Σ)/2 Εμφάνισε ‘Το αποτέλεσμα είναι :’,Β Τέλος Υπολογισμός
ΠΡΟΓΡΑΜΜΑ ΥΠΟΛΟΓΙΣΜΟΣ ΣΤΑΘΕΡΕΣ Σ = 15 ΜΕΤΑΒΛΗΤΕΣ ΑΚΕΡΑΙΕΣ : χ , κ ΠΡΑΓΜΑΤΙΚΕΣ : Β ΑΡΧΗ ΔΙΑΒΑΣΕ χ , κ Β (χ – κ*Σ)/2 ΓΡΑΨΕ ‘Το αποτέλεσμα είναι :’ , Β ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
Μη εκτελέσιμη μορφή σε Η/Υ
Εκτελέσιμο Πρόγραμμα στη «ΓΛΩΣΣΑ»
Σημαντική παρατηρήση !!! Κάποιοι ισχυρίζονται ότι οι συναρτήσεις που αναφέραμε στην υποπαράγραφο 2.3.3 γ. επιτρέπονται μόνο σε Προγράμματα. Αυτό όμως διαψεύδεται από κάποια θέματα εξετάσεων που ζητήθηκαν και περιείχαν τέτοιες συναρτήσεις. Όπως για παράδειγμα στα εσπερινά λύκεια το 2007 στο θέμα 2. Σε κάθε περίπτωση λόγω ασάφεια του βιβλίου πάνω στο συγκεκριμένο ζήτημα, προσπαθήστε να τις αποφεύγετε όσο το δυνατόν σε αλγόριθμους. Απλά κάποια θέματα είναι αδύνατον να λυθούν χωρίς αυτές. Επίσης κάποιοι καθηγητές υποστηρίζουν ότι στους αλγοριθμους δεν επιτρέπεται στους αλγόριθμους η χρήση της εντολής γράψε. Αυτό ξεακαθαρίζεται από το σχολικό βιβλίο στη σελίδα 47 υποπαράγραφος 8.
2.5
Η δομή της ακολουθίας Η πιο σωστή μέθοδος ανάπτυξης αλγορίθμων και προγραμμάτων είναι ο δομημένος προγραμματισμός. Ο δομημένος πρoγραμματισμός στηρίζεται στη χρήση τριών στοιχειωδών δομών (συνιστωσών ενός αλγορίθμου). Συγκεκριμένα έχουμε α. τη δομή ακολουθίας , β. τη δομή επιλογής και γ. τη δομή επανάληψης. Η δομή ακολουθίας είναι η πιο απλή και βασίζεται στην ιδέα ότι οι εντολές ενός αλγόριθμου ή ενός προγράμματος εκτελούνται η μία μετά την άλλη. Η σειρά τους είναι αδύνατο να αλλάξει, αποκλείεται κάποια να εκτελεστεί περισσότερες από μία φορές και είναι αδύνατον να μην εκτελεστεί μια εντολή. Στο παράδειγμα της παραγράφου 2.4 χρησιμοποιήσαμε τη δομή της ακολουθίας, η οποία στο εξής θεωρείται δεδομένη σε κάθε παράδειγμα. Οι άλλες δύο δομές θα εξεταστούν στα επόμενα κεφάλαια.
27
Β.
Ερωτήσεις Θεωρίας 2.1 Να δώσετε τον ορισμό της έννοιας του αλγορίθμου. 2.2 Ποια είναι τα κριτήρια που πρέπει να ικανοποιεί ένας αλγόριθμος ; Να περιγράψετε
καθένα από αυτά.
2.3 Περιγράψτε συνοπτικά τους τρόπους αναπαράστασης ενός αλγορίθμου. 2.4 Περιγράψτε τις σκοπιές από τις οποίες μελετά η πληροφορική τους αλγόριθμους. 2.5 Τι ονομάζουμε σταθερά, μεταβλητή ; 2.6 Ποιες αρχές διέπουν τα ονόματα μεταβλητών και σταθερών στην ψευδογλώσσα; Να δώσετε τρία παραδείγματα μη δεκτών ονομάτων. 2.7 Ποιες είναι οι βασικές συνιστώσες/ εντολές ενός αλγόριθμου ; 2.8 Δώστε παραδείγματα δηλωτικών και εκτελεστέων εντολών της Ψευδογλώσσας. 2.9 Τι ονομάζουμε τελεστές ; Να αναφέρετε τα είδη τελεστών που χρησιμοποιούμε στην ψευδογλώσσα και στη «ΓΛΩΣΣΑ».
2.10 Ποιους τύπους δεδομένων υποστηρίζει η «ΓΛΩΣΣΑ» ; Να Δώσετε 2 παραδείγματα για κάθε τύπο.
2.11 Τι γνωρίζετε για τις εκφράσεις ; 2.12 Ποια είναι η τυπική δομή ενός προγράμματος στο προγραμματιστικό περιβάλλον της «ΓΛΩΣΣΑΣ» ;
2.13 Τι γνωρίζετε για την εντολή εκχώρησης ; Ποια είναι η σύνταξη και η λειτουργία της; Αναφέρατε παραδείγματα δεκτών και μη δεκτών περιπτώσεων.
2.14 Ποιος είναι ο σκοπός των εντολών Εισόδου – Εξόδου και πως συντάσσονται ; 2.15 Να γράψετε τον πίνακα αληθείας δύο λογικών προτάσεων. 2.16 Τι γνωρίζετε για τους τελεστές div και mod ; Να δώσετε μερικά παραδείγματα. 2.17 Τι γνωρίζετε για τη δομή ακολουθίας στο δομημένο προγραμματισμό ;
28
Γ.
Λυμένα Θέματα
2.18 Ποιες είναι οι διαφορές ενός αλγόριθμου σε ψευδογλώσσα και ενός προγράμματος στη «ΓΛΩΣΣΑ» ; α.
Ο αλγόριθμος δεν εκτελείται σε Η/Υ ενώ το πρόγραμμα εκτελείται.
β.
Στο πρόγραμμα υπάρχουν τμήματα δήλωσης μεταβλητών και σταθερών, ενώ στον αλγόριθμο δεν είναι απαραίτητες οι δηλώσεις των τύπων δεδομένων.
γ.
Στο πρόγραμμα γράφουμε τη λέξη ΑΡΧΗ, μετά γράφουμε το κύριο μέρος της λύσης και τελειώνουμε με τις λέξεις ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ. Στον αλγόριθμο απλά στο τέλος γράφουμε Τέλος Όνομα.
δ.
Στο πρόγραμμα δεν χρησιμοποιούμε τους τελεστές ≤ , ≠ , ≥ ενώ στον αλγόριθμο επιτρέπονται. Φυσικά και στα δύο μπορούμε να χρησιμοποιούμε =.
ε.
Στους αλγόριθμους για έξοδο χρησιμοποιούμε εμφάνισε ή γράψε ή εκτύπωσε ενώ στο πρόγραμμα μόνο ΓΡΑΨΕ.
Σημαντική παρατήρηση !!! Τόσο στους αλγόριθμους όσο και στα προγράμματα όταν δε μας φτάνει μια γραμμή για να ολοκληρώσουμε μια εντολή, τοποθετούμε το σύμβολο & στην επόμενη γραμμή και συνεχίζουμε κανονικά όπως θα συνεχίζαμε στη προηγούμενη γραμμή.
2.19 Να βρείτε το λάθος που υπάρχει στα παρακάτω στοιχεία ψευδογλώσσας. α.
Αλγόριθμος Άσκηση 15 Υπάρχει κενό στο όνομα του αλγορίθμου.
β.
ΟΝΟΜΑ_13$ Υπάρχει ο χαρακτήρας $.
γ.
12ΤΙΜΕ Η μεταβλητή ξεκινάει από αριθμούς.
δ.
23 Div 3.2 = 2 Το 3.2 είναι είναι πραγματικός αριθμος και οι τελεστές div και mod λειτουργούν μόνο με ακεραίους.
ε.
Διάβασε ‘χ’ Η σωστή σύνταξη είναι Διάβασε χ. Τα εισαγωγικά χρησιμοποιούνται για χαρακτήρες.
ζ.
α+5 3 Αριστερά της εκχώρησης πρέπει να έχουμε μόνο τη μεταβλητή, όχι έκφραση.
29
η.
Εμφάνισε Ε 2*χ Μετά το εμφάνισε έχουμε χαρακτήρες σε εισαγωγικά ή μεταβλητές. Δεν γίνεται να έχουμε .
2.20 Να γίνει διάγραμμα ροής για το παρακάτω πρόβλημα : Έχουμε μια σφαίρα ακτίνας ρ που δίνεται από το χρήστη. Να υπολογιστεί το εμβαδό της κυρτής επιφάνειας και ο όγκος της σφαίρας. Στη συνέχεια να γίνει αλγόριθμος και πρόγραμμα στη «ΓΛΩΣΣΑ». 4 2 (Δίνονται : Εσφαίρας = 4πρ και Vσφαίρας = πρ3 ). 3 Διάγραμμα Ροής
Αλγόριθμος σε Ψευδογλώσσα Αλγόριθμος Στοιχεία_Σφαίρας Δεδομένα // π=3.14 // ! ρ η ακτίνα , Ε το Εμβαδόν , Ο όγκος Διάβασε ρ Εμ 4*π*ρ^2 Ο (4/3)*π*ρ^3 Εμφάνισε ‘Εμβαδόν = ‘, Εμ, ‘Όγκος = ‘, Ο Τέλος Στοιχεία_Σφαίρας
30
Πρόγραμμα στη «ΓΛΩΣΣΑ» ΠΡΟΓΡΑΜΜΑ ΣΤΟΙΧΕΙΑ_ΣΦΑΙΡΑΣ ΣΤΑΘΕΡΕΣ π=3.14 ΜΕΤΑΒΛΗΤΕΣ ΑΚΕΡΑΙΕΣ : ρ ΠΡΑΓΜΑΤΙΚΕΣ : Εμ , Ο ΑΡΧΗ ΔΙΑΒΑΣΕ ρ Εμ 4*π*ρ^2 Ο (4/3)*π*ρ^3 ΓΡΑΨΕ ‘Εμβαδόν =’, Εμ , ‘Ογκος = ‘, Ο ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
2.21 Δίνεται ένας αλγόριθμος σε ελεύθερο κείμενο : «Μου δίνουν έναν αριθμό. Τον αυξάνω κατά 5. Στη συνέχεια εμφανίζω το αποτέλεσμα. Διαβάζω από το πληκτρολόγιο έναν καινούργιο αριθμό. Εμφανίζω τον κύβο του». Μετατρέψτε τον παραπάνω αλγόριθμο σε διάγραμμα ροής και στη συνέχεια σε αλγόριθμο σε ψευδογλώσσα.
Αλγόριθμος Αριθμοί Δεδομένα // Α // ΑΑ+5 Εμφάνισε Α Διάβασε Β Εμφάνισε Β^3 Τέλος Αριθμοί
31
2.22 Να μετατρέψετε τις παρακάτω μαθηματικές εκφράσεις σε αντίστοιχες της «ΓΛΩΣΣΑΣ» α.
a2 + b2
β.
−b − b2 − 4ac 2a
{
(
)}
γ. 28 − εφx ⋅ 3 − a5 − ηµa + e x −1
α.
(α^2 + b^2)^(1/2) ή ισοδύναμα Τ_Ρ(α^2 + b^2)
β.
(–b – Τ_Ρ(b^2 – 4*α*c))/(2*a)
γ.
28 – ΕΦ(x)*(3–(a^5 – ΗΜ(a) + E(x–1)))
2.23 Να υπολογιστεί η τιμή των παρακάτω παραστάσεων όταν Α=8, Β=5, Γ=3 και Δ = ψευδής. α.
((Α Α+Β) Ή ΟΧΙ(Δ)) (8>=5+3) ΚΑΙ ((5*3>8+5) Ή ΟΧΙ Ψ (8>=8) ΚΑΙ (15>13) Ή Α Α ΚΑΙ Α Ή Α ΑΉΑ Α ((ΑΒ+Γ+1) ‘Η (Α^2=(Β-Γ)^2)) ΚΑΙ ((Α=Β+Γ) ‘Η Δ) ((8 5+3+1) Ή (8^2 = (5-3)^2)) ΚΑΙ ((8=5+3) Ή Ψ) ((8 9) Ή (64=4)) ΚΑΙ (Α Ή Ψ) (Α Ή Ψ) ΚΑΙ Α Α ΚΑΙ Α Α
γ.
32
Δ.
Θέματα για λύση
1.
ΘΕΩΡΗΤΙΚΑ ΘΕΜΑΤΑ
2.24 Για κάθε πρόταση να απαντήσετε αν είναι Σωστή (Σ) ή Λάθος (Λ). α.
Ο αλγόριθμος μπορεί να περιέχει και εντολές που δεν είναι σαφείς.
β.
Κάθε αλγόριθμος πρέπει να διαθέτει έξοδο.
γ.
Το κριτήριο της καθοριστικότητας απαιτεί κάθε εντολή του αλγόριθμου να είναι απλή και εκτελέσιμη.
δ.
Λογική έκφραση ονομάζεται μια έκφραση που περιέχει συγκριτικό τελεστή.
ε.
Η απεικόνιση του αλγόριθμου με φυσική γλώσσα εγκυμονεί τον κίνδυνο της παραβίασης του κριτήριο της καθοριστικότητας.
2.25 Για κάθε πρόταση να απαντήσετε αν είναι Σωστή (Σ) ή Λάθος (Λ). α.
Ένα διάγραμμα ροής αποτελείται από ένα σύνολο γεωμετρικών σχημάτων που το καθένα δηλώνει μια ξεχωριστή ενέργεια ή λειτουργία.
β.
Τα είδη των μεταβλητών που χρησιμοποιούμε είναι οι αριθμητικές , οι αλφαριθμητικές (χαρακτήρες) και οι σταθερές.
γ.
Η είσοδος σε ένα αλγοριθμικό πρόβλημα είναι ένα σύνολο μεταβλητών που σχετίζονται με τα δεδομένα του.
δ.
Η τιμή της μεταβλητής δε μπορεί να αλλάξει κατά τη διάρκεια της εκτέλεσης του αλγόριθμου.
ε.
Μια μεταβλητή μπορεί να αλλάξει τύπο κατά τη διάρκεια της εκτέλεσης ενός προγράμματος.
2.26 Για κάθε πρόταση να απαντήσετε αν είναι Σωστή (Σ) ή Λάθος (Λ). α.
Σε μια εντολή εκχώρησης είναι δυνατόν μια παράσταση στο δεξί μέλος να περιέχει τη μεταβλητή που βρίσκεται στο αριστερό μέλος.
β.
Ο αλγόριθμος ουσιαστικά είναι η περιγραφή ενός προβλήματος με συγκεκριμένα βήματα.
γ.
Ο τελεστής div υπολογίζει το πηλίκο δύο ακέραιων αριθμών.
δ.
Μια λογική μεταβλητή μπορεί να πάρει αλφαριθμητικό αντίστροφα μια αλφαριθμητική μπορεί να πάρει λογική τιμή.
ε.
Στη δομή ακολουθίας μια συγκεκριμένη εντολή μπορεί να εκτελεστεί πολλές φορές.
περιεχόμενο
33
και
2.27 Επιλέξτε τη σωστή απάντηση. α.
Ποιό είναι το αποτέλεσμα της πράξης 5 mod 2 * 10 ; i. 10
β.
ii. 5
iv. απροσδιόριστο
iii. 0
Ποιό από τα παρακάτω αποτελεί εντολή ψευδογλώσσας των αλγορίθμων. i. A + B = 1 ii. A B*5 iii. A + B 23 iv. A 2*B 12
γ.
Ποια η τιμή της μεταβλητής Α μετά την εκτέλεση της παρακάτω εντολής. Α (5+4/2*2)*2 – (3*2 + 5 – 3)^2 + 9/3 – 2 i. -53
δ.
ii. -37
iii. -125
iv. -45
Μετά την εκτέλεση της εντολής Υ 5*(Χ-3) + Χ^3 – 2 + Ζ, όπου Χ = 5 και Ζ = 1 ποιά είναι η τιμή της Υ; i. 35
ii. 134
iii. 22
iv. 148
2.28 Επιλέξτε όσες απαντήσεις θεωρείτε κατάλληλες. α.
Ποια από τα παρακάτω πρέπει να ικανοποιεί απαραίτητα ένας αλγόριθμος. i. είσοδος/έξοδος ii. ύπαρξη βρόχου iii. μη περατότητα
β.
iv. καθοριστικότητα v. αποτελεσματικότητα
Τα είδη των μεταβλητών που υποστηρίζει ένας αλγόριθμος είναι : i. αριθμητικές ii. πραγματικές iii. ημερομηνίες
γ.
iv. λογικές v. αλφαριθμητικές (χαρακτήρες)
Ποια από τα παρακάτω είναι δεκτά σαν ονόματα σταθερών : i. Α ii. Στοιχείο1 iii. 1Στοιχείο
iv. Φύλλο_μαθητή v. Τιμή-Σε-€ vi. ΤΑΧΥΤΗΤΑ
2.29 Να μετατραπούν οι παρακάτω μαθηματικές εκφράσεις, στις αντίστοιχες της «ΓΛΩΣΣΑΣ». α.
x + 3y x − 2y
ε.
a − 2a − 7b3
ζ.
X =
θ.
ηµα − 2εϕβ
ι.
κ = 3 x + 5 log a
x ( y + z (5 − k ))
β.
γ.
−b + b 2 − 4ac 2a
3x 2 − 2 x + 1
η.
δ.
{
xy x+ y
}
A = 2 3 − a 5 − ( −1) − e x −1
34
2.30 Να βρεθεί η τιμή της μεταβλητής Κ σε κάθε μια από τις παρακάτω περιπτώσεις όταν Α = 5 , Β = 4 , Γ = –2, Δ = –3 Κ (Α*Β) DIV 2 – Γ – (– Δ ) Κ Β DIV (A+1) + 30 MOD (– Δ) Κ Δ^2 – Α*Γ + 1 MOD A Κ – (– Β )*Γ – Δ
2.31 Να γράψετε στο τετράδιό σας τους αριθμούς της στήλης Α και δίπλα το γράμμα της στήλης Β που αντιστοιχεί στη σωστή αλγοριθμική έννοια. ΣΤΗΛΗ Α 1. Περατότητα 2. Είσοδος 3. Έξοδος
ΣΤΗΛΗ Β Α. Δεδομένα Β. Αποτελέσματα Γ. Ακρίβεια στην έκφραση των εντολών Δ. Πεπερασμένος χρόνος εκτέλεσης.
2.32 Δίνονται τα παρακάτω βήματα ενός αλγορίθμου σε φυσική γλώσσα : α. β. γ. δ. ε.
Τέλος Διάβασε μεταβλητή χ Εμφάνισε το Τ Αρχή Υπολόγισε Τ = χ2 + 5
Να τοποθετηθούν στη σωστή σειρά με την οποία εμφανίζονται συνήθως σε αλγορίθμους.
2.33 Να αντιστοιχίσετε τα δεδομένα της στήλης Α με τον κατάλληλο τύπο δεδομένων της στήλης Β. ΣΤΗΛΗ Α 1. Ύψος κτιρίου 2. Επώνυμο Εργαζόμενου 3. Αριθμός επιβατών τραίνου 4. Διαιρετότητα 2 αριθμών
ΣΤΗΛΗ Β Α. Ακέραιος Β. Πραγματικός Γ. Λογικός Δ. Αλφαριθμητικός- συμβολοσειρά
2.34 Δίνονται οι παρακάτω ομάδες προτάσεων. Σε κάθε μια από αυτές, να βάλετε τις προτάσεις στη σωστή σειρά με την οποία θα πρέπει να γράφονται σε ένα πρόγραμμα 1. α. Δήλωση μεταβλητών
γ. Επικεφαλίδα προγράμματος
β. Δήλωση σταθερών
δ. Εντολή εισόδου ΔΙΑΒΑΣΕ
2. α. ΓΡΑΨΕ ‘Η συνολική τιμή είναι’, Τιμή
γ. Κοστος Ν * 500
β. ΔΙΑΒΑΣΕ Ν
δ. Τιμη Κοστος + Κοστος * 0.18
35
2.35 Να βρεθεί η τιμή της λογικής μεταβλητής Λ σε κάθε μια από τις παρακάτω περιπτώσεις όταν Α = 9 , Β = 11 , Γ = ΑΛΗΘΗΣ , Δ = -3 Λ (Α > (Β-Δ) Ή Γ) ΚΑΙ (Γ Ή (Β < Δ)) Λ (Β DIV (A+1) = 1 Ή (ΟΧΙ Γ)) ΚΑΙ Γ Λ ΟΧΙ (Γ ΚΑΙ (OXI (Α DIV (Δ^2 MOD 4) < 5)))
2.36 Τι τύπου μεταβλητές πρέπει να χρησιμοποιήσετε για τα παρακάτω στοιχεία του μαθητολόγιου του σχολείου μας; Γράψετε το αντίστοιχο τμήμα δηλώσεων. α.
Το όνομα ενός μαθητή.
β.
Ο αριθμός μαθητολογίου του μαθητή.
γ.
Τη βαθμολογία του μαθητή.
δ.
Το τηλέφωνο ενός μαθητή.
ε.
Τη διεύθυνση ενός μαθητή.
ζ.
Το φύλο ενός μαθητή. (πώς μπορεί να οριστεί με χρήση λογικής μεταβλητής;)
2.37 Η τιμή Α της βαθμολογίας σε ένα θέμα μπορεί να πάρει τιμές από 0 μέχρι 5. (Το 0 και το 5 δεν είναι επιτρεπτές τιμές).
Ποια από τις παρακάτω λογικές εκφράσεις ελέγχει αυτή τη
συνθήκη ; α. (Α >= 0) ή (Α 0) και (Α < 5)
β. (Α > 0) και (Α =0) και (Α< 5)
2.38 Ποιον από τους τύπους δεδομένων της στήλης Β πρέπει να χρησιμοποιήσουμε για κάθε τιμή της στήλης Α. ΣΤΗΛΗ Α 1. ‘3115’ 2. Ψευδής 3. ‘Ψευδής’ 4. -22,76
ΣΤΗΛΗ Β Α. Αλφαριθμητικός- συμβολοσειρά Β. Αριθμητικός (ακέραιος – πραγματικός) Γ. Λογικός
2.39 Σε ένα πρόγραμμα έχουμε μία μεταβλητή Πλήθος την οποία θέλουμε να την αυξήσουμε κατά δύο μονάδες. Ποια από τις εντολές εχει σαν αποτέλσμα την αύξηση αυτή ; α.
Πλήθος +2 Πλήθος
β.
Πλήθος +2
γ.
Πλήθος Πλήθος + 2
δ.
Πλήθος = Πλήθος + 2
36
2.40 Δίνονται κάποιες εντολές γραμμένες σε ελεύθερο κείμενο. Να μετατραπεί καθεμιά σε αντίστοιχη εντολή αλγορίθμου σε ψευδογλώσσα. α.
Να τοποθετήσετε σε κατάλληλη μεταβλητή την τιμή 6.
β.
Μειώστε την προηγούμενη μεταβλητή κατά 3.
γ.
Υπολογίστε το τετράγωνο της τιμής που διαμορφώθηκε στο β. και τοποθετήστε το σε μια νέα μεταβλητή.
δ.
Εκτυπώστε στην οθόνη το περιεχόμενο της μεταβλητής που δημιουργήσατε στο γ.
ε.
Μηδενίστε την αρχική μεταβλητή.
2.41 Δίνονται κάποιες εντολές γραμμένες σε ελεύθερο κείμενο. Να μετατραπεί καθεμιά σε αντίστοιχη εντολή αλγορίθμου σε ψευδογλώσσα. α.
Διαβάστε μια ακέραια τιμή από το πληκτρολόγιο και τοποθετήστε στη μεταβλητή Α.
β.
Εμφανίστε στην οθόνη την τιμή που διαβάσατε.
γ.
Διπλασιάστε το περιεχόμενο της μεταβλητής Α και στη συνέχεια αυξήστε το κατά 5.
δ.
Τοποθετήστε στη μεταβλητή Β την τελευταία τιμή του Α.
ε.
Εκτυπώστε στην οθόνη την τιμή του Β ελλατωμένη κατά 10.
2.
ΘΕΜΑΤΑ ΜΕ ΔΙΑΓΡΑΜΜΑ ΡΟΗΣ
2.42 Να γίνει διάγραμμα ροής για τη μετατροπή των βαθμών Fahrenheit σε Celsius. (Δίνεται C=
5 (F – 32)). 9
2.43 Ένας εργοδότης αποφάσισε να δώσει επίδομα 11% επί του βασικού μισθού σε όλους τους εργαζόμενους. Να γίνει διάγραμμα ροής που θα διαβάζει το βασικό μισθό ενός υπαλλήλου και θα υπολογίζει τον τελικό του μισθό. 2.44 Ο τύπος που υπολογίζει το ύψος ενός ατόμου σε συνάρτηση με το βάρος του είναι Υ = 1.2.( 1.05.Β + 50 ) + 11. Να γράψετε διάγραμμα ροής που θα διαβάζει το βάρος ενός ατόμου και θα υπολογίζει και θα εμφανίζει το φυσιολογικό ύψος του ατόμου.
3.
ΘΕΜΑΤΑ ΜΕ ΚΑΤΑΣΚΕΥΗ ΑΛΓΟΡΙΘΜΟΥ
2.45 Δίνεται το παρακάτω διάγραμμα ροής. Να γραφεί ο αντίστοιχος αλγόριθμος σε ψευδογλώσσα.
37
2.46 Να γραφεί αλγόριθμος σε ψευδογλώσσα ο οποίος : α.
Θα διαβάζει μια διάρκεια εκφρασμένη σε ώρες, λεπτά και δευτερόλεπτα π.χ : 3 ώρες 20 λεπτά και 10 δευτερόλεπτα.
β.
Θα τη μετατρέπει σε δευτερόλεπτα.
γ.
Θα εμφανίζει στην οθόνη το αποτέλεσμα της μετατροπής.
2.47 Να γραφεί αλγόριθμος για τον υπολογισμό του όγκου κυλίνδρου με ακτίνα βάσης ρ και ύψος υ. (Δίνεται V=πρ2υ ). Συγκεκριμένα ο αλγόριθμος θα εκτελεί τις εξής ενέργειες : α.
Εισαγωγή των κατάλληλων δεδομένων.
β.
Υπολογισμός του όγκου.
γ.
Εκτύπωση του αποτελέσματος με κατάλληλο μήνυμα.
2.48 Να δημιουργηθεί αλγόριθμος ο οποίος : α.
Θα διαβάζει την αξία ενός προιόντος χωρίς το Φ.Π.Α.
β.
Θα υπολογίζει το ποσό του Φ.Π.Α καθώς και την τελική του τιμή αν είναι γνωστό ότι ο συντελεστής είναι 21%.
γ.
Στη συνέχεια θα εμφανίζει το ποσό του Φ.Π.Α καθώς και την τελική αξία.
2.49 Να δημιουργηθεί αλγόριθμος σε ψευδογλώσσα ο οποίος : α.
Θα δέχεται 2 φυσικούς αριθμούς.
β.
Και θα εμφανίζει το άθροισμα, το γινόμενο, το ημιάθροισμα, τη διαφορά, την απόλυτη τιμή και την τετραγωνική ρίζα των 2 αριθμών χωρίς να τοποθετηθούν οι υπολογισμοί σε νέες μεταβλητές.
2.50 1.
Να γραφεί αλγόριθμος ο οποίος με τη βοήθεια του τύπου του Ήρωνα θα υπολογίζει το εμβαδόν του τριγώνου. α + β +γ (Υπενθυμίζεται από τη Β’ Λυκείου ότι E = τ (τ − α )(τ − β )(τ − γ ) όπου τ = ). 2 Συγκεκριμένα ο αλγόριθμος πρέπει : α.
Να εμφανίζει το μήνυμα «Δώστε τρεις έγκυρες πλευρές τριγώνου» και να διαβάζει από το πληκτρολόγιο τους τρεις αριθμούς.
β.
Να υπολογίζει το εμβαδό του τριγώνου.
γ.
Να εμφανίζει στην οθόνη το μήνυμα «Το τρίγωνο έχει εμβαδόν» και ακριβώς δίπλα την τιμή που υπολογίστηκε στο β. υποερώτημα.
2.
Μετατρέψτε τον παραπάνω αλγόριθμο σε ισοδύναμο διάγραμμα ροής χωρίς όμως να περιέχει μηνύματα. 38
2.51 Κατά την περίοδο των καλοκαιρινών εκπτώσεων 2013 ένα κατάστημα προσφέρει μείωση τιμών σε όλα τα είδη κατά 40%. Να γραφτεί αλγόριθμος σε ψευδογλώσσα ο οποίος : α.
Θα διαβάζει την τιμή ενός προϊόντος πρίν από την εκπτώση.
β.
Στη συνέχεια θα υπολογίζει το ποσό της έκπτωσης καθώς και το τελικό ποσό που καλείται να πληρώσει ο υποψήφιος αγοραστής.
γ.
Θα εμφανίζει στην οθόνη όσα υπολογίστηκαν σύμφωνα με το παρακάτω υπόδειγμα. Αρχική Τιμή Χωρίς Έκπτωση : 200 € Ποσό Έκπτωσης : 80 € Τελική Τιμή Προιόντος : 120 €.
2.52 Να αναπτύξετε αλγόριθμο ο οποίος α.
Θα εμφανίζει το πεδίο ορισμού της συνάρτησης
f ( x) =
x−7 3 + (3 − x ) . 4 9 + (3 + x)
Σημειώνεται ότι το πεδίο ορισμού θα βρείτε με βάση τις μαθηματικές σας γνώσεις.
β.
Θα διαβάζει έναν αριθμό x .
γ.
Θα υπολογίζει την τιμή της συνάρτησης.
δ.
Θα εμφανίζει το αποτέλεσμα στη μορφή f(x)=y π.χ. f(7) = -64.
ε.
Υπάρχει περίπτωση ο παραπάνω αλγόριθμος να παραβιάσει το κριτήριο της καθοριστικότητας ; Αιτιολογήστε την κάθε απάντηση σας.
2.53 Οι μηνιαίες αποδοχές ενός υπαλλήλου της εταιρείας «ΑΕΠΠ Α.Ε.» είναι 700 €. Παράλληλα για κάθε έτος προυπηρεσίας λαμβάνει επίδομα 15 €, ενώ για κάθε παιδί επίδομα 25 €. Τέλος για ασφάλιση κρατείται από τις συνολικές του αποδοχές ποσοστό 17%. 1.
2.
Να αναπτύξετε αλγόριθμο που : α.
Θα διαβάζει το ονοματεπώνυμο ενός εργαζομένου της εταιρείας, το πλήθος των ετών υπηρεσίας και τον αριθμό των παιδιών του.
β.
Θα υπολογίζει το ποσό των κρατήσεων και τις καθαρές αποδοχές του εργαζόμενου.
γ.
Θα εμφανίζει υποερώτημα.
το
ονοματεπώνυμο
και
όσα
υπολογίστηκαν
Δημιουργήστε τώρα κατάλληλο διάγραμμα ροής.
39
στο
β.
4.
ΘΕΜΑΤΑ ΜΕ ΕΚΤΕΛΕΣΗ ΑΛΓΟΡΙΘΜΟΥ
2.54 1. Ποιες από τις παρακάτω εντολές δίνουν σαν αποτέλεσμα εκτέλεσης το μήνυμα: Η τιμή είναι 10
2.
Α.
Τιμή 10 ΓΡΑΨΕ ‘Η τιμή είναι’ 10
Β.
Τιμή 10 ΓΡΑΨΕ ‘Η τιμή είναι’, 10
Γ.
ΓΡΑΨΕ ‘Η τιμή είναι’, Τιμή
Δ.
Τιμή 10 ΓΡΑΨΕ ‘Η τιμή είναι’, Τιμή
Τι θα τυπώσουν οι παρακάτω εντολές Α 25 Χ (2 + Τ_Ρ(Α)*3/5)^2 - (Α+50)/5 ΓΡΑΨΕ Χ Α. 22
Β. -3
Γ. 10
Δ. 25
2.55 Δίνεται ο παρακάτω αλγόριθμος σε ψευδογλώσσα. Αλγόριθμος Πίνακας_τιμών Διάβασε α α α mod 6 αα+3 Εκτύπωσε α β α + 10 α α div 2 Εκτύπωσε α , β-1 Τέλος Πίνακας_τιμών α.
Να κατασκευάσετε πίνακα με τις όλες τις τιμές των μεταβλητών καθώς επίσης και πίνακα με τις τιμές που θα τυπωθούν στην οθόνη , αν εισαχθεί η τιμή 17.
β.
Κατόπιν δημιουργήστε το αντίστοιχο διάγραμμα ροής.
2.56 Δίνεται ο παρακάτω αλγόριθμος. Αλγόριθμος Πίνακας_Τιμών X 12 Y 2*X - 8 Z Y div X Εκτύπωσε Y, Z, X X (X + Z) mod Y Y (Y + Z) div X ZX*Y-Z^2 Εκτύπωσε Y, Z, X Τέλος Πίνακας_Τιμών
40
α.
Να παρουσιαστεί ο πίνακας όλων των τιμών των μεταβλητών του.
β.
Ποιες οι τιμές που θα εκτυπωθούν μετά την εκτέλεση του.
γ.
Να φτιάξετε ισοδύναμο διάγραμμα ροής.
5.
ΘΕΜΑΤΑ ΜΕ ΚΑΤΑΣΚΕΥΗ ΠΡΟΓΡΑΜΜΑΤΟΣ ΣΕ ΓΛΩΣΣΑ
2.57 Να αναπτύξετε πρόγραμμα στη «ΓΛΩΣΣΑ» που θα υπολογίζει και θα εμφανίζει το μήκος της περιφέρειας L ενός κύκλου ακτίνας R. Η ακτίνα θα δίνεται από το πληκτρολόγιο. Να χρησιμοποιήσετε το τύπο L=2πR όπου π = 3,14.
2.58 Θεωρούμε έναν κώνο με ακτίνα βάσης ρ και γενέτειρα λ. Να γραφεί πρόγραμμα στη «ΓΛΩΣΣΑ» για τον υπολογισμό της ολικής επιφάνειας του κώνου αν είναι γνωστό ότι 2 E κ υ ρτή ς = π ρ λ και Εβάσης=πρ .
2.59 Να γραφεί πρόγραμμα στη «ΓΛΩΣΣΑ» το οποίο : α.
Θα διαβάζει από το πληκτρολόγιο 4 αριθμούς, α,β,γ,δ
β.
Θα εμφανίζει τετράγωνο των α,β την 4η δύναμη των γ,δ και το συνολικό άθροισμα των αριθμών που δόθηκαν αρχικά χωρίς τη χρήση νέων μεταβλητών για τους υπολογισμούς.
2.60 Να γραφεί πρόγραμμα στη «ΓΛΩΣΣΑ» που θα υπολογίζει τα παρακάτω μεγέθη : Τ = 2π
L g
F=
GMm r2
Δίνονται οι σταθερές g = 9.81 , G = 6673 και π = 3.14
Συγκεκριμένα το πρόγραμμα πρέπει να περιέχει : α.
Τμήμα δήλωσης σταθερών και μεταβλητών.
β.
Διάβασμα από το πληκτρολόγιο των κατάλληλων δεδομένων.
γ.
Υπολογισμό και εκτύπωση των ζητουμένων μεγεθών.
2.61 Να γραφεί πρόγραμμα στη «ΓΛΩΣΣΑ» που α.
Θα διαβάζει μια πλευρά α ενός τετραγώνου.
β.
Θα υπολογίζει τον εμβαδό του τετραγώνου και τον όγκο ενός κύβου ακμής α. (Δίνεται Ε = α 2 και V = α 3 ).
γ.
Θα εμφανίζει τα παραπάνω συνοδευόμενα από κατάλληλα μηνύματα.
41
2.62 Στο χρηματιστήριο, η τιμή κλεισίματος μιας μετοχής υπολογίζεται αν στην αρχική τιμή προσθέσουμε την απόδοση της, η οποία μπορεί να είναι και αρνητική. Να γραφεί πρόγραμμα στη «ΓΛΩΣΣΑ» το οποίο : α.
Θα διαβάζει την αρχική τιμή της μετοχής, το ποσοστό απόδοσης σε μορφή ποσοστού %
β.
Θα υπολογίζει και θα εμφανίζει την τιμή κλεισίματος.
2.63 Ο μισθός ενός δημοσίου υπαλλήλου προσαυξάνεται με 2% επί του βασικού μισθού για κάθε χρόνο υπηρεσίας και με 50 € επίδομα για κάθε παιδί. Να γραφεί πρόγραμμα στη «ΓΛΩΣΣΑ» που : α. θα διαβάζει το βασικό μισθό, τα χρόνια υπηρεσίας και τον αριθμό των παιδιών του εμφανίζοντας τα αντίστοιχα μηνύματα. β. θα υπολογίζει τον τελικό μισθό και θα τον εμφανίζει εκτυπώνοντας το μήνυμα «Ο μισθός του υπαλλήλου είναι : » και δίπλα η τιμή που υπολογίσατε.
2.64 Να γραφτεί πρόγραμμα στη «ΓΛΩΣΣΑ» που θα διαβάζει την τιμή 2 αντιστάσεων R1, R2 και στη συνέχεια θα υπολογίζει και θα εμφανίζει τη συνολική αντίσταση όταν αυτές συνδεθούν σε σειρά και όταν αυτές συνδεθούν παράλληλα. R1R2 (Δίνεται RΣειράς= R1 + R2 και RΠαράλ= ). R1 + R2
2.65 Σε ένα χιονοδρομικό κέντρο η κάρτα εγγραφής νέου μέλους κοστίζει 22 € και η χρήση εξοπλισμού σκι για μία ώρα 10 €. Να γραφτεί πρόγραμμα στη «ΓΛΩΣΣΑ» το οποίο α.
Θα ζητάει το ονοματεπώνυμο του νέου μέλους και τις ώρες που έκανε σκι.
β.
Στη συνέχεια θα υπολογίζει τη χρέωση του μέλους.
γ.
Θα εμφανίζει ονοματεπώνυμο και χρέωση.
2.66 Καλείστε να κατασκευάσετε ένα πρόγραμμα στη «ΓΛΩΣΣΑ» που θα διευκολύνει την εξαγωγή συμπερασμάτων στην επόμενη εκλογική αναμέτρηση. Το πρόγραμμα θα πρέπει να εκτελεί τις παρακάτω λειτουργίες. α.
Να διαβάζει την ονομασία και τον αριθμό των ψήφων των 2 πρώτων κομμάτων, τον αριθμό των ψήφων που πήραν συνολικά τα λοιπά κόμματα καθώς επίσης και τον αριθμό λευκών και άκυρων ψηφοδελτίων.
β.
Θα υπολογίζει και θα εμφανίζει τα παρακάτω μαζί με κατάλληλα μηνύματα : 1. Το ποσοστό επί του συνόλου των ψήφων που πήραν μαζί τα 2 πρώτα κόμματα. 2. Το ποσοστό των λοιπών κομμάτων. 3. Τα ποσοστά λευκών και άκυρων ψηφοδελτίων.
42
2.67 Ένας κύριος αγόρασε καινούριο φουσκωτό σκάφος. Του έκαναν μια ειδική προσφορά σύμφωνα με την οποία μπορεί να πληρώσει προκαταβολή 20% και τα υπόλοιπα σε 36 μηνιαίες δόσεις. Έτσι όμως το ποσό που απομένει για δόσεις θα επιβαρυνθεί με τόκο 15%. Το κόστος για την άδεια κατοχής φουσκωτού είναι 150 €. Να αναπτύξετε πρόγραμμα στη ΓΛΩΣΣΑ που θα διαβάζει την τιμή μετρητοίς του φουσκωτού, θα υπολογίζει το ποσό της προκαταβολής, το ποσό της δόσης καθώς και το συνολικό ποσό που τελικά θα πληρώσει ο κύριος. Στο τέλος θα εμφανίζει όλα όσα υπολογίστηκαν παραπάνω.
2.68 Τρεις φίλοι έπαιξαν μαζί ένα στοίχημα. Ο καθένας έδωσε χ , y , z € αντίστοιχα. Κέρδισαν τελικά 4850 €. Να γράψετε πρόγραμμα στη «ΓΛΩΣΣΑ» που θα διαβάζει τα ονόματα και τα ποσά που στοιχημάτισαν , θα υπολογίζει και θα εμφανίζει τα κέρδη του καθενός ξεχωριστά. Σημειώνεται ότι ο συγκεκριμένος υπολογισμός απαιτεί να χωρίσουμε το ποσό σε μέρη ανάλογα. Για παράδειγμα αν έπαιξαν 3, 2, 5 € θα πάρουν : 3 2 5 4850 € , 4850 € και 4850 € αντίστοιχα. 3+ 2+ 5 3+ 2+ 5 3+ 2+ 5
2.69 Δίνονται δύο μιγαδικοί αριθμοί z = α + β.i και w = γ + δi. Να γραφτεί πρόγραμμα στη «ΓΛΩΣΣΑ» το οποίο : α.
Θα διαβάζει τους 2 μιγαδικούς. Φυσικά η ΓΛΩΣΣΑ δεν υποστηρίζει μιγαδικές μεταβλητές. Οπότε για να διαβάσουμε τους μιγαδικούς διαβάζουμε ξεχωριστά τα πραγματικά και τα φανταστικά μέρη τους.
β.
Στη συνέχεια θα υπολογίζει το άθροισμα και το γινόμενο τους. Οι τύποι είναι γνωστοί από τα Μαθηματικά Κατευθυνσης.
γ.
Θα εμφανίζει τα αποτελέσματα στη μορφή x+yi.
6.
ΣΥΝΔΥΑΣΤΙΚΑ – ΕΠΑΝΑΛΗΠΤΙΚΑ ΘΕΜΑΤΑ
2.70 Να γραφεί πρόγραμμα «ΓΛΩΣΣΑ» που θα υπολογίζει το εμβαδόν ορθογωνίου με πλευρές α, β. ( Δίνεται ότι : Ε = α ⋅ β ). Μετατρέψτε το παραπάνω πρόγραμμα σε αλγόριθμο. 2.71 Θεωρήστε ένα ορθογώνιο παραλληλεπίπεδο. Να γραφεί πρόγραμμα στη «ΓΛΩΣΣΑ» για τον υπολογισμό του όγκου του. Στη συνέχεια γράψτε τον αντίστοιχο αλγόριθμο. ( Δίνεται V = α ⋅ β ⋅ γ ).
2.72 Να γραφεί πρόγραμμα στη «ΓΛΩΣΣΑ» που θα υπολογίζει το εμβαδόν της κυρτής επιφάνειας του κυλίνδρου και στη συνέχεια το ολικό εμβαδόν επιφανείας του. (Δίνεται ότι E κυ ρ τής = 2 π ρ υ και Ε ολικό =Ε κυρτής +2 ⋅ Ε βάσης ). Μετατρέψτε το παραπάνω πρόγραμμα σε διάγραμμα ροής.
2.73 Να γραφεί πρόγραμμα στη «ΓΛΩΣΣΑ» που θα υπολογίζει τον όγκο κώνου 1 ακτίνας ρ και ύψους υ. (Δίνεται ότι V= πρ 2υ ). Μετατρέψτε το πρόγραμμα που φτιάξατε 3 σε αλγόριθμο και διάγραμμα ροής.
43
2.74 1.
Να γραφεί αλγόριθμος ο οποίος : α.
Θα δέχεται μια χρονική διάρκεια σε δευτερόλεπτα
β.
Θα υπολογίζει σε πόσες ώρες, λεπτά και δευτερόλεπτα αντιστοιχεί.
γ.
Θα εμφανίζει μήνυμα σύμφωνα με το υπόδειγμα : Τα 4362 s αντιστοιχούν σε 1 h 12 min 42 s.
2.
Στη συνέχεια να μετατραπεί ο αλγόριθμος σε διάγραμμα ροής.
2.75 α. Να δημιουργηθεί αλγόριθμος που δέχεται τον ακαθάριστο μισθό ενός υπαλλήλου και υπολογίζει τον καθαρό μισθό του. Να σημειωθεί ότι ο υπάλληλος πρέπει να φορολογηθεί με 8%. β.
Να γίνει το διάγραμμα ροής.
2.76 α. Να φτιάξετε αλγόριθμο που θα διαβάζει τον αριθμό των δόσεων που επιθυμεί ο πελάτης, την αξία του υπολογιστή (σε Ευρώ) που θέλει να αγοράσει και θα εμφανίζει το ποσό απόπληρωμής (με τον τόκο της τάξης του 11%) καθώς και το ποσό κάθε δόσης. β.
Να γίνει το αντίστοιχο διάγραμμα ροής.
2.77 Για να υπολογίσουμε τη ροή του αίματος στον ανθρώπινο οργανισμό χρησιμοποιούμε τον τύπο ροής υγρών σε σωλήνες. Για παράδειγμα, η ροή του αίματος στην αορτή (την βασική αρτηρία που μεταφέρει αίμα σε όλα τα όργανα εκτός από τους πνεύμονες) υπολογίζεται από τον τύπο ΡΟΗ= 5500πρ4, όπου ρ η ακτίνα της αορτής. Μία υγιής αορτή έχει διάμετρο περίπου 0,02m. Η μείωση της διαμέτρου (στένωση) της αορτής προκαλεί σοβαρά καρδιαγγειακά νοσήματα αφού οποιαδήποτε στένωση προκαλεί πολύ μεγάλη μείωση της ροής αίματος. Για παράδειγμα, στένωση κατά 33% της αορτής προκαλεί μείωση κατά 80% της ροής του αίματος, με πολύ σοβαρές επιπλοκές στην υγεία του ανθρώπου. Να γράψετε πρόγραμμα το οποίο να υπολογίζει τη ροή του αίματος σε μία φυσιολογική αορτή (με ακτίνα 0.01m) και την ποσοστιαία μεταβολή της ροής που επέρχεται με μείωση της ακτίνας της αορτής κατά 10%, 33% και 50%.
44
ΚΕΦΑΛΑΙΟ 3ο
ΔΟΜΗ ΕΠΙΛΟΓΗΣ
Κεφάλαιο 3ο – ∆οµή Επιλογής Α.
Θεωρία
3.1
Η Δομή Επιλογής Όπως προαναφέραμε υπάρχουν τρεις θεμελιώδεις δομές στις οποίες στηρίζεται ο Δομημένος Προγραμματισμός. Στο Κεφάλαιο αυτό εξετάζουμε τη δεύτερη από αυτές, τη δομή της επιλογής. Δομή επιλογής με απλά λόγια σημαίνει η δυνατότητα που έχω σε κάποιο σημείο του αλγορίθμου να επιλέξω πως θα συνεχίσω, μεταξύ ενός πλήθους διαφορετικών κατευθύνσεων. Κατά συνέπεια κάποια τμήματα ίσως δεν εκτελούνται ποτέ. Σε αντίθεση με τη δομή της ακολουθίας στην οποία υποχρεωτικά εκτελούνται όλες οι εντολές με τη σειρά. Έχουμε αρκετές διαφορετικές μορφές της δομής επιλογής που θα εξεταστούν παρακάτω. Η δομή επιλογής υλοποιείται τόσο στους αλγόριθμους όσο και στα προγράμματα με τη χρήση της εντολής ΑΝ Η βασική φιλοσοφία της εντολής είναι η εξής : Η ροή της εκτέλεσης του αλγορίθμου συνεχίζει ανάλογα με την τιμή της συνθήκης που ελέγχει. Συνθήκη είναι η έκφραση εκείνη που περιέχει συνδυασμούς από σταθερές , μεταβλητές και τελεστες και το αποτέλεσμα τους εχει λογική τιμή, δηλαδή μόνο Αληθής ή Ψευδής. Στα διαγράμματα ροής η δομή επιλογής υλοποιείται με ένα ρόμβο που μέσα του γράφουμε τη συνθηκη που εξετάζεται και πάντοτε ξεκινούν από αυτόν δύο βέλη.
3.2
Η Εντολή Επιλογής ΑΝ Η βασικότερη εντολή επιλογής είναι η ΑΝ. Ας δούμε τις μορφές με τις οποίες μπορεί να εμφανιστεί.
3.2.1 Απλή επιλογή Σύνταξη : Αν τότε
! όταν θα εκτελεστεί μια μόνο εντολή
Σημειώνεται ότι η παραπάνω μορφή μπορεί να χρησιμοποιηθεί μόνο σε αλγοριθμους και όχι σε προγράμματα. Στα προγράμματα χρησιμοποιούμε την παρακάτω μορφή της απλής επιλογής. Αν τότε ... Εντολές ... Τέλος_αν
! όταν θα εκτελεστεί ομάδα εντολών
47
Διάγραμμα ροής :
Στις δύο παραπάνω μορφές γίνεται η εξής διεργασία. Ο αλγόριθμος – πρόγραμμα συναντά την εντολή Αν. Αμέσως ελέγχεται η συνθήκη και σε περίπτωση που είναι Αληθής (ισχύει) εκτελείται η εντολή (ομάδα εντολών). Σε αντίθετη περίπτωση δεν εκτελείται κάτι απλά ο αλγόριθμος συνεχίζει μετά το πέρας της δομής (επόμενη γραμμή ή τέλος_αν αντίστοιχα).
3.2.2 Τυπική επιλογή Σύνταξη : Αν τότε ... Εντολές-1 ... Αλλιώς ... Εντολές-2 ... Τέλος_αν Διάγραμμα ροής :
ΨΕΥΔΗΣ
……. ΕΝΤΟΛΕΣ 2 …….
ΣΥΝΘΗΚΗ
ΑΛΗΘΗΣ
……. ΕΝΤΟΛΕΣ 1 …….
Στην παραπάνω μορφή γίνεται η εξής διεργασία. Ο αλγόριθμος – πρόγραμμα συναντά την εντολή Αν. Αμέσως ελέγχεται η συνθήκη και σε περίπτωση που είναι Αληθής (ισχύει) εκτελείται η ομάδα εντολών 1. Σε αντίθετη περίπτωση εκτελείται η ομάδα εντολών 2. Άρα γίνεται κατανοητό ότι σε κάθε περίπτωση μια από τις δύο μόνο ομάδες θα εκτελεστούν. Στη συνέχεια ο αλγόριθμος συνεχίζει μετά το Τέλος_αν.
48
3.2.3 Πολλαπλή επιλογή Σύνταξη : Αν τότε ... Εντολές-1 ... Αλλιώς_αν τότε ... Εντολές-2 ... ......................... ......................... Αλλιώς_αν τότε ... Εντολές-ν ... Αλλιώς ... Εντολές-ν+1 ... Τέλος_αν Διάγραμμα ροής :
Η πολλαπλή επιλογή χρησιμοποιείται όταν θέλουμε να ελέγξουμε πολλές διαφορετικές περιπτώσεις ή διαφορετικές συνθήκες. Σε αυτή την περίπτωση οι συνθήκες ελέγχονται μία προς μία και αναλόγως προχωρά η δομή. 3.2.4 Εμφωλευμένες επιλογές Στην πραγματικότητα δεν πρόκειται για μια διαφορετική μορφή αλλά πρόκειται για συνδυασμό μερικών από τις παραπάνω περιπτώσεις. Φυσικά χρησιμοποιείται στην περίπτωση που έχουμε παραπάνω από μια συνθήκες. Οι συνδυασμοί εμφωλευμένων Αν που μπορεί να προκύψουν είναι άπειροι ανάλογα με το κάθε πρόβλημα. Μια από αυτές τις μορφές είναι αυτή της επόμενης σελίδας, στην οποία συνδυάζουμε πέντε εντολές Αν.
49
Σύνταξη : Αν τότε Αν < Συνθήκη-2> τότε ... Εντολές ... Αλλιώς Αν τότε ... Εντολές ... Τέλος_αν Τέλος_αν Αλλιώς Αν τότε ... Εντολές ... Τέλος_αν Αν τότε ... Εντολές ... Αλλιώς ... Εντολές ... Τέλος_αν Τέλος_αν
Σημαντικές παρατηρήσεις για τις Εμφωλευμένες Επιλογές !!! Όσα Αν ξεκινάμε τόσα Τέλος_αν πρέπει να κλείσουμε και μάλιστα στο σημείο που τερματίζει η κάθε δομή. Γι αυτό είναι χρήσιμο αμέσως μετά από κάθε Αν, αλλιώς ή αλλιώς_αν να ξεκινάμε 2 εκατοστά περίπου πιο δεξιά. (Γενικά ισχύει ο κανόνας ότι το πρώτο Αν κλείνει τελευταίο). Η εμφωλευμένες δομές πρέπει να αποφεύγονται όσο το δυνατόν και να χρησιμοποιούνται απλούστερες δομές προκειμένου να μην αυξάνεται η πολυπλοκότητα του αλγόριθμου.
Β.
Ερωτήσεις 3.1 Τι εννοούμε με τον όρο δομή επιλογής ; 3.2 Ποιες είναι οι εντολές επιλογής ; 3.3 Ποιες είναι οι μορφές της εντολής Αν ;
50
Γ.
Λυμένα Θέματα
3.4 Να γίνει διάγραμμα ροής και αλγόριθμος ο οποίος θα δέχεται έναν αριθμό και αν αυτός είναι μεγαλύτερος του 40 θα τον εμφανίζει αλλιώς θα εμφανίζει το τριπλάσιο του. Αλγόριθμος Αριθμός Διάβασε α Αν α > 40 τότε Εμφάνισε α Αλλιώς Εμφάνισε 3*α Τέλος_αν Τέλος Αριθμός
ΑΡΧΗ
ΔΙΑΒΑΣΕ Α
ΑΛΗΘΗΣ
Α > 40
ΕΜΦΑΝΙΣΕ Α
ΨΕΥΔΗΣ
ΕΜΦΑΝΙΣΕ 3*Α
ΤΕΛΟΣ
Σημαντικές παρατηρήσεις !!! Ένας ακέραιος αριθμός x είναι πολλαπλάσιο του α αν ισχύει x mod α = 0 και κατά συνέπεια δεν είναι όταν x mod α 0. Επομένως ελέγχουμε πάντα το αποτέλεσμα της συνθήκης x mod α = 0 . Αν αυτό είναι Αληθής τότε ο x είναι πολλαπλάσιο του α σε αντίθετη περίπτωση δεν είναι. Ειδικά για την περίπτωση που θέλουμε να δούμε αν ένας αριθμός είναι άρτιος ή περιττός, το α = 2. Δηλαδή ελέγχουμε τη συνθήκη x mod 2 = 0. Αν το αποτέλεσμα που θα μας δώσει είναι Αληθής τότε ο ακέραιος x είναι άρτιος, ενώ αν μας δώσει Ψευδής τότε είναι περιττός. Πολλές φορές χρησιμοποιούμε την δομή επιλογής για να ελέγξουμε πιθανά σφάλματα στην εισαγωγή δεδομένων. Για παράδειγμα αν ζητείται εισαγωγή βαθμολογιών μαθητών τότε αυτοί για να είναι αποδεκτοί πρέπει να είναι μεγαλύτεροι ή ίσοι από το 0 και μικρότεροι ή ίσοι από το 100. Σε αντίθετη περίπτωση ζητάμε ξανά την εισαγωγή του αριθμού. Δείτε με προσοχή το παράδειγμα που αναφέρουμε παρακάτω.
51
π.χ.
Αλγόριθμος Βαθμοί Διάβασε βαθμός Αν (βαθμός < 0) ή (βαθμός > 100) τότε Εμφάνισε ‘Λάθος βαθμολογία , ξαναδώσε’ Διάβασε βαθμός Τέλος_αν ... Τέλος_Βαθμοί Βέβαια το μειονέκτημα αυτής της μεθόδου ελέγχου ορθότητας δεδομένων είναι ότι ο έλεγχος γίνεται μόνο μια φορά. Σε περίπτωση που ο άνθρωπος πατήσει ξανά λάθος ο βαθμός θα καταχωρηθεί λάθος. Σε επόμενο κεφάλαιο θα επανέλθουμε στο θέμα αυτό, δίνοντας μια πιο σωστή λύση του προβλήματος. Σε κάποιους αλγόριθμους ίσως χρειαστεί να ελέγξουμε κατά πόσο ένας αριθμός που δόθηκε είναι ακέραιος ή δεκαδικός. Αυτό επιτυγχάνεται με τη βοήθεια της συνάρτησης Α_Μ(Χ) που μελετήσαμε στο προηγούμενο κεφάλαιο. Συγκεκριμένα αν η συνθήκη Χ – Α_Μ(Χ) = 0 είναι αληθής τότε ο αριθμός Χ είναι ακέραιος. Σε αντίθετη περίπτωση έχει δεκαδικό μέρος.
3.5 Να γράψετε αλγόριθμο και στη συνέχεια πρόγραμμα στη «ΓΛΩΣΣΑ» το οποίο θα δέχεται ένα θετικό αριθμό και θα ελέγχει να αυτός είναι άρτιος ή περιττός εμφανίζοντας κατάλληλο μήνυμα σε κάθε περίπτωση. ΠΡΟΓΡΑΜΜΑ ΑΡΙΘΜΟΙ Αλγόριθμος Αριθμοί ΜΕΤΑΒΛΗΤΕΣ Διάβασε χ ΑΚΕΡΑΙΕΣ : Χ Αν χ 12 Τότε Εμφάνισε Χ,Υ Τέλος_αν Τέλος_Ασκηση_3_8
1 Περίπτωση
η
3 Περίπτωση
η
η
3 Περίπτωση
η
Χ=4 4 > 0 Αληθής Υ=2 Χ=7 2 > 12 Ψευδής -
Στην 1η περίπτωση ο αλγόριθμος δεν εμφανίζει τίποτα διότι Υ = 2 < 12 ενώ οι μεταβλητές Χ, Υ έχουν τις τιμές Χ = 7 και Υ = 2. Αλγόριθμος Αλγόριθμος Ασκηση_3_8 Διάβασε Χ Αν Χ > 0 Τότε ΥΧ–2 ΧΥ+5 Αλλιως Υ Χ^2 + 5 Τέλος_αν Αν Υ > 12 Τότε Εμφάνισε Χ,Υ Τέλος_αν Τέλος_Ασκηση_3_8
η
1 Περίπτωση
η
2 Περίπτωση
η
3 Περίπτωση
Χ=4 Χ = -5 4 > 0 Αληθής -5 >0 Ψευδής Υ=2 Χ=7 -5 12 Ψευδής 27>12 Αληθής -5 , 27 -
Στη 2η περίπτωση ο αλγόριθμος εμφανίζει -5 , 27 διότι Υ = 27 > 12 ενώ οι μεταβλητές Χ, Υ έχουν τις τιμές Χ = -5 και Υ = 27.
54
Αλγόριθμος Αλγόριθμος Ασκηση_3_8 Διάβασε Χ Αν Χ > 0 Τότε ΥΧ–2 ΧΥ+5 Αλλιως Υ Χ^2 + 5 Τέλος_αν Αν Υ > 12 Τότε Εμφάνισε Χ,Υ Τέλος_αν Τέλος_Ασκηση_3_8
η
1 Περίπτωση
η
2 Περίπτωση
η
3 Περίπτωση
Χ=4 Χ = -5 Χ=9 4 > 0 Αληθής -5 >0 Ψευδής 9>0 Αληθής Υ=2 Υ=7 Χ=7 Χ = 12 -5 12 Ψευδής 27>12 Αληθής 7 > 12 Ψευδής -5 , 27 -
Στην 3η περίπτωση ο αλγόριθμος δεν εμφανίζει τίποτα διότι Υ = 7 < 12 ενώ οι μεταβλητές Χ, Υ έχουν τις τιμές Χ = 12 και Υ = 7.
55
Δ.
Θέματα για λύση
1.
ΘΕΩΡΗΤΙΚΑ ΘΕΜΑΤΑ
3.8 Για καθεμιά από τις παρακάτω προτάσεις σημειώστε Σωστό (Σ) ή Λάθος (Λ). α.
Η συνθήκη που ελέγχεται σε μια τυπική δομή επιλογής μπορεί να πάρει περισσότερες από 2 διαφορετικές τιμές.
β.
Με τη δομή επιλογής δίνεται η δυνατότητα σε έναν αλγόριθμο, να ικανοποιηθεί το κριτήριο της καθοριστικότητας
γ.
Η αποτελεσματικότητα αλγορίθμου καθορίζει ότι κάθε εντολή πρέπει να μπορεί να εκτελεστεί χωρίς καμία αμφιβολία.
δ.
Όταν δύο λογικές συνθήκες έχουν την ίδια τιμή, τότε η διάζευξη τους είναι πάντα αληθής.
ε.
Οι διαδικασίες των πολλαπλών επιλογών εφαρμόζονται και στην περίπτωση που εκτελούνται διαφορετικές ενέργειες με βάση των αριθμό των τιμών μιας μεταβλητής.
3.9 Για καθεμιά από τις παρακάτω προτάσεις σημειώστε Σωστό (Σ) ή Λάθος (Λ). α.
Η σύγκριση Αληθής Ψευδής είναι λανθασμένη.
β.
Με την εντολή Αν Χ div 2 = 0 ελέγχουμε αν ένας αριθμός είναι άρτιος.
γ.
Μια λογική έκφραση μπορεί να περιλαμβάνει περισσότερους από έναν λογικούς τελεστές.
δ.
Αν Α=10 και Β=20 τότε η έκφραση (Α>8 ή Β10 ή Β=10) είναι αληθής.
ε.
Αν Α=5 και Β=6 τότε η λογική έκφραση (Α>5 ή Α5) είναι ψευδής.
3.10 Να μετατραπούν οι παρακάτω λογικές εκφράσεις, σε αντίστοιχες της«ΓΛΩΣΣΑΣ». α. -3 ≤ x ≤ 8
β. y = 10 ή 29 ή 35
γ.
x > 5 και x < 28 δ. α > -3 ή β = 2
3.11 Ποιο είναι το αποτέλεσμα της εκτέλεσης των παρακάτω λογικών εκφράσεων όταν Α = –7 και Β = 4 και Γ= Ψευδής. Πρόταση Χ : (Α + Β > -2) Η (ΟΧΙ(Γ))
....................
Πρόταση Υ : ΟΧΙ(ΟΧΙ(ΟΧΙ(Γ Ή Α < 0)))
....................
Πρόταση Ζ : (Β*Α – 28 = 0) Η (ΟΧΙ(Γ))
....................
Χ ΚΑΙ Υ ΚΑΙ Ζ
....................
(Χ Η Υ) ΚΑΙ (ΟΧΙ (Ζ))
....................
Ζ Η (Υ Η Χ)
....................
56
3.12 Αν η μεταβλητή Α έχει την τιμή 10, η μεταβλητή Β έχει την τιμή 5 και η μεταβλητή Γ έχει την τιμή 3 ποιες από τις παρακάτω εκφράσεις είναι αληθείς και ποιες ψευδείς. α.
ΟΧΙ (Α >Β)
β.
A > Β ΚΑΙ Α2 τότε ψφ αλλιώς ψ φ^2 – 3 Τέλος_αν Εμφάνισε ψ Τέλος Άσκηση Να εντοπίσετε : α.
Τους αριθμητικούς τελεστές
β.
Τις μεταβλητές
γ.
Τις σταθερές
δ.
Τις εντολές εισόδου
ε.
Τις αριθμητικές εκφράσεις
ζ.
Τις εντολές εκχώρησης
η.
Τις λογικές εκφράσεις
θ.
Τους λογικούς τελεστές
ι.
Τους συγκριτικούς τελεστές
3.16 Δίνεται το παρακάτω τμήμα αλγορίθμου : Αν α > 0 τότε Λ Αληθής Αλλιώς Λ Ψευδής Τέλος_αν Να γράψετε στο τετράδιό σας συμπληρωμένη την παρακάτω εντολή εκχώρησης, ώστε να έχει το ίδιο αποτέλεσμα με το παραπάνω τμήμα αλγορίθμου. Λ .....
58
2.
ΘΕΜΑΤΑ ΜΕ ΑΠΛΗ ΕΠΙΛΟΓΗ
3.17 Σε τέσσερις διαφορετικές ρίψεις για πρόκριση στην Ολυμπιάδα της Αθήνας ένας αθλητής της σφαιροβολίας πέτυχε τις επιδόσεις a,b,c,d. Να κατασκευάσετε διάγραμμα ροής στο οποίο θα εκτελούνται τα παρακάτω : Α.
Β.
α.
Να διαβάζει τις τιμές των επιδόσεων a,b,c,d
β.
Να υπολογίζει και να εμφανίζει τη μέση τιμή των παραπάνω επιδόσεων
γ.
Να εμφανίζει το μήνυμα «Προκρίθηκε», αν η παραπάνω μέση τιμή είναι μεγαλύτερη των 18 μέτρων.
Να μετατραπεί το παραπάνω διάγραμμα ροής σε αλγόριθμο.
3.18 Σε τρία διαφορετικά σημεία της πόλης της Χίου στις 9 Ιουλίου 2005 καταγράφηκαν στις 12 το μεσημέρι οι θερμοκρασίες θ1, θ2, θ3. Α.
Β.
Να αναπτύξετε αλγόριθμο που: α.
Να διαβάζει τις τρεις θερμοκρασίες
β.
Να υπολογίζει και να εμφανίζει τη μέση τιμή των παραπάνω θερμοκρασιών.
γ.
Να εμφανίζει το μήνυμα «Καύσωνας» αν η μέση τιμή είναι μεγαλύτερη των 38 βαθμών Κελσίου.
Να γίνει πρόγραμμα στη «ΓΛΩΣΣΑ».
3.19 Μια οικογένεια κατανάλωσε Χ Κwh (κιλοβατώρες) ημερήσιου ρεύματος και Υ Kwh νυχτερινού ρεύματος. Το κόστος ημερήσιου ρεύματος είναι 0,12 € / Kwh και του νυχτερινού 0,06 € / Kwh. Να αναπτύξετε έναν αλγόριθμο ο οποίος: α.
Να διαβάζει τα Χ, Υ.
β.
Να υπολογίζει και να εμφανίζει το συνολικό κόστος της κατανάλωσης ρεύματος της οικογένειας.
γ.
Να εμφανίζει το μήνυμα ‘Υπερβολική Κατανάλωση’, στην περίπτωση που το συνολικό κόστος είναι μεγαλύτερο από 320 €.
3.20 Να γραφεί πρόγραμμα στη «ΓΛΩΣΣΑ» το οποίο να διαβάζει τρεις αριθμούς και να τυπώνει το μικρότερο και το μεγαλύτερο. Να θεωρήσετε ότι οι αριθμοί είναι διαφορετικοί μεταξύ τους.
59
3.
ΘΕΜΑΤΑ ΜΕ ΤΥΠΙΚΗ ΕΠΙΛΟΓΗ
3.21 Να γίνει πρόγραμμα στη «ΓΛΩΣΣΑ» το οποίο : α.
Θα δέχεται έναν ακέραιο αριθμό α.
β.
Θα ελέγχει αν είναι πολλαπλάσιος του 4 και εμφανίζει κατάλληλο μήνυμα.
γ.
Σε αντιθετη περίπτωση θα τυπώνει το μήνυμα «Ο αριθμός που δώσατε δεν διαιρείται με το 4».
3.22 Να γίνει πρόγραμμα στη «ΓΛΩΣΣΑ» το οποίο : α.
Θα δέχεται έναν πραγματικό αριθμό.
β.
Θα ελέγχει αν είναι ακέραιος με τη βοήθεια της συνάρτησης Α_Μ(Χ) και θα εμφανίζει το μήνυμα «Δώσατε ακέραιο».
γ.
Σε αντιθετη περίπτωση θα τυπώνει το μήνυμα «Ο αριθμός που δώσατε είναι δεκαδικός».
3.23 Να γίνει αλγόριθμος σε ψευδογλώσσα ο οποίος : α.
Θα διαβάζει έναν αριθμό.
β.
Στην περίπτωση που αυτός δεν είναι ακέραιος και θετικός θα τυπώνει το μήνυμα «Παρακαλώ ξαναδώστε» και θα τον ξαναδιαβάζει.
γ.
Στη συνέχεια θα ελέγχει αν ο αριθμός είναι μεγαλύτερος ή όχι από το 100 τυπώνοντας παράλληλα τα κατάλληλα μηνύματα σε κάθε περίπτωση.
3.24 Να γίνει αλγόριθμος σε ψευδογλώσσα ο οποίος : α.
Θα διαβάζει έναν ακέραιο αριθμό.
β.
Θα υπολογίζει το τελευταίο του ψηφίο.
γ.
Στη συνέχεια θα ελέγχει αν αυτό είναι ίσο 5 και θα τυπώνει το μήνυμα «Συγχαρητήρια κερδίσατε ο αριθμός που διαλέξατε λήγει σε 5» ενώ σε αντιθετη περίπτωση θα τυπώνει το μήνυμα «Ξαναπροσπαθήστε».
3.25 Μια εταιρεία ραδιοταξί χρεώνει τις διαδρομές σύμφωνα με τον ακόλουθο τρόπο. 1.5€ για την κλήση του ταξί. 0.18 €/χλμ για διαδρομές έως και 40 χλμ. Για μεγαλύτερες αποστάσεις το κόστος είναι 0,14 €/χλμ και επιβάρυνση 5 € επιπλεον. Να γίνει αλγόριθμος ο οποίος : α.
Θα διαβάζει τη χιλιομετρική απόσταση.
β.
Θα υπολογίζει και θα εμφανίζει τη χρέωση του πελάτη.
60
3.26 Να γίνει αλγόριθμος ο οποίος αρχικά θα διαβάζει δύο αριθμούς που αντιστοιχούν στα ποσοστά του διοξειδίου του άνθρακα και του αζώτου μίας ημέρας, όπως έχουν καταγραφεί στα ειδικά μηχανήματα καταγραφής στην ατμόσφαιρα της πόλης. Στη συνέχεια να εκτυπώνει ότι η ατμόσφαιρα είναι «καθαρή», αν το ποσοστό του διοξειδίου του άνθρακα είναι κάτω από 0.35, ή να εκτυπώνει «μολυσμένη» στην αντίθετη περίπτωση. Επίσης να εκτυπώνει «διαυγής»,αν το άζωτο είναι κάτω από 0.17, αλλιώς να εκτυπώνει «αδιαυγής».
4.
ΘΕΜΑΤΑ ΜΕ ΠΟΛΛΑΠΛΗ ΕΠΙΛΟΓΗ
3.27 Να γραφεί πρόγραμμα στη «ΓΛΩΣΣΑ» το οποίο θα διαβάζει ένα μήνα και θα εμφανίζει την εποχή στη οποία ανήκει. Ο μήνας θα πρέπει να δίνεται με τα 3 πρώτα γράμματα εκτός από τον Ιούνιο και Ιούλιο που πρέπει να δίνονται τα 4 πρώτα. Σε περίπτωση που ο μήνας δοθεί λάθος θα τυπώνεται μήνυμα «Λάθος μήνας». 3.28 Να γράψετε πρόγραμμα στη «ΓΛΩΣΣΑ» που θα διαβάζει έναν ακέραιο αριθμό μεταξύ 1 και 999 και θα εμφανίζει αντίστοιχο μήνυμα αν ο αριθμός είναι μονοψήφιος, διψήφιος ή τριψήφιος.
3.29 Να αναπτυχθεί αλγόριθμος ο οποίος θα διαβάζει το μέσο όρο ενός μαθητή κατά την περασμένη σχολική χρονιά και θα εκτυπώνει το αντίστοιχο μήνυμα σύμφωνα με τα ακόλουθα: Αν ο βαθμός είναι μικρότερος από 9,5 ο μαθητής απορρίπτεται στο μάθημα, αν είναι μεγαλύτερος ή ίσος από 9,5 και μικρότερος από 13 τότε ο χαρακτηρισμός του μαθητή είναι "Σχεδόν καλά", αν είναι μεγαλύτερος ή ίσος του 13 έως 16 ο χαρακτηρισμός είναι "Καλά", αν είναι μικρότερος του 18 "Πολύ καλά", ενώ τέλος αν ο μέσος όρος είναι μεγαλύτερος ή ίσος του 18 ο χαρακτηρισμός είναι "Άριστα" 3.30 Να γραφεί αλγόριθμος που θα υπολογίζει την τιμή της παρακάτω συνάρτησης. , x 0
3.31 Σε ένα κατάστημα τα προϊόντα έχουν εκπτώσεις ανάλογα με τον κωδικό τους: Κωδικός Προιόντος Α1 Α2 Α3 Α4
Έκπτωση 10% 15% 20% 25%
Να κατασκευαστεί διάγραμμα ροής το οποίο θα διαβάζει τον κωδικό (ΚΑ) και την τιμή (ΤΜ) ενός προϊόντος και να υπολογίζει την τιμή του μετά την έκπτωση (ΤΕ). Στην περίπτωση όπου δοθεί κωδικός διαφορετικός από τους παραπάνω θα τυπώνεται το μήνυμα : «Ανύπαρκτος κωδικός προϊόντος» και θα ζητιέται εκ νέου. Στη συνέχεια κατασκευάστε τον αντίστοιχο αλγόριθμο.
61
3.32 Ο παρακάτω πίνακας δείχνει το συντελεστή επιδόματος επί του βασικού μισθού, που παίρνει ένας δημόσιος υπάλληλος ανάλογα με τα χρόνια στην υπηρεσία. Έτη υπηρεσίας
Συντελεστής
=5 και < 10 >= 10
0.05 0.1 0.15
Να γραφεί αλγόριθμος που για έναν υπάλληλο : α.
Θα διαβάζει ονοματεπώνυμο, βασικό μισθό και έτη υπηρεσίας
β.
Θα υπολογίζει και θα εμφανίζει το όνομα του υπαλλήλου και το συνολικό μισθό μαζί με το επίδομα. π.χ : ένας υπάλληλος με 12 χρόνια υπηρεσίας και βασικό μισθό 850 € θα παίρνει : 850 + 0.15*850 €
3.33 Το επίδομα παιδιών για μια οικογένεια δίνεται με βάση τον παρακάτω πίνακα : Αριθμός παιδιών 1 2-3 4 και άνω
Επίδομα ανά παιδί 30 € 40 € 50 €
Να γραφεί πρόγραμμα στη «ΓΛΩΣΣΑ» που θα διαβάζει τον αριθμό των παιδιών μιας οικογένειας , θα υπολογίζει και θα εμφανίζει το επίδομα που δικαιούται.
3.34 Η χρέωση στους λογαριασμούς του ΟΤΕ υπολογίζεται σύμφωνα με τον παρακάτω πίνακα : Πάγιο Αστικές Μονάδες Υπεραστικές Μονάδες (κλιμακωτή χρέωση)
3€ 0.044 €/μονάδα 0 – 200 201 – 400 401 –
0.053 €/μονάδα 0.041 €/μονάδα 0.029 €/μονάδα
ΦΠΑ (επί του συνόλου) : 15% Να γραφεί πρόγραμμα στη «ΓΛΩΣΣΑ» που θα διαβάζει τις αστικές και τις υπεραστικές μονάδες και θα εμφανίζει τη χρέωση του συνδρομητή.
3.35 Η χρέωση των συνδρομητών μιας εταιρίας σταθερής τηλεφωνίας γίνεται κλιμακωτά σύμφωνα με τον παρακάτω πίνακα : Πάγιο Αστικές Μονάδες Υπεραστικές Μονάδες
15 € 0,030 € / Μονάδα 0 – 150 151 – 500 501 και άνω
0,045 € / Μονάδα 0,039 € / Μονάδα 0,033 € / Μονάδα
Να γίνει αλγόριθμος ο οποίος : α.
Θα διαβάζει όνομα συνδρομητή, αστικές και υπεραστικές μονάδες.
β.
Θα υπολογίζει το ποσό του λογαριασμού. 62
γ.
Θα προσαυξάνει με 4% τέλος συνδρομητών.
δ.
Θα εμφανίζει το τελικό ποσό που θα πληρώσει.
5.
ΘΕΜΑΤΑ ΜΕ ΣΥΝΔΥΑΣΜΟ ΔΙΑΦΟΡΩΝ ΕΝΤΟΛΩΝ
3.36 Να γραφεί αλγόριθμος που θα διαβάζει 3 αριθμούς α,β,γ και αν αβγ > 0 τότε θα τυπώνει το άθροισμα Σ = α + β + γ, ενώ αν αβγ ≤0 τότε θα τυπώνει το άθροισμα Σ = αν + βν + γν όπου η σταθερά ν θα ζητείται από το χρήστη. Θα πρέπει να γίνεται έλεγχος δεδομένων για το ν το οποίο πρέπει να είναι αριθμός θετικός. Να γράψετε και το αντίστοιχο διάγραμμα ροής.
3.37 Να γραφεί αλγόριθμος που θα λύνει την εξίσωση αx + β = 0 για τις διάφορες τιμές των πραγματικών αριθμών α και β.
3.38 Να γραφεί πρόγραμμα στη «ΓΛΩΣΣΑ» το οποίο θα λύνει τη δευτεροβάθμια εξίσωση αx2 + βx + γ = 0 , όπου α,β,γ πραγματικοί και δίνονται από το πληκτρολόγιο.
3.39 Σε κάποια εξεταστική δοκιμασία ένα γραπτό αξιολογείται από δύο βαθμολογητές στη βαθμολογική κλίμακα [0, 100]. Αν η διαφορά μεταξύ των βαθμολογιών του α΄ και του β΄ βαθμολογητή είναι μικρότερη ή ίση των 20 μονάδων της παραπάνω κλίμακας, ο τελικός βαθμός είναι ο μέσος όρος των δύο βαθμολογιών. Αν η διαφορά μεταξύ των βαθμολογιών του α΄ και του β΄ βαθμολογητή είναι μεγαλύτερη από 20 μονάδες, το γραπτό δίνεται για αναβαθμολόγηση σε τρίτο βαθμολογητή. Ο τελικός βαθμός του γραπτού προκύπτει τότε από τον μέσο όρο των τριών βαθμολογιών. Να αναπτύξετε αλγόριθμο ο οποίος, αφού ελέγξει την εγκυρότητα των βαθμών στην βαθμολογική κλίμακα [0, 100], να υλοποιεί την παραπάνω διαδικασία εξαγωγής τελικού βαθμού και να εμφανίζει τον τελικό βαθμό του γραπτού στην εικοσαβάθμια κλίμακα. Να γίνεται έλεγχος για την ορθότητα των δεδομένων, κάθε φορά που εισάγεται ένας βαθμός.
3.40 Για κάθε υπάλληλο δίνονται: ο μηνιαίος βασικός μισθός και ο αριθμός των παιδιών του. Δεχόμαστε ότι ο υπάλληλος μπορεί να έχει μέχρι και 8 παιδιά και ότι ο μηνιαίος βασικός μισθός του κυμαίνεται από 600 μέχρι και 1300 €. Οι συνολικές αποδοχές του υπολογίζονται ως το άθροισμα του μηνιαίου βασικού μισθού και του οικογενειακού επιδόματός του. Το οικογενειακό επίδομα υπολογίζεται ως εξής:30 € για κάθε παιδί μέχρι και τρία παιδιά, και 40 € για κάθε παιδί πέραν των τριών (4ο , 5ο , 6ο κ.τ.λ.). α.
Να προσδιορίσετε τις μεταβλητές που θα χρησιμοποιήσετε και να δηλώσετε τον τύπο των δεδομένων που αντιστοιχούν σ' αυτές.
β.
Να γράψετε Πρόγραμμα στη «ΓΛΩΣΣΑ», το οποίο : 1. Εισάγει τα κατάλληλα δεδομένα και ελέγχει την ορθή καταχώριση τους 2. Υπολογίζει και εμφανίζει το οικογενειακό επίδομα και 3. Υπολογίζει και εμφανίζει τις συνολικές αποδοχές του υπαλλήλου
63
3.41 Στο κέντρο εκπαίδευσης Πυροβολικού υπάρχει η πρόθεση να δημιουργηθούν δύο ειδικές πυροβολαρχίες. Η Α πυροβολαρχία Θα αποτελείται από νεοσύλλεκτους πτυχιούχους τριτοβάθμιας εκπαίδευσης, ηλικίας από 24 έως και 28 χρόνων. Η Β πυροβολαρχία θα αποτελείται από νεοσύλλεκτους απόφοιτους δευτεροβάθμιας εκπαίδευσης, ηλικίας από 18 έως και 24 χρόνων. Οι υπόλοιποι νεοσύλλεκτοι δεν κατατάσσονται σε καμία από αυτές τις πυροβολαρχίες. Να αναπτύξετε Πρόγραμμα στη «ΓΛΩΣΣΑ» το οποίο: α.
Διαβάζει το ονοματεπώνυμο, την ηλικία και έναν αριθμό που καθορίζει το επίπεδο σπουδών του νεοσύλλεκτου και παίρνει τιμές από 1 έως 3. (1:τριτοβάθμια εκπαίδευση, 2: δευτεροβάθμια εκπαίδευση, 3: κάθε άλλη περίπτωση)
β.
Εκτυπώνει: Το ονοματεπώνυμο του νεοσύλλεκτου και το όνομα της πυροβολαρχίας (Α ή Β), εφόσον ο νεοσύλλεκτος κατατάσσεται σε μία από αυτές.
3.42 Να αναπτύξετε αλγόριθμο που θα υλοποιεί τη λειτουργία ενός αυτόματου τυποποιητή μπισκότων της εταιρίας «Γεύση Α.Ε.». Ο έλεγχος γίνεται με βάση τα εξής κριτήρια. Για κάθε μπισκότο που εισάγεται, διαβάζεται η τιμή του βάρους του και η διάμετρος του. Το μπισκότο κατατάσσεται ανάλογα με το βάρος και τη διάμετρο του ως εξής: Αν 12 < Βάρος < 15 και 5 < Διάμετρος < 6, τότε τυπώνεται το μήνυμα "Προς συσκευασία α’ ποιότητας" . Αν 10 < Βάρος < 12 τότε, ανεξαρτήτως διαμέτρου, τυπώνεται το μήνυμα "Προς συσκευασία β’ ποιότητας". Σε κάθε άλλη περίπτωση τυπώνεται το μήνυμα «Μπισκότα για σκύλους»
3.43 Ένας ασθενής ασφαλισμένος σε κάποιο ταμείο πληρώνει για τα φάρμακα του συμμετοχή σύμφωνα με τον παρακάτω πίνακα. Ταμείο Ασφάλισης ΙΚΑ ΟΑΕΕ
Ποσό = 100 € =200 €
Ποσοστό Συμμετοχής 15% 20% Δωρεάν 30%
Να γίνει Πρόγραμμα στη «ΓΛΩΣΣΑ» το οποίο : α.
Θα διαβάζει το ταμείο ασφάλισης κάνοντας έλεγχο ορθότητας ώστε να είναι μόνο ΟΑΕΕ ή ΙΚΑ.
β.
Θα διαβάσει το ποσό που κόστισαν τα φάρμακα.
γ.
Θα υπολογίζει και θα εμφανίζει το ποσό συμμετοχής που πρέπει να πληρώσει ο ασθενής.
3.44 Από την Α γυμνασίου γνωρίζουμε ότι ένας φυσικός αριθμός διαιρείται με το 9 αν το άθροισμα των ψηφίων του διαιρείται με το 9. Να γίνει πρόγραμμα το οποίο : α.
Θα διαβάζει έναν τριψήφιο ακέραιο κάνοντας έλεγχο ορθότητας.
β.
Θα υπολογίζει τα 3 ψηφία από τα οποία αποτελείται ο αριθμός καθώς και το αθροισμα τους.
64
γ.
Θα εμφανίζει το μήνυμα « Αριθμός Πολλαπλάσιος του 9 » σε περίπτωση που ο αριθμός διαιρείται με το 9.
3.45 Να γίνει αλγόριθμος ο οποίος θα λύνει με τη μέθοδο οριζουσών το σύστημα : ax + by = c a ' x + b ' y = c ' Υπενθυμίζεται ότι D =
a
b
= ab '− ba ' , Dx =
c
b
= cb '− bc ' , Dy =
a
c
= ac '− ca ' και αν a' b' c' b' a' c' Dx Dy D ≠ 0 τότε x = ,y= ενώ αν D = Dx = Dy = 0 τότε το σύστημα έχει άπειρες λύσεις και D D αν D = 0 και Dx ≠ 0 ή Dy ≠ 0 τότε το σύστημα είναι αδύνατο.
3.46 Σε μια χώρα της ευρωπαϊκής ένωσης, η φοίτηση ενός μαθητή χαρακτηρίζεται «επαρκής» αν το σύνολο των απουσιών του κατά τη διάρκεια του διδακτικού έτους δεν ξεπερνά τις 50 ή αν δεν υπερβαίνει τις 100 από τις οποίες οι πάνω από τις 50 είναι δικαιολογημένες. Σε κάθε άλλη περίπτωση η φοίτηση χαρακτηρίζεται «ανεπαρκής». Να γράψετε πρόγραμμα στη «ΓΛΩΣΣΑ» που θα κάνει τα παρακάτω: α.
Θα διαβάζει τις δικαιολογημένες και αδικαιολόγητες απουσίες ενός από τους μαθητές στη διάρκεια ενός διδακτικού έτους.
β.
Θα εμφανίζει το κατάλληλο μήνυμα ανάλογα με το αν η φοίτηση του μαθητή είναι επαρκής ή ανεπαρκής.
3.47 Ο ιδιοκτήτης ενός καταστήματος αποφάσισε να υπολογίζει το μηνιαίο κέρδος του με τη βοήθεια του Η/Υ. Γι’ αυτό ζήτησε από ένα φίλο του που ασχολείται με τον προγραμματισμό να φτιάξει ένα πρόγραμμα που θα εκτελεί τα παρακάτω. α.
Τμήμα δήλωσης σταθερών που θα περιέχει τα εξής δεδομένα : Ενοίκιο 450 € , Πάγια έξοδα (ΔΕΗ , Ύδρευση κ.λ.π.) 120 € , Μισθοί Υπαλλήλων 800 € , καθώς επίσης και τμήμα δήλωσης μεταβλητών.
β.
Θα διαβάζει από το πληκτρολόγιο τις μηνιαίες εισπράξεις, καθώς επίσης και τα διάφορα έξοδα.
γ.
Θα υπολογίζει τα συνολικά έξοδα και θα τα εμφανίζει, καθώς επίσης και το καθαρό κέρδος (ή ζημιά).
δ.
Αν η επιχείρηση είναι επικερδής θα εμφανίζει το μήνυμα «Κερδοφόρος μήνας», ενώ αν είχε ζημιά θα εμφανίζει το μήνυμα «Παρουσιάστηκε Ζημιά».
Σημειώνεται ότι σαν ζημιά θεωρούμε το γεγονός να παρουσιαστεί αρνητικό κέρδος κατά τη διάρκεια του μήνα που μελετούμε.
3.48 Με το νέο σύστημα πληρωμής των εισιτηρίων του μετρό, οι επιβάτες των συρμών έχουν τη δυνατότητα να πληρώνουν το αντίτιμο με ειδική μαγνητική κάρτα. Υποθέστε ότι υπάρχει μηχάνημα το οποίο διαθέτει είσοδο για την κάρτα και δίνει τη δυνατότητα επιλογής ζώνης μεταφοράς. Το μηχάνημα διαβάζει από την κάρτα το υπόλοιπο των χρημάτων και
65
το αποθηκεύει σε μία μεταβλητή ΥΠΟΛ και ανάλογα με την επιλογή ζώνης αποθηκεύει (Α), (Β) ή (Γ) σε μια μεταβλητή Ζ. Στις τρεις ζώνες υπάρχει αντίτιμο 1, 2 και 3 € αντίστοιχα. Να αναπτύξετε αλγόριθμο, ο οποίος: α.
Ελέγχει τη ζώνη και εκχωρεί στη μεταβλητή Α το αντίτιμο ανάλογα με τη ζώνη μεταφοράς.
β.
Ελέγχει την πληρωμή των εισιτηρίων με τον παρακάτω τρόπο. Αν το υπόλοιπο της κάρτας επαρκεί για την πληρωμή του αντιτίμου αφαιρεί το ποσό αυτό από την κάρτα. Αν η κάρτα δεν έχει υπόλοιπο, το μηχάνημα ειδοποιεί με μήνυμα για το ποσό που πρέπει να πληρωθεί και προτρέπει τον επιβάτη να πάει σε ταμείο. Αν το υπόλοιπο δεν επαρκεί, μηδενίζεται η κάρτα και δίνεται με μήνυμα το ποσό που απομένει να πληρωθεί.
3.49 Μια εταιρεία ταχυμεταφορών «SPEED Α.Ε.» εφαρμόζει για τα έξοδα αποστολής δεμάτων εσωτερικού και εξωτερικού, χρέωση σύμφωνα με τον παρακάτω πίνακα : ΕΣΩΤΕΡΙΚΟ Βάρος σε χγρ. Χρέωση σε € από 0 έως και 1,500 4,75 από 1,501 έως και 3,200 6,90 αλλιώς 0,0032 € / γρ.
ΕΞΩΤΕΡΙΚΟ Βάρος σε χγρ. Χρέωση σε € από 0 έως και 1,000 5,42 από 1,001 έως και 2,200 8,11 αλλιώς 0,0072 € / γρ.
ΠΡΟΣΟΧΗ (ΟΧΙ ΚΛΙΜΑΚΩΤΗ ΧΡΕΩΣΗ)
Να γράψετε αλγόριθμο ο οποίος : α.
Να διαβάζει το βάρος του δέματος
β.
Να διαβάζει τον προορισμό του δέματος. Η τιμή «ΕΣ» δηλώνει προορισμό εσωτερικού και η τιμή «ΕΞ» δηλώνει προορισμό εξωτερικού.
γ.
Να υπολογίζει τα έξοδα αποστολής ανάλογα με τον προορισμό και το βάρος
δ.
Να εμφανίζει το κόστος αποστολής και να ρωτάει αν επιθυμεί ο πελάτης επιπλέον συσκευασία στο δέμα. Σε θετική περίπτωση θα έχουμε προσαύξηση 4%.
ε.
Θα εμφανίζεται το τελικό ποσό πληρωμής συμπεριλαμβανομένου ΦΠΑ 23%.
3.50 Σε κάποιον διαγωνισμό πρόσληψης το γραπτό ενός υποψηφίου αξιολογήθηκε αρχικά από δυο βαθμολογητές και στη συνέχεια χρειάστηκε αναβαθμολόγηση από τρίτο βαθμολογητή. Ο τελικός βαθμός υπολογίστηκε ως εξής: i. Αν ο βαθμός του τρίτου βαθμολογητή είναι ίσος με το μέσο όρο των βαθμών των δυο πρώτων βαθμολογητών, τότε ο τελικός βαθμός ισούται με τον μέσο όρο. ii. Αν ο βαθμός του τρίτου βαθμολογητή είναι μικρότερος από το μικρότερο βαθμό των δυο πρώτων βαθμολογητών, τότε ο τελικός βαθμός είναι ο ελάχιστος. iii. Διαφορετικά, ο τελικός βαθμός είναι ο μέσος όρος του βαθμού του τρίτου βαθμολογητή με τον πλησιέστερο προς αυτόν βαθμό των δυο πρώτων βαθμολογητών. Να αναπτύξετε αλγόριθμο υπολογισμού του τελικού βαθμού του συγκεκριμένου γραπτού με αναβαθμολόγηση, ο οποίος:
66
α.
Να διαβάζει τους βαθμούς του πρώτου, του δευτέρου και του τρίτου βαθμολογητή του γραπτού.
β.
Να υπολογίζει και να εκτυπώνει το μεγαλύτερο και το μικρότερο από τους βαθμούς του πρώτου και του δευτέρου βαθμολογητή.
γ.
Να υπολογίζει και να εκτυπώνει τον τελικό βαθμό του γραπτού συμφωνά με την παραπάνω διαδικασία.
δ.
Να εκτυπώνει στο μήνυμα «Συγχαρητήρια πέρασατε το διαγωνισμό» στην περίπτωση που ο τελικός βαθμός είναι μεγαλύτερος ή ίσος με το 60%.
Παρατήρηση : Θεωρήστε ότι και οι τρεις βαθμοί είναι θετικοί ακέραιοι αριθμοί και δεν απαιτείται έλεγχος των δεδομένων
3.51 Σε ένα 24ώρο DVD SHOP τα καινούρια DVD έχουν κωδικό new και χρεώνονται 1.5 € /ημέρα, ενώ τα παλιότερα έχουν κωδικό old και χρεώνονται 2 € / βδομάδα και 0.80 € / ημέρα καθυστέρησης μετά από τις 3 εβδομάδες. Να γραφεί πρόγραμμα στη «ΓΛΩΣΣΑ» που θα διαβάζει τον κωδικό ενός DVD, τις ημέρες της ενοικίασης και θα υπολογίζει τη χρέωση. 3.52 Δίσεκτα είναι τα έτη που διαιρούνται με το 4 αλλά όχι με το 100, καθώς και εκείνα που διαιρούνται με το 400. Να γραφτεί Πρόγραμμα που θα εκτελεί τα παρακάτω: α.
Θα εμφανίζει μήνυμα «Δώσε το έτος» και θα διαβάζει το έτος.
β.
Θα εμφανίζει το μήνυμα «Έτος εκτός ορίων» στην περίπτωση που το έτος είναι μικρότερο του 0 και μεγαλύτερο του 2100.
γ.
Σε αντίθετη περίπτωση θα εμφανίζει το μήνυμα «Το έτος ΧΧΧΧ είναι δίσεκτο» στην περίπτωση που ικανοποίουνται οι συνθήκες της εκφώνησης.
6.
ΘΕΜΑΤΑ ΜΕ ΕΚΤΕΛΕΣΗ ΑΛΓΟΡΙΘΜΩΝ
3.53 Δίνεται το παρακάτω τμήμα αλγορίθμου. διάβασε a b3*a+5 ca–b αν c > b τότε ba αλλιώς ac τέλος_αν εμφάνισε a,b,c Μετά την εκτέλεση του παραπάνω τμήματος αλγορίθμου, ποιες θα είναι οι τιμές των μεταβλητών a, b, c που θα εμφανισθούν, όταν : α.
a = 10
β.
a = -20
γ.
a = 50
67
3.54 Να επιλέξετε τη σωστή απάντηση σε κάθε περίπτωση α.
Αν μετά την εκτέλεση του παρακάτω τμήματος αλγόριθμου προκύπτουν α =0 και β = 3, ποιές τιμές θα μπορούσαν να έχουν τα χ και ψ. Αν (χ mod ψ < χ div ψ) τότε α0 β0 Αλλιώς α χ div ψ β χ mod ψ Τέλος_αν
β.
i.
χ=7 , ψ=2
ii.
χ=4 , ψ=3
iii.
χ=3 , ψ=5
iv.
χ=9 , ψ=3
Ποια η λειτουργία του παρακάτω τμήματος αλγορίθμου : Β 10 διάβασε Α ΒΑ Αν Α < 0 τότε Β (-1)*Α Τέλος_αν Α0 Εκτύπωσε Β
i.
Τυπώνει τον αριθμό που διάβασε
ii.
Τυπώνει πάντα την απόλυτη τιμή του αριθμού
iii.
Τυπώνει πάντα 0
iv.
Τυπώνει πάντα 10
3.55 Δίνεται ο παρακάτω αλγόριθμος Αλγόριθμος Άσκηση Διάβασε α,β γ β^2 mod α Αν γ > 1 τότε γ α*5 αλλιώς γ γ + α*5 Αν α + γ 15 ΤΟΤΕ ΖΧ+Υ+Ω ΑΛΛΙΩΣ Ω Χ*Υ ΤΕΛΟΣ_ΑΝ ΑΛΛΙΩΣ ΑΝ Ω – Υ < 7 ΤΟΤΕ Χ3–Υ–Ζ ΑΛΛΙΩΣ Ω 5*Χ ΤΕΛΟΣ_ΑΝ ΤΕΛΟΣ_ΑΝ ΓΡΑΨΕ Χ,Υ,Ζ,Ω
3.57 Δίνεται ο παρακάτω αλγόριθμος. Να τον μετατρέψετε σε διάγραμμα ροής και να παρουσιάσετε πινακά τιμών όλων των μεταβλητών καθώς επίσης και πίνακα με τις τιμές που θα εκτυπωθούν. Αλγόριθμος Θέμα_2 α 15 β α^2 γ (α+β) div 2 Αν (γ mod 2 = 0) ή (γ>=25) τότε γ γ - 20 Αν οχι(γ > α) τότε α β mod α αλλιώς γ γ div 2 τέλος_αν αλλιώς α α+ γ γγ+β Τέλος_αν Εμφάνισε α,β α α div β + γ β β mod γ + α γ γ mod α + β Εμφάνισε α,β,γ Τέλος Θέμα_2
69
7.
ΕΠΑΝΑΛΗΠΤΙΚΑ – ΣΥΝΔΥΑΣΤΙΚΑ ΘΕΜΑΤΑ
3.58 Να γράψεις τις εντολές ψευδογλώσσας για τα παρακάτω α.
Αν η Βαθμολογία (Β) είναι μεγαλύτερη από τον Μέσο όρο (ΜΟ) τότε να τυπώνει “Πολύ καλά”, αν είναι ίση ή μικρότερη του Μέσου όρου μέχρι και 2 μονάδες να τυπώνει “Καλά” και όταν είναι μικρότερη του Μέσου όρου περισσότερο από 2 μονάδες να τυπώνει “Μέτρια”.
β.
Αν το τμήμα (ΤΜ) είναι Γ1 και η βαθμολογία (Β) είναι μεγαλύτερη από 15 τότε να τυπώνει το επώνυμο (ΕΠ).
γ.
Αν η απάντηση (ΑΠ) δεν είναι Ν ή ν ή Ο ή ο τότε να τυπώνει το μήνυμα “Λάθος απάντηση…”.
δ.
Αν ο αριθμός Χ είναι αρνητικός ή το ΕΦ(X)=0 τότε να τυπώνεται το μήνυμα “Λάθος δεδομένα…”, αλλιώς να υπολογίζεται η παράσταση (Χ^3 + 2*Χ)/(Α_Μ(Χ)*ΕΦ(Χ)).
3.59 Δίνεται ο αλγόριθμος : Αλγόριθμος πίνακας_τιμών διάβασε χ,ω α ω mod 4 αν (3*χ > ω) και (α>=3) τοτε Εμφάνισε ‘περίπτωση 1’ αλλιως αν (α>=χ) ή (οχι(ω - α)>2) τότε εμφάνισε ‘περίπτωση 2’ αλλιως_αν α max τότε max α τέλος_αν τέλος_επανάληψης εμφάνισε max
για i από 1 μέχρι 10 διάβασε α αν i = 1 τότε max α αν α > max τότε max α τέλος_αν τέλος_επανάληψης εμφάνισε max
Και οι δύο τρόποι παράγουν το ίδιο ακριβώς αποτέλεσμα
82
Σε κάποιες ασκήσεις όμως καθορίζεται από την εκφώνηση το εύρος τιμών των δεδομένων όποτε μπορεί να χρησιμοποιηθεί μια εναλλάκτική μέθοδος που φαίνεται παρακάτω. Ας υποθέσουμε ότι στο προηγούμενο παράδειγμα είχαμε από την εκφώνηση ότι οι αριθμοι που θα διαβαστούν είναι θετικοί. Τότε θα μπορούσαμε να δώσουμε την εξής λύση : max 0 (εναλλακτικά max -1 ή οποιαδήποτε άλλη αρνητική τιμή) για i από 1 μέχρι 10 διάβασε α αν α > max τότε max α τέλος_αν τέλος_επανάληψης εμφάνισε max Η παραπάνω λογική στηρίζεται στο να αρχικοποιήσουμε τη μεταβλητή max δίνοντας της μια τιμή μικρότερη από το εύρος των δεδομένων μου η οποία σίγουρα θα ξεπεραστεί κατά την πρώτη εκτέλεση της εντολής διάβασε, οπότε στη συνέχεια υπολογίζεται το μέγιστο. Για το ελάχιστο πρέπει να αρχικοποιήσουμε μια μεγαλύτερη τιμή εκτός του εύρους τιμών των δεδομένων. Θα δούμε τώρα ένα παράδειγμα εύρεσης ελαχίστου ενός αγνωστού πλήθους αριθμών. Οι αριθμοί είναι σίγουρα 0 επανάλαβε ββ-3 τελος_επανάληψης
θ. β -1 Όσο β > 0 επανάλαβε ββ-3 τελος_επανάληψης
ι. β 4 Όσο β >0 επανάλαβε ββ+3 τελος_επανάληψης
85
α.
Καμία επανάληψη γιατί η αρχική τιμή < τελική τιμή και το βήμα είναι αρνητικό.
β.
7 επαναλήψεις για κ = -6 , -4,5 , -3 , -1,5 , 0 , 1,5 , 3
γ.
1 επανάληψη για κ = 3 δηλαδή τη αρχική τιμή.
δ.
Άπειρες επαναλήψεις. Αρχικά για α = 4 έχουμε την 1η , μετά γίνεται α = 16 και ο βρόχος συνεχίζει χωρίς να ικανοποιηθεί ποτέ η συνθήκη α < 16.
ε.
Άπειρες επαναλήψεις, όπως και στην προηγούμενη περίπτωση
ζ.
5 επαναλήψεις. Οι εντολές του βρόχου θα εκτελεστούν για α = 4 , 3 , 2 , 1 , 0.
η.
4 επαναλήψεις. Οι τιμές της μεταβλητής β θα είναι : 10 , 7 , 4 , 1
θ.
Καμία επανάληψη διότι β = -1 οπότε η δομή επανάληψης παραλείπεται.
ι.
Άπειρες επαναλήψεις διότι το β παραμένει θετικό, οπότε η συνθήκη θα ισχύει πάντα.
4.14 Να γράψετε στο τετράδιό σας τις τιμές των μεταβλητών Ν, Μ και Β, όπως αυτές τυπώνονται σε κάθε επανάληψη, και την τιμή της μεταβλητής Χ που τυπώνεται μετά το τέλος της επανάληψης, κατά την εκτέλεση του παρακάτω αλγόριθμου. Αλγόριθμος Αριθμοί Α←1 Β←1 Ν←0 Μ←2 Όσο Β < 6 επανάλαβε Χ←Α+Β αν Χ MOD 2 = 0 τότε Ν←Ν+1 αλλιώς Μ←Μ+1 Τέλος_αν Α←Β Β←Χ Εμφάνισε Ν, Μ, Β Τέλος_επανάληψης Εμφάνισε Χ Τέλος Αριθμοί Αρχικά σχηματίζουμε τον πίνακα της παρακάτω μορφής
86
Αλγόριθμος Αλγόριθμος Αριθμοί Α←1 Β←1 Ν←0 Μ←2 Όσο Β < 6 επανάλαβε Χ←Α+Β Αν Χ MOD 2= 0 τότε Ν←Ν+1 αλλιώς Μ←Μ+1 Τέλος_αν Α←Β Β←Χ Εμφάνισε Ν, Μ, Β Τέλος_επανάληψης Εμφάνισε Χ Τέλος Αριθμοί
η
1 Επαναλ.
η
2 Επαναλ.
η
3 Επαναλ.
η
4 Επαναλ.
Α=1 Β=1 Ν=0 Μ=2 ΑΛΗΘΗΣ ΑΛΗΘΗΣ ΑΛΗΘΗΣ ΑΛΗΘΗΣ ΨΕΥΔΗΣ Χ=2 Χ=3 Χ=5 Χ=8 ΑΛΗΘΗΣ ΨΕΥΔΗΣ ΨΕΥΔΗΣ ΑΛΗΘΗΣ Ν=1 Ν=2 Μ=3 Μ=4 Α=1 Α=2 Α=3 Α=5 Β=2 Β=3 Β=5 Β=8 1,2,2 1,3,3 1,4,5 2,4,8 8 -
Στη συνέχεια συγκεντρώνουμε αυτά που εμφανίζονται σε έναν πίνακα εμφανίσεων όπως τον παρακάτω : Αριθμ. Επαναλ. η 1 επανάληψη η 2 επανάληψη η 3 επανάληψη η 4 επανάληψη -
ΠΙΝΑΚΑΣ ΕΜΦΑΝΙΣΕΩΝ Ν Μ 1 2 1 3 1 4 2 4 -
Β 2 3 5 8 -
Χ 8
4.15 Να μετατρέψετε τον παρακάτω αλγόριθμο σε διάγραμμα ροής Αλγόριθμος Μετατροπή sum 1000 Αρχή_επανάληψης Διάβασε k Αν sum > 5000 τότε sum sum + k*0.1 Αλλιώς sum sum + k Τέλος_αν Μέχρις_ότου κ < 0 Εμφάνισε sum Τέλος Μετατροπή
87
4.16 Να μετατρέψετε τις παρακάτω δομές επανάληψης από την εντολή που δίνονται στην εντολή που ζητείται όπου αυτό είναι εφικτό, προσέχοντας πάντα να έχουμε το ίδιο αποτέλεσμα. α.
Β5 Για κ από 14 μέχρι 2 με_βήμα -3 Β Β^2-Β Να μετατραπεί σε ισοδύναμη Όσο ...... επανάλαβε Τελος_επανάληψης Β5 κ 14 Όσο κ >= 2 επανάλαβε Β Β^2-Β κκ-3 Τελος_επανάληψης
88
β.
β5 Χ0 Όσο β < 12 επανάλαβε ΧΧ+β–1 ββ+3 Τελος_επανάληψης
Να μετατραπεί σε ισοδύναμη Για ... από ... μέχρι
Χ0 Για β από 5 μέχρι 11 με_βήμα 3 ΧΧ+β-1 Τελος_επανάληψης γ.
Χ0 Υ1 Όσο Χ > – 6 επανάλαβε ΥΥ+4 ΧΧ–2 Υ Υ^2 + Χ Τέλος_επανάληψης
Να μετατραπεί σε ισοδύναμη Μέχρις_ότου .......
Χ0 Υ1 Αρχή_επανάληψης ΥΥ+4 ΧΧ–2 Υ Υ^2 + Χ Μέχρις_ότου Χ = 100
Να μετατραπεί σε ισοδύναμη Όσο ...... επανάλαβε
Χ0 Υ1 Όσο Χ < 100 επανάλαβε ΥΥ+4 Χ Χ*Υ Τέλος_επανάληψης
4.17 Να γράψετε πρόγραμμα στη «ΓΛΩΣΣΑ» που θα διαβάζει άγνωστο πλήθος αρνητικών ακεραίων αριθμών και στη συνέχεια θα βρίσκει : α. Το άθροισμα των τετραγώνων τους, β. Το πλήθος αυτών που είναι < –500 και γ. το γινόμενο όσων είναι από –15 μέχρι –4. Η εισαγωγή αριθμών θα σταματά όταν δοθεί το 0.
89
ΠΡΟΓΡΑΜΜΑ ΑΡΙΘΜΟΙ_ΑΡΝΗΤΙΚΟΙ ΜΕΤΑΒΛΗΤΕΣ ΑΚΕΡΑΙΕΣ : Χ , ΑΘΡ1 , ΑΘΡ2 , ΓΙΝ ΑΡΧΗ ΑΘΡ1 0 ΑΘΡ2 0 ΓΙΝ 1 ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ ΓΡΑΨΕ ‘ΔΩΣΕ ΑΡΝΗΤΙΚΟ ΑΡΙΘΜΟ Ή 0 ΓΙΑ ΤΕΛΟΣ’ ΔΙΑΒΑΣΕ Χ ΜΕΧΡΙΣ_ΟΤΟΥ Χ Μέγιστος ΤΟΤΕ Μέγιστος Μισθός ΤΕΛΟΣ_ΑΝ ΑΝ Μισθός < Ελάχιστος ΤΟΤΕ Ελάχιστος Μισθός ΤΕΛΟΣ_ΑΝ Άθροισμα Άθροισμα+Μισθός ΔΙΑΒΑΣΕ Μισθός ΜΕΧΡΙΣ_ΟΤΟΥ Μισθός 0 γ. ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ 100 Άθροισμα 0 ΔΙΑΒΑΣΕ Μισθός ΑΝ Μισθός > Μέγιστος ΤΟΤΕ Μέγιστος Μισθός ΤΕΛΟΣ_ΑΝ
95
ΑΝ Μισθός < Ελάχιστος ΤΟΤΕ Ελάχιστος Μισθός ΤΕΛΟΣ_ΑΝ Άθροισμα Άθροισμα + Μισθός ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
2.
ΘΕΜΑΤΑ ΕΞΑΣΚΗΣΗΣ ΓΙΑ ΕΝΤΟΛΗ ΟΣΟ
4.32 α. Να γίνει αλγόριθμος ο οποίος θα διαβάζει αριθμούς και όσο αυτοί είναι πολλαπλάσια του 4 θα τους εμφανίζει. Σε αντίθετη περίπτωση θα εμφανίζει το μήνυμα ‘Τέλος εισαγωγής αριθμών’. β.
Να εκτελέσετε τον αλγόριθμο για τους αριθμούς 4, 20 , 60 , 24 , 35.
γ.
Να γίνει διάγραμμα ροής.
4.33 α. Να γίνει πρόγραμμα το οποίο θα διαβάζει ζεύγη αριθμών α , β και όσο ισχύει α > β θα υπολογίζει την παράσταση Δ = α2 – 5β – 6. Αν το Δ > 0 θα εμφανίζει το μήνυμα ‘παράσταση θετική’. β.
Να γίνει διάγραμμα ροής.
4.34 Να γίνει αλγόριθμος ο οποίος θα διαβάζει ονόματα πόλεων και όσο το όνομα είναι διαφορετικό του ‘τέλος’ θα εισάγονται 5 θερμοκρασίες που σημειώθηκαν, θα υπολογίζεται και θα εμφανίζεται ο μέσος όρος και το όνομα της πόλης. Στη συνέχεια θα εμφανίζεται το κατάλληλο μήνυμα όπως φαίνεται στον παρακάτω πίνακα. Μέσος όρος Θερμοκρασίας -20 έως 15 15 έως 30 30 και άνω
Μήνυμα Χαμηλή θερμοκρασία Κανονική θερμοκρασία Υψηλή θερμοκρασία
4.35 Να γίνει πρόγραμμα που θα δέχεται αριθμούς και όσο αυτοί είναι διαφορετικοί το 0 θα υπολογίζει το πλήθος των αρνητικών, το άθροισμα των θετικών και το γινόμενο των πολλαπλασίων του 5. Στην συνέχεια θα εμφανίζει αυτά που υπολόγισε καθώς και το μέσο όρο των θετικών. ( Κατά τον υπολογισμό του μέσου όρου πρέπει να προσέξετε να μην παραβιαστεί κάποιο κριτήριο των αλγορίθμων).
96
4.36 Δίνεται το παρακάτω διάγραμμα ροής :
α.
Να μετατραπεί σε αλγόριθμος.
β.
Να εκτελεστεί για Υ = 3.
γ.
Να γίνει πίνακας τιμών και να βρείτε τι θα εμφανίσει.
3.
ΘΕΜΑΤΑ ΕΞΑΣΚΗΣΗΣ ΓΙΑ ΕΝΤΟΛΗ ΜΕΧΡΙΣ_ΟΤΟΥ
4.37 α. Να γίνει αλγόριθμος ο οποίος θα διαβάζει ζεύγη αριθμών x και y και θα εμφανίζει την παράσταση Ζ=750 – x – y μέχρι να ισχύει η συνθήκη 2x+y > 4. β.
Να γίνει το αντίστοιχο διάγραμμα ροής.
4.38 α. Να γίνει αλγόριθμος ο οποίος θα διαβάζει πολλούς αριθμούς και θα ελέγχει αν η απόλυτη τιμή τους είναι άρτιος ή περιττός. Η διαδικασία θα συνεχίζεται ώσπου να δοθεί ο αριθμός 0. ( Ο αριθμός 0 πρέπει να σταματήσει την επανάληψη χωρίς να γίνουν οι υπόλοιποι έλεγχοι. )
β.
Να εκτελεστεί ο παραπάνω αλγόριθμος για τις τιμές -5 , -6 , 7 , 4 , 240 , 0
4.39 Να γίνει πρόγραμμα το οποίο θα διαβάζει βαθμολογίες που συγκέντρωσαν κάποιοι αθλητές στη ρίψη σφαίρας και θα υπολογίζει το μέσο όρο ρίψης μέχρι να δοθεί ως τιμή ρίψης το -1. (Σε περίπτωση που θα δοθεί το -1 από την αρχή η επαναληπτική διαδικασία δεν πρέπει να γίνει καθόλου).
97
4.40 Δίνεται το παρακάτω διάγραμμα ροής :
α.
Να μετατραπεί σε ισοδύναμο πρόγραμμα.
β.
Να εκτελεστεί για Υ = 3.
γ.
Να γίνει πίνακας τιμών και να βρείτε τι θα εμφανίσει.
4.41 α.
β.
Να γίνει αλγόριθμος ο οποίος θα διαβάζει τις θερμοκρασίες που σημειώθηκαν στην πόλη της Χίου για μερικές μέρες και να υπολογίζει το πλήθος των ημερών που η θερμοκρασία ήταν κάτω από 15ο C. Η διαδικασία θα σταματάει όταν δοθεί θερμοκρασία -100. Στη συνέχεια θα εμφανίζει το πλήθος που υπολογίστηκε.
Να γίνει διάγραμμα ροής.
4.42 Να γίνει αλγόριθμος ο οποίος : α.
Θα διαβάζει αριθμούς και θα τους προσθέτει μέχρι να δοθεί ο αριθμός 50 (προσθέτει και το 50).
β.
Στη συνέχεια θα εμφάνιζει το άθροισμα που υπολογίστηκε.
4.
ΘΕΜΑΤΑ ΕΞΑΣΚΗΣΗΣ ΓΙΑ ΕΝΤΟΛΗ ΓΙΑ … ΑΠΟ … ΜΕΧΡΙ … ΜΕ ΒΗΜΑ …
4.43 Να γίνει αλγόριθμος που θα εμφανίζει τους ακεραίους αριθμούς από 52 μέχρι 124. Να γίνει διάγραμμα ροής.
4.44 Να γίνει αλγόριθμος που θα εμφανίζει τους άρτιους αριθμούς από 13 μέχρι 232. Να γίνει διάγραμμα ροής.
98
4.45 Να γίνει αλγόριθμος που θα εμφανίζει τα πολλαπλάσια του 6 μεταξύ των αριθμών 17 και 256.
4.46 Να γίνει αλγόριθμος που θα διαβάζει 35 αριθμούς και θα εμφανίζει το τετράγωνο τους.
4.47 Να γίνει πρόγραμμα που θα διαβάζει 20 αριθμούς χ , θα υπολογίζει για κάθε χ, την παράσταση Ζ =χ2 – 5χ + 7 και θα εμφανίζει τα χ και Ζ.
4.48 Να γίνει αλγόριθμος που θα διαβάζει 120 αριθμούς και θα υπολογίζει και θα εμφανίζει το άθροισμα τους. 4.49 Να γίνει πρόγραμμα που θα υπολογίζει το γινόμενο των αριθμών από 5 έως 12 και θα το εμφανίζει. 4.50 Να γίνει αλγόριθμος που θα διαβάζει 100 αριθμούς , θα υπολογίζει το πλήθος των θετικών, το πλήθος των αρνητικών. Στη συνέχεια θα εμφανίζει κατάλληλο μήνυμα για το αν δόθηκαν περισσότεροι θετικοί ή αρνητικοί.
4.51 Να γίνει πρόγραμμα που θα διαβάζει 1250 βαθμούς μαθητών και θα υπολογίζει και θα εμφανίζει πόσοι πέρασαν τη βάση (>=10) καθώς και πόσοι αρίστευσαν (>= 18,5). 4.52 Να γίνει πρόγραμμα που θα διαβάζει τις μέσες θερμοκρασίες σε μια πόλη για ένα έτος, θα υπολογίζει και θα εμφανίζει το μέσο όρο της πόλης. 4.53 Να γραφεί αλγόριθμος που θα εμφανίζει στην οθόνη όλους τους τριψήφιους αριθμούς (100 – 999) με αντίστροφη σειρά. Στη συνέχεια να γίνει το αντίστοιχο διάγραμμα ροής.
4.54 Να γραφεί πρόγραμμα στη «ΓΛΩΣΣΑ» που θα εμφανίζει τους κύβους των αριθμών από 50 έως 70 και θα εμφανίζει το αποτέλεσμα στην οθόνη με την εξής μορφή : «Ο αριθμός είναι ο Χ και ο κύβος του είναι Υ». 4.55 Να συμπληρώσετε τα κενά στο παρακάτω τμήμα αλγορίθμου ώστε το αποτέλεσμα που θα εμφανιστεί στην οθόνη να είναι το παρακάτω : 1 , 9 , 25 , 49 , 81 Για ... από ... μέχρι ... με βήμα ... χ ... Εμφάνισε ... Τέλος_επανάληψης
4.56 Να γίνει αλγόριθμος που θα υπολογίζει και θα εμφανίζει το μέσο όρο των πολλαπλασίων του 8 που βρίσκονται μεταξύ του 135 και του 1792.
4.57 Να γραφεί πρόγραμμα στη «ΓΛΩΣΣΑ» που θα διαβάζει τη βαθμολογία 50 φοιτητών σε ένα μάθημα (έλεγχος εγκυρότητας [0 – 10] ). Στη συνέχεια θα βρίσκει και θα εμφανίζει πόσοι απέτυχαν (8,5).
99
5.
ΘΕΜΑΤΑ ΓΕΝΙΚΑ ΣΤΗ ΔΟΜΗ ΕΠΑΝΑΛΗΨΗΣ
4.58 Να γράψετε τα τμήματα αλγορίθμου που αντιστοιχούν στα παρακάτω διαγράμματα ροής.
4.59 Να γραφεί αλγόριθμος που θα διαβάζει από το πληκτρολόγιο έναν ακέραιο Α μεταξύ 1 και 200 κάνοντας έλεγχο ορθότητας. Στη συνέχεια θα υπολογίζει το άθροισμα : 1 + 2 + 3 + ... + Α και θα εμφανίζει το αποτέλεσμα στη οθόνη. 4.60 Να γίνει αλγόριθμος ο οποίος θα διαβάζει μια ακολουθία θετικών αριθμών και για καθέναν από αυτούς θα εμφανίζει αν είναι άρτιος ή περιττός, θα υπολογίζει και θα εμφανίζει το πλήθος των πολλαπλασίων του 9. Το τέλος της εισαγωγής των αριθμών θα δίνεται με την εισαγωγή του 0.
4.61 Μια μπάλα αφήνεται να πέσει από μια ταράτσα ύψους 30 μέτρων. Να κατασκευάσετε πρόγραμμα που θα υπολογίζει και θα εμφανίζει σε πόσες αναπηδήσεις η μπάλα θα φτάσει σε ύψος λιγότερο από 2 μέτρα, αν είναι γνωστό οτι σε κάθε πρόσκρουση με το έδαφος χάνει το 40% του ύψους της.
100
4.62 Να γράψετε πρόγραμμα το οποίο α.
Θα διαβάζει αριθμούς
β.
Θα υπολογίζει το μεσο όρο των τετραγώνων των μη αρνητικών αριθμών.
γ.
Θα τερματίζει όταν δοθούν 20 αριθμοί ή όταν δοθεί αρνητικός.
δ.
Θα εμφανίζει το μέσο όρο που υπολογίστηκε.
4.63 Η ταμίας ενός πολυκαταστήματος καταχωρεί για κάθε προιον τον κωδικό και την τιμή του. Όταν καταχωρήσει όλα τα προιόντα εισάγει τον κωδικό 0. Να γίνει αλγόριθμος που θα εξομοιώνει την παραπάνω διαδικασία υπολογίζοντας και τυπώνοντας το συνολικό ποσό των αγορών καθώς και το πλήθος των προιόντων.
4.64 Ένας άνθρωπος επισκεφθηκε μια τράπεζα προκειμένου να ενημερωθεί για τα επιτόκια που θα πάρει σε διάστημα 10 ετών αν καταθέσει σήμερα 100000 €. Ο τύπος που υπολογίζει το κεφάλαιο είναι μετά από ν χρόνια είναι : ΤΚ=ΑΚ.(1+ε/100)ν. Να γραφτει αλγόριθμος που θα διαβάζει το επιτόκιο και θα εκτυπώνει την παρακάτω λίστα. Χρόνος 1 2 .. 10
Τελικό Κεφάλαιο 105000 112000 ...... τα ποσά είναι τυχαία. 155000
4.65 Να γραφτεί πρόγραμμα στη ΓΛΩΣΣΑ, το οποίο θα διαβάζει για κάθε μαθητή το όνομα του και 3 βαθμούς, θα υπολογίζει και θα εμφανίζει το μέσο όρο του. Η διαδικασία θα σταματάει όταν δοθεί ως ονοματεπώνυμο το κενό.
4.66 Να γίνει αλγόριθμος ο οποίος : α.
Θα διαβάζει επαναληπτικά πολλούς αριθμούς χ.
β.
Θα υπολογίζει την παράσταση κ = χ5 – 8 στην περίπτωση που αριθμός είναι κ > 8, θα εμφανίζει το κ και θα διαβάζει έναν καινούριο χ.
γ.
Να μετατραπεί ο παραπάνω αλγόριθμος σε διάγραμμα ροής.
4.67 Να γίνει αλγόριθμος ο οποίος θα διαβάζει Ν αριθμούς, θα υπολογίζει τον ελάχιστο από αυτους και θα το εμφανίζει. Το Ν είναι δεδομένος ακέραιος θετικός αριθμός. 4.68 Σε ένα μετεωρολογικό κέντρο χρειάζεται να βρεθεί η μέγιστη και η ελάχιστη θερμοκρασία από τις μέσες ημερήσιες θερμοκρασίες ενός μήνα. Να γραφεί ένας αλγόριθμος που θα διαβάζει τη μέση ημερήσια θερμοκρασία για κάθε ημέρα ενός μήνα 30 ημερών και θα υπολογίζει την ελάχιστη και τη μέγιστη από αυτές τις θερμοκρασίες.
101
4.69 Να γίνει αλγόριθμος ο οποίος θα διαβάζει άγνωστο πλήθος αριθμών και να υπολογίζει τον μεγαλύτερο από αυτούς. Το τέλος της εισαγωγής των αριθμών θα γίνεται όταν εισαχθεί το -1 και δεν υπάρχει περίπτωση να δοθεί από την αρχή.
4.70 Πηγαίνεις σε ένα πολυκατάστημα και παρατηρείς τις τιμές (€) για 4 διαφορετικά είδη γάλακτος και την ποσότητα (ml) της κάθε συσκευασίας.äïò ÔéìÞ Ðïóüôçôá Να γραφτεί ένας αλγόριθμος που θα υπολογίζει και θα εμφανίζει την ονομασία του γάλακτος που έχει την πλέον συμφέρουσα τιμή ( χαμηλότερo λόγο € / ml). 4.71 Να γραφεί αλγόριθμος που θα υπολογίζει το άθροισμα : 2 + 4 + 6 +…+ 2*n. O αριθμός n θα γίνεται δεκτός μόνο όταν είναι θετικός . Στη συνέχεια θα εμφανίζει το αποτέλεσμα. 4.72 Να σχεδιαστεί αλγόριθμος που θα αποδίδει το παιχνίδι «Μάντεψε τον αριθμό που σκέφτηκα σε κ προσπάθειες». Συγκεκριμένα : α.
Θα διαβάσει τον αριθμό Α και τις προσπάθειες κ.
β.
Θα ζητάει πιθανούς αριθμούς όσο οι προσπάθειες είναι λιγότερες από κ.
γ.
Θα τυπώνει αν βρέθηκε ο αριθμός και σε πόσες προσπάθειες. Σε περίπτωση που δεν βρθηκε θα τυπώνει το μήνυμα «Ξαναπροσπάθησε».
4.73 Να γίνει διάγραμμα ροής και στη συνέχεια να γραφεί αλγόριθμος που θα υπολογίζει τις τιμές των παρακάτω συναρτήσεων για χ = 2,5 έως 50 με βήμα 1,5 και θα τυπώνει κάθε φορά τα αποτελέσματα σε μια γραμμή. Συναρτήσεις : x2, 3 x και ΕΦ(x). 4.74 Σε ένα πρόγραμμα περιβαλλοντικής εκπαίδευσης συμμετέχουν 100 σχολεία από όλη την Ελλάδα. Στα πλαίσια αυτού του προγράμματος, εθελοντές μαθητές των σχολείων, που συμμετέχουν στο πρόγραμμα, μαζεύουν ποσότητες τριών υλικών (γυαλί, χαρτί και αλουμίνιο). Να αναπτύξετε έναν αλγόριθμο, ο οποίος: α.
Να διαβάζει τις ποσότητες σε κιλά των παραπάνω υλικών που μάζεψαν οι μαθητές σε κάθε σχολείο.
β.
Να υπολογίζει τη συνολική ποσότητα σε κιλά και το κόστος αποθήκευσης τους αν για κάθε κιλό δαπανείται 0,05 €.
γ.
Να βρίσκει και να εμφανίζει το πλήθος των σχολείων που μάζεψαν πάνω από 500 κιλά αλουμινίου, το συνολικό χαρτί που μαζεύτηκε και τέλος αν η συνολική ποσότητα γυαλιού ξεπερνά τους 10 τόνους, να εμφανίζεται το μήνυμα ‘Συγχαρητήρια’ .
4.75 Α. Να γραφεί πρόγραμμα που να δέχεται έναν άγνωστο αριθμό βαθμών που πήρε ένας φοιτητής σε μια εξεταστική, και να εμφανίζει το μέσο όρο βαθμολογίας του και το πλήθος των μαθημάτων που έδωσε με την εξής μορφή π.χ. «Ο Μ.Ο. των 4 μαθημάτων είναι 8,3». Το τέλος της εισόδου των μαθημάτων θα γίνεται όταν δοθεί για βαθμός το –1. Αν δοθεί μόνο το –1 να εμφανίζεται το μήνυμα «Δεν έδωσες κανένα μάθημα».
102
Β.
Τι εντολές θα προσθέτατε στο παραπάνω πρόγραμμα για να αποφύγετε το να δώσει κάποιος μη αποδεκτούς βαθμούς δεδομένου ότι η βαθμολογία είναι στην κλίμακα [0,10];
4.76 Ένα μηχάνημα ΑΤΜ χρεώνει προμήθεια 1/100 του ποσού ανάληψης από κάθε πελάτη που το χρησιμοποιεί. Η ελάχιστη χρέωση όμως είναι 1 € και η μέγιστη είναι 3 €. Να γίνει πρόγραμμα στη «ΓΛΩΣΣΑ» το οποίο : α.
Θα διαβάζει το υπόλοιπο του λογαριασμού και το ποσό της ανάληψης για 50 πελάτες που προσήλθαν στο μηχάνημα εκείνη τη μέρα.
β.
Θα υπολογίζει το ποσό της κράτησης που έγινε σε καθέναν, σύμφωνα με τα δεδομένα της άσκησης.
γ.
Στην περίπτωση που επαρκεί το υπόλοιπο για τη συναλλαγή, θα τυπώνονται : το ποσό, η προμήθεια και το νέο υπόλοιπο. Σε αντίθετη περίπτωση θα τυπώνεται το μήνυμα ‘δεν έχετε επαρκές υπόλοιπο’
δ.
Τέλος πρέπει να εμφανίζεται το συνολικό ποσό κρατήσεων που εισέπραξε η τράπεζα.
4.77 Να γράψετε αλγόριθμο που θα δέχεται ένα φυσικό αριθμό και θα υπολογίζει εμφανίζει το πλήθος των διαιρετών του. Κατά την εισαγωγή του φυσικού θα αποκλείεται η είσοδος αρνητικών αριθμών και του μηδέν.
4.78 Να γίνει αλγόριθμος ο οποίος : α.
Θα διαβάζει την ηλικία 500 ανθρώπων και θα ελέγχει αν αυτή είναι μεταξύ του 1 και του 100.
β.
Θα υπολογίζει τη μέση ηλικία.
γ.
Θα υπολογίζει το ποσοστό αυτών που είναι πάνω από 20 χρονών.
δ.
Θα εμφανίζει τη μέση ηλικία και το παραπάνω ποσοστό.
6.
ΘΕΜΑΤΑ ΠΟΥ ΖΗΤΟΥΝ ΕΚΤΕΛΕΣΗ ΑΛΓΟΡΙΘΜΩΝ
4.79 Στο παρακάτω τμήμα αλγορίθμου έχουν αριθμηθεί κάποιες εντολές. 1Μ 0 Ζ0 ΓΙΑ Χ ΑΠΟ 0 ΜΕΧΡΙ 10 ΜΕ_ΒΗΜΑ 2 2 ΑΝ Χ < 5 ΤΟΤΕ 3 Ζ Ζ +Χ 4 ΑΛΛΙΩΣ 5 ΜΜ+Χ–1 ΤΕΛΟΣ_ΑΝ ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
103
α.
Να το εκτελέσετε και να συμπληρώσετε πίνακα τιμών σύμφωνα με το παρακάτω υπόδειγμα. Αριθμός εντολής 1 2 ...
β.
Τιμή μεταβλητής Μ=0
Τιμή Συνθήκης
...
Αληθής ...
Στη συνέχεια να κατασκευάσετε το αντίστοιχο διάγραμμα ροής.
4.80 Δίνεται ο παρακάτω αλγόριθμος: Αλγόριθμος Θέμα_2 Διάβασε Χ Αν Χ mod 2 = 0 τότε Για i από 1 μέχρι 3 Χ←Χ+3 Τέλος_επανάληψης Τέλος_αν Αν Χ mod 2 < > 0 τότε Για i από 5 μέχρι 3 με_βήμα –1 Χ←Χ+i Τέλος_επανάληψης Τέλος_αν Τέλος Θέμα_2 Να βρείτε την τιμή της μεταβλητής X μετά την εκτέλεσή του α.
για Χ = 1
β.
για Χ = 2
4.81 Δίνεται το παρακάτω τμήμα αλγορίθμου :
α.
Κ0 Για χ από 0 μέχρι 100 με βήμα 5 Α χ^3 ΚΚ+Α Εκτύπωσε χ , Α Τέλος_επανάληψης Εκτύπωσε Κ Πόσες φορές θα εκτελεστεί ο βρόχος ;
β.
Ποια είναι η λειτουργία των εντολών ;
γ.
Να γραφτει με τη βοήθεια της Οσο και της Μεχρις_οτου.
104
4.82 Να εκτελέσετε το παρακάτω τμήμα αλγορίθμου, για Κ = 2 και L = 14. Να γράψετε στο τετράδιό σας τις τιμές των μεταβλητών Χ, Υ καθώς αυτές τυπώνονται με την εντολή Εμφάνισε Χ, Υ (τόσο μέσα στη δομή επανάληψης όσο και στο τέλος του αλγορίθμου). Χ Κ Y L Αν Χ > Υ τότε ΤΕΜΡ Χ Χ Υ Υ ΤΕΜΡ Τέλος_αν Όσο Υ 0 επανάλαβε ΤΕΜΡ Υ Υ Χ ΜOD Y Χ TEMP Εμφάνισε Χ, Υ Τέλος_επανάληψης Υ (Κ * L) DIV X Εμφάνισε Χ, Υ
4.83 Στον παρακάτω αλγόριθμο έχουν αριθμηθεί κάποιες εντολές. Αλγόριθμος Θέμα2 1 Χ3 Για i από 5 μέχρι 0 με_βήμα –2 2 ΧΧ+1 3 Αν Χ > 4 τότε ΥΧ 4 αλλιώς Υ –Χ Τέλος_αν 5 Ζ Χ*Υ Τέλος_επανάληψης Τέλος Θέμα2 Να το εκτελέσετε και να συμπληρώσετε πίνακα τιμών σύμφωνα με το παρακάτω υπόδειγμα. Αριθμός εντολής 1 2 3 ...
Τιμή μεταβλητής Χ 3 4 ...
Τιμή μεταβλητής Υ
Τιμή μεταβλητής Ζ
Τιμή Συνθήκης
...
Ψευδής ...
105
4.84 Να εξηγήσετε τι θα εμφανίζει ο παρακάτω αλγόριθμος. Αλγόριθμος Εμφάνιση Α0 Β1 Γ2 Για i από 2 μέχρι 7 με_βήμα 3 ΑΑ+i Αν Α < = 4 τότε Για j από 1 μέχρι Α ΒΒ+1 Τέλος_επανάληψης Αλλιώς Γ Γ*i Τέλος_αν Τέλος_επανάληψης Εμφάνισε Α, Β, Γ Τέλος Εμφάνιση
4.85 Δίνεται το παρακάτω τμήμα αλγορίθμου που έχουν αριθμηθεί κάποιες εντολές. Χ 1 1 Όσο Χ < 5 επανάλαβε Α 3*Χ – 5 2 Β2–Α–4 CΒ+Χ+Α 3 Αν Α > Β τότε 4 Αν Α > C τότε 5 MAX A αλλιώς MAX C Τέλος αν αλλιώς Αν Β > C τότε MAX Β αλλιώς MAX C Τέλος αν Τέλος αν 6 Εμφάνισε Χ, Α, Β, C, MAX Χ Χ+2 Τέλος επανάληψης Να το εκτελέσετε και να συμπληρώσετε πίνακα τιμών σύμφωνα με το παρακάτω υπόδειγμα. Αριθμός εντολής 1 ... 6 ...
Τιμή μεταβλητής ...
Συνθήκη – Τιμή 1 < 5 – Αληθής ...
...
...
Έξοδος στην οθόνη ... 1 , -2 , 0 , -1 , 0 ...
106
4.86 Δίνεται το παρακάτω τμήμα αλγορίθμου που έχουν αριθμηθεί κάποιες εντολές. Αλγόριθμος Άσκηση 1 χ5 2 Όσο χ 100 τότε χρεώνονται με 0,06 € / SMS , αλλιώς με 0,085 € / SMS Αν ο αριθμός των MMS > 25 τότε αφαιρούνται 5 ΜMS (Τιμή ΜΜS 0,40 €)
Χρόνος ομιλίας 0 α) και στη συνέχεια: α.
Θα εμφανίζει το άθροισμα των ακέραιων αριθμών στο διάστημα [α, β] .
β.
Θα εμφανίζει τους άρτιους αριθμούς στο διάστημα (0, α+β].
114
ΚΕΦΑΛΑΙΟ 5ο
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ
ΜΟΝΟΔΙΑΣΤΑΤΟΙ ΠΙΝΑΚΕΣ
Κεφάλαιο 5ο – ∆οµές ∆εδοµένων – Μονοδιάστατοι Πίνακες Α.
Θεωρία
5.1
Δομές Δεδομένων Σε προηγούμενο κεφάλαιο δώσαμε τις έννοιες του δεδομένου και της πληροφορίας. Στη συνέχεια θα μελετήσουμε ομάδες από δεδομένα καθώς και τον τρόπο με τον οποίο τα χειριζόμαστε. Αν προσεγγίσουμε την έννοια της δομής δεδομένων με έναν απλό και ευνόητο τρόπο μπορούμε να τη φανταστούμε σαν μια «αποθήκη» με αντικείμενα μαζί με τις διεργασίες που μπορούμε να κάνουμε πάνω σε αυτά τα στοιχεία. Ας θεωρήσουμε την περίπτωση μιας αποθήκης σουπερμάρκετ που περιέχει ένα μεγάλο πλήθος προϊόντων (δεδομένα). Οι εργασίες που μπορεί να εκτελέσει ένας εργάτης της αποθήκης (εισαγωγή νέων προϊόντων, προώθηση προϊόντων στα ράφια, απογραφή προϊόντων, αναζήτηση προϊόντος κ.λ.π.) αποτελούν τις λειτουργίες της παραπάνω αποθήκης. Το σύστημα που περιγράψαμε μπορεί να θεωρηθεί ως μια απλουστευμένη αναπαράσταση Δομής Δεδομένων της Πληροφορικής. 5.1.1 Σημασία δομών δεδομένων Οι δομές δεδομένων αποτελούν ένα βασικό στοιχείο του προγραμματισμού. Για να καταλάβει κάποιος την τεράστια σημασία τους αρκεί να αναφέρουμε την εξίσωση του Wirth (1976 – Υλοποιητής της Pascal) :
Αλγόριθμοι + Δομές Δεδομένων = Προγράμματα
5.2
Οι κυριότερες Δομές Δεδομένων Οι βασικότερες δομές δεδομένων που χρησιμοποιούνται σήμερα είναι : Ο πίνακας , η ουρά, η στοίβα, ο γράφος, το δένδρο και η λίστα. Οι δομές δεδομένων χωρίζονται σε Στατικές και Δυναμικές ανάλογα με το αν το μέγεθος τους είναι σταθερό ή μεταβάλλεται κατά τη διάρκεια της λειτουργίας του προγράμματος σύμφωνα με τις ανάγκες του. Θα ασχοληθούμε με τις τρεις πρώτες από όσες αναφέρθηκαν παραπάνω. Σε ότι αφορά τους πίνακες θα μελετήσουμε πληθώρα εφαρμογών σε ασκήσεις ενώ για τη στοίβα και την ουρά θα αναφερθούμε θεωρητικά. 5.2.1 Η Στοίβα Για να κατανοήσει κανείς την έννοια της στοίβας αρκεί να φέρει στο νου του μια στοίβα με πιάτα σε ένα εστιατόριο. Τα πιάτα αποτελούν τα δεδομένα. Κάθε φορά που ένα πιάτο πλένεται τοποθετείται φυσικά στην κορυφή της στοίβας και φεύγει πρώτο. Αυτός ο κανόνας χρήσης των δεδομένων ονομάζεται ιεραρχία της δομής. Στην σ τοίβα η ιεραρχία είναι η LIFO (last in first out). Πρέπει όμως να μελετήσουμε και τις βασικές λειτουργίες μιας στοίβας. Αυτές είναι : Ώθηση στοιχείου στην κορυφή της στοίβας (push) και απώθηση ενός δεδομένου (pop). Στη στοίβα είναι πιθανό να 117
παρατηρηθούν δυο φαινόμενα. Η υπερχείλιση και η υποχείλιση. Η μεν πρώτη ονομάζεται Overflow και συμβαίνει όταν συνεχίζουμε να τοποθετούμε πιάτα και κάποια στιγμή η στήλη καταρρεύσει αφού δεν θα αντέχει άλλο πιάτο. Η δεύτερη ονομάζεται Underflow και συμβαίνει όταν τελειώσουν τα πιάτα και δεν υπάρχει άλλο στη στοίβα. Στις σύγχρονες γλώσσες προγραμματισμού τέτοια φαινόμενα είναι σπάνιο να παρουσιαστούν διότι χρησιμοποιούνται σύγχρονες δυναμικές στοίβες. 5.2.2 Η Ουρά Η έννοια της ουράς μπορεί να μελετηθεί σαν την ουρά που παρουσιάζεται σε ένα ταμείο ενός σουπερμάρκετ ή στο ταμείο ενός κινηματογράφου. Εδώ τα δεδομένα είναι οι άνθρωποι που περιμένουν και οι λειτουργίες είναι η εισαγωγή (enqueue) και εξαγωγή (dequeue). Εισαγωγή σημαίνει να μπει στο τέλος της ουράς ένας άνθρωπος που μόλις έφτασε. Εξαγωγή σημαίνει να εξυπηρετηθεί αυτός που είναι την περισσότερη ώρα στην ουρά. Έτσι έχουμε μια διαφορετική ιεραρχία που ονομάζεται FIFO (first in first out). Η ουρά διαθέτει δύο δεικτες τον εμπρός (front) και τον πίσω (rear) που δείχνουν τον πρώτο πελάτη και τον τελευταίο αντίστοιχα. Μόλις ένας πελάτης εξυπηρετηθεί, ο δείκτης μπρός κινείται στην αμέσως επόμενη θέση. Μόλις ένας νέος πελάτης εισαχθεί στην ουρά, ο δείκτης πίσω θα μετακινηθεί στην επόμενη θέση. 5.2.3 Ο Πίνακας Οι πίνακες είναι μια κατηγορία δομών δεδομένων που προσφέρονται για μελέτη ενός αρχάριου προγραμματιστή λόγω της απλότητας τους αλλά ταυτόχρονα και της μεγάλης σημασίας τους. Η έννοια του πίνακα στον προγραμματισμό δεν απέχει πολύ από αυτήν στα μαθηματικά. Πρόκειται με απλά λόγια για μια μεταβλητή που μπορεί να αποθηκεύσει ταυτόχρονα πολλές διαφορετικές τιμές και όχι μόνο μία όπως έχουμε δει ως τώρα. Οι πίνακες χωρίζονται σε μονοδιάστατους και πολυδιάστατους. Από τους πολυδιάστατους θα ασχοληθούμε μόνο με τους δισδιάστατους. Επιπλέον είναι στατικές δομές δεδομένων και διατηρούν σταθερό μέγεθος που δηλώνεται στην αρχή του αλγόριθμου. Στο σημείο αυτό πρέπει να αναφέρουμε κάποια βασικά σημεία που αφορούν στη χρήση των πινάκων. Είναι απαραίτητοι όταν το πρόγραμμα έχει κάποιες ιδιαίτερες απαιτήσεις που δε μπορούν να καλυφθούν από απλές μεταβλητές που παίρνουν μια μόνο τιμή. Όμως, όπως και κάθε άλλη δομή δεδομένων έχουν πλεονεκτήματα και μειονεκτήματα. Γι αυτό πρέπει να είμαστε προσεκτικοί βάσει των αναγκών του κάθε προβλήματος και να αποφεύγεται η άσκοπη χρήση πινάκων. Τα ίδια ισχύουν και για τους πολυδιάστατους πίνακες μόνο που τα πράγματα είναι λίγο πιο πεπλεγμένα. Γενικά πρέπει να ακολουθούμε τον εξής κανόνα : « Πρώτα σκεφτόμαστε αν η άσκηση μπορεί να λυθεί χωρίς χρήση πίνακα και αν αυτό είναι αδύνατο τότε προχωράμε σε καθορισμό πινάκων »
5.3
Μονοδιάστατοι πίνακες Ένας μονοδιάστατος πίνακας μπορεί να θεωρηθεί ως ένα διατεταγμένο σύνολο αποθηκευμένων στοιχείων με την εξής μορφή : (α1 , α2 , ... , αΝ ). Ο συγκεκριμένος πίνακας αποτελείται από μια γραμμή και Ν στήλες, δηλαδή περιέχει Ν στοιχεία. Στην επόμενη σελίδα ακολουθούν παραδείγματα χειρισμού μονοδιάστατων πινάκων που συναντάμε συχνά σε ασκήσεις.
118
5.3.1 Δήλωση δεδομένων πινάκων Όταν η άσκηση ζητάει να κατασκευάσουμε αλγόριθμο που θα χειρίζεται πίνακες τότε μπορεί να συναντήσουμε την έκφραση : «Δίνεται πινακας Χ που περιέχει Ν στοιχεία». Αυτό υλοποιείται με χρήση της εντολής Δεδομένα // // που παρουσιάστηκε στο κεφάλαιο 2 και είναι η εξής : Δεδομένα // Χ , Ν // Αν η εκφώνηση λέει «Δίνεται πίνακας table που περιέχει 100 αριθμούς» τότε η εντολή συντάσσεται : Δεδομένα // table // ! δηλαδή σε αυτή την περίπτωση το μέγεθος δεν αναφέρεται. Με τις παραπάνω εντολές δηλώσαμε ένα πίνακα Χ που περιέχει Ν στοιχεία, ένα πίνακα table με 100 στοιχεία . Σε πρόγραμμα στη «ΓΛΩΣΣΑ» αν χρειαστεί χρήση πινάκων τότε πρέπει να δηλωθεί ο τύπος των δεδομένων που θα μπούν στον πίνακα, το όνομα του και το πλήθος των στοιχείων του. Για παράδειγμα : ΜΕΤΑΒΛΗΤΕΣ ΠΡΑΓΜΑΤΙΚΕΣ : Α[10] ΧΑΡΑΚΤΗΡΕΣ : ΧΑΡ[500] ΑΚΕΡΑΙΕΣ : Β[30] ΛΟΓΙΚΕΣ : Κ[5] 5.3.2 Εισαγωγή στοιχείων σε κενό πίνακα 100 θέσεων με όνομα ΠΙΝΑΚΑΣ Για i από 1 μέχρι 100 διάβασε ΠΙΝΑΚΑΣ[ i ] Τέλος_επανάληψης Οι παραπάνω εντολές λειτουργούν και σε αλγόριθμο και σε πρόγραμμα. 5.3.3 Εμφάνιση αποθηκευμένων στοιχείων πίνακα 200 θέσεων με όνομα ΠΙΝ Για i από 1 μέχρι 200 εμφάνισε ΠΙΝ[ i ] Τέλος_επανάληψης Σε περίπτωση που έχουμε πρόγραμμα η εντολή εμφάνισε ΠΙΝ[ i ] αντικαθίσταται με την ΓΡΑΨΕ ΠΙΝ[ i ]. 5.3.4 Υπολογισμός αθροίσματος όλων των στοιχείων του πίνακα Α[50] και εύρεση μέσου όρου SUM 0 Για i από 1 μέχρι 50 SUM SUM + A[i] Τέλος_επανάληψης ΜΟ SUM/50
119
5.3.5 Υπολογισμός αθροίσματος των στοιχείων 11 – 49 του πίνακα Α[50] SUM 0 Για i από 11 μέχρι 49 SUM SUM + A[i] Τέλος_επανάληψης 5.3.6 Εύρεση μεγίστου ή ελαχίστου στοιχείου πίνακα 80 θέσεων με όνομα A MAX A[1] Για i από 2 μέχρι 80 Aν A[i] > MAX τότε MAX A[i] Τέλος_αν Τέλος_επανάληψης
MΙΝ A[1] Για i από 2 μέχρι 80 Aν A[i] < MΙΝ τότε ΜΙΝ Α[i] Τέλος_αν Τέλος_επανάληψης
5.3.7 Εντοπισμός στοιχείων του πίνακα που πληρούν συγκεκριμένη ιδιότητα Πολλές φορές μέσα σε έναν πίνακα χρειάζεται να αναζητήσουμε κάποια στοιχεία που ικανοποιούν μια συγκεκριμένη ιδιότητα. Η αναζήτηση γίνεται σχεδόν πάντα με τη χρήση της δομής επιλογής. Η ιδιότητα που ζητάμε να πληρούν τα στοιχεία, εκφράζεται μέσα από τη συνθήκη της ΑΝ. Στο παράδειγμα γ. που ακολουθεί εντοπίζουμε στοιχεία με χρήση μιας Όσο Παραδείγματα εντοπισμού στοιχείων α.
Άθροισμα όλων των θετικών στοιχείων ενός πίνακα 800 θέσεων SUM 0 ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 800 ΑΝ Α[i] > 0 ΤΟΤΕ SUM SUM + A[i] ΤΕΛΟΣ_ΑΝ ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
β.
Εμφάνιση στοιχείων του πίνακα Π[100] που είναι πολλαπλάσια του 2 ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 100 ΑΝ Π[i] MOD 2 = 0 ΤΟΤΕ ΓΡΑΨΕ Π[i] ΤΕΛΟΣ_ΑΝ ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
γ.
Εμφάνιση των στοιχείων του πίνακα Π[100] μέχρι να βρεθεί το 34. i1 ΟΣΟ (Π[ i ] 34) KAI (i 0 ) αριθμών θα υπολογίζει και θα εμφανίζει το άθροισμα και το μέσο όρο αυτών που βρίσκονται στο διάστημα ( -20 , 45] .
5.40 Να γίνει πρόγραμμα που θα διαβάζει ένα πίνακα 50 ακεραίων αριθμών και στη συνέχεια θα υπολογίζει και θα εμφανίζει το γινόμενο όσων από αυτούς τελειώνουν σε 4.
5.41 Να γίνει αλγόριθμος ο οποίος : α.
Θα διαβάζει έναν πίνακα 70 αριθμών .
β.
Θα υπολογίζει και θα εμφανίζει το μέσο όρο του πίνακα.
γ.
Να υλοποιησετε τον παραπάνω αλγόριθμο χωρίς τη χρήση πίνακα.
5.42 Δίνεται μονοδιάστατος πίνακας Β[100]. Να γραφεί πρόγραμμα στη «ΓΛΩΣΣΑ» που θα υπολογίζει το άθροισμα των 100 στοιχείων του. Στη συνέχεια θα εμφανίζει τα στοιχεία εκείνα που βρίσκονται σε άρτιες θέσεις του πίνακα και βρίσκονται ανάμεσα στο 0 και στο 100.
133
5.43 Να γραφεί αλγόριθμος ο οποίος θα διαβάζει την ημερήσια βροχόπτωση σε cm για ένα χρόνο και θα εμφανίζει το μέσο όρο. (Υπόδειξη : Κατά τους υπολογισμούς να θεωρήσετε ότι κάθε μήνας έχει 30 μέρες και όλο το έτος 360 μέρες). Στη συνέχεια εμφανίστε τον αριθμό των ημερών που η βροχόπτωση ξεπέρασε το μέσο όρο. Είναι απαραίτητη η χρήση πίνακα ; Αιτιολογήστε την απάντηση σας.
5.44 Να γραφτεί πρόγραμμα που θα επεξεργάζεται έναν πίνακα Α 200 θέσεων με ακέραιους που θα μετρά το πλήθος και θα εμφανίζει όλα τα στοιχεία του πίνακα που είναι μικρότερα κατά 2 μονάδες από το μέσο όρο των στοιχείων του πίνακα. 5.45 Σε μια τάξη οι μαθητές που θα διαγωνιστούν για να στελεχώσουν την ομάδα 9 του συνολικού μέσου ύψους. 10 Να γραφτεί πρόγραμμα που θα δέχεται το ύψος και τα ονόματα των 30 μαθητών μιας τάξης και θα τα καταχωρεί σε κάταλληλους πίνακες. Στη συνέχεια θα εμφανίζει τα ονόματα των μαθητών που θα διαγωνιστούν για μια θέση στην ομάδα. μπάσκετ, είναι αυτοί που το ύψος τους ξεπερνάει τα
5.
ΘΕΜΑΤΑ ΠΟΥ ΖΗΤΟΥΝ ΕΥΡΕΣΗ ΜΕΓΙΣΤΟΥ – ΕΛΑΧΙΣΤΟΥ
5.46 Να γίνει αλγόριθμος που με δεδομένους δυο πίνακες Μ[30] και Ν[20] θα εμφανίζει το μέγιστο του Μ και το ελάχιστο του Ν.
5.47 Να γίνει αλγόριθμος ο οποίος : α.
Θα διαβάζει πίνακα Α[150] .
β.
Θα υπολογίζει το μέσο όρο και το μέγιστο στοιχείο του πίνακα.
γ.
Θα υπολογίζει το πλήθος των στοιχειων που ξεπέρασαν το μέσο όρο.
δ.
Θα εμφανίζει όσα υπολογίστηκαν παραπάνω.
5.48 Να γράψετε αλγόριθμο ο οποίος : α.
Θα εισάγει σε πίνακα 1000 αριθμούς.
β.
Θα βρίσκει το μέγιστο στοιχείο του πίνακα.
γ.
Θα βρίσκει το πλήθος των εμφανίσεων του μεγίστου.
δ.
Θα εμφανίζει το μήνυμα ‘ Το μέγιστο ΧΧΧΧ εμφανίστηκε ΧΧ φορές.
5.49 Να γίνει αλγόριθμος που θα διαβάζει εναν πίνακα με 60 αριθμούς και θα εμφανίζει το μεγαλύτερο από αυτούς που βρίσκονται στις άρτιες θέσεις του πίνακα. 5.50 Να γίνει πρόγραμμα που θα διαβάζει ένα πίνακα Κ με 90 ακέραιους και στη συνέχεια θα υπολογίζει και θα εμφανίζει το άθροισμα και το μέσο όρο αυτών που βρίσκονται στις θέσεις από 28 μέχρι 63 και είναι διάφορετικοί από το ελάχιστο του πίνακα.
134
6.
ΘΕΜΑΤΑ ΠΟΥ ΖΗΤΟΥΝ ΤΑΞΙΝΟΜΗΣΗ – ΣΕΙΡΙΑΚΗ ΑΝΑΖΗΤΗΣΗ
5.51 Δίνεται μονοδιάστατος πίνακας Α, 400 στοιχείων, που είναι ακέραιοι αριθμοί. Να αναπτύξετε πρόγραμμα στη «ΓΛΩΣΣΑ» το οποίο θα ταξινομεί με τη μέθοδο της φυσαλίδας τα στοιχεία του πίνακα Α σε αύξουσα σειρά.
5.52 Σε ένα μονοδιάστατο πίνακα ΘΕΡΜ, αποθηκεύονται οι 12 μέσες θερμοκρασίες των μηνών του χρόνου και σε έναν δεύτερο πίνακα ΜΗΝ, αποθηκεύονται τα ονόματα των αντίστοιχων μηνών. Να γραφεί πρόγραμμα στη «ΓΛΩΣΣΑ» που : α.
Διαβάζει τους 2 πίνακες .
β.
Υπολογίζει και θα εμφανίζει τις 2 μεγαλύτερες και τις 2 μικρότερες θερμοκρασίες και τα ονόματα των μηνών κατά τους οποίους σημειώθηκαν.
5.53 Μια οικολογική οργάνωση διαθέτει τα ονόματα και το ποσοστό δασών 50 διαφορετικών χωρών. Χρειάζεται να πάρει απόφαση για να διοργανώσει μια εκδήλωση διαμαρτυρίας στις 10 χώρες που έχουν το χαμηλότερο ποσοστό δασών. Να δοθεί αλγόριθμος που θα ταξινομεί τα ποσοστά δασών των χωρών και στη συνέχεια θα εμφανίζει τα ονόματα των 10 χωρών που θα γίνουν οι διαδηλώσεις.
5.54 Να γραφτεί αλγόριθμος ο οποίος : α.
Θα τοποθετεί σε πίνακα τα ονόματα εκατό ανθρώπων.
β.
Θα τοποθετεί σε πίνακα τους αντίστοιχους αριθμούς ταυτότητας.
γ.
Θα δέχεται ως είσοδο μια ταυτότητα και θα εμφανίζει το όνομα του ανθρώπου καθώς και τη θέση στην οποία βρίσκεται.
5.55 Κάποιο εστιατόριο θέλει να εκτυπώσει έναν αλφαβητικό τιμοκατάλογο των φαγητών που προσφέρει. Να γίνει πρόγραμμα που να ζητάει την ονομασία και την τιμή για 20 φαγητά και στη συνέχεια να εμφανίζει αυτά τα στοιχεία ταξινομημένα σε αλφαβητική σειρά.
5.56 Διαθέτουμε αποθηκευμένα σε τρείς πίνακες τα ονοματεπώνυμα , τα email και τα τηλέφωνα 200 ανθρώπων που αγόρασαν λαχνούς για μια κλήρωση. Να γίνει αλγόριθμος ο οποίος : α.
Θα διαβάζει το ονοματεπώνυμο του τυχερού.
β.
Θα εντοπίζει τη θέση στην οποία βρίσκεται με τη βοήθεια του αλγόριθμου σειριακής αναζήτησης.
γ.
Θα εμφανίζει το email και το τηλέφωνο του τυχερού.
135
7.
ΘΕΜΑΤΑ ΠΟΥ ΖΗΤΟΥΝ ΕΚΤΕΛΕΣΗ ΑΛΓΟΡΙΘΜΩΝ
5.57 Δίνεται μονοδιάστατος πίνακας Α, 7 θέσεων, ο οποίος στις θέσεις 1 έως 7 περιέχει αντίστοιχα τους αριθμούς: Α= ( 5 , -3 , 0 , 2 , 7 , 8 , 9 ) και το παρακάτω τμήμα αλγορίθμου : Για i από 1 μέχρι 6 με_βήμα 2 k ((i+5) mod 3)+2 A[i] A[k-1] εμφάνισε i, k, A[i], A[k] Τέλος_επανάληψης Ποιες τιμές τυπώνονται με την εντολή : εμφάνισε i, k, A[i], A[k] , καθώς εκτελείται το παραπάνω τμήμα αλγορίθμου ;
5.58 Δίνεται ο μονοδιάστατος πίνακας C με 6 στοιχεία που έχουν αντίστοιχα τις παρακάτω τιμές : C = ( 2 5 15 -1 32 14 ) και το παρακάτω τμήμα αλγορίθμου : min 100 max -100 Για i από 1 μέχρι 6 με_βήμα 2 Α C[ i ] B C[ i + 1] Αν Α < Β τότε Lmin A Lmax Β αλλιώς Lmin Β Lmax Α Τέλος_αν Αν Lmin < min τότε min Lmin Τέλος_αν Αν Lmax > max τότε max Lmax Τέλος_αν Εκτύπωσε Α, Β, Lmin, Lmax, min, max Τέλος_επανάληψης D max*min Εκτύπωσε D Να εκτελέσετε το παραπάνω τμήμα αλγορίθμου και να γράψετε στο τετράδιο σας : α.
Τις τιμές των μεταβλητών Α, Β , Lmin , Lmax , min , max, όπως αυτές εκτυπώνονται σε κάθε επανάληψη.
β.
Την τιμή της μεταβλητής D που εκτυπώνεται.
136
5.59 Δίνονται ο πίνακας Α=( -5 , 0 , -4 , 2 , 7 , -1 ) και το παρακάτω τμήμα αλγορίθμου: ΓΙΑ Ι ΑΠΟ 2 ΜΕΧΡΙ 6 ΓΙΑ Κ ΑΠΟ 6 ΜΕΧΡΙ Ι ΜΕ ΒΗΜΑ -1 ΑΝ Α[ Κ-1] < Α[ Κ ] ΤΟΤΕ ΑΝΤΙΜΕΤΑΘΕΣΕ Α[Κ-1] , Α[Κ] ΤΕΛΟΣ_ΑΝ ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ α.
Να εκτελεστούν οι εντολές για Ι = 2 και Ι = 3
β.
Να βρεθεί η μορφή που θα έχει πάρει ο πίνακας Α ;
γ.
Ποια διεργασία υλοποιεί ο παραπάνω αλγόριθμος ;
5.60 Να εξηγήσετε τι θα εμφανιστεί μετά το τέλος της εκτέλεσης του παρακάτω αλγορίθμου. Αλγόριθμος Εμφάνιση Για i από 1 μέχρι 10 Αν i mod 2 0 τότε Α[i] i+2 Αλλιώς Α[i] A[i-1] – 3 Τελος_αν Τέλος_επανάληψης Για i από 1 μέχρι 10 Εμφάνισε Α[i] Τέλος_επανάληψης Τέλος Εμφάνιση
5.61 Ο μονοδιάστατος αριθμητικός πίνακας Table έχει τα ακόλουθα στοιχεία: 1η θέση 12
2η θέση 5
3η θέση -4
4η θέση -6
5η θέση 8
Δίνεται το παρακάτω τμήμα αλγορίθμου : Για Ι από 2 μέχρι 5 Για J από 5 μέχρι Ι με_βήμα -1 Αν Table[J-1] > Table[J] τότε Αντιμετάθεσε Table[J-1], Table[J] Τέλος_αν Τέλος_επανάληψης Τέλος_επανάληψης Να μεταφερθεί στο τετράδιό σας ο ακόλουθος πίνακας και να συμπληρωθεί για όλες τις τιμές του J, που αντιστοιχούν σε I=2 και Ι=3
137
Ι 2
J
ΠΙΝΑΚΑΣ 1η 2η
3η
4η
5η
3
5.62 Δίνεται ο μονοδιάστατος πίνακας Α = ( 1 , 0 , 3 , 6 , 2 , 11 , 7 , 5 , 4) και το παρακάτω τμήμα αλγορίθμου : i2 x A[i+1] y A[x-i] ΟΣΟ i y ΤΟΤΕ ΓΡΑΨΕ x ΑΛΛΙΩΣ ΓΡΑΨΕ y ΤΕΛΟΣ_ΑΝ y x mod i i i +2 x A[i-3] ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ Ζ Χ*Υ α.
Να σχηματίσετε πίνακα με τις τιμές όλων των μεταβλητών του προβλήματος σε όλες τις επαναλήψεις.
β.
Να σχηματίσετε πίνακα με τις τιμές που εμφανίζονται.
8.
ΘΕΜΑΤΑ ΠΟΥ ΖΗΤΟΥΝ ΣΥΝΔΥΑΣΜΟ ΜΕΘΟΔΩΝ
5.63 Ένα κέντρο διασκέδασης έχει 35 τραπέζια. Κάθε Σάββατο ο ιδιοκτήτης κάνει δώρο το λογαριασμό σε όποια τραπέζια έχουν κάνει λογαριασμό μεγαλύτερο από το διπλάσιο του μέσου όρου όλων των τραπεζιών. Να γραφεί πρόγραμμα που θα εκτελεί τα παρακάτω : α.
Θα διαβάζει όλους τους λογαριασμούς των τραπεζιών για το συγκεκριμένο Σάββατο.
β.
Θα εμφανίζει το μήνυμα ‘ Τα παρακάτω τραπέζια δεν πληρώνουν : ’ και θα εμφανίζει τους αριθμούς των τραπεζιών που δικαιούνται το δώρο.
γ.
Είναι δυνατή η επίλυση χωρίς χρήση πίνακα ; Αιτιολογήστε την οποιαδήποτε απάντηση σας.
138
5.64 Ένα περιοδικό ηλεκτρονικών υπολογιστών αξιολόγησε 50 μοντέλα Η/Υ κάνοντας μία σειρά από τεστ στον καθένα. Για τον κάθε Η/Υ, ανάλογα με τις επιδόσεις του, υπολογίστηκε ο γενικός του δείκτης. Στα τέλος της αξιολόγησης δόθηκε ο τίτλος της «πιο έξυπνης αγοράς» στον Η/Υ που είχε το μεγαλύτερο λόγο γενικού δείκτη προς τιμή. Να αναπτύξετε αλγόριθμο που να διαβάζει 50 μοντέλα Η/Υ, τους γενικούς τους δείκτες και τις τιμές τους και να εμφανίζει το μοντέλο το οποίο αποτελεί την «πιο έξυπνη αγορά».
5.65 Υποθέτουμε ότι διαθέτουμε σε ένα πίνακα Α[20] τα ονόματα 20 αυτοκινητοβιομηχανιών και σε ένα πίνακα Β[20] τον αριθμό αυτοκινήτων που πούλησαν κατά το έτος 2009. Να γίνει αλγόριθμος ο οποίος : α. β.
Θα εμφανίζει τις μάρκες που έχουν κάνει πωλήσεις πάνω από 10000. Θα εμφανίζει τις μάρκες με τις περισσότερες πωλήσεις ( μπορεί να υπάρχουν περισσότερες από μια μάρκες με το μέγιστο αριθμό πωλήσεων ).
γ.
Να ταξινομεί σε αύξουσα σειρά ως προς τις πωλήσεις τις παραπάνω μάρκες.
5.66 Σε ένα αρχαιολογικό μουσείο υπάρχουν 10 αίθουσες με εκθέματα της ελληνιστικής περιόδου καθεμία με το δικό της νούμερο 1, 2, … 10. Να γραφτεί ένα πρόγραμμα το οποίο: α.
Θα διαβάζει τους ημερήσιους επισκέπτες κάθε αίθουσας
β.
Θα υπολογίζει το μέσο όρο επισκεπτών του μουσείου και στη συνέχεια
γ.
Θα τυπώνει πλήθος και το νούμερο των αιθουσών που ο ημερήσιος αριθμός επισκεπτών τους ήταν μεγαλύτερος από το μέσο όρο.
5.67 Να γίνει πρόγραμμα στη Γλώσσα το οποίο : α.
Θα διαβάζει 2 πίνακες Α[50] και Β[50].
β.
Θα υπολογίζει και θα εμφανίζει το πλήθος των στοιχείων του Α που είναι μεγαλύτερα από τα αντίστοιχα στοιχεία του Β.
γ.
Θα εμφανίζει το γινόμενο των στοιχείων των δύο πινάκων που βρίσκονται σε αντίστοιχες θέσεις.
5.68 Δίνονται 2 πίνακες Α[300] και Β[100] που περιέχουν πραγματικούς αριθμούς. Να γράψετε αλγόριθμο που θα μεταφέρει τις 100 πρώτες θέσεις του πίνακα Α σε ένα πίνακα Γ. Στη συνέχεια θα ελέγχει αν οι Β και Γ περιέχουν τα ίδια στοιχεία εμφανίζοντας τα κατάλληλα μηνύματα. 5.69 Στη δεξίωση ενός γάμου έχει καταρτιστεί λίστα καλεσμένων. Στον πίνακα ΟΝOM καταχωρείται το όνομα κάθε καλεσμένου και στον πίνακα ΤΡΑΠ καταχωρείται ο αριθμός του τραπεζιού όπου τοποθετείται. Σημειώνεται ότι τα τραπέζια διαθέτουν 10 θέσεις και ότι το συνολικό πλήθος των καλεσμένων είναι 1500. Να αναπτύξετε αλγόριθμο που με δεδομένα τα στοιχεία των πινάκων : 139
α.
Θα διαβάζει ένα όνομα ενός καλεσμένου και θα εκτυπώνει το τραπέζι στο οποίο έχει τοποθετηθεί,
β.
Θα διαβάζει τον αριθμό ενός τραπεζιού και θα εκτυπώνει τη λίστα των ατόμων που κάθονται σε αυτό.
γ.
Θα εκτυπώνει το όνομα κάθε καλεσμένου με αλφαβητική σειρά, καθώς και το τραπέζι του.
δ.
Θα εκτυπώνει τα ονόματα των καλεσμένων της δεξίωσης ανά τραπέζι.
5.70 Σε ένα μονοδιάστατο πίνακα με το όνομα ΔΥΑΔ έχουμε αποθηκεύσει τα 20 ψηφία ενός δυαδικού αριθμού. Να γραφεί αλγόριθμος ο οποίος θα μετατρέπει τον παραπάνω δυαδικό στον αντίστοιχο αριθμό του δεκαδικού. . 0
Υπενθυμίζεται ότι ο αριθμός 11001 του δυαδικού μετατρέπεται σε αντίστοιχο του δεκαδικού ως εξής : 1 2 + . 1 . 2 . 3 . 4 02 + 02 + 12 + 12
5.71 Δίνονται δύο πίνακες Α[50] και Β[30] που περιέχουν ακέραιους αριθμούς. Να γίνει αλγόριθμος ο οποίος : α.
Θα βρίσκει και θα εμφανίζει το μέγιστο στοιχείο του πίνακα Α.
β.
Θα βρίσκει και θα εμφανίζει το μέσο όρο του πίνακα Β.
γ.
Θα ελέγχει αν στις πρώτες 30 θέσεις του Α υπάρχουν αριθμοί μεγαλύτεροι από ότι στις αντίστοιχες θέσεις του Β. Στην περίπτωση που ισχύει το παραπάνω να εμφανίζει κατάλληλο μήνυμα.
5.72 Για καθέναν από τους 70 υπαλλήλους μιας εταιρείας διατηρούνται μεταξύ άλλων τα εξής στοιχεία : Ονοματεπώνυμο, οικογενειακή κατάσταση, μισθός και χρόνια υπηρεσίας στην εταιρεία. Να γράψετε πρόγραμμα το οποίο : α.
Θα εισάγει στοιχεία στους πίνακες.
β.
Θα εμφανίζει τα στοιχεία των άγαμων υπαλλήλων.
γ.
Θα βρίσκει και θα εμφανίζει το ονοματεπώνυμο του πιο καλοπληρωμένου υπαλλήλου.
δ.
Θα ζητά ένα όνομα ως κλειδί και θα ελέγχει αν αυτό υπάρχει με αλγόριθμο σειριακής αναζήτησης. Στην συνέχεια αν αυτό υπάρχει θα τυπώνονται τα στοιχεία του συγκεκριμένου υπαλλήλου.
ε.
Θα εμφανίζει ταξινομημένη λίστα όλων των υπαλλήλων σε φθίνουσα σειρά με βάση τα χρόνια υπηρεσίας στην εταιρεία.
5.73 Να γίνει αλγόριθμος ο οποίος θα διαβάζει έναν πίνακα Α[500] με ακέραιους και στη συνέχεια θα τον αντιστρέφει. Δηλαδή το 1ο στοιχείο θα γίνει 500ο , το 2ο 499ο κ.ο.κ. 5.74 Να γίνει αλγόριθμος ο οποίος θα διαβάζει έναν πίνακα Β[233] με ακέραιους και στη συνέχεια θα τον αντιστρέφει. Δηλαδή το 1ο στοιχείο θα γίνει 233ο , το 2ο
232ο κ.ο.κ.
140
5.75 Να γίνει αλγόριθμος ο οποίος θα διαβάζει τα στοιχεία ενός πίνακα 800 θέσεων και θα εκτελεί τα παρακάτω : α.
Θα εμφανίζει τα στοιχεία που βρίσκονται στις άρτιες θέσεις του πίνακα.
β.
Θα βρίσκει το ελάχιστο στοιχείο των περιττών θέσεων του πίνακα.
γ.
Θα υπολογίζει το άθροισμα των πολλαπλασίων του 5 που περιέχονται στον πίνακα.
5.76 Να γίνει αλγόριθμος οποίος με δεδομένα τα στοιχεία ενός πίνακα Κ[30] θα εκτελεί τα παρακάτω : α.
Θα υπολογίζει το μέσο όρο των άρτιων στοιχείων.
β.
Θα υπολογίζει το μέγιστο των άρτιων θέσεων.
γ.
Θα συγκρίνει το αποτέλεσμα των α. και β. εμφανίζοντας τα κατάλληλα μηνύματα.
5.77 Δίνεται πίνακας που περιέχει 150 ακέραιους αριθμούς. Να γίνει αλγόριθμος που θα εκτελεί τα παρακάτω : α.
Θα υπολογίζει μέσο όρο των στοιχείων.
β.
Θα εμφανίζει τα στοιχεία που είναι μεγαλύτερα από το μέσο όρο.
γ.
Θα εμφανίζει όλα τα στοιχεία του πίνακα με αντίστροφη σειρά.
5.78 Να γίνει αλγόριθμος ο οποίος : α.
Θα διαβάζει 2 πίνακες Α[300] με ονοματα και Β[300] με επιδόσεις σε ένα αγώνισμα. Θα πρέπει να γινεται έλεγχος ορθότητας ώστε η επίδοση να είναι θετικός αριθμός και μικρότερη ίση του 10.
β.
Θα εμφανίζει τα ονόματα των αθλητών με την καλύτερη επίδοση.
γ.
Θα διαβάζει ένα όνομα αθλητή και αν αυτός υπάρχει στον πίνακα, θα εμφανίζει την επίδοση του.
δ.
Θα δημιουργεί έναν πίνακα που θα περιέχει για κάθε άνθρωπο το χαρακτηρισμό «προκρίθηκε» αν η επίδοση του ήταν >= 5 και το χαρακτηρισμό «απορρίφθηκε» σε αντίστοιχη περίπτωση.
ε.
Θα εμφανίζει ταξινομημένα σε αλφαβητική σειρά τα δεδομένα .
5.79 Να γραφεί πρόγραμμα στη «ΓΛΩΣΣΑ» το οποίο να διαβάζει τα ονόματα και τις ηλικίες 50 ανθρώπων και να τα καταχωρεί στους πίνακες ΟΝΟΜ[50] και ΗΛ[50] αντίστοιχα. Στη συνέχεια : α.
Να υπολογίζει το μέσο όρο της ηλικίας τους
β.
Να εμφανίζει το όνομα του μικρότερου σε ηλικία ανθρώπου
141
γ.
Να εμφανίζει το όνομα του ανθρώπου που η ηλικία του βρίσκεται πιο κοντά στο μέσο όρο.
5.80 Δίνεται πίνακας που περιέχει 300 στοιχεία που μπορεί να είναι οι αριθμοί 1 , 3 ή 5. Να γίνει αλγόριθμος που θα τοποθετεί πρώτα τα 1 μετά τα 3 και στο τέλος τα 5 χωρίς χρήση αλγόριθμου ταξινόμησης.
5.81 Να γράψετε πρόγραμμα που να τυπώνει διαδοχικές τριάδες αριθμών που βρίσκονται σε πίνακα 200 θέσεων έτσι ώστε να αποτελούν όρους γεωμετρικής προόδου. ( Θυμίζω ότι οι αριθμοί α,β,γ είναι διαδοχικοί όροι γεωμετρικής προόδου όταν β2=αγ )
9.
ΘΕΜΑΤΑ ΜΕ ΣΥΝΕΝΩΣΗ – ΣΥΓΧΩΝΕΥΣΗ - ΔΙΑΧΩΡΙΣΜΟ
5.82 Να γίνει αλγόριθμος που θα πραγματοποιεί τη συνένωση 3 πινάκων Α[5] , Β[12], Γ[15] σ’έναν ενιαίο και στη συνέχεια θα εμφανίζει το νέο πίνακα ταξινομημένο σε φθίνουσα σειρά.
5.83 Να γίνει αλγόριθμος που θα πραγματοποιεί τη συνένωση 2 πινάκων Α[Ν] , Β[Μ] σ’ έναν ενιαίο τοποθετώντας πρώτα τον Β και μετά τον Α. Στη συνέχεια θα βρίσκει και θα εμφανίζει το μέσο όρο και το μέγιστο στοιχείο του νέου πίνακα.
5.84 Δίνονται δύο ταξινομημένοι πίνακες σε αύξουσα σειρά που καθένας περιέχει 20 ακεραίους. Να γίνει αλγόριθμος που θα τους συγχωνεύει σε ένα νεό πίνακα.
5.85 Δίνονται δύο ταξινομημένοι πίνακες σε αύξουσα σειρά που ο ένας περιέχει 20 αριθμούς και ο άλλος 10. Να γίνει αλγόριθμος που θα τους συγχωνεύει σε ένα νεό πίνακα.
5.86 Να γίνει πρόγραμμα σε «Γλώσσα» το οποίο : α.
Θα διαβάζει ένα πίνακα Π 100 ακεραίων.
β.
Θα διαχωρίζει τον Π σε δύο πίνακες που ο ένας θα περιέχει τα 25 πρώτα στοιχεία και ο άλλος τα υπόλοιπα.
5.87 Δίνεται πίνακας ΕΠ που περιέχει 1000 ακεραίους. Να γίνει αλγόριθμος που θα τον διασπάει σε δύο νέους πίνακες που ο ένας θα περιέχει όσους έχουν τελευταίο ψηφίο το 0 και ο άλλος τα πολλαπλάσια του 3.
5.88 Να γίνει αλγόριθμος ο οποίος : α.
Θα διαβάζει έναν πίνακα Α[400] ελέγχοντας οι αριθμοί να είναι ακεραιοι και θετικοί.
142
β.
Θα διασπάει τον παραπάνω πίνακα σε 2 άλλους. Ο ένας να περιέχει τους άρτιους και ο άλλος τους περιττούς αριθμούς.
γ.
Θα συγκρίνει τους μέσους όρους των νέων πινάκων εμφανίζοντας κατάλληλο μήνυμα.
5.89 Να γίνει αλγόριθμος ο οποίος : α.
Θα διαβάζει έναν πίνακα Κ[100] ελέγχοντας οι αριθμοί να είναι ακεραιοι διάφοροι του 0.
και
β.
Θα διασπάει τον παραπάνω πίνακα σε 2 άλλους. Ο ένας να περιέχει τους θετικούς και ο άλλος τους αρνητικους αριθμούς.
γ.
Θα συγκρίνει τις απόλυτες τιμές των αθροισμάτων τους εμφανίζοντας κατάλληλο μήνυμα.
5.90 Να γίνει αλγόριθμος ο οποίος : α.
Θα διαβάζει έναν πίνακα χαρακτήρων Α[30] ελέγχοντας ώστε να επιτρέπονται τα στοιχεία Α ή Β.
β.
Θα δημιουργεί νέο πίνακα που θα περιέχει μόνο τα Α.
143
ΚΕΦΑΛΑΙΟ 6ο
ΠΙΝΑΚΕΣ ΔΥΟ ΔΙΑΣΤΑΣΕΩΝ
Κεφάλαιο 6ο – Πίνακες ∆ύο ∆ιαστάσεων Α.
Θεωρία
6.1
Πίνακες Δύο Διαστάσεων Ένας πίνακας δύο διαστάσεων μπορεί να θεωρηθεί ως μια ορθογώνια διάταξη a11 a12 a13 αποθηκευμένων στοιχείων με την εξής μορφή : a21 a22 a23 . Ο συγκεκριμένος a 31 a32 a33 πίνακας αποτελείται από τρεις γραμμές και τρεις στήλες, δηλαδή περιέχει 3x3 = 9 στοιχεία. Γενικά ένας τέτοιος πίνακας μπορεί να αποτελείται από N γραμμές και Μ στήλες και να περιέχει ΝxM στοιχεία. Αρχικά θα δείξουμε πως μπορεί να δηλωθεί ο δισδιάστατος πίνακας. 6.1.1 Δήλωση δεδομένων πινάκων σε αλγόριθμους Δίνεται πίνακας Α με 10 γραμμές και 15 στήλες που περιέχει στοιχεία. Δεδομένα // Α // Δίνεται πίνακας Μ στήλες.
Π
με
τοποθετημένα
στοιχεία
σε
Ν
γραμμές
και
Δεδομένα // Π , Ν , Μ //
6.1.2 Δήλωση πινάκων σε πρόγραμμα ΜΕΤΑΒΛΗΤΕΣ ΠΡΑΓΜΑΤΙΚΕΣ : Α[100,10] ΧΑΡΑΚΤΗΡΕΣ : ΧΑΡ[11,5] ΛΟΓΙΚΕΣ : Ζ[10,2] ΑΚΕΡΑΙΕΣ : Μ[2,6] Σημειώνεται ότι σε προγράμματα οι πίνακες πρέπει πάντα να διαβάζονται για να γεμίσουν με στοιχεία. 6.1.3 Εισαγωγή στοιχείων σε πίνακα 10x6 ανά γραμμές με όνομα ΠΙΝΑΚΑΣ ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 10 ΓΙΑ j ΑΠΟ 1 ΜΕΧΡΙ 6 ΔΙΑΒΑΣΕ ΠΙΝΑΚΑΣ[ i , j ] ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
147
6.1.4 Εισαγωγή στοιχείων σε πίνακα 10x5 ανά στήλες με όνομα ΠΙΝΑΚΑΣ ΓΙΑ j ΑΠΟ 1 ΜΕΧΡΙ 5 ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 10 ΔΙΑΒΑΣΕ ΠΙΝΑΚΑΣ[ i , j ] ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ 6.1.5 Εμφάνιση αποθηκευμένων στοιχείων πίνακα 20x10 ανά γραμμές με όνομα ΠΙΝ ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 20 ΓΙΑ j ΑΠΟ 1 ΜΕΧΡΙ 10 ΓΡΑΨΕ ΠΙΝ[i,j] ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ 6.1.6 Εμφάνιση αποθηκευμένων στοιχείων πίνακα 20x10 ανά στήλες με όνομα ΠΙΝ ΓΙΑ j ΑΠΟ 1 ΜΕΧΡΙ 10 ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 20 ΓΡΑΨΕ ΠΙΝ[i,j] ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ 6.1.7 Υπολογισμός αθροίσματος όλων των στοιχείων του πίνακα Α[5,10] και εύρεση μέσου όρου SUM 0 ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 5 ΓΙΑ j ΑΠΟ 1 ΜΕΧΡΙ 10 SUM SUM + A[i,j] ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ΜΟ SUM/50 6.1.8 Υπολογισμός αθροίσματος των στοιχείων της 3ης γραμμής του πίνακα Α[5,4] SUM 0 ΓΙΑ j ΑΠΟ 1 ΜΕΧΡΙ 4 SUM SUM + A[3,j] ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ 6.1.9 Υπολογισμός αθροίσματος της κάθε γραμμής πίνακα Β[5,4] ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 5 SUM 0 ΓΙΑ j ΑΠΟ 1 ΜΕΧΡΙ 4 SUM SUM + B[i,j] ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ΓΡΑΨΕ SUM Α[ i ] SUM ! Αυτή η εντολή αποθηκεύει τα αθροίσματα σε νέο πίνακα ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ! σε περίπτωση που τα χρειαζόμαστε σε επόμενα ερωτήματα
148
6.1.10 Υπολογισμός μέσου όρου της κάθε στήλης πίνακα Β[5,4] ΓΙΑ j ΑΠΟ 1 ΜΕΧΡΙ 4 ΑΘΡ 0 ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 5 ΑΘΡ ΑΘΡ + B[i,j] ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ MO ΑΘΡ/5 ΓΡΑΨΕ ΜΟ Α[ j ] MO ! Αυτή η εντολή αποθηκεύει τους μέσους όρους σε νέο πίνακα ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ! σε περίπτωση που θα χρειαστούν σε επόμενα ερωτήματα. Σημαντική παρατήρηση !!! Όπως αναφέρθηκε στα προηγούμενα παραδείγματα, σε πολλές ασκήσεις κάποια στοιχεία που υπολογίζουμε είναι απαραίτητο να χρησιμοποιηθούν στα επόμενα ερωτήματα (π.χ. αθροίσματα γραμμών, μέσοι όροι κ.λ.π.). Έτσι είναι απαραίτητο να αποθηκευθούν ώστε να χρησιμοποιηθούν ξανά. Η αποθήκευση των στοιχείων αυτών γίνεται σε νέους μονοδιάστατους πίνακες. Ας δώσουμε ένα παράδειγμα : Σε μια άσκηση δίνονται οι μηνιαίες εισπράξεις 100 καταστημάτων στη διάρκεια 12 μηνών. Έτσι χρειαζόμαστε έναν πίνακα 100x12. Ένα ερώτημα ζητάει να υπολογιστούν οι συνολικές εισπράξεις κάθε καταστήματος. Αυτό σημαίνει άθροισμα της κάθε γραμμής αφού η καθεμιά γραμμή αναφέρεται σε ένα μόνο κατάστημα. Υποθέτουμε ότι σε επόμενο ερώτημα η άσκηση ζητάει το όνομα εκείνου του καταστήματος με τις περισσότερες εισπράξεις. Επομένως χρειάζεται να βρούμε το μέγιστο από τα στοιχεία που υπολογίστηκαν στο προηγούμενο ερώτημα. Για να είναι αυτό δυνατό θα πρέπει να τα έχουμε αποθηκεύσει σε μονοδιάστατο πίνακα 100 θέσεων. Στη συνέχεια ακολουθούν αρκετά παραδείγματα που δείχνουν τη μεθοδολογία κατασκευής νέων πινάκων. Η αποθήκευση μπορεί να γίνει και τον τρόπο που παρουσιάστηκε στο 6.1.9 και 6.1.10. 6.1.11 Υπολογισμός αθροίσματος της κάθε γραμμής πίνακα Β[5,4] και τοποθέτηση σε πίνακα Α[5] ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 5 Α[i]0 ΓΙΑ j ΑΠΟ 1 ΜΕΧΡΙ 4 A[i] A[i] + B[i,j] ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ 6.1.12 Υπολογισμός μέσου όρου της κάθε στήλης πίνακα Β[5,4] και τοποθέτηση σε πίνακα ΜΟ[4] ΓΙΑ j ΑΠΟ 1 ΜΕΧΡΙ 4 MO[ j ] 0 ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 5 MO[ j ] MO[ j ] + B[ i , j ] ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ 149
MO[ j ] MO[ j ] / 5 ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ 6.1.13 Εύρεση ολικού μεγίστου (ελαχίστου) στοιχείου πίνακα A 80x10 MAX A[1,1] ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 80 ΓΙΑ j ΑΠΟ 1 ΜΕΧΡΙ 10 AN A[i,j] > MAX TOTE MAX A[i,j] ΤΕΛΟΣ_ΑΝ ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ 6.1.14 Εύρεση ελαχίστου (μεγίστου) στοιχείου της κάθε στήλης του πίνακα A 80x14 ΓΙΑ j ΑΠΟ 1 ΜΕΧΡΙ 14 MIN A[1,j] ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 80 AN A[i,j] < MIN TOTE MIN A[i,j] ΤΕΛΟΣ_ΑΝ ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ΓΡΑΨΕ ΜΙΝ ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ Με παρόμοιο τρόπο προκύπτει εύρεση μεγίστου – ελαχίστου στοιχείου της κάθε γραμμής ενός πίνακα. Στην περίπτωση που τα μέγιστα και τα ελάχιστα πρέπει να χρησιμοποιηθούν παρακάτω, πρέπει να αποθηκευθούν σε μονοδιάστατο πίνακα. Οι εντολές είναι ίδιες μόνο που η μεταβλητή ΜΙΝ – ΜΑΧ πρέπει να αντικατασταθεί από πίνακα π.χ ΜΙΝ[10] – ΜΑΧ[20]. 6.1.15 Εντοπισμός στοιχείων πίνακα που πληρούν συγκεκριμένη ιδιότητα Πολλές φορές μέσα σε έναν πίνακα πρέπει να αναζητήσουμε κάποια στοιχεία που ικανοποιούν κάποια συγκεκριμένη ιδιότητα. Ο εντοπισμός γίνεται σχεδόν πάντα με τη χρήση της δομής επιλογής (Εντολή ΑΝ). Η ιδιότητα που ζητάμε να πληρούν τα στοιχεία, εκφράζεται μέσα από τη συνθήκη της ΑΝ. Παραδείγματα α.
Άθροισμα όλων των θετικών στοιχείων ενός πίνακα 800Χ100 SUM 0 ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 800 ΓΙΑ j ΑΠΟ 1 ΜΕΧΡΙ 100 ΑΝ Α[i, j] > 0 ΤΟΤΕ SUM SUM + A[i,j] ΤΕΛΟΣ_ΑΝ ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
150
β.
Εμφάνιση στοιχείων του πίνακα Π[10,12] που είναι πολλαπλάσια του 2 ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 10 ΓΙΑ j ΑΠΟ 1 ΜΕΧΡΙ 12 ΑΝ Π[i, j] MOD 2 = 0 ΤΟΤΕ ΓΡΑΨΕ Π[i,j] ΤΕΛΟΣ_ΑΝ ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
γ.
Μέτρημα μηδενικών στοιχείων της κάθε γραμμής πίνακα Π[10,20] και τοποθέτηση των αποτελεσμάτων σε πίνακα S[10] ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 10 S[i]0 ΓΙΑ j ΑΠΟ 1 ΜΕΧΡΙ 20 ΑΝ Π[i, j] = 0 ΤΟΤΕ S[i] S[i] + 1 ΤΕΛΟΣ_ΑΝ ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
6.1.16 Σειριακή αναζήτηση στοιχείου σε δισδιάστατο πίνακα Π, Ν γραμμών και Μ στηλών. DONE ΨΕΥΔΗΣ Γ0 Σ0 Ι1 ΟΣΟ (Ι Τ[J, 5] ΤΟΤΕ ΤΕΜΠ1 Φ[J-1] Φ[J-1] Φ[J] Φ[J] ΤΕΜΠ1 ΓΙΑ Κ ΑΠΟ 1 ΜΕΧΡΙ 40 ΤΕΜΠ2 Τ[J-1 , Κ] Τ[J-1 , Κ] Τ[J , Κ] Τ[J-1 , Κ] ΤΕΜΠ2 ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ΑΛΛΙΩΣ_ΑΝ Τ[J-1 , 5] = Τ[J, 5] ΤΟΤΕ ΑΝ Τ[J-1 , 35] > Τ[J, 35] ΤΟΤΕ ΤΕΜΠ1 Φ[J-1] Φ[J-1] Φ[J] Φ[J] ΤΕΜΠ1 ΓΙΑ Κ ΑΠΟ 1 ΜΕΧΡΙ 40
152
ΤΕΜΠ2 Τ[J-1 , Κ] Τ[J-1 , Κ] Τ[J , Κ] Τ[J-1 , Κ] ΤΕΜΠ2 ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ΤΕΛΟΣ_ΑΝ ΤΕΛΟΣ_ΑΝ ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
Β.
Ερωτήσεις 6.1 Ποιοι είναι οι λόγοι που μας οδηγούν στη χρήση πινάκων ;
6.2 Εξηγείστε τους λόγους για τους οποίους δεν πρέπει να γίνεται άσκοπη χρήση των πινάκων ; (μειονεκτήματα των πινάκων) 6.3 Ποιες είναι οι τυπικές επεξεργασίες μεταξύ πινάκων ; 6.4 Ποιοι είναι οι κυριότεροι αλγόριθμοι αναζήτησης και ποιες είναι οι διαφορές τους ; Γ.
Λυμένα Θέματα 6.5 Μια ομάδα μπάσκετ διαθέτει 10 παίκτες. Να κατασκευάσετε πρόγραμμα το οποίο :
α.
Θα εισάγει τα ονοματεπώνυμα των παικτών σε κατάλληλο πίνακα
β.
Θα εισάγει σε κατάλληλο πίνακα τους πόντους που πέτυχε ο κάθε παίκτης σε καθέναν από τους 15 αγώνες του πρωταθλήματος
γ.
Θα υπολογίζει το πλήθος των πόντων που πέτυχε κάθε παίκτης.
δ.
Θα βρίσκει τον πρώτο σκόρερ της ομάδας
ε.
Θα ταξινομεί τα ονόματα των παικτών και τους πόντους που πέτυχαν σε φθίνουσα σειρά. Σε περίπτωση που 2 παίκτες πέτυχαν τον ίδιο αριθμό πόντων, η ταξινόμηση θα γίνεται με βάση το ονοματεπώνυμο.
στ.
Θα εμφανίζει λίστα ονομάτων και πόντων όσων πέτυχαν πάνω από 200.
Στο συγκεκριμένο πρόγραμμα θα χρειαστούμε αρχικά δύο πίνακες. Ένα μονοδιάστατο για τα ονόματα των παικτών ΟΝΟΜ[10] και έναν δισδιάστατο Π[10,15] που θα περιέχει τους πόντους που πέτυχε ο καθένας σε κάθε αγώνα. Για παράδειγμα στη θέση (3,8) του πίνακα θα υπάρχουν οι πόντοι που πέτυχε ο 3ος παίκτης στον 8ο αγώνα. Στη συνέχεια στο γ. ερώτημα απαραίτητη είναι η χρήση ενός πίνακα μονοδιάστατου ΣΥΝ[10] στον οποίο θα αποθηκεύσουμε τους συνολικούς πόντους κάθε παίκτη. Στο ερώτημα ε. πρέπει να δοθεί ιδιαίτερη προσοχή στη ταξινόμηση των δύο πινάκων. Ας δούμε αναλυτικά τη λύση.
153
ΠΡΟΓΡΑΜΜΑ ΜΠΑΣΚΕΤ ΜΕΤΑΒΛΗΤΕΣ ΧΑΡΑΚΤΗΡΕΣ : ΟΝΟΜ[10] , TEMP2 ΑΚΕΡΑΙΕΣ : Π[10,15] , ΣΥΝ[10] , Ι , J , Κ , ΜΑΧ , TEMP1 ΑΡΧΗ ! α. ερώτημα ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ 10 ΔΙΑΒΑΣΕ ΟΝΟΜ[Ι] ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ! β. ερώτημα ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ 10 ΓΙΑ J ΑΠΟ 1 ΜΕΧΡΙ 15 ΔΙΑΒΑΣΕ Π[Ι, J] ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ! γ. ερώτημα : Άθροισμα ανά γραμμή στον πίνακα Π ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ 10 ΣΥΝ[Ι] 0 ΓΙΑ J ΑΠΟ 1 ΜΕΧΡΙ 15 ΣΥΝ[Ι] ΣΥΝ[Ι] + Π[Ι, J] ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ! δ. ερώτημα : μέγιστο στον πίνακα ΣΥΝ και ταυτόχρονα στον ΟΝ ΜΑΧ ΣΥΝ[1] Κ1 ΓΙΑ Ι ΑΠΟ 2 ΜΕΧΡΙ 10 ΑΝ ΣΥΝ[Ι] > ΜΑΧ ΤΟΤΕ ΜΑΧ ΣΥΝ[Ι] ΚΙ ΤΕΛΟΣ_ΑΝ ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ΓΡΑΨΕ ‘ Ο ΠΑΙΚΤΗΣ ΠΟΥ ΠΕΤΥΧΕ ΤΟΥΣ ΠΕΡΙΣΣΟΤΕΡΟΥΣ ΠΟΝΤΟΥΣ ΕΙΝΑΙ & Ο ‘, ΟΝΟΜ[Κ] ! ε. ερώτημα : φυσαλίδα στους 2 πίνακες ΓΙΑ Ι ΑΠΟ 2 ΜΕΧΡΙ 10 ΓΙΑ J ΑΠΟ 10 ΜΕΧΡΙ Ι ΜΕ_ΒΗΜΑ -1 ΑΝ ΣΥΝ[J-1] < ΣΥΝ[J] ΤΟΤΕ TEMP1 ΣΥΝ[J-1] ΣΥΝ[J-1] ΣΥΝ[J] ΣΥΝ[J] TEMP1 TEMP2 ΟΝΟΜ[J-1] ΟΝΟΜ[J-1] ΟΝΟΜ[J] ΟΝΟΜ[J] TEMP2 ΑΛΛΙΩΣ_ΑΝ ΣΥΝ[J-1] = ΣΥΝ[J] ΤΟΤΕ ΑΝ ΟΝΟΜ[J-1] > ΟΝΟΜ[J] TEMP1 ΣΥΝ[J-1] ΣΥΝ[J-1] ΣΥΝ[J]
ΤΟΤΕ
154
ΣΥΝ[J] TEMP1 TEMP2 ΟΝΟΜ[J-1] ΟΝΟΜ[J-1] ΟΝΟΜ[J] ΟΝΟΜ[J] TEMP2 ΤΕΛΟΣ_ΑΝ ΤΕΛΟΣ_ΑΝ ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ! στ. ερώτημα ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ 10 ΑΝ ΣΥΝ[Ι] > 200 ΤΟΤΕ ΓΡΑΨΕ ΟΝΟΜ[Ι] ΤΕΛΟΣ_ΑΝ ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
, ΣΥΝ[Ι]
6.6 Ας υποθέσουμε ότι έχουμε ένα πίνακα Α[10,20] που περιέχει 200 φυσικούς. Θα δημιουργήσουμε 2 μονοδιάστατους 200 θέσεων Β και Γ. Ο Β θα περιέχει τους φυσικούς που είναι > 50 και ο Γ τους υπόλοιπους. Όπως αναφέρθηκε στο κεφάλαιο 5 μια σημαντική διεργασία των πινάκων είναι ο διαχωρισμός. Δηλαδή δοθέντος ενός πίνακα που περιέχει κάποιους αριθμούς να τον χωρίσουμε σε δύο ξεχωριστούς πίνακες ανάλογα με το αν οι αριθμοί πληρούν μια ιδιότητα. Πρέπει να σημειωθεί ότι καθένας από τους νέους πίνακες θα έχει διάσταση ίση με τον αρχικό για να καλύψουμε την περίπτωση ότι όλοι οι αριθμοί πληρούν την ισότητα που απαιτήσαμε και πρέπει να καταχωρηθούν στον ένα πίνακα. Ας δούμε τον αλγόριθμο. Αλγόριθμος Διαχωρισμός Δεδομένα // Α // ! Μηδενισμός των πινάκων Β και Γ ( μπορεί και να παραληφθεί ) Για Ι από 1 μέχρι 200 Β[Ι] 0 Γ[Ι] 0 Τέλος_επανάληψης ! Οι αριθμοί θα τοποθετούνται σε διαδοχικές θέσεις στους πίνακες Β και Γ. κ0 λ0 Για i από 1 μέχρι 10 Για j από 1 μέχρι 20 Αν Α[i , j] > 50 τότε κ κ+1 Β[κ] Α[i , j] αλλιώς λ λ+1 Γ[λ] Α[i , j] Τέλος_αν Τέλος_επανάληψης Τέλος_επανάληψης Τέλος Διαχωρισμός 155
6.7 Έστω ένας πίνακας Α[100,10] που μπορεί να δεχθεί ακέραιους και ένας Ο[100] που μπορεί να περιέχει χαρακτήρες. Να γράψετε πρόγραμμα στη «ΓΛΩΣΣΑ» που θα εκτελεί τα παρακάτω : α.
Να βρίσκει μέγιστο ανά γραμμή στον Α και να το εμφανίζει
β.
Να βρίσκει μέσο όρο ανά στήλη στον Α και να το τοποθετεί σε κατάλληλο πίνακα.
γ.
Να βρίσκει άθροισμα ανά γραμμή στον Α και να το τοποθετεί σε πίνακα.
δ.
Να βρίσκει ελάχιστο στον πίνακα του γ. ερωτήματος και να εμφανίζει την αντίστοιχη τιμή του Ο στη θέση αυτή.
ε.
Να ταξινομεί τους πίνακες Ο και αυτόν του γ. ερωτήματος αλφαβητικά. Η παραπάνω άσκηση μας βοηθά στην εξάσκηση πολλών βασικών διεργασιών των δισδιάστατων πινάκων. Ας μελετήσουμε τη λύση της.
α.
β.
γ.
ΠΡΟΓΡΑΜΜΑ ΔΙΕΡΓΑΣΙΕΣ ΜΕΤΑΒΛΗΤΕΣ ΑΚΕΡΑΙΕΣ : Α[100,10] , Ι , J , ΜΙΝ , ΑΘΡ[100] , ΜΕΣΟΣ , Τ2 ΧΑΡΑΚΤΗΡΕΣ : Ο[100] , Τ1 ΠΡΑΓΜΑΤΙΚΕΣ : ΜΟ[10] ΑΡΧΗ ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ 100 ΔΙΑΒΑΣΕ Ο[Ι] ΓΙΑ J ΑΠΟ 1 ΜΕΧΡΙ 100 ΔΙΑΒΑΣΕ Α[I,J] ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ 100 ΜΑΧ Α[Ι,1] ΓΙΑ J ΑΠΟ 1 ΜΕΧΡΙ 10 ΑΝ Α[Ι,J] > MAX TOTE ΓΡΑΨΕ ΜΑΧ ΤΕΛΟΣ_ΑΝ ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ΓΙΑ J ΑΠΟ 1 ΜΕΧΡΙ 10 ΜΕΣΟΣ 0 ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ 100 ΜΕΣΟΣ ΜΕΣΟΣ + Α[Ι,J] ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ΜΟ[J] ΜΕΣΟΣ/100 ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ 100 ΑΘΡ[Ι] 0 ΓΙΑ J ΑΠΟ 1 ΜΕΧΡΙ 10 ΑΘΡ[Ι] ΑΘΡ[Ι] + Α[Ι, J] ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
156
δ.
ε.
ΜΙΝ ΑΘΡ[1] Κ1 ΓΙΑ Ι ΑΠΟ 2 ΜΕΧΡΙ 100 ΑΝ ΑΘΡ[Ι] < ΜΙΝ ΤΟΤΕ ΜΙΝ ΑΘΡ[Ι] ΚΙ ΤΕΛΟΣ_ΑΝ ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ΓΡΑΨΕ Ο[Κ] ΓΙΑ Ι ΑΠΟ 2 ΜΕΧΡΙ 100 ΓΙΑ J ΑΠΟ 100 ΜΕΧΡΙ Ι ΜΕ_ΒΗΜΑ -1 ΑΝ Ο[J-1] > Ο[J] ΤΟΤΕ Τ1 Ο[J-1] Ο[J-1] Ο[J] Ο[J] Τ1 Τ2 ΑΘΡ[J-1] ΑΘΡ[J-1] ΑΘΡ[J] ΑΘΡ[J] Τ2 ΤΕΛΟΣ_ΑΝ ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
Δ.
Θέματα για λύση
1.
ΘΕΩΡΗΤΙΚΑ ΘΕΜΑΤΑ
6.8 Για κάθε μια από τις παρακάτω προτάσεις να σημειώσετε (Σ) αν αυτή είναι σωστή και (Λ) αν αυτή είναι λάθος. α.
Οι δομές δεδομένων διακρίνονται σε στατιστικές και δυναμικές.
β.
Η θέση ενός στοιχείου σ' έναν δισδιάστατο πίνακα καθορίζεται από δυο αριθμούς.
γ.
Υπερχείλιση συμβαίνει όταν γίνει απώθηση σε γεμάτη στοίβα.
δ.
Η σειριακή αναζήτηση και η δυαδική αναζήτηση μπορούν να χρησιμοποιηθούν σε όλους τους μονοδιάστατους πίνακες.
ε.
Η ταξινόμηση είναι χρήσιμη διαδικασία, γιατί έτσι εκτελείται γρηγορότερα η αναζήτηση.
6.9 Για κάθε μια από τις παρακάτω προτάσεις να σημειώσετε (Σ) αν αυτή είναι σωστή και (Λ) αν αυτή είναι λάθος. α.
Όταν η αναζήτηση πραγματοποιείται σε ταξινομημένο πίνακα, τότε μπορεί να χρησιμοποιηθεί η δυαδική αναζήτηση.
β.
Η στοίβα και η ουρά είναι δυναμικές δομές δεδομένων.
γ.
Η εντολή άθροισμα ΠΙΝ τοποθετεί το άθροισμα των στοιχείων του πίνακα ΠΙΝ στην ομώνυμη μεταβλητή.
157
δ.
Δυο από τις βασικές λειτουργίες επί των δομών δεδομένων είναι η ώθηση και η απώθηση.
ε.
Δομή δεδομένων είναι ένα σύνολο αποθηκευμένων δεδομένων όπου μπορούμε να εφαρμόσουμε μια σειρά λειτουργιών.
6.10 Ποια θα είναι η τελική μορφή που θα πάρει ο πίνακας Α που κατασκευάζει το παρακάτω τμήμα αλγορίθμου. Για i από 1 μέχρι 5 Για j από 1 μέχρι 5 Αν (i+j) mod 2 = 0 τότε Α[i,j] (i+j) div 2 Αλλιώς Α[i,j] (i+j)*2 Τέλος_αν Τέλος_επανάληψης Τέλος_επανάληψης
σ γ
η
1
η
2
η
3
η
4
η
5
η
1 η 2 η 3 η 4 η 5
6.11 Δίνεται ο πίνακας Α (σχήμα 1) και το παρακάτω τμήμα προγράμματος: sum ← 0 ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ 5 ΓΙΑ j ΑΠΟ 1 ΜΕΧΡΙ 5 ΑΝ i j TOTE sum ← sum + A[i,j] A[i,j] 0 AΛΛΙΩΣ A[i,j] 1 ΤΕΛΟΣ_ΑΝ ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ΓΡΑΨΕ sum Αυτό το τμήμα προγράμματος χρησιμοποιεί τον πίνακα Α, με τις τιμές των στοιχείων του, όπως αυτές φαίνονται στο σχήμα 1. 1 6 4 3 0
-1 2 9 5 1
7 0 3 -4 2
1 8 3 2 0
1 -2 0 1 1
Σχήμα 1: Πίνακας Α
α.
Να σχεδιάσετε στο τετράδιό σας τον πίνακα Α με τις τιμές που θα έχουν τα στοιχεία του, μετά την εκτέλεση του τμήματος προγράμματος.
β.
Ποια είναι η τιμή της μεταβλητής sum που θα εμφανιστεί ;
158
6.12 Να γράψετε τις εντολές που δημιουργούν τους παρακάτω πίνακες :
0
1
2
1 2 2 2
0 1 2 2
0 0 1 2
0 0 0 1
3
4
5
6
7
8
9
6.13 Να αναπτύξετε ξεχωρίστό τμήμα αλγορίθμου για καθεμιά από τις παρακάτω διεργασίες πινάκων α.
Εύρεση μεγίστου ανά γραμμή πίνακα Α[5,4] και τοποθέτηση σε κατάλληλο πίνακα.
β.
Υπολογισμός και εκτύπωση μέσου όρου κάθε στήλης, πίνακα Α[8,12] .
γ.
Υπολογισμός του μέσου όρου των ελαχίστων των γραμμών ενός πίνακα Α[35,10]
δ.
Αλφαβητική ταξινόμηση πίνακα χαρακτήρων Α[120]
2.
ΘΕΜΑΤΑ ΠΟΥ ΖΗΤΟΥΝ ΕΙΣΑΓΩΓΗ – ΕΞΑΓΩΓΗ ΣΤΟΙΧΕΙΩΝ
6.14 Να γραφεί αλγόριθμος που θα εμφανίζει τα στοιχεία ενός δεδομένου πίνακα Α 5×4 κατά γραμμές. 6.15 Να γραφεί αλγόριθμος που θα εμφανίζει τα στοιχεία ενός δεδομένου πίνακα Ν×Μ κατά στήλες.
6.16 Να γραφεί πρόγραμμα στη «ΓΛΩΣΣΑ» το οποίο : α.
Θα διαβάζει τα στοιχεία του πίνακα ακεραίων Α[3,9] κατά στήλες.
β.
Θα εμφανίζει τα στοιχεία του κατά γραμμές.
6.17 Να γραφεί πρόγραμμα στη «ΓΛΩΣΣΑ» το οποίο : α.
Θα διαβάζει τα στοιχεία ενός πίνακα χαρακτήρων Β[4,12] κατά γραμμές.
β.
Θα εμφανίζει τα στοιχεία μόνο της 3ης γραμμής.
6.18 Να γραφεί πρόγραμμα στη «ΓΛΩΣΣΑ» το οποίο : α.
Θα διαβάζει τα στοιχεία ενός πίνακα με ακεραίους Γ[12,10].
β.
Θα εμφανίζει τα πολλαπλάσια του 3 που βρίσκονται στις περιττές στήλες.
6.19 Να γραφεί αλγόριθμος που θα εισάγει στοιχεία σε έναν πίνακα 2×6 και στη συνέχεια θα εμφανίζει κατά στήλες μόνο όσα είναι μεγαλύτερα του μηδενός.
159
3.
ΘΕΜΑΤΑ ΠΟΥ ΖΗΤΟΥΝ ΑΘΡΟΙΣΜΑΤΑ – ΜΕΣΟΥΣ ΟΡΟΥΣ Κ.Λ.Π.
6.20 Να γραφεί αλγόριθμος που θα διαβάζει έναν πίνακα 10×10 πραγματικών. Στη συνέχεια θα υπολογίζει και θα εμφανίζει το άθροισμα των στοιχείων που βρίσκονται στις θέσεις που έχουν περιττό άθροισμα γραμμής και στήλης .
6.21 Να γράψετε πρόγραμμα στη «ΓΛΩΣΣΑ» που θα διαβάζει τα ονόματα και τα μηνιαία κέρδη 50 εταιρειών πληροφορικής για ένα έτος και στη συνέχεια θα εμφανίζει τις 3 κατά μέσο όρο πιο κερδοφόρες. 6.22 Ένα κατάστημα πώλησης αυτοκινήτων εμπορεύεται 5 μάρκες αυτοκινήτων για κάθε μάρκα 4 μοντέλα. Οι τιμές αποθηκεύονται σε έναν πίνακα 5×4 με όνομα ΤΙΜΕΣ. Να γραφεί αλγόριθμος που θα εκτελεί τα παρακάτω : α.
Θα εμφανίζει το μήνυμα ‘Δώστε τιμές αυτοκινήτων’ και στη συνέχεια θα τοποθετεί στον πίνακα την τιμή κάθε αυτοκινήτου.
β.
Θα εμφανίζει το μέσο όρο της τιμής πώλησης για κάθε μάρκα αυτοκινήτου καθώς επίσης και το μέσο όρο για όλα τα αυτοκίνητα.
6.23 Να γραφεί πρόγραμμα στη «ΓΛΩΣΣΑ» που θα τοποθετεί τιμές σ’ ένα πίνακα Γ[4,5]. Μετά θα υπολογίζει το άθροισμα κάθε γραμμής και κάθε στήλης και θα τα τοποθετεί στους πίνακες Ε και Ζ αντίστοιχα.
6.24 Εν όψει της προεκλογικής περιόδου μια εταιρεία δημοσκοπήσεων έκανε μια έρευνα σε 5 διαφορετικές περιοχές μιας πόλης για λογαριασμό των κομμάτων Α και Β. Τα αποτελέσματα υπάρχουν σε ένα πίνακα Ψ[ 2 , 5] Να γραφεί αλγόριθμος που θα υπολογίζει τα παρακάτω : α.
Θα υπολογίζει το σύνολο των ερωτηθέντων.
β.
Θα υπολογίζει το ποσοστό που συγκεντρώνει το κόμμα Α και το κόμμα Β.
γ.
Θα κάνει πρόβλεψη για το νικητή των επόμενων εκλογών τυπώνοντας κατάλληλα μηνύματα.
4.
ΘΕΜΑΤΑ ΠΟΥ ΖΗΤΟΥΝ ΑΛΛΕΣ ΔΙΕΡΓΑΣΙΕΣ
6.25 Δίνεται πίνακας Π δύο διαστάσεων, που τα στοιχεία του είναι ακέραιοι αριθμοί με Ν γραμμές και Μ στήλες. Να αναπτύξετε αλγόριθμο που θα υπολογίζει το μέγιστο στοιχείο του πίνακα. 6.26 Να γραφεί αλγόριθμος που θα δημιουργεί πίνακα 50x100 και θα τον γεμίζει με στοιχεία ως εξής. Κάθε στοιχείο θα είναι το τετράγωνο της διαφοράς του Ι με το (J mod 2). Στη συνέχεια βρείτε μέγιστο και ελάχιστο του πίνακα.
160
6.27 α. Να τροποποιήσετε τον αλγόριθμο σειριακής αναζήτησης ώστε να αναζητά το κλειδί 999 στις άρτιες γραμμές και περιττές στήλες δισδιάστατου πίνακα Α[1000,500]. β.
Να κατασκευάσετε τμήμα αλγορίθμου που θα ταξινομεί την κάθε γραμμή ενός δοσμένου πίνακα Α[20,32] σε αύξουσα σειρά.
6.28 Να γραφτεί αλγόριθμος που θα υλοποιεί το γινόμενο των αντίστοιχων στοιχείων δύο πινάκων ΝxM, καθώς επίσης και το άθροισμα τους. Στη συνέχεια θα εμφανίζει τους πίνακες που προέκυψαν.
6.29 Να γίνει αλγόριθμος ο οποίος θα διαβάζει έναν πίνακα Α[30,80] και στη συνέχεια : α.
Να βρίσκει το μέσο όρο των ελαχίστων της κάθε στήλης.
β.
Να διαβάζει ένα κλειδί (key) και θα εντοπίζει αν αυτό υπάρχει στον πίνακα. Σε περίπτωση που υπάρχει θα εμφανίζει τη γραμμή και τη στήλη που βρέθηκε.
6.30 Δίνεται ένας πίνακας ΣΤΟΙΧΕΙΑ[100,2] που περιέχει τα ονοματεπώνυμα 100 υπόπτων που υπάρχουν στα αρχεία ενός αστυνομικού τμήματος. Στην 1η στήλη περιέχονται τα ονόματα ενώ στη 2η τα επώνυμα. Να γίνει αλγόριθμος που θα εμφανίζει ταξινομημένα σε αλφαβητική σειρά όλα τα ονοματεπώνυμα. Σε περίπτωση που δύο ύποπτοι έχουν ίδιο επώνυμο η ταξινόμηση θα γίνεται με βάση το μικρό όνομα
6.31 Να γίνει αλγόριθμος ο οποίος : α.
Να εισάγει στοιχεία σε πίνακες ΑΤ[40] και Ζ[40,50].
β.
Να βρίσκει το μέσο όρο της κάθε γραμμής του Ζ.
γ.
Να βρίσκει την τιμή του ΑΤ που αντιστοιχεί στο μικρότερο μέσο όρο του β ερωτήματος.
δ.
Να ταξινομεί τους δύο πίνακες σε αύξουσα σειρά με βάση τα στοιχεία του πίνακα ΑΤ.
6.32 Δίνονται οι πίνακες Ο[100] που περιέχει ονόματα 100 επιβατών μιας αμαξοστοιχείας και ο πίνακας Ζ[100,3] που περιέχει την ηλικία, τον κωδικό δρομολογίου και την τιμή του εισιτηρίου του καθενός. Να γίνει αλγόριθμος ο οποίος : α.
Να διαβάζει τους πίνακες.
β.
Να ταξινομεί σε αύξουσα σειρά όλα τα στοιχεία με βάση τον κωδικό δρομολογίου.
γ.
Να τυπώνει λίστα όλων των στοιχείων.
161
6.33 Να γραφτεί πρόγραμμα στη «ΓΛΩΣΣΑ» το οποίο θα εκτελεί τις παρακάτω λειτουργίες. α.
Τοποθετεί τις 20 τιμές και τις συχνότητες μιας μεταβλητής x i σε έναν δισδιάστατο πίνακα κατάλληλων διαστάσεων.
β.
Υπολογίζει και εμφανίζει τα ν,
γ.
Υπολογίζει και εμφανίζει το
δ.
Υπολογίζει συντελεστή μεταβλητότητας και βγάζει συμπεράσματα ως προς την ομοιογένεια του δείγματος τυπόνωντας και μηνύματα.
∑x
_
i
⋅ ν i και στη συνέχεια τη μέση τιμή x . _
∑ ( xi − x )2 ⋅ ν i και στη συνέχεια τη διακύμανση S 2 .
6.34 Να γίνει αλγόριθμος που θα υλοποιεί τη διάσπαση ενός πίνακα Α[50,40] σε τρείς μονοδιάστατους πίνακες ώστε ο πρώτος να περιέχει τους άρτιους, ο δεύτερος τους αρνητικούς και ο τρίτος τα πολλαπλάσια του 5. 6.35 Να γίνει αλγόριθμος ο οποίος : α.
Θα διαβάζει έναν τρισδιάστατο πίνακα Α[5,12,30] ο οποίος περιέχει τις ημερήσιες εισπράξεις 5 καταστημάτων μιας εταιρείας για κάθε μηνα στη διάρκεια ενός έτους.
β.
Θα εμφανίζει τις εισπράξεις του 3ου καταστήματος για το μήνα Απρίλιο.
γ.
Θα εμφανίζει ποια καταστήματα, σε ποιές μέρες και σε ποιο μήνα έκαναν εισπράξεις πάνω από 1000 €.
δ.
Θα υπολογίζει τις συνολικές εισπράξεις του κάθε καταστήματος για κάθε μήνα χωριστά.
ε.
Θα υπολογίζει για κάθε κατάστημα τη μέση είσπραξη του μήνα Ιουνίου.
6.36 Δίνεται ένας πίνακας Α[1000,2] που περιέχει τα ονόματα και τα επώνυμα 1000 πελατών μιας τράπεζας στην πρώτη και δεύτερη στήλη αντίστοιχα. Να γίνει αλγόριθμος ο οποίος : α.
Θα ταξινομεί τον πίνακας σε αλφαβητική σειρά με βάση το επώνυμο.
β.
Θα εμφανίζει σε μια γραμμή το όνομα και το επώνυμο όσων έχουν επωνυμο «Μανιατέας» .
5.
ΘΕΜΑΤΑ ΠΟΥ ΖΗΤΟΥΝ ΣΥΝΔΥΑΣΜΟ ΔΙΕΡΓΑΣΙΩΝ
6.37 Να γραφτεί αλγόριθμος ο οποίος θα κατασκευάζει έναν πίνακα 5x5 με τον 1 ακόλουθο τρόπο. Στις θέσεις που i = j (κύρια διαγώνιος) θα τοποθετεί το στοιχείο i 2 − 2 . j Στις θέσεις που i > j θα τοποθετεί το 5 και στις υπόλοιπες θέσεις το 1. Στη συνέχεια θα βρίσκει και θα εμφανίζει μέσο όρο ανά γραμμή και μέγιστο στοιχείο ανά στήλη.
162
6.38 Να γίνει αλγόριθμος που θα διαβάζει 2 αριθμητικούς πίνακες Α[300] και Β[10,300] και στη συνέχεια : α.
Θα βρίσκει και θα εμφανίζει το πλήθος των θετικών αριθμών που υπάρχουν στον Β.
β.
Θα προσδιορίζει το πλήθος των μηδενικών ανά στήλη του Β και θα τα τοποθετεί σε κατάλληλο μονοδιάστατο πίνακα.
γ.
Θα βρίσκει το μέγιστο του Α και το ελάχιστο του πίνακα που δημιουργήσατε και θα τα συγκρίνει τυπώνοντας τα κατάλληλα μηνύματα.
6.39 Σε μια ομάδα μπάσκετ ο προπονητής αποφάσισε να κρατά στον ηλεκτρονικό υπολογιστή, πίνακα με τους πόντους που πέτυχαν οι 12 παίκτες που έχει στους 18 αγώνες της αγωνιστικής περιόδου, ώστε να μπορεί να επεξεργάζεται τα δεδομένα αυτά. Έτσι ανέθεσε σε εσάς να αναπτύξετε τον αλγόριθμο που θέλει. Από τις απαιτήσεις του προπονητή από τον αλγόριθμο προκύπτει ότι ο αλγόριθμος που θα κάνετε θα πρέπει: α.
Να διαβάζει το όνομα του κάθε παίκτη και τους πόντους που πέτυχε σε κάθε αγώνα κατά την προηγούμενη αγωνιστική περίοδο.
β.
Να εμφανίζει το όνομα του παίκτη με τον μεγαλύτερο μέσο όρο πόντων.
γ.
Να εμφανίζει το όνομα του κάθε παίκτη και τον μεγαλύτερο αριθμό πόντων που πέτυχε σε ένα παιχνίδι από όλη την αγωνιστική περίοδο
6.40 Να γραφεί πρόγραμμα στη «ΓΛΩΣΣΑ» το οποίο : α.
Θα διαβάζει τα στοιχεία ενός δισδιάστατου πίνακα ακεραίων, table με 15 γραμμές και 8 στήλες.
β.
Θα βρίσκει το μέγιστο στοιχείο κάθε γραμμής.
γ.
Θα υπολογίζει το μέσο όρο των μεγίστων.
δ.
Θα τυπώνει το μέσο όρο των στοιχείων του πίνακα που είναι μεγαλύτερα από τα 5/6 του μέσου όρου των μεγίστων.
6.41 Να γραφεί πρόγραμμα στη «ΓΛΩΣΣΑ» το οποίο : α.
Αποθηκεύει τα ονόματα των 5 πόλεων σε έναν μονοδιάστατο πίνακα.
β.
Αποθηκεύει τις τιμές 10 διαφορετικών προϊόντων στις 5 διαφορετικές πόλεις σε κατάλληλο δισδιάστατο πίνακα.
γ.
Να υπολογίζει και να εμφανίζει το μέσο όρο τιμής κάθε προϊόντος και στις 5 πόλεις.
δ.
Να υπολογίζει και να εμφανίζει το μέσο όρο κόστους των προϊόντων σε κάθε πόλη.
ε.
Να υπολογίζει και να εμφανίζει το όνομα της ακριβότερης πόλης κατά μέσο όρο.
163
6.42 Να γίνει αλγόριθμος ο οποίος : α.
Θα εισάγει τα ονόματα 50 αθλητών σε κατάλληλο πίνακα.
β.
Θα εισάγει τις 5 ρίψεις του καθενός σε κατάλληλο πίνακα.
γ.
Θα ταξινομεί σε άυξουσα σειρά τις ρίψεις του κάθε αθλητή και στη συνέχεια θα εμφανίζει το όνομα του καθενός και τις 3 καλύτερες ρίψεις που έκανε. Σημείωση : Να εκτυπώνονται σε μια γραμμή.
δ.
Θα εμφανίζει το όνομα του αθλητή με την κατά μέσο όρο καλύτερη ρίψη. Θεωρήστε ότι είναι μόνο ένας.
6.43 Δίνονται δύο πίνακες ακεραίων Α[310] και Β[310,5]. Να γίνει αλγόριθμος ο οποίος θα εκτελεί τα παρακάτω : α.
Θα εξετάζει αν ο Α περιέχει τα ιδία στοιχεία με την 1η στήλη του Β και να εμφανίζει κατάλληλα μηνύματα σε κάθε περίπτωση.
β.
Θα υπολογίζει το μέσο όρο της κάθε στήλης.
γ.
Θα υπολογίζει το ελάχιστο στοιχείο της κάθε γραμμής και να το τοποθετεί σε κατάλληλο πίνακα Γ.
δ.
Θα συγκρίνει τους πίνακες Α και Γ αν περιέχουν ίδια στοιχεία.
6.44 Μια αλυσίδα ξενοδοχείων έχει 5 ξενοδοχεία. Σε ένα μονοδιάστατο πίνακα Ξ[5] καταχωρούνται τα ονόματα των ξενοδοχείων. Σε ένα άλλο δισδιάστατο πίνακα ΕΙΣ[5,12] καταχωρούνται οι εισπράξεις κάθε ξενοδοχείου για κάθε μήνα του έτους 2002, έτσι ώστε στην i γραμμή καταχωρούνται οι εισπράξεις του i ξενοδοχείου. Να αναπτύξετε πρόγραμμα στη «ΓΛΩΣΣΑ», το οποίο: α.
Διαβάζει τα στοιχεία των δύο πινάκων .
β.
Εκτυπώνει το όνομα κάθε ξενοδοχείου και τις ετήσιες εισπράξεις του για το έτος 2002.
γ.
Εκτυπώνει το όνομα του ξενοδοχείου με τις μεγαλύτερες ετήσιες εισπράξεις.
6.45 Κατά τη διάρκεια Διεθνών Αγώνων Στίβου στον ακοντισμό έλαβαν μέρος δέκα (10) αθλητές. Κάθε αθλητής έκανε έξι (6) έγκυρες ρίψεις που καταχωρούνται ως επιδόσεις σε μέτρα. Να αναπτύξετε πρόγραμμα, το οποίο: α.
Εισάγει σε πίνακα δύο διαστάσεων τις επιδόσεις όλων των αθλητών.
β.
Υπολογίζει και καταχωρεί σε μονοδιάστατο πίνακα την καλύτερη από τις επιδόσεις κάθε αθλητή.
γ.
Ταξινομεί τις καλύτερες επιδόσεις των αθλητών που καταχωρήθηκαν στο μονοδιάστατο πίνακα.
δ.
Εμφανίζει την επίδοση του αθλητή που πήρε το χάλκινο μετάλλιο (τρίτη θέση).
164
6.46 Στις μαθητικές εκλογές του σχολείου σας, αναλάβατε να φτιάξετε ένα πρόγραμμα στη «ΓΛΩΣΣΑ» για την ευκολότερη καταμέτρηση των ψήφων. Το σχολείο σας έχει συνολικά 500 παιδιά εκ των οποίων τα 32 έθεσαν υποψηφιότητα. Δεδομένου ότι ο κάθε υποψήφιος έχει έναν κωδικό αριθμό από το 1 έως το 32, το πρόγραμμα θα πρέπει να λειτουργεί ως εξής : α.
Να διαβάζει για καθέναν από τους ψηφοφόρους τον κωδικό του υποψηφίου που ψήφισε ελέγχοντας την εγκυρότητα ώστε να είναι από 1 μέχρι 32.
β.
Να υπολογίζει και να εμφανίζει τον κωδικό αριθμό του υποψηφίου που πήρε τους περισσότερους ψήφους.
6.47 Μια αλυσίδα εστιατορίων γρήγορης εξυπηρέτησης έχει 20 καταστήματα σε πόλεις όλης της Ελλάδας. Να γράψετε πρόγραμμα που : α.
Θα αποθηκεύει σε μονοδιάστατο πίνακα τα ονόματα των πόλεων στις οποίες υπάρχει κατάστημα και τις ημερήσιες εισπράξεις κάθε καταστήματος για ένα μήνα σε πίνακα 2 διαστάσεων.
β.
Στη συνέχεια πρέπει να υπολογίζει το μηνιαίο τζίρο της επιχείρησης ανά κατάστημα και συνολικά.
γ.
Τέλος θα τυπώνει στην οθόνη μια ταξινομημένη σε φθίνουσα σειρά λίστα της μορφής « Οι εισπράξεις του καταστήματος ΧΧΧΧ είναι ΧΧΧΧ» .
6.48 Μια τράπεζα απασχολεί 200 υπαλλήλους και τρία από τα στοιχεία που διαθέτει είναι τα ονόματα , οι μισθοί τους σε € και η αποδοτικότητα τους με άριστα το 10. Να γραφτεί αλγόριθμος που : α.
Θα εμφανίζει τους 10 μικρότερους μισθούς μαζί με τα ονόματα των υπαλλήλων που έχουν αυτούς τους μισθούς.
β.
Και στη συνέχεια να βρίσκει ποιος από τους 200 υπαλλήλους έχει την καλύτερη απόδοση.
6.49 Μια εταιρία διεξήγαγε διαγωνισμό για τη στελέχωση του προσωπικού της. Στο διαγωνισμό έλαβαν μέρος 500 υποψήφιοι, οι οποίοι διαγωνίστηκαν σε 5 μαθήματα. Η βαθμολογία κάθε υποψηφίου έγινε σε κλίμακα 1 έως 100. Τελικά προσλήφθηκαν εκείνοι των οποίων ο μέσος όρος που συγκέντρωσαν στα 5 μαθήματα ήταν μεγαλύτερος από τα 3/5 του μέσου όρου. Να γίνει πρόγραμμα στη «ΓΛΩΣΣΑ» το οποίο να διαβάζει τους βαθμούς των διαγωνιζομένων, να τους τοποθετεί σε έναν πίνακα (500 x 5) και να εμφανίζει το πλήθος των υπαλλήλων που προσλήφθηκαν.
6.50 Να γραφτεί αλγόριθμος ο οποίος : α.
Θα ζητάει τα ονόματα 10 εταιρειών και 40 ημερήσιες εισπράξεις καθεμιάς.
β.
Θα εμφανίζει το σύνολο κάθε εταιρείας.
γ.
Θα εμφανίζει το σύνολο κάθε μέρας.
165
δ.
Θα βρίσκει και θα εμφανίζει το όνομα της χειρότερης εταιρείας.
ε.
Θα βρίσκει και θα εμφανίζει τις 5 χειρότερες εισπράξεις καθώς επίσης και σε ποιες μέρες εμφανίστηκαν.
6.51 Να γράψετε αλγόριθμο ο οποίος : α.
Θα εισάγει ακέραιους σε πίνακα 20x50.
β.
Θα υπολογίζει το πλήθος των αρνητικών αριθμών.
γ.
Θα υπολογίζει και θα εμφανίζει το γινόμενο των πολλαπλασίων του 4.
δ.
Θα βρίσκει το άθροισμα όλων των στοιχείων του πίνακα και θα το συγκρίνει με το παραπάνω γινόμενο εμφανίζοντας κατάλληλο μήνυμα.
6.52 Μια ομάδα ποδοσφαίρου διαθέτει 20 παίκτες. Να κατασκευάσετε πρόγραμμα το οποίο : α.
Θα εισάγει τα ονοματεπώνυμα των παικτών σε κατάλληλο πίνακα.
β.
Θα εισάγει σε κατάλληλο πίνακα τα γκολ που πέτυχε ο κάθε παίχτης σε καθέναν από τους 32 αγώνες του πρωταθλήματος.
γ.
Θα υπολογίζει το πλήθος των γκολ που πέτυχε κάθε παίχτης.
δ.
Θα βρίσκει τον πρώτο σκόρερ της ομάδας.
ε.
Θα ταξινομεί τα ονόματα των παιχτών και τα γκολ που πέτυχαν σε φθίνουσα σειρά. Σε περίπτωση που 2 παίχτες πέτυχαν τον ίδιο αριθμό γκολ, η ταξινόμηση θα γίνεται με βάση το ονοματεπώνυμο.
στ.
Θα εμφανίζει τα παραπάνω ταξινομημένα στοιχεία.
6.53 Ένα κατάστημα φωτογραφικών ειδών έχει προς πώληση 200 διαφορετικά μοντέλα ψηφιακών φωτογραφικών μηχανών. Να γράψετε αλγόριθμο ο οποίος : α.
θα διαβάζει τα μοντέλα των ψηφιακών και θα τα αποθηκεύει σε κατάλληλο πίνακα.
β.
θα διαβάζει τα mega pixels της κάθε μιας , την τιμή της σε € και θα τα αποθηκεύει σε δισδιάστατο πίνακα
γ.
θα ταξινομεί σε φθίνουσα σειρά ως προς την τιμή της μηχανής.
δ.
θα διαβάζει το μοντέλο μιας μηχανής και θα εμφανίζει τα mega pixel της και την τιμή της.
6.54 Η ΕΜΥ μελετά τις Θερμοκρασίες σε διάφορες πόλεις της Ελλάδας, Καταχωρούνται λοιπόν τα ονόματα των 200 πόλεων που συμμετέχουν στην έρευνα καθώς και οι θερμοκρασίες των πόλεων αυτών τον μήνα που πέρασε (30 ημέρες). Να αναπτύξετε αλγόριθμο που:
166
α.
Θα διαβάζει τα απαραίτητα στοιχεία.
β.
Θα εντοπίζει και θα εκτυπώνει το όνομα της κατά μέσο όρο θερμότερης πόλης του μήνα.
γ.
Θα εντοπίζει για κάθε πόλη τις μέρες του μήνα όπου υπάρχει θερμοκρασία μεγαλύτερη από την προηγούμενη και την επόμενη ημέρα.
δ.
Θα βρίσκει σε ποιες πόλεις παρουσιάστηκε τουλάχιστον 10 φορές θερμοκρασία μεγαλύτερη από 22°C.
6.55 Να αναπτύξετε αλγόριθμο ο οποίος, με δεδομένα τα στοιχεία δύο ίδιων διαστάσεων δισδιάστατων πινάκων με αριθμούς, θα εξετάζει αν οι πίνακες είναι ίδιοι. Στην περίπτωση που δεν είναι ίδιοι, θα εκτυπώνει το ποσοστό των στοιχείων που είναι ίσα
6.56 Η εταιρεία παπουτσιών «Νigati China Industries» εισάγει και προωθεί 20 προϊόντα στην ελληνική αγορά, οι τιμές των οποίων περιέχονται στον πίνακα Τ[20], και τα ονόματα τους στον πίνακα ΕΠ[20]. Οι πωλήσεις σε τεμάχια που επιτεύχθηκαν από καθέναν από τους 200 πωλητές της εταιρείας περιέχονται στον δισδιάστατο πίνακα ΠΩΛ[200, 20], ενώ τα ονόματα των 200 πωλητών είναι αποθηκευμένα στον πίνακα Ο[200]. Να αναπτύξετε αλγόριθμο που με δεδομένα τα παραπάνω στοιχεία: α.
Θα υπολογίζει το συνολικό ποσό είσπραξης κάθε πωλητή και θα εκτυπώνει την προμήθεια που θα πάρει (10% επί των πωλήσεων),
β.
Θα διαβάζει την επωνυμία ενός προϊόντος και θα εκτυπώνει ποιος πωλητής έκανε τις περισσότερες πωλήσεις σ' αυτό.
γ.
Θα εκτυπώνει τα 5 προϊόντα με τις περισσότερες πωλήσεις. (Να θεωρήσετε ότι είναι ακριβώς 5 τα προϊόντα,)
6.57 Να γραφεί αλγόριθμος ο οποίος για ένα δεδομένο πίνακα Α 10x10 διαβάζει 2 αριθμούς που αντιστοιχούν σε γραμμές στον πίνακα και στη συνέχεια θα αντιμεταθέτει τις συγκεκριμένες γραμμες που διαβάσατε. Χρειάζεται προσοχή ώστε να γίνεται έλεγχος προκειμένου να αποφευχθεί να διαβάζονται γραμμές μεγαλύτερες από το 10 ή μικρότερες ή ίσες του μηδέν. 6.58 Μια τάξη αποτελείται από 25 μαθητές οι οποίοι πήραν βαθμό σε 12 μαθήματα. Να γραφεί αλγόριθμος οποίος : α.
Θα αποθηκεύει τα ονόματα των μαθητών σε κατάλληλο πίνακα.
β.
Θα αποθηκεύει τις βαθμολογίες σε κατάλληλο πίνακα.
γ.
Θα βρίσκει μεσο όρο του κάθε μαθητή.
δ.
Θα βρίσκει και θα τυπώνει το όνομα και τη βαθμολογία του καλύτερου μαθητή της τάξης
167
ε.
Θα ταξινομεί τα ονοματα και τους μέσους όρους αλφαβητικά σε άυξουσα σειρά ονόματος. Σε περίπτωση που δύο μαθητές έχουν ίδιο όνομα η ταξινόμηση θα γίνεται με βάση την υψηλότερη βαθμολογία.
στ.
Θα εμφανίζει τα ονόματα και τους μέσους όρους των μαθητών που πήραν πάνω από 18,5.
6.59 Σ' ένα διαγωνισμό ΑΣΕΠ συμμετέχουν 1000 υποψήφιοι. Κάθε υποψήφιος διαγωνίζεται σε 100 ερωτήσεις πολλαπλής επιλογής.Να αναπτύξετε πρόγραμμα που να κάνει τα παρακάτω: α.
Να καταχωρεί σε κατάλληλο πίνακα ΟΝ τα ονοματα των υποψηφίων και σε κατάλληλο πίνακα ΑΠ τα αποτελέσματα των απαντήσεων του κάθε υποψηφίου σε κάθε ερώτηση. Κάθε καταχώρηση μπορεί να είναι μόνο μία από τις παρακάτω: i. Σ αν είναι σωστή η απάντηση ii. Λ αν είναι λανθασμένη η απάντηση και iii. Ξ αν ο υποψήφιος δεν απάντησε. Να γίνεται έλεγχος των δεδομένων εισόδου.
β.
Να βρίσκει και να αποθηκεύει σε δισδιάστατο πινακα το πλήθος των σωστών απαντήσεων, των λάθος απαντήσεων και το πλήθος όσων δεν απάντησε.
γ.
Αν κάθε Σ βαθμολογείται με 3 μονάδες, κάθε Λ με -1,5 μονάδες και κάθε Ξ με 0 μονάδες τότε i. Να δημιουργεί ένα μονοδιάστατο πίνακα ΒΑΘ[1000], κάθε στοιχείο του οποίου θα περιέχει αντίστοιχα τη συνολική βαθμολογία ενός υποψηφίου. ii. Να τυπώνει ταξινομημένη λίστα ονομάτων και βαθμολογίων σε αλφαβητική σειρά.
6.60 Σε ένα δισδιάστατο πίνακα είναι καταχωρημένες οι ψήφοι που έλαβαν 20 υποψήφιοι σε 10 εκλογικές περιφέριες και κατάλληλο πίνακα τα ονομάτα τους. Να γίνει αλγόριθμος ο οποίος : α.
Θα υπολογίζει το σύνολο των ψηφοφόρων.
β.
Θα υπολογίζει το σύνολο των ψηφοφόρων του κάθε υποψηφίου
γ.
Θα υπολογίζει το σύνολο των ψηφοφόρων που φήφισαν σε κάθε περιφέρεια.
δ.
Θα εμφανίζει το νούμερο της περιφέρειας που έδωσε τις περισσότερες ψήφους στον 3ο υποψήφιο.
ε.
Θα εμφανίζει τους 3 υποφηφίους που μπαίνουν στην βουλή.
6.61 Να αναπτύξετε αλγόριθμο ο οποίος θα διαβάζει τα στοιχεία ενός δισδιάστατου πίνακα αριθμών με Ν γραμμές και Μ στήλες:
168
α.
Θα διαβάζει έναν αριθμό που θα αντιστοιχεί σε στήλη και θα υπολογίζει το ελάχιστο της στήλης αυτής
β.
Θα διαβάζει έναν αριθμό που θα αντιστοιχεί σε γραμμή και θα υπολογίζει το μέγιστο στοιχείο της γραμμής αυτής
6.62 Να γίνει αλγόριθμος που με δεδομένο έναν πίνακα ΠΡΟΒ[13, 3000] που περιέχει τις προβλέψεις 3000 παικτών σε ένα δελτίο του ΠΡΟ-ΠΟ και έναν πίνακα ΑΠΟΤ[13] να βρίσκει τον πλήθος των επιτυχόντων που προέβλεψαν σωστά τους 13 αγώνες, τους 12 αγώνες και τους 11 αγώνες. Αν είναι δεδομένα τα ποσά Π13, Π12, Π11 που θα δοθούν στους επιτυχόντες κάθε κατηγορίας να βρείτε τα χρήματα που θα κερδίσει ο κάθε παίκτης. 6.63 Να αναπτύξετε αλγόριθμο ο οποίος θα διαβάζει τα στοιχεία ενός δισδιάστατου πίνακα αριθμών και θα υπολογίζει το ελάχιστο στοιχείο κάθε στήλης και το μέγιστο στοιχείο κάθε γραμμής τοποθετώντας τα σε αντίστοιχους πίνακες
6.64 Να αναπτύξετε αλγόριθμο ο οποίος με δεδομένα τα στοιχεία ενός τετραγωνικού (διαστάσεων ΝxN) δισδιάστατου πίνακα: α.
Θα υπολογίζει και θα εκτυπώνει τo άθροισμα των στοιχείων της κυρίας διαγωνίου.
β.
Θα υπολογίζει και θα εκτυπώνει τo άθροισμα των στοιχείων της δευτερεύουσας διαγωνίου
6.65 Ενόψει των γιορτών μια εταιρεία αποφάσισε να στείλει ευχετήριες κάρτες στους πελάτες της. Να αναπτυχθεί αλγόριθμος που με δεδομένο δισδιάστατο πίνακα ΣΤΟΙΧΕΙΑ[1000, 3] που περιέχει τα ονοματεπώνυμα των 1000 πελατών της εταιρείας στη στήλη 1, το πατρώνυμο στη στήλη 2 και τις διευθύνσεις των πελατών στη στήλη 3, θα ταξινομεί τα στοιχεία ως προς την πρώτη στήλη και θα εκτυπώνει τα ονόματα και τις διευθύνσεις για τις ευχετήριες κάρτες
6.66 Η εταιρεία διοδίων Αττικής Οδού επιθυμεί να επεξεργαστεί στατιστικά τα στοιχεία των συναλλαγών των ταμείων της. Καταχωρεί λοιπόν τα στοιχεία των 80 ταμείων της σε μονοδιάστατο πίνακα με όνομα ΤΑΜΕΙΑ και τις ημερήσιες εισπράξεις σε δισδιάστατο πίνακα ΕΙΣΠΡΑΞΕΙΣ[80,360] (θεωρούμε ότι κάθε μήνας έχει 30 μέρες και το έτος 360) . Να αναπτυχθεί αλγόριθμος που θα διαβάζει τα παραπάνω στοιχεία, θα υπολογίζει και θα εκτυπώνει: α.
Το ταμείο με τις περισσότερες εισπράξεις τη χρονιά που πέρασε
β.
Το ταμείο με τις λιγότερες εισπράξεις το 2 τρίμηνο της χρονιάς που πέρασε
γ.
Τα ταμεία που ξεπέρασαν το συνολικό μέσο όρο εισπράξεων
6.67 Η γραμματεία ενός λυκείου καταχωρεί τα ονόματα των 100 μαθητών της Α λυκείου και τους 10 βαθμούς του κάθε μαθητή στα μαθήματα που βαθμολογήθηκε. Να αναπτύξετε αλγόριθμο που: α.
Θα διαβάζει τα παραπάνω στοιχεία σε κατάλληλους πίνακες.
169
β.
Θα εκτυπώνει το όνομα του 5ου μαθητή και πόσες φορές έχει βαθμό άριστα (20).
γ.
Θα εκτυπώνει το μέσο όρο του 23ου μαθητή.
δ.
Θα εκτυπώνει το μεγαλύτερο βαθμό στο 3ο μάθημα και το όνομα του μαθητή.
ε.
Θα εκτυπώνει το μέσο όρο που σημείωσαν όλοι οι μαθητές στο 1ο μάθημα
6.68 Ο Ελληνικός Οργανισμός Τουρισμού αποφάσισε να διεξαγάγει μια έρευνα για τα ελληνικά ξενοδοχεία. Στην έρευνα συμμετέχουν τα 7000 ξενοδοχεία της επικράτειας, και γι’ αυτά καταγράφονται οι μηνιαίες εισπράξεις για το περασμένο έτος. Να αναπτυχθεί αλγόριθμος που: α.
Θα διαβάζει τα απαραίτητα στοιχεία και τα τοποθετεί σε πίνακες.
β.
Θα υπολογίζει τις ετήσιες εισπράξεις κάθε ξενοδοχείου και θα τις εκχωρεί σε έναν νέο πίνακα.
γ.
Θα εκτυπώνει το όνομα του ξενοδοχείου με τις περισσότερες εισπράξεις.
δ.
Θα υπολογίζει και θα εκτυπώνει το όνομα κάθε ξενοδοχείου συνοδευόμενο από το πλήθος των μηνών που λειτούργησε (δηλαδή είχε έσοδα) την περασμένη χρονιά.
ε.
Θα δημιουργεί και θα εκτυπώνει τον πίνακα ΤΡΙΜΗΝΑ[4], που περιέχει τις εισπράξεις που παρουσιάστηκαν ανά τρίμηνο.
6.69 Να αναπτυχθεί αλγόριθμος που διαβάζει πίνακα βαθμολογιών από 30 μαθητές. Οι βαθμολογίες είναι μόνο ακέραιες με εύρος από 1 μέχρι 20. Να βρεθεί πόσες φορές επαναλαμβάνεται η κάθε βαθμολογία, καθώς επίσης και ο βαθμός με τη μεγαλύτερη συχνότητα εμφάνισης.
6.70 Να κατασκευαστεί πρόγραμμα το οποίο θα κάνει τα ακόλουθα: α.
Θα διαβάζει τα ονόματα 30 μαθητών και θα τα αποθηκεύει σε κατάλληλο μονοδιάστατο πίνακα.
β.
Θα διαβάζει τις απαντήσεις όλων των μαθητών σε 20 ερωτήσεις Σωστού - Λάθους και θα τις καταχωρεί σε κατάλληλο δισδιάστατο πίνακα.
γ.
Θα διαβάζει έναν πίνακα Γ ο οποίος περιέχει τις σωστές απαντήσεις των ερωτήσεων.
δ.
Με την βοήθεια του πίνακα Γ θα κατασκευάζει έναν μονοδιάστατο πίνακα Δ ο οποίος θα περιέχει τον βαθμό κάθε μαθητή αν γνωρίζουμε ότι κάθε Σωστή απάντηση παίρνει 5 μόρια και κάθε Λάθος αφαιρεί από τον μαθητή 2 μόρια.
ε.
Να υπολογίζει τον μέσο όρο της τάξης και να εμφανίζει το όνομα του μαθητή του οποίου ο βαθμός είναι πιο κοντά στο μέσο όρο της τάξης
ζ.
Να εμφανίζει μήνυμα για το αν υπάρχει ή όχι μαθητής ή μαθητές που να έπιασε το άριστα (100) καθώς και το όνομά ή τα ονόματά τους. 170
ΚΕΦΑΛΑΙΟ 7ο
ΓΛΩΣΣΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΑ ΠΕΡΙΒΑΛΛΟΝΤΑ
Κεφάλαιο 7ο – Γλώσσες Προγραµµατισµού – Προγραµµατιστικά Περιβάλλοντα Α.
Θεωρία
Προγραμματιστικά Περιβάλλοντα Η ενότητα αυτή παρουσιάζεται σε μορφή ερωτήσεων με απάντησεις και καλύπτει το 6ο κεφάλαιο του σχολικού βιβλίου «Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον» (Σελ. 117 – 140). Είναι το κεφάλαιο με τη μεγαλύτερη έκταση θεωρίας σε σχέση με την υπόλοιπη εξεταστέα ύλη.
7.1 Ποια είναι τα στάδια επίλυσης ενός προβλήματος με υπολογιστή; Η επίλυση ενός προβλήματος με τον υπολογιστή περιλαμβάνει τρία στάδια : •
Τον ακριβή προσδιορισμό του προβλήματος.
•
Την ανάπτυξη του αντίστοιχου αλγορίθμου.
•
Την διατύπωση του αλγορίθμου σε κατανοητή μορφή από τον υπολογιστή ( δηλαδή προγραμματισμός ).
7.2 Τι είναι πρόγραμμα και ποια τα βασικά του στοιχεία; •
Είναι το σύνολο των εντολών που πρέπει να δοθούν στον υπολογιστή για να υλοποιηθεί ένας αλγόριθμος.
•
Το πρόγραμμα δεν αποτελείται μόνο από τις εντολές αλλά και από τα δεδομένα και τις δομές δεδομένων στις οποίες ενεργεί. (Αλγόριθμοι και δομές δεδομένων είναι μία αδιάσπαστη ενότητα.)
7.3 Τι είναι προγραμματισμός; •
Ο προγραμματισμός ασχολείται με την δημιουργία του προγράμματος δηλαδή την διατύπωση ενός αλγορίθμου σε κατανοητή από τον υπολογιστή μορφή.
•
Ο προγραμματισμός δίνει την εντύπωση ότι οι υπολογιστές είναι έξυπνες μηχανές που επιλύουν τα πολύπλοκα προβλήματα.
7.4 Να εξηγήσετε γιατί οι υπολογιστές δεν είναι έξυπνες μηχανές. Ο προγραμματισμός δίνει την εντύπωση ότι οι υπολογιστές είναι έξυπνες μηχανές. Αλλά: •
Ο υπολογιστής καταλαβαίνει μόνο δύο καταστάσεις οι
173
οποίες αντιπροσωπεύονται από τα δύο ψηφία του δυαδικού συστήματος: το μηδέν και το ένα. •
7.5
Το μόνο πράγμα που κάνει είναι στοιχειώδεις ενέργειες σε ακολουθίες 0 και 1 με ασύλληπτη ταχύτητα. Οι στοιχειώδεις αυτές ενέργειες είναι: o
Να αποθηκεύει στην μνήμη ακολουθίες τέτοιων ψηφίων,
o
να τις ανακτά από την μνήμη,
o
να κάνει στοιχειώδεις αριθμητικές πράξεις με αυτές
o
και να τις συγκρίνει.
Να κάνετε μια σύντομη προγραμματισμού.
ιστορική
αναδρομή
για
τις
γλώσσες
Από τη δημιουργία του πρώτου υπολογιστή μέχρι σήμερα έχουν αλλάξει πάρα πολλά πράγματα. Οι πρώτοι υπολογιστές, τεράστιοι σε μέγεθος αλλά με πάρα πολύ περιορισμένες δυνατότητες και μικρές ταχύτητες επεξεργασίας εξελίχθηκαν σε πολύ μικρούς σε μέγεθος υπολογιστές με τεράστιες όμως δυνατότητες και ταχύτητες επεξεργασίας. Ενώ λοιπόν το υλικό ( hardware ) των υπολογιστών βελτιώνεται, τελειοποιείται και ταυτόχρονα παρέχει νέες δυνατότητες επεξεργασίας, οι βασικές αρχές λειτουργίας των υπολογιστών που διατυπώθηκαν το μακρινό 1945 από τον Φον Νόυμαν, δεν άλλαξαν πρακτικά καθόλου. Την ίδια αργή εξέλιξη ουσιαστικά έχουν και οι γλώσσες προγραμματισμού, οι οποίες αν και εξελίσσονται και συνεχώς εμπλουτίζονται με νέες δυνατότητες, τα χαρακτηριστικά τους και οι βασικές τους ιδιότητες ουσιαστικά παραμένουν τα ίδια.
7.6 Τι γνωρίζετε για τις γλώσσες μηχανής; Ορισμός : Ένα πρόγραμμα σε γλώσσα μηχανής είναι μια ακολουθία δυαδικών (0 και 1) ψηφίων που αποτελούν εντολές προς τον υπολογιστή για στοιχειώδεις λειτουργίες. •
Αρχικά για να μπορέσει ο υπολογιστής να εκτελέσει μία οποιαδήποτε λειτουργία έπρεπε να δοθούν κατευθείαν οι εντολές σε ακολουθίες από 0 και 1 ( δηλαδή η εντολή χ 3 σε γλώσσα μηχανής έχει την μορφή: 01011010001010101000011 !! )
•
Ο προγραμματισμός κατευθείαν σε γλώσσα μηχανής είναι μεν κατανοητός από τον υπολογιστή αλλά ακατανόητος από τον άνθρωπο. Ελάχιστοι μπορούν να τον υλοποιήσουν γιατί απαιτεί βαθιά γνώση του υλικού και της αρχιτεκτονικής του υπολογιστή.
•
Ο προγραμματισμός των πρώτων υπολογιστών δεν ήταν ουσιαστικά προγραμματισμός με την σημερινή έννοια του όρου αλλά στην ουσία ήταν μία αναδιάρθρωση του υπολογιστή. Ο πρώτος υπολογιστής (ENIAC) για να προγραμματιστεί έπρεπε να αλλάξουν θέση εκατοντάδες διακόπτες και να ρυθμιστούν όλες του οι καλωδιώσεις (επίπονη και χρονοβόρα διαδικασία). Για να εκτελέσει άλλο υπολογισμό έπρεπε να αλλάξει ξανά η διάρθρωση του.
174
•
Ακόμη και σήμερα όλες οι γλώσσες προγραμματισμού μετατρέπονται σε γλώσσα μηχανής ώστε να εκτελεστούν από τον Η/Υ.
7.7 Τι γνωρίζετε για τις συμβολικές (χαμηλού επιπέδου) γλώσσες; Ορισμός: Αποτελούνται από συμβολικά ονόματα τα οποία αντιστοιχούν σε εντολές της γλώσσας μηχανής. Είναι στενά συνδεδεμένες με την αρχιτεκτονική (hardware) του υπολογιστή. Γι’ αυτό ονομάζονται και χαμηλού επιπέδου. •
Είναι πιο κατανοητές και απομνημονεύονται πιο εύκολα από τον άνθρωπο, από τις γλώσσες μηχανής.
•
Για να εκτελεστούν χρειάζονται μετάφραση σε γλώσσα μηχανής, με ένα ειδικό πρόγραμμα τον συμβολομεταφραστή.
•
Τα προγράμματα σε συμβολική γλώσσα δεν μπορούν να μεταφερθούν εύκολα από ένα υπολογιστή σε ένα άλλο. (μεταφερσιμότητα)
•
Δεν διαθέτουν εντολές σύνθετων λειτουργιών και οδηγώντας έτσι σε μακροσκελή προγράμματα που είναι δύσκολο να γραφούν και να συντηρηθούν.
•
Συνεχίζεται η χρήση τους και σήμερα αλλά μόνο για ειδικούς σκοπούς.
7.8 Τι γνωρίζετε για τις γλώσσες υψηλού επιπέδου; Ορισμός: Χρησιμοποιούν ως εντολές απλές λέξεις της αγγλικής γλώσσας ακολουθώντας αυστηρούς κανόνες σύνταξης και μεταφράζονται από τον ίδιο τον υπολογιστή σε γλώσσα μηχανής. •
Ένα πρόγραμμα σε γλώσσα υψηλού επιπέδου μεταφράζεται από τον ίδιο τον υπολογιστή σε γλώσσα μηχανής, με την βοήθεια ενός ειδικού προγράμματος: τον μεταγλωττιστή.
•
Τα προγράμματα αυτά μπορούν να εκτελεστούν και σε άλλο υπολογιστή υπό την προϋπόθεση ότι και αυτός διαθέτει τον αντίστοιχο μεταγλωττιστή.
•
Καμία γλώσσα υψηλού επιπέδου δεν μπορεί να καλύψει όλες τις ανάγκες σε όλους τους τομείς δραστηριοτήτων και γι’ αυτό υπάρχουν τόσες διαφορετικές γλώσσες.
7.9 Να αναφέρετε τα βασικά χαρακτηριστικά της γλώσσας Fortran. •
Formula Translation
•
Επίλυση μαθηματικών και επιστημονικών προβλημάτων
•
Χρησιμοποιείται και σήμερα σε επιστημονικές εφαρμογές
175
7.10 Να αναφέρετε τα βασικά χαρακτηριστικά της γλώσσας Cobol. •
Common Business Oriented Language
•
Ανάπτυξη εμπορικών και διαχειριστικών εφαρμογών.
•
Χρησιμοποιήθηκε από πολλές επιχειρήσεις και την δημόσια διοίκηση
•
Χρησιμοποιείται και σήμερα.
7.11 Να αναφέρετε τα βασικά χαρακτηριστικά της γλώσσας Algol. •
Algorithm Language
•
Ελάχιστη πρακτική εφαρμογή.
•
Άσκησε επιρροή σε επόμενες γλώσσες.
7.12 Να αναφέρετε τα βασικά χαρακτηριστικά της γλώσσας PL/1. •
Programming Language /1
•
Προσπάθησε ανεπιτυχώς προγραμματισμού.
να
καλύψει
όλους
τους
τομείς
7.13 Να αναφέρετε τα βασικά χαρακτηριστικά των γλωσσών LISP – PROLOG. •
List Processor- Programming Logic
•
Είναι δύο γλώσσες που δραστηριοποιούνται στον χώρο της τεχνητής νοημοσύνης (Έμπειρα συστήματα, παιχνίδια, επεξεργασία φυσικών γλωσσών).
7.14 Να αναφέρετε τα βασικά χαρακτηριστικά της γλώσσας Basic. •
Begginer’s All purpose Symbolic Instruction Code
•
Αρχικά αναπτύχθηκε για εκπαίδευση αρχαρίων.
•
Τα προγράμματα είναι σύντομα και εκτελούνται με την βοήθεια διερμηνευτή.
•
Έγινε η δημοφιλέστερη γλώσσα.
•
Η Microsoft την καθιέρωσε μέσα από τις εκδόσεις Quick Basic και Visual Basic σαν πρότυπο ανάπτυξης εφαρμογών σε Η/Υ
176
7.15 Να αναφέρετε τα βασικά χαρακτηριστικά της γλώσσας Pascal. •
Βασίστηκε πάνω στην Algol.
•
Κατάλληλη για εκπαίδευση και δημιουργία ισχυρών προγραμμάτων γενικής χρήσης.
•
Κατάλληλη για δημιουργία δομημένων προγραμμάτων.
•
Αποτέλεσε την βάση για την ανάπτυξη ισχυρότερων γλωσσών όπως η ADA και η Modula-2.
7.16 Να αναφέρετε τα βασικά χαρακτηριστικά της γλώσσας C. •
Αναπτύχθηκε από την εταιρεία Bell
•
Χρησιμοποιήθηκε για την δημιουργία του λειτουργικού συστήματος UNIX
•
Έχει κοινά χαρακτηριστικά με την Pascal
•
Κατάλληλη για ανάπτυξη δομημένων εφαρμογών αλλά ταυτόχρονα και δυνατότητες γλωσσών χαμηλού επιπέδου.
•
Οδήγησε στη ανάπτυξη της γλώσσας C++ που είναι μια γλώσσα αντικειμενοστραφούς προγραμματισμού.
έχει
7.17 Να αναφέρετε τα βασικά χαρακτηριστικά της γλώσσας Java. •
Είναι μια αντικειμενοστραφής γλώσσα
•
Αναπτύχθηκε από την εταιρεία Sun
•
Κατάλληλη για εφαρμογές που εκτελούνται σε διαφορετικούς υπολογιστές που συνδέονται στο Internet και έχουν διαφορετικά λειτουργικά συστήματα.
7.18 Τι είναι προγραμματισμός οδηγούμενος από το γεγονός; Εννοούμε την δυνατότητα να ενεργοποιούνται λειτουργίες του προγράμματος με την εκτέλεση ενός γεγονότος (π.χ. κλικ του ποντικιού).
7.19 Τι είναι ο οπτικός προγραμματισμός; Είναι η δυνατότητα να δημιουργούμε γραφικά ολόκληρο το περιβάλλον μιας εφαρμογής (πχ τα παράθυρα, τα μενού επιλογών, τα πλαίσια διαλόγου κλπ). Γλώσσες που υποστηρίζουν οπτικό προγραμματισμό είναι για παράδειγμα η Visual Basic και η Visual C.
177
7.20 Να αναφέρετε τα πλεονεκτήματα των γλωσσών υψηλού επιπέδου. •
Φυσικότερος και πιο ανθρώπινος τρόπος έκφρασης των προβλημάτων.(Τα προγράμματα είναι πιο κοντά στα προβλήματα που επιλύουν).
•
Η ανεξαρτησία από τον τύπο του υπολογιστή. Τα προγράμματα μπορούν να μεταφερθούν σε οποιονδήποτε υπολογιστή με ελάχιστες ή καθόλου μετατροπές. Η δυνατότητα της μεταφερσιμότητας των προγραμμάτων είναι σημαντικό προσόν.
•
Η ευκολία της εκμάθησης και εκπαίδευσης ως απόρροια των προηγουμένων.
•
Η διόρθωση λαθών και η συντήρηση προγραμμάτων είναι πολύ ευκολότερη.
Συνολικά οι γλώσσες υψηλού επιπέδου ελάττωσαν σημαντικά το χρόνο και το κόστος παραγωγής νέων προγραμμάτων, αφού λιγότεροι προγραμματιστές μπορούν σε μικρότερο χρόνο να αναπτύξουν προγράμματα που χρησιμοποιούνται σε περισσότερους υπολογιστές.
7.21 Τι γνωρίζετε για τις γλώσσες 4ης γενιάς;
7.22
•
Δεν απευθύνονται μόνο σε προγραμματιστές. Αντίθετα ο χρήστης μπορεί να επιλύει μόνος του μικρά προβλήματα εφαρμογών.
•
Αυτό γίνεται γιατί αποκρύπτουν πολλές τεχνικές λεπτομέρειες, από την υλοποίηση των προγραμμάτων.
•
Ο χρήστης μπορεί σχετικά εύκολα να υποβάλει ερωτήσεις στο σύστημα ή να παίρνει πληροφορίες από βάσεις δεδομένων και να καθορίζει ακριβώς τον τρόπο εμφάνισης των πληροφοριών αυτών.
•
Πχ η γλώσσα SQL: Structured Query Language (δομημένη γλώσσα ερωτοαπαντήσεων)
Να αναφέρετε τις κατηγορίες γλώσσεςπρογραμματισμού.
στις
οποίοες
ταξινομούνται
οι
Οι γλώσσες υψηλού επιπέδου διακρίνονται στις παρακάτω κατηγορίες: •
Διαδικασιακές - αλγοριθμικές γλώσσες. Είναι σχεδιασμένες για την υλοποίηση αλγορίθμων. Πχ Pascal , Basic
•
Αντικειμενοστραφείς γλώσσες. Πχ Java,C++
•
Συναρτησιακές γλώσσες. Πχ LISP
•
Μη διαδικασιακές γλώσσες. Χαρακτηρίζονται ως γλώσσες πολύ υψηλού επιπέδου. Πχ PROLOG
•
Γλώσσες ερωτοαπαντήσεων. Πχ SQL
178
Ταξινόμηση ως προς την περιοχή χρήσης. •
Γενικής χρήσης. Θεωρητικά κάθε γλώσσα γενικής χρήσης μπορεί να χρησιμοποιηθεί για την επίλυση οποιουδήποτε προβλήματος. Στην πράξη όμως διακρίνονται σε δύο κατηγορίες. o
Επιστημονικής κατεύθυνσης Πχ Fortan
o
Εμπορικής κατεύθυνσης Πχ Cobol
•
Προγραμματισμού συστημάτων Πχ C
•
Τεχνητής νοημοσύνης. Πχ Lisp, Prolog
•
Ειδικής χρήσης. Χρησιμοποιούνται σε ειδικές περιοχές εφαρμογών πχ στα γραφικά με υπολογιστή
7.23 Με βάση ποια κριτήρια επιλέγουμε την καλύτερη γλώσσα προγραμματισμού Δεν υπάρχει γλώσσα αντικειμενικά καλύτερη από τις άλλες και ούτε πρόκειται να υπάρξει, αλλά πιο κατάλληλη ανάλογα με το είδος της εφαρμογής. Η επιλογή της πιο κατάλληλης γλώσσας γίνεται με βάση: •
Το είδος της εφαρμογής.
•
Το υπολογιστικό περιβάλλον που θα εκτελεστεί.
•
Τα προγραμματιστικά περιβάλλοντα που διαθέτουμε.
•
Τις γνώσεις του προγραμματιστή.
7.24 Ποια είναι τα στοιχεία που δομούν μια γλώσσα προγραμματισμού ; Μια γλώσσα προγραμματισμού (όπως και οι φυσικές γλώσσες) προσδιορίζεται από τέσσερα στοιχεία: •
Το αλφάβητο. Είναι το σύνολο των στοιχείων που αποτελεί την γλώσσα. ( Πχ η ελληνική γλώσσα περιέχει τα εξής στοιχεία: 48 χαρακτήρες, τα σημεία στίξης καθώς και τα ψηφία )
•
Το λεξιλόγιο. Είναι το υποσύνολο όλων των ακολουθιών που δημιουργούνται από το αλφάβητο και είναι δεκτές από την γλώσσα. Πχ η ακολουθία ΑΒΓΑ είναι δεκτή ενώ η ΑΒΓΒΑ δεν είναι.
•
Την γραμματική. Η γραμματική αποτελείται από το τυπικό και το συντακτικό. Τυπικό: είναι το σύνολο των κανόνων που καθορίζουν αν μία λέξη είναι αποδεκτή. Πχ Η λέξη «ΓΡΑΨΕ» 179
είναι αποδεκτή αλλά η «ΓΡΑΨΕΣ» όχι. Συντακτικό: Είναι το σύνολο των κανόνων που καθορίζει αν η διάταξη και η σύνδεση των λέξεων σε μία πρόταση είναι σωστή. Η γνώση συντακτικού στις φυσικές γλώσσες επιτρέπει την δημιουργία σωστών προτάσεων ενώ στις γλώσσες προγραμματισμού επιτρέπει την δημιουργία σωστών εντολών. •
Την σημασιολογία. Είναι το σύνολο των κανόνων που καθορίζει το νόημα των λέξεων άρα και το νόημα των προτάσεων που δημιουργούνται. Στις γλώσσες προγραμματισμού ο δημιουργός τους αποφασίζει για την σημασιολογία των λέξεων της γλώσσας.
7.25 Να αναλύσετε τις διαφορές φυσικών – τεχνητών γλωσσών Μια βασική διαφορά είναι η δυνατότητα εξέλιξης: •
Οι φυσικές γλώσσες εξελίσσονται συνεχώς και δημιουργούνται νέες λέξεις, αλλάζουν οι κανόνες γραμματικής/ συντακτικού με την πάροδο του χρόνου. Αυτό γίνεται γιατί χρησιμοποιούνται για την επικοινωνία μεταξύ των ανθρώπων.
•
Οι γλώσσες προγραμματισμού χρησιμοποιούνται για την επικοινωνία ανθρώπου Η/Υ και χαρακτηρίζονται από στασιμότητα. Ωστόσο και αυτές εξελίσσονται από τους δημιουργούς τους για να διορθώσουν αδυναμίες τους ή να καλύψουν μεγαλύτερο εύρος εφαρμογών αλλά και να ακολουθήσουν τις νέες εξελίξεις. Αλλάζουν σε: o
επίπεδο διαλέκτου. Πχ Basic
o
σε επίπεδο επέκτασης Πχ Basic
QuickBasic Visual Basic
7.26 Να περιγράψετε την τεχνική της ιεραρχικής σχεδίασης προγράμματος. Η τεχνική της ιεραρχικής σχεδίασης (ή αλλιώς τεχνική από επάνω προς τα κάτω ή top - down), χρησιμοποιεί την στρατηγική της συνεχούς διαίρεσης του προβλήματος σε υποπροβλήματα τα οποία είναι εύκολο να επιλυθούν οδηγώντας στην επίλυση του αρχικού προβλήματος. Περιλαμβάνει: •
Τον καθορισμό των βασικών λειτουργιών ενός προγράμματος σε ανώτερο επίπεδο,
•
Την διάσπαση των λειτουργιών αυτών σε όλο και μικρότερες λειτουργίες μέχρι το τελευταίο επίπεδο όπου οι λειτουργίες είναι πολύ απλές.
•
Χρησιμοποιούνται διάφορες υποβοήθηση της σχεδίασης.
•
Υλοποιείται με τμηματικό προγραμματισμό.
διαγραμματικές
τεχνικές
180
για
την
7.27 Τι γνωρίζετε για τον τμηματικό προγραμματισμό; (βλέπε Κεφάλαιο 8 Υποπρογράμματα και κεφάλαιο 10 σχολικου βίβλιου)
7.28 Τι γνωρίζετε για το δομημένο προγραμματισμό ; Δεν είναι απλώς ένα είδος προγραμματισμού αλλά μια μεθοδολογία σύνταξης προγραμμάτων. •
Όλα τα προγράμματα μπορούν να γραφούν χρησιμοποιώντας μόνο τις τρεις παρακάτω λογικές δομές καθώς και συνδυασμών τους. o o o
•
Δομή ακολουθίας. Δομή επιλογής. Δομή επανάληψης.
Κάθε πρόγραμμα όπως και κάθε ενότητα προγράμματος έχει μία είσοδο και μόνο μία έξοδο. (δηλαδή: έχει μία αρχή και μόνο ένα τέλος_προγράμματος)
Αν και ο δομημένος προγραμματισμός αρχικά εμφανίστηκε ως μία προσπάθεια περιορισμού της εντολής GOTO σήμερα αποτελεί την βασική μεθοδολογία προγραμματισμού. Ο δομημένος προγραμματισμός βοηθάει την ανάλυση ενός προγράμματος σε τμήματα έτσι περιέχει τόσο την ιεραρχική σχεδίαση όσο και τον τμηματικό προγραμματισμό.
7.29 Γιατί η εντολή GOTO κρίνεται ακατάλληλη εντολή στον προγραμματισμό; •
Η χρήση της εντολής αλλάζει την ροή ενός προγράμματος
•
Η αλλαγή αυτή της ροής κάνει τα προγράμματα δύσκολα στην παρακολούθηση την κατανόηση και την συντήρηση.
7.30 Να αναφέρετε τα πλεονεκτήματα δομημένου προγραμματισμού •
Δημιουργία απλούστερων προγραμμάτων.
•
Άμεση μεταφορά των αλγορίθμων σε προγράμματα.
•
Διευκόλυνση ανάλυσης του προγράμματος σε τμήματα.
•
Περιορισμός των λαθών κατά την ανάπτυξη του προγράμματος.
•
Διευκόλυνση στην ανάγνωση και κατανόηση του προγράμματος από τρίτους.
•
Ευκολότερη διόρθωση και συντήρηση.
181
7.31 Τι γνωρίζετε για το πηγαίο πρόγραμμα (source); •
Το αρχικό πρόγραμμα που γράφει ο προγραμματιστής λέγεται πηγαίο πρόγραμμα.
•
Η συγγραφή του γίνεται με τον συντάκτη (βλέπε παρακάτω).
•
Το πηγαίο πρόγραμμα δεν είναι κατανοητό από τον υπολογιστή. (εκτός αν είναι γραμμένο απ’ ευθείας σε γλώσσα μηχανής)
7.32 Τι γνωρίζετε για τα λάθη που μπορεί να εμφανιστούν στο πηγαίο πρόγραμμα Τα λάθη σε ένα πρόγραμμα διακρίνονται σε λογικά και συντακτικά. •
Λογικά λάθη. o Οφείλονται σε σφάλματα κατά την υλοποίηση του αλγορίθμου. (πχ ΜΟ χ+ψ / 3 (ήθελε παρενθέσεις) …)
•
o
Εντοπίζονται μόνο κατά την εκτέλεση του προγράμματος.
o
Είναι τα πλέον σοβαρά και δύσκολα στην διόρθωση.
Συντακτικά λάθη. o
Οφείλονται σε αναγραμματισμούς παράληψη δήλωσης δεδομένων κλπ. {πχ Γραεψ αντί για Γράψε}
γραμμάτων
εντολών,
o
Εντοπίζονται από τον μεταγλωττιστή ή τον διερμηνευτή
o
Πρέπει να διορθωθούν ώστε να δημιουργηθεί το εκτελέσιμο πρόγραμμα.
7.33 Τι ονομάζουμε συντάκτη ; •
Ο συντάκτης είναι ουσιαστικά ένας μικρός επεξεργαστής κειμένου. (Σαν το Word - Wordpad κλπ.)
•
Η συγγραφή του πηγαίου προγράμματος και η διόρθωση των λαθών του πηγαίου γίνεται με την βοήθεια του συντάκτη.
7.34 Τι γνωρίζετε για το μεταγλωττιστή ; •
Δέχεται σαν είσοδο ένα πρόγραμμα γραμμένο σε μία προγραμματισμού (υψηλού επιπέδου).
•
Ανιχνεύει τα τυχόν συντακτικά λάθη. Αν βρεθούν λάθη ο προγραμματιστής τα διορθώνει (με τον συντάκτη) και υποβάλλει το πρόγραμμα ξανά προς μεταγλώττιση μέχρι να παραχθεί το σωστό.
182
γλώσσα
•
Αν δεν υπάρχουν λάθη και μόνο τότε, παράγει το αντικείμενο πρόγραμμα, το οποίο είναι ισοδύναμο με το πηγαίο αλλά εκφρασμένο πλέον σε γλώσσα μηχανής. Αυτό είναι πλέον τελείως ανεξάρτητο από το αρχικό πρόγραμμα, αλλά δεν είναι ακόμη εκτελέσιμο:
Η διαδικασία μέσω της οποίας καταλήγουμε στο εκτελέσιμο πρόγραμμα (γλώσσα μηχανής) είναι συνοπτικά: Πηγαίο πρόγραμμα μεταγλωττιστής φορτωτής Εκτελέσιμο πρόγραμμα.
αντικείμενο πρόγραμμα
συνδέτης-
7.35 Τι γνωρίζετε για το συνδέτη - φορτωτή ; Το αντικείμενο πρόγραμμα που παράγει ο μεταγλωττιστής είναι μεν σε μορφή κατανοητή από τον υπολογιστή (γλώσσα μηχανής) αλλά δεν είναι εκτελέσιμο. Χρειάζεται να συμπληρωθεί και να συνδεθεί με άλλα τμήματα προγράμματος απαραίτητα για την εκτέλεσή του. (Τα τμήματα αυτά είτε τα γράφει ο προγραμματιστής (υποπρογράμματα), είτε βρίσκονται στις βιβλιοθήκες της γλώσσας που χρησιμοποιεί.) Το πρόγραμμα που κάνει την σύνδεση αυτή ονομάζεται συνδέτης- φορτωτής .
7.36 Τι γνωρίζετε για το διερμηνευτή; Ο διερμηνευτής δέχεται ως είσοδο ένα πρόγραμμα γραμμένο σε γλώσσα υψηλού επιπέδου και εκτελεί μία μία τις εντολές του αρχικού προγράμματος. Η διαδικασία εκτέλεσης είναι η εξής: •
Διαβάζει μία από τις εντολές του αρχικού προγράμματος,
•
ανιχνεύει τα (τυχόν) συντακτικά λάθη κάθε της εντολής,
•
την μεταφράζει σε γλώσσα μηχανής
•
την εκτελεί.
•
Κατόπιν διαβάζει την επόμενη εντολή και επαναλαμβάνει την ίδια διαδικασία !
7.37 Ποιες ομοιότητες – διαφορές γνωρίζετε για διερμηνευτή – μεταγλωττιστή; Ομοιότητες: •
Και οι δύο μεταφράζουν το πηγαίο πρόγραμμα (υψηλού επιπέδου) σε γλώσσα μηχανής.
•
Και οι δύο ανιχνεύουν τα συντακτικά λάθη.
183
Διαφορές: •
Ο μεταγλωττιστής μεταγλωττίζει όλο το πρόγραμμα και με την βοήθεια του συνδέτη – φορτωτή παράγεται το εκτελέσιμο.
•
Ο διερμηνευτής εκτελεί μία μία τις εντολές και δεν χρειάζεται συνδέτηφορτωτή
Διαφορές ως απόρροια των παραπάνω είναι: •
Ο διερμηνευτής αφού εκτελεί τις εντολές μία μία έχει το πλεονέκτημα της άμεσης διόρθωσης των λαθών. Για τον λόγο αυτό χρησιμοποιείται συνήθως κατά την συγγραφή-διόρθωση ενός προγράμματος.
•
Η εκτέλεση ενός προγράμματος με τον διερμηνευτή είναι πιο αργή, γιατί για να εκτελεστεί το πρόγραμμα, πρέπει κάθε φορά να ξαναγίνεται η διερμηνεία από την αρχή, ενώ ο μεταγλωττιστής παράγει μια φορά το αντικείμενο πρόγραμμα και δεν χρειάζεται ξανά μεταγλώττιση αφού είναι σχεδόν εκτελέσιμο (θυμήσου τον συνδέτη)
•
Για να εκτελεστεί ένα προγράμμα με τον διερμηνευτή είναι απαραίτητη η παρουσία του πηγαίου προγράμματος ενώ με τον μεταγλωττιστή μόνο την πρώτη φορά.
7.38 Τι περιλαμβάνει ένα σύγχρονο προγραμματιστικό περιβάλλον ; •
Για την δημιουργία - εκτέλεση τουλάχιστον 3 προγράμματα: o
Συντάκτης
o
Μεταγλωττιστής
o
Συνδέτης
ενός προγράμματος απαιτούνται
•
Τα σύγχρονα προγραμματιστικά περιβάλλοντα παρέχουν προγράμματα αυτά με ενιαίο τρόπο {και τα 3 προγράμματα σε 1}
•
Το κάθε προγραμματιστικό περιβάλλον έχει διαφορετικά εργαλεία και ιδιότητες (ανάλογα με την γλώσσα προγραμματισμού). Για παράδειγμα ένα περιβάλλον οπτικού προγραμματισμού παρέχει και ειδικό Συντάκτη για την δημιουργία γραφικών (μενού διαλόγου κλπ)
184
τα
Β.
Θέματα για λύση 7.39 Συνδέστε τα στοιχεία της στήλης Α με τα στοιχεία της στήλης Β. ΣΤΗΛΗ Α 1. COBOL 2. VISUAL BASIC 3. ASSEMBLY 4. FORTRAN 5. JAVA 6. SQL 7. PROLOG 8. C++
ΣΤΗΛΗ Β A. Οπτικός Προγραμματισμός Β. Εφαρμογές τεχνητής νοημοσύνης Γ. Αντικειμενοστραφής Προγραμματισμός Δ. Εμπορικές εφαρμογές Ε. Γλώσσα ερωταπαντήσεων ΣΤ. Προγραμματισμός στο διαδίκτυο Ζ. Συμβολική γλώσσα Η. Επιστημονικές εφαρμογές
7.40 Να χαρακτηρίσετε τις παρακάτω προτάσεις ως σωστές ή λάθος. α.
Ο δομημένος προγραμματισμός στηρίζεται στη χρήση τριών και μόνο στοιχειωδών λογικών δομών.
β.
Ο ιεραρχικός προγραμματισμός προγραμματισμού.
γ.
Το αποτέλεσμα του μεταγλωττιστή (compiler) είναι το πηγαίο πρόγραμμα (source).
δ.
Ο διερμηνευτής (interpreter) μετατρέπει το εκτελέσιμο πρόγραμμα (executable) σε αντικείμενο πρόγραμμα (object).
ε.
Η γλώσσα Java είναι κατάλληλη για ανάπτυξη λογισμικού που θα λειτουργήσει σε κατανεμημένα περιβάλλοντα.
υλοποιείται
μέσω
του
δομημένου
7.41 Να κάνετε τις σωστές συνδέσεις στον πίνακα που ακολουθεί : ΣΤΗΛΗ Α 1. Γλώσσα μηχανής 2. Μεταγλωττιστής (Compiler) 3. Συμβολικές γλώσσες 4. Συνδέτης – Φορτωτής 5. Γλώσσες Υψηλού επιπέδου
ΣΤΗΛΗ Β Α. BASIC, PASCAL, C Β. Συμβολομεταφραστής (assembler) Γ. Αντικείμενο Πρόγραμμα (object) Δ. Βιβλιοθήκες (libraries) Ε. Ακολουθίες από 0 και 1 Ζ. Διερμηνευτής (interpreter)
7.42 Να χαρακτηρίσετε τις παρακάτω προτάσεις ως σωστές ή λάθος. α.
Ένα πρόγραμμα σε γλώσσα μηχανής είναι μια ακολουθία δυαδικών ψηφίων.
β.
Ο μεταγλωττιστής δέχεται στην είσοδο του ένα πρόγραμμα γραμμένο σε μια γλώσσα υψηλού επιπέδου και παράγει ένα ισοδύναμο πρόγραμμα σε γλώσσα μηχανής.
γ.
Το πηγαίο πρόγραμμα εκτελείται από τον υπολογιστή χωρίς μεταγλώττιση.
185
δ.
Ο διερμηνευτής διαβάζει μια προς μία τις εντολές του πηγαίου προγράμματος και για κάθε μια εκτελεί αμέσως μια ισοδύναμη ακολουθία εντολών μηχανής.
ε.
Ένα πρόγραμμα σε γλώσσα μηχανής χρειάζεται μεταγλώττιση.
7.43 Να χαρακτηρίσετε τις παρακάτω προτάσεις ως σωστές ή λάθος. α.
Ο συμβολομεταφραστής (assembler) είναι πρόγραμμα που χρησιμοποιήθηκε στη γλώσσα μηχανής.
β.
Συντακτικό μιας γλώσσας προγραμματισμού είναι το σύνολο των κανόνων που καθορίζουν πότε μια λέξη είναι αποδεκτή ή όχι.
γ.
Η γραμματική μιας γλώσσας χωρίζεται στο λεξιλόγιο και στο τυπολογικό.
δ.
Οι γλώσσες 4ης γενιάς προσφέρουν στο χρήστη δυνατότητα να εκτελέσει αλλαγές στον κώδικα ενός προγράμματος.
ε.
Η εντολή GOTO είναι απαραίτητο κομμάτι του δομημένου προγραμματισμού.
7.44 Να χαρακτηρίσετε τις παρακάτω προτάσεις ως σωστές ή λάθος. α.
Οι γλώσσες 3ης γενιάς δεν παρέχουν δυνατότητες οπτικού προγραμματισμού.
β.
Η γλώσσα προγραμματισμού προγραμματισμό του διαδικτύου.
γ.
Ο συντάκτης είναι ένα πρόγραμμα που χρησιμοποιείται για μετατροπή του πηγαίου προγράμματος σε αντικείμενο.
δ.
Ο interpreter (διερμηνευτής) μετατρέπει το αντικείμενο πρόγραμμα σε πηγαίο.
ε.
Ο δομημένος προγραμματισμός κατέστησε προγράμματος δυσκολότερη διαδικασία.
C++
αποτελεί
τη
σημείο
αναφοράς
διόρθωση
λαθών
186
στον
ενός
ΚΕΦΑΛΑΙΟ 8ο
ΤΜΗΜΑΤΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ
Κεφάλαιο 8ο – Τµηµατικός Προγραµµατισµος Α.
Θεωρία
8.1
Ορισμός τμηματικού προγραμματισμού Με τον όρο αυτό εννοούμε την τεχνική σχεδίασης και ανάπτυξης προγραμμάτων ως ένα σύνολο από απλούστερα τμήματα προγραμμάτων. Με απλά λόγια είναι η μεθοδολογία εκείνη που χρησιμοποιούν οι προγραμματιστές για να χωρίσουν ένα σύνθετο πρόγραμμα σε άλλα απλούστερα τα οποία όλα μαζί λειτουργούν σαν ολότητα. Συνήθως καθένα από τα απλούστερα προγράμματα επιτελεί ένα συγκεκριμένο έργο και ονομάζεται υποπρόγραμμα (Subprogram) ή αλλιώς υπορουτίνα.
8.1.1 Ιδιότητες και πλεονεκτήματα των υποπρογραμμάτων Κάθε υποπρόγραμμα πρέπει να πληροί τις 3 παρακάτω ιδιότητες : Να έχει μια είσοδο και μια έξοδο Να είναι ανεξάρτητο από τα άλλα Να μην είναι πολύ μεγάλο Ο τμηματικός προγραμματισμός όπως είδαμε σε προηγούμενο κεφάλαιο είναι βασική μεθοδολογία του δομημένου προγραμματισμού επειδή παρουσιάζει σημαντικά πλεονεκτήματα. Ας δούμε περιληπτικά μερικά από αυτά : Διευκολύνει την ανάπτυξη του προγράμματος Διευκολύνει την κατανόηση και τη διόρθωση των πιθανών λαθών του προγράμματος Απαιτεί λιγότερο χρόνο στη συγγραφή καθώς επίσης και λιγότερη προσπάθεια Επεκτείνει τις δυνατότητες των γλωσσών προγραμματισμού 8.1.2 Είδη υποπρογραμμάτων Τα υποπρογράμματα που θα μελετήσουμε χωρίζονται σε 2 κατηγορίες : Στις διαδικασίες και στις συναρτήσεις. Κάθε κατηγορία έχει τα δικά της χαρακτηριστικά τόσο στον ορισμό όσο και στη χρήση δεν παύει όμως να υπάρχει μια κοινή αντιμετώπιση σε ότι αφορά την επίλυση τέτοιων προβλημάτων. Πρέπει να επισημάνουμε ότι το κάθε υποπρόγραμμα μπορεί να καλεί ένα άλλο και επίσης μπορεί να καλείται για χρήση από ένα άλλο. Η βασική ιδέα του τμηματικού προγραμματισμού φαίνεται στο παρακάτω σχήμα.
189
Η λειτουργία του προηγούμενου σχήματος είναι η εξής : Δουλεύουμε τμηματικά χωρίζοντας το πρόγραμμα σε διαδικασίες και συναρτήσεις τις οποίες στη συνέχεια καλούμαστε να συνδέσουμε και να λειτουργήσουμε ένα μοναδικό πρόγραμμα. Ποιος όμως συνδέει τα υποπρογράμματα ; Το κύριο πρόγραμμα. Ας θεωρήσουμε ένα παράδειγμα που ένα πρόγραμμα χωρίζεται σε 1 συνάρτηση και 1 διαδικασία. Άρα έχουμε 3 διαφορετικά τμήματα συμπεριλαμβανομένου και του κυρίου προγράμματος που θα κάνει τη σύνδεση των υποπρογραμμάτων με αυτό. 8.1.3 Παράμετροι Για να επιτύχουμε τη σύνδεση των διαφορετικών κομματιών χρησιμοποιούμε κάποιες μεταβλητές. Αυτές οι μεταβλητές που χρησιμοποιούνται για να περάσουμε κάποιες τιμές από το ένα τμήμα στο άλλο, ονομάζονται παράμετροι. Τώρα θα εξετάσουμε ξεχωριστά το κάθε είδος υποπρογράμματος που αναφέραμε προηγουμένως.
190
8.2
Συναρτήσεις Συνάρτηση είναι ένας τύπος υποπρογράμματος που υπολογίζει και επιστρέφει μία μόνο τιμή με το όνομα της (όπως οι συναρτήσεις στα Μαθηματικά). Σύνταξη : Μια συνάρτηση συντάσσεται σύμφωνα με τον παρακάτω τρόπο : ΣΥΝΑΡΤΗΣΗ Όνομα(Λίστα παραμέτρων) : Τύπος Συνάρτησης ΣΤΑΘΕΡΕΣ ΣΤ1 = ... ΣΤ2 = ... ... ΜΕΤΑΒΛΗΤΕΣ ΑΚΕΡΑΙΕΣ : .... ΛΟΓΙΚΕΣ : ... ... ΑΡΧΗ ... ! Κύριο σώμα της συνάρτησης ... Όνομα τιμή που θέλω να επιστραφεί ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ
Σημαντικές παρατηρήσεις !!! Το Όνομα της συνάρτησης ακολουθεί τους ίδιους κανόνες με τα προγράμματα και τους αλγόριθμους. Η λίστα παραμέτρων είναι οι μεταβλητές που θα φέρουν τιμές μέσα στη συνάρτηση από το σημείο που την καλούμε. Ο Τύπος Συνάρτησης είναι ο τύπος δεδομένων της τιμής που επιστρέφει η συνάρτηση με το όνομα της. Έτσι μπορεί να γράψουμε : ΑΚΕΡΑΙΑ αν η τιμή που επιστρέφεται είναι ακέραιος αριθμός, ΠΡΑΓΜΑΤΙΚΗ , ΧΑΡΑΚΤΗΡΑΣ , ΛΟΓΙΚΗ ανάλογα με την κάθε περίπτωση. Οι σταθερές δηλώνονται αν υπάρχουν όπως και στο πρόγραμμα. Κατά τη δήλωση των μεταβλητών πρέπει υποχρεωτικά να δηλωθούν οι παράμετροι και όσες άλλες μεταβλητές θα χρειαστούν. Μέσα στο κύριο μέρος της συνάρτησης γίνεται ο υπολογισμός της τιμής που θέλουμε να επιστρέψουμε. Για να επιστρέψει όμως τιμή η συνάρτηση πρέπει οπωσδήποτε να την εκχωρήσουμε στο όνομα της συνάρτησης.
191
Κλήση : Μια συνάρτηση καλείται όποτε χρειαστούμε να εκτελεστεί ο υπολογισμός για τον οποίο κατασκευάστηκε. Η κλήση γίνεται γράφοντας το όνομα της συνάρτησης με τις κατάλληλες παραμέτρους. Ας δούμε ένα παράδειγμα που θα γίνει κατανοητή η χρήση των συναρτήσεων. Παράδειγμα !!! Να κατασκευαστεί συνάρτηση για τη μετατροπή βαθμών Fahrenheit σε Celsius. Στη συνέχεια να γράψετε κύριο πρόγραμμα που θα καλεί τη συνάρτηση. ΣΥΝΑΡΤΗΣΗ ΜΕΤ_ΒΑΘΜΩΝ(ΦΑΡ) : ΠΡΑΓΜΑΤΙΚΗ ΜΕΤΑΒΛΗΤΕΣ ΠΡΑΓΜΑΤΙΚΕΣ : ΦΑΡ , ΚΕΛ ΑΡΧΗ ΚΕΛ (5/9)*(ΦΑΡ – 32) ΜΕΤ_ΒΑΘΜΩΝ ΚΕΛ ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ
! ΔΗΛΩΣΗ ΣΥΝΑΡΤΗΣΗΣ ! ΥΠΟΧΡΕΩΤΙΚΗ ΔΗΛΩΣΗ ΠΑΡΑΜΕΤΡΩΝ ! ΥΠΟΛΟΓΙΣΜΟΣ ! ΦΟΡΤΩΣΗ ΤΙΜΗΣ ΕΠΙΣΤΡΟΦΗΣ ΣΤΟ ΟΝΟΜΑ
ΠΡΟΓΡΑΜΜΑ ΒΑΘΜΟΙ ΜΕΤΑΒΛΗΤΕΣ ΠΡΑΓΜΑΤΙΚΕΣ : Φ , Κ ΑΡΧΗ ΓΡΑΨΕ ‘ΔΩΣΕ ΒΑΘΜΟΥΣ ΦΑΡΕΝΑΙΤ’ ΔΙΑΒΑΣΕ Φ ! α’ ΤΡΟΠΟΣ ΚΛΗΣΗΣ ΓΡΑΨΕ ‘ΟΙ ΑΝΤΙΣΤΟΙΧΟΙ ΚΕΛΣΙΟΥ ΕΙΝΑΙ :’ , ΜΕΤ_ΒΑΘΜΩΝ(Φ) ! ! β’ ΤΡΟΠΟΣ ΚΛΗΣΗΣ Κ ΜΕΤ_ΒΑΘΜΩΝ(Φ) ΓΡΑΨΕ ‘ΟΙ ΑΝΤΙΣΤΟΙΧΟΙ ΚΕΛΣΙΟΥ ΕΙΝΑΙ :’ , Κ ! ! γ’ ΤΡΟΠΟΣ ΚΛΗΣΗΣ ( ΜΕΤΑΤΡΟΠΗ ΤΩΝ 100 ΒΑΘΜΩΝ ΦΑΡΕΝΑΙΤ) ΓΡΑΨΕ ΜΕΤ_ΒΑΘΜΩΝ(100) ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
Παρατηρήσεις : Σε αρχικό στάδιο γράψαμε πρώτα τη συνάρτηση και μετά το κύριο πρόγραμμα. Όταν προγραμματίζουμε πρώτα γράφουμε το κύριο πρόγραμμα προβλέποντας τι συναρτήσεις θα χρησιμοποιήσουμε και στη συνέχεια ακολουθούν αυτές. Το ίδιο ακριβώς ισχύει και για τις διαδικασίες. Επιπλέον πρέπει να τονίσουμε ότι η παράμετρος για την κλήση της συνάρτησης δεν είναι υποχρεωτικό να είναι διαφορετική από αυτήν που χρησιμοποιήθηκε στον ορισμό της συνάρτησης. Απλά οι παράμετροι στην κλήση πρέπει να είναι ίδιες στον αριθμό και στο είδος με αυτές στη δημιουργία της συνάρτησης. Τα ονόματα μπορεί να διαφοροποιούνται αρκεί όμως να δηλώνονται.
192
8.3
Διαδικασίες Διαδικασία είναι ένας τύπος υποπρογράμματος που μπορεί να εκτελεί όλες τις λειτουργίες ενός προγράμματος. Σύνταξη : Μια διαδικασία συντάσσεται σύμφωνα με τον παρακάτω τρόπο : ΔΙΑΔΙΚΑΣΙΑ Όνομα(Λίστα παραμέτρων) ΣΤΑΘΕΡΕΣ ΣΤ1 = ... ΣΤ2 = ... ... ΜΕΤΑΒΛΗΤΕΣ ΑΚΕΡΑΙΕΣ : .... ΛΟΓΙΚΕΣ : ... ... ΑΡΧΗ ... ! Κύριο σώμα της Διαδικασίας ... ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ
Σημαντικές παρατηρήσεις !!! Το Όνομα της διαδικασίας ακολουθεί τους ίδιους κανόνες με τα προγράμματα και τους αλγόριθμους. Η λίστα παραμέτρων χωρίζεται σε δύο μεγάλες κατηγορίες μεταβλητών. Αυτές που φέρνουν τιμές από το κύριο πρόγραμμα στη διαδικασία που θα τις ονομάζουμε στο εξής : Πραγματικές και σε αυτές που χρησιμοποιούνται για να επιστρέφουν τιμές που υπολογίστηκαν από τη διαδικασία πίσω στο κύριο πρόγραμμα και θα τις ονομάζουμε Τυπικές. Τόσο οι πραγματικές τόσο και οι τυπικές μετά το τέλος της διαδικασίας επιστρέφουν πίσω την τελευταία τιμή που πήραν. Για παράδειγμα στέλνω έναν κενό πίνακα στη διαδικασία σαν παράμετρο και επιστρέφει με τιμές. Οι σταθερές δηλώνονται αν υπάρχουν όπως και στο πρόγραμμα. Κατά τη δήλωση των μεταβλητών πρέπει υποχρεωτικά να δηλωθούν οι παράμετροι και όσες άλλες μεταβλητές θα χρειαστούν. Μέσα στο κύριο μέρος της διαδικασίας γίνονται όλες οι λειτουργίες και οι υπολογισμοί που θέλουμε σαν να γίνονταν μέσα σε κανονικό πρόγραμμα.
Κλήση : Μια διαδικασία καλείται στο σημείο που πρέπει να γίνουν οι λειτουργίες για τις οποίες την κατασκευάσαμε. Η κλήση γίνεται γράφοντας την εντολή ΚΑΛΕΣΕ Όνομα(Λίστα παραμέτρων) σε μια ξεχωριστή γραμμή του κυρίου προγράμματος. Η Λίστα παραμέτρων στην κλήση είναι προαιρετική.
193
Ας δούμε ένα παράδειγμα που θα γίνει κατανοητή η χρήση των διαδικασιών. Παράδειγμα !!! Να κατασκευαστεί διαδικασία η οποία θα δέχεται έναν κενό πίνακα 100 ακεραίων, θα διαβάζει τα στοιχεία του, θα υπολογίζει το μέσο όρο και θα επιστρέφει το αποτέλεσμα. Στη συνέχεια γράψτε το κατάλληλο κύριο πρόγραμμα που καλεί τη διαδικασία. ΔΙΑΔΙΚΑΣΙΑ ΠΙΝΑΚΑΣ(Α , ΜΟ) ΜΕΤΑΒΛΗΤΕΣ ΑΚΕΡΑΙΕΣ : Α[100] , Ι ΠΡΑΓΜΑΤΙΚΕΣ : ΜΟ ΑΡΧΗ ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ 100 ΔΙΑΒΑΣΕ Α[Ι] ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ΜΟ 0 ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ 100 ΜΟ ΜΟ + Α[Ι] ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ΜΟ Μ0 / 100 ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ
! ΔΗΛΩΣΗ ΔΙΑΔΙΚΑΣΙΑΣ ! ΔΗΛΩΣΗ ΠΑΡΑΜΕΤΡΩΝ ΚΑΙ ΛΟΙΠΩΝ ΜΕΤΑΒΛΗΤΩΝ
! ΕΙΣΑΓΩΓΗ ΣΤΟΙΧΕΙΩΝ ΣΤΟΝ ΠΙΝΑΚΑ
! ΥΠΟΛΟΓΙΣΜΟΣ ΜΕΣΟΥ ΟΡΟΥ
ΠΡΟΓΡΑΜΜΑ ΜΕΣΟΣ_ΠΙΝΑΚΑ ΜΕΤΑΒΛΗΤΕΣ ΑΚΕΡΑΙΕΣ : Χ[100] ΠΡΑΓΜΑΤΙΚΕΣ : ΜΕΣΟΣ ΑΡΧΗ ΚΑΛΕΣΕ ΠΙΝΑΚΑΣ(Χ , ΜΕΣΟΣ) ! ΚΛΗΣΗ ΔΙΑΔΙΚΑΣΙΑΣ ΓΡΑΨΕ ‘ Ο ΜΕΣΟΣ ΟΡΟΣ=’, ΜΕΣΟΣ ! ΚΑΛΕΣΑΜΕ ΤΗ ΔΙΑΔΙΚΑΣΙΑ ΜΕ ΠΑΡΑΜΕΤΡΟΥΣ Χ ΚΑΙ ΜΕΣΟΣ. ΟΧΙ ΜΕ Α ΚΑΙ ΜΟ. ΒΕΒΑΙΑ Η ! ΑΝΤΙΣΤΟΙΧΙΑ ΤΩΝ ΠΑΡΑΜΕΤΡΩΝ ΕΙΝΑΙ ΜΙΑ ΠΡΟΣ ΜΙΑ. ΔΗΛΑΔΗ Ο ΠΙΝΑΚΑΣ Χ ΠΗΓΕ ΣΤΗ ! ΔΙΑΔΙΚΑΣΙΑ ΚΕΝΟΣ ΠΗΡΕ ΤΗ ΘΕΣΗ ΤΟΥ Ο Α , ΓΕΜΙΣΕ ΜΕ ΣΤΟΙΧΕΙΑ, Η ΜΕΤΑΒΛΗΤΗ ΜΕΣΟΣ ΠΗΓΕ ! ΚΕΝΗ ΥΠΟΛΟΓΙΣΤΗΚΕ Ο ΜΟ ΚΑΙ ΕΠΕΣΤΡΕΨΑΝ ΟΙ ΤΙΜΕΣ ΣΤΟ ΚΥΡΙΟ ΠΡΟΓΡΑΜΜΑ ΜΕΤΑ ΤΟ ! ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ. ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
Παρατήρηση : Για τα ονόματα των παραμέτρων ισχύουν τα ίδια ακριβώς που ισχύουν και στη συνάρτηση. Επιλέξαμε διαφορετικά στην σύνταξη και άλλα στην κλήση. Θα μπορούσαμε να χρησιμοποιούσαμε τα ίδια αλλά θα έπρεπε να δηλωθούν υποχρεωτικά τόσο στη διαδικασία όσο και στο κύριο πρόγραμμα.
Β.
Ερωτήσεις 8.1 Τι γνωρίζετε για τον τμηματικό προγραμματισμό ;
8.2 Ποια είναι τα χαρακτηριστικά που πρέπει να διακρίνουν ένα υποπρόγραμμα ; Να τα αναλύσετε. 8.3 Να αναπτύξετε τα πλεονεκτήματα του τμηματικού προγραμματισμού. 8.4 Ποια τα δύο είδη υποπρογραμμάτων που χρησιμοποιούμε και να δοθεί ορισμός για το καθένα . 194
8.5 Τι γνωρίζετε για τις παραμέτρους ( γενικά – συνάρτηση – διαδικασία ) ; 8.6 Να δοθεί η γενική μορφή σύνταξης (ορισμού) και κλήσης μιας διαδικασίας. 8.7 Να δοθεί η γενική μορφή σύνταξης (ορισμού) και κλήσης μιας συνάρτησης. 8.8 Να αναφέρετε τους κανόνες που πρέπει να ακολουθούν οι λίστες των παραμέτρων κατά την κλήση ενός υποπρογράμματος.
8.9 Ποια η σημασία των δομών δεδομένων στον τμηματικό προγραμματισμό ; Γ.
Λυμένα Θέματα 8.10 Να κατασκευάσετε διαδικασία που θα δέχεται έναν ακέραιο αριθμό και θα
επιστρέφει σε λογική μεταβλητή Αληθής αν ο αριθμός είναι πρώτος και Ψευδής αν είναι σύνθετος. Στη συνέχεια γράψτε κύριο πρόγραμμα που θα εμφανίζει τους πρώτους αριθμούς από το 2 έως το 1000. Υπόδειξη : Πρώτος είναι ένας αριθμός όταν οι μόνοι του διαιρέτες είναι το 1 και ο ίδιος ο αριθμός. Όλοι οι άλλοι αριθμοί είναι σύνθετοι.
Σε ότι αφορά τη διαδικασία αναγνώρισης πρώτων αριθμών θα μετρήσουμε το πλήθος των διαιρετών. Στην περίπτωση που το πλήθος είναι 2 τότε ο αριθμός είναι πρώτος. Ας δούμε τη λύση που παρουσιάζει ιδιαίτερο ενδιαφέρον.
ΔΙΑΔΙΚΑΣΙΑ ΠΡΩΤΟΙ(Α , FLAG) ΜΕΤΑΒΛΗΤΕΣ ΑΚΕΡΑΙΕΣ : Α , Ι , ΠΔ ΛΟΓΙΚΕΣ : FLAG ΑΡΧΗ ΠΔ 0 FLAG ΨΕΥΔΗΣ ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ Α ΑΝ Α MOD Ι = 0 ΤΟΤΕ ΠΔ ΠΔ + 1 ΤΕΛΟΣ_ΑΝ ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ΑΝ ΠΔ = 2 ΤΟΤΕ FLAG ΑΛΗΘΗΣ ΤΕΛΟΣ_ΑΝ ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ
ΠΡΟΓΡΑΜΜΑ ΠΡ_ΑΡ ΜΕΤΑΒΛΗΤΕΣ ΑΚΕΡΑΙΕΣ : Χ ΛΟΓΙΚΕΣ : Λ ΑΡΧΗ ΓΙΑ Χ ΑΠΟ 2 ΜΕΧΡΙ 1000 ΚΑΛΕΣΕ ΠΡΩΤΟΙ(Χ , Λ) ΑΝ Λ = ΑΛΗΘΗΣ ΤΟΤΕ ΓΡΑΨΕ Χ , ‘ ΠΡΩΤΟΣ’ ΤΕΛΟΣ_ΑΝ ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
195
8.11 Κατά την ημέρα του εορτασμού της εργατικής Πρωτομαγιάς 2010 μια επιχείρηση αποφάσισε να κρατήσει στατιστικά στοιχεία για την κατάσταση των απεργών υπαλλήλων της. Συγκεκριμένα κατασκευάστηκε πρόγραμμα που εκτελεί τις παρακάτω λειτουργίες : α.
Εισαγωγή ονομάτων των 75 εργατών σε πίνακα
β.
Εισαγωγή σε κατάλληλο πίνακα με χρήση διαδικασίας κατά πόσο ένας εργάτης απεργεί ή όχι. Συγκεκριμένα αν στον πίνακα υπάρχει 1 ο εργάτης απεργεί ενώ αν υπάρχει 0 ο εργάτης δεν απεργεί. Σε διαφορετική περίπτωση θα εμφανίζονται κατάλληλα μηνύματα.
γ.
Υπολογισμός ποσοστού απεργών με χρήση συνάρτησης.
δ.
Διαχωρισμός του πίνακα των εργατών σε απεργούς και μη.
Πρόκειται για μια σύνθετη άσκηση που χρησιμοποιεί 2 διαδικασίες και μια συνάρτηση. Επιπλέον γίνεται φανερός ο χειρισμός των πινάκων μέσα στα υποπρογράμματα. ΠΡΟΓΡΑΜΜΑ ΠΡΩΤΟΜΑΓΙΑ ΣΤΑΘΕΡΕΣ Ν=75 ΜΕΤΑΒΛΗΤΕΣ ΑΚΕΡΑΙΕΣ : Ι ΧΑΡΑΚΤΗΡΕΣ : ΕΡΓ[Ν] , Ε1[Ν] , Ε2[Ν] ΛΟΓΙΚΕΣ : ΑΠΕΡ[Ν] ΠΡΑΓΜΑΤΙΚΕΣ : ΠΟΣ ΑΡΧΗ ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ Ν ΓΡΑΨΕ ‘ΔΩΣΕ ΣΤΟΙΧΕΙΑ ΤΟΥ ‘,Ι,’ ΕΡΓΑΖΟΜΕΝΟΥ’ ΔΙΑΒΑΣΕ ΕΡΓ[Ι] ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ΚΑΛΕΣΕ ΕΙΣΑΓΩΓΗ(ΑΠΕΡ , ΕΡΓ) ΠΟΣ ΠΟΣΟΣΤΟ(ΑΠΕΡ) ΓΡΑΨΕ ‘ ΤΟ ΠΟΣΟΣΤΟ ΤΩΝ ΑΠΕΡΓΩΝ ΕΙΝΑΙ :’,ΠΟΣ ΚΑΛΕΣΕ ΔΙΑΧ(ΕΡΓ , Ε1 , Ε2 , ΑΠΕΡ) ΓΡΑΨΕ ‘ΟΙ ΑΠΕΡΓΟΙ ΕΙΝΑΙ :’ ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ Ν ΓΡΑΨΕ Ε1[Ι] ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
196
ΔΙΑΔΙΚΑΣΙΑ ΕΙΣΑΓΩΓΗ(Χ,Α) ΣΤΑΘΕΡΕΣ Ν=75 ΜΕΤΑΒΛΗΤΕΣ ΑΚΕΡΑΙΕΣ : Ι ΧΑΡΑΚΤΗΡΕΣ : Α[Ν] ΛΟΓΙΚΕΣ : Χ[Ν] ΑΡΧΗ ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ Ν ΓΡΑΨΕ ‘Ο ‘,Α[Ι], ‘ ΑΠΕΡΓΕΙ ;’ ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ ΔΙΑΒΑΣΕ Χ[Ι] ΜΕΧΡΙΣ_ΟΤΟΥ (Χ[Ι] = 0) Ή (Χ[Ι] = 1) ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ ΣΥΝΑΡΤΗΣΗ ΠΟΣΟΣΤΟ(ΑΠΕΡ) : ΠΡΑΓΜΑΤΙΚΗ ΣΤΑΘΕΡΕΣ Ν=75 ΜΕΤΑΒΛΗΤΕΣ ΑΚΕΡΑΙΕΣ : Ι ΛΟΓΙΚΕΣ : ΑΠΕΡ[Ν] ΠΡΑΓΜΑΤΙΚΕΣ : Π ΑΡΧΗ Π0 ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ Ν ΑΝ ΑΠΕΡ[Ι] = 1 ΤΟΤΕ Π Π+1 ΤΕΛΟΣ_ΑΝ ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ΠΟΣΟΣΤΟ (Π/Ν)*100 ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ ΔΙΑΔΙΚΑΣΙΑ ΔΙΑΧ(ΕΡΓ , Ε1 , Ε2 , ΑΠΕΡ) ΣΤΑΘΕΡΕΣ Ν=75 ΜΕΤΑΒΛΗΤΕΣ ΑΚΕΡΑΙΕΣ : Ι , Κ , Λ ΧΑΡΑΚΤΗΡΕΣ : ΕΡΓ[Ν] , Ε1[Ν] , Ε2[Ν] ΛΟΓΙΚΕΣ : ΑΠΕΡ[Ν] ΑΡΧΗ Κ0 Λ0 ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ Ν ΑΝ ΑΠΕΡ[Ι] = 1 ΤΟΤΕ ΚΚ+1 Ε1[Κ] ΕΡΓ[Ι] ΑΛΛΙΩΣ ΛΛ+1 Ε2[Λ] ΕΡΓ[Ι] ΤΕΛΟΣ_ΑΝ ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ 197
8.12 Να σχηματίσετε τον πίνακα τιμών του παρακάτω προγράμματος.Τι θα εκτυπωθεί; ΠΡΟΓΡΑΜΜΑ Πίνακας_Τιμών2 ΜΕΤΑΒΛΗΤΕΣ ΑΚΕΡΑΙΕΣ: Α, Β, Γ ΑΡΧΗ Α3 Β 13 Γ2 ΓΡΑΨΕ Α, Β, Γ ΚΑΛΕΣΕ Επεξεργασία_Τιμών2 (Β, Γ) ΓΡΑΨΕ Α, Β, Γ ΚΑΛΕΣΕ Επεξεργασία_Τιμών2 (Γ, Α) ΓΡΑΨΕ Α, Β, Γ ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ ΔΙΑΔΙΚΑΣΙΑ Επεξεργασία_Τιμών2 (αριθμός1, αριθμός2) ΜΕΤΑΒΛΗΤΕΣ ΑΚΕΡΑΙΕΣ: αριθμός1, αριθμός2 ΑΡΧΗ αριθμός1 αριθμός1 DIV 2 αριθμός2 αριθμός2 ^ 3 ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ Περιγραφή ενέργειας που εκτελείται Κυρίως πρόγραμμα : εντολές εκχώρησης η
1 κλήση διαδικασίας : με παραμέτρους Β=13 , Γ=2 Εκτέλεση διαδικασίας : εντολές εκχώρησης Επιστροφή τιμών Β=6 , Γ=8 στο κυρίως πρόγραμμα η
2 κλήση διαδικασίας : με παραμέτρους Γ=8 , Α=3 Εκτέλεση διαδικασίας : εντολές εκχώρησης Επιστροφή τιμών Γ=4 , Α=27 στο κυρίως πρόγραμμα:
Κυρίως Πρόγραμμα Υποπρόγραμμα Α Β Γ αριθμός1 αριθμός2 3 13 2 13 2 6 8 3 6 8 8 3 4 27 27 6 4
Στην πρώτη εντολή ΓΡΑΨΕ θα εκτυπωθούν οι τιμές: 3, 13, 2 Στην δεύτερη εντολή ΓΡΑΨΕ θα εκτυπωθούν οι τιμές: 3, 6, 8 Στην τρίτη εντολή ΓΡΑΨΕ θα εκτυπωθούν οι τιμές: 27, 6, 4
198
Δ.
Θέματα για λύση
1.
ΘΕΜΑΤΑ ΜΕ ΣΥΝΑΡΤΗΣΕΙΣ
8.13 Α. Να γραφτεί συνάρτηση που θα υπολογίζει το μήκος ενός κύκλου ακτίνας R. Β. Στη συνέχεια να γράψετε κύριο πρόγραμμα που θα διαβάζει 5 διαφορετικές ακτίνες κύκλων και θα εμφανίζει το μήκος του κάθε κύκλου χρησιμοποιώντας τη συνάρτηση του υποερωτήματος α.
8.14 Α. Να γραφεί πρόγραμμα στη «ΓΛΩΣΣΑ» που θα εισάγονται οι πλευρές ενός τριγώνου και με τη βοήθεια του τύπου του Ήρωνα θα υπολογίζεται το εμβαδόν του τριγώνου. Β.
Στη συνέχεια να μετατρέψετε το παραπάνω πρόγραμμα ώστε να χρησιμοποιεί συνάρτηση για τον υπολογισμό του εμβαδού και να κατασκευάσετε και τη συνάρτηση.
8.15 Οι υπάλληλοι μιας εταιρείας που ασχολείται με το εμπόριο Η/Υ έχουν κρατήσεις 16% επί του μισθού τους. Α.
Να δημιουργήσετε συνάρτηση η οποία δέχεται το μισθό ενός υπαλλήλου και θα υπολογίζει τις κρατήσεις.
Β.
Να γραφεί πρόγραμμα στη «ΓΛΩΣΣΑ» που θα υλοποιεί τα παρακάτω : 1. Θα διαβάζει το όνομα και το μισθό των 30 υπαλλήλων της εταιρίας. 2. Θα εμφανίζει το όνομα και το καθαρό ποσό που θα εισπράξει ο κάθε υπάλληλος.
8.16 Να γραφεί συνάρτηση που θα μετατρέπει τους βαθμούς Φαρενάιτ σε Κελσίου και πρόγραμμα στη «ΓΛΩΣΣΑ» που θα κάνει τη μετατροπή για τους παρακάτω βαθμούς : 5 -10 , 0 , 10 , ... , 100 oF. Δίνεται ότι C = ⋅ (F − 32) . Στη συνέχεια μετατρέψτε το 9 παραπάνω πρόγραμμα ώστε να μη χρησιμοποιεί συνάρτηση. 8.17 Να δημιουργήσετε συνάρτηση για τον υπολογισμό του εμβαδού κυκλικού τομέα μο μοιρών και ακτίνας ρ σύμφωνα με τον τύπο της γεωμετρίας E =
π ⋅ ρ 2 ⋅ µο
. Κατόπιν 3600 κατασκευάστε πρόγραμμα στη «ΓΛΩΣΣΑ» το οποίο θα διαβάζει την ακτίνα ενός κυκλικού τομέα και θα τοποθετεί σε κατάλληλο πίνακα ΕΜΒ τα εμβαδά για κυκλικούς τομείς από 1ο έως και 360ο. Στη συνέχεια το πρόγραμμα θα εμφανίζει τα ζεύγη ( Γωνία – Εμβαδόν ) με αντίστροφη σειρά.
8.18 Να κατασκευάσετε συνάρτηση στη «ΓΛΩΣΣΑ» η οποία θα δέχεται 2 μονοδιάστατους πίνακες Α, Β ίδιας διάστασης, θα συγκρίνει αν ο Α περιέχει σε όλες τις θέσεις πολλαπλάσια των αντίστοιχων στοιχείων του Β και θα επιστρέφει τις τιμές Αληθής ή Ψευδής ανάλογα με την περίπτωση. 199
Στη συνέχεια ένα κύριο προγραμμα θα διαβάζει δύο πίνακες Χ[100], Υ[100] ακεραίων αριθμών και θα εμφανίζει το μήνυμα ‘Ο Χ περιέχει τα πολλαπλάσια των στοιχείων του Υ’ χρησιμοποιώντας την παραπάνω συνάρτηση.
8.19 Να γίνει πρόγραμμα το οποίο θα διαβάζει 100 ακέραιους αριθμούς και θα εμφανίζει αν ο καθένας από αυτούς είναι άρτιος ή περιττός. Σημειώνεται οτι ο έλεγχος για το αν ένας αριθμός είναι άρτιος ή περιττός θα γίνεται μέσα σε συνάρτηση που θα επιστρέφει αληθής η ψευδής.
8.20 Μία εταιρεία απασχολεί 70 υπαλλήλους. Οι μηνιαίες αποδοχές κάθε υπαλλήλου κυμαίνονται από 300 έως και 1500 €. Α.
Να γράψετε πρόγραμμα στη «ΓΛΩΣΣΑ» που για κάθε υπάλληλο 1. Να διαβάζει το ονοματεπώνυμο (διάφορο του κενού) και τις μηνιαίες αποδοχές και να ελέγχει την ορθότητα καταχώρησης των στοιχείων. 2. Να υπολογίζει το ποσό του φόρου κλιμακωτά με κλήσεις της συνάρτησης ΦΟΡΟΣ(ΜΙΣΘΟΣ), συμφωνά με τον επόμενο πίνακα: Μηνιαίες αποδοχές Έως και 700 € Άνω των 700 € έως και 900 € Άνω των 900 € έως και 1.100 € Άνω των 1.100 €
Ποσοστό κράτησης φόρου 0% 15% 30% 40%
3. Να εμφανίζει το ονοματεπώνυμο, τις μηνιαίες αποδοχές, το φόρο και τις καθαρές μηνιαίες αποδοχές, που προκύπτουν μετά την αφαίρεση του φόρου. Β.
Τέλος, το παραπάνω πρόγραμμα να υπολογίζει και να εμφανίζει. 1. Το συνολικό ποσό που αντιστοιχεί στο φόρο όλων των υπαλλήλων, 2. Το συνολικό ποσό που αντιστοιχεί στις καθαρές μηνιαίες αποδοχές όλων των υπαλλήλων.
8.21 Να γίνει συνάρτηση που θα δεχεται το μισθό ενός υπαλλήλου και θα υπολογίζει το φόρο που πρέπει να πληρώσει σύμφωνα με τον παρακάτω πίνακα. Μισθός Φόρος 1 – 1000 € 5% 1001 – 2500 € 7,5% 2501 - ..... € 15% Στη συνέχεια να γίνει κύριο πρόγραμμα το οποίο θα διαβάζει για 1000 εργαζόμενους το μισθό και το πλήθος παιδιών και θα υπολογίζει το φόρο ως εξής. Για οικογένειες με λιγότερα από 4 παιδιά ο φόρος υπολογίζεται από τη σύναρτηση, ενώ για τις υπόλοιπες ο φόρος είναι 50 €. Τέλος να εμφανίζεται ο συνολικός φόρος που θα εισπραχθεί και ο μέσος όρος φόρου.
200
8.22 Να γίνει συνάρτηση που θα δέχεται ένα πίνακα Α[150] ακεραίων και θα επιστρεφει το μέγιστο του στοιχείο. Στη συνέχεια να γίνει κύριο προγραμμα που θα διαβάζει ένα πίνακα Β[150] και θα εμφανίζει το μέγιστο του κάνοντας χρήσης της συνάρτησης.
8.23 Να γίνει συνάρτηση που θα δέχεται 2 πίνακες Α[150,30] και Β[150,30] και θα υπολογίζει το ποσοστό των ίσων τους στοιχείων. Στη συνέχεια να γίνει κύριο πρόγραμμα που θα διαβάζει 2 κατάλληλους πίνακες και με χρήση της συνάρτησης θα εμφανίζει αν είναι ίσοι ή όχι.
8.24 Να γίνει συνάρτηση που θα υλοποιεί την x− y+ z ,x >0 f ( x, y , z ) = 2 2 x + y ⋅ z , x < 0 . Στη συνέχεια να γίνει κύριο πρόγραμμα που θα διαβάζει 10 αριθμούς x, ένα y και ένα z και θα εμφανίζει την τιμή της συνάρτησης. Να γίνει έλεγχος ορθότητας ώστε το x να μην είναι 0.
8.25 Α. Να κατασκευάσετε συνάρτηση η οποία θα δέχεται ένα πίνακα Α με Ν στοιχεία και θα επιστρέφει το μέσο όρο του. Β.
Να γίνει πρόγραμμα το οποίο θα διαβάζει ένα πίνακα Α[30] και στη συνέχεια θα εμφανίζει το μέσο όρο του με τη βοήθεια της συνάρτησης που κατασκευάσατε.
8.26 Α. Να κατασκευάσετε συνάρτηση η οποία θα δέχεται ένα πίνακα Α με Ν στοιχεία και θα επιστρέφει το μέγιστο στοιχείο του πίνακα. Β.
Να γίνει πρόγραμμα το οποίο θα διαβάζει ένα πίνακα Α[300] και στη συνέχεια θα εμφανίζει το μέγιστο του με τη βοήθεια της συνάρτησης που κατασκευάσατε.
8.27 Να γίνει πρόγραμμα το οποίο θα διαβάζει ένα πίνακα Β[600,500] και θα εμφανίζει το μέγιστο στοιχείο της κάθε στήλης. Ο υπολογισμός του μεγίστου στοιχείου μιας στήλης θα γίνεται με τη βοήθεια κατάλληλης συνάρτησης που θα κατασκευάσετε.
8.28 Α. Να γίνει πρόγραμμα το οποίο θα διαβάζει ένα πίνακα Α[30,80] και στη συνέχεια θα δημιουργεί κατάλληλο μονοδιάστατο πίνακα στον οποίο θα τοποθετεί το μέσο όρο κάθε γραμμής του πίνακα. Β.
Ο υπολογισμός του μέσου όρου μιας γραμμής θα υπολογίζεται από συνάρτηση που θα κατασκευάσετε για το σκοπό αυτό.
201
2.
ΘΕΜΑΤΑ ΜΕ ΔΙΑΔΙΚΑΣΙΕΣ
8.29 Να γραφεί πρόγραμμα στη «ΓΛΩΣΣΑ» που θα διαβάζει 100 αριθμούς, θα τους αποθηκεύει σ’ ένα μονοδιάστατο πίνακα Π και στη συνέχεια θα ταξινομεί τον πίνακα με τη μέθοδο της φυσαλίδας. Για την αντιμετάθεση των μεταβλητών ορίστε διαδικασία.
8.30 Να γράψετε διαδικασία που να δέχεται έναν αριθμό (ακέραιος Χ) και έναν ακόμη αριθμό (ακέραιος Ν) και θα επιστρέφει τη δύναμη ΧΝ χωρίς τη χρήση του τελεστή ^. Δημιουργήστε ένα πρόγραμμα που θα διαβάζει έναν ακέραιο για βάση, 10 εκθέτες διαφορετικούς από το 0 (έλεγχος) και θα τυπώνει λίστα με τις δυνάμεις που υπολογίστηκαν. 8.31 Α. Να οριστεί μια διαδικασία ΕΙΣΑΓΩΓΗ(Α)
η οποία θα εισάγει θετικούς αριθμούς σ’ ένα πίνακα Α[100]. Σε περίπτωση που ο αριθμός που δίνεται δεν ικανοποιεί τους περιορισμούς, θα τυπώνεται μήνυμα λάθους και θα ξαναδίνεται ο αριθμός.
Β.
Στη συνέχεια να γίνει κυριο πρόγραμμα το οποίο θα καλεί τη διαδικασία που διαβάζει πίνακα Β με 100 αριθμούς και θα εμφανίζει το μέγιστο στοιχείο του.
8.32 Να κατασκευάσετε διαδικασία στη «ΓΛΩΣΣΑ» ΤΙΜΕΣ(Α, κ, mo, μεγ, ελαχ) η οποία να υπολογίζει το μέσο όρο (mo), τη μέγιστη (μεγ) και την ελάχιστη (ελαχ) τιμή της κοστης γραμμής του πίνακα ακεραίων Α[100,100]. 8.33 Μια εταιρία κινητής τηλεφωνίας χρησιμοποιεί για την κοστολόγηση των πελατών της κλιμακωτή χρέωση σύμφωνα με τον παρακάτω πίνακα. Πάγιο Γραπτό μήνυμα Χρόνος τηλεφωνημάτων Για τα πρώτα 500'' Για τα 501'' - 800'' Για τα 801'' και άνω
5€ 0.09 € / μήνυμα 0.0045 € / δευτερ. 0.0026 €/ δευτερ. 0.0015 €/ δευτερ.
Α.
Να γραφεί πρόγραμμα στη «ΓΛΩΣΣΑ» το οποίο θα διαβάζει τον αριθμό των γραπτών μηνυμάτων και το χρόνο των τηλεφωνημάτων ενός συνδρομητή.
Β.
Να ορίσετε διαδικασία η οποία θα υπολογίζει και θα εμφανίζει την συνολική μηνιαία χρέωση του συνδρομητή.
8.34 Ένα ιδιωτικό εκπαιδευτήριο έχει 30 μαθητές Γ’ λυκείου που παρακολουθούν το μάθημα Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον της τεχνολογικής κατεύθυνσης. Όλοι οι μαθητές κατά τη διάρκεια της χρονιάς εξετάστηκαν σε 6 διαγωνίσματα. Να γραφεί πρόγραμμα στη «ΓΛΩΣΣΑ» το οποίο θα υλοποιεί τα παρακάτω : α.
Θα καταχωρεί σε κατάλληλους πίνακες τα ονόματα και τους βαθμούς των μαθητών στα διαγωνίσματα, χρησιμοποιώντας διαδικασία.
β.
Σε έναν άλλο πίνακα θα καταχωρείται ο μέσος όρος του κάθε μαθητή.
202
γ.
Θα ταξινομεί τον πίνακα των μέσων όρων σε φθίνουσα σειρά. Η αντιμετάθεση των μεταβλητών να υλοποιηθεί με χρήση διαδικασίας.
δ.
Θα εμφανίζει τα ονόματα των 3 καλύτερων μαθητών οι οποίοι θα λάβουν ένα μικρό δώρο λίγες μέρες πριν τις εξετάσεις.
ε.
Να κατασκευάσετε τα υποπρογράμματα που χρησιμοποιήσατε παραπάνω.
8.35 Να γίνει πρόγραμμα το οποίο: α.
Να διαβάζει 2 πραγματικούς αριθμούς α, β.
β.
Να λύνει την εξίσωση αx+β=0.
ΣΗΜΕΙΩΣΕΙΣ: Η επίλυση της εξίσωσης να γίνεται με ΔΙΑΔΙΚΑΣΙΑ της μορφής Επίλυση_εξίσωσης(α, β, x, είδος) όπου: α, β: Οι τιμές των συντελεστών της εξίσωσης (είσοδοι ΔΙΑΔΙΚΑΣΙΑΣ) χ: Η λύση της εξίσωσης (έξοδος ΔΙΑΔΙΚΑΣΙΑΣ) είδος: ΑΚΕΡΑΙΑ μεταβλητή (έξοδος ΔΙΑΔΙΚΑΣΙΑΣ) που περιγράφει το είδος της εξίσωσης ως εξής: 1 = Η εξίσωση έχει μια λύση 2 = Η εξίσωση είναι ΑΟΡΙΣΤΗ 3 = Η εξίσωση είναι ΑΔΥΝΑΤΗ Η εμφάνιση της τιμής του x (στο κυρίως πρόγραμμα) να γίνεται μόνο αν εξίσωση έχει μία λύση. Αλλιώς να εμφανίζεται ενημερωτικό μήνυμα
3.
ΘΕΜΑΤΑ ΠΟΥ ΖΗΤΟΥΝ ΕΚΤΕΛΕΣΗ
8.36 Δίνεται η συνάρτηση : ΣΥΝΑΡΤΗΣΗ ΥΠΟΛ(Α,Β,Γ) : ΠΡΑΓΜΑΤΙΚΗ ΜΕΤΑΒΛΗΤΕΣ ΠΡΑΓΜΑΤΙΚΕΣ : Α,Β,Γ ΑΡΧΗ ΑΝ Α > Β ΤΟΤΕ ΥΠΟΛ Α + Γ + Β ΑΛΛΙΩΣ_ΑΝ Β > Α – Γ ΤΟΤΕ ΥΠΟΛ Β*Α*Γ ΑΛΛΙΩΣ ΥΠΟΛ 0 ΤΕΛΟΣ_ΑΝ ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ Να βρείτε τι θα εμφανίσουν οι εντολές α.
ΓΡΑΨΕ ΥΠΟΛ(13,5,4)
β.
ΓΡΑΨΕ ΥΠΟΛ(0,5,1)
γ.
ΓΡΑΨΕ ΥΠΟΛ(0,0,0)
203
8.37 Δίνεται η παρακάτω συνάρτηση : Συνάρτηση Καθαρός(μισθός,Ε1,Ε2) : πραγματική Μεταβλητές Πραγματικές : μισθός , λ1 , λ2 Χαρακτήρες : Ε1 , Ε2 Αρχή Αν Ε1 = ‘Ν’ τότε λ1 1 αλλιώς λ1 0 τελος_αν Αν Ε2 = ‘Ν’ τότε λ2 1 αλλιώς λ2 0 τελος_αν Καθαρός μισθός/(1+λ1*15/100 + λ2*20/100) Τέλος_συνάρτησης Ποια τιμή θα καταχωρηθεί στη μεταβλητή Π μετά από τις παρακάτω εντολές : α.
Κ ‘Ο’ Λ ‘Ν’ Μ 1500 Π Καθαρός(Μ, Κ, Λ)
β.
Κ ‘Ν’ Λ ‘Ν’ Μ 1200 Π Καθαρός(Μ, Κ, Λ)
8.38 Να σχηματίσετε τον πίνακα τιμών του παρακάτω προγράμματος. Τι θα εκτυπωθεί; ΠΡΟΓΡΑΜΜΑ Πίνακας_Τιμών ΜΕΤΑΒΛΗΤΕΣ ΑΚΕΡΑΙΕΣ: Α, Β ΑΡΧΗ Α 2 Β 19 ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ ΚΑΛΕΣΕ Επεξεργασία_Τιμών5 (Β, Α) ΓΡΑΨΕ Α, Β ΜΕΧΡΙΣ_ΟΤΟΥ (Α > Β) ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ ΔΙΑΔΙΚΑΣΙΑ Επεξεργασία_Τιμών(αριθμός1, αριθμός2) ΜΕΤΑΒΛΗΤΕΣ ΑΚΕΡΑΙΕΣ: αριθμός1, αριθμός2 ΑΡΧΗ αριθμός1 αριθμός1 - 2 αριθμός2 αριθμός2 + 5 ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ
204
8.39 Δίνεται το παρακάτω τμήμα προγράμματος και μια συνάρτηση: Διάβασε Κ L3 Α –1 Όσο Α < 8 επανάλαβε Αν Κ ΜΟD L = 0 τότε Χ G(Α, L) αλλιώς ΧΑ+L Τέλος_αν γραψε L, Α, Χ Α Α+3 L L+ 1 Τέλος_επανάληψης
Συνάρτηση G(Y, X) : Ακέραια Μεταβλητές Ακέραιες: X, Y Αρχή G (X + Y) DIV 3 Τέλος_συνάρτησης.
α.
Να γίνει πίνακας τιμών για Κ=8
β.
Να βρείτε τι θα εμφανιστεί.
8.40 Δίνεται το παρακάτω πρόγραμμα και υποπρογράμμα: ΠΡΟΓΡΑΜΜΑ Κύριο ΜΕΤΑΒΛΗΤΕΣ ΑΚΕΡΑΙΕΣ : Α,Β,Γ,Δ ΑΡΧΗ ΔΙΑΒΑΣΕ Α, Β, Γ, Δ ΚΑΛΕΣΕ ΑΡΙΘΜΟΙ(Α, Β, Δ, Γ) ΓΡΑΨΕ Α, Δ, Β, Γ ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
ΔΙΑΔΙΚΑΣΙΑ ΑΡΙΘΜΟΙ(Β, Γ, Δ, Α) ΜΕΤΑΒΛΗΤΕΣ ΑΚΕΡΑΙΕΣ : Α,Β,Γ,Δ ΑΡΧΗ ΑΑ+2 ΒΒ-3 ΓΑ+Β Δ Α - 3*Δ + Β ΓΡΑΨΕ Α, Β, Γ, Δ ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ
Να βρείτε τι θα εμφανίσει αν εισαχθούν ως τιμές το Α = 5, Β = 4, Γ= 3, Δ = 0
8.41 Δίνεται το παρακάτω πρόγραμμα που χρησιμοποιεί μια διαδικασία. Κατασκευάστε πίνακα τιμών για όλες τις μεταβλητές που περιέχει, καθώς επίσης και πίνακα με τα στοιχεία που θα εμφανιστούν. ΠΡΟΓΡΑΜΜΑ Πίνακας_Τιμών ΜΕΤΑΒΛΗΤΕΣ ΑΚΕΡΑΙΕΣ: α, β ΠΡΑΓΜΑΤΙΚΕΣ: γ ΑΡΧΗ α2 β 855 γ5 ΟΣΟ β >= γ ΕΠΑΝΑΛΑΒΕ αα+2 ΚΑΛΕΣΕ Υπολογισμοί(α, β, γ) ΓΡΑΨΕ α, β, γ ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
ΔΙΑΔΙΚΑΣΙΑ Υπολογισμοί(x, y, z) ΜΕΤΑΒΛΗΤΕΣ ΑΚΕΡΑΙΕΣ: x, y ΠΡΑΓΜΑΤΙΚΕΣ: z ΑΡΧΗ y y DIV x z2*z+x ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ
205
4.
ΕΠΑΝΑΛΗΠΤΙΚΑ – ΣΥΝΔΥΑΣΤΙΚΑ ΘΕΜΑΤΑ
8.42 Να γράψετε υποπρόγραμμα που θα δέχεται μια γωνία σε μοίρες (μ), θα τη μετατρέπει σε ακτίνια (α) και θα επιστρέφει την συνεφαπτομένη της γωνίας (υπενθυμίζεται ότι η συνεφαπτομένη μιας γωνίας είναι η αντίστροφη τιμή της εφαπτομένης της γωνίας αυτής και ότι
α µο = ). π 180ο
8.43 Να γράψετε υποπρόγραμμα που να διαβάζει τα στοιχεία ενός πίνακα Χ[100] τα οποία πρέπει να ελέγχονται ώστε να είναι θετικοί άρτιοι αριθμοί. Στη συνέχεια το κύριο πρόγραμμα θα εμφανίζει ποιοι από αυτούς εχουν διαιρέτη το 8.
8.44 Να γράψετε υποπρόγραμμα που θα δέχεται σαν παράμετρο ένα πίνακα ακεραίων αριθμών Χ[8, 8] και θα επιστρέφει το άθροισμα των στοιχείων της κυρίας διαγωνίου. 8.45 α.
Να γραφεί η παρακάτω συνάρτηση στη «ΓΛΩΣΣΑ».
1 0 < x < 10 D( x ) = 0 αλλού β.
Στη συνέχεια να γραφεί πρόγραμμα που θα διαβάζει από το πληκτρολόγιο 10 πραγματικούς αριθμούς και θα υπολογίζει την τιμή της συνάρτησης.
γ.
Μετατρέψτε τη συνάρτηση σε διαδικασία προσέχοντας πάντα να έχουμε το ίδιο αποτέλεσμα.
8.46 Να γραφεί πρόγραμμα που θα διαβάζει ένα πίνακα 500 ακεραίων και θα ταξινομεί σε φθίνουσα σειρά τα στοιχεία του. Για την ταξινόμηση του πίνακα να κατασκευαστεί κατάλληλη διαδικασία. 8.47 Να γράψετε υποπρόγραμμα που να δέχεται δέκα αριθμούς αποθηκευμένους σε πίνακα και να τους επιστρέφει με διάταξη από τον μικρότερο προς τον μεγαλύτερο.
8.48 Να γράψετε πρόγραμμα το οποίο : α.
Θα εισάγει στοιχεία σε πίνακα 20x50
β.
Θα υπολογίζει το πλήθος των αρνητικών αριθμών, που βρίσκονται στις άρτιες γραμμές του πίνακα με ορισμό κατάλληλης διαδικασίας.
γ.
Θα τοποθετεί τα πολλαπλάσια του 5 σε κατάλληλο μονοδιάστατο πίνακα.
δ.
Θα υπολογίζει και θα εμφανίζει το γινόμενο των πολλαπλασίων του 4 που βρίσκονται στις άρτιες στήλες και περιττές γραμμές του πίνακα με χρήση συνάρτησης.
ε.
Θα βρίσκει το άθροισμα όλων των στοιχείων του πίνακα με χρήση συνάρτησης και θα το συγκρίνει με το παραπάνω γινόμενο εμφανίζοντας κατάλληλα μηνύματα.
206
8.49 Μια ομάδα ποδοσφαίρου διαθέτει 20 παίκτες. Να κατασκευάσετε πρόγραμμα το οποίο : α.
Θα εισάγει τα ονοματεπώνυμα των παικτών σε κατάλληλο πίνακα
β.
Θα εισάγει σε κατάλληλο πίνακα τα γκολ που πέτυχε ο κάθε παίκτης σε καθέναν από τους 32 αγώνες του πρωταθλήματος.
γ.
Θα υπολογίζει το πλήθος των γκολ που πέτυχε κάθε παίκτης.
δ.
Θα βρίσκει και θα εμφανίζει τον πρώτο σκόρερ της ομάδας.
ε.
Θα ταξινομεί τα ονόματα των παικτών και τα γκολ που πέτυχαν σε φθίνουσα σειρά. Σε περίπτωση που 2 παίκτες πέτυχαν τον ίδιο αριθμό γκολ, η ταξινόμηση θα γίνεται με βάση το ονοματεπώνυμο. Όλη η ταξινόμηση να γίνει με χρήση διαδικασίας που θα κατασκευάσετε.
στ.
Θα εμφανίζει λίστα ονομάτων και τερμάτων όσων σκόραραν πάνω από 20 φορές.
8.50 Να κατασκευάσετε πρόγραμμα στη «ΓΛΩΣΣΑ» το οποίο : α.
Θα χρησιμοποιεί διαδικασία για το διάβασμα 2 πινάκων Τ[50] και Σ[50,30]. Ο πρώτος περιέχει τα ονόματα και ο δεύτερος τα ημερήσια έξοδα 50 ανθρώπων σε διάστημα ενός μήνα.
β.
Θα τοποθετεί το μέσο όρο του κάθενός σε κατάλληλο πίνακα. Για τον υπολογισμό θα χρησιμοποιηθεί κατάλληλη συνάρτηση.
γ.
Θα ταξινομεί τους μέσους όρους και τα ονόματα σε αλφαβητική σειρά.
δ.
Θα χρησιμοποιεί μια διαδικασία για την εμφάνιση αυτών που έχουν μέσο όρο εξόδων άνω των 300 ευρώ.
Σημειώνεται ότι τα υποπρογράμματα πρέπει να κατασκευαστούν.
8.51 Να γίνει πρόγραμμα το οποίο: α.
Να διαβάζει έναν πίνακα Α, ακεραίων αριθμών, 10 θέσεων.
β.
Να διαβάζει έναν όμοιο πίνακα Β.
γ.
Να αποθηκεύει σε κάθε θέση ενός όμοιου πίνακα Γ το μεγαλύτερο από τα στοιχεία που περιέχουν στην αντίστοιχη θέση οι πίνακες Α και Β.
δ.
Να εμφανίζει τα περιεχόμενα του πίνακα Γ.
ΣΗΜΕΙΩΣΕΙΣ: Το διάβασμα των πινάκων Α και Β να γίνεται με κλήσεις μιας ΔΙΑΔΙΚΑΣΙΑΣ. Η εύρεση του μεγίστου να γίνεται με κλήση ΣΥΝΑΡΤΗΣΗΣ. Η εμφάνιση του πίνακα Γ να γίνεται με κλήση ΔΙΑΔΙΚΑΣΙΑΣ.
207
8.52 Εκατό (100) υποψήφιοι του ΑΣΕΠ διαγωνίζονται σε τρία μαθήματα για την κάλυψη θέσεων του Δημοσίου. Να γραφεί κύριο πρόγραμμα σε ΓΛΩΣΣΑ που να κάνει τα παρακάτω: α.
Διαβάζει τα ονόματα των 100 υποψηφίων του ΑΣΕΠ και τη βαθμολογία καθενός υποψηφίου σε τρία διαφορετικά μαθήματα. (Θεωρήστε ότι η βαθμολογία κάθε μαθήματος είναι από 1 έως 20).
β.
Βρίσκει και τυπώνει τον ελάχιστο και τον μέγιστο βαθμό καθενός υποψηφίου στα τρία μαθήματα που εξετάστηκε.
γ.
Να γραφεί υποπρόγραμμα, το οποίο να καλείται από το κύριο πρόγραμμα, για τον υπολογισμό και την εκτύπωση του ονόματος και του μέσου όρου κάθε υποψηφίου στα τρία μαθήματα που διαγωνίστηκε.
8.53 Να γίνει πρόγραμμα στη «ΓΛΩΣΣΑ» το οποίο : α.
Θα διαβάζει το ονομα, το επώνυμο και το φύλο 1000 παιδιών. Η εισαγωγή των στοιχείων θα γίνεται με κατάλληλους ελέγχους ορθότητας. Τα στοιχεία θα εισάγονται στους δισδιάστατους πίνακες ΑΓ και ΚΟΡ.
β.
Στη συνέχεια θα ταξινομούνται οι δύο πίνακες αλφαβητικά με βάση το επώνυμο με κλήσεις της διαδικασίας ΦΥΣΣΑΛΙΔΑ(Χ,Υ) την οποία θα κατασκευάσετε.
γ.
Εμφανίστε τώρα τα ονοματεπώνυμα όλων των κοριτσιών.
δ.
Διαβάστε ένα επώνυμο αγοριού και αναζητήστε τη θέση που πιθανώς υπάρχει αυτό με χρήση κατάλληλης συνάρτησης ΑΝΑΖΗΤΗΣΗ(ΠΙΝ,ΚΕΥ,Υ) την οποία θα κατασκευάσετε και θα μας επιστρέφει τη θέση.
ε.
Εμφανίστε το μικρό όνομα του αγοριού που βρήκατε. Σε περίπτωση που δεν υπάρχει τυπώστε κατάλληλο μήνυμα.
8.54 Να αναπτύξετε ένα πρόγραμμα, ώστε Α
Να διαβάζει έναν πραγματικό αριθμό μεγαλύτερο του μηδενός και μικρότερο του 1000 και να κάνει έλεγχο ορθής καταχώρησης του αριθμού,
β.
Να ελέγχει αν είναι ακέραιος με χρήση συνάρτησης και να εμφανίζει τη λέξη «ΑΚΕΡΑΙΟΣ» αλλιώς να εμφανίζει τη λέξη «ΠΡΑΓΜΑΤΙΚΟΣ»,
γ.
Να ελέγχει, στην περίπτωση που ο αριθμός είναι ακέραιος, αν είναι άρτιος ή περιττός με χρήση διαδικασίας και να εμφανίζει τη λέξη «ΑΡΤΙΟΣ» ή «ΠΕΡΙΤΤΟΣ» αντίστοιχα.
208
8.55 Α. Να κατασκευάσετε υποπρόγραμμα που θα δέχεται ένα πίνακα με 8 γραμμές και 5 στήλες καθώς και τον αριθμό μιας στήλης και θα επιστρέφει το μέγιστο στοιχείο της συγκεκριμένης στήλης. Β.
Να κατασκευάσετε υποπρόγραμμα που θα υπολογίζει το μέσο όρο ενός μονοδιάστατου πίνακα με μέγιστο πλήθος 100 στοιχεία.
Γ.
Να κατασκευάσετε κύριο πρόγραμμα το οποίο : 1. Θα διαβάζει ένα πίνακα Κ[8,5] με βαθμολογίες 8 παικτών ενός παιχνιδιού που κρίθηκαν από 5 κριτές ελέγχοντας τους βαθμούς ώστε να ανήκουν στην κλίμακα [0,5]. 2. Θα υπολογίζει και θα εμφανίζει τη μέγιστη βαθμολογία που δόθηκε από κάθε κριτή χρησιμοποιώντας το υποπρόγραμμα του ερωτήματος Α. 3. Θα υπολογίζει και θα εμφανίζει το μέσο όρο των μεγίστων βαθμολογιών των κριτών με χρήση του υποπρογράμματος του ερωτήματος Β. 4. Θα υπολογίζει και θα εμφανίζει το μέσο όρο των χειρότερων επιδόσεων όλων των αθλητών με χρήση του υποπρογράμματος του ερωτήματος Β.
8.56 Στα πλαίσια των πενταήμερων εκδρομών των σχολείων της Χίου ορίζεται από τη σχολική μονάδα ο αριθμός συνοδών καθηγητών ανάλογα με το πλήθος των μαθητών όπως φαίνεται στον παρακάτω πίνακα : Αριθμος συμμετεχόντων 1 – 30 μαθητές 31 – 100 μαθητές 101 – 300 μαθητές
Πλήθος Συνοδών 1 2 4
Α.
Να κατασκευάσετε υποπρόγραμμα το οποίο θα δέχεται το πλήθος των μαθητών που θα συμμετάσχουν από ένα σχολείο και θα επιστρέφει το πλήθος των συνοδών.
Β.
Να κατασκευάσετε πρόγραμμα το οποίο : 1. Θα δέχεται επαναληπτικά το όνομα του σχολείου και το πλήθος των μαθητών του, μέχρι να δοθεί μη αποδεκτός αριθμός. 2. Θα εμφανίζει το πλήθος των συνοδών και το όνομα του σχολείου. 3. Θα υπολογίζει το συνολικό αριθμό των συνοδών που απαιτούνται καθώς και το ποσοστό τους επι του συνόλου 800 εκπαιδευτικών που διδάσκουν σε όλα τα σχολεία. Σημείωση : όπου απαιτείται υπολογισμός του πλήθους των συνοδών να χρησιμοποιηθεί το υποπρόγραμμα του Ερωτήματος Α.
209
8.57 Α. Να κατασκευάσετε υποπρόγραμμα που θα δέχεται ένα μονοδιάστατο πίνακα με Ν ακέραια στοιχεία (μεγίστου πλήθους 1000) και θα δημιουργεί ένα νέο ο οποίος θα περιέχει τους άρτιους μόνο σε διαδοχική σειρά φροντίζοντας ώστε τα υπολοιπα στοιχεία να είναι μηδέν. Β.
Να κατασκευάσετε κύριο πρόγραμμα το οποίο θα διαβάζει 2 πίνακες ακεραίων με Ν και Μ στοιχεία αντίστοιχα (απαιτείται έλεγχος εγκυρότητας των Ν και Μ) και στην συνέχεια θα δημιουργεί δύο νέους που περιέχουν μόνο τους άρτιους με κλήσεις του υποπρογράμματος που δημιουργήσατε στο Α ερώτημα.
8.58 Στο τμήμα Επιστήμης Υπολογιστών ενός ελληνικού πανεπιστημίου, ένας φοιτητής έχει τις εξής υποχρεώσεις στα πλαίσια του μαθήματος «Αντικειμενοστραφής Προγραμματισμός»: να κάνει 3 ασκήσεις, να δώσει μια Πρόοδο (Πρόοδος = διαγώνισμα πριν τις εξετάσεις) και να δώσει την τελική εξέταση. Προϋπόθεση για να συμμετάσχει στην τελική εξέταση είναι ο μέσος όρος των 3 ασκήσεων και της Προόδου να είναι από 5 και πάνω. Ο υπολογισμός του τελικού βαθμού γίνεται ως εξής : 1.
Σε περίπτωση που ο βαθμός τελικής εξέτασης είναι κάτω του 5 τότε κάθε βαθμός άσκησης συμμετέχει σε ποσοστό 10% στον τελικό βαθμό, ο βαθμός Προόδου συμμετέχει σε ποσοστό 15% στον τελικό βαθμό και ο βαθμός της τελικής εξέτασης συμμετέχει σε ποσοστό 55% στον τελικό βαθμό.
2.
Διαφορετικά κάθε βαθμός άσκησης συμμετέχει σε ποσοστό 6% στον τελικό βαθμό, ο βαθμός Προόδου συμμετέχει σε ποσοστό 12% στον τελικό βαθμό και ο βαθμός της τελικής εξέτασης συμμετέχει σε ποσοστό 70% στον τελικό βαθμό.
Α.
Να γράψετε ΔΙΑΔΙΚΑΣΙΑ ΔΙΑΒΑΘΜ η οποία διαβάζει το βαθμό του φοιτητή σε μια υποχρέωση και τον αποθηκεύει στην πραγματική μεταβλητή Β. Η διαδικασία θα πρέπει να εξασφαλίζει ότι ο βαθμός που διαβάζεται είναι από 0 έως και 10.
Β.
Να γράψετε ΣΥΝΑΡΤΗΣΗ ΤΕΛΙΚΟΣ, η οποία δέχεται τους 5 βαθμούς (τρεις βαθμοί ασκήσεων , μια πρόοδος και μια τελική εξέταση) κάθε φοιτητή και υπολογίζει τον τελικό βαθμό στο μάθημα .
Γ.
Να γράψετε κύριο πρόγραμμα το οποίο : i. Θα διαβάζει τα ονοματεπώνυμα και τους βαθμούς στις υποχρεώσεις στο μάθημα «Αντικειμενοστραφής Προγραμματισμός» ενός συνόλου φοιτητών. Για την εισαγωγή και τον έλεγχο των βαθμών να γίνεται χρήση της Διαδικασίας του ερωτήματος Α. Η είσοδος τερματίζεται μόλις δοθεί ως ονοματεπώνυμο το κενό. ii. Θα υπολογίζει και θα εμφανίζει τον τελικό βαθμό του κάθε φοιτητή που έλαβε μέρος στην τελική εξέταση κάνοντας χρήση της συνάρτησης του ερωτήματος Β. iii. Θα εμφανίζει το ποσοστό των φοιτητών που δεν απέκτησαν το δικαίωμα να λάβουν μέρος στην τελική εξέταση .
210
8.59 Για την παρακολούθηση των θερμοκρασιών της επικράτειας κατά το μήνα Μάιο καταγράφεται κάθε μέρα η θερμοκρασία στις 12:00 το μεσημέρι για 20 πόλεις. Να αναπτύξετε πρόγραμμα το οποίο: α.
Θα διαβάζει τα ονόματα των 20 πόλεων και τις αντίστοιχες θερμοκρασίες για κάθε μία από τις ημέρες του μήνα και θα καταχωρεί τα στοιχεία σε πίνακες.
β.
Θα εμφανίζει για κάθε πόλη το όνομά της και τη μέγιστη θερμοκρασία που καταγράφηκε σε αυτήν στη διάρκεια του μήνα. Ο υπολογισμός της μέγιστης θερμοκρασίας να γίνεται με τη χρήση υποπρογράμματος που θα κατασκευάσετε για το σκοπό αυτό.
γ.
Θα διαβάζει το όνομα μιας πόλης και θα εμφανίζει τη μέγιστη θερμοκρασία που καταγράφηκε στην πόλη αυτή στη διάρκεια του μήνα. Ο υπολογισμός της μέγιστης θερμοκρασίας πρέπει να γίνεται με τη βοήθεια του υποπρογράμματος που αναπτύχθηκε στο προηγούμενο ερώτημα (β). Αν η πόλη αυτή δεν υπάρχει να εμφανίζεται κατάλληλο μήνυμα.
δ.
Θα υπολογίζει και θα εμφανίζει τη μέγιστη θερμοκρασία που παρατηρήθηκε κατά τη διάρκεια όλου του μήνα και το όνομα της πόλης στην οποία καταγράφηκε. Ο υπολογισμός καθώς και η εμφάνιση των στοιχείων που προαναφέρθηκαν να γίνεται με τη χρήση υποπρογράμματος που θα κατασκευάσετε για το σκοπό αυτό.
8.60 Α. Να κατασκευαστεί υποπρόγραμμα που θα δεχεται ένα πίνακα Α[Ν,Μ] καθώς και το αριθμό μιας στήλης του (Σ) και θα τον επιστρέφει ταξινομημένο σε άυξουσα σειρά σύμφωνα με τα στοιχεία της Σ στήλης. Σημείωση : Μεγιστες τιμές Ν,Μ = 100
Β.
Να κατασκευάσετε κύριο πρόγραμμα το οποίο θα διαβάζει ένα πίνακα με 50 γραμμές και 20 στήλες και στη συνέχεια θα τον ταξινομεί με τη χρήση του υποπρογράμματος του ερωτήματος Α σύμφωνα με μια στήλη του την οποία θα διαβάζει ελεγχοντας την εγκυρότητα της.
8.61 Τι θα εκτυπώσει το παρακάτω πρόγραμμα αν δοθούν ως αρχικές τιμές στην εντολή Διάβασε Α, Β, Γ οι τιμές 6,3,5 αντίστοιχα ; ΠΡΟΓΡΑΜΜΑ ΤΑΔΕ ΜΕΤΑΒΛΗΤΕΣ ΑΚΕΡΑΙΕΣ : Α, Β, Γ ΛΟΓΙΚΕΣ : ΤΙΜΗ ΑΡΧΗ ΔΙΑΒΑΣΕ Α, Β, Γ ΓΡΑΨΕ Α, Β, Γ ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ ΚΑΛΕΣΕ Δ1(Α, Β, Γ, ΤΙΜΗ) ΓΡΑΨΕ Α, Β, Γ ΜΕΧΡΙΣ_ΟΤΟΥ ΤΙΜΗ = ΑΛΗΘΗΣ ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
ΔΙΑΔΙΚΑΣΙΑ Δ1(Γ, Β, Α, ΤΙΜΗ) ΜΕΤΑΒΛΗΤΕΣ ΑΚΕΡΑΙΕΣ : Α, Β, Γ ΠΡΑΓΜΑΤΙΚΕΣ : Χ ΛΟΓΙΚΕΣ : ΤΙΜΗ ΑΡΧΗ Χ 2*Γ MOD (Β + Α) ΓΡΑΨΕ Χ ΤΙΜΗ ΥΠΟΛΟΓ(Χ, Γ) ΓΓ+2 ΑΑ+1 ΤΕΛΟΣ_ΔΙΑΔΙΚΑΣΙΑΣ
ΣΥΝΑΡΤΗΣΗ ΥΠΟΛΟΓ(Ζ,Β):ΛΟΓΙΚΗ ΜΕΤΑΒΛΗΤΕΣ ΑΚΕΡΑΙΕΣ : Β ΠΡΑΓΜΑΤΙΚΕΣ: Ζ, Υ ΑΡΧΗ Y Ζ – Α_Μ(Β/2) AN Y > 0 TOTE ΥΠΟΛΟΓ ΑΛΗΘΗΣ ΑΛΛΙΩΣ ΥΠΟΛΟΓ ΨΕΥΔΗΣ ΤΕΛΟΣ_ΑΝ ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ
Να γράψετε πρόγραμμα που θα επιτελεί την ίδια λειτουργία με το παραπάνω χωρίς τη χρήση υποπρογραμμάτων.
211
8.62 Δίνεται το παρακάτω πρόγραμμα ΠΡΟΓΡΑΜΜΑ ΘΕΜΑ_2 ΜΕΤΑΒΛΗΤΕΣ ΑΚΕΡΑΙΕΣ : Α, Β, Ι ,Γ ΑΡΧΗ Α5 Β7 ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ 5 ΜΕ ΒΗΜΑ 2 ΚΑΛΕΣΕ ΕΛΕΓΧΟΣ(Α,Β) Γ ΕΠ(Α,Β) ΓΡΑΨΕ Α,Β,Γ ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ
ΔΙΑΔΙΚΑΣΙΑ ΕΛΕΓΧΟΣ(Χ,Υ) ΜΕΤΑΒΛΗΤΕΣ ΑΚΕΡΑΙΕΣ : Χ, Υ ΑΡΧΗ ΑΝ Χ b τότε b←c Αλλιώς c←b Τέλος_αν Εµφάνισε a, b, c Μετά την εκτέλεση του παραπάνω τµήµατος αλγορίθµου, ποιες θα είναι οι τιµές των Μονάδες 15 µεταβλητών a,b,c που θα εµφανισθούν, όταν i) a = 10 και ii) a = -10
217
ΘΕΜΑ Α/13 [Θέμα 3.Α Εσπερινά Λύκεια 2000] Να αναφέρετε ονοµαστικά τις τρεις βασικές δοµές που χρησιµοποιούνται για την ανάπτυξη αλγορίθµων. Μονάδες 10 ΘΕΜΑ Α/14 [Θέμα 3.Β Εσπερινά Λύκεια 2000] Να αναπτύξετε αλγόριθµο που να διαβάζει από το πληκτρολόγιο 100 ακεραίους αριθµούς, να υπολογίζει το γινόµενό τους και να το εµφανίζει. Μονάδες 15 ΘΕΜΑ Α/15 [Θέμα 4.Α Εσπερινά Λύκεια 2000] Να γράψετε στο τετράδιό σας τα γράµµατα της πρώτης στήλης και δίπλα σε κάθε γράμμα τον αριθµό της δεύτερης στήλης που αντιστοιχεί στο σωστό τύπο δεδοµένων. Μονάδες 10 ΔΕΔΟΜΕΝΑ ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ α. Ύψος εφήβου 1. Ακέραιος β. Επώνυµο µαθητή 2. Πραγµατικός γ. Αριθµός επιβατών σε αεροπλάνο 3. Αλφαριθμητικός - Συμβολοσειρά 4. Λογικός ΘΕΜΑ Α/16 [Θέμα 4.Β Εσπερινά Λύκεια 2000] Να αναπτύξετε αλγόριθµο που να υπολογίζει και να εµφανίζει το µήκος της περιφέρειας L ενός κύκλου ακτίνας R. Η ακτίνα θα δίδεται από το πληκτρολόγιο. Χρησιµοποιήστε το τύπο L=2πR όπου π = 3,14. Μονάδες 15 ΘΕΜΑ Α/17 [Θέμα 1.Α Επαναληπτικές Ημερήσια Λύκεια 2000] 1. Να αναφέρετε ονοµαστικά τις κατηγορίες προβληµάτων µε κριτήριο τη δυνατότητα επίλυσής τους (επιλυσιµότητα). Μονάδες 9 2. Να γράψετε σε ψευδογλώσσα (ψευδοκώδικα) τη γενική µορφή (σύνταξη) κάθε µιας από τις τρεις δοµές επανάληψης. Μονάδες 15 ΘΕΜΑ Α/18 [Θέμα 1.Β Επαναληπτικές Ημερήσια Λύκεια 2000] Να γράψετε στο τετράδιό σας τον αριθµό κάθε πρότασης και δίπλα τη λέξη «Σωστό», αν είναι σωστή, ή τη λέξη «Λάθος», αν είναι λανθασµένη. Μονάδες 8 α.
Στο διάγραµµα ροής το σχήµα του ρόµβου δηλώνει το τέλος ενός αλγορίθµου.
β.
Η εντολή εκχώρησης τιµής αποδίδει το αποτέλεσµα µιας έκφρασης (παράστασης) σε µια µεταβλητή.
γ.
Η συνθήκη που ελέγχεται σε µια δοµή επιλογής μπορεί να πάρει περισσότερες από δυο διαφορετικές τιµές.
δ.
Σε µια εντολή εκχώρησης είναι δυνατόν µια παράσταση στο δεξιό µέλος να περιέχει τη µεταβλητή που βρίσκεται στο αριστερό µέλος.
218
ΘΕΜΑ Α/19 [Θέμα 1.Γ Επαναληπτικές Ημερήσια Λύκεια 2000] Να γράψετε στο τετράδιό σας τους αριθµούς των τιµών της Στήλης Α και δίπλα το γράµµα της Στήλης Β που αντιστοιχεί στο σωστό τύπο δεδοµένων. Μονάδες 8 Στήλη Α Τιµή 1. 345 2. "Αληθής" 3. Ψευδής 4. -15,3
Στήλη B Τύπος Δεδοµένων α. Αλφαριθµητικός (συµβολοσειρά) β. Αριθµητικός (ακέραιος, πραγµατικός) γ. Λογικός
ΘΕΜΑ Α/20 [Θέμα 3 Επαναληπτικές Ημερήσια Λύκεια 2000] Μια οικογένεια κατανάλωσε X kwh (κιλοβατώρες) ηµερησίου ρεύµατος και Y kwh νυχτερινού ρεύµατος. Το κόστος ηµερησίου ρεύµατος είναι 30 δρχ. ανά kwh και του νυχτερινού 15 δρχ. ανά kwh. Να αναπτύξετε έναν αλγόριθµο ο οποίος: α.
Να διαβάζει τα Χ, Υ
β.
Να υπολογίζει και να εµφανίζει το συνολικό κόστος της κατανάλωσης ρεύµατος της οικογένειας. Μονάδες 9
γ.
Να εµφανίζει µήνυµα ΥΠΕΡΒΟΛΙΚΗ ΚΑΤΑΝΑΛΩΣΗ, αν το συνολικό κόστος είναι µεγαλύτερο από 100.000 δραχµές. Μονάδες 8
Μονάδες 3
ΘΕΜΑ Α/21 [Θέμα 2 Επαναληπτικές Ημερήσια Λύκεια 2000] Έστω τµήµα αλγορίθµου µε µεταβλητές Χ, Μ, Ζ Μ←0 Ζ←0 Για Χ από 0 µέχρι 10 µε βήµα 2 Αν Χ < 5 τότε Ζ←Ζ+Χ Αλλιώς Μ←Μ+Χ-1 Τέλος_αν Τέλος επανάληψης Να γράψετε στο τετράδιο σας τις τιµές των µεταβλητών Χ, Μ, Ζ σε όλες τις επαναλήψεις Μονάδες 20
ΘΕΜΑ Α/22 [Θέμα 4 Επαναληπτικές Ημερήσια Λύκεια 2000] Ο τελικός βαθµός ενός µαθητή σ’ ένα µάθηµα υπολογίζεται µε βάση την προφορική και γραπτή βαθµολογία του µε την ακόλουθη διαδικασία: Αν η διαφορά των δύο βαθµών είναι µεγαλύτερη από πέντε (5) µονάδες, τότε ο προφορικός βαθµός προσαρµόζεται (δηλαδή αυξάνεται ή µειώνεται) έτσι, ώστε η αντίστοιχη διαφορά να µειωθεί στις τρεις (3) µονάδες, αλλιώς ο προφορικός βαθµός παραµένει αµετάβλητος.Ο τελικός βαθµός είναι ο µέσος όρος των δύο βαθμών. Παράδειγµα προσαρµογής προφορικού βαθµού: Αν ο γραπτός βαθµός είναι 18 και ο προφορικός 11, τότε ο προφορικός γίνεται 15, ενώ, αν ο γραπτός είναι 10 και ο προφορικός 19, τότε ο προφορικός γίνεται 13. Να αναπτύξετε αλγόριθµο ο οποίος:
219
α.
Να διαβάζει τους δύο βαθµούς
Μονάδες 3
β.
Να υπολογίζει τον τελικό βαθµό σύµφωνα µε την παραπάνω διαδικασία
Μονάδες 12
γ.
Να εµφανίζει τον τελικό βαθµό και, αν αυτός είναι µεγαλύτερος ή ίσος του 10, το µήνυµα ΠΡΟΑΓΕΤΑΙ, αλλιώς το µήνυµα ΑΠΟΡΡΙΠΤΕΤΑΙ. Μονάδες 5
ΘΕΜΑ Α/23 [Θέμα 1.Β Ημερήσια Λύκεια 2001] Δίνεται η δομή επανάληψης. Για i από τιμή1 μέχρι τιμή2 με_βήμα β Εντολές Τέλος_επανάληψης Να μετατρέψετε την παραπάνω δομή σε ισοδύναμη δομή επανάληψης Όσο ... επανάλαβε. Μονάδες 9
ΘΕΜΑ Α/24 [Θέμα 1.Γ Ημερήσια Λύκεια 2001] Δίνονται οι παρακάτω έννοιες: 1. Λογικός τύπος 5. Μεταβλητή δεδομένων 2. Επιλύσιμο 6. Ημιδομημένο 3. Ακέραιος τύπος 7. Πραγματικός τύπος δεδομένων δεδομένων 4. Περατότητα 8. Αδόμητο Να γράψετε στο τετράδιο σας ποιες από τις παραπάνω έννοιες: α.
Είναι στοιχεία μιας Γλώσσας Προγραμματισμού.
β.
Ανήκουν σε κατηγορίες προβλημάτων.
9. Σταθερά 10. Καθοριστικότητα 11. Άλυτο 12. Ανοικτό
Μονάδες 5
ΘΕΜΑ Α/25 [Θέμα 2 Ημερήσια Λύκεια 2001] Δίνεται το παρακάτω τμήμα αλγορίθμου. Χ1 Όσο Χ Β τότε Αν Α > Γ τότε ΜΑΧ Α αλλιώς ΜΑΧ Γ Τέλος_αν αλλιώς Αν Β > Γ τότε ΜΑΧ Β αλλιώς ΜΑΧ Γ Τέλος_αν Τέλος_αν Εμφάνισε Χ, Α, Β, Γ, ΜΑΧ Χ Χ+2 Τέλος_επανάληψης 220
Ποιες είναι οι τιμές των μεταβλητών Χ, Α, Β, Γ, ΜΑΧ που θα εμφανιστούν κατά την εκτέλεση του παραπάνω τμήματος αλγορίθμου; Μονάδες 20 ΘΕΜΑ Α/26 [Θέμα 1.A Ημερήσια Λύκεια 2001] Nα μεταφέρετε στο τετράδιο σας και να συμπληρώσετε τον παρακάτω πίνακα αλήθειας δυο προτάσεων Α, Β και των τριών λογικών πράξεων. Μονάδες 6 Πρόταση Α Πρόταση Β Ψευδής Ψευδής Αληθής Αληθής
ΑήΒ (Διάζευξη)
Α και Β (Σύξευξη)
όχι Α (Άρνηση)
Ψευδής Αληθής Ψευδής Αληθής
ΘΕΜΑ Α/27 [Θέμα 4 Ημερήσια Λύκεια 2001] Σε ένα Πρόγραμμα περιβαλλοντικής εκπαίδευσης συμμετέχουν 20 σχολεία. Στα πλαίσια αυτού του προγράμματος, εθελοντές μαθητές των σχολείων, που συμμετέχουν στο Πρόγραμμα, μαζεύουν ποσότητες τριών υλικών (γυαλί, χαρτί και αλουμίνιο). Να αναπτύξετε έναν αλγόριθμο, ο οποίος: α.
Να διαβάζει τις ποσότητες σε κιλά των παραπάνω υλικών που μάζεψαν οι μαθητές σε κάθε σχολείο. Μονάδες 4
β.
Να υπολογίζει τη συνολική ποσότητα σε κιλά του κάθε υλικού που μάζεψαν οι μαθητές σε όλα τα σχολεία. Μονάδες 8
γ.
Αν η συνολική ποσότητα του χαρτιού που μαζεύτηκε από όλα τα σχολεία είναι λιγότερη των 1000 κιλών, να εμφανίζεται το μήνυμα «Συγχαρητήρια». Αν η ποσότητα είναι από 1000 κιλά και πάνω, αλλά λιγότερο από 2000, να εμφανίζεται το μήνυμα «Δίνεται έπαινος» και τέλος αν η ποσότητα είναι από 2000 κιλά και πάνω να εμφανίζεται το μήνυμα «Δίνεται βραβείο». Μονάδες 8
Παρατήρηση: Να θεωρήσετε ότι όλες οι ποσότητες είναι θετικοί αριθμοί.
ΘΕΜΑ Α/28 [Θέμα 1.Α Εσπερινά Λύκεια 2001] Να αναφερθούν οι βασικές αλγοριθμικές δομές (συνιστώσες / εντολές ενός αλγορίθμου). Μονάδες 10
ΘΕΜΑ Α/29 [Θέμα 1.Β Εσπερινά Λύκεια 2001] Δίνονται οι παρακάτω έννοιες: 1. Έξοδος 2. Περατότητα 3. Διάγραμμα ροής - διαγραμματικές τεχνικές 4. Ψευδοκώδικας - κωδικοποίηση 5. Καθοριστικότητα 6. Αποτελεσματικότητα 7. Είσοδος 8. Ελεύθερο κείμενο 9. Φυσική Γλώσσα με βήματα Ποιες από τις παραπάνω έννοιες ανήκουν στα χαρακτηριστικά – κριτήρια ενός αλγορίθμου και ποιες στους τρόπους περιγραφής – παρουσίασης αναπαράστασης του. Μονάδες 10
221
ΘΕΜΑ Α/30 [Θέμα 1.Γ Εσπερινά Λύκεια 2001] Δίνεται τμήμα αλγορίθμου: Χ 13 Όσο Χ= Μ
Λύκεια 2001]
α.
Να δώσετε τη δοµή επανάληψης "Για … από … µέχρι … βήµα" η οποία τυπώνει ακριβώς τις ίδιες τιµές µε το πιο πάνω τµήµα αλγορίθµου. Μονάδες 7
β.
Τι θα τυπωθεί, αν Α = 4 και Μ = 9 ;
Μονάδες 3
γ.
Τι θα τυπωθεί, αν Α = -5 και Μ = 0 ;
Μονάδες 3
223
ΘΕΜΑ Α/39 [Θέμα 1.Δ Επαναληπτικές Ημερήσια Λύκεια 2001] Αντιστοιχίστε σωστά τις εκφράσεις της Στήλης Α µε τις αλγοριθµικές έννοιες της Στήλης Β, γράφοντας στο τετράδιό σας τους αριθµούς της Στήλης Α και δίπλα το γράµµα της Στήλης Β. Μονάδες 10 Στήλη Α Εκφράσεις 1. Χ ← Χ + 2 2. 3 +Α > Β 3. τύπωσε Β 4. Όσο Κ < 3 επανάλαβε εντολές Τέλος επανάληψης 5.
Χ - (Χ/2) * 2
Στήλη Β Αλγοριθµικές έννοιες α. αριθµητική έκφραση (παράσταση) β. µεταβλητή γ. λογική έκφραση (παράσταση) δ. δοµή ακολουθίας ε. δοµή επανάληψης στ. εντολή εκχώρησης ζ. εντολή εξόδου
ΘΕΜΑ Α/40 [Θέμα 2 Επαναληπτικές Ημερήσια Λύκεια 2001] Καθώς εκτελείται το παρακάτω τµήµα αλγορίθµου, ποιες τιµές τυπώνονται µε την εντολή Τύπωσε i, A; Κ←4 Όσο Κ >= 1 επανάλαβε Α←1 Αν Κ 2 τότε Για i από 1 µέχρι Κ Α←2*Α Εκτύπωσε i, A Τέλος_επανάληψης Τέλος αν Κ←Κ/2 Τέλος επανάληψης Μονάδες 20 ΘΕΜΑ Α/41 [Θέμα 3 Επαναληπτικές Ημερήσια Λύκεια 2001] Να αναπτύξετε αλγόριθµο ο οποίος υλοποιεί τη λειτουργία ενός αυτόµατου τυποποιητή πορτοκαλιών που είναι η παρακάτω: Για κάθε πορτοκάλι που εισάγεται στον τυποποιητή, διαβάζεται η τιµή του βάρους (Β) και η διάµετρός του (Δ). Το πορτοκάλι κατατάσσεται ανάλογα με το βάρος και τη διάµετρο του ως εξής: Αν 100 ≤ Β ≤ 150 και 8 < Δ < 10, τότε να τυπώνεται το µήνυµα "πρώτη διαλογή". Αν 6 < Δ < 8, τότε, ανεξαρτήτως βάρους, τυπώνεται το µήνυµα "δεύτερη διαλογή". Σε κάθε άλλη περίπτωση τυπώνεται το µήνυµα "χυµοποίηση".
Μονάδες 20
ΘΕΜΑ Α/42 [Θέμα 2 Ημερήσια Λύκεια 2002] Να εκτελέσετε το παρακάτω τμήμα αλγορίθμου, για Κ = 24 και L = 40. Να γράψετε στο τετράδιο σας τις τιμές των μεταβλητών Χ, Υ καθώς αυτές τυπώνονται με την εντολή Εμφάνισε Χ, Υ (τόσο μέσα στη δομή επανάληψης όσο και στο τέλος του αλγορίθμου).
224
Χ ←Κ Y ←L Αν Χ > Υ τότε ΤΕΜΡ ← Χ Χ ←Υ Υ ← ΤΕΜΡ Τέλος_αν Όσο Υ 0 επανάλαβε ΤΕΜΡ ← Υ Υ ← Χ ΜOD Y Χ ← TEMP Εμφάνισε Χ, Υ Τέλος_επανάληψης Υ ← (Κ * L) DIV X Εμφάνισε Χ, Υ
Μονάδες 20
ΘΕΜΑ Α/43 [Θέμα 3 Ημερήσια Λύκεια 2002] Με το νέο σύστημα πληρωμής των διοδίων, οι οδηγοί των τροχοφόρων έχουν τη δυνατότητα να πληρώνουν το αντίτιμο των διοδίων με ειδική μαγνητική κάρτα. Υποθέστε ότι υπάρχει μηχάνημα το οποίο διαθέτει είσοδο για την κάρτα και φωτοκύτταρο. Το μηχάνημα διαβάζει από την κάρτα το υπόλοιπο των χρημάτων και το αποθηκεύει σε μία μεταβλητή Υ και, με το φωτοκύτταρο, αναγνωρίζει τον τύπο του τροχοφόρου και το αποθηκεύει σε μία μεταβλητή Τ. Υπάρχουν τρεις τύποι τροχοφόρων: δίκυκλα (Δ), επιβατικά (Ε) και φορτηγά (Φ), με αντίτιμο διοδίων 1, 2 και 3 ευρώ αντίστοιχα. Να αναπτύξετε αλγόριθμο, ο οποίος: α.
Ελέγχει τον τύπο του τροχοφόρου και εκχωρεί στη μεταβλητή Α το αντίτιμο των διοδίων, ανάλογα με τον τύπο του τροχοφόρου. Μονάδες 8
β.
Ελέγχει την πληρωμή των διοδίων με τον παρακάτω τρόπο. Αν το υπόλοιπο της κάρτας επαρκεί για την πληρωμή του αντιτίμου των διοδίων, αφαιρεί το ποσό αυτό από την κάρτα. Αν η κάρτα δεν έχει υπόλοιπο, το μηχάνημα ειδοποιεί με μήνυμα για το ποσό που πρέπει να πληρωθεί. Αν το υπόλοιπο δεν επαρκεί, μηδενίζεται η κάρτα και δίνεται με μήνυμα το ποσό που απομένει να πληρωθεί. Μονάδες 12
ΘΕΜΑ Α/44 [Θέμα 1.Α Εσπερινά Λύκεια 2002] 1. Πότε λέμε ότι ένα πρόβλημα είναι α. επιλύσιμο β. άλυτο γ. δομημένο;
Μονάδες 6
2. Με ποια κριτήρια κατηγοριοποιούνται τα προβλήματα σε επιλύσιμα, άλυτα και δομημένα;
Μονάδες 4
3. Να αναφέρετε από ένα παράδειγμα για καθεμιά από τις παραπάνω κατηγορίες. Μονάδες 6
ΘΕΜΑ Α/45 [Θέμα 1.Β Εσπερινά Λύκεια 2002] Να αναφέρετε συνοπτικά τους λόγους, για τους ποιους αναθέτουμε την επίλυση ενός προβλήματος σε υπολογιστή. Μονάδες 4
225
ΘΕΜΑ Α/46 [Θέμα 1.Γ Εσπερινά Λύκεια 2002] Δίνεται o πίνακας αλήθειας : Πρόταση Α
Πρόταση Β
Ψευδής Ψευδής
Αληθής Ψευδής
όχι Β (Άρνηση)
Α και Β (Σύξευξη)
ΑήΒ (Διάζευξη)
Να μεταφέρετε τον παραπάνω πίνακα στο τετράδιο σας και να συμπληρώσετε κατάλληλα τις κενές θέσεις του. Μονάδες 6 ΘΕΜΑ Α/47 [Θέμα 1.Δ Εσπερινά Λύκεια 2002] Να γράψετε τα τμήματα αλγορίθμου, που αντιστοιχούν στα τμήματα των διαγραμμάτων ροής (α) και (β), που ακολουθούν. (α)
ΘΕΜΑ Α/48 [Θέμα 4 Εσπερινά Λύκεια 2002] Στο πλαίσιο προγράμματος προληπτικής ιατρικής για την αντιμετώπιση του νεανικού διαβήτη έγιναν αιματολογικές εξετάσεις στους 90 μαθητές (αγόρια και κορίτσια) ενός Γυμνασίου. Για κάθε παιδί καταχωρίστηκαν τα ακόλουθα στοιχεία : 1.
ονοματεπώνυμο μαθητή
2.
κωδικός φύλου ("Α" για τα αγόρια και "Κ" για τα κορίτσια)
3.
περιεκτικότητα σακχάρου στο αίμα. 226
Οι φυσιολογικές τιμές σακχάρου στο αίμα κυμαίνονται από 70 έως 110 mg/dl (συμπεριλαμβανομένων και των ακραίων τιμών). Να αναπτύξετε αλγόριθμο που : α.
Θα διαβάζει τα παραπάνω στοιχεία (ονοματεπώνυμο, φύλο, περιεκτικότητα σακχάρου στο αίμα) και θα ελέγχει την αξιόπιστη καταχώριση τους (δηλαδή το φύλο να είναι μόνο "Α" ή "Κ" και η περιεκτικότητα σακχάρου στο αίμα να είναι θετικός αριθμός), Μονάδες 5
β.
Θα εμφανίζει για κάθε παιδί του οποίου η περιεκτικότητα σακχάρου στο αίμα είναι εκτός των φυσιολογικών τιμών, το ονοματεπώνυμο, το φύλο και την περιεκτικότητα του σακχάρου, Μονάδες 5
γ.
Θα εμφανίζει το συνολικό αριθμό των αγοριών των οποίων η περιεκτικότητα σακχάρου στο αίμα δεν είναι φυσιολογική. Μονάδες 5
δ.
Θα εμφανίζει το συνολικό αριθμό των κοριτσιών των οποίων η περιεκτικότητα σακχάρου στο αίμα δεν είναι φυσιολογική. Μονάδες 5
ΘΕΜΑ Α/49 [Θέμα 1.Δ Επαναληπτικές Ημερήσια Λύκεια 2002] Ποιο είναι το αποτέλεσμα της εκτέλεσης του παρακάτω αλγορίθμου; Να αιτιολογήσετε την απάντηση σας. Μονάδες 7
227
ΘΕΜΑ Α/50 [Θέμα 1.Γ Επαναληπτικές Ημερήσια Λύκεια 2002] Η τιμή Α της βαθμολογίας σε ένα θέμα μπορεί να πάρει τις τιμές από 0 μέχρι και 20. (Το 0 και το 20 είναι επιτρεπτές τιμές). Ποια από τις παρακάτω λογικές εκφράσεις ελέγχει αυτή τη συνθήκη; Μονάδες 5 i. Α >= 0 ή Α 0 και Α = 20 και Α = 0 και Α Ζ ΟΧΙ (Χ+Υ>8) (Χ >Υ) ΚΑΙ (Ζ10) Ή ((Υ>2) ΚΑΙ (Ζ>Υ))
Μονάδες 12
ΘΕΜΑ Α/87 [Θέμα 1.Γ Εσπερινά Λύκεια 2005] Να αντιστοιχίσετε σωστά τους αριθμούς της Στήλης Α με τα γράμματα της Στήλης Β. Στη Στήλη Β υπάρχει ένα επιπλέον στοιχείο. Μονάδες 10
241
ΘΕΜΑ Α/88 [Θέμα 1.Δ Εσπερινά Λύκεια 2005] α. Να αναφέρετε τους αριθμητικούς τύπους δεδομένων της «Γλώσσας».
Μονάδες 2
β. Τι είναι σταθερά και τι είναι μεταβλητή;
Μονάδες 2
γ. Να δώσετε από ένα παράδειγμα δήλωσης σταθεράς και δήλωσης μεταβλητής στη «Γλώσσα». Μονάδες 2 ΘΕΜΑ Α/89 [Θέμα 2 Εσπερινά Λύκεια 2005] Δίνεται το παρακάτω τμήμα αλγορίθμου όπου οι μεταβλητές Κ,L,Μ είναι ακέραιες: Κ 35 L 17 Μ0 ΟΣΟ L>0 ΕΠΑΝΑΛΑΒΕ ΑΝ L ΜΟD 2=1 ΤΟΤΕ ΜΜ+Κ ΤΕΛΟΣ_ΑΝ ΚΚ*2 LL DIV 2 ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ΕΜΦΑΝΙΣΕ Μ α.
Να συμπληρώσετε τον παρακάτω πίνακα. Κ
Μονάδες 15
L
Μ
ΑΡΧΙΚΕΣ ΤΙΜΕΣ 1η επανάληψη 2η επανάληψη 3η επανάληψη 4η επανάληψη 5η επανάληψη β.
Για ποια τιμή της μεταβλητής L, τερματίζει ο αλγόριθμος;
Μονάδες 3
γ.
Ποια είναι η τελική τιμή της μεταβλητής Μ;
Μονάδες 2
ΘΕΜΑ Α/90 [Θέμα 1.Β Επαναληπτικές Ημερήσια Λύκεια 2005] Να γράψετε στο τετράδιο σας τους αριθμούς της Στήλης Α, που αντιστοιχούν σωστά με το γράμμα της Στήλης Β. Στήλη Α Δεδομένα Στήλη Β Τύπος μεταβλητής 1. όνομα πελάτη α . Λογικές 2. αριθμός παιδιών β . Χαρακτήρες 3. ΨΕΥΔΗΣ
γ . Πραγματικές
4. "Χ"
δ . Ακέραιες
5. 0.34 Τα στοιχεία της στήλης Β μπορεί να χρησιμοποιηθούν παραπάνω από μία φορές.
Μονάδες 5
242
ΘΕΜΑ Α/91 [Θέμα 1.Γ Επαναληπτικές Ημερήσια Λύκεια 2005] α. Αν Χ=3, Ψ=-2 και Ζ= -1 να χαρακτηρίσετε στο τετράδιο σας τις παρακάτω προτάσεις χρησιμοποιώντας μία από τις λέξεις ΑΛΗΘΗΣ ή ΨΕΥΔΗΣ. Πρόταση Α. (Χ+Ψ)*Ζ > 0 Πρόταση Β. (Χ-Ψ)*Ζ = -5 Πρόταση Γ. Χ*Ζ > 0 Πρόταση Δ. Ζ>Ψ Μονάδες 4 β.
Να συμπληρώσετε στο τετράδιο σας τον παρακάτω πίνακα με τις τιμές των λογικών πράξεων μεταξύ των προτάσεων Α,Β,Γ,Δ. Λογική Πράξη
Αποτέλεσμα
ΑήΒ ΑήΓ Γ και Δ Α και Δ όχι Α όχι Β Μονάδες 6
ΘΕΜΑ Α/92 [Θέμα 1.Δ Επαναληπτικές Ημερήσια Λύκεια 2005] Το παρακάτω τμήμα αλγόριθμου να μετατραπεί σε ισοδύναμο με χρήση της δομής Για ... από ... μέχρι ... με_βήμα Ι2 Όσο Ι 12 αριθμός_παιδιών <
Στήλη Β α. λογικός τελεστής β. μεταβλητή γ. αλφαριθμητική σταθερά δ. λογική σταθερά ε. συγκριτικός τελεστής στ. συνθήκη Μονάδες 5
ΘΕΜΑ Α/100 [Θέμα 1.Ε Ημερήσια Λύκεια 2006] Αν α = 5, β = 7 και γ = 10, να χαρακτηρίσετε στο τετράδιο σας τις παρακάτω προτάσεις χρησιμοποιώντας μία από τις λέξεις ΑΛΗΘΗΣ ή ΨΕΥΔΗΣ. Πρόταση Α. (όχι (α + 2 ≥ β)) ή β + 3 = γ
Πρόταση Β.
α + 2 * β < 20 και 2 * α = γ Μονάδες 4
ΘΕΜΑ Α/101 [Θέμα 1.Α Εσπερινά Λύκεια 2006] 1. Να δώσετε τον ορισμό του προβλήματος.
Μονάδες 3
2. Να περιγράψετε τα στάδια αντιμετώπισης ενός προβλήματος.
Μονάδες 3
3. Να περιγράψετε τους τύπους δεδομένων που υποστηρίζει η «Γλώσσα».
Μονάδες 8
245
ΘΕΜΑ Α/102 [Θέμα 2 Ημερήσια Λύκεια 2006] 1. Δίνεται ο παρακάτω αλγόριθμος σε μορφή διαγράμματος ροής.
α.
Να κατασκευάσετε ισοδύναμο αλγόριθμο σε ψευδογλώσσα.
β.
Να εκτελέσετε τον αλγόριθμο για κάθε μία από τις παρακάτω τιμές της μεταβλητής Χ. Να γράψετε στο τετράδιο σας την τιμή της μεταβλητής Υ, όπως θα εμφανισθεί σε κάθε περίπτωση. i.
Χ=9
ii.
Χ = 10
Μονάδες 7
iii. Χ = 40
2. Δίνεται ο παρακάτω αλγόριθμος σε ψευδογλώσσα. διάγραμμα ροής.
Μονάδες 3
Να σχεδιάσετε το αντίστοιχο
Αλγόριθμος Μετατροπή Χ0 Για Κ από 1 μέχρι 10 Διάβασε Λ Αν Λ > 0 τότε ΧΧ+Λ Αλλιώς ΧΧ-Λ Τέλος_Αν Τέλος_Επανάληψης Εμφάνισε Χ Τέλος Μετατροπή
Μονάδες 10
246
ΘΕΜΑ Α/103 [Θέμα 1.Δ Εσπερινά Λύκεια 2006] Δίνεται ο παρακάτω αλγόριθμος σε μορφή διαγράμματος ροής.
Να κατασκευάσετε ισοδύναμο αλγόριθμο σε ψευδογλώσσα.
Μονάδες 10
ΘΕΜΑ Α/104 [Θέμα 3 Εσπερινά Λύκεια 2006] Οι εκατό (100) υπάλληλοι μιας εταιρείας εργάζονται 40 ώρες την εβδομάδα. Κάθε ώρα υπερωρίας αμείβεται με 5 € (ευρώ). Να γράψετε αλγόριθμο ο οποίος: Α. Για καθένα από τους υπαλλήλους της εταιρείας α.
Διαβάζει το όνομα του και για κάθε μέρα από τις πέντε (5) εργάσιμες της εβδομάδας διαβάζει τις ώρες εργασίας του. Μονάδες 8
β.
Υπολογίζει τις εβδομαδιαίες ώρες εργασίας του.
γ.
Εάν έχει εργαστεί περισσότερο από 40 ώρες την εβδομάδα, εμφανίζει το όνομα του και υπολογίζει και εμφανίζει την αμοιβή του για τις υπερωρίες του.
Μονάδες 2
Μονάδες 6
Β. Υπολογίζει και εμφανίζει, στο τέλος, το πλήθος των υπαλλήλων που έχουν εργαστεί λιγότερο από 40 ώρες την εβδομάδα. Μονάδες 4 ΘΕΜΑ Α/105 [Θέμα 1.Β Εσπερινά Λύκεια 2006] Να μεταφέρετε στο τετράδιο σας τον παρακάτω πίνακα και να συμπληρώσετε κατάλληλα τις κενές θέσεις. Α
Β
ΨΕΥΔΗΣ
ΑΛΗΘΗΣ
ΑΛΗΘΗΣ
ΨΕΥΔΗΣ
(ΟΧΙ Α) Η Β
Α ΚΑΙ Β
ΑΗΒ
Μονάδες 6
247
ΘΕΜΑ Α/106 [Θέμα 2 Εσπερινά Λύκεια 2006] Δίνεται το παρακάτω τμήμα αλγορίθμου:
α.
Ποιο είναι το πλήθος των επαναλήψεων που θα εκτελεστούν;
β.
Ποιες είναι οι τιμές των μεταβλητών που θα εμφανιστούν σε κάθε επανάληψη;
γ.
Ποια είναι η τελική τιμή της μεταβλητής Χ;
Μονάδες 3
Μονάδες 15 Μονάδες 2
ΘΕΜΑ Α/107 [Θέμα 1.B Επαναληπτικές Ημερήσια Λύκεια 2006] Δίνεται το παρακάτω τμήμα αλγορίθμου ΑΝ ποσότητα 50 ΚΑΙ Ποσότητα 100 ΚΑΙ Ποσότητα ΚΑΙ = Ή
Στήλη Β Είδος Τελεστή α. Συγκριτικός τελεστής β. Λογικός τελεστής γ. Αριθμητικός τελεστής
ΘΕΜΑ Α/112 [Θέμα 2 Επαναληπτικές Εσπερινά Λύκεια 2006] Δίνεται το παρακάτω τμήμα αλγορίθμου: Διάβασε Μ Για Χ από 3 μέχρι Μ-1 με_βήμα 2 Α←2*Χ+4 Β←4*Χ-3 Αν (Β-Α < 0) ή (Α > 15) τότε Α←Α+5 Β←Β*2 Τέλος_αν Εμφάνισε Α,Β Τέλος_επανάληψης
249
Να γράψετε στο τετράδιό σας τις τιμές των μεταβλητών Α και Β που εμφανίζονται κατά την εκτέλεση του παραπάνω τμήματος αλγορίθμου, όταν για Μ δώσουμε την τιμή 9. Μονάδες 20 ΘΕΜΑ Α/113 [Θέμα 3 Επαναληπτικές Εσπερινά Λύκεια 2006] Ένας αγρότης παράγει ένα μόνο προϊόν από τα δύο που επιδοτούνται. Να γραφεί αλγόριθμος ο οποίος: α.
Διαβάζει το ονοματεπώνυμο του αγρότη, το είδος του προϊόντος που παράγει και την ποσότητα του προϊόντος σε κιλά, ελέγχοντας την ορθότητα εισαγωγής των δεδομένων σύμφωνα με τα παρακάτω: - Το είδος του προϊόντος είναι Α ή Β. - Η ποσότητα του προϊόντος είναι θετικός αριθμός.
β.
Μονάδες 5
Υπολογίζει την επιδότηση που δικαιούται ο αγρότης για το είδος του προϊόντος που παράγει. Η επιδότηση υπολογίζεται κλιμακωτά ανάλογα με την ποσότητα και το είδος του προϊόντος σύμφωνα με τον παρακάτω πίνακα: Επιδότηση ανά κιλό προϊόντος σε ευρώ Ποσότητα προϊόντος σε κιλά Προϊόν Α Προϊόν Β έως και 1000 0,8 0,7 από 1001 έως και 2500 0,7 0,6 από 2501 και άνω 0,6 0,5 Μονάδες 12
γ.
Εμφανίζει το ονοματεπώνυμο του αγρότη, το είδος του προϊόντος που παράγει και το ποσό της επιδότησης που δικαιούται. Μονάδες 3
ΘΕΜΑ Α/114 [Θέμα 1.Γ Ημερήσια Λύκεια 2007] Δίνεται το παρακάτω τμήμα αλγορίθμου σε φυσική γλώσσα κατά βήματα: Βήμα 1: Αν Α > 0 τότε πήγαινε στο Βήμα 5 Βήμα 2: Αν Α = 0 τότε πήγαινε στο Βήμα 7 Βήμα 3: Τύπωσε “Αρνητικός’’ Βήμα 4: Πήγαινε στο Βήμα 8 Βήμα 5: Τύπωσε “Θετικός’’ Βήμα 6: Πήγαινε στο Βήμα 8 Βήμα 7: Τύπωσε “Μηδέν’’ Βήμα 8: Τύπωσε “Τέλος’’ α.
Να σχεδιάσετε το ισοδύναμο διάγραμμα ροής.
β.
Να κωδικοποιήσετε το τμήμα αλγορίθμου σε ψευδογλώσσα σύμφωνα με τις αρχές του δομημένου προγραμματισμού. Μονάδες 5
Μονάδες 6
ΘΕΜΑ Α/115 [Θέμα 3 Ημερήσια Λύκεια 2007] Ένας συλλέκτης γραμματοσήμων επισκέπτεται στο διαδίκτυο το αγαπημένο του ηλεκτρονικό κατάστημα φιλοτελισμού προκειμένου να αγοράσει γραμματόσημα. Προτίθεται να ξοδέψει μέχρι 1500 ευρώ. 250
Να αναπτύξετε αλγόριθμο ο οποίος: α.
Για κάθε γραμματόσημο, να διαβάζει την τιμή και την προέλευσή του (ελληνικό/ξένο) και να επιτρέπει την αγορά του, εφόσον η τιμή του δεν υπερβαίνει το διαθέσιμο υπόλοιπο χρημάτων. Διαφορετικά να τερματίζει τυπώνοντας το μήνυμα «ΤΕΛΟΣ ΑΓΟΡΩΝ». ΣΗΜΕΙΩΣΗ: Δεν απαιτείται έλεγχος εγκυρότητας για τα δεδομένα εισόδου.
β.
Μονάδες 10
Να τυπώνει: 1. Το συνολικό ποσό που ξόδεψε ο συλλέκτης.
Μονάδες 2
2. Το πλήθος των ελληνικών και το πλήθος των ξένων γραμματοσήμων που αγόρασε. Μονάδες 4 3. Το ποσό που περίσσεψε, εφόσον «ΕΞΑΝΤΛΗΘΗΚΕ ΟΛΟ ΤΟ ΠΟΣΟ».
υπάρχει,
διαφορετικά
το
μήνυμα Μονάδες 4
ΘΕΜΑ Α/116 [Θέμα 1.Β Εσπερινά Λύκεια 2007] Δίνεται η παρακάτω εντολή: Για Α από Β μέχρι Γ με_βήμα Δ Εμφάνισε "ΚΑΛΗΣΠΕΡΑ" Τέλος_επανάληψης Να γράψετε στο τετράδιό σας πόσες φορές εκτελείται η εντολή Εμφάνισε για καθένα από τους παρακάτω συνδυασμούς των τιμών των μεταβλητών Β, Γ και Δ: 1. Β = 2 Γ = 5 Δ = 1
2. Β =-1 Γ = 1 Δ = 0,5
3. Β =-7 Γ =-6 Δ =-5
4. Β = 5 Γ = 5 Δ = 1
Μονάδες 8
ΘΕΜΑ Α/117 [Θέμα 2 Εσπερινά Λύκεια 2007] Δίνεται το παρακάτω τμήμα αλγορίθμου: Χ←2 ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ Y←X DIV 2 Z←A_M(X/3) ΑΝ Ζ>0 ΤΟΤΕ Α←Z ΑΛΛΙΩΣ Α←Υ ΤΕΛΟΣ_ΑΝ ΓΡΑΨΕ Χ, Υ, Ζ, Α Χ←Χ+3 ΜΕΧΡΙΣ_ΟΤΟΥ Χ>10 α. Να γράψετε στο τετράδιό σας τις τιμές των μεταβλητών που θα εμφανιστούν σε κάθε επανάληψη. Μονάδες 12
251
β. Να μετατρέψετε το παραπάνω τμήμα αλγορίθμου σε ισοδύναμο με χρήση της δομής επανάληψης ΓΙΑ...ΑΠΟ...ΜΕΧΡΙ...ΜΕ_ΒΗΜΑ. Μονάδες 8 ΘΕΜΑ Α/118 [Θέμα 1.Δ Εσπερινά Λύκεια 2007] Να γράψετε στο τετράδιό σας καθένα από τους αριθμούς της Στήλης Α και δίπλα του ένα γράμμα της Στήλης Β, ώστε να προκύπτει η σωστή αντιστοίχιση. Στήλη Α όνομα μεταβλητής 1. Φ.Π.Α. 2. 2ΑΒ 3. ΒΑΘΜΟΣ 4. "ΜΙΣΘΟΣ" 5. Α32 6. ΑΚΕΡΑΙΟΣ
Στήλη Β χαρακτηρισμός α. αποδεκτή β. μη αποδεκτή
Μονάδες 6
ΘΕΜΑ Α/119 [Θέμα 3 Εσπερινά Λύκεια 2007] Μία εταιρεία ασφάλισης οχημάτων καθορίζει το ετήσιο κόστος ασφάλισης ανά τύπο οχήματος (δίκυκλο ή αυτοκίνητο) και κυβισμό, σύμφωνα με τους παρακάτω πίνακες: ΔΙΚΥΚΛΟ Κυβισμός (σε κυβικά Κόστος Ασφάλισης (σε εκατοστά) ευρώ) έως και 125 100 πάνω από 125 140 ΑΥΤΟΚΙΝΗΤΟ Κυβισμός (σε κυβικά Κόστος Ασφάλισης (σε εκατοστά) ευρώ) έως και 1400 400 από 1401 έως και 1800 500 πάνω από 1800 700 Αν η ηλικία του οδηγού είναι από 18 έως και 24 ετών τότε το κόστος της ασφάλισης του οχήματος προσαυξάνεται κατά 10%. Να αναπτύξετε αλγόριθμο, ο οποίος: α.
Να διαβάζει την ηλικία ενός οδηγού, τον τύπο του οχήματος και τον κυβισμό του, ελέγχοντας ώστε ο τύπος του οχήματος να είναι «ΔΙΚΥΚΛΟ» ή «ΑΥΤΟΚΙΝΗΤΟ». Μονάδες 6
β.
Να υπολογίζει και να εμφανίζει το ετήσιο κόστος ασφάλισης του οχήματος. Μονάδες 14
Σημείωση: Να θεωρήσετε ότι η ηλικία του οδηγού είναι τουλάχιστον 18 ετών.
ΘΕΜΑ Α/120 [Θέμα 1.Β Επαναληπτικες Ημερήσια Λύκεια 2007] Δίνεται το παρακάτω τμήμα αλγορίθμου: Ι1 Όσο Ι < 10 επανάλαβε Εμφάνισε Ι ΙΙ+3 Τέλος_επανάληψης
252
α.
Να σχεδιάσετε το ισοδύναμο διάγραμμα ροής.
β.
Να ξαναγράψετε το παραπάνω τμήμα αλγορίθμου χρησιμοποιώντας την εντολή ΓΙΑ αντί της εντολής ΟΣΟ. Μονάδες 5
Μονάδες 4
ΘΕΜΑ Α/121 [Θέμα 3 Επαναληπτικες Ημερήσια Λύκεια 2007] Το κλασικό παιχνίδι «Πέτρα-Ψαλίδι-Χαρτί» παίζεται με δύο παίκτες. Σε κάθε γύρο του παιχνιδιού, ο κάθε παίκτης επιλέγει ένα από τα ΠΕΤΡΑ, ΨΑΛΙΔΙ, ΧΑΡΤΙ, και παρουσιάζει την επιλογή του ταυτόχρονα με τον αντίπαλό του. Η ΠΕΤΡΑ κερδίζει το ΨΑΛΙΔΙ, το ΨΑΛΙΔΙ το ΧΑΡΤΙ και το ΧΑΡΤΙ την ΠΕΤΡΑ. Σε περίπτωση που οι δύο παίκτες έχουν την ίδια επιλογή, ο γύρος λήγει ισόπαλος. Το παιχνίδι προχωράει με συνεχόμενους γύρους μέχρι ένας τουλάχιστον από τους παίκτες να αποχωρήσει. Νικητής αναδεικνύεται ο παίκτης με τις περισσότερες νίκες. Αν οι δύο παίκτες έχουν τον ίδιο αριθμό νικών, το παιχνίδι λήγει ισόπαλο. Να αναπτύξετε αλγόριθμο ο οποίος διαβάζει τα ονόματα των δύο παικτών και υλοποιεί το παραπάνω παιχνίδι ως εξής: Α. Για κάθε γύρο του παιχνιδιού: 1. διαβάζει την επιλογή κάθε παίκτη, η οποία μπορεί να είναι μία από τις εξής: ΠΕΤΡΑ, ΨΑΛΙΔΙ, ΧΑΡΤΙ, ΤΕΛΟΣ. (Δεν απαιτείται έλεγχος εγκυρότητας τιμών.) Μονάδες 2
2. συγκρίνει τις επιλογές των παικτών και διαπιστώνει το νικητή του γύρου ή την ισοπαλία. Μονάδες 6 Β. Τερματίζει το παιχνίδι όταν ένας τουλάχιστον από τους δύο παίκτες επιλέξει ΤΕΛΟΣ. Μονάδες 6
Γ. Εμφανίζει το όνομα του νικητή ή, αν δεν υπάρχει νικητής, το μήνυμα «ΤΟ ΠΑΙΧΝΙΔΙ ΕΛΗΞΕ ΙΣΟΠΑΛΟ». Μονάδες 6 ΘΕΜΑ Α/122 [Θέμα 1.Β Επαναληπτικες Εσπερινά Λύκεια 2007] 1. Να αναφέρετε τις τρεις λειτουργίες που μπορεί να εκτελέσει ένας υπολογιστής. Μονάδες 3 2. Για την εντολή εκχώρησης: i. Να γράψετε τη σύνταξή της.
Μονάδες 2
ii. Να περιγράψετε τη λειτουργία της.
Μονάδες 3
3. Να δώσετε τους ορισμούς των παρακάτω όρων: i. Δεδομένο. ii. Πληροφορία. iii. Επεξεργασία δεδομένων.
Μονάδες 6
ΘΕΜΑ Α/123 [Θέμα 1.Γ Επαναληπτικες Εσπερινά Λύκεια 2007] Να γράψετε τις παρακάτω μαθηματικές εκφράσεις σε ΓΛΩΣΣΑ: 1.
5x − 7 y α+ β
Μονάδες 3
2.
5 2 ( 3 x1 − 7 x2 ) − 8 x3
Μονάδες 3
253
ΘΕΜΑ Α/124 [Θέμα 1.Δ Επαναληπτικες Εσπερινά Λύκεια 2007] Δίνεται το παρακάτω τμήμα αλγόριθμου: α←1 β←3 Όσο α < 10 επανάλαβε z←α+β β←β+1 α←α+2 Τέλος_επανάληψης Να μετατραπεί σε ισοδύναμο χρησιμοποιώντας τη δομή επανάληψης Αρχή_επανάληψης ... Μέχρις_ότου. Μονάδες 10
ΘΕΜΑ Α/125 [Θέμα 2 Επαναληπτικες Εσπερινά Λύκεια 2007] α. Δίνεται ο παρακάτω αλγόριθμος σε ψευδογλώσσα: Αλγόριθμος ΑΣΚΗΣΗ Κ ← 23 Διάβασε Λ Αν Κ > Λ τότε Εμφάνισε “ΕΝΑ” αλλιώς_αν Κ < Λ τότε Εμφάνισε “ΔΥΟ” αλλιώς Εμφάνισε “ΤΡΙΑ” Τέλος_αν Τέλος ΑΣΚΗΣΗ Να σχεδιάσετε το αντίστοιχο διάγραμμα ροής. β.
Μονάδες 10
Δίνεται το παρακάτω τμήμα αλγόριθμου: α←5 β←3 Για Χ από 2 μέχρι 7 με_βήμα 4 Όσο α < =10 επανάλαβε β←β+α α←α+4 Τέλος_επανάληψης Εμφάνισε α, β α←4 Τέλος_επανάληψης Εμφάνισε α Να γράψετε στο τετράδιό σας τις τιμές που εμφανίζονται κατά την εκτέλεση του παραπάνω τμήματος αλγόριθμου. Μονάδες 10
254
ΘΕΜΑ Α/126 [Θέμα 3 Επαναληπτικες Εσπερινά Λύκεια 2007] ΄Ενας καταναλωτής διαθέτει 150 € για αγορά ρυζιού, προκειμένου να το δωρίσει σε ένα φιλανθρωπικό ίδρυμα. Σε ένα πολυκατάστημα διατίθενται πακέτα ρυζιού σε τέσσερις διαφορετικές συσκευασίες από διαφορετικές εταιρείες. Να γράψετε αλγόριθμο ο οποίος: α.
Διαβάζει το όνομα της εταιρείας, την αξία και την ποσότητα σε γραμμάρια για κάθε μία από τις τέσσερις συσκευασίες ρυζιού. Μονάδες 4
β.
Υπολογίζει και εμφανίζει το όνομα της εταιρείας που προσφέρει το ρύζι στην πλέον συμφέρουσα για τον καταναλωτή συσκευασία (να θεωρήσετε ότι υπάρχει μόνο μία τέτοια εταιρεία). Μονάδες 10
γ.
Υπολογίζει και εμφανίζει τον αριθμό των πακέτων που μπορεί να αγοράσει από την πλέον συμφέρουσα για τον καταναλωτή συσκευασία (σύμφωνα με το ερώτημα β). Μονάδες 6
ΘΕΜΑ Α/127 [Θέμα 1.Γ1 Ημερήσια Λύκεια 2008] Να γράψετε στο τετράδιό σας τους αριθμούς 1,2,3,4, από τη Στήλη Α και δίπλα το γράμμα α,β, της Στήλης Β που δίνει το σωστό χαρακτηρισμό. Στήλη Α
Στήλη Β
1. Εύστοχη χρήση ορολογίας
α. Σαφήνεια διατύπωσης προβλήματος
2. Τήρηση λεξικολογικών και συντακτικών κανόνων
β. Καθορισμός απαιτήσεων
3. Επακριβής προσδιορισμός δεδομένων 4. Λεπτομερειακή καταγραφή ζητουμένων Μονάδες 4
ΘΕΜΑ Α/128 [Θέμα 1.Γ2 Ημερήσια Λύκεια 2008] Στο παρακάτω τμήμα προγράμματος να μετατρέψετε την αλγοριθμική δομή της πολλαπλής επιλογής σε ισοδύναμη αλγοριθμική δομή ΕΠΙΛΕΞΕ. ΓΡΑΨΕ “Δώσε αριθμό από 0 έως και 5” ΔΙΑΒΑΣΕ Χ ΑΝ Χ=0 ΤΟΤΕ ΓΡΑΨΕ ‘μηδέν’ ΑΛΛΙΩΣ_ΑΝ (Χ=1) ή (Χ=3) ή (Χ=5) ΤΟΤΕ ΓΡΑΨΕ ‘περιττός αριθμός’ ΑΛΛΙΩΣ_ΑΝ (Χ=2) ή (Χ=4) ΤΟΤΕ ΓΡΑΨΕ ‘άρτιος αριθμός’ ΑΛΛΙΩΣ ΓΡΑΨΕ ‘έδωσες λάθος αριθμό’ ΤΕΛΟΣ_ΑΝ
Μονάδες 6
255
ΘΕΜΑ Α/129 [Θέμα 1.Δ Ημερήσια Λύκεια 2008] Δίνεται το παρακάτω τμήμα κειμένου: Οι λόγοι που αναθέτουμε την επίλυση ενός προβλήματος σε υπολογιστή σχετίζονται με: • την ..........1........... των υπολογισμών. • την ..........2........... των διαδικασιών. • την ταχύτητα εκτέλεσης των ..........3........... . • το μεγάλο πλήθος των ..........4........... . Δίνονται οι παρακάτω λέξεις: α. Πολυπλοκότητα β. δεδομένων γ. ζητουμένων δ. αληθοφάνεια ε. πράξεων στ. επαναληπτικότητα Να γράψετε στο τετράδιό σας τους αριθμούς 1,2,3,4, που βρίσκονται στα κενά διαστήματα και δίπλα να γράψετε το γράμμα α, β, γ, δ, ε, στ, που αντιστοιχεί στη σωστή λέξη. Δύο λέξεις δεν χρησιμοποιούνται. Μονάδες 8 ΘΕΜΑ Α/130 [Θέμα 2 Ημερήσια Λύκεια 2008] Δίνεται το παρακάτω πρόγραμμα σε γλώσσα: ΠΡΟΓΡΑΜΜΑ Α ΜΕΤΑΒΛΗΤΕΣ ΑΚΕΡΑΙΕΣ: x, n, m, pow, z ΑΡΧΗ ΔΙΑΒΑΣΕ x,n mn pow 1 zx ΟΣΟ m > 0 ΕΠΑΝΑΛΑΒΕ ΟΣΟ ( m MOD 2) = 0 ΕΠΑΝΑΛΑΒΕ m m DIV 2 zz* z ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ m m-1 ΓΡΑΨΕ pow pow pow*z ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ ΓΡΑΨΕ pow ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ Α
256
α.
Να κατασκευάσετε το ισοδύναμο διάγραμμα ροής του προγράμματος Α.
β.
Να γράψετε στο τετράδιό σας τις τιμές της μεταβλητής pow που θα εμφανιστούν κατά την εκτέλεση του προγράμματος Α, αν ως τιμές εισόδου δοθούν οι αριθμοί: x = 2, n = 3. Μονάδες 12
Μονάδες 8
ΘΕΜΑ Α/131 [Θέμα 1.A Εσπερινά Λύκεια 2008] α. Ποια είναι τα κυριότερα χρησιμοποιούμενα γεωμετρικά σχήματα σε ένα διάγραμμα ροής και τι ενέργεια ή λειτουργία δηλώνει το καθένα; Μονάδες 8 β.
Πότε ένα πρόβλημα χαρακτηρίζεται 1. απόφασης;
Μονάδες 4
2. βελτιστοποίησης;
Μονάδες 4
ΘΕΜΑ Α/132 [Θέμα 1.Β Εσπερινά Λύκεια 2008] Δίνεται το παρακάτω τμήμα αλγορίθμου: Κ←1 ΟΣΟ Κ 2 ΤΟΤΕ Χ←Χ+2 ΑΛΛΙΩΣ Χ←Χ+3 ΤΕΛΟΣ_ΑΝ ΕΜΦΑΝΙΣΕ Χ ΜΕΧΡΙΣ_ΟΤΟΥ Χ>15 α.
Ποιο είναι το πλήθος των επαναλήψεων που θα εκτελεστούν;
β.
Να γράψετε στο τετράδιό σας την τιμή της μεταβλητής Χ που θα εμφανιστεί σε κάθε επανάληψη. Μονάδες 10
γ.
Ποια είναι η τελική τιμή της μεταβλητής Χ;
Μονάδες 2
Μονάδες 2
ΘΕΜΑ Α/135 [Θέμα 1.Δ Επαναληπτικες Ημερήσια Λύκεια 2008] Να γράψετε τις παρακάτω μαθηματικές εκφράσεις σε «ΓΛΩΣΣΑ». α.
x − ηµθ x2 + 5
Μονάδες 2
β.
2x +
3 ( x + 1) x −e y2 +1
Μονάδες 2
ΘΕΜΑ Α/136 [Θέμα 1.Ε Επαναληπτικες Ημερήσια Λύκεια 2008] Δίνεται το παρακάτω τμήμα αλγορίθμου: Κ1 ΓΙΑ i ΑΠΟ –1 ΜΕΧΡΙ –5 ΜΕ_ΒΗΜΑ –2 ΚΚ*i ΓΡΑΨΕ Κ ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ Να μετατρέψετε το τμήμα αυτού του αλγορίθμου σε ισοδύναμο: α.
Με χρήση της αλγοριθμικής δομής ΟΣΟ
Μονάδες 3
β.
Με χρήση της αλγοριθμικής δομής ΜΕΧΡΙΣ_ΟΤΟΥ
Μονάδες 3
ΘΕΜΑ Α/137 [Θέμα 1.ΣΤ Επαναληπτικες Ημερήσια Λύκεια 2008] Δίνεται το παρακάτω τμήμα αλγορίθμου: ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ ΓΡΑΨΕ ‘ΔΩΣΕ ΘΕΤΙΚΟ ΑΡΙΘΜΟ’ ΔΙΑΒΑΣΕ ........ ΜΕΧΡΙΣ_ΟΤΟΥ Χ ....... 0 ΓΙΑ i ΑΠΟ 0 ΜΕΧΡΙ ........ ΜΕ_ΒΗΜΑ ........ Α i ^ ........ ΓΡΑΨΕ ........ ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
258
Να γράψετε στο τετράδιό σας τον παραπάνω αλγόριθμο κατάλληλα συμπληρωμένο, έτσι ώστε να υπολογίζει και να εμφανίζει τα τετράγωνα των πολλαπλασίων του 5 από το 0 μέχρι τον αριθμό Χ που διαβάστηκε. Μονάδες 6 ΘΕΜΑ Α/138 [Θέμα 2.Α Επαναληπτικες Ημερήσια Λύκεια 2008] Δίνεται το παρακάτω πρόγραμμα σε «ΓΛΩΣΣΑ» 1. ΠΡΟΓΡΑΜΜΑ ΕΙΝΑΙ-ΠΡΩΤΟΣ 2. ΜΕΤΑΒΛΗΤΕΣ 3. ΑΚΕΡΑΙΕΣ: Χ, i 4. ΧΑΡΑΚΤΗΡΕΣ: ΜΗΝΥΜΑ 5. ΑΡΧΗ 6. ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ 7. ΔΙΑΒΑΣΕ Χ 8. ΜΕΧΡΙΣ_ΟΤΟΥ Χ>0 9. C 0 10. ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ Χ ΕΠΑΝΑΛΑΒΕ 11. AN (Χ MOD i) = 0 TOTE 12. C C + 1 13. ΤΕΛΟΣ_ΑΝ 14. ΤΕΛΟΣ_ΓΙΑ 15. ΑΝ C=2 TOTE 16. MHNYMA ‘EINAI ΠΡΩΤΟΣ’ 17. ΑΛΛΙΩΣ 18. ΜΗΝΥΜΑ ‘ΔΕΝ ΕΙΝΑΙ ΠΡΩΤΟΣ’ 19. ΤΕΛΟΣ 20. ΓΡΑΨΕ ΜΗΝΥΜΑ 21. ΤΕΛΟΣ_ΑΛΓΟΡΙΘΜΟΥ Να γράψετε στο τετράδιό σας τον αριθμό κάθε γραμμής του προγράμματος, στην οποία εντοπίζετε συντακτικό λάθος και να περιγράψετε το λάθος αυτό. Μονάδες 12 ΘΕΜΑ Α/139 [Θέμα 2.Β Επαναληπτικες Ημερήσια Λύκεια 2008] Να μεταφέρετε στο τετράδιό σας συμπληρωμένο τον παρακάτω πίνακα αληθείας. Α Ψευδής Ψευδής Αληθής Αληθής
Β Ψευδής Αληθής Ψευδής Αληθής
(ΟΧΙ Α) ΚΑΙ (ΟΧΙ Β)
((ΟΧΙ Α) ΚΑΙ Β) Ή (Α ΚΑΙ (ΟΧΙ Β))
Μονάδες 8
ΘΕΜΑ Α/140 [Θέμα 1.Α2 Επαναληπτικες Εσπερινά Λύκεια 2008] Για την εντολή ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ ... ΜΕΧΡΙΣ_ΟΤΟΥ να γράψετε τη σύνταξή της και να περιγράψετε τη λειτουργία της. Μονάδες 6 ΘΕΜΑ Α/141 [Θέμα 3 Επαναληπτικες Ημερήσια Λύκεια 2008] Μία εταιρεία αποφάσισε να δώσει βοηθητικό επίδομα στους υπαλλήλους της για τον μήνα Ιούλιο. Το επίδομα διαφοροποιείται, ανάλογα με το φύλο του/της υπαλλήλου και τον αριθμό των παιδιών του/της, με βάση τους παρακάτω πίνακες:
259
ΑΝΔΡΕΣ ΑΡΙΘΜΟΣ ΠΑΙΔΙΩΝ ΕΠΙΔΟΜΑ ΣΕ €
1 2 >=3
ΓΥΝΑΙΚΕΣ ΑΡΙΘΜΟΣ ΠΑΙΔΙΩΝ ΕΠΙΔΟΜΑ ΣΕ €
20 50 120
1 2 >=3
30 80 160
Να γράψετε αλγόριθμο ο οποίος α.
Διαβάζει το φύλο («Α» ή «Γ») το οποίο ελέγχεται ως προς την ορθότητα της εισαγωγής του. Επίσης διαβάζει τον μισθό και τον αριθμό των παιδιών του υπαλλήλου. Μονάδες 3
β.
Υπολογίζει και εμφανίζει το επίδομα και το συνολικό ποσό που θα εισπράξει ο υπάλληλος τον μήνα Ιούλιο. Μονάδες 7
γ.
Δέχεται απάντηση «ΝΑΙ» ή «ΟΧΙ» για τη συνέχεια ή τον τερματισμό της επανάληψης μετά την εμφάνιση σχετικού μηνύματος. Μονάδες 4
δ.
Υπολογίζει και εμφανίζει το συνολικό ποσό επιδόματος που πρέπει να καταβάλει η Εταιρεία στους υπαλλήλους της. Μονάδες 6
ΘΕΜΑ Α/142 [Θέμα 1.Α1 Επαναληπτικες Εσπερινά Λύκεια 2008] Δίνεται η παρακάτω ακολουθία εντολών: ΕΠΑΝ←ΑΛΗΘΗΣ ΟΣΟ ΕΠΑΝ = ΑΛΗΘΗΣ ΕΠΑΝΑΛΑΒΕ ΔΙΑΒΑΣΕ Α, Β Χ←Β/Α ΓΡΑΨΕ Χ ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ α.
Να αναφέρετε ονομαστικά ποια κριτήρια αλγορίθμου δεν ικανοποιούνται.
Μονάδες 4
β.
Να αιτιολογήσετε την απάντησή σας.
Μονάδες 6
ΘΕΜΑ Α/143 [Θέμα 1.Β Επαναληπτικες Εσπερινά Λύκεια 2008] Να χαρακτηρίσετε καθεμιά από τις προτάσεις που ακολουθούν γράφοντας στο τετράδιό σας, δίπλα από τον αριθμό κάθε πρότασης, το γράμμα Σ, αν αυτή είναι Σωστή, ή το γράμμα Λ, αν αυτή είναι Λανθασμένη. α.
Η αναπαράσταση ενός αλγορίθμου με φυσική γλώσσα κατά βήματα μπορεί να παραβιάσει το κριτήριο της καθοριστικότητας. Μονάδες 2
β.
Η ακολουθιακή δομή εντολών χρησιμοποιείται για την αντιμετώπιση προβλημάτων στα οποία είναι δεδομένη η σειρά εκτέλεσης ενός συνόλου ενεργειών. Μονάδες 2
γ.
Ο βρόχος Για Κ από 5 μέχρι 1 εκτελείται 5 φορές.
δ.
Για τον υπολογισμό μιας έκφρασης, όλες οι μεταβλητές που εμφανίζονται σ’ αυτή πρέπει να έχουν οριστεί προηγουμένως, δηλαδή να έχουν κάποια τιμή. Μονάδες 2
ε.
Το σύμβολο >= είναι λογικός τελεστής.
Μονάδες 2
Μονάδες 2
260
ΘΕΜΑ Α/144 [Θέμα 1.Δ Επαναληπτικες Εσπερινά Λύκεια 2008] Δίνεται το παρακάτω τμήμα αλγορίθμου: Ζ←ΨΕΥΔΗΣ Χ←ΑΛΗΘΗΣ Ψ←ΨΕΥΔΗΣ Α←Χ ΚΑΙ (Ψ Ή Ζ) Β←(ΟΧΙ Α) ΚΑΙ (ΟΧΙ Ζ) Να γράψετε στο τετράδιό σας τις τιμές των μεταβλητών Α και Β μετά την εκτέλεση του παραπάνω τμήματος αλγορίθμου. Μονάδες 6 ΘΕΜΑ Α/145 [Θέμα 2 Επαναληπτικες Εσπερινά Λύκεια 2008] Δίνεται το παρακάτω τμήμα αλγορίθμου: Χ←0 Α←10 Β←14 ΟΣΟ Β>0 ΕΠΑΝΑΛΑΒΕ ΑΝ Β MOD 2 = 0 ΤΟΤΕ Χ←Χ+Α ΤΕΛΟΣ_ΑΝ Α←Α*2 B←B DIV 2 ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ α. Να γράψετε στο τετράδιό σας τις τιμές των μεταβλητών Χ, Α και Β στο τέλος κάθε επανάληψης κατά την εκτέλεση του παραπάνω τμήματος αλγορίθμου. Μονάδες 12 β.
Να σχεδιάσετε το αντίστοιχο διάγραμμα ροής.
Μονάδες 8
ΘΕΜΑ Α/146 [Θέμα 1.Β2 Ημερήσια Λύκεια 2009] Να μετατρέψετε σε εντολές εκχώρησης τις παρακάτω φράσεις: α.
Εκχώρησε στο Ι τον μέσο όρο των Α, Β, Γ.
β.
Αύξησε την τιμή του Μ κατά 2.
γ.
Διπλασίασε την τιμή του Λ.
δ.
Μείωσε την τιμή του Χ κατά την τιμή του Ψ.
ε.
Εκχώρησε στο Α το υπόλοιπο της ακεραίας διαίρεσης του Α με το Β.
Μονάδες 5
ΘΕΜΑ Α/147 [Θέμα 1.Δ Ημερήσια Λύκεια 2009] Να αντιστοιχίσετε κάθε Δεδομένο της Στήλης Α με το σωστό Τύπο Δεδομένου της Στήλης Β. Στήλη Α Δεδομένα 1. 0,42 2. "ΨΕΥΔΗΣ” 3. "Χ" 4. -32,0 5. ΑΛΗΘΗΣ
Στήλη Β Τύπος Δεδομένων α. Ακέραιος β. Πραγματικός γ. Χαρακτήρας δ. Λογικός
Τα στοιχεία της Στήλης Β μπορείτε να τα χρησιμοποιήσετε καμία, μία ή περισσότερες από μία φορές. Μονάδες 5
261
ΘΕΜΑ Α/148 [Θέμα 1.Γ1 Ημερήσια Λύκεια 2009] Η κατανόηση ενός προβλήματος αποτελεί συνάρτηση δύο παραγόντων. Να τους αναφέρετε. Μονάδες 4 ΘΕΜΑ Α/149 [Θέμα 2 Ημερήσια Λύκεια 2009] Δίνεται o παρακάτω αλγόριθμος, στον οποίο έχουν αριθμηθεί οι εντολές εκχώρησης:
1 2 3 4 5 6
Αλγόριθμος Πολλαπλασιασμός Δεδομένα //α,β// Αν α > β τότε αντιμετάθεσε α,β γ←0 Όσο α > 0 επανάλαβε δ ← α mod 10 Όσο δ > 0 επανάλαβε δ←δ−1 γ←γ+β Τέλος_επανάληψης α ← α div 10 β ← β * 10 Τέλος_επανάληψης Αποτελέσματα //γ// Τέλος πολλαπλασιασμός
Επίσης δίνεται υπόδειγμα πίνακα (πίνακας τιμών), με συμπληρωμένες τις αρχικές τιμές των μεταβλητών α,β (τιμές εισόδου), καθώς και της εντολής εκχώρησης με αριθμό 1.
α.
Να μεταφέρετε στο τετράδιό σας τον πίνακα και να τον συμπληρώσετε, εκτελώντας τον αλγόριθμο με αρχικές τιμές α = 20, β = 50 (που ήδη φαίνονται στον πίνακα). Για κάθε εντολή εκχώρησης που εκτελείται να γράψετε σε νέα γραμμή του πίνακα: 1. Τον αριθμό της εντολής που εκτελείται (στην πρώτη στήλη). 2. Τη νέα τιμή της μεταβλητής που επηρεάζεται από την εντολή (στην αντίστοιχη στήλη). Μονάδες 10
β.
Να γράψετε τμήμα αλγορίθμου, που θα έχει το ίδιο αποτέλεσμα με την εντολή: Αν α > β τότε αντιμετάθεσε α, β χωρίς να χρησιμοποιήσετε την εντολή αντιμετάθεσε.
γ.
Μονάδες 5
Να γράψετε τμήμα αλγορίθμου, που θα έχει το ίδιο αποτέλεσμα με το παρακάτω τμήμα:
262
δ ← α mod 10 Όσο δ > 0 επανάλαβε δ←δ−1 γ←γ+β Τέλος_επανάληψης χρησιμοποιώντας αντί της εντολής Όσο την εντολή Για. Στο νέο τμήμα αλγορίθμου να χρησιμοποιήσετε μόνο τις μεταβλητές α, β, γ, δ, που χρησιμοποιεί το αρχικό τμήμα. Μονάδες 5
ΘΕΜΑ Α/150 [Θέμα 1.Β Εσπερινά Λύκεια 2009] Δίνεται το παρακάτω τμήμα προγράμματος: ΓΡΑΨΕ 'Δώσε αριθμό' ΔΙΑΒΑΣΕ Α ΕΠΙΛΕΞΕ Α ΠΕΡΙΠΤΩΣΗ < 0 ΓΡΑΨΕ 'Αρνητικός' ΠΕΡΙΠΤΩΣΗ 0 ΓΡΑΨΕ 'Μηδέν' ΠΕΡΙΠΤΩΣΗ ΑΛΛΙΩΣ ΓΡΑΨΕ 'Θετικός' ΤΕΛΟΣ_ ΕΠΙΛΟΓΩΝ Να μετατραπεί σε ισοδύναμο με χρήση της δομής επιλογή ΑΝ…ΤΟΤΕ…ΑΛΛΙΩΣ_ΑΝ. Μονάδες 11
ΘΕΜΑ Α/151 [Θέμα 1.Γ Εσπερινά Λύκεια 2009] Να αναφέρετε τις κατηγορίες που διακρίνονται τα προβλήματα με κριτήριο τον βαθμό δόμησης τους . Μονάδες 6 Να δώσετε ένα παράδειγμα σε κάθε κατηγορία. Μονάδες 3 ΘΕΜΑ Α/152 [Θέμα 1.Δ Εσπερινά Λύκεια 2009] Δίνονται οι τιμές των μεταβλητών Α=8, Β=3, Γ=-2 και Δ=-1. Να χαρακτηρίσετε κάθε μία από τις παρακάτω εκφράσεις αν είναι ΑΛΗΘΗΣ ή ΨΕΥΔΗΣ. Μονάδες 10 1. A MOD B >= A_T(Γ) 2. Α * 2 - Β ^ 2 = -(17 ΜΟD A) 5. B * Δ = 5 τότε Αν Β < 7 τότε Α←Α+1 Αλλιώς Α←Α-1 Τέλος_αν Αλλιώς Α←Α-1 Τέλος_αν Εμφάνισε Α Επίσης δίνονται παρακάτω δύο τμήματα αλγορίθμων από τα οποία λείπουν οι συνθήκες: α. Αν .......................... τότε Α←Α+1 Αλλιώς Α← Α–1 Τέλος_αν Εμφάνισε Α
β. Αν ............................... τότε Α←Α–1 αλλιώς Α←Α+1 Τέλος_αν Εμφάνισε Α
Να γράψετε στο τετράδιό σας τις συνθήκες που λείπουν, ώστε κάθε ένα από τα τμήματα α, β να εμφανίζει το ίδιο αποτέλεσμα με το αρχικό. Μονάδες 10 ΘΕΜΑ Α/156 [Θέμα 1.Δ.2 Επαναληπτικές Ημερήσια Λύκεια 2009] Δίνονται οι τιμές των μεταβλητών Α=3, Β=1, Γ=15 και η παρακάτω έκφραση: (ΟΧΙ (Α + Β * 3 > 10)) ΚΑΙ (Γ MOD (A - B) = 1) Nα υπολογίσετε την τιμή της έκφρασης αναλυτικά ως εξής: α. β. γ. δ.
Να αντικαταστήσετε τις μεταβλητές με τις τιμές τους. Μονάδα 1 Να εκτελέσετε τις αριθμητικές πράξεις. Μονάδα 1 Να αντικαταστήσετε τις συγκρίσεις με την τιμή ΑΛΗΘΗΣ, αν η σύγκριση είναι αληθής, ή την τιμή ΨΕΥΔΗΣ, αν είναι ψευδής. Μονάδα 1 Να εκτελέσετε τις λογικές πράξεις, ώστε να υπολογίσετε την τελική τιμή της έκφρασης. Μονάδες 2
ΘΕΜΑ Α/157 [Θέμα 2 Επαναληπτικές Ημερήσια Λύκεια 2009] Δίνεται o παρακάτω αλγόριθμος, στον οποίο έχουν αριθμηθεί οι εντολές εκχώρησης: 1 Διάβασε Χ 2 Όσο X > 1 επανάλαβε 3 Aν Χ mod 2=0 τότε 4 Χ ← Χ div 2 5 Αλλιώς 6 Χ←3*Χ+1 7 Τέλος_αν 8 Τέλος_επανάληψης
265
Επίσης δίνεται το παρακάτω υπόδειγμα πίνακα (πίνακας τιμών), με συμπληρωμένη την αρχική τιμή της μεταβλητής Χ. Αριθμός Εντολής Χ Χ>1 Χ mod 2=0 1
5
...
...
...
...
Να μεταφέρετε στο τετράδιό σας τον πίνακα και να τον συμπληρώσετε, εκτελώντας τον αλγόριθμο με αρχική τιμή Χ=5 (που ήδη φαίνεται στον πίνακα). α.
Για κάθε εντολή που εκτελείται να γράψετε σε νέα γραμμή του πίνακα τα εξής: 1. Τον αριθμό της εντολής που εκτελείται (στην πρώτη στήλη). 2. Αν η γραμμή περιέχει εντολή εκχώρησης, τη νέα τιμή της μεταβλητής στην αντίστοιχη στήλη. Αν η γραμμή περιέχει έλεγχο συνθήκης, την τιμή της συνθήκης (Αληθής, Ψευδής) στην αντίστοιχη στήλη. Μονάδες 16
β. Να κάνετε τη διαγραμματική αναπαράσταση του ανωτέρω τμήματος αλγορίθμου Μονάδες 4 (διάγραμμαροής). ΘΕΜΑ Α/158 [Θέμα A.1 Ημερήσια Λύκεια 2010] Δίνονται τα παρακάτω τμήματα αλγορίθμου σε φυσική γλώσσα. 1. Αν η βαθμολογία (ΒΑΘΜΟΣ) είναι μεγαλύτερη από τον Μέσο ΄Ορο (ΜΟ), τότε να τυπώνει «Πολύ Καλά», αν είναι ίση ή μικρότερη του Μέσου Όρου μέχρι και δύο μονάδες να τυπώνει «Καλά», σε κάθε άλλη περίπτωση να τυπώνει «Μέτρια». 2. Αν το τμήμα (ΤΜΗΜΑ) είναι το Γ1 και η βαθμολογία (ΒΑΘΜΟΣ) είναι μεγαλύτερη από 15, τότε να τυπώνει το επώνυμο (ΕΠΩΝΥΜΟ). 3. Αν η απάντηση (ΑΠΑΝΤΗΣΗ) δεν είναι Ν ή ν ή Ο ή ο, τότε να τυπώνει «Λάθος απάντηση». 4. Αν ο αριθμός (Χ) είναι αρνητικός ή το ημίτονό του είναι μηδέν, τότε να τυπώνει «Λάθος δεδομένο», αλλιώς να υπολογίζει και να τυπώνει την τιμή της παράστασης +5 +1 √ ∙ Να γράψετε στο τετράδιό σας τους αριθμούς 1 έως 4 και δίπλα σε κάθε αριθμό την αντίστοιχη κωδικοποίηση σε ΓΛΩΣΣΑ. Σημείωση: Οι λέξεις με κεφαλαία μέσα στις παρενθέσεις είναι τα ονόματα των αντίστοιχων μεταβλητών. Μονάδες 8 ΘΕΜΑ Α/159 [Θέμα A.2 Ημερήσια Λύκεια 2010] Να αναφέρετε τους τύπους των μεταβλητών που υποστηρίζει η ΓΛΩΣΣΑ. Για κάθε τύπο μεταβλητής να γράψετε μια εντολή εκχώρησης σταθερής τιμής σε μεταβλητή. Μονάδες 8
266
ΘΕΜΑ Α/160 [Θέμα A.3 Ημερήσια Λύκεια 2010] Δίνεται το παρακάτω τμήμα αλγορίθμου: Α 0 Β0 Γ0 Δ0 Για Ε από 1 μέχρι 496 Διάβασε Ζ Αν Ε=1 Τότε Η Ζ ΑΑ+Ζ Αν Ζ ≥ 18 Τότε Β Β+Ζ Γ Γ+1 Τέλος_Αν Αν Ζ > 0 Τότε Δ Δ+1 Αν Ζ < Η Τότε ΗΖ Τέλος_Επανάληψης Θ Α/496 Αν Γ≠0 Τότε Ι Β/Γ Κ 496 – Γ Το παραπάνω τμήμα αλγορίθμου υπολογίζει στις μεταβλητές Η, Θ, Ι, Κ και Δ τις παρακάτω πληροφορίες: 1. Μέσος όρος όλων των τιμών εισόδου 2. Πλήθος των θετικών τιμών εισόδου 3. Μικρότερη τιμή εισόδου 4. Μέσος όρος των τιμών εισόδου από 18 και πάνω 5. Πλήθος των τιμών εισόδου κάτω από 18. Να γράψετε στο τετράδιό σας τους αριθμούς των πληροφοριών 1 έως 5 και δίπλα το όνομα της μεταβλητής που αντιστοιχεί σε κάθε πληροφορία. Μονάδες 10 ΘΕΜΑ Α/161 [Θέμα B Ημερήσια Λύκεια 2010] Δίνεται τo παρακάτω τμήμα αλγορίθμου, στο οποίο έχουν αριθμηθεί οι γραμμές: 1. j1 2. i2 3. Αρχή_επανάληψης 4. ii + j 5. ji – j 6. Εμφάνισε i 7. Μέχρις_ότου i ≥ 5 Επίσης δίνεται το ακόλουθο υπόδειγμα πίνακα τιμών: Αριθμός γραμμής ...
Συνθήκη ...
Έξοδος ...
i ...
j ...
267
Στη στήλη με τίτλο «αριθμός γραμμής» καταγράφεται ο αριθμός γραμμής της εντολής που εκτελείται. Στη στήλη με τίτλο «συνθήκη» καταγράφεται η λογική τιμή ΑΛΗΘΗΣ ή ΨΕΥΔΗΣ, εφόσον η εντολή που εκτελείται περιλαμβάνει συνθήκη. Στη στήλη με τίτλο «έξοδος» καταγράφεται η τιμή εξόδου, εφόσον η εντολή που εκτελείται είναι εντολή εξόδου. Στη συνέχεια του πίνακα υπάρχει μια στήλη για κάθε μεταβλητή του αλγόριθμου. Να μεταφέρετε τον πίνακα στο τετράδιό σας και να τον συμπληρώσετε εκτελώντας τις εντολές του τμήματος αλγορίθμου ως εξής: Για κάθε εντολή που εκτελείται να γράψετε σε νέα γραμμή του πίνακα τον αριθμό της γραμμής της και το αποτέλεσμά της στην αντίστοιχη στήλη. Σημείωση: Η εντολή της γραμμής 3 δεν χρειάζεται να αποτυπωθεί στον πίνακα. Μονάδες 20
ΘΕΜΑ Α/162 [Θέμα Γ Ημερήσια Λύκεια 2010] Σε κάποιο σχολικό αγώνα, για το άθλημα «Άλμα εις μήκος» καταγράφεται για κάθε αθλητή η καλύτερη έγκυρη επίδοσή του. Τιμής ένεκεν, πρώτος αγωνίζεται ο περσινός πρωταθλητής. Η Επιτροπή του αγώνα διαχειρίζεται τα στοιχεία των αθλητών που αγωνίστηκαν. Να γράψετε αλγόριθμο ο οποίος: Γ.1
Να ζητάει το ρεκόρ αγώνων και να το δέχεται, εφόσον είναι θετικό και μικρότερο των 10 μέτρων.
Γ.2
Να ζητάει τον συνολικό αριθμό των αγωνιζομένων και για κάθε αθλητή το όνομα και την επίδοσή του σε μέτρα με τη σειρά που αγωνίστηκε.
Μονάδες 2
Μονάδες 4
Γ.3
Να εμφανίζει το όνομα του αθλητή με τη χειρότερη επίδοση.
Γ.4
Να εμφανίζει τα ονόματα των αθλητών που κατέρριψαν το ρεκόρ αγώνων. Αν δεν υπάρχουν τέτοιοι αθλητές, να εμφανίζει το πλήθος των αθλητών που πλησίασαν το ρεκόρ αγώνων σε απόσταση όχι μεγαλύτερη των 50 εκατοστών.
Γ.5
Να βρίσκει και να εμφανίζει τη θέση που κατέλαβε στην τελική κατάταξη ο περσινός πρωταθλητής.
Μονάδες 4
Μονάδες 6
Μονάδες 4
Σημείωση: Να θεωρήσετε ότι κάθε αθλητής έχει έγκυρη επίδοση και ότι όλες οι επιδόσεις των αθλητών που καταγράφονται είναι διαφορετικές μεταξύ τους.
ΘΕΜΑ Α/163 [Θέμα Α.2 Εσπερινά Λύκεια 2010] Δίνεται το παρακάτω τμήμα αλγορίθμου: Για i από –3 μέχρι Α με_βήμα Β Εμφάνισε i Τέλος_επανάληψης Να χαρακτηρίσετε καθεμία από τις προτάσεις που ακολουθούν και αναφέρονται στο παραπάνω τμήμα αλγορίθμου, γράφοντας στο τετράδιό σας, τον αριθμό κάθε πρότασης και δίπλα του το γράμμα Σ, αν αυτή είναι Σωστή, ή το γράμμα Λ, αν αυτή είναι Λανθασμένη. α.
Αν το Α είναι 0 και το Β είναι 1 δεν ικανοποιείται το κριτήριο της περατότητας.
β.
Αν το Α είναι –3 και το Β είναι 2 εμφανίζεται η τιμή –3.
268
γ.
Αν το Α είναι μεγαλύτερο του 0 και το Β είναι μικρότερο του –4 ο βρόχος δεν εκτελείται καμία φορά.
δ.
Αν το Α είναι 2 και το Β είναι 2 ο βρόχος εκτελείται ακριβώς 3 φορές.
ε.
Αν το Α και το Β είναι θετικοί αριθμοί, ο βρόχος μπορεί να μετατραπεί με τη χρήση της εντολής Όσο...επανάλαβε. Μονάδες 10
ΘΕΜΑ Α/164 [Θέμα Α.3 Εσπερινά Λύκεια 2010] Να μετατραπούν οι παρακάτω προτάσεις σε σύνθετες εκφράσεις (συνθήκες) στη ΓΛΩΣΣΑ: α.
Ο x είναι μεγαλύτερος του –1 και μικρότερος ή ίσος του 10.
β.
Ο x είναι ίσος με 1 ή με 5 ή με –40.
γ.
Ο x είναι μεγαλύτερος του 50 αλλά όχι ίσος με 100.
δ.
Ο ακέραιος x είναι θετικός αριθμός πολλαπλάσιο του 3.
ε.
Ο ακέραιος x διαιρείται ακριβώς με το 4 αλλά όχι με το 100. Μονάδες 10
ΘΕΜΑ Α/165 [Θέμα Α.4 Εσπερινά Λύκεια 2010] Παρακάτω δίνεται τμήμα διαγράμματος ροής. Να μετατρέψετε σε ισοδύναμο τμήμα αλγορίθμου σε ψευδογλώσσα, χρησιμοποιώντας αποκλειστικά την εντολή επανάληψης Για...από...μέχρι...με_βήμα. Μονάδες 10
269
ΘΕΜΑ Α/166 [Θέμα Β Εσπερινά Λύκεια 2010] Δίνεται το παρακάτω τμήμα αλγορίθμου στο οποίο έχουν αριθμηθεί οι γραμμές: 1. ΔΙΑΒΑΣΕ Χ 2. ΔΙΑΒΑΣΕ Υ 3. ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ 4. ΑΝ Χ>Υ ΤΟΤΕ 5. Χ Χ DIV 2 6. AΛΛΙΩΣ 7. Υ Y DIV 2 8. ΤΕΛΟΣ_ΑΝ 9. Ε Χ*Υ 10. ΜΕΧΡΙΣ_ΟΤΟΥ ΕΒ ΟΧΙ (Β>Α) Α
View more...
Comments