Professional Documents
Culture Documents
Θεωρία Με Σχόλια Και ΣΛ
Θεωρία Με Σχόλια Και ΣΛ
Σημειώσεις Θεωρίας
Ερωτήσεις Ανάπτυξης
σελίδα 1
Κεφαλαιο 2: Βασικές έννοιες αλγορίθμων 8
1. Αλγόριθμος 8
4. Διάγραμμα ροής 9
5. Στοιχεία αλγορίθμου 9
6. Τελεσταίοι (operands) 9
8. Τελεστές (operators) 10
9. Εκφράσεις (expressions) 10
10. Εντολές 11
14. Ολίσθηση 12
σελίδα 2
22. Κατηγορίες δομών δεδομένων 16
25. Πίνακες 16
26. Αναζήτηση 17
28. Ταξινόμηση 18
σελίδα 3
46. Μεταγλωττιστής 24
48. Διερμηνευτής 25
56. Μεταβλητές 28
σελίδα 4
69. Συγκρίσεις 33
Κεφαλαιο 9: Πίνακες 39
89. Υποπρόγραμμα 41
σελίδα 5
92. Παράμετροι 42
Κεφάλαιο 3 : 71
Κεφάλαιο 6 72
Κεφάλαιο 7 74
Κεφάλαιο 8 75
Κεφάλαιο 9 76
Κεφάλαιο 10 76
σελίδα 6
σελίδα 7
ΚΕΦΑΛΑΙΟ 2: ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΛΓΟΡΙΘΜΩΝ
{Ορισμός} Είναι μία πεπερασμένη σειρά ενεργειών, αυστηρά καθορισμένων και εκτελέσιμων σε
πεπερασμένο χρόνο, που στοχεύουν στην επίλυση ενός προβλήματος.
Η σειρά – αλληλουχία των ενεργειών δεν είναι μοναδική. Η έννοια του αλγορίθμου δεν συνδέεται
αποκλειστικά με έννοιες της πληροφορικής.
1. Είσοδος: Καμία, μία ή περισσότερες τιμές δεδομένων πρέπει να δίνονται ως είσοδος. Η περίπτωση
που δεν δίνονται τιμές δεδομένων εμφανίζεται όταν: ο αλγόριθμος δημιουργεί μονος του και
επεξεργάζεται κάποιες πρωτογενείς τιμές με την βοήθεια συναρτήσεων παραγωγής τυχαίων
αριθμών ή με την βοήθεια άλλων απλών εντολών. πχ x 10
2. Έξοδος: Ο αλγόριθμος πρέπει να δημιουργεί τουλάχιστον ένα αποτέλεσμα προς τον χρήστη ή προς
ένα άλλο αλγόριθμο.
3. Καθοριστικότητα: Κάθε εντολή πρέπει να καθορίζεται χωρίς αμφιβολία για τον τρόπο εκτέλεσής
της. Πχ μία εντολή ζ <-- χ / ψ πρέπει να λαμβάνει υπ’ όψιν της το γεγονός ότι μπορεί το ψ να είναι
μηδέν.
4. Περατότητα: Ο αλγόριθμος πρέπει να τελειώνει μετά από πεπερασμένα βήματα. Αν δεν τελειώνει
μετά από ένα συγκεκριμένο αριθμό βημάτων δεν είναι αλγόριθμος αλλά υπολογιστική διαδικασία.
5. Αποτελεσματικότητα: Κάθε εντολή ενός αλγορίθμου δεν αρκεί να είναι ορισμένη αλλά πρέπει να
είναι απλή και εκτελέσιμη.
1. Ελεύθερο κείμενο (Free text): Αποτελεί τον πιο ανεπεξέργαστο και αδόμητο τρόπο παρουσίασης.
Υπάρχει κίνδυνος να οδηγήσει σε μη εκτελέσιμη παρουσίαση, παραβιάζοντας το τελευταίο
χαρακτηριστικό των αλγορίθμων το κριτήριο της αποτελεσματικότητας.
2. Διαγραμματικές τεχνικές (diagramming techniques): Αποτελούν ένα γραφικό τρόπο
αναπαράστασης. Μια τεχνική (από τις πιο παλιές και γνωστές ) είναι το διάγραμμα ροής (Flow
Chart). Η χρήση διαγραμματικών τεχνικών δεν είναι η καλύτερη λύση, γι’ αυτό εμφανίζονται όλο και
σπανιότερα στην βιβλιογραφία και στην πράξη.
3. Φυσική γλώσσα κατά βήματα (natural language): Μοιάζει με το ελεύθερο κείμενο απλά είναι κατά
βήματα. Κίνδυνος να παραβιαστεί το κριτήριο της καθοριστικότητας.
4. Κωδικοποίηση (coding): Δηλαδή με ένα πρόγραμμα γραμμένο είτε με μία ψευδογλώσσα είτε σε
κάποιο προγραμματιστικό περιβάλλον που όταν εκτελεσθεί θα δώσει τα ίδια αποτελέσματα με τον
αλγόριθμο.
σελίδα 8
4. Διάγραμμα ροής
Είναι μία διαγραμματική τεχνική {βλέπε παραπάνω}. Αποτελείται από ένα σύνολο γεωμετρικών
σχημάτων, όπου το καθένα δηλώνει μία συγκεκριμένη ενέργεια ή λειτουργία. Τα σχήματα ενώνονται
μεταξύ τους με βέλη που δηλώνουν την σειρά εκτέλεσης των ενεργειών αυτών.
5. Στοιχεία αλγορίθμου
• Τελεσταίοι
• Τελεστές
• Εκφράσεις
• Εντολές
6. Τελεσταίοι (operands)
σελίδα 9
7. Τύποι (ΚΑΤΗΓΟΡΙΕΣ) τελεσταίων Commented [SS5]: απομνημόνευση η παραάγραφος
{εδώ το σχολικό μας δηλώνει εμμέσως πλην σαφώς οι αλφαριθμητικοί περικλείονται ανάμεσα σε
διπλά εισαγωγικά... στο κεφάλαιο 7 όμως τους περικλείει σε μονά. Μην δίνεις σημασία. Έχεις τόσα
άλλα ωραία πράγματα να μάθεις... μην χάνεις τον χρόνο σου να ασχολείσαι με τέτοιες λεπτομέρειες.
}
• Λογικοί: Οι τιμές που μπορούν να πάρουν είναι ακριβώς δύο: αληθής, ψευδής
Είναι σύμβολα που χρησιμοποιούνται στις διάφορες πράξεις. Διακρίνονται σε τρεις κατηγορίες:
^ Oxi (άρνηση) =
>
* / div mod Και (σύζευξη) <
>=
+- Η (διάζευξη) <=
<>
9. Εκφράσεις (expressions)
Όταν μία τιμή προκύπτει από υπολογισμό τότε αναφερόμαστε σε εκφράσεις. Οι τελεστές μαζί με
τους τελεσταίους διαμορφώνουν τις εκφράσεις. Η διεργασία αποτίμησης μίας έκφρασης συνίσταται
στην απόδοση τιμών στις μεταβλητές και στην εκτέλεση των πράξεων. Η εκτέλεση των πράξεων
εξαρτάται από την ιεραρχία των πράξεων και την χρήση παρενθέσεων. Μία έκφραση μπορεί να
αποτελείται από μία μόνο μεταβλητή ή σταθερά μέχρι μία πολύπλοκη μαθηματική παράσταση. {
σελίδα 10
Χωρίζονται σε δύο κατηγορίες : τις αριθμητικές (Σχολ. Κεφ. 7) και τις λογικές (Σχολ. Κεφ. 8) Οι λογικές
εκφράσεις ονομάζονται αλλιώς και: Συνθήκες }
10. Εντολές
Αποκαλείται κάθε μία λέξη που προσδιορίζει μία σαφή ενέργεια. Οι εντολές μπορούν να διακριθούν
στις τρεις βασικές δομές του δομημένου προγραμματισμού: {βλέπε και κεφάλαιο 6ο (δομημένος
προγραμματισμός)}
1. Δομή ακολουθίας
2. Δομή επιλογής
3. Δομή επανάληψης
1. Δηλωτικές: αλγοριθμος
2. Εκτελέσιμες: διαβασε χ
Ονομάζεται και σειριακή ή ακολουθιακή δομή. Αποτελείται από ένα σύνολο εντολών που
τοποθετούνται η μία κάτω από την άλλη. Χρησιμοποιείται (από μόνη της) για την επίλυση πολύ
απλών προβλημάτων όπου η σειρά εκτέλεσης ενός συνόλου ενεργειών είναι δεδομένη.
Χρησιμοποιείται ευρύτατα σε συνδυασμό με άλλες δομές (επιλογής, επανάληψης).
{Για περισσότερες λεπτομέρειες όσον αφορά τις τρεις πρώτες εντολές ανατρέξτε καλύτερα στο
κεφάλαιο 7}
σελίδα 11
12. Δομή επιλογής
Αποτελείται από ένα σύνολο εντολών που εκτελούνται κατά περίπτωση. Η διαδικασία της επιλογής
περιλαμβάνει τον έλεγχο κάποιας συνθήκης με δύο δυνατές τιμές (αληθής, ψευδής) και στη
συνέχεια την απόφαση εκτέλεσης κάποιας εντολής ανάλογα με τη συνθήκη. {Για περισσότερα βλέπε
κεφάλαιο 8}
Η δομή επανάληψης εφαρμόζεται στις περιπτώσεις όπου μία ακολουθία εντολών πρέπει να γίνει
περισσότερες από μία φορές. Εφαρμόζεται σε ένα σύνολο περιπτώσεων που έχουν κάτι κοινό. Οι
επαναληπτικές διαδικασίες έχουν τρεις μορφές και συχνά εμπεριέχουν συνθήκες επιλογών.
{βλέπε κεφάλαιο 8}
14. Ολίσθηση
Όταν ο προγραμματιστής ορίζει ένα δεδομένο τότε αυτό αποθηκεύεται στα κυκλώματα του
υπολογιστή σε δυαδική μορφή δηλαδή σε ακολουθίες από 0 και 1.
Αν για παράδειγμα ο προγραμματιστής εκτελέσει την εντολή : χ←17 τότε μέσα στην μνήμη του
υπολογιστή (η οποία ουσιαστικά είναι ένα κύκλωμα) αποθηκεύεται ο ισοδύναμος αριθμός του
δυαδικού συστήματος, ο οποίος είναι το 00010001. Ολίσθηση είναι η μετακίνηση όλων των ψηφίων
ενός αριθμού κατά μια θέση.
Ισοδυναμεί με πολλαπλασιασμό επί δύο. Μετακινούμε όλα τα ψηφία του προς τα αριστερά
προσθέτοντας ένα μηδέν στο τέλος και αγνοώντας το αρχικό μηδέν.
Ισοδυναμεί με την ακέραια διαίρεση δια δύο. Μετακινούμε όλα τα ψηφία του προς τα δεξιά,
αποκόπτοντας το τελευταίο και προσθέτοντας ένα μηδενικό στην αρχή.
σελίδα 12
Η πράξη του πολλαπλασιασμού δύο αριθμών δεν εκτελείται από τον υπολογιστή με τον τρόπο που
την εκτελούμε εμείς. Εκτελείται με έναν άλλο τρόπο που λέγεται πολλαπλασιασμός αλά ρωσικά.
Έστω ότι θέλω να πολλαπλασιάσω τους αριθμούς 45 και 19. Οι αριθμοί που πρέπει να
πολλαπλασιαστούν γράφονται δίπλα δίπλα και ο πρώτος διπλασιάζεται ενώ ο δεύτερος
υπερδιπλασιάζεται (για την ακρίβεια τον υποδιπλασιάζουμε αγνοώντας το δεκαδικό μέρος). Η
διαδικασία αυτή επαναλαμβάνεται ώσπου ο δεύτερος να γίνει μηδέν :
Τελικά το ζητούμενο γινόμενο ισούται με το άθροισμα των στοιχείων της πρώτης στήλης όπου
αντίστοιχα στην δεύτερη στήλη υπάρχει περιττός αριθμός. Στο παραπάνω παράδειγμα τα στοιχεία
αυτά παρουσιάζονται στην τρίτη στήλη. Δηλαδή είναι 45+90+720=855 !
Ρ←0
Μ1←Μ1 * 2
Μ2←Μ2 div 2
τελος_επαναληψης
τελος πολλαπλασιασμός_αλα_ρωσικά
σελίδα 13
{Παρατήρησε την χρήση των εντολών δεδομένα και αποτελέσματα. Η επεξήγησή τους δίνεται
παρακάτω. Παρατήρησε επίσης την εντολή P←P+1. Δεν είναι τυπογραφικό λάθος !!! }
Μετατροπή:
Ο παραπάνω αλγόριθμος μπορεί εύκολα να μετατραπεί ώστε να περιλάβει και την περίπτωση
πολλαπλασιασμού αρνητικών ακεραίων. {ωραία άσκηση για τεστάκι... χιχι}
16. Γιατί ο υπολογιστής εκτελεί τον πολλαπλασιασμό αλά ρωσικά; Commented [SS11]: Απομνημόνευση όλη η παράγραφος
• Γιατί υλοποιείται πιο απλά και λιγότερο χρονοβόρα σε σχέση με τον χειρωνακτικό τρόπο
πολλαπλασιασμού.
• Απαιτεί μόνο πολλαπλασιαμό επί δύο, διαίρεση δια δύο και πρόσθεση σε αντίθεση με την γνωστή μας
διαδικασία πολ/μου που απιτεί πολλαπλασιασμό με οποιοδήποτε ακέραιο και πρόσθεση.
• Σε επίπεδο κυκλωμάτων ο διπλασιασμός υλοποιείται ταχύτατα με εντολή ολίσθησης προς τα αριστερά
ενώ ο υποδιπλασιασμός με ολίσθηση προς τα δεξιά , σε αντίθεση με τον πολλαπλασιασμό με
οποιονδήποτε ακέραιο που θεωρείται χρονοβόρα διαδικασία.
• Το τελευταίο γεγονός είναι ο λόγος που ο πολλαπλασιασμός αλά ρωσικά είναι προτιμότερος απ' ότι ο
χειρωνακτικός τρόπος πολλαπλασιασμού δύο ακεραίων.
Put your heart, mind, and soul into even your smallest acts. This is the secret of success.
Swami Sivananda
σελίδα 14
ΚΕΦΑΛΑΙΟ 3: ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ
{Ορισμός}. Είναι ένα σύνολο αποθηκευμένων δεδομένων που υφίστανται επεξεργασία από ένα Commented [SS12]: Απομνημόνευση ο ορισμός
σύνολο λειτουργιών.
Τα δεδομένα ενός προβλήματος αποθηκεύονται στον υπολογιστή, είτε στην κύρια μνήμη του είτε
στην δευτερεύουσα. Η αποθήκευση δεν γίνεται κατά ένα τυχαίο τρόπο αλλά συστηματικά, δηλαδή
χρησιμοποιώντας μία δομή. Κάθε μορφή δομής δεδομένων αποτελείται από ένα σύνολο κόμβων
(nodes).
19. Βασικές λειτουργίες (πράξεις) των δομών δεδομένων Commented [SS13]: Απομνημόνευση όλη η παράγραφος
20. Γιατί υπάρχουν διαφορετικές δομές; Commented [SS14]: Απομνημόνευση όλη η παράγραφος
Στην πράξη σπάνια χρησιμοποιούνται και οι οκτώ λειτουργίες για κάποια δομή. Συνήθως μία δομή
είναι αποδοτικότερη από μία άλλη σε κάποια λειτουργία. Άλλη είναι πιο αποδοτική στην αναζήτηση
άλλη στην εισαγωγή κλπ. Ανάλογα με την λειτουργία την οποία θέλουμε να κάνουμε επιλέγουμε και
την κατάλληλη δομή. Γι’ αυτό υπάρχουν τόσες πολλές δομές. Τα παραπάνω εξηγούν το πόσο
σπουδαία είναι η επιλογή της κατάλληλης δομής.
Υπάρχει μεγάλη εξάρτηση μεταξύ της δομής δεδομένων και του αλγόριθμου που επεξεργάζεται τη
δομή. Μάλιστα, το πρόγραμμα πρέπει να θεωρεί τη δομή δεδομένων και τον αλγόριθμο ως μία
αδιάσπαστη ενότητα. Η παρατήρηση αυτή δικαιολογεί την εξίσωση που διατυπώθηκε το 1976 από
τον Wirth (που σχεδίασε και υλοποίησε τη γλώσσα Pascal):
σελίδα 15
{Αν για παράδειγμα θέλεις να κάνεις έναν αλγόριθμο που κάνει αναζήτηση σε έναν μονοδιάστατο
πίνακα, το πρόγραμμα που θα προκύψει θα είναι εντελώς διαφορετικό από το να γράψεις έναν
αλγόριθμο που κάνει αναζήτηση σε έναν δισδιάστατο πίνακα. Συμπέρασμα: το πρόγραμμα που
γράφουμε είναι το αποτέλεσμα του αλγορίθμου που έχουμε στο κεφάλι μας και της δομής
δεδομένων που χρησιμοποιούμε}
• Δυναμικές και
• στατικές
• Το ακριβές μέγεθός τους είναι σταθερό και καθορίζεται κατά την στιγμή του προγραμματισμού τους
και όχι κατά την στιγμή της εκτέλεσης του προγράμματος.
• Οι κόμβοι τους αποθηκεύονται σε συνεχόμενες θέσεις μνήμης.
• Στην πράξη οι στατικές δομές υλοποιούνται με πίνακες .
• Οι δομές αυτές δεν έχουν σταθερό μέγεθος αλλά ο αριθμός των κόμβων τους μεγαλώνει καθώς
εισάγονται νέα δεδομένα, και μικραίνει καθώς διαγράφονται δεδομένα από αυτές.
• Δεν αποθηκεύονται σε συνεχόμενες θέσεις μνήμης αλλά στηρίζονται στην τεχνική της δυναμικής
παραχώρησης μνήμης ( DMA : Dynamic Memory Allocation).
• Όλες οι σύγχρονες γλώσσες προγραμματισμού τις υποστηρίζουν.
• Δυναμικές δομές είναι το αρχείο, η εγγραφή κ.α.
{Σημείωση Οι πρώτες δύο παράγραφοι περιέχονται στην σελίδα 72 του νέου σχολικού βιβλίου ενώ οι
υπόλοιπες τεσσερις στην σελίδα 57.}
25. Πίνακες
Είναι μία δομή που περιέχει στοιχεία του ίδιου τύπου (δηλαδή ακέραιους , πραγματικούς).
Η αναφορά στα στοιχεία του γίνεται με την χρήση του συμβολικού ονόματος του πίνακα
ακολουθούμενου από την τιμή ενός ή περισσοτέρων δεικτών. ΠΧ Α[3,4]
Ο τρόπος δήλωσης του πίνακα και η μέθοδος αναφοράς του εξαρτάται από την γλώσσα
προγραμματισμού που χρησιμοποιείται.
{ΠΧ στην γλώσσα Java ένας πίνακας Α 3 γραμμών και 4 στηλών δηλώνεται ως: A[3][4] }
σελίδα 16
Ένας πίνακας μπορεί να είναι μονοδιάστατος , δισδιάστατος , τρισδιάστατος και γενικά ν-διάστατος.
Ειδικά για τους δισδιάστατους πίνακες αν το μέγεθος των δύο διαστάσεων είναι ίδιο τότε ο πίνακας
ονομάζεται τετραγωνικός. Οι πίνακες χρησιμεύουν για την αποθήκευση και διαχείριση δύο
σπουδαίων δομών της στοίβας και της ουράς
Το πρόβλημα της αναζήτησης έχει ιδιαίτερο ενδιαφέρον λόγω της χρησιμότητάς του σε πλήθος
εφαρμογών. Υπάρχουν αρκετοί αλγόριθμοι (μέθοδοι) αναζήτησης σε πίνακα. Η επιλογή του πιο
κατάλληλου εξαρτάται κυρίως από το
Τα στοιχεία του πίνακα στον οποίο γίνεται αναζήτηση μπορεί να είναι οποιουδήποτε τύπου:
αριθμητικά (ακέραιοι πραγματικοί), αλφαριθμητικά (χαρακτήρες) ακόμη και λογικά.
27. Σειριακή (sequential) – γραμμική (linear) αναζήτηση Commented [SS19]: Απομνημόνευση τα 3 bullets
Είναι η πιο απλή αλλά και η πιο αναποτελεσματική μέθοδος αναζήτησης σε πίνακα.
• είναι μη ταξινομημένος,
• είναι μικρού μεγέθους (ν<=20),
• η αναζήτηση γίνεται σπάνια.
Αλγόριθμος σειριακή_αναζήτηση
Δεδομένα //n, table, key//
done←ψευδής
i←1
position←0
Όσο i<=n και done=ψευδής επανάλαβε
αν table[i]=key τότε
done← αληθής
position←i
αλλιώς
i←i+1
τελος_αν
τελος_επανάληψης
αποτελέσματα //position , done //
τελος σειριακή_αναζήτηση
σελίδα 17
Μια αποτελεσματικότερη μέθοδος αναζήτησης σε ταξινομημένο πίνακα είναι η δυαδική αναζήτηση.
{χμχμ λίγο προσοχή εδώ: να μελετήσεις το σχολικό στο κεφάλαιο 9 όπου αναφέρει ξανά την έννοια
της σειριακής αναζήτησης}
28. Ταξινόμηση
{Ορισμός}: Δοθέντων των στοιχείων α1, α2, … αn η ταξινόμηση ορίζεται ως μετάθεση της θέσης των Commented [SS20]: Απομνημόνευση o ορισμος
στοιχείων ώστε να τοποθετηθούν σε μια σειρά ακ1, ακ2, … ακn έτσι ώστε: Αν δοθεί συνάρτηση
διάταξης (ordering function) F να ισχύει : F(ακ1) ≤ F(ακ2) ≤ … ≤ F(ακn). Η παραπάνω συνάρτηση
διάταξης μπορεί να τροποποιηθεί ώστε να καλύπτει και την φθίνουσα ταξινόμηση.
{Αν η συνάρτηση διάταξης είναι για παράδειγμα η F(x)= x (η οποία αν θυμάσαι/γνωρίζεις είναι
γνησίως αύξουσα) τότε η παραπάνω διάταξη είναι αύξουσα. Αν η συνάρτηση διάταξης είναι η F(x)=-x
(γνησίως φθίνουσα) τότε η παραπάνω διάταξη είναι φθίνουσα.}
Ταξινόμηση είναι η διαδικασία κατά την οποία τα στοιχεία μιας δομής διατάσσονται κατά φθίνουσα
ή αύξουσα σειρά.
Η μέθοδος της φυσαλίδας βασίζεται στην σύγκριση και ανταλλαγή ζευγών γειτονικών στοιχείων
μέχρις ότου διαταχθούν όλα τα στοιχεία.
Αν θεωρήσουμε ένα πίνακα μονοδιάστατο σε κατακόρυφη θέση, σύμφωνα με την μέθοδο αυτή
γίνονται διαδοχικές προσπελάσεις στον πίνακα και μετακινείται το μικρότερο στοιχείο του πίνακα
προς τα άνω (αύξουσα ταξινόμηση).
Αλγόριθμος φυσαλίδα
Δεδομένα // table,n //
για i από 2 μέχρι n
για j από n μέχρι i με_βήμα -1
αν table[j]>table [j-1] τότε
αντιμετάθεσε table[j], table [j-1]
τελος_αν
σελίδα 18
τελος_επανάληψης
τελος_επανάληψης
αποτελέσματα // table //
τελος φυσαλίδα
Η εντολή αντιμετάθεσε ανταλλάσσει το περιεχόμενο δυο θέσεων μνήμης με την βοήθεια μιας τρίτης
θέσης. Αυτό μπορεί να γίνει με τις εξής τρεις εντολές:
tmp←- table[ j ]
table[ j ]←- table [ j-1 ]
table [ j-1] ←- tmp
{χμχμ λίγο προσοχή εδώ: να μελετήσεις από το σχολικό το κεφάλαιο 9 όπου αναφέρει ξανά την
έννοια της φυσσαλίδας }
30. Άλλοι αλγόριθμοι ταξινόμησης Commented [SS22]: Απ’ έξω οι τρεις λέξεις κλειδιά !
Υπάρχουν πολλοί αλγόριθμοι ταξινόμησης. Άλλοι σχετικά απλοί αλγόριθμοι είναι :
• η ταξινόμηση με επιλογή και
• η ταξινόμηση με παρεμβολή.
• η γρήγορη ταξινόμηση (ο πιο γρήγορος αλγόριθμος ταξινόμησης).
(Η ταξινόμηση φυσαλίδας είναι ο πιο απλός και ταυτόχρονα ο πιο αργός αλγόριθμος ταξινόμησης.)
Σε μεγάλες εφαρμογές το μέγεθος της κύριας μνήμης (RAM) δεν είναι αρκετό για την αποθήκευση
όλων των δεδομένων. Στην περίπτωση αυτή χρησιμοποιούνται ειδικές δομές που αποθηκεύουν τα
δεδομένα στην δευτερεύουσα μνήμη που είναι συνήθως ο σκληρός δίσκος. Οι ειδικές αυτές δομές
ονομάζονται αρχεία.
Μια σημαντική διαφορά μεταξύ της κύριας μνήμης και της δευτερεύουσας είναι ότι τα δεδομένα
δεν χάνονται όταν τερματίσει το πρόγραμμα ή ακόμα και όταν διακοπεί η ηλεκτρική παροχή. Έτσι
τα δεδομένα των αρχείων αποθηκεύονται μόνιμα σε σχέση με τις δομές της κύριας μνήμης (όπως
οι πίνακες) που αποθηκεύονται προσωρινά.
σελίδα 19
Τα αρχεία είναι μια ειδική δομή δεδομένων της δευτερεύουσας μνήμης (συνήθως ο σκληρός
δίσκος) και αποτελούνται από εγγραφές. Κάθε μια εγγραφή αποτελείται από ένα η περισσότερα
πεδία που περιγράφουν διάφορα χαρακτηριστικά της εγγραφής. Ένα πεδίο της εγγραφής που
ταυτοποιεί την εγγραφή ονομάζεται πρωτεύον κλειδί ή απλά κλειδί. Πολλά αρχεία έχουν και
δεύτερο πεδίο που ταυτοποιεί μια εγγραφή και ονομάζεται δευτερεύων κλειδί
Vince Lombardi
σελίδα 20
ΚΕΦΑΛΑΙΟ 6: ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ
33. Από τι προσδιορίζεται μια γλώσσα Commented [SS23]: Απομνημόνευση όλη η παράγραφος
1 Το αλφάβητο.
Είναι το σύνολο των στοιχείων που αποτελεί την γλώσσα. ( Πχ η ελληνική γλώσσα περιέχει τα εξής
στοιχεία: 48 χαρακτήρες, τα σημεία στίξης καθώς και τα ψηφία )
2 Το λεξιλόγιο.
Είναι το υποσύνολο όλων των ακολουθιών που δημιουργούνται από το αλφάβητο και είναι δεκτές
από την γλώσσα. Πχ η ακολουθία ΑΒΓΑ είναι δεκτή ενώ η ΑΒΓΒΑ δεν είναι.
3 Την γραμματική.
Τυπικό: είναι το σύνολο των κανόνων που καθορίζουν αν μία λέξη είναι αποδεκτή. Πχ Η λέξη
«ΓΡΑΨΕ» είναι αποδεκτή αλλά η «ΓΡΑΨΕΣ» όχι.
Συντακτικό: Είναι το σύνολο των κανόνων που καθορίζει αν η διάταξη και η σύνδεση των λέξεων σε
μία πρόταση είναι σωστή. Η γνώση συντακτικού στις φυσικές γλώσσες επιτρέπει την δημιουργία
σωστών προτάσεων ενώ στις γλώσσες προγραμματισμού επιτρέπει την δημιουργία σωστών εντολών
{ΠΧ:}
4 Την σημασιολογία.
Είναι το σύνολο των κανόνων που καθορίζει το νόημα των λέξεων άρα και το νόημα των προτάσεων
που δημιουργούνται. {Πχ Απογειώθηκε το ντροπαλό κατσαβίδι. (δεν έχει νόημα..)}
Στις γλώσσες προγραμματισμού ο δημιουργός τους αποφασίζει για την σημασιολογία των λέξεων
της γλώσσας.
σελίδα 21
34. Διαφορές φυσικών – τεχνητών γλωσσών Commented [SS24]: Απομνημόνευση όλη η παράγραφος
1. Οι φυσικές γλώσσες εξελίσσονται συνεχώς και δημιουργούνται νέες λέξεις, αλλάζουν οι κανόνες
γραμματικής/ συντακτικού με την πάροδο του χρόνου. Αυτό γίνεται γιατί χρησιμοποιούνται για την
επικοινωνία μεταξύ των ανθρώπων.
2. Οι γλώσσες προγραμματισμού χρησιμοποιούνται για την επικοινωνία ανθρώπου Η/Υ και
χαρακτηρίζονται από στασιμότητα. Ωστόσο και αυτές εξελίσσονται από τους δημιουργούς τους για
να διορθώσουν αδυναμίες τους ή να καλύψουν μεγαλύτερο εύρος εφαρμογών αλλά και να
ακολουθήσουν τις νέες εξελίξεις.
• Οι γλώσσες προγραμματισμού αλλάζουν σε:
o επίπεδο διαλέκτου. Πχ Basic → QuickBasic
o σε επίπεδο επέκτασης Πχ Basic → Visual Basic
35. Τεχνική της ιεραρχικής σχεδίασης προγράμματος. Commented [SS25]: Απομνημόνευση όλη η παράγραφος
Η τεχνική αυτή (ή αλλιώς τεχνική από επάνω προς τα κάτω / top-down), χρησιμοποιεί την
στρατηγική της συνεχούς διαίρεσης του προβλήματος σε υποπροβλήματα τα οποία είναι εύκολο
να επιλυθούν οδηγώντας στην επίλυση του αρχικού προβλήματος. Χρησιμοποιούνται διάφορες
διαγραμματικές τεχνικές για την υποβοήθηση της σχεδίασης. Υλοποιείται με τμηματικό
προγραμματισμό.
36. Τι περιλαμβάνει η τεχνική της ιεραρχικής σχεδίασης; Commented [SS26]: Απομνημόνευση όλη η παράγραφος
Δεν είναι απλώς ένα είδος προγραμματισμού αλλά μια μεθοδολογία σύνταξης προγραμμάτων.
Προήλθε από μια προσπάθεια περιορισμού της ανεξέλεγκτης χρήσης της εντολής goto. Όλες οι
σύγχρονες γλώσσες προγραμματισμού υποστηρίζουν τον δομημένο προγραμματισμό και διαθέτουν
εντολές που καθιστούν την χρήση του goto περιττή. Ο δομημένος προγραμματισμός βοηθάει την
ανάλυση ενός προγράμματος σε τμήματα έτσι περιέχει τόσο την ιεραρχική σχεδίαση όσο και τον
σελίδα 22
τμηματικό προγραμματισμό. Κάθε πρόγραμμα όπως και κάθε ενότητα προγράμματος έχει μία
είσοδο και μόνο μία έξοδο
{Εδώ εννοεί ότι έχει μόνο μία αρχή και μόνο ένα τέλος_προγράμματος !!!}
39. Ποιές δομές χρησιμοποιεί ο δομημένος προγραμματισμός Commented [SS27]: Απομνημόνευση όλη η παράγραφος
1. Δομή ακολουθίας.
2. Δομή επιλογής.
3. Δομή επανάληψης.
Επειδή η χρήση της εντολής αλλάζει την ροή ενός προγράμματος, τα προγράμματα γίνονται
δύσκολα στην παρακολούθηση την κατανόηση και την συντήρηση.
42. Πηγαίο ή αρχικό πρόγραμμα (source) Commented [SS30]: Απομνημόνευση όλη η παράγραφος.
• Είναι το αρχικό πρόγραμμα που γράφει ο προγραμματιστής με την βοήθεια ενός προγράμματος που
ονομάζεται συντάκτης.
• Δεν είναι κατανοητό από τον υπολογιστή. (εκτός αν είναι γραμμένο απ’ ευθείας σε γλώσσα
μηχανής)
43. Λάθη στο πηγαίο πρόγραμμα Commented [SS31]: Απομνημόνευση όλη η παράγραφος.
• Λογικά λάθη:
Οφείλονται σε σφάλματα κατά την υλοποίηση του αλγορίθμου.
Εντοπίζονται παρά μόνο κατά την εκτέλεση του προγράμματος.
Είναι τα πλέον σοβαρά και δύσκολα στην διόρθωση.
σελίδα 23
{πχ ΜΟ←- χ+ψ / 3 (ήθελε παρενθέσεις) …}
• Συντακτικά λάθη:
Οφείλονται σε αναγραμματισμούς γραμμάτων εντολών, παράληψη δήλωσης δεδομένων κλπ.
Εντοπίζονται από τον μεταγλωττιστή ή τον διερμηνευτή.
Πρέπει να διορθωθούν ώστε να δημιουργηθεί το εκτελέσιμο πρόγραμμα.
{πχ Γραεψ αντί για Γράψε}
Είναι ένας μικρός επεξεργαστής κειμένου που χρησιμοποιείται για την συγγραφή του πηγαίου
προγράμματος, την διόρθωση των λαθών του και έχει δυνατότητες που διευκολύνουν την γρήγορη
γραφή των εντολών.
45. Μετατροπή προγραμμάτων σε γλώσσα μηχανής Commented [SS33]: Απομνημόνευση όλη η παράγραφος.
Γίνεται με την χρήση ειδικών μεταφραστικών προγραμμάτων. Υπάρχουν δύο μεγάλες κατηγορίες
μεταφραστικών προγραμμάτων:
• Οι μεταγλωττιστές και
• οι διερμηνευτές.
• Δέχεται σαν είσοδο ένα πρόγραμμα γραμμένο σε μία γλώσσα προγραμματισμού (υψηλού
επιπέδου).
• Ανιχνεύει τα τυχόν συντακτικά λάθη.
• Αν βρεθούν λάθη ο προγραμματιστής τα διορθώνει (με τον συντάκτη) και υποβάλλει το πρόγραμμα
ξανά προς μεταγλώττιση μέχρι να παραχθεί το σωστό.
• Αν δεν υπάρχουν λάθη και μόνο τότε, παράγει το αντικείμενο πρόγραμμα (ή τελικό πρόγραμμα ),
το οποίο είναι ισοδύναμο με το πηγαίο αλλά εκφρασμένο πλέον σε γλώσσα μηχανής. Αυτό είναι
πλέον τελείως ανεξάρτητο από το αρχικό πρόγραμμα, αλλά δεν είναι ακόμη εκτελέσιμο.
• Η διαδικασία μέσω της οποίας καταλήγουμε στο εκτελέσιμο πρόγραμμα (γλώσσα μηχανής) είναι
συνοπτικά:
Πηγαίο→μεταγλωττιστής→αντικείμενο(τελικό)→συνδέτης-φορτωτής→Εκτελέσιμο.
σελίδα 24
47. Συνδέτης φορτωτής Commented [SS35]: Απομνημόνευση όλη η παράγραφος.
• Το αντικείμενο πρόγραμμα που παράγει ο μεταγλωττιστής είναι μεν σε μορφή κατανοητή από τον
υπολογιστή (γλώσσα μηχανής) αλλά δεν είναι εκτελέσιμο.
• Χρειάζεται να συμπληρωθεί και να συνδεθεί με άλλα τμήματα προγράμματος απαραίτητα για την
εκτέλεσή του.
• Τα τμήματα αυτά είτε τα γράφει ο προγραμματιστής (υποπρογράμματα), είτε βρίσκονται στις
βιβλιοθήκες της γλώσσας που χρησιμοποιεί.
• Το πρόγραμμα που κάνει την σύνδεση αυτή ονομάζεται συνδέτης- φορτωτής .
• Δέχεται ως είσοδο ένα πρόγραμμα γραμμένο σε γλώσσα υψηλού επιπέδου και εκτελεί μία μία τις
εντολές του αρχικού προγράμματος.
• Η διαδικασία εκτέλεσης είναι η εξής:
o Διαβάζει μία από τις εντολές του αρχικού προγράμματος,
o ανιχνεύει τα (τυχόν) συντακτικά λάθη της κάθε εντολής,
o την μεταφράζει σε γλώσσα μηχανής
o την εκτελεί.
• Κατόπιν διαβάζει την επόμενη εντολή και επαναλαμβάνει την ίδια διαδικασία !
• Ο μεταγλωττιστής μεταγλωττίζει όλο το πρόγραμμα και με την βοήθεια του συνδέτη – φορτωτή
παράγεται το εκτελέσιμο.
• Ο διερμηνευτής εκτελεί μία μία τις εντολές και δεν χρειάζεται συνδέτη-φορτωτή
• Ο διερμηνευτής αφού εκτελεί τις εντολές μία μία έχει το πλεονέκτημα της άμεσης διόρθωσης των
λαθών. Για τον λόγο αυτό χρησιμοποιείται συνήθως κατά την συγγραφή-διόρθωση ενός
προγράμματος.
• Η εκτέλεση ενός προγράμματος με τον διερμηνευτή είναι πιο αργή, γιατί για να εκτελεστεί το
πρόγραμμα, πρέπει κάθε φορά να ξαναγίνεται η διερμηνεία από την αρχή, ενώ ο μεταγλωττιστής
παράγει μια φορά το αντικείμενο πρόγραμμα και δεν χρειάζεται ξανά μεταγλώττιση αφού είναι
σχεδόν εκτελέσιμο (θυμήσου τον συνδέτη)
• Για να εκτελεστεί ένα πρόγραμμα με τον διερμηνευτή είναι απαραίτητη η παρουσία του πηγαίου
προγράμματος ενώ με τον μεταγλωττιστή μόνο την πρώτη φορά.
σελίδα 25
51. (Σύγχρονα) προγραμματιστικά περιβάλλοντα Commented [SS38]: Απομνημόνευση τα 3 bullets
• Συντάκτης
• Μεταγλωττιστής
• Συνδέτης
Not trying is a habit that develops into a fear of failure. If you want to succeed, try !
Michael Jordan
σελίδα 26
ΚΕΦΑΛΑΙΟ7: ΒΑΣΙΚΑ ΣΤΟΙΧΕΙΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ
{Στο κεφάλαιο 7ο και 8ο το βιβλίο περιγράφει την γλώσσα προγραμματισμού ΓΛΩΣΣΑ. Η γλώσσα
αυτή είναι ένα υβρίδιο της pascal και της basic μεταφρασμένο στα ελληνικά}
Αποτελείται από:
• Γράμματα
• Κεφαλαία και μικρά ελληνικού αλφαβήτου (Α-Ω , α-Ω)
• Κεφαλαία και μικρά αγγλικού αλφαβήτου (Α-Ζ, a-z)
• Ψηφία 0-9
• Ειδικοί χαρακτήρες
{Μια υπενθύμιση: Άλλο ο κενός χαρακτήρας (το space) και άλλο η κάτω παύλα (το underscore)}
53. Ποιοι είναι οι τύποι δεδομένων της ΓΛΩΣΣΑΣ Commented [SS39]: Απομνημόνευση όλη η παράγραφος.
• Ακέραιος. Ο τύπος αυτός περιλαμβάνει τους ακέραιους ( το σύνολο Ζ ) που είναι γνωστοί από τα
μαθηματικά. (δηλαδή θετικούς και αρνητικούς καθώς και το 0 )
• Πραγματικός. Ο τύπος αυτός περιλαμβάνει τους πραγματικούς ( το σύνολο R ) που είναι γνωστοί
από τα μαθηματικά. ( δηλαδή αριθμούς με δεκαδικό μέρος θετικούς και αρνητικούς καθώς και το 0)
{Μία μεταβλητή πραγματικού τύπου μπορεί να πάρει τόσο ακέραιες όσο και δεκαδικές τιμές }
• Λογικός. Ο τύπος αυτός δέχεται μόνο δύο τιμές ΑΛΗΘΗΣ και ΨΕΥΔΗΣ.
• Χαρακτήρας. Ο τύπος αυτός αναφέρεται τόσο σε ένα χαρακτήρα όσο και σε μία σειρά χαρακτήρων.
Περιέχει οποιοδήποτε χαρακτήρα μπορεί να γραφεί στο πληκτρολόγιο. Οι χαρακτήρες πρέπει να
βρίσκονται υποχρεωτικά ανάμεσα σε μονά εισαγωγικά. Επειδή μπορεί να περιέχει και αριθμούς
ονομάζεται συχνά και αλφαριθμητικός τύπος.
{Πχ ‘ αριθμός ’ ‘ μαθητής 3ος’ }
{Oρισμός} Είναι προκαθορισμένες τιμές που δεν μεταβάλλονται κατά την διάρκεια εκτέλεσης του
προγράμματος. Μπορεί να είναι τύπου ακέραιες, πραγματικές, λογικές, χαρακτήρες. Η χρήση
σταθερών κάνει το πρόγραμμα πιο κατανοητό, άρα πιο εύκολο να συντηρηθεί και να διορθωθεί.
σελίδα 27
55. Δήλωση Σταθερών Commented [SS41]: Απομνημόνευση όλη η παράγραφος.
• Σύνταξη:
Σταθερές
Όνομα-1=σταθερή-τιμή-1
Όνομα-2=σταθερή-τιμή-2
…
Ονομα-ν=σταθερή-τιμή-ν
• Παράδειγμα:
Σταθερές
Π=3.14
Όνομα=’Κώστας’
• Λειτουργία του τμήματος δήλωσης σταθερών:
Αποδίδει ονόματα σε σταθερές τιμές. Κάθε μία από αυτές τις σταθερές μπορεί να χρησιμοποιηθεί
οπουδήποτε στο πρόγραμμα αλλά δεν είναι δυνατή η μεταβολή της τιμής της.
56. Μεταβλητές
{Oρισμός} Μια μεταβλητή παριστάνει μία ποσότητα που η τιμή της μπορεί να μεταβάλλεται. Commented [SS42]: Ο ορισμός
Ενώ η τιμή της μεταβλητής (θέσης μνήμης ) μπορεί να αλλάξει, ο τύπος της δεν αλλάζει ποτέ. Η
ΓΛΩΣΣΑ επιτρέπει την χρήση τεσσάρων τύπων δεδομένων (ακέραιες λογικές πραγματικές
χαρακτήρες). Το όνομα κάθε μεταβλητής ακολουθεί τους κανόνες δημιουργίας ονομάτων. Είναι
καλή πρακτική να χρησιμοποιούμε ονόματα μεταβλητών που υπονοούν το περιεχόμενό τους. Πχ
«εμβαδόν» και όχι σκέτο «Ε»
σελίδα 28
• Λειτουργία του τμήματος δήλωσης: Δηλώνει τον τύπο όλων των μεταβλητών που χρησιμοποιούνται
στο πρόγραμμα
58. Ονόματα προγραμμάτων και δεδομενων Commented [SS44]: Απομνημόνευση όλη η παράγραφος.
Κάθε πρόγραμμα όπως και τα δεδομένα (μεταβλητές και σταθερές) που χρησιμοποιεί έχουν ένα
όνομα με το οποίο αναφερόμαστε σε αυτό. Τα ονόματα αυτά μπορούν να αποτελούνται από:
• Γράμματα:
Κεφαλαία και μικρά ελληνικού αλφαβήτου (Α-Ω , α-Ω)
Κεφαλαία και μικρά αγγλικού αλφαβήτου (Α-Ζ, a-z)
• Ψηφία:
Όλα τα ψηφία : 0-9
• Ειδικούς χαρακτήρες:
_ (κάτω παύλα ή underscore)
• Περιορισμοί:
o Απαγορεύεται η χρήση δεσμευμένων λέξεων ως ονόματα (πχ γράψε διάβασε)
o Τα ονόματα υποχρεωτικά αρχίζουν από γράμμα (όχι ψηφίο ούτε underscore)
1. ^
3. + -
Προσοχή:
σελίδα 29
61. Ενσωματωμένες (εγγενείς) συναρτήσεις της ΓΛΩΣΣΑΣ Commented [SS47]: Απομνημόνευση όλη η παράγραφος.
{ Προσοχή: Η ΛΟΓ(χ) δεν βρίσκει τον δεκαδικό λογάριθμο αλλά τον φυσικό, δηλαδή το ln (x) Οι
τριγωνομετρικές συναρτήσεις δέχονται ως είσοδο μοίρες και όχι ακτίνια Οι συναρτήσεις αυτές είναι
υποπρογράμματα τύπου συνάρτηση. (Βλέπε κεφάλαιο 10). Θεωρούνται ενσωματωμένες στην
ΓΛΩΣΣΑ, άρα μπορούμε να τις χρησιμοποιούμε οπουδήποτε τις χρειαζόμαστε }
Όταν μία τιμή προέρχεται από αριθμητικό υπολογισμό τότε αναφερόμαστε σε αριθμητικές
εκφράσεις. Για την σύνταξη μιας αριθμητικής έκφρασης χρησιμοποιούνται:
• Αριθμητικές σταθερές. { πχ 3 }
• Αριθμητικές μεταβλητές. { πχ x }
• Αριθμητικοί τελεστές { πχ + }
• Συναρτήσεις. { πχ Α_Τ( ) }
• Παρενθέσεις.
Κάθε έκφραση παριστάνει μία αριθμητική τιμή η οποία βρίσκεται μετά την εκτέλεση των πράξεων.
Γι’ αυτό είναι απαραίτητο όλες οι μεταβλητές που εμφανίζονται σε μία έκφραση να έχουν πάρει
προηγούμενα κάποια τιμή.
Η εκτέλεση των πράξεων γίνεται με βάση την ιεραρχία των αριθμητικών τελεστών.
σελίδα 30
63. Εντολή εκχώρησης Commented [SS48]: Απομνημόνευση μόνο τα bullets
Χρησιμοποιείται για την απόδοση τιμών στις μεταβλητές κατά την εκτέλεση του προγράμματος. Σε
μία εντολή εκχώρησης η μεταβλητή και η έκφραση πρέπει να είναι του ιδίου τύπου. Το σύμβολο “←”
διαφοροποιείται από το = το οποίο χρησιμοποιείται ως συγκριτικός τελεστής καθώς και ως τελεστής
απόδοσης τιμών στο τμήμα δηλώσεων των σταθερών.
Ποιό αναλυτικά: Η εντολή διάβασε ακολουθείται πάντα από τουλάχιστον ένα όνομα μεταβλητής.
Αν υπάρχουν περισσότερες τότε αυτές χωρίζονται με κόμμα (,). Διακόπτεται η εκτέλεση του
προγράμματος καθώς το πρόγραμμα περιμένει την εισαγωγή τιμών από το πληκτρολόγιο. Μόλις
εισαχθούν οι τιμές συνεχίζεται η εκτέλεση του προγράμματος στην επόμενη εντολή. Εξυπηρετεί την
επικοινωνία του χρήστη με τον υπολογιστή.
Ποιό αναλυτικά: Έχει ως αποτέλεσμα την εμφάνιση τιμών στην μονάδα εξόδου. Η μονάδα εξόδου
μπορεί να είναι η οθόνη, ο εκτυπωτής, ή γενικά οποιαδήποτε μονάδα εξόδου έχει οριστεί. Η λίστα
στοιχείων μπορεί να περιέχει σταθερές τιμές και ονόματα μεταβλητών. Όταν κάποιο όνομα
μεταβλητής περιέχεται στην λίστα τότε αρχικά ανακτάται η τιμή της και μετά η τιμή αυτή
εμφανίζεται στην μονάδα εξόδου. Η χρήση της αναφέρεται κυρίως στην εμφάνιση μηνυμάτων και
αποτελεσμάτων. Εξυπηρετεί την επικοινωνία του υπολογιστή με τον χρήστη.
σελίδα 31
• Τμήμα δήλωσης μεταβλητών:Δηλώνονται υποχρεωτικά τα ονόματα όλων των μεταβλητών μαζί με
τον τύπο τους.
• Κύριο μέρος: Περιλαμβάνει όλες τις εκτελέσιμες εντολές ανάμεσα στην αρχή και στο
τέλος_προγράμματος.
Παρατηρήσεις:
Κάθε εντολή γράφεται σε ξεχωριστή γραμμή. Αν κάποια εντολή πρέπει να συνεχιστεί σε επόμενη
γραμμή τότε ο πρώτος χαρακτήρας της επόμενης πρέπει να είναι ο: &.
Αν ο πρώτος χαρακτήρας μίας γραμμής είναι ο ! τότε η γραμμή αυτή αποτελεί σχόλιο και δεν εκτελείται
Αν το πρόγραμμα χρησιμοποιεί υποπρογράμματα τότε αυτά γράφονται μετά το τέλος_προγράμματος
Education is what remains after one has forgotten what one has learned in school.
Albert Einstein
σελίδα 32
ΚΕΦΑΛΑΙΟ 8: ΕΠΙΛΟΓΗ ΚΑΙ ΕΠΑΝΑΛΗΨΗ
Μία λογική έκφραση είναι μία έκφραση που έχει λογική τιμή δηλαδή αληθής ή ψευδής. Για την
σύνταξη μιας λογικής έκφρασης χρησιμοποιούνται: Σταθερές, μεταβλητές, αριθμητικές εκφράσεις,
συγκριτικοί τελεστές, λογικοί τελεστές, και παρενθέσεις
Σχηματίζονται από απλές λογικές εκφράσεις με την χρήση των λογικών τελεστών: Όχι, Και,Η
σελίδα 33
1. αριθμητικοί τελεστές,
2. συγκριτικοί,
3. λογικοί.
Η δομή επιλογής υλοποιείται με την εντολή “Αν”. Η εντολή “Αν” έχει τρεις διαφορετικές μορφές:
{προσοχή όμως εδώ: Σύμφωνα με το σχολικό σου (κεφάλαιο 2 ) σε μια ψευδογλώσσα όταν οι εντολές
εντός μιας απλής επιλογής είναι μια και μόνο μία, δικαιούμαστε να μην βάλουμε τελος_αν αρκεί να
γράψουμε την εντολή δίπλα από την λέξη τότε.
Παράδειγμα:
• Σύνταξη:
Αν συνθήκη τότε
Εντολή-1
Εντολή-2
..
Εντολή-ν
σελίδα 34
τελος_αν
• Λειτουργία
o Αν η συνθήκη ισχύει τότε εκτελούνται οι εντολές που βρίσκονται ανάμεσα στο τότε και στο
τέλος_αν, αλλιώς αγνοούνται.
o Η εκτέλεση συνεχίζεται με την εντολή μετά το τέλος_αν
• Σύνταξη:
Αν συνθήκη τότε
Εντολή-1
Εντολή-2
..
Εντολή-ν
Αλλιώς
Εντολή-1
Εντολή-2
..
Εντολή-ν
τελος_αν
• Λειτουργία
o Αν η συνθήκη ισχύει τότε εκτελούνται οι εντολές που βρίσκονται ανάμεσα στο τότε και στο
αλλιώς, αλλιώς εκτελούνται οι εντολές που βρίσκονται ανάμεσα στο αλλιώς και στο
τέλος_αν
o Η εκτέλεση συνεχίζεται την εντολή μετά το τέλος_αν.
• Σύνταξη:
Αν συνθήκη-1 τότε
Ομάδα εντολών 1
Αλλιώς_αν συνθήκη-2 τότε
Ομάδα εντολών 2
Αλλιώς
Ομάδα εντολών ν
τελος_αν
• Λειτουργία
o Εκτελούνται οι εντολές που βρίσκονται στο αντίστοιχο τμήμα όταν η συνθήκη είναι αληθής.
σελίδα 35
o Η εκτέλεση συνεχίζεται την εντολή μετά το τέλος_αν.
{Oρισμός:} Ονομάζονται δύο ή περισσότερες εντολές Αν που περιέχονται η μία μέσα στην άλλη.
Η χρήση εμφωλευμένων αν οδηγεί συνήθως σε πολύπλοκες δομές που αυξάνουν την πιθανότητα
λάθους και κάνουν το πρόγραμμα δυσνόητο.
{εμφωλευμένες μπορεί να είναι και εντολές επανάληψης αλλά και συνδυασμός δομών επιλογής και
επανάληψης}
• Για
• όσο
• και μέχρις_ότου.
Όλες ελέγχονται από μία συνθήκη ή οποία καθορίζει την έξοδο από τον βρόχο. { Προσοχή: βρόχος
γενικά σημαίνει θηλειά αλλά στην πληροφορική σημαίνει δομή επανάληψης }
• Σύνταξη:
• Λειτουργία
o Ελέγχεται η συνθήκη και αν είναι αληθής εκτελούνται οι εντολές που βρίσκονται ανάμεσα
στις όσο και τέλος_επανάληψης.
o Στην συνέχεια ελέγχεται πάλι η συνθήκη και αν ισχύει εκτελούνται πάλι οι ίδιες εντολές.
o Όταν η συνθήκη γίνει ψευδής τότε σταματά η επανάληψη και εκτελείται η εντολή μετά το
τέλος_επανάληψης. {αν βέβαια υπάρχει}
Παρατηρήσεις:
σελίδα 36
Με την δομή ΟΣΟ μπορούν να εκφραστούν όλες οι άλλες δομές επανάληψης. Χαρακτηριστικό της είναι
ότι ο αριθμός των επαναλήψεων δεν είναι γνωστός. Για να σταματήσει η επανάληψη πρέπει
υποχρεωτικά μέσα στον βρόχο να υπάρχει μία εντολή η οποία κάνει την συνθήκη ψευδή.
• Σύνταξη:
Αρχή_επανάληψης
Εντολή-1
Εντολή-2
..
Εντολή-ν
Μέχρις_οτου συνθήκη
• Λειτουργία
o Εκτελούνται οι εντολές μεταξύ των αρχή_επανάληψης και μέχρις_οτου.
o Στη συνέχεια ελέγχεται η συνθήκη και αν είναι ψευδής τότε εκτελούνται πάλι οι εντολές.
o Όταν η συνθήκη βρεθεί αληθής τότε σταματά η επανάληψη και εκτελείται η εντολή μετά
το μέχρις_ότου..
o Η δομή αυτή εκτελείται τουλάχιστον μια φορά.
• Σύνταξη:
• Λειτουργία
o Οι εντολές του βρόχου εκτελούνται για όλες τις τιμές της μεταβλητής από την τιμή1 μέχρι
την τιμή2 αυξανόμενες κατά την τιμή3.
o Αν το βήμα είναι 1 τότε παραλείπεται
o Χρησιμοποιείται όταν γνωρίζουμε εκ των προτέρων τον αριθμό των επαναλήψεων.
σελίδα 37
Η χρήση τιμών για τον τερματισμό μιας επαναληπτικής διαδικασίας είναι συνήθης στον
προγραμματισμό. Η τιμή αυτή ορίζεται από τον προγραμματιστή και αποτελεί μια σύμβαση για το
τέλος του προγράμματος. Η τιμή αυτή είναι τέτοια ώστε να μην είναι λογικά σωστή για το
πρόβλημα.
{Oρισμός} Ονομάζονται δύο ή περισσότεροι βρόχοι που βρίσκονται ο ένας μέσα στον άλλο.
83. Κανόνες χρήσης εμφωλευμένων βρόχων Commented [SS64]: Απομνημόνευση όλη η παράγραφος
1. Ο εσωτερικός βρόχος πρέπει να βρίσκεται ολόκληρος μέσα στον εξωτερικό, έτσι ο βρόχος που
ξεκινάει τελευταίος ολοκληρώνεται πρώτος.
2. Η είσοδος σε ένα βρόχο υποχρεωτικά γίνεται από την αρχή του.
3. Δεν μπορεί να χρησιμοποιηθεί η ίδια μεταβλητή ως μετρητής.
Just believe in yourself. Even if you don’t, pretend that you do and at some point you will.
Venus Williams
σελίδα 38
ΚΕΦΑΛΑΙΟ 9: ΠΙΝΑΚΕΣ
{Ορισμός} Είναι ένα σύνολο αντικειμένων ιδίου τύπου τα οποία αναφέρονται με ένα κοινό όνομα. Commented [SS65]: Απομνημόνευση μόνο ο ορισμός
Κάθε ένα από τα αντικείμενα που τον αποτελούν ονομάζεται στοιχείο. Η αναφορά σε ατομικά
στοιχεία του πίνακα γίνεται με το όνομα του πίνακα ακολουθούμενο από ένα δείκτη.
Παρατηρήσεις
Το όνομα του πίνακα μπορεί να είναι οποιοδήποτε δεκτό όνομα της ΓΛΩΣΣΑΣ και ο δείκτης είναι μία
ακέραια έκφραση, σταθερή ή μεταβλητή που περικλείεται μέσα στα σύμβολα [ ]
Δήλωση πίνακα:
Κάθε πίνακας πρέπει υποχρεωτικά να περιέχει δεδομένα του ιδίου τύπου, δηλαδή ακέραια,
πραγματικά, λογικά, ή αλφαριθμητικά. Ο τύπος του πίνακα δηλώνεται μαζί με τις άλλες μεταβλητές
του προγράμματος στο τμήμα δήλωσης μεταβλητών. Εκτός από τον τύπο του πίνακα πρέπει να
δηλώνεται και ο αριθμός των στοιχείων που περιέχει ή καλύτερα ο μεγαλύτερος αριθμός στοιχείων
που μπορεί να έχει ο συγκεκριμένος πίνακας και αυτό για να δεσμευτούν οι αντίστοιχες
συνεχόμενες θέσεις μνήμης.
Στοιχείο:
Η αναφορά σε ένα στοιχείο το πίνακα γίνεται με το όνομά του πίνακα ακολουθούμενο από ένα
δείκτη. Κάθε ένα από τα αντικείμενα που τον αποτελούν ονομάζεται στοιχείο. Κάθε συγκεκριμένη
θέση μνήμης καλείται στοιχείο του πίνακα και προσδιορίζεται από την τιμή ενός δείκτη αν ο
πίνακας είναι μονοδιάστατος. Στην περίπτωση που είναι δισδιάστατος προσδιορίζεται από δύο
δείκτες. Αν είναι ν-διαστατος από ν δείκτες. Ο δείκτης είναι μία μεταβλητή που μπορεί να έχει
οποιοδήποτε δεκτό όνομα. Είναι σύνηθες όμως στον προγραμματισμό ως δείκτες να
χρησιμοποιούνται οι μεταβλητές i, j, k.
Πολυδιάστατοι πίνακες
Αν ο καθορισμός των στοιχείων ενός πίνακα απαιτεί παραπάνω από ένα δείκτη τότε μιλάμε για
πολυδιάστατους πίνακες: πχ 3 δείκτες τρισδιάστατος 2 δείκτες δισδιάστατος κλπ
Χρήση πινάκων:
Η ανάγνωση, επεξεργασία και εμφάνιση των στοιχείων των πινάκων γίνεται πάντοτε από βρόχους.
Συνήθως με την χρήση της δομής “Για” αφού είναι προκαθορισμένο το πλήθος των στοιχείων
σελίδα 39
85. Μειονεκτήματα από την χρήση πινάκων Commented [SS66]: Απομνημόνευση όλη
1. Οι πίνακες απαιτούν μνήμη: Κάθε πίνακας δεσμεύει από την αρχή του προγράμματος πολλές
θέσεις μνήμης. Σε ένα μεγάλο και σύνθετο πρόγραμμα η άσκοπη χρήση πινάκων μπορεί να
οδηγήσει ακόμη και σε αδυναμία εκτέλεσης του προγράμματος.
2. Οι πίνακες περιορίζουν τις δυνατότητες του προγράμματος: Οι πίνακες είναι στατικές δομές
δεδομένων και το μέγεθός τους που δηλώνεται στην αρχή του προγράμματος, παραμένει
υποχρεωτικά σταθερό κατά την εκτέλεση του.
1. Όταν τα δεδομένα που εισάγονται σε ένα πρόγραμμα πρέπει να διατηρούνται στην μνήμη μέχρι το
τέλος της εκτέλεσης.
2. Η απόφαση για την χρήση ή όχι πίνακα είναι θέμα εμπειρίας στον προγραμματισμό.
{ Καλό είναι να τις μελετήσεις σε συνδυασμό με τις τυπικές επεξεργασίες των δομών δεδομένων βλ.
Κεφάλαιο 3 }
1. Υπολογισμός αθροισμάτων στοιχείων του πίνακα. Πολύ συχνά απαιτείται η εύρεση του
αθροίσματος των στοιχείων ενός πίνακα ή του αθροίσματος των στοιχείων που έχουν μία
ιδιότητα.
2. Εύρεση μεγίστου-ελαχίστου. Αν ο πίνακας δεν είναι ταξινομημένος τότε πρέπει να
συγκριθούν τα στοιχεία ένα προς ένα, αλλιώς αν είναι ταξινομημένος το μέγιστο και
ελάχιστο βρίσκονται προφανώς στα δύο ακριανά στοιχεία του.
3. Ταξινόμηση των στοιχείων του πίνακα. Ένας αλγόριθμος ταξινόμησης είναι ο αλγόριθμος
φυσαλίδας αν και δεν είναι ο αποδοτικότερος.
4. Αναζήτηση ενός στοιχείου του πίνακα. Δύο είναι οι πλέον διαδεδομένοι αλγόριθμοι: Η
σειριακή αναζήτηση. Είναι η πιο απλή αλλά και η λιγότερη αποτελεσματική μέθοδος.
Δυαδική αναζήτηση. Εφαρμόζεται μόνο σε ταξινομημένους πίνακες και σαφώς
αποδοτικότερη από την σειριακή μέθοδο
5. Συγχώνευση δύο πινάκων. Σκοπός της είναι η ένωση δύο ή περισσότερων ταξινομημένων
πινάκων σε έναν που είναι και αυτός ταξινομημένος
Do not be anxious about tomorrow, for tomorrow will be anxious for itself. Let the day's own trouble
be sufficient for the day.
Jesus Christ
σελίδα 40
ΚΕΦΑΛΑΙΟ 10: ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ
{ ορισμός: } Ονομάζεται η τεχνική σχεδίασης και ανάπτυξης των προγραμμάτων ως ένα σύνολο από Commented [SS68]: Απομνημόνευση ο ορισμός
απλούστερα τμήματα προγραμμάτων.
{ ορισμός: } Ονομάζεται ένα τμήμα προγράμματος το οποίο επιτελεί ένα αυτόνομο έργο και έχει
γραφεί χωριστά από το υπόλοιπο πρόγραμμα.
1) Κάθε υποπρόγραμμα πρέπει να έχει μόνο μία είσοδο και μια έξοδο.
Η είσοδος σε αυτό γίνεται μόνο από την αρχή του και αφού εκτελέσει κάποιες ενέργειες,
απενεργοποιείται στην έξοδο από αυτό η οποία γίνεται μόνο στο τέλος του.
{ Προσοχή. Αυτό δεν σημαίνει ότι μια διαδικασία , για παράδειγμα, έχει μόνο μια είσοδο ή μόνο μία
έξοδο. Στην πραγματικότητα γνωρίζουμε ότι μπορεί να έχει πολλές εισόδους και εξόδους. Αυτό που
εννοεί εδώ το σχολικό είναι ότι δεν είναι δυνατόν να ενεργοποιηθεί το υποπρόγραμμα πουθενά
αλλού εκτός από την αρχή του. Όμοια σταματά μόνο όταν εκτελεστεί η εντολή: τέλος_διαδικασίας..
Σε κανένα άλλο σημείο δεν μπορεί να σταματήσει. Άρα έχει μία και μόνο έξοδο. }
Η έννοια του μεγάλου είναι υποκειμενική. Γενικά κάθε υπ/μα πρέπει να εκτελεί μόνο μια
λειτουργία. Αν εκτελεί παραπάνω από μία, τότε συνήθως μπορεί να διασπαστεί σε μικρότερα
υποπρογράμματα.
σελίδα 41
91. Πλεονεκτήματα του τμηματικού προγραμματισμού. Commented [SS71]: Απομνημόνευση όλη
• Αυτό γιατί επιτρέπει την εξέταση και επίλυση απλών προβλημάτων και όχι την κατά- μέτωπο
αντιμετώπιση του συνολικού προβλήματος.
• Με την σταδιακή αντιμετώπιση των υποπροβλημάτων επιλύεται τελικά και το συνολικό
• Η διόρθωση γίνεται πιο γρήγορα και εύκολα αφού διορθώνεται μόνο ένα συγκεκριμένο
τμήμα του προγράμματος, χωρίς οι αλλαγές αυτές να επηρεάσουν το υπόλοιπο πρόγραμμα.
• Η κατανόηση του προγράμματος από τρίτους είναι πολύ πιο εύκολη
{... είναι πιο εύκολο να εξετάζεις πολλά μικρά κομματάκια αλγορίθμων που κάνουν μια
συγκεκριμένη ενέργεια, παρά ένα τεράστιο αλγόριθμο που τα κάνει όλα! }
• Η χρήση ενός υποπρογράμματος δεν διαφέρει από την χρήση των ενσωματωμένων
συναρτήσεων (Α_Τ , Τ_Ρ, κλπ).
• Έτσι αν χρειάζεται κάποια λειτουργία που δεν υποστηρίζεται απευθείας από την γλώσσα
προγραμματισμού τότε μπορεί να γραφεί το αντίστοιχο υπ/μα.
• Η συγγραφή πολλών υποπρογραμμάτων και η δημιουργία βιβλιοθηκών με αυτά
επεκτείνουν την ίδια την γλώσσα προγραμματισμού.
{Ορισμός:} Μια παράμετρος είναι μια μεταβλητή που επιτρέπει το πέρασμα της τιμής της από ένα
τμήμα προγράμματος σε ένα άλλο.
{Είναι σαν τις κοινές μεταβλητές ενός προγράμματος με μια ουσιώδη διαφορά: χρησιμοποιούνται για
να περνούν τιμές από και προς τα υποπρογράμματα.}
σελίδα 42
93. Σύντομη περιγραφή της λειτουργίας ενός υποπρογράμματος.
Κάθε υποπρόγραμμα για να ενεργοποιηθεί καλείται , όπως λέγεται, από ένα άλλο υποπρόγραμμα ή
από το αρχικό πρόγραμμα. (Το αρχικό πρόγραμμα ονομάζεται κυρίως πρόγραμμα.)
Το υπ/μα είναι αυτόνομο και ανεξάρτητο αλλά πρέπει να επικοινωνεί με το υπόλοιπο πρόγραμμα.
Συνήθως δέχεται τιμές από το πρόγραμμα που το καλεί και μετά την εκτέλεση του επιστρέφει σε
αυτόν που το κάλεσε νέες τιμές- αποτελέσματα.
Οι τιμές αυτές περνούν από το ένα υπ/μα στο άλλο με την βοήθεια των παραμέτρων.
{Ορισμός:} Είναι ένας τύπος υποπρογράμματος που υπολογίζει και επιστρέφει μία μόνο τιμή με το
όνομά της.
(Ορισμός:) Είναι ένας τύπος υποπρογράμματος που μπορεί να εκτελεί όλες τις λειτουργίες ενός
προγράμματος.
Κάθε συνάρτηση έχει την ακόλουθη δομή και ορίζεται μετά από το τέλος_προγράμματος:
σελίδα 43
Ονομα: Το όνομα της συνάρτησης είναι οποιοδήποτε έγκυρο όνομα της ΓΛΩΣΣΑΣ.
Η λίστα τυπικών παραμέτρων: είναι μια λίστα μεταβλητών των οποίων οι τιμές μεταβιβάζονται
στην συνάρτηση. {Αποτελείται από τις μεταβλητές εισόδου της συνάρτησης}
Ο τύπος της συνάρτησης: είναι ο τύπος της τιμής που υπολογίζει η συνάρτηση. Μπορεί να είναι
ακέραια, λογική, πραγματική, ή χαρακτήρας.{θυμήσου ότι η συνάρτηση επιστρέφει μία μόνο τιμή}
Εντολές: Στις εντολές του σώματος της συνάρτησης πρέπει υποχρεωτικά να υπάρχει μια εντολή
εκχώρησης τιμής στο όνομα της συνάρτησης. (όνομα←έκφραση) {Αυτή η εκχώρηση αποτελεί
ουσιαστικά τον μηχανισμό εξόδου της συνάρτησης}
Κάθε διαδικασία έχει την ακόλουθη δομή και ορίζεται μετά από το τέλος_προγράμματος:
Όνομα: Το όνομα της διαδικασίας είναι οποιοδήποτε έγκυρο όνομα της γλώσσας.
Η λίστα τυπικών παραμέτρων: είναι μια λίστα μεταβλητών, οι τιμές των οποίων μεταβιβάζονται
προς την διαδικασία ή/και επιστρέφονται στο κυρίως πρόγραμμα μετά το τέλος της διαδικασίας.
{Πρόσεχε το ή/και.. κρύβονται δύο προτάσεις σε μία}
Εντολές: Στο σώμα της διαδικασίας μπορούν να υπάρχουν οποιεσδήποτε εντολές της ΓΛΩΣΣΑΣ.
Κάθε συνάρτηση καλείται όπως ακριβώς καλούνται οι ενσωματωμένες συναρτήσεις της ΓΛΩΣΣΑΣ (Α_Τ,
Τ_Ρ κλπ.)
Απλώς αναφέρεται το όνομά της σε μια έκφραση ή σε μια εντολή και επιστρέφεται η τιμή της.
Παράδειγμα:
Ε←Εμβαδό_κύκλου(R) Το κύριο πρόγραμμα πριν την κλήση της συνάρτηση γνωρίζει την τιμή της
μεταβλητής R. Κατά την κλήση της συνάρτηση μεταβιβάζεται η τιμή του R στην αντίστοιχη μεταβλητή της
συνάρτησης. Η συνάρτηση υπολογίζει το εμβαδόν και το αποτέλεσμα εκχωρείται στο όνομά της. Με το
τέλος_συνάρτησης γίνεται επιστροφή στο κυρίως πρόγραμμα όπου η τιμή του εμβαδού εκχωρείται στην
μεταβλητή Ε
σελίδα 44
99. Κλήση διαδικασιών Commented [SS77]: Απομνημόνευση όλη
Η κλήση μιας διαδικασίας από ένα πρόγραμμα ή από ένα άλλο υποπρόγραμμα γίνεται με την εντολή
κάλεσε.
• Σύνταξη:
Κάλεσε όνομα_διαδικασίας(λίστα πραγματικών παραμέτρων)
• Λειτουργία:
Η εκτέλεση του προγράμματος διακόπτεται. Εκτελούνται οι εντολές της διαδικασίας.Μετά το
τέλος της διαδικασίας η εκτέλεση του προγράμματος συνεχίζεται με την εντολή που βρίσκεται
μετά την κάλεσε.
• Λίστα παραμέτρων:
Μπορεί να περιλαμβάνει καμία, μία ή περισσότερες παραμέτρους. Ορίζει τις τιμές εισόδου
προς την διαδικασία αλλά και τις τιμές εξόδου της διαδικασίας.
{παρατήρησε ότι η λίστα παραμέτρων μπορεί να μην περιλαμβάνει και καμία παράμετρο}
{Ορισμός} Η λίστα των πραγματικών παραμέτρων καθορίζει τις παραμέτρους στην κλήση ενός
υποπρογράμματος.
{ορισμος} Η λίστα των τυπικών παραμέτρων καθορίζει τις παραμέτρους στην δήλωση ενός
υποπρογράμματος. Μερικές γλώσσες προγραμματισμού τις ονομάζουν και ορίσματα.
{ Εξαίρεση στον τρίτο κανόνα αποτελεί το σενάριο όπου η πραγματική παράμετρος είναι ακέραια και
η τυπική παράμετρος είναι πραγματική. Το σχολικό εγχειρίδιο όμως δεν αναφέρει πουθενά κάτι
τέτοιο. Για τον λόγο αυτό μην το αναφέρεις :) }
Όλες οι εντολές ενός προγράμματος έχουν μια μοναδική “διεύθυνση”. Όταν μια διαδικασία ή μία
συνάρτηση καλείται από το κύριο πρόγραμμα, τότε η διεύθυνση της αμέσως επόμενης εντολής του
κυρίου προγράμματος (που ονομάζεται διεύθυνση επιστροφής) αποθηκεύεται από τον μεταφραστή
σε μια στοίβα. Η στοίβα αυτή ονομάζεται στοίβα χρόνου εκτέλεσης. Μετά την εκτέλεση της διαδικασίας
σελίδα 45
ή της συνάρτησης, τότε η “διεύθυνση επιστροφής“ απωθείται από την στοίβα και το πρόγραμμα εκτελεί
την αντίστοιχη εντολή. Η τεχνική αυτή εφαρμόζεται γενικότερα, δηλαδή οποτεδήποτε μια διαδικασία η
συνάρτηση καλεί μια άλλη διαδικασία ή συνάρτηση.
Κάθε κύριο πρόγραμμα όπως και κάθε υποπρόγραμμα περιλαμβάνει τις δικές του μεταβλητές και
σταθερές. Ολες οι μεταβλητές και όλες οι σταθερές στη ΓΛΩΣΣΑ είναι γνωστές στο αντίστοιχο
προγραμμα/υποπρόγραμμα που δηλώνονται και μόνο σε αυτό. Είναι δηλαδή τοπικές στο
συγκεκριμένο τμήμα προγράμματος. Ο μόνος τρόπος για να περάσει μία τιμή από ένα
υποπρόγραμμα σε ένα άλλο ή από το κυρίως πρόγραμμα σε ένα υποπρόγραμμα είναι διαμέσου των
παραμέτρων κατά το στάδιο της κλήσης του υποπρογράμματος και μετά το τέλος της εκτέλεσης του
υποπρογράμματος.
{Ορισμός} Εμβέλεια (scope) μεταβλητών λέγεται το τμήμα του προγράμματος που ισχύουν οι
μεταβλητές
Πολλές γλώσσες προγραμματισμού επιτρέπουν τη χρήση των μεταβλητών και των σταθερών, όχι
μόνο στο τμήμα προγράμματος που δηλώνονται, αλλά και σε άλλα υποπρογράμματα ή ακόμη και
σε όλα τα υπόλοιπα υποπρογράμματα. Αυτό που καθορίζει την περιοχή που ισχύουν οι μεταβλητές
και οι σταθερές είναι η εμβέλεια των μεταβλητών της γλώσσας.
Σύμφωνα με αυτή την αρχή όλες οι μεταβλητές και όλες οι σταθερές είναι γνωστές και μπορούν να
χρησιμοποιούνται σε οποιοδήποτε τμήμα του προγράμματος, άσχετα που δηλώθηκαν. Όλες οι
μεταβλητές είναι καθολικές.
Μειονεκτήματα:
1. καταστρατηγεί την αρχή της αυτονομίας των υποπρογραμμάτων,
2. δημιουργεί πολλά προβλήματα και τελικά
3. είναι αδύνατη για μεγάλα προγράμματα με πολλά υποπρογράμματα, (αφού ο καθένας που γράφει
κάποιο υποπρόγραμμα πρέπει να γνωρίζει τα ονόματα όλων των μεταβλητών που χρησιμοποιούνται
στα υπόλοιπα υποπρογράμματα.)
Υποχρεώνει όλες τις μεταβλητές που χρησιμοποιούνται σε ένα τμήμα προγράμματος, να δηλώνονται
σε αυτό το τμήμα. Όλες οι μεταβλητές είναι τοπικές, ισχύουν δηλαδή για το υποπρόγραμμα στο οποίο
δηλώθηκαν. (Στη ΓΛΩΣΣΑ έχουμε περιορισμένη εμβέλεια.)
σελίδα 46
Πλεονεκτήματα:
1. Απόλυτη αυτονομία όλων των υποπρογραμμάτων και
2. η δυνατότητα να χρησιμοποιείται οποιοδήποτε όνομα μεταβλητής/σταθεράς, (χωρίς να ενδιαφέρει
αν το ίδιο χρησιμοποιείται σε άλλο υποπρόγραμμα.)
Σύμφωνα με αυτή την αρχή άλλες μεταβλητές είναι τοπικές και άλλες καθολικές. Κάθε γλώσσα
προγραμματισμού έχει τους δικούς της κανόνες και μηχανισμούς για τον τρόπο και τις προϋποθέσεις
που ορίζονται οι μεταβλητές ως τοπικές ή καθολικές.
Πλεονεκτήματα/ μειονεκτήματα:
Η μερικώς περιορισμένη εμβέλεια προσφέρει μερικά πλεονεκτήματα στον πεπειραμένο
προγραμματιστή, αλλά για τον αρχάριο περιπλέκει το πρόγραμμα δυσκολεύοντας την ανάπτυξή
του.
How strange to use "You only live once" as an excuse to throw it away.
Bill Copeland
σελίδα 47
ΕΡΩΤΗΣΕΙΣ ΣΩΣΤΟΥ ΛΑΘΟΥΣ
Κεφάλαιο 2
1. Όταν ένας αλγόριθμος εκφράζεται υπό μορφή ελευθέρου κειμένου, υπάρχει κίνδυνος παραβίασης του κριτηρίου της
καθοριστικότητας
2. Μια μεταβλητή μπορεί να αλλάζει τιμή και όνομα κατά τη διάρκεια εκτέλεσης ενός αλγορίθμου
4. H εντολή εκχώρησης τιμής αποδίδει το αποτέλεσμα μιας έκφρασης (παράστασης) σε μια μεταβλητή.
5. Η δομή της επιλογής χρησιμοποιείται στις περιπτώσεις όπου υπάρχει μία συγκεκριμένη σειρά βημάτων για την
επίλυση ενός προβλήματος
6. Στην δομή ΜΕΧΡΙΣ_ΟΤΟΥ, υπάρχει περίπτωση η ομάδα εντολών του βρόχου να μην εκτελεστεί καμία φορά
7. Η σύζευξη δύο λογικών συνθηκών είναι ψευδής όταν μόνο μία από τις δύο λογικές συνθήκες είναι αληθής
9. Για τον υπολογισμό του μέσου όρου αριθμών πρέπει να χρησιμοποιηθεί η δομή επιλογής
10. Στην πολλαπλή επιλογή κάθε περίπτωση αντιστοιχεί σε διαφορετική τιμή της μεταβλητής
15. Η συνθήκη είναι μια λογική έκφραση με λογικούς τελεστές που μπορεί να πάρει τιμή Αληθής ή Ψευδής
16. Εντός μιας δομής επανάληψης δεν μπορεί να περιέχεται δομή επιλογής
18. Η περατότητα ενός αλγορίθμου αναφέρεται στο γεγονός ότι καταλήγει στη λύση του προβλήματος μετά από
πεπερασμένο αριθμό βημάτων (εντολών).
19. Οι επαναληπτικές δομές χρησιμοποιούνται στην περίπτωση που μια ομάδα εντολών πρέπει να εκτελεστεί πολλές
φορές
20. Όταν το πλήθος των επαναλήψεων είναι γνωστό δεν μπορεί να χρησιμοποιηθεί η δομή επανάληψης
"Όσο...επανάλαβε"
21. Σε μια εντολή εκχώρησης είναι δυνατόν μια παράσταση στο δεξιό μέλος να περιέχει τη μεταβλητή που βρίσκεται
στο αριστερό μέλος.
24. Η δομή της επιλογής περιλαμβάνει τον έλεγχο κάποιας συνθήκης που μπορεί να έχει δύο τιμές (Αληθής ή Ψευδής)
σελίδα 48
25. Στην δομή επανάληψης "Μέχρις_ότου" οι μεταβλητές που συμμετέχουν στην συνθήκη πρέπει να αρχικοποιούνται
πριν το βρόχο
26. Μια σταθερά μπορεί να αλλάξει τιμή κατά τη διάρκεια εκτέλεσης ενός αλγορίθμου.
28. Όταν πρέπει να εκτελεστούν κάποιες εντολές υπό κάποια συνθήκη χρησιμοποιείται η δομή ακολoυθίας
29. Στο δεξί τμήμα μιας εντολής εκχώρησης πρέπει να υπάρχει υποχρεωτικά πράξη.
30. Η δομή "Όσο...Επανάλαβε" χρησιμοποιείται μόνο όταν γνωρίζουμε το πλήθος των επαναλήψεων
31. Με την εντολή ΜΕΧΡΙΣ_ΟΤΟΥ υπάρχει ένας βρόχος που εκτελείται τουλάχιστον μία φορά
32. Στη δομή ακολουθίας μια συγκεκριμένη εντολή μπορεί να εκτελεστεί πολλές φορές
33. Η σειρά εκτέλεσης των εντολών στη δομή ακολoυθίας είναι προκαθορισμένη
34. Η λογική των επαναληπτικών διαδικασιών εφαρμόζεται στις περιπτώσεις, όπου μία ακολουθία εντολών πρέπει να
εφαρμοσθεί σε ένα σύνολο περιπτώσεων, που έχουν κάτι κοινό
35. Το όνομα μιας μεταβλητής πρέπει υποχρεωτικά να αρχίζει με γράμμα ή με κάτω παύλα _
36. Η δομή επιλογής περιλαμβάνει τον έλεγχο κάποιας συνθήκης που μπορεί να έχει δύο τιμές (Αληθής ή Ψευδής)
37. Κάθε πρόβλημα που απαιτεί τη χρήση δομής επανάληψης μπορεί να επιλυθεί με τη χρήση της δομής επανάληψης
"Για"
38. Η έννοια του αλγορίθμου συνδέεται αποκλειστικά και μόνο με προβλήματα της Πληροφορικής.
40. Μια υπολογιστική διαδικασία που δεν τελειώνει μετά από συγκεκριμένο αριθμό βημάτων αποτελεί αλγόριθμο.
41. Μια δομή επιλογής μπορεί να περιλαμβάνει μόνο εντολές εκχώρησης τιμής
42. Εντός μιας δομής επιλογής δεν μπορεί να περιέχεται δομή επανάληψης
43. Αλγόριθμος είναι μια ακολουθία βημάτων που βοηθά στην επίλυση ενός προβλήματος
44. Τα κυριότερα σύμβολα των διαγραμμάτων ροής είναι η έλλειψη, ο ρόμβος, το ορθογώνιο και το πλάγιο
παραλληλόγραμμο
46. Μια δομή επιλογής μπορεί να περιλαμβάνει μόνο εντολές εκχώρησης τιμής
47. Ένας αλγόριθμος μπορεί να έχει καμία, μία ή πολλές τιμές δεδομένων που του δίνονται ως είσοδοι
48. Η είσοδος σε ένα αλγοριθμικό πρόβλημα είναι ένα σύνολο μεταβλητών που σχετίζονται με τα δεδομένα του
49. Ο πολλαπλασιασμός αλλά ρωσικά είναι ένας αλγόριθμος που στηρίζεται στην πράξη της ολίσθησης
50. Σε μια έκφραση εκτελούνται πρώτα οι συγκριτικοί τελεστές και στη συνέχεια οι αριθμητικοί
51. Η δομή της ακολουθίας είναι ιδιαίτερα χρήσιμη για την αντιμετώπιση πολύπλοκων προβλημάτων
52. Μια δομή επανάληψης πρέπει να φροντίζει για μεταβολή της τιμής της συνθήκης ώστε κάποτε να τερματίζεται
σελίδα 49
53. Αν οι μεταβλητές α, β είναι αριθμητικές και έχουν κάποια τιμή, τότε οι παρακάτω εντολές αν εκτελεστούν στη σειρά,
ανταλλάσσουν τις τιμές τους Α ← Α + Β , Β ← Α – Β , Α ← Α – Β
55. Οι διαδικασίες των πολλαπλών επιλογών εφαρμόζονται στα προβλήματα όπου εκτελούνται κάποιες εντολές
ανάλογα με την τιμή που παίρνει μία μεταβλητή
57. Η δομή ΟΣΟ χρησιμοποιείται μόνο όταν γνωρίζουμε το πλήθος των επαναλήψεων
58. Με την εντολή "Αρχή_επανάληψης…Μέχρις_ότου…" υπάρχει ένας βρόχος που εκτελείται τουλάχιστον μία φορά
59. Χρησιμοποιούμε τη δομή επιλογής όταν θέλουμε μια ομάδα εντολών να εκτελεστεί πολλές φορές
60. Η πιο γνωστή διαγραμματική τεχνική αναπαράστασης του αλγορίθμου είναι τα διαγράμματα ροής.
61. Στις δομές "Όσο" και "Μέχρις_ότου", οι συνθήκες είναι μεταξύ τους αντίθετες
62. Μία εντολή "Αν…τότε" δεν μπορεί να περιληφθεί στα όρια κάποιας άλλης εντολής "Αν…τότε"
64. Δεσμευμένες λέξεις ονομάζονται αυτές που ορίζει ο προγραμματιστής ως ονομασίες των μεταβλητών που
χρησιμοποιεί
66. Κάθε εντολή ενός αλγορίθμου πρέπει να καθορίζεται χωρίς αμφιβολία για τον τρόπο εκτέλεσής της.
68. Εντός της δομής ΓΙΑ δεν επιτρέπεται η τροποποίηση της τιμής του μετρητή
70. Κάθε βρόχος "Όσο" μπορεί να μετατραπεί σε "Μέχρις_ότου" χωρίς την προσθήκη επιπλέον εντολών
71. Στη δομή επανάληψης Για πρέπει η τιμή του μετρητή να μεταβάλλεται εντός του βρόχου
72. Στην δομή "Μέχρις_ότου", υπάρχει περίπτωση η ομάδα εντολών του βρόχου να μην εκτελεστεί καμία φορά
74. Οι συγκριτικοί τελεστές έχουν μικρότερη προτεραιότητα από τους αριθμητικούς και μεγαλύτερη από τους λογικούς
76. Στη δομή επανάληψης Για το βήμα δεν μπορεί να είναι μηδέν
77. Όταν σε μια δομή ΓΙΑ παραλείπεται το βήμα, τότε εννοείται ως βήμα το 1
78. Στην δομή επανάληψης ΟΣΟ οι μεταβλητές που υπάρχουν στην συνθήκη πρέπει να πάρουν τιμή πριν το βρόχο
79. Μια σειρά βημάτων που δεν ικανοποιεί το κριτήριο της περατότητας δεν αποτελεί αλγόριθμο
80. Στην δομή επανάληψης ΜΕΧΡΙΣ_ΟΤΟΥ οι μεταβλητές που υπάρχουν στην συνθήκη πρέπει να αρχικοποιούνται πριν
το βρόχο
σελίδα 50
81. Στην εντολή Χ <-- Α mod B η μεταβλητή Χ μπορεί να είναι πραγματική
84. Δύο πολύ γνωστοί αλγόριθμοι της αρχαιότητας ανοίκουν στον Ευκλείδη και τον Ερατοσθένη
85. Κάθε πρόβλημα που απαιτεί τη χρήση δομής επανάληψης μπορεί να επιλυθεί με τη χρήση της δομής επανάληψης
"Μέχρις_ότου" χωρίς την προσθήκη επιπλέον εντολών.
87. Για την αναπαράσταση των δεδομένων εισόδου ενός αλγορίθμου χρησιμοποιούμε τις σταθερές
89. Η εντολή "Για i από .. μέχρι .. βήμα .." πρέπει να περιλαμβάνει για βήμα πάντοτε ένα θετικό αριθμό
90. Όταν χρειάζεται να υπάρξει απόφαση με βάση κάποιο κριτήριο, τότε χρησιμοποιείται η δομή της επιλογής
91. Στη δομή επιλογής υπάρχει περίπτωση κάποιες εντολές να μην εκτελεστούν ποτέ
92. Ο ατέρμων βρόχος μιας εντολής επανάληψης οδηγεί σε έναν αλγόριθμο χωρίς περατότητα
93. Οι τελεστές div και mod έχουν μεγαλύτερη προτεραιότητα από τους τελεστές * και /
95. Ο αλγόριθμος είναι απαραίτητος μόνο για την επίλυση προβλημάτων πληροφορικής.
96. Για την αναπαράσταση των δεδομένων εισόδου ενός αλγορίθμου χρησιμοποιούμε τις σταθερές
97. Στη δομή επανάληψης Για δεν είναι δυνατόν η αρχική τιμή να είναι να είναι μεγαλύτερη από την τελική
98. Για να αναπαραστήσουμε τα δεδομένα και τα αποτελέσματα σ’ έναν αλγόριθμο, χρησιμοποιούμε σταθερές
101. Η εντολή ΓΙΑ πρέπει να περιλαμβάνει για βήμα πάντοτε ένα θετικό αριθμό
102. Τα είδη των μεταβλητών που χρησιμοποιούμε είναι οι αριθμητικές, οι αλφαριθμητικές και οι σταθερές
103. Ο αλγόριθμος μπορεί να περιλαμβάνει και εντολές που δεν είναι σαφείς
104. Η αναπαράσταση των αλγορίθμων μπορεί να γίνει με χρήση ελεύθερου κειμένου και φυσικής γλώσσας
105. Στο διάγραμμα ροής το σχήμα του ρόμβου δηλώνει το τέλος ενός αλγορίθμου
106. Μία εντολή «Αν…τότε» δεν μπορεί να περιληφθεί στα όρια κάποιας άλλης εντολής "Αν…τότε"
107. Με χρήση της εντολής “Όσο...επανάλαβε” επιτυγχάνεται η επανάληψη μίας διαδικασίας με βάση κάποια συνθήκη
108. Κάθε πρόβλημα που απαιτεί τη χρήση δομής επανάληψης μπορεί να επιλυθεί με τη χρήση της δομής επανάληψης
"Όσο"
109. Η τιμή μιας μεταβλητής δε μπορεί να αλλάξει κατά τη διάρκεια εκτέλεσης ενός αλγορίθμου.
σελίδα 51
110. Δεξιά μιας εντολής εκχώρησης δεν μπορεί να βρίσκεται η ίδια μεταβλητή που βρίσκεται αριστερά
111. Κάθε εντολή πολλαπλής επιλογής μπορεί να αναπαρασταθεί από πολλά απλά Αν
113. Δεν μπορούμε να έχουμε μια δομή επανάληψης μέσα σε μια άλλη δομή επανάληψης
114. Στη δομή απλής επιλογής η ομάδα εντολών εντός της δομής εκτελείται όταν η συνθήκη είναι αληθής
115. Στην δομή επανάληψης "Όσο" οι μεταβλητές που συμμετέχουν στην συνθήκη πρέπει να πάρουν τιμή πριν το βρόχο
117. Η εντολή εκχώρησης τιμής αποδίδει το αποτέλεσμα μιας έκφρασης (παράστασης) σε μια μεταβλητή.
118. Με την εντολή Διάβασε διακόπτεται η ροή εκτέλεσης των εντολών του αλγορίθμου
119. Ο αλγόριθμος υπολογισμού του μέγιστου κοινού διαιρέτη δύο αριθμών, ανήκει στον Ευκλείδη.
120. Το διάγραμμα ροής (flow chart) είναι ένας τρόπος περιγραφής αλγορίθμου.
122. Για όλους τους ακέραιους θετικούς αριθμούς Χ ισχύει πως το Χ DIV 2 είναι ίσο με το Α_Μ(Χ/2).
123. Για τον υπολογισμό μίας έκφρασης όλες οι μεταβλητές που εμφανίζονται σε αυτή πρέπει να έχουν οριστεί πριν,
δηλαδή να έχουν κάποια τιμή.
124. Ένα διάγραμμα ροής αποτελείται από ένα σύνολο γεωμετρικών σχημάτων όπου το καθένα δηλώνει μία
συγκεκριμένη ενέργεια ή λειτουργία.
126. Η λογική πράξη Ή μεταξύ 2 προτάσεων είναι ψευδής, όταν οποιαδήποτε από τις 2 προτάσεις είναι ψευδής.
129. Ο αλγόριθμος του πολλαπλασιασμού αλά ρώσικα χρησιμοποιείται από τους υπολογιστές για την εκτέλεση του
πολλαπλασιασμού.
130. Ο τελεστής mod χρησιμοποιείται για τον υπολογισμό του πηλίκου μίας διαίρεσης ακέραιων αριθμών
132. Σε μία εντολή εκχώρησης του αποτελέσματος μίας έκφρασης σε μια μεταβλητή, η μεταβλητή και η έκφραση πρέπει
να είναι του ίδιου τύπου
133. Στην έκφραση Ζ<--Χ DIV Υ μπορεί κάποιο από τα Χ, Υ, Ζ να είναι πραγματικός αριθμός.
134. Το κριτήριο της καθοριστικότητας απαιτεί κάθε εντολή ενός αλγόριθμου να είναι απλή και εκτελέσιμη.
135. Το πλάγιο παραλληλόγραμμο χρησιμοποιείται για είσοδο/έξοδο και τη συνθήκη σε ένα διάγραμμα ροής.
136. Κάθε εντολή ΑΝ πρέπει να έχει την αντίστοιχη εντολή ΤΕΛΟΣ_ ΑΝ εκτός και αν αποτελείται από μόνο μία εντολή
τοποθετημένη μετά τη δεσμευμένη λέξη ΤΟΤΕ.
σελίδα 52
137. Η θέση ενός στοιχείου σε έναν δισδιάστατο πίνακα καθορίζεται από δυο ακέραιους αριθμούς.
Κεφάλαιο 3
138. Η ταξινόμηση της φυσαλίδας ταξινομεί τα στοιχεία ενός μονοδιάστατου πίνακα μόνο σε αύξουσα σειρά
140. Τα στοιχεία ενός πίνακα είναι απαραίτητο να είναι όλα του ίδιου τύπου
142. Η προσπέλαση είναι μια από τις βασικές πράξεις επί των δομών δεδομένων.
143. Η συγχώνευση και ο διαχωρισμός είναι δύο πράξεις που απαγορεύονται στις στατικές δομές.
144. Πολλές από τις σύγχρονες γλώσσες προγραμματισμού δεν παρέχουν δυναμικές δομές δεδομένων.
145. Ο πίνακας είναι μια δυναμική δομή δεδομένων που περιέχει στοιχεία του ιδίου τύπου.
146. Για τον υπολογισμό μέσου όρου 120 αριθμών πρέπει να χρησιμοποιηθεί πίνακας
147. Η σειριακή αναζήτηση και η δυαδική αναζήτηση μπορούν να χρησιμοποιηθούν σε όλους τους μονοδιάστατους
πίνακες
148. Για να εφαρμοστεί η μέθοδος της σειριακής αναζήτησης είναι απαραίτητο τα στοιχεία να είναι ταξινομημένα.
152. Η ταξινόμηση των στοιχείων ενός πίνακα με τη μέθοδο της φυσαλίδας βασίζεται στην αρχή της σύγκρισης και
αντιμετάθεσης ζευγών γειτονικών στοιχείων του πίνακα.
153. Η ταξινόμηση έχει ως στόχο να διατάξει τα στοιχεία ενός μονοδιάστατου πίνακα με αύξουσα ή φθίνουσα διάταξη
155. Η ταξινόμηση είναι χρήσιμη διαδικασία γιατί έτσι εκτελείται γρηγορότερα η αναζήτηση
158. Η θέση ενός στοιχείου σε έναν δισδιάστατο πίνακα καθορίζεται από δυο αριθμούς
159. Για το διάβασμα των στοιχείων ενός τρισδιάστατου πίνακα χρειάζονται 3 εμφωλευμένες εντολές ΓΙΑ.
160. Η ταξινόμηση των πινάκων μπορεί να γίνει με περισσότερα του ενός κριτήρια.
161. Σε μία δυναμική δομή δεδομένων τα δεδομένα αποθηκεύονται υποχρεωτικά σε συνεχόμενες θέσεις μνήμης.
162. Όταν γίνεται σειριακή αναζήτηση κάποιου στοιχείου σε έναν μη ταξινομημένο πίνακα και το στοιχείο δεν υπάρχει
στον πίνακα, τότε υποχρεωτικά προσπελαύνονται όλα τα στοιχεία του πίνακα.
σελίδα 53
163. Προσπέλαση είναι η εύρεση ενός κόμβου με κάποιο κριτήριο
165. Η ταξινόμηση φυσαλίδας είναι ο πιο απλός και ταυτόχρονα ο πιο γρήγορος αλγόριθμος ταξινόμησης.
166. Όταν γράφουμε ΠΙΝΑΚΑΣ[α, β] το α αντιστοιχεί στη γραμμή του πίνακα και το β στη στήλη.
167. Τα αρχεία είναι δυναμικές δομές δεδομένων που αποθηκεύονται στη δευτερεύουσα μνήμη του υπολογιστή.
168. Η μέθοδος της σειριακής αναζήτησης δικαιολογείται στην περίπτωση που ο πίνακας είναι μη ταξινομημένος και
μικρού μεγέθους.
169. Αν πρέπει να υπολογίσουμε το άθροισμα 100 ακεραίων, η χρήση πίνακα δεν είναι υποχρεωτική.
170. Όταν ψάχνουμε σε ένα τηλεφωνικό κατάλογο χρησιμοποιούμε τη σειριακή μέθοδο αναζήτησης
171. Η ταξινόμηση είναι μια από τις βασικές λειτουργίες επί των δομών δεδομένων.
172. Η εισαγωγή και η διαγραφή είναι δύο πράξεις που απαγορεύονται στις στατικές δομές.
173. Η σειριακή και η δυαδική αναζήτηση μπορούν να χρησιμοποιηθούν σε όλους τους μονοδιάστατους πίνακες.
175. Το μέγεθος μιας στατικής δομής καθορίζεται τη στιγμή της μετάφρασης και όχι την στιγμή της εκτέλεσης.
176. Με τη λειτουργία της συγχώνευσης, δύο ή περισσότερες δομές δεδομένων συνενώνονται σε μία ενιαία δομή.
177. Το πεδίο που ταυτοποιεί την εγγραφή ενός αρχείου ονομάζεται πρωτεύον κλειδί.
179. Για την σάρωση των στοιχείων ενός πίνακα, η χρήση της εντολής ΟΣΟ είναι η καλύτερη δυνατή.
181. Το πεδίο που χρησιμοποιείται για την ταυτοποίηση των εγγραφών ενός αρχείου καλείται δευτερεύον κλειδί.
182. Η ταξινόμηση ευθείας ανταλλαγής είναι αποτελεσματική αν ο πίνακας έχει λίγα στοιχεία
183. Δομή δεδομένων είναι ένα σύνολο δεδομένων που μπορούμε να εφαρμόσουμε μια σειρά λειτουργιών
185. Οι δισδιάστατοι πίνακες μπορούν να θεωρηθούν ως μονοδιάστατοι πίνακες όπου κάθε θέση τους θεωρούνται
άλλοι μονοδιάστατοι πίνακες
188. Η εγγραφή είναι δομή δεδομένων η οποία αποτελείται από πεδία που αποθηκεύουν χαρακτηριστικά.
189. Οι διαστάσεις ενός πίνακα μπορούν να μεταβληθούν κατά την διάρκεια εκτέλεσης ενός αλγορίθμου
190. Η σειριακή αναζήτηση μπορεί να οδηγήσει στην προσπέλαση ακόμη και ολόκληρου του πίνακα
191. Η δυναμική παραχώρηση μνήμης είναι η τεχνική που χρησιμοποιείται στους πίνακες
σελίδα 54
192. Η σειριακή αναζήτηση χρησιμοποιείται κυρίως για μικρούς ή μη ταξινομημένους πίνακες
194. Σε μια στατική δομή το ακριβές μέγεθος της απαιτούμενης κύριας μνήμης καθορίζεται κατά την εκτέλεση του
προγράμματος.
195. Για να προσπελάσουμε όλα τα στοιχεία ενός πίνακα χρησιμοποιούμε επαναληπτική δομή
196. Η πράξη της συγχώνευσης θεωρείται αντίστροφη της πράξης της ταξινόμησης.
198. Οι διαστάσεις ενός πίνακα μπορούν να τροποποιηθούν αν χρειάζεται κατά τη διάρκεια εκτέλεσης ενός αλγορίθμου
199. Δομή Δεδομένων είναι ένα σύνολο δεδομένων τα οποία υφίστανται επεξεργασία από λειτουργίες που καλούνται
από το υπόλοιπο πρόγραμμα
200. Δύο από τις μεθόδους ταξινόμησης είναι η ταξινόμηση ευθείας ανταλλαγής και η ταξινόμηση φυσαλίδας (bubble
sort).
201. Η αύξουσα ταξινόμηση είναι η σειρά κατά την οποία ο επόμενος κάθε φορά κόμβος είναι μεγαλύτερος από τον
προηγούμενο.
204. Η μέθοδος της ταξινόμησης ευθείας ανταλλαγής βασίζεται στην αρχή της σύγκρισης ζευγών γειτονικών στοιχείων
μέχρις ότου διαταχθούν σωστά.
205. Η τακτοποίηση κατά αύξουσα ή φθίνουσα σειρά των κόμβων μίας δομής δεδομένων ονομάζεται εξαγωγή.
206. Η ταξινόμηση ευθείας ανταλλαγής είναι ο πιο απλός τρόπος και ταυτόχρονα ο πιο αργός αλγόριθμος ταξινόμησης
208. Η ταξινόμηση φυσαλίδας είναι πιο αποτελεσματική σε πίνακες που είναι ταξινομημένοι κατά την αντίστροφη
σειρά σε σχέση με την επιθυμητή.
209. Η χρήση του αλγόριθμου της σειριακής αναζήτησης μπορεί να δικαιολογηθεί στην περίπτωση μικρών ή μη
ταξινομημένων πινάκων.
210. Με τη λειτουργία της συγχώνευσης δύο ή περισσότερες δομές δεδομένων συνενώνονται σε μία ενιαία δομή.
214. Όταν γίνεται σειριακή αναζήτηση κάποιου στοιχείου σε ένα μη ταξινομημένο πίνακα και το στοιχείο δεν υπάρχει
στον πίνακα, τότε υποχρεωτικά προσπελαύνονται όλα τα στοιχεία του πίνακα.
215. Στις δυναμικές δομές δεδομένων το μέγεθος της απαιτούμενης κύριας μνήμης, μεταβάλλεται κατά τη διάρκεια της
εκτέλεσης του προγράμματος.
σελίδα 55
216. Στις στατικές δομές το ακριβές μέγεθος της απαιτούμενης κύριας μνήμης, καθορίζεται τη στιγμή του
προγραμματισμού τους.
Κεφάλαιο 6
217. Το εκτελέσιμο είναι το τελικό πρόγραμμα που εκτελείται από τον υπολογιστή
218. Ο μεταγλωττιστής μας επιτρέπει να συντάσσουμε ένα πρόγραμμα σε γλώσσα υψηλού επιπέδου.
219. Στο δομημένο προγραμματισμό ακολουθούνται οι αρχές του ιεραρχικού και του τμηματικού προγραμματισμού
220. Ο δομημένος προγραμματισμός επιτρέπει την άμεση μεταφορά των αλγορίθμων σε πρόγραμμα
221. Κάθε υποπρόβλημα της ιεραρχικής σχεδίασης αποτελεί μια ανεξάρτητη ενότητα στον τμηματικό προγραμματισμό
222. Ο μεταγλωττιστής έχει το μειονέκτημα ότι ελέγχει όλο το πρόγραμμα και πραγματοποιεί και την διαδικασία της
σύνδεσης πολλές φορές μέχρι να επιδιορθωθούν όλα τα λάθη
224. Μια ακολουθία εντολών σε γλωσσα μηχανής είναι κατανοητή από τον επεξεργαστή και μπορεί να εκτελεστεί χωρίς
μετατροπή.
226. Χάρη στο δομημένο προγραμματισμό δημιουργούνται προγράμματα απλούστερα, κατανοήσιμα και εύκολα στη
διόρθωση
228. Τα σύγχρονα προγραμματιστικά περιβάλλοντα χρησιμοποιούν μικτές υλοποιήσεις διερμηνευτή και μεταγλωττιστή
230. Τα λογικά λάθη εντοπίζονται από έναν μεταγλωττιστή αλλά όχι από έναν διερμηνευτή
232. Κάθε υποπρόβλημα της ιεραρχικής σχεδίασης αντιμετωπίζεται στον τμηματικό προγραμματισμό σαν ανεξάρτητη
ενότητα (module).
233. Οι φυσικές γλώσσες εξελίσσονται συνεχώς ενώ οι τεχνητές χαρακτηρίζονται από στασιμότητα.
234. Στην ιεραρχική σχεδίαση, η ανάλυση του αλγορίθμου πραγματοποιείται με την τεχνική «από πάνω προς τα κάτω»
235. Η γραμματική είναι το συντακτικό μιας γλώσσας, δηλαδή όλοι οι κανόνες που διέπουν τον τρόπο σύνδεσης των
λέξεων.
237. Βασικό στοιχείο του προγράμματος πέραν της κωδικοποίησης είναι οι δομές δεδομένων.
238. Τα συντακτικά λάθη στον πηγαίο κώδικα εμφανίζονται κατά το στάδιο της μεταγλώττισής του.
239. Δεν υπάρχουν ουσιαστικές διαφορές μεταξύ των φυσικών και των τεχνητών γλωσσών.
240. Υπάρχουν δυο μεγάλες κατηγορίες μεταφραστικών προγραμμάτων: οι μεταφραστές και οι μεταγλωττιστές
σελίδα 56
241. Η χρήση της εντολής ΜΟ ← α + β + γ / 3 αντί της ΜΟ ← (α + β + γ) / 3 είναι λογικό λάθος
242. Ο μεταγλωττιστής αναλαμβάνει το ρόλο της μετάφρασης από το πηγαίο πρόγραμμα στο εκτελέσιμο πρόγραμμα
244. Οι γλώσσες προγραμματισμού είναι τεχνητές γλώσσες που αναπτύχθηκαν με σκοπό την επικοινωνία ανθρώπου –
μηχανής.
245. Ο τμηματικός προγραμματισμός είναι μεθοδολογία που υλοποιεί την ιεραρχική σχεδίαση.
247. Για την επιδιόρθωση των λογικών λαθών πολλές φορές ο προγραμματιστής καλείται να εκτελέσει το πρόγραμμά
του επανειλημμένα
248. Το τελικό πρόγραμμα ονομάζεται και αντικείμενο πρόγραμμα ενώ το αρχικό ονομάζεται και πηγαίο.
249. Σ' ένα σύγχρονο προγραμματιστικό περιβάλλον απαιτείται η παρουσία ενός συντάκτη για την συγγραφή των
εντολών του προγράμματος.
250. Σε ένα σύγχρονο προγραμματιστικό περιβάλλον απαιτείται η παρουσία συντάκτη για την συγγραφή του κειμένου
των εντολών
251. Τα προγράμματα που βασίζονται στο δομημένο προγραμματισμό είναι απλούστερα, κατανοήσιμα αλλά πιο
δύσκολα στη διόρθωση και τη συντήρηση τους.
252. Τα τμήματα του προγράμματος που συνδέονται στο αντικείμενο είναι πάντα γραμμένα από τον ίδιο τον
προγραμματιστή.
253. Ο μεταγλωττιστής και ο διερμηνευτής είναι μεταφραστικά προγράμματα γλωσσών υψηλού επιπέδου με
δυνατότητα άμεσης εκτέλεσης των εντολών.
255. Ενα πρόγραμμα σε γλώσσα μηχανής χρειάζεται μετατροπή σε ακολουθία δυαδικών ψηφίων ώστε να εκτελεστεί
από τον υπολογιστή
258. Σε ένα σύγχρονο περιβάλλον ο διερμηνευτής χρησιμοποιείται στη φάση της δημιουργίας του προγράμματος και ο
μεταγλωττιστής στη φάση της τελικής έκδοσης και εκμετάλλευσης του προγράμματος.
259. Ο δομημένος προγραμματισμός περιέχει την ιεραρχική σχεδίαση και τον τμηματικό προγραμματισμό
262. Η σημασιολογία μιας γλώσσας προσδιορίζει το νόημα των λέξεων, των φράσεων και των προτάσεών της.
263. Ο μεταγλωττιστής σε ένα σύγχρονο προγραμματιστικό περιβάλλον καθιστά την ύπαρξη του συνδέτη προαιρετική
264. Ο διερμηνευτής ελέγχει και μετατρέπει μια-μια τις εντολές του πηγαίου προγράμματος σε γλώσσα μηχανής
σελίδα 57
265. Ο τμηματικός προγραμματισμός διευκολύνει τη δημιουργία του προγράμματος.
267. Μια τεχνητή γλώσσα μπορεί να δεχτεί αλλαγές είτε σε επίπεδο επέκτασης είτε σε επίπεδο διαλέκτου.
268. Η εντολή GOTO που αλλάζει τη ροή εκτέλεσης ενός προγράμματος είναι απαραίτητη στο δομημένο
προγραμματισμό.
269. Ο διερμηνευτής διαβάζει μία προς μία τις εντολές του πηγαίου προγράμματος και για κάθε μια εκτελεί αμέσως
μια ισοδύναμη ακολουθία εντολών μηχανής.
270. Τα λογικά λάθη είναι συνήθως λάθη σχεδιασμού και δεν προκαλούν τη διακοπή της εκτέλεσης του προγράμματος.
271. Λεξιλόγιο μιας γλώσσας είναι όλες οι ακολουθίες που δημιουργούνται από τα στοιχεία του αλφαβήτου της
γλώσσας, τις λέξεις
272. Μια γλώσσα προγραμματισμού προσδιορίζεται από: το αλφάβητό της, το λεξιλόγιό της, τη γραμματική της και τη
σημασιολογία της
273. Η ιεραρχική σχεδίαση διασπά ένα πρόβλημα σε υποπροβλήματα και τα επιλύει, λύνοντας το αρχικό πρόβλημα
274. Ο μεταγλωττιστής δέχεται στην είσοδό του ένα πρόγραμμα γραμμένο σε μια γλώσσα υψηλού επιπέδου και
παράγει ένα ισοδύναμο πρόγραμμα σε γλώσσα μηχανής.
276. Ο συνδέτης είναι ένα πρόγραμμα ελέγχου των συντακτικών λαθών του πηγαίου προγράμματος
278. Τα συντακτικά λάθη επιδιορθώνονται γρήγορα και εύκολα αλλά για τα λογικά λάθη η επιδιόρθωση είναι μια
επίπονη διαδικασία
281. Το εκτελέσιμο πρόγραμμα είναι απαλλαγμένο από συντακτικά λάθη αλλά όχι και από λογικά.
282. Ο εντοπισμός των συντακτικών λαθών σε ένα πρόγραμμα γίνεται από τον μεταγλωττιστή (compiler)
285. Ο προγραμματισμός αφορά την διατύπωση ενός αλγορίθμου σε κατανοητή από τον υπολογιστή μορφή
286. Αν θέλουμε να υπολογίσουμε το μέσο όρο 2 τιμών και δώσουμε την εντολή [α+β]/2, θα προκύψει λογικό λάθος.
287. Αν θέλουμε να υπολογίσουμε το μέσο όρο 2 τιμών και δώσουμε την εντολή α+β/2, θα προκύψει λογικό λάθος.
288. Ένα πρόγραμμα σε γλώσσα μηχανής είναι μία ακολουθία δυαδικών ψηφίων.
289. Η γλώσσα μηχανής είναι άμεσα εκτελεστέα από τον υπολογιστή και πιο κατανοητή από τον άνθρωπο.
291. Η σημασιολογία καθορίζει το νόημα των λέξεων και των εκφράσεων μιας γλώσσας.
σελίδα 58
292. Ο δομημένος προγραμματισμός απαιτεί τη χρήση εξειδικευμένων αλγοριθμικών δομών.
293. Ο δομημένος προγραμματισμός εμπεριέχει τις έννοιες του ιεραρχικού και του τμηματικού προγραμματισμού.
294. Ο δομημένος προγραμματισμός εξασφαλίζει τη δημιουργία προγραμμάτων απλών στη συγγραφή και στην
κατανόηση και εύκολων στη διόρθωση
295. Ο δομημένος προγραμματισμός στηρίζεται στις δομές ακολουθίας, επιλογής και επανάληψης.
296. Ο ιεραρχικός προγραμματισμός στηρίζεται στην «από κάτω προς τα πάνω» σχεδίαση.
297. Ο μεταγλωττιστής δέχεται σαν είσοδο ένα πρόγραμμα γραμμένο σε γλώσσα υψηλού επιπέδου και παράγει ένα
ισοδύναμο πρόγραμμα σε γλώσσα μηχανής
299. Ο συνδέτης -φορτωτής συνδέει το αντικείμενο πρόγραμμα με τμήματα προγραμμάτων που βρίσκονται στις
βιβλιοθήκες.
301. Καμμία σύγχρονη γλωσσα προγραμματισμού δεν υποστηρίζει την εντολή GOTO.
303. Στο δομημένο προγραμματισμό κάθε πρόγραμμα έχει μόνο μία είσοδο και μία έξοδο.
305. Το εκτελέσιμο πρόγραμμα δε μπορεί να δημιουργηθεί αν το πηγαίο πρόγραμμα περιέχει συντακτικά λάθη.
306. Το τυπικό και η σημασιολογία μιας γλώσσας καθορίζουν την γραμματική της.
Κεφάλαιο 7
307. Οι δεσμευμένες λέξεις της ΓΛΩΣΣΑΣ δεν μπορούν να χρησιμοποιηθούν ως ονόματα δεδομένων σε ένα πρόγραμμα.
308. Οι χαρακτήρες ! και & αποτελούν μέρος του αλφαβήτου της ΓΛΩΣΣΑΣ
309. Η δήλωση του τύπου μιας μεταβλητής γίνεται υποχρεωτικά πριν την λέξη αρχή
310. Σε μια εντολή εκχώρησης η μεταβλητή και η έκφραση που εκχωρείται σε αυτή πρέπει να είναι του ιδίου τύπου
312. Το τμήμα δηλώσεων ενός προγράμματος σε ΓΛΩΣΣΑ προηγείται του τμήματος εντολών
313. Στην αριθμητική έκφραση Α+Β*Γ εκτελείται πρώτα η πρόσθεση και μετά ο πολλαπλασιασμός.
314. Δεσμευμένες λέξεις καλούνται οι λέξεις που έχουν δεσμευτεί για τα ονόματα των μεταβλητών
315. Κατά την εκτέλεση του προγράμματος η εντολή ∆ΙΑΒΑΣΕ διακόπτει την εκτέλεσή του και περιμένει την εισαγωγή
τιμών από το πληκτρολόγιο.
317. Η πράξη της διαίρεσης ( / ) έχει μεγαλύτερη προτεραιότητα από αυτή του πολλαπλασιασμού ( * )
σελίδα 59
318. Στο ΠΙΝΑΚΑΣ[j, i] το j αντιστοιχεί στη γραμμή του πίνακα και το i στη στήλη
320. Το σύμβολο = μπορεί να χρησιμοποιηθεί με διπλό ρόλο μέσα στο πρόγραμμα της ΓΛΩΣΣΑΣ
321. Ο τελεστής MOD χρησιμοποιείται για τον υπολογισμό του πηλίκου μίας διαίρεσης ακεραίων αριθμών.
324. Το αλφάβητο της γλώσσας αποτελείται μόνο από γράμματα ελληνικά - λατινικά και αριθμούς
325. Η τιμή μιας μεταβλητής είναι η τιμή που βρίσκεται στην αντίστοιχη θέση της μνήμης που έχει δεσμευτεί για την
μεταβλητή αυτή
328. Μπορούμε να αρχικοποιούμε μεταβλητές στο τμήμα δηλώσεων ενός προγράμματος σε ΓΛΩΣΣΑ
330. Διαφορετικός αριθμός αριστερών από δεξιές παρενθέσεις σε μια αριθμητική έκφραση είναι ένα συνηθισμένο
συντακτικό λάθος
331. Η δήλωση των μεταβλητών που χρησιμοποιούνται μέσα σε ένα πρόγραμμα είναι υποχρεωτική
334. Η χρήση της εντολής εξόδου είναι για να εμφανίζει κυρίως μηνύματα και τιμές μεταβλητών
338. Η τιμή μιας μεταβλητής μπορεί να αλλάζει αλλά ο τύπος της παραμένει πάντα σταθερός
341. Οι δηλώσεις των σταθερών προηγούνται πάντοτε των δηλώσεων των μεταβλητών
343. Μια μεταβλητή παριστάνει μια ποσότητα που η τιμή της μπορεί να μεταβάλλεται
344. Αν Α = 10 και Β = 20 τότε η έκφραση (Α > 8 ΚΑΙ Β < 20) Ή (Α > 10 Ή Β = 10) είναι αληθής
345. Οι μεταβλητές που χρησιμοποιούνται σε ένα πρόγραμμα αντιστοιχούνται από τον προγραμματιστή σε
συγκεκριμένες θέσεις μνήμης του υπολογιστή
σελίδα 60
346. Το όνομα μιας μεταβλητής επιτρέπεται να περιέχει λατινικούς χαρακτήρες
347. Η λέξη ΤΕΛΟΣ είναι επιτρεπτή για την ονομασία μιας μεταβλητής
349. Τα ονόματα των μεταβλητών δεν περιέχουν κενά ή άλλα σύμβολα (π.χ. $, @, #)
350. Τετραγωνικός πίνακας καλείται ο δισδιάστατος πίνακας που έχει ίσο αριθμό γραμμών και στηλών.
351. Οι σταθερές είναι προκαθορισμένες τιμές που δεν μεταβάλλονται κατά την εκτέλεση ενός προγράμματος
352. Όταν αριθμητικοί και συγκριτικοί τελεστές συνδυάζονται σε μία έκφραση, οι αριθμητικές πράξεις εκτελούνται
πρώτες.
353. Αν μια μεταβλητή παίρνει την τιμή μηδέν τότε μπορούμε να την δηλώσουμε μόνο ακέραια
354. Η χρήση σταθερών σε ένα πρόγραμμα το κάνει πιο κατανοητό και διορθώνεται πιο εύκολα
+ - * / ^ mod div"
356. Η πρώτη εκτελέσιμη εντολή ενός προγράμματος βρίσκεται μετά την λέξη ΑΡΧΗ
357. Ο τύπος μιας μεταβλητής μπορεί να αλλάξει κατά την εκτέλεση ενός προγράμματος.
358. Οι διάφορες γλώσσες προγραμματισμού χρησιμοποιούν όλες το ίδιο σύμβολο για την εντολή εκχώρησης
359. Α_Μ(Χ) είναι η συνάρτηση της ΓΛΩΣΣΑΣ που υπολογίζει την απόλυτη τιμή του Χ.
361. Τα ψηφία από 0 έως 9 αποτελούν μέρος του αλφαβήτου της ΓΛΩΣΣΑΣ
362. Οι αριθμητικοί τελεστές /, *, div και mod έχουν την ίδια προτεραιότητα στην ιεραρχία των πράξεων
363. Ο χαρακτήρας & χρησιμοποιείται για εντολές που δεν χωράνε να γραφούν σε μία γραμμή
365. Μια έκφραση μπορεί να περιέχει μεταβλητές, σταθερές, τελεστές και παρενθέσεις
366. Κατά την εκτέλεση ενός προγράμματος μπορεί να αλλάζει η τιμή και ο τύπος μιας μεταβλητής.
367. Σε μια έκφραση ο αριθμός των αριστερών και δεξιών παρενθέσεων μπορεί να διαφέρει
370. Μια μεταβλητή μπορεί να αλλάζει τύπο δεδομένων κατά τη διάρκεια εκτέλεσης ενός αλγορίθμου
372. Τα αποτελέσματα των ακόλουθων πράξεων είναι σωστά : 5 div 2 = 2 και 5 mod 2 = 0.5
373. Οι εκτελέσιμες εντολές ενός προγράμματος περιέχονται υποχρεωτικά ανάμεσα στις λέξεις αρχή και
τελος_προγραμματος
σελίδα 61
374. Για τη δήλωση της σταθεράς π, γράφουμε ΣΤΑΘΕΡΕΣ: π=3.14.
376. Ενώ η τιμή μίας μεταβλητής μπορεί να αλλάζει κατά την εκτέλεση του προγράμματος, αυτό που μένει υποχρεωτικά
αναλλοίωτο είναι ο τύπος της.
379. Μία μεταβλητή μπορεί να αλλάζει τύπο δεδομένων κατά τη διάρκεια εκτέλεσης ενός αλγόριθμου.
380. Στη δομή του προγράμματος το τμήμα δήλωσης των σταθερών ακολουθεί το τμήμα δήλωσης των μεταβλητών.
Κεφάλαιο 8
382. Όταν ένας βρόχος είναι εμφωλευμένος σε άλλο, ο βρόχος που ξεκινάει τελευταίος πρέπει να ολοκληρώνεται
πρώτος.
383. Οι τύποι των μεταβλητών που υποστηρίζει η ΓΛΩΣΣΑ είναι μόνο ΠΡΑΓΜΑΤΙΚΕΣ και ΑΚΕΡΑΙΕΣ.
384. Σε μια λογική έκφραση, οι συγκριτικοί τελεστές έχουν χαμηλότερη ιεραρχία από τους λογικούς τελεστές.
387. Σε μια συνθήκη μπορεί να συγκρίνονται δύο αλφαριθμητικές ή δύο λογικές τιμές
389. Οι εντολές που βρίσκονται σε μία επανάληψη ΓΙΑ εκτελούνται τουλάχιστον μία φορά
390. Η σύγκριση λογικών δεδομένων έχει έννοια μόνο στην περίπτωση του ίσου (=) και του διάφορου (<>).
391. Κάθε τμήμα προγράμματος που έχει την εντολή ΑΛΛΙΩΣ_ΑΝ μπορεί να γραφεί και με εντολές ΑΝ
392. Το τμήμα εντολών που επαναλαμβάνεται σε μια εντολή επανάληψης καλείται βρόχος
393. Αν Α = 10 και Β = 20 τότε η έκφραση ΟΧΙ (Α > 10) ΚΑΙ ΟΧΙ (Β < 3) είναι αληθής
394. Η μεταβλητή της συνθήκης μιας εντολής επανάληψης πρέπει να μεταβάλλεται στο σώμα της επανάληψης
395. Σε μία εντολή εκχώρησης του αποτελέσματος μίας έκφρασης σε μία μεταβλητή, η μεταβλητή και η έκφραση πρέπει
να είναι του ίδιου τύπου.
396. Στην επαναληπτική δομή Για … από … μέχρι …με_βήμα οι τιμές από, μέχρι και με_βήμα δεν είναι απαραίτητο να
είναι ακέραιες.
397. Όταν μια δομή ΓΙΑ είναι εμφωλευμένη σε μια άλλη δομή ΓΙΑ, τότε μπορούμε αν το επιθυμούμε για ευκολία να
χρησιμοποιήσουμε την ίδια μεταβλητή για μετρητή
399. Αν το Α έχει την τιμή 5 και το Β την τιμή 6, τότε η λογική έκφραση Α>5 Η Α<3 ΚΑΙ Β> 5 είναι ψευδής
σελίδα 62
400. Όταν μια δομή επανάληψης είναι εμφωλευμένη σε μια άλλη, τότε για κάθε εξωτερικό βρόχο πρέπει να
ολοκληρώνονται όλες οι επαναλήψεις του εσωτερικού
401. Η είσοδος σε κάθε βρόχο επανάληψης υποχρεωτικά γίνεται από την αρχή του.
402. Η εντολή επανάληψης ΓΙΑ … ΑΠΟ … ΜΕΧΡΙ … ΜΕ_ΒΗΜΑ μπορεί να χρησιμοποιηθεί, όταν έχουμε άγνωστο αριθμό
επαναλήψεων.
403. Όταν είναι γνωστός ο αριθμός των επαναλήψεων, κάθε δομή επανάληψης (ΓΙΑ, ΟΣΟ, ΜΕΧΡΙΣ_ΟΤΟΥ) είναι
επιτρεπτή
405. Η συνθήκη που ελέγχεται σε μια δομή επιλογής μπορεί να πάρει περισσότερες από δύο διαφορετικές τιμές.
406. Σε μια εντολή εκχώρησης δεν μπορεί να χρησιμοποιηθεί η ίδια μεταβλητή τόσο στο αριστερό όσο και στο δεξιό
μέλος της.
407. Το βήμα σε μία εντολή ΓΙΑ δεν είναι υποχρεωτικά ένας ακέραιος αριθμός
408. Οι εντολές που βρίσκονται σε μια επανάληψη ΟΣΟ, εκτελούνται τουλάχιστον μία φορά.
412. Οι εντολές που βρίσκονται σε μια δομή ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ ..... ΜΕΧΡΙΣ_ΟΤΟΥ εκτελούνται τουλάχιστον μια
φορά.
413. Στην επαναληπτική δομή Όσο … Επανάλαβε δεν γνωρίζουμε εκ των προτέρων το πλήθος των επαναλήψεων.
415. Η ΓΛΩΣΣΑ υποστηρίζει τρεις εντολές επανάληψης, την εντολή ΟΣΟ, την εντολή ΜΕΧΡΙΣ_ΟΤΟΥ και την εντολή ΓΙΑ.
416. Στην εντολή ΓΙΑ ο βρόχος επαναλαμβάνεται για προκαθορισμένο αριθμό επαναλήψεων.
417. Η ομάδα εντολών που περιέχεται σε μια δομή επιλογής μπορεί να μην εκτελεστεί.
418. Ενώ η τιμή μίας μεταβλητής μπορεί να αλλάζει κατά την εκτέλεση του προγράμματος, αυτό που μένει υποχρεωτικά
αναλλοίωτο είναι ο τύπος της.
419. Η λογική πράξη ΚΑΙ μεταξύ δύο προτάσεων είναι ψευδής όταν οποιαδήποτε από τις δύο προτάσεις είναι ψευδής.
420. Κάθε βρόχος που υλοποιείται με την εντολή ΟΣΟ … ΕΠΑΝΑΛΑΒΕ μπορεί να γραφεί και με χρήση της εντολής ΓΙΑ …
ΑΠΟ … ΜΕΧΡΙ.
421. Δε μπορεί να χρησιμοποιηθεί η ίδια μεταβλητή ως μετρητής 2 ή περισσοτέρων βρόχων που ο ένας βρίσκεται μέσα
στον άλλο.
σελίδα 63
425. Κάθε βρόχος ΓΙΑ μπορεί να μετατραπεί σε ΟΣΟ.
428. Μία εμφωλευμένη επιλογή μπορεί να υλοποιηθεί με διαδοχικές δομές απλής επιλογής.
430. Ο έλεγχος εγκυρότητας δεομένων πραγματοποιείται με τις δομές ΟΣΟ και ΜΕΧΡΙΣ_ ΟΤΟΥ.
431. Πολύ συχνά εντολές που έχουν γραφτεί με εμφωλευμένα ΑΝ μπορούν να γραφούν πιο απλά χρησιμοποιώντας
σύνθετες εκφράσεις.
434. Στη δομή επανάληψης ΓΙΑ δεν είναι δυνατόν η αρχική τιμή να είναι μεγαλύτερη από την τελική τιμή.
435. Στη δομή επανάληψης ΓΙΑ οι τιμές ΑΠΟ, ΜΕΧΡΙ, ΜΕ_ ΒΗΜΑ δεν είναι υποχρεωτικό να είναι ακέραιες.
437. Στη δομή επιλογής είναι απαραίτητη η χρήση της εντολής ΤΕΛΟΣ_ ΑΝ.
438. Στη δομή επιλογής μπορεί μία ή περισσότερες εντολές να μην εκτελεστούν.
439. Στη δομή πολλαπλής επιλογής προσπαθούμε να καλύψουμε πολλές εναλλακτικές περιπτώσεις με τη χρήση μίας
δομής.
Κεφάλαιο 9
440. Τα ονόματα και το πλήθος των εισιτηρίων 10 θεάτρων μπορούν να αποθηκευτούν σε ένα δισδιάστατο πίνακα
441. Η ταξινόμηση των στοιχείων ενός πίνακα πρέπει να γίνεται πάντα πριν από την αναζήτηση
443. Όλοι οι πίνακες δηλώνονται στο τμήμα δήλωσης μεταβλητών του προγράμματος
444. Ένα πρόγραμμα ενδέχεται να δηλώνει έναν πίνακα με μέγεθος μεγαλύτερο από τις θέσεις που πραγματικά
χρειάζεται
445. Η χρήση πινάκων αυξάνει την απαιτούμενη μνήμη για την εκτέλεση του προγράμματος
446. Ο τρόπος κλήσης των διαδικασιών και των συναρτήσεων είναι ίδιος, ενώ ο τρόπος σύνταξής τους είναι
διαφορετικός.
447. Τα στοιχεία ενός πίνακα μπορούν να αποτελούνται από δεδομένα διαφορετικού τύπου.
448. Ένα πρόγραμμα της ΓΛΩΣΣΑΣ μπορεί να τροποποιεί το μέγεθος ενός πίνακα στο τμήμα εντολών
450. Ο πίνακας που χρησιμοποιεί ένα μόνο δείκτη για την αναφορά των στοιχείων του ονομάζεται μονοδιάστατoς.
σελίδα 64
451. Στο τμήμα δηλώσεων ενός προγράμματος σε ΓΛΩΣΣΑ δηλώνουμε τα ονόματα των πινάκων αλλά όχι και το μέγεθός
τους
452. Για την αναζήτηση σε ταξινομημένους πίνακες προτιμάται η δυαδική αναζήτηση λόγω της ταχύτητάς της
453. Σκοπός της συγχώνευσης δύο ταξινομημένων πινάκων είναι η δημιουργία ενός τρίτου ταξινομημένου πίνακα, που
περιέχει τα στοιχεία των δύο πινάκων.
454. Αν ένα σύνολο τιμών που εισάγονται στο πρόγραμμα δεν απαιτεί περαιτέρω επεξεργασία, τότε η χρήση πίνακα
δεν είναι υποχρεωτική
455. Για την προσπέλαση του στοιχείου ενός πίνακα χρειάζονται τόσοι δείκτες όσες και οι διαστάσεις του
456. Για την εκτύπωση όλων των περιεχομένων ενός πίνακα απαιτείται η χρήση δομών επανάληψης
457. Σε ένα μεγάλο και σύνθετο πρόγραμμα, η άσκοπη χρήση μεγάλων πινάκων μπορεί να οδηγήσει ακόμη και σε
αδυναμία εκτέλεσης του προγράμματος.
458. Ένα πρόγραμμα σε ΓΛΩΣΣΑ δεσμεύει τόσες συνεχόμενες θέσεις μνήμης για έναν πίνακα όσες και οι θέσεις που
εμφανίζονται στο τμήμα δηλώσεων
459. Ο πίνακας είναι μια στατική δομή δεδομένων που υλοποιείται με δυναμική παραχώρηση της μνήμης
460. Ο πίνακας είναι δομή δεδομένων που αποθηκεύει τις τιμές της σε συνεχόμενες θέσεις της μνήμης
462. Η χρήση του πίνακα δεν είναι πάντα απαραίτητη όταν χειριζόμαστε ένα πλήθος τιμών
463. Η συγχώνευση δυο πινάκων έχει ως στόχο να συνενώσει δυο πίνακες δημιουργώντας έναν νέο
464. Αν ένας πίνακας έχει αλφαριθμητικά στοιχεία, ο μέσος όρος είναι το μεσαίο στοιχείο του πίνακα.
465. Για τον υπολογισμό του μέσου όρου 100 αριθμών, πρέπει να χρησιμοποιηθεί πίνακας.
466. Ένας αλγόριθμος επεξεργάζεται τα στοιχεία ενός πίνακα όλα μαζί και όχι ένα προς ένα.
467. Η είσοδος νέων κόμβων σε ένα πίνακα είναι από τις τυπικές επεξεργασίες των πινάκων.
468. Κατά τη δήλωση των διαστάσεων ενός πίνακα πρέπει να δηλώνεται η μέγιστη δυνατή τιμή θέσεων που μπορούν
να χρησιμοποιηθούν στο πρόγραμμα.
469. Με μία επαναληπτική δομή μπορεί να γίνει προσπέλαση ένα προς ένα, σε όλα τα στοιχεία ενός μονοδιάστατου
πίνακα
470. Μέσα στις αγκύλες που αναφέρονται στη θέση ενός πίνακα μπορεί να υπάρχει οποιαδήποτε ακέραια έκφραση.
471. Ο υπολογιστής μπορεί να επεξεργαστεί τα στοιχεία ενός πίνακα που έχει το πολύ 3 διαστάσεις.
472. Οι δισδιάστατοι πίνακες μπορούν να θεωρηθούν σαν ένα σύνολο πινάκων μίας διάστασης με το ίδιο πλήθος και
τύπο στοιχείων.
473. Σε ένα μονοδιάστατο πίνακα που περιέχει αριθμούς η μέγιστη τιμή μπορεί να εντοπίζεται σε περισσότερα από
ένα κελιά.
σελίδα 65
475. Στην αναφορά Α[x,y] το x αντιστοιχεί στη στήλη και το y στη γραμμή.
Κεφάλαιο 10
476. Η συνάρτηση έχει ως έξοδο μια τιμή που εκχωρείται στο όνομά της.
482. Όταν καλείται ένα υποπρόγραμμα, η διεύθυνση επιστροφής του αποθηκεύεται σε μία ουρά.
484. Κατά την κλήση της διαδικασίας γίνεται πέρασμα τιμών μέσω της λίστας παραμέτρων.
485. Αυτό που καθορίζει την περιοχή που ισχύουν οι μεταβλητές και οι σταθερές είναι η εμβέλεια των μεταβλητών της
γλώσσας.
486. Ένα από τα συστατικά του Δομημένου Προγραμματισμού είναι και η τεχνική του Τμηματικού Προγραμματισμού.
489. Μερικές γλωσσες προγραμματισμού ονομάζουν τις τυπικές παραμέτρους και ορίσματα
490. Η λίστα των τυπικών παραμέτρων καθορίζει τις παραμέτρους στην δήλωση ενός υποπρογράμματος.
492. Εμβέλεια (scope) μεταβλητών λέγεται το τμήμα του προγράμματος που ισχύουν οι μεταβλητές
494. Οι τοπικές μεταβλητές ισχύουν σε ολόκληρο το πρόγραμμα και στα υποπρογράμματα που καλεί.
496. Η κλήση των διαδικασιών γίνεται με απλή αναφορά του ονόματός τους.
499. Η συνάρτηση είναι τύπος υποπρογράμματος που μπορεί να εκτελεί όλες τις λειτουργίες ενός προγράμματος.
502. Ένα από τα πλεονεκτήματα της περιορισμένης εμβέλειας είναι η απόλυτη αυτονομία των υποπρογραμμάτων.
σελίδα 66
503. Ο Τμηματικός προγραμματισμός επεκτείνει τις γλώσσες προγραμματισμού.
504. Ένα υποπρόγραμμα μπορεί να καλείται από ένα άλλο υποπρόγραμμα ή από το κύριο πρόγραμμα.
505. Μια συνάρτηση υπολογίζει και επιστρέφει παραπάνω από μία τιμές με το όνομά της.
508. Όλες οι μεταβλητές είναι γνωστές μόνο μέσα στο τμήμα προγράμματος που δηλώνονται.
510. Όταν ένα πρόγραμμα καλεί μια διαδικασία τότε σταματά και εκτελούνται οι εντολές της διαδικασίας
511. Για να επικοινωνήσουν δύο υποπρογράμματα, πρέπει να είναι και τα δύο διαδικασίες ή συναρτήσεις.
512. Μία συνάρτηση είναι δυνατό να επιστρέφει μόνον ακέραιες ή πραγματικές τιμές.
513. Μια διαδικασία και μια συνάρτηση μπορούν να εκτελούν τις ίδιες ακριβώς λειτουργίες.
514. Μια πραγματική παράμετρος και η αντίστοιχη τυπική της επιτρέπεται να έχουν το ίδιο όνομα.
515. Κάθε υποπρόγραμμα ενεργοποιείται καλούμενο από ένα άλλο υποπρόγραμμα ή το αρχικό πρόγραμμα.
517. Όταν ολοκληρώνεται ένα υποπρόγραμμα, η διεύθυνση επιστροφής του απωθείται από μία στοίβα.
518. Οι τοπικές μεταβλητές έχουν ισχύ μόνο στο τμήμα προγράμματος που δηλώθηκαν και μόνο σε αυτό.
520. Το κυρίως πρόγραμμα πρέπει να περιλαμβάνει μεγαλύτερο αριθμό εντολών από ένα υποπρόγραμμα που καλεί.
521. Μια συνάρτηση δεν μπορεί να καλεί μια διαδικασία, ενώ μια διαδικασία μπορεί να καλεί μια συνάρτηση.
523. Η πραγματική παράμετρος και η αντίστοιχή της τυπική δεν πρέπει να είναι του ίδιου τύπου.
527. Όταν ένα υποπρόγραμμα καλείται από διαφορετικά σημεία του προγράμματος, οι πραγματικές παράμετροι
πρέπει να είναι οι ίδιες.
529. Όταν ένα υποπρόγραμμα καλείται από το κύριο πρόγραμμα, η διεύθυνση επιστροφής αποθηκεύεται από το
μεταφραστή σε μια ουρά.
531. Στην μερικώς περιορισμένη εμβέλεια άλλες μεταβλητές είναι καθολικές και άλλες είναι τοπικές.
σελίδα 67
532. Ο τμηματικός προγραμματισμός εξασφαλίζει τη δημιουργία προγραμμάτων χωρίς λάθη.
533. Οι μεταβλητές στη λίστα παραμέτρων μιας διαδικασίας, δεν πρέπει να έχουν το ίδιο όνομα με τις μεταβλητές που
βρίσκονται στο τμήμα κλήσης του κυρίως προγράμματος.
534. Η διαδικασία καλείται απλώς με το όνομά της ενώ η συνάρτηση καλείται μέσω της έντολής κάλεσε
535. Ένα υποπρόγραμμα μπορεί να έχει εκτός από τυπικές παραμέτρους και άλλες τοπικές μεταβλητές.
536. Η λίστα των πραγματικών παραμέτρων καθορίζει τις παραμέτρους στην κλήση του υποπρογράμματος.
538. Ο αριθμός των πραγματικών και τυπικών παραμέτρων πρέπει να είναι ο ίδιος.
540. Κατά την κλήση ενός υποπρογράμματος η πραγματική παράμετρος και η αντίστοιχη τυπική της είναι δυνατόν να
έχουν το ίδιο όνομα.
541. Αν μας δοθεί μία διαδικασία μπορούμε πάντοτε να την μετατρέψουμε σε συνάρτηση.
542. Αν μας δοθεί μία συνάρτηση μπορούμε πάντοτε να την μετατρέψουμε σε διαδικασία.
543. Για την εύρεση του μέγιστου 3 ακεραίων αριθμών είναι προτιμότερο να χρησιμοποιηθεί διαδικασία.
544. Για τον υπολογισμό των 2 μικρότερων στοιχείων ενός πίνακα δε μπορεί να χρησιμοποιηθεί συνάρτηση
545. Ένα υποπρόγραμμα γράφεται ξεχωριστά και επιτελεί ένα αυτόνομο έργο από το υπόλοιπο πρόγραμμα
549. Η είσοδος σε ένα υποπρόγραμμα γίνεται πάντοτε από την αρχή του.
550. Η λίστα παραμέτρων σε μία συνάρτηση είναι μία λίστα μεταβλητών που οι τιμές τους μεταβιβάζονται στη
συνάρτηση κατά την κλήσης της.
552. Μία συνάρτηση δέχεται μία τιμή και επιστρέφει επίσης μία τιμή με το όνομα της.
554. Μία συνάρτηση μπορεί να επιτελέσει όλες τις λειτουργίες που επιτελεί και ένα πρόγραμμα.
556. Μία συνάρτηση μπορεί να χρησιμοποιηθεί για να ταξινομήσει και να επιστρέψει ένα ταξινομημένο πίνακα.
557. Μία συνάρτηση υπολογίζει και επιστρέφει περισσότερες από μία τιμές με το όνομά της.
558. Ο τρόπος κλήσης των διαδικασιών και των συνάρτησεων είναι ίδιος ενώ ο τρόπος σύνταξής τους είναι
διαφορετικός.
σελίδα 68
560. Οι πραγματικές παράμετροι ονομάζονται και ορίσματα από μερικές γλώσσες προγραμματισμού.
563. Στις εντολές του σώματος της συνάρτησης πρέπει υποχρεωτικά να υπάρχει μία εντολή εκχώρησης τιμής στο όνομα
της συνάρτησης.
564. Τα υποπρογράμματα καλούνται με τη σειρά που έχουν γραφτεί κάτω από το κυρίως πρόγραμμα.
567. Υπάρχει περίπτωση μία τυπική παράμετρος να είναι διαφορετικού τύπου από μία πραγματική παράμετρος που
δηλώνεται με το ίδιο όνομα.
568. Υπάρχει περίπτωση ο αριθμός των τυπικών και των αντίστοιχων πραγματικών παραμέτρων να είναι διαφορετικός.
σελίδα 69
ΕΡΩΤΗΣΕΙΣ ΑΝΑΠΤΥΞΗΣ
ΚΕΦΑΛΑΙΟ 2:
Τι είναι αλγόριθμος;
Που χρησιμοποιείται η ακολουθιακή δομή εντολών; Δώστε ένα παράδειγμα από την καθημερινή
ζωή.
Τι καλείται σταθερά;
Ανάλογα με το είδος της τιμής που μπορούν να λάβουν, να κατατάξετε τις μεταβλητές στη
ψευδογλώσσα.
σελίδα 70
Ποιοι είναι οι αριθμητικοί τελεστές της ψευδογλώσσας;
Ποια είναι η γενική μορφή της εντολής εκχώρησης τιμής στη ψευδογλώσσα;
Ποιες εντολές εξόδου της ψευδογλώσσας γνωρίζετε; Δώστε την σύνταξη τους.
Δώστε τη σύνταξη και τη λειτουργία της εντολής απλής επιλογής στην ψευδογλώσσα.
Τι καλείται βρόχος;
Δώστε τη σύνταξη της εντολής Για… από… μέχρι ... με_βήμα… στην ψευδογλώσσα
Για ποιο λόγο χρησιμοποιείται η μέθοδος του «Πολλαπλασιασμού αλά Ρωσικά» πρακτικά στους
υπολογιστές;
Δώστε σε ψευδογλώσσα τον αλγόριθμο του «Πολλαπλασιασμού αλά Ρωσικά», δεχόμενοι ότι οι
τιμές των δύο θετικών ακεραίων ΜΙ, Μ2 υπάρχουν ήδη, με στόχο τον υπολογισμό του γινομένου
τους.
ΚΕΦΑΛΑΙΟ 3 :
σελίδα 71
Δώστε τον ορισμό της Δομής Δεδομένων.
Αναφέρατε ονομαστικά τις βασικές λειτουργίες( ή αλλιώς πράξεις) επί των δομών δεδομένων.
Διατυπώστε υπό τη μορφή μαθηματικής εξίσωσης την εξάρτηση μεταξύ της Δομής Δεδομένων και
Αλγορίθμων που επεξεργάζεται τη δομή.
Αναφέρατε ονομαστικά τις δύο μεγάλες κατηγορίες στις οποίες διακρίνονται οι δομές δεδομένων.
Να αναφέρετε τους παράγοντες που λαμβάνονται υπόψη κατά την αναζήτηση σε αρχεία μιας
εγγραφής με βάση την τιμή του πρωτεύοντος ή του δευτερεύοντος κλειδιού.
ΚΕΦΑΛΑΙΟ 6
σελίδα 72
Τι χαρακτηρίζουμε ως φυσικές και τεχνητές γλώσσες;
Περιγράψτε μια βασική διαφορά μεταξύ των φυσικών και των τεχνητών γλωσσών;
σελίδα 73
Πως ανιχνεύονται τα λάθη ενός προγράμματος;
ΚΕΦΑΛΑΙΟ 7
Τι είναι οι σταθερές σε ένα πρόγραμμα σε ΓΛΩΣΣΑ και πως δηλώνονται; Δώστε παραδείγματα
δήλωσης και πως λειτουργεί αυτή η δήλωση στο πρόγραμμα; Ποιο είναι το πλεονέκτημα από τη
χρήση ονομάτων σταθερών;
Δώστε τους αριθμητικούς τελεστές της ΓΛΩΣΣΑΣ και την αντίστοιχη πράξη που καλύπτουν.
Πως συντάσσεται μια αριθμητική έκφραση; Τι υλοποιεί μια αριθμητική έκφραση. Τι παριστάνει κάθε
αριθμητική έκφραση;
Ποια είναι η ιεραρχία μεταξύ των αριθμητικών πράξεων; Τι συμβαίνει όταν η ιεραρχία των πράξεων
είναι ίδια; Πως θα προηγηθεί η εκτέλεση μιας πράξης χαμηλότερης ιεραρχίας;
Ποια εντολή υποστηρίζει η ΓΛΩΣΣΑ για την είσοδο δεδομένων από το πληκτρολόγιο; Δώστε τη
σύνταξη της, παραδείγματα και τη λειτουργία της.
σελίδα 74
Ποια εντολή υποστηρίζει η ΓΛΩΣΣΑ για την εμφάνιση αποτελεσμάτων στην οθόνη; Δώστε τη σύνταξη
της, παραδείγματα και τη λειτουργία της.
ΚΕΦΑΛΑΙΟ 8
Τι χρησιμοποιείται για τη σύνταξη μιας λογικής έκφρασης ή συνθήκης; Πως λειτουργεί μια απλή
λογική έκφραση και ποια είναι η τιμή της;
Δώστε τους συγκριτικούς τελεστές που χρησιμοποιεί η «ΓΛΩΣΣΑ». Επίσης δώστε ένα παράδειγμα για
καθένα από αυτούς.
Δώστε τη σύνταξη, παράδειγμα και τη λειτουργία της εντολής ΑΝ…ΤΟΤΕ στη «ΓΛΩΣΣΑ». Απάντηση:
Δώστε τη σύνταξη, παράδειγμα και τη λειτουργία της εντολής ΑΝ…ΤΟΤΕ…ΑΛΛΙΩΣ στη «ΓΛΩΣΣΑ»
Δώστε τη σύνταξη, παράδειγμα και τη λειτουργία της εντολής ΑΝ…ΤΟΤΕ…ΑΛΛΙΩΣ_ΑΝ στη «ΓΛΩΣΣΑ»
Ποιο είναι ένα συχνό λάθος που υπάρχει στα προγράμματα; Τι πρόβλημα μπορεί να δημιουργήσει;
Τι πρέπει να υπάρχει υποχρεωτικά μέσα στις εντολές που επαναλαμβάνονται σε μια εντολή
Δώστε τη σύνταξη, παράδειγμα και τη λειτουργία της εντολής ΜΕΧΡΙΣ_ΟΤΟΥ στη «ΓΛΩΣΣΑ»
Σε ποιες περιπτώσεις συνιστάται η χρήση της ΜΕΧΡΙΣ_ΟΤΟΥ ώστε να οδηγήσει σε απλούστερα και
ευκολότερα προγράμματα;
σελίδα 75
Δώστε τη σύνταξη, παράδειγμα και τη λειτουργία της εντολής ΓΙΑ στη «ΓΛΩΣΣΑ»
Ποιοι κανόνες πρέπει να ακολουθούνται αυστηρά στην περίπτωση των εμφωλευμένων βρόχων σε
ένα πρόγραμμα;
ΚΕΦΑΛΑΙΟ 9
Πως γίνεται η ανάγνωση, η επεξεργασία και η εκτύπωση των στοιχείων ενός πίνακα;
Δώστε ονομαστικά τα δύο (2) μειονεκτήματα από τη χρήση πινάκων σε ένα πρόγραμμα.
Τι εννοούμε όταν λέμε ότι οι πίνακες περιορίζουν τις δυνατότητες του προγράμματος;
Πως γίνεται η ανάγνωση, η επεξεργασία και η εκτύπωση των στοιχείων ενός πολυδιάστατου πίνακα;
Ποιοι είναι οι πιο διαδεδομένοι αλγόριθμοι αναζήτησης; Ποιες είναι οι διαφορές τους;
ΚΕΦΑΛΑΙΟ 10
σελίδα 76
Δώστε τον ορισμό της Συνάρτησης.
Ποια η διαφορά μεταξύ της λίστας των πραγματικών παραμέτρων και της λίστας των τυπικών
παραμέτρων (ορίσματα);
Γιατί τα ονόματα των τυπικών και των πραγματικών παραμέτρων μπορεί να είναι οποιαδήποτε;
σελίδα 77