You are on page 1of 77

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον

Σημειώσεις Θεωρίας

Ερωτήσεις Σωστού λάθους

Ερωτήσεις Ανάπτυξης

σελίδα 1
Κεφαλαιο 2: Βασικές έννοιες αλγορίθμων 8

1. Αλγόριθμος 8

2. Απαραίτητα κριτήρια αλγορίθμων 8

3. Περιγραφή και αναπαράσταση αλγορίθμων 8

4. Διάγραμμα ροής 9

5. Στοιχεία αλγορίθμου 9

6. Τελεσταίοι (operands) 9

7. Τύποι (ΚΑΤΗΓΟΡΙΕΣ) τελεσταίων 10

8. Τελεστές (operators) 10

9. Εκφράσεις (expressions) 10

10. Εντολές 11

11. Δομή ακολουθίας 11

12. Δομή επιλογής 12

13. Δομή επανάληψης 12

14. Ολίσθηση 12

15. Πολλαπλασιασμός αλά ρωσικά 12

16. Γιατί ο υπολογιστής εκτελεί τον πολλαπλασιασμό αλά ρωσικά; 14

17. Δομή ενός αλγόριθμου σε ψευδογλώσσα 14

Κεφαλαιο 3: Δομές δεδομένων 15

18. Δομή δεδομένων 15

19. Βασικές λειτουργίες (πράξεις) των δομών δεδομένων 15

20. Γιατί υπάρχουν διαφορετικές δομές; 15

21. Εξάρτηση δομής δεδομένων και αλγορίθμου 15

σελίδα 2
22. Κατηγορίες δομών δεδομένων 16

23. Στατικές δομές 16

24. Δυναμικές δομές 16

25. Πίνακες 16

26. Αναζήτηση 17

27. Σειριακή (sequential) – γραμμική (linear) αναζήτηση 17

28. Ταξινόμηση 18

29. Ταξινόμηση ευθείας ανταλλαγής-φυσαλίδας 18

30. Άλλοι αλγόριθμοι ταξινόμησης 19

31. Δομές Δεδομένων δευτερεύουσας μνήμης 19

32. Τι είναι τα αρχεία και από τι αποτελούνται 19

Κεφαλαιο 6: Εισαγωγή στον προγραμματισμό 21

33. Από τι προσδιορίζεται μια γλώσσα 21

34. Διαφορές φυσικών – τεχνητών γλωσσών 22

35. Τεχνική της ιεραρχικής σχεδίασης προγράμματος. 22

36. Τι περιλαμβάνει η τεχνική της ιεραρχικής σχεδίασης; 22

37. Τμηματικός προγραμματισμός 22

38. Δομημένος προγραμματισμός 22

39. Ποιές δομές χρησιμοποιεί ο δομημένος προγραμματισμός 23

40. Γιατί η εντολή GOTO κρίνεται ακατάλληλη 23

41. Πλεονεκτήματα δομημένου προγραμματισμού 23

42. Πηγαίο ή αρχικό πρόγραμμα (source) 23

43. Λάθη στο πηγαίο πρόγραμμα 23

44. Τι είναι ο συντάκτης 24

45. Μετατροπή προγραμμάτων σε γλώσσα μηχανής 24

σελίδα 3
46. Μεταγλωττιστής 24

47. Συνδέτης φορτωτής 25

48. Διερμηνευτής 25

49. Ομοιότητες διερμηνευτή-μεταγλωττιστή 25

50. Διαφορές διερμηνευτή-μεταγλωττιστή 25

51. (Σύγχρονα) προγραμματιστικά περιβάλλοντα 26

Κεφαλαιο7: Βασικά στοιχεία προγραμματισμού 27

52. Από τι αποτελείται το αλφάβητο της ΓΛΩΣΣΑΣ 27

53. Ποιοι είναι οι τύποι δεδομένων της ΓΛΩΣΣΑΣ 27

54. (συμβολικές) Σταθερές 27

55. Δήλωση Σταθερών 28

56. Μεταβλητές 28

57. Δήλωση Μεταβλητών 28

58. Ονόματα προγραμμάτων και δεδομενων 29

59. Αριθμητικοί τελεστές 29

60. Ιεραρχία αριθμητικών τελεστών 29

61. Ενσωματωμένες (εγγενείς) συναρτήσεις της ΓΛΩΣΣΑΣ 30

62. Αριθμητικές εκφράσεις. 30

63. Εντολή εκχώρησης 31

64. Εντολή εισόδου (διάβασε) 31

65. Εντολή εξόδου (γράψε) 31

66. Δομή προγράμματος σε ΓΛΩΣΣΑ 31

Κεφαλαιο 8: Επιλογή και επανάληψη 33

67. Τι είναι λογική έκφραση: 33

68. Ποιοι είναι οι συγκριτικοί τελεστές 33

σελίδα 4
69. Συγκρίσεις 33

70. Σύνθετες λογικές εκφράσεις 33

71. Σχετική ιεραρχία των τελεστών 33

72. Δομή επιλογής 34

73. Δομή απλής επιλογής (Αν..τότε) 34

74. Δομή σύνθετης επιλογής (Αν..τότε.αλλιώς) 35

75. Δομή πολλαπλής επιλογής (Αν..τότε.αλλιώς_αν) 35

76. Εμφωλευμένες δομές επιλογής 36

77. Δομή επανάληψης 36

78. Δομή οσο..επανάλαβε 36

79. Δομή μέχρις_οτου 37

80. Δομή για 37

81. Τι ονομάζουμε τιμή φρουρό; 37

82. Εμφωλευμένοι βρόχοι και κανόνες χρήσης 38

83. Κανόνες χρήσης εμφωλευμένων βρόχων 38

Κεφαλαιο 9: Πίνακες 39

84. Τι είναι πίνακας 39

85. Μειονεκτήματα από την χρήση πινάκων 40

86. Πότε πρέπει να χρησιμοποιούνται πίνακες 40

87. Τυπικές επεξεργασίες πινάκων 40

Κεφαλαιο 10: Υποπρογράμματα 41

88. Τμηματικός προγραμματισμός 41

89. Υποπρόγραμμα 41

90. Χαρακτηριστικά των υποπρογραμμάτων 41

91. Πλεονεκτήματα του τμηματικού προγραμματισμού. 42

σελίδα 5
92. Παράμετροι 42

93. Σύντομη περιγραφή της λειτουργίας ενός υποπρογράμματος. 43

94. Τι είναι συνάρτηση. 43

95. Τι είναι διαδικασία. 43

96. Δομή συνάρτησης: 43

97. Δομή διαδικασίας: 44

98. Κλήση συναρτήσεων. 44

99. Κλήση διαδικασιών 45

100. Πραγματικές παράμετροι. 45

101. Τυπικές παράμετροι. 45

102. Κανόνες παραμέτρων. 45

103. Χρήση στοίβας στην κλήση διαδικασιών. 45

104. Τοπικές μεταβλητές 46

105. Τι ονομάζεται εμβέλεια μεταβλητών 46

106. Απεριόριστη εμβέλεια. 46

107. Περιορισμένη εμβέλεια 46

108. Μερικώς περιορισμένη εμβέλεια. 47

Ερωτήσεις Σωστού λάθους 48


Ερωτήσεις ανάπτυξης 70
Κεφάλαιο 2: 70

Κεφάλαιο 3 : 71

Κεφάλαιο 6 72

Κεφάλαιο 7 74

Κεφάλαιο 8 75

Κεφάλαιο 9 76

Κεφάλαιο 10 76

σελίδα 6
σελίδα 7
ΚΕΦΑΛΑΙΟ 2: ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΛΓΟΡΙΘΜΩΝ

1. Αλγόριθμος Commented [SS1]: Απομνημόνευση μόνο τον ορισμό

{Ορισμός} Είναι μία πεπερασμένη σειρά ενεργειών, αυστηρά καθορισμένων και εκτελέσιμων σε
πεπερασμένο χρόνο, που στοχεύουν στην επίλυση ενός προβλήματος.

Η σειρά – αλληλουχία των ενεργειών δεν είναι μοναδική. Η έννοια του αλγορίθμου δεν συνδέεται
αποκλειστικά με έννοιες της πληροφορικής.

2. Απαραίτητα κριτήρια αλγορίθμων Commented [SS2]: Απομνημόνευση όλη η παράγραφος

1. Είσοδος: Καμία, μία ή περισσότερες τιμές δεδομένων πρέπει να δίνονται ως είσοδος. Η περίπτωση
που δεν δίνονται τιμές δεδομένων εμφανίζεται όταν: ο αλγόριθμος δημιουργεί μονος του και
επεξεργάζεται κάποιες πρωτογενείς τιμές με την βοήθεια συναρτήσεων παραγωγής τυχαίων
αριθμών ή με την βοήθεια άλλων απλών εντολών. πχ x 10
2. Έξοδος: Ο αλγόριθμος πρέπει να δημιουργεί τουλάχιστον ένα αποτέλεσμα προς τον χρήστη ή προς
ένα άλλο αλγόριθμο.
3. Καθοριστικότητα: Κάθε εντολή πρέπει να καθορίζεται χωρίς αμφιβολία για τον τρόπο εκτέλεσής
της. Πχ μία εντολή ζ <-- χ / ψ πρέπει να λαμβάνει υπ’ όψιν της το γεγονός ότι μπορεί το ψ να είναι
μηδέν.
4. Περατότητα: Ο αλγόριθμος πρέπει να τελειώνει μετά από πεπερασμένα βήματα. Αν δεν τελειώνει
μετά από ένα συγκεκριμένο αριθμό βημάτων δεν είναι αλγόριθμος αλλά υπολογιστική διαδικασία.
5. Αποτελεσματικότητα: Κάθε εντολή ενός αλγορίθμου δεν αρκεί να είναι ορισμένη αλλά πρέπει να
είναι απλή και εκτελέσιμη.

3. Περιγραφή και αναπαράσταση αλγορίθμων Commented [SS3]: Απομνημόνευση όλη η παράγραφος

1. Ελεύθερο κείμενο (Free text): Αποτελεί τον πιο ανεπεξέργαστο και αδόμητο τρόπο παρουσίασης.
Υπάρχει κίνδυνος να οδηγήσει σε μη εκτελέσιμη παρουσίαση, παραβιάζοντας το τελευταίο
χαρακτηριστικό των αλγορίθμων το κριτήριο της αποτελεσματικότητας.
2. Διαγραμματικές τεχνικές (diagramming techniques): Αποτελούν ένα γραφικό τρόπο
αναπαράστασης. Μια τεχνική (από τις πιο παλιές και γνωστές ) είναι το διάγραμμα ροής (Flow
Chart). Η χρήση διαγραμματικών τεχνικών δεν είναι η καλύτερη λύση, γι’ αυτό εμφανίζονται όλο και
σπανιότερα στην βιβλιογραφία και στην πράξη.
3. Φυσική γλώσσα κατά βήματα (natural language): Μοιάζει με το ελεύθερο κείμενο απλά είναι κατά
βήματα. Κίνδυνος να παραβιαστεί το κριτήριο της καθοριστικότητας.
4. Κωδικοποίηση (coding): Δηλαδή με ένα πρόγραμμα γραμμένο είτε με μία ψευδογλώσσα είτε σε
κάποιο προγραμματιστικό περιβάλλον που όταν εκτελεσθεί θα δώσει τα ίδια αποτελέσματα με τον
αλγόριθμο.

σελίδα 8
4. Διάγραμμα ροής

Είναι μία διαγραμματική τεχνική {βλέπε παραπάνω}. Αποτελείται από ένα σύνολο γεωμετρικών
σχημάτων, όπου το καθένα δηλώνει μία συγκεκριμένη ενέργεια ή λειτουργία. Τα σχήματα ενώνονται
μεταξύ τους με βέλη που δηλώνουν την σειρά εκτέλεσης των ενεργειών αυτών.

Τα κυριότερα σχήματα είναι τα εξής: Commented [SS4]: Απομνημόνευση μόνο τα 4 σχήματα.

1. Έλλειψη: Δηλώνει την αρχή και το τέλος του αλγορίθμου.


2. Ρόμβος: Δηλώνει τον έλεγχο μίας συνθήκης με δύο εξόδους ανάλογα με την τιμή της. {αληθής -
ψευδής}
3. Ορθογώνιο: Δηλώνει την εκτέλεση μίας ή περισσοτέρων πράξεων.
4. Πλάγιο παραλληλόγραμμο: Η είσοδος δεδομένων και η έξοδος αποτελεσμάτων του αλγορίθμου.

5. Στοιχεία αλγορίθμου

Ένας αλγόριθμος διαμορφώνεται από τα παρακάτω :

• Τελεσταίοι
• Τελεστές
• Εκφράσεις
• Εντολές

6. Τελεσταίοι (operands)

Οι τελεσταίοι διακρίνονται σε:

• Σταθερές (constants): Προκαθορισμένες τιμές που παραμένουν αμετάβλητες σε όλη τη διάρκεια


της εκτέλεσης ενός αλγορίθμου. { προσοχή: Μια σταθερά μπορεί για παράδειγμα να είναι ένας
αριθμός. Δηλαδή για το σχολικό βιβλίο ο αριθμος 3 είναι μια σταθερά γιατί δεν μπορεί να
μεταβληθεί! Το 3 πάντα θα είναι 3 !! Μπορεί όμως να είναι και μια μονάδα μνήμης του υπολογιστή
που έχει κλειδωθεί σε μια τιμή. Το “κλείδωμα” αυτό θα δεις πως γίνεται στο κεφάλαιο 7}
• Μεταβλητές (variables): Είναι ένα γλωσσικό αντικείμενο {δηλαδή λέξεις..} που χρησιμοποιούνται
για να παραστήσουν στοιχεία δεδομένων. Η διαφορά τους από τις σταθερές είναι ότι δέχονται μία
τιμή που μπορεί να αλλάξει κατά την εκτέλεση ενός αλγορίθμου. { Οι τελεσταίοι ( σταθερές ή
μεταβλητές ) διακρίνονται σε τρεις κατηγορίες ανάλογα με το είδος των τιμών που μπορούν να
λάβουν. Βλέπε για αντιπαραβολή το κεφάλαιο 7 όπου οι κατηγορίες-τύποι μεταβλητών είναι
τέσσερις }

σελίδα 9
7. Τύποι (ΚΑΤΗΓΟΡΙΕΣ) τελεσταίων Commented [SS5]: απομνημόνευση η παραάγραφος

• Αριθμητικοί: Είναι ακέραιες τιμές ή πραγματικές πχ 12, 3.14, -19.99 κλπ.

{ προσοχή: η υποδιαστολή στην πληροφορική ακολουθεί το αγγλικό σύστημα και συμβολίζεται με


τελεία “.” }

• Αλφαριθμητικοί: Αποτελούνται από σειρές χαρακτήρων μέσα σε εισαγωγικά. Οι χαρακτήρες μπορεί


να είναι γράμματα, ψηφία, σημεία στίξης κλπ πχ “γεια σας”, “μεσος1”, “1” κλπ

{εδώ το σχολικό μας δηλώνει εμμέσως πλην σαφώς οι αλφαριθμητικοί περικλείονται ανάμεσα σε
διπλά εισαγωγικά... στο κεφάλαιο 7 όμως τους περικλείει σε μονά. Μην δίνεις σημασία. Έχεις τόσα
άλλα ωραία πράγματα να μάθεις... μην χάνεις τον χρόνο σου να ασχολείσαι με τέτοιες λεπτομέρειες.
}

• Λογικοί: Οι τιμές που μπορούν να πάρουν είναι ακριβώς δύο: αληθής, ψευδής

8. Τελεστές (operators) Commented [SS6]: Απομνημόνευση όλη η παράγραφος

Είναι σύμβολα που χρησιμοποιούνται στις διάφορες πράξεις. Διακρίνονται σε τρεις κατηγορίες:

Αριθμητικοί: Λογικοί: Συγκριτικοί:

^ Oxi (άρνηση) =
>
* / div mod Και (σύζευξη) <
>=
+- Η (διάζευξη) <=
<>

9. Εκφράσεις (expressions)

Όταν μία τιμή προκύπτει από υπολογισμό τότε αναφερόμαστε σε εκφράσεις. Οι τελεστές μαζί με
τους τελεσταίους διαμορφώνουν τις εκφράσεις. Η διεργασία αποτίμησης μίας έκφρασης συνίσταται
στην απόδοση τιμών στις μεταβλητές και στην εκτέλεση των πράξεων. Η εκτέλεση των πράξεων
εξαρτάται από την ιεραρχία των πράξεων και την χρήση παρενθέσεων. Μία έκφραση μπορεί να
αποτελείται από μία μόνο μεταβλητή ή σταθερά μέχρι μία πολύπλοκη μαθηματική παράσταση. {

σελίδα 10
Χωρίζονται σε δύο κατηγορίες : τις αριθμητικές (Σχολ. Κεφ. 7) και τις λογικές (Σχολ. Κεφ. 8) Οι λογικές
εκφράσεις ονομάζονται αλλιώς και: Συνθήκες }

10. Εντολές

Αποκαλείται κάθε μία λέξη που προσδιορίζει μία σαφή ενέργεια. Οι εντολές μπορούν να διακριθούν
στις τρεις βασικές δομές του δομημένου προγραμματισμού: {βλέπε και κεφάλαιο 6ο (δομημένος
προγραμματισμός)}

1. Δομή ακολουθίας
2. Δομή επιλογής
3. Δομή επανάληψης

Οι εντολές διακρίνονται επίσης σε δηλωτικές και σε εκτελέσιμες.

1. Δηλωτικές: αλγοριθμος
2. Εκτελέσιμες: διαβασε χ

11. Δομή ακολουθίας

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

Στη δομή αυτή ανήκουν οι εντολές:

• Εισόδου: Διάβασε. Η εντολή αυτή συνοδεύεται με το όνομα μίας ή περισσοτέρων μεταβλητών Η


λειτουργία της είναι: μετά την ολοκλήρωσή της η μεταβλητή/μεταβλητές θα έχει λάβει τιμή ως
περιεχόμενο. Πχ : διάβασε χ,ψ
• Εξόδου: Εμφάνισε – Εκτύπωσε. Οι εντολές αυτές εμφανίζουν τα αποτελέσματα στην οθόνη και στον
εκτυπωτή αντίστοιχα. Η σύνταξή της εντολής αυτής είναι ανάλογη με του διάβασε.
• Εκχώρησης τιμής: ← Η γενική μορφή της εντολής είναι : Μεταβλητή←έκφραση. Η λειτουργία της
είναι: γίνονται οι πράξεις στην έκφραση και το αποτέλεσμά της αποδίδεται , μεταβιβάζεται,
εκχωρείται στη μεταβλητή. Ας σημειωθεί ότι δεν πρόκειται για εξίσωση και ότι οι διάφορες γλώσσες
προγραμματισμού χρησιμοποιούν διάφορα σύμβολα αντί για το βέλος.
• Δηλωτικές : Αλγόριθμος , Τέλος. Ένας αλγόριθμος διατυπωμένος σε ψευδογλώσσα αρχίζει πάντα με
τη λέξη Αλγόριθμος συνοδευόμενη με το όνομα του και τελειώνει με την λέξη Τέλος συνοδευόμενη
επίσης με το όνομά του.

{Για περισσότερες λεπτομέρειες όσον αφορά τις τρεις πρώτες εντολές ανατρέξτε καλύτερα στο
κεφάλαιο 7}

σελίδα 11
12. Δομή επιλογής

Αποτελείται από ένα σύνολο εντολών που εκτελούνται κατά περίπτωση. Η διαδικασία της επιλογής
περιλαμβάνει τον έλεγχο κάποιας συνθήκης με δύο δυνατές τιμές (αληθής, ψευδής) και στη
συνέχεια την απόφαση εκτέλεσης κάποιας εντολής ανάλογα με τη συνθήκη. {Για περισσότερα βλέπε
κεφάλαιο 8}

13. Δομή επανάληψης

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

{βλέπε κεφάλαιο 8}

14. Ολίσθηση

Όταν ο προγραμματιστής ορίζει ένα δεδομένο τότε αυτό αποθηκεύεται στα κυκλώματα του
υπολογιστή σε δυαδική μορφή δηλαδή σε ακολουθίες από 0 και 1.

Αν για παράδειγμα ο προγραμματιστής εκτελέσει την εντολή : χ←17 τότε μέσα στην μνήμη του
υπολογιστή (η οποία ουσιαστικά είναι ένα κύκλωμα) αποθηκεύεται ο ισοδύναμος αριθμός του
δυαδικού συστήματος, ο οποίος είναι το 00010001. Ολίσθηση είναι η μετακίνηση όλων των ψηφίων
ενός αριθμού κατά μια θέση.

Διακρίνουμε δύο ολισθήσεις: Commented [SS7]: Απομνημόνευση μόνο το τι είναι και τι


κάνουν οι δύο ολισθήσεις
• Ολίσθηση προς τα αριστερά.

Ισοδυναμεί με πολλαπλασιασμό επί δύο. Μετακινούμε όλα τα ψηφία του προς τα αριστερά
προσθέτοντας ένα μηδέν στο τέλος και αγνοώντας το αρχικό μηδέν.

• Ολίσθηση προς τα δεξιά.

Ισοδυναμεί με την ακέραια διαίρεση δια δύο. Μετακινούμε όλα τα ψηφία του προς τα δεξιά,
αποκόπτοντας το τελευταίο και προσθέτοντας ένα μηδενικό στην αρχή.

15. Πολλαπλασιασμός αλά ρωσικά

Τι είναι; Commented [SS8]: Απομνημόνευση

σελίδα 12
Η πράξη του πολλαπλασιασμού δύο αριθμών δεν εκτελείται από τον υπολογιστή με τον τρόπο που
την εκτελούμε εμείς. Εκτελείται με έναν άλλο τρόπο που λέγεται πολλαπλασιασμός αλά ρωσικά.

Περιγραφή της μεθόδου πολλαπλασιασμού (για θετικούς ακέραιους αριθμούς):

Έστω ότι θέλω να πολλαπλασιάσω τους αριθμούς 45 και 19. Οι αριθμοί που πρέπει να
πολλαπλασιαστούν γράφονται δίπλα δίπλα και ο πρώτος διπλασιάζεται ενώ ο δεύτερος
υπερδιπλασιάζεται (για την ακρίβεια τον υποδιπλασιάζουμε αγνοώντας το δεκαδικό μέρος). Η
διαδικασία αυτή επαναλαμβάνεται ώσπου ο δεύτερος να γίνει μηδέν :

Παράδειγμα: Commented [SS9]: Να ξέρω να πολλαπλασιάζω δύο


οποιουσδήποτε αριθμούς
45 19 45
90 9 90
180 4
360 2
720 1 720
0

Τελικά το ζητούμενο γινόμενο ισούται με το άθροισμα των στοιχείων της πρώτης στήλης όπου
αντίστοιχα στην δεύτερη στήλη υπάρχει περιττός αριθμός. Στο παραπάνω παράδειγμα τα στοιχεία
αυτά παρουσιάζονται στην τρίτη στήλη. Δηλαδή είναι 45+90+720=855 !

Αντίστοιχος αλγόριθμος: Commented [SS10]: Να ξέρω τι κάνει και να τον


απομνημονεύσω.
Αλγόριθμος πολλαπλασιασμός_αλα_ρωσικά

δεδομένα // Μ1, Μ2 ακέραιοι //

Ρ←0

Όσο Μ2 >0 επανάλαβε

αν Μ2 mod 2=1 τότε Ρ←Ρ+Μ1

Μ1←Μ1 * 2

Μ2←Μ2 div 2

τελος_επαναληψης

Αποτελέσματα // Ρ, το γινόμενο των ακεραίων Μ1,Μ2 //

τελος πολλαπλασιασμός_αλα_ρωσικά

σελίδα 13
{Παρατήρησε την χρήση των εντολών δεδομένα και αποτελέσματα. Η επεξήγησή τους δίνεται
παρακάτω. Παρατήρησε επίσης την εντολή P←P+1. Δεν είναι τυπογραφικό λάθος !!! }

Μετατροπή:

Ο παραπάνω αλγόριθμος μπορεί εύκολα να μετατραπεί ώστε να περιλάβει και την περίπτωση
πολλαπλασιασμού αρνητικών ακεραίων. {ωραία άσκηση για τεστάκι... χιχι}

16. Γιατί ο υπολογιστής εκτελεί τον πολλαπλασιασμό αλά ρωσικά; Commented [SS11]: Απομνημόνευση όλη η παράγραφος

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

17. Δομή ενός αλγόριθμου σε ψευδογλώσσα


Αλγόριθμος όνομα
Δεδομένα // ... //
Εντολές
Αποτελέσματα // ... //
Τέλος όνομα
{ ΣΧΟΛΙΑ: Στα δεδομένα αναγράφουμε ανάμεσα στις κάθετες γραμμές όλες τις μεταβλητές ή/και
πίνακες που εμφανίζονται σε εντολές εισόδου, ενώ στα αποτελέσματα όλες τις μεταβλητές ή/και
πίνακες που εμφανίζονται σε εντολές εξόδου. Προσοχή λίγο στο γεγονός ότι όταν δηλώνουμε
πίνακες στα δεδομένα ή στα αποτελέσματα ΔΕΝ τοποθετούμε αγκύλες στους πίνακες άρα δεν
δηλώνουμε το μέγεθός τους !! Εδώ ίσως αναρωτηθείς ... μα που το ξέρει ο υπολογιστής το μέγεθος
του πίνακα; Απάντηση: ο αλγόριθμος δεν είναι πρόγραμμα αλλά μια έκφραση ενός αλγορίθμου σε
ψευδογλώσσα άρα απευθύνεται σε έναν άνθρωπο και όχι στην μηχανή!
Πχ Να γραφεί αλγόριθμος σε ψευδογλώσσα που υπολογίζει και εμφανίζει το εμβαδά ενός τριγώνου.
Αλγόριθμος Τρίγωνο
Δεδομένα // βάση,ύψος //
Εμβαδό<--βάση*ύψος/2
Αποτελέσματα // Εμβαδό //
Τέλος όνομα

Put your heart, mind, and soul into even your smallest acts. This is the secret of success.

Swami Sivananda

σελίδα 14
ΚΕΦΑΛΑΙΟ 3: ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ

18. Δομή δεδομένων

{Ορισμός}. Είναι ένα σύνολο αποθηκευμένων δεδομένων που υφίστανται επεξεργασία από ένα Commented [SS12]: Απομνημόνευση ο ορισμός
σύνολο λειτουργιών.

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

{δηλαδή: ένας πίνακας 100 θέσεων έχει ακριβώς 100 κόμβους}

19. Βασικές λειτουργίες (πράξεις) των δομών δεδομένων Commented [SS13]: Απομνημόνευση όλη η παράγραφος

1. Προσπέλαση: πρόσβαση σε ένα κόμβο με σκοπό να εξεταστεί ή να αλλάξει το περιεχόμενό του.


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

20. Γιατί υπάρχουν διαφορετικές δομές; Commented [SS14]: Απομνημόνευση όλη η παράγραφος

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

21. Εξάρτηση δομής δεδομένων και αλγορίθμου

Υπάρχει μεγάλη εξάρτηση μεταξύ της δομής δεδομένων και του αλγόριθμου που επεξεργάζεται τη
δομή. Μάλιστα, το πρόγραμμα πρέπει να θεωρεί τη δομή δεδομένων και τον αλγόριθμο ως μία
αδιάσπαστη ενότητα. Η παρατήρηση αυτή δικαιολογεί την εξίσωση που διατυπώθηκε το 1976 από
τον Wirth (που σχεδίασε και υλοποίησε τη γλώσσα Pascal):

Αλγόριθμοι + Δομές Δεδομένων = Προγράμματα Commented [SS15]: Απομνημόνευση μόνο η εξίσωση

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

22. Κατηγορίες δομών δεδομένων

Οι δομές διακρίνονται σε δύο μεγάλες κατηγορίες :

• Δυναμικές και
• στατικές

23. Στατικές δομές Commented [SS16]: Απομνημόνευση όλη η παράγραφος

• Το ακριβές μέγεθός τους είναι σταθερό και καθορίζεται κατά την στιγμή του προγραμματισμού τους
και όχι κατά την στιγμή της εκτέλεσης του προγράμματος.
• Οι κόμβοι τους αποθηκεύονται σε συνεχόμενες θέσεις μνήμης.
• Στην πράξη οι στατικές δομές υλοποιούνται με πίνακες .

24. Δυναμικές δομές Commented [SS17]: Απομνημόνευση όλη η παράγραφος

• Οι δομές αυτές δεν έχουν σταθερό μέγεθος αλλά ο αριθμός των κόμβων τους μεγαλώνει καθώς
εισάγονται νέα δεδομένα, και μικραίνει καθώς διαγράφονται δεδομένα από αυτές.
• Δεν αποθηκεύονται σε συνεχόμενες θέσεις μνήμης αλλά στηρίζονται στην τεχνική της δυναμικής
παραχώρησης μνήμης ( DMA : Dynamic Memory Allocation).
• Όλες οι σύγχρονες γλώσσες προγραμματισμού τις υποστηρίζουν.
• Δυναμικές δομές είναι το αρχείο, η εγγραφή κ.α.
{Σημείωση Οι πρώτες δύο παράγραφοι περιέχονται στην σελίδα 72 του νέου σχολικού βιβλίου ενώ οι
υπόλοιπες τεσσερις στην σελίδα 57.}

25. Πίνακες

Είναι μία δομή που περιέχει στοιχεία του ίδιου τύπου (δηλαδή ακέραιους , πραγματικούς).

Η αναφορά στα στοιχεία του γίνεται με την χρήση του συμβολικού ονόματος του πίνακα
ακολουθούμενου από την τιμή ενός ή περισσοτέρων δεικτών. ΠΧ Α[3,4]

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

{ΠΧ στην γλώσσα Java ένας πίνακας Α 3 γραμμών και 4 στηλών δηλώνεται ως: A[3][4] }

σελίδα 16
Ένας πίνακας μπορεί να είναι μονοδιάστατος , δισδιάστατος , τρισδιάστατος και γενικά ν-διάστατος.
Ειδικά για τους δισδιάστατους πίνακες αν το μέγεθος των δύο διαστάσεων είναι ίδιο τότε ο πίνακας
ονομάζεται τετραγωνικός. Οι πίνακες χρησιμεύουν για την αποθήκευση και διαχείριση δύο
σπουδαίων δομών της στοίβας και της ουράς

26. Αναζήτηση Commented [SS18]: Απομνημόνευση τα δυο bullets

Το πρόβλημα της αναζήτησης έχει ιδιαίτερο ενδιαφέρον λόγω της χρησιμότητάς του σε πλήθος
εφαρμογών. Υπάρχουν αρκετοί αλγόριθμοι (μέθοδοι) αναζήτησης σε πίνακα. Η επιλογή του πιο
κατάλληλου εξαρτάται κυρίως από το

• Αν ο πίνακας είναι ταξινομημένος ή όχι.


• Αν όλα τα στοιχεία του πίνακα είναι διαφορετικά μεταξύ τους ή όχι.

Τα στοιχεία του πίνακα στον οποίο γίνεται αναζήτηση μπορεί να είναι οποιουδήποτε τύπου:
αριθμητικά (ακέραιοι πραγματικοί), αλφαριθμητικά (χαρακτήρες) ακόμη και λογικά.

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
(γνησίως φθίνουσα) τότε η παραπάνω διάταξη είναι φθίνουσα.}

Ταξινόμηση είναι η διαδικασία κατά την οποία τα στοιχεία μιας δομής διατάσσονται κατά φθίνουσα
ή αύξουσα σειρά.

Σκοπός της ταξινόμησης είναι η εύκολη αναζήτηση ενός στοιχείου.

29. Ταξινόμηση ευθείας ανταλλαγής -φυσαλίδας

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

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

Ο αντίστοιχος αλγόριθμος είναι: Commented [SS21]: Απομνημόνευση ο αλγόριθμος.

Αλγόριθμος φυσαλίδα
Δεδομένα // 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]: Απ’ έξω οι τρεις λέξεις κλειδιά !
Υπάρχουν πολλοί αλγόριθμοι ταξινόμησης. Άλλοι σχετικά απλοί αλγόριθμοι είναι :
• η ταξινόμηση με επιλογή και
• η ταξινόμηση με παρεμβολή.
• η γρήγορη ταξινόμηση (ο πιο γρήγορος αλγόριθμος ταξινόμησης).
(Η ταξινόμηση φυσαλίδας είναι ο πιο απλός και ταυτόχρονα ο πιο αργός αλγόριθμος ταξινόμησης.)

31. Δομές Δεδομένων δευτερεύουσας μνήμης

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

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

32. Τι είναι τα αρχεία και από τι αποτελούνται

σελίδα 19
Τα αρχεία είναι μια ειδική δομή δεδομένων της δευτερεύουσας μνήμης (συνήθως ο σκληρός
δίσκος) και αποτελούνται από εγγραφές. Κάθε μια εγγραφή αποτελείται από ένα η περισσότερα
πεδία που περιγράφουν διάφορα χαρακτηριστικά της εγγραφής. Ένα πεδίο της εγγραφής που
ταυτοποιεί την εγγραφή ονομάζεται πρωτεύον κλειδί ή απλά κλειδί. Πολλά αρχεία έχουν και
δεύτερο πεδίο που ταυτοποιεί μια εγγραφή και ονομάζεται δευτερεύων κλειδί

Perfection is not attainable, but if we chase perfection we can catch excellence.

Vince Lombardi

σελίδα 20
ΚΕΦΑΛΑΙΟ 6: ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

33. Από τι προσδιορίζεται μια γλώσσα Commented [SS23]: Απομνημόνευση όλη η παράγραφος

Οι φυσικές γλώσσες αλλά και οι γλώσσες προγραμματισμού προσδιορίζονται από 4 στοιχεία:

1 Το αλφάβητο.

Είναι το σύνολο των στοιχείων που αποτελεί την γλώσσα. ( Πχ η ελληνική γλώσσα περιέχει τα εξής
στοιχεία: 48 χαρακτήρες, τα σημεία στίξης καθώς και τα ψηφία )

2 Το λεξιλόγιο.

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

3 Την γραμματική.

Η γραμματική αποτελείται από το τυπικό και το συντακτικό.

Τυπικό: είναι το σύνολο των κανόνων που καθορίζουν αν μία λέξη είναι αποδεκτή. Πχ Η λέξη
«ΓΡΑΨΕ» είναι αποδεκτή αλλά η «ΓΡΑΨΕΣ» όχι.

Συντακτικό: Είναι το σύνολο των κανόνων που καθορίζει αν η διάταξη και η σύνδεση των λέξεων σε
μία πρόταση είναι σωστή. Η γνώση συντακτικού στις φυσικές γλώσσες επιτρέπει την δημιουργία
σωστών προτάσεων ενώ στις γλώσσες προγραμματισμού επιτρέπει την δημιουργία σωστών εντολών

{ΠΧ:}

Φυσική γλωσσα: Γλωσσα


Προγραμματισμού:
Σωστό: Πάω να φάω Σωστό: Χ←3

Λάθος: Φάω να πάω Λάθος: 3←X

4 Την σημασιολογία.

Είναι το σύνολο των κανόνων που καθορίζει το νόημα των λέξεων άρα και το νόημα των προτάσεων
που δημιουργούνται. {Πχ Απογειώθηκε το ντροπαλό κατσαβίδι. (δεν έχει νόημα..)}

Στις γλώσσες προγραμματισμού ο δημιουργός τους αποφασίζει για την σημασιολογία των λέξεων
της γλώσσας.

σελίδα 21
34. Διαφορές φυσικών – τεχνητών γλωσσών Commented [SS24]: Απομνημόνευση όλη η παράγραφος

1. Οι φυσικές γλώσσες εξελίσσονται συνεχώς και δημιουργούνται νέες λέξεις, αλλάζουν οι κανόνες
γραμματικής/ συντακτικού με την πάροδο του χρόνου. Αυτό γίνεται γιατί χρησιμοποιούνται για την
επικοινωνία μεταξύ των ανθρώπων.
2. Οι γλώσσες προγραμματισμού χρησιμοποιούνται για την επικοινωνία ανθρώπου Η/Υ και
χαρακτηρίζονται από στασιμότητα. Ωστόσο και αυτές εξελίσσονται από τους δημιουργούς τους για
να διορθώσουν αδυναμίες τους ή να καλύψουν μεγαλύτερο εύρος εφαρμογών αλλά και να
ακολουθήσουν τις νέες εξελίξεις.
• Οι γλώσσες προγραμματισμού αλλάζουν σε:
o επίπεδο διαλέκτου. Πχ Basic → QuickBasic
o σε επίπεδο επέκτασης Πχ Basic → Visual Basic

35. Τεχνική της ιεραρχικής σχεδίασης προγράμματος. Commented [SS25]: Απομνημόνευση όλη η παράγραφος

Η τεχνική αυτή (ή αλλιώς τεχνική από επάνω προς τα κάτω / top-down), χρησιμοποιεί την
στρατηγική της συνεχούς διαίρεσης του προβλήματος σε υποπροβλήματα τα οποία είναι εύκολο
να επιλυθούν οδηγώντας στην επίλυση του αρχικού προβλήματος. Χρησιμοποιούνται διάφορες
διαγραμματικές τεχνικές για την υποβοήθηση της σχεδίασης. Υλοποιείται με τμηματικό
προγραμματισμό.

36. Τι περιλαμβάνει η τεχνική της ιεραρχικής σχεδίασης; Commented [SS26]: Απομνημόνευση όλη η παράγραφος

• Τον καθορισμό των βασικών λειτουργιών ενός προγράμματος σε ανώτερο επίπεδο,


• την διάσπαση των λειτουργιών αυτών σε όλο και μικρότερες λειτουργίες,
• μέχρι το τελευταίο επίπεδο όπου οι λειτουργίες είναι πολύ απλές.

37. Τμηματικός προγραμματισμός

{ Μελέτησέ τον από το κεφάλαιο 10. }

38. Δομημένος προγραμματισμός

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

σελίδα 22
τμηματικό προγραμματισμό. Κάθε πρόγραμμα όπως και κάθε ενότητα προγράμματος έχει μία
είσοδο και μόνο μία έξοδο

{Εδώ εννοεί ότι έχει μόνο μία αρχή και μόνο ένα τέλος_προγράμματος !!!}

39. Ποιές δομές χρησιμοποιεί ο δομημένος προγραμματισμός Commented [SS27]: Απομνημόνευση όλη η παράγραφος

Σύμφωνα με τον δομημένο προγραμματισμό, όλα τα προγράμματα μπορούν να γραφούν


χρησιμοποιώντας μόνο τις τρεις παρακάτω λογικές δομές καθώς και συνδυασμών τους.

1. Δομή ακολουθίας.
2. Δομή επιλογής.
3. Δομή επανάληψης.

40. Γιατί η εντολή GOTO κρίνεται ακατάλληλη Commented [SS28]: απομνημόνευση

Επειδή η χρήση της εντολής αλλάζει την ροή ενός προγράμματος, τα προγράμματα γίνονται
δύσκολα στην παρακολούθηση την κατανόηση και την συντήρηση.

41. Πλεονεκτήματα δομημένου προγραμματισμού Commented [SS29]: Απομνημόνευση όλη η παράγραφος


1. Δημιουργία απλούστερων προγραμμάτων.
2. Άμεση μεταφορά των αλγορίθμων σε προγράμματα.
3. Διευκόλυνση ανάλυσης του προγράμματος σε τμήματα.
4. Περιορισμός των λαθών κατά την ανάπτυξη του προγράμματος.
5. Διευκόλυνση στην ανάγνωση και κατανόηση του προγράμματος από τρίτους.
6. Ευκολότερη διόρθωση και συντήρηση.

42. Πηγαίο ή αρχικό πρόγραμμα (source) Commented [SS30]: Απομνημόνευση όλη η παράγραφος.

• Είναι το αρχικό πρόγραμμα που γράφει ο προγραμματιστής με την βοήθεια ενός προγράμματος που
ονομάζεται συντάκτης.
• Δεν είναι κατανοητό από τον υπολογιστή. (εκτός αν είναι γραμμένο απ’ ευθείας σε γλώσσα
μηχανής)

43. Λάθη στο πηγαίο πρόγραμμα Commented [SS31]: Απομνημόνευση όλη η παράγραφος.

Διακρίνονται σε λογικά και συντακτικά.

• Λογικά λάθη:
Οφείλονται σε σφάλματα κατά την υλοποίηση του αλγορίθμου.
Εντοπίζονται παρά μόνο κατά την εκτέλεση του προγράμματος.
Είναι τα πλέον σοβαρά και δύσκολα στην διόρθωση.

σελίδα 23
{πχ ΜΟ←- χ+ψ / 3 (ήθελε παρενθέσεις) …}
• Συντακτικά λάθη:
Οφείλονται σε αναγραμματισμούς γραμμάτων εντολών, παράληψη δήλωσης δεδομένων κλπ.
Εντοπίζονται από τον μεταγλωττιστή ή τον διερμηνευτή.
Πρέπει να διορθωθούν ώστε να δημιουργηθεί το εκτελέσιμο πρόγραμμα.
{πχ Γραεψ αντί για Γράψε}

44. Τι είναι ο συντάκτης Commented [SS32]: Απομνημόνευση όλη η παράγραφος.

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

45. Μετατροπή προγραμμάτων σε γλώσσα μηχανής Commented [SS33]: Απομνημόνευση όλη η παράγραφος.

Γίνεται με την χρήση ειδικών μεταφραστικών προγραμμάτων. Υπάρχουν δύο μεγάλες κατηγορίες
μεταφραστικών προγραμμάτων:

• Οι μεταγλωττιστές και
• οι διερμηνευτές.

46. Μεταγλωττιστής Commented [SS34]: Απομνημόνευση όλη η παράγραφος.

• Δέχεται σαν είσοδο ένα πρόγραμμα γραμμένο σε μία γλώσσα προγραμματισμού (υψηλού
επιπέδου).
• Ανιχνεύει τα τυχόν συντακτικά λάθη.
• Αν βρεθούν λάθη ο προγραμματιστής τα διορθώνει (με τον συντάκτη) και υποβάλλει το πρόγραμμα
ξανά προς μεταγλώττιση μέχρι να παραχθεί το σωστό.
• Αν δεν υπάρχουν λάθη και μόνο τότε, παράγει το αντικείμενο πρόγραμμα (ή τελικό πρόγραμμα ),
το οποίο είναι ισοδύναμο με το πηγαίο αλλά εκφρασμένο πλέον σε γλώσσα μηχανής. Αυτό είναι
πλέον τελείως ανεξάρτητο από το αρχικό πρόγραμμα, αλλά δεν είναι ακόμη εκτελέσιμο.
• Η διαδικασία μέσω της οποίας καταλήγουμε στο εκτελέσιμο πρόγραμμα (γλώσσα μηχανής) είναι
συνοπτικά:
Πηγαίο→μεταγλωττιστής→αντικείμενο(τελικό)→συνδέτης-φορτωτής→Εκτελέσιμο.

σελίδα 24
47. Συνδέτης φορτωτής Commented [SS35]: Απομνημόνευση όλη η παράγραφος.

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

48. Διερμηνευτής Commented [SS36]: Απομνημόνευση όλη η παράγραφος.

• Δέχεται ως είσοδο ένα πρόγραμμα γραμμένο σε γλώσσα υψηλού επιπέδου και εκτελεί μία μία τις
εντολές του αρχικού προγράμματος.
• Η διαδικασία εκτέλεσης είναι η εξής:
o Διαβάζει μία από τις εντολές του αρχικού προγράμματος,
o ανιχνεύει τα (τυχόν) συντακτικά λάθη της κάθε εντολής,
o την μεταφράζει σε γλώσσα μηχανής
o την εκτελεί.
• Κατόπιν διαβάζει την επόμενη εντολή και επαναλαμβάνει την ίδια διαδικασία !

49. Ομοιότητες διερμηνευτή-μεταγλωττιστή

{ η παράγραφος αυτή δεν αναφέρεται ξεκάθαρα στο σχολικό εγχειρίδιο}

• Και οι δύο μεταφράζουν το πηγαίο πρόγραμμα (υψηλού επιπέδου) σε γλώσσα μηχανής.


• Και οι δύο ανιχνεύουν τα συντακτικά λάθη.

50. Διαφορές διερμηνευτή-μεταγλωττιστή Commented [SS37]: Απομνημόνευση όλη η παράγραφος.

• Ο μεταγλωττιστής μεταγλωττίζει όλο το πρόγραμμα και με την βοήθεια του συνδέτη – φορτωτή
παράγεται το εκτελέσιμο.
• Ο διερμηνευτής εκτελεί μία μία τις εντολές και δεν χρειάζεται συνδέτη-φορτωτή
• Ο διερμηνευτής αφού εκτελεί τις εντολές μία μία έχει το πλεονέκτημα της άμεσης διόρθωσης των
λαθών. Για τον λόγο αυτό χρησιμοποιείται συνήθως κατά την συγγραφή-διόρθωση ενός
προγράμματος.
• Η εκτέλεση ενός προγράμματος με τον διερμηνευτή είναι πιο αργή, γιατί για να εκτελεστεί το
πρόγραμμα, πρέπει κάθε φορά να ξαναγίνεται η διερμηνεία από την αρχή, ενώ ο μεταγλωττιστής
παράγει μια φορά το αντικείμενο πρόγραμμα και δεν χρειάζεται ξανά μεταγλώττιση αφού είναι
σχεδόν εκτελέσιμο (θυμήσου τον συνδέτη)
• Για να εκτελεστεί ένα πρόγραμμα με τον διερμηνευτή είναι απαραίτητη η παρουσία του πηγαίου
προγράμματος ενώ με τον μεταγλωττιστή μόνο την πρώτη φορά.

σελίδα 25
51. (Σύγχρονα) προγραμματιστικά περιβάλλοντα Commented [SS38]: Απομνημόνευση τα 3 bullets

Για την δημιουργία - εκτέλεση ενός προγράμματος απαιτούνται τουλάχιστον 3 προγράμματα:

• Συντάκτης
• Μεταγλωττιστής
• Συνδέτης

Τα σύγχρονα προγραμματιστικά περιβάλλοντα παρέχουν τα προγράμματα αυτά με ενιαίο τρόπο. Το


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

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 μεταφρασμένο στα ελληνικά}

52. Από τι αποτελείται το αλφάβητο της ΓΛΩΣΣΑΣ

Αποτελείται από:

• Γράμματα
• Κεφαλαία και μικρά ελληνικού αλφαβήτου (Α-Ω , α-Ω)
• Κεφαλαία και μικρά αγγλικού αλφαβήτου (Α-Ζ, a-z)
• Ψηφία 0-9
• Ειδικοί χαρακτήρες

+ - * / ^ = > < , . ! & [ ] ( ) _ και ο κενός χαρακτήρας

{Μια υπενθύμιση: Άλλο ο κενός χαρακτήρας (το space) και άλλο η κάτω παύλα (το underscore)}

53. Ποιοι είναι οι τύποι δεδομένων της ΓΛΩΣΣΑΣ Commented [SS39]: Απομνημόνευση όλη η παράγραφος.

• Ακέραιος. Ο τύπος αυτός περιλαμβάνει τους ακέραιους ( το σύνολο Ζ ) που είναι γνωστοί από τα
μαθηματικά. (δηλαδή θετικούς και αρνητικούς καθώς και το 0 )
• Πραγματικός. Ο τύπος αυτός περιλαμβάνει τους πραγματικούς ( το σύνολο R ) που είναι γνωστοί
από τα μαθηματικά. ( δηλαδή αριθμούς με δεκαδικό μέρος θετικούς και αρνητικούς καθώς και το 0)
{Μία μεταβλητή πραγματικού τύπου μπορεί να πάρει τόσο ακέραιες όσο και δεκαδικές τιμές }
• Λογικός. Ο τύπος αυτός δέχεται μόνο δύο τιμές ΑΛΗΘΗΣ και ΨΕΥΔΗΣ.
• Χαρακτήρας. Ο τύπος αυτός αναφέρεται τόσο σε ένα χαρακτήρα όσο και σε μία σειρά χαρακτήρων.
Περιέχει οποιοδήποτε χαρακτήρα μπορεί να γραφεί στο πληκτρολόγιο. Οι χαρακτήρες πρέπει να
βρίσκονται υποχρεωτικά ανάμεσα σε μονά εισαγωγικά. Επειδή μπορεί να περιέχει και αριθμούς
ονομάζεται συχνά και αλφαριθμητικός τύπος.
{Πχ ‘ αριθμός ’ ‘ μαθητής 3ος’ }

54. (συμβολικές) Σταθερές Commented [SS40]: Απομνημόνευση όλη η παράγραφος

{Oρισμός} Είναι προκαθορισμένες τιμές που δεν μεταβάλλονται κατά την διάρκεια εκτέλεσης του
προγράμματος. Μπορεί να είναι τύπου ακέραιες, πραγματικές, λογικές, χαρακτήρες. Η χρήση
σταθερών κάνει το πρόγραμμα πιο κατανοητό, άρα πιο εύκολο να συντηρηθεί και να διορθωθεί.

σελίδα 27
55. Δήλωση Σταθερών Commented [SS41]: Απομνημόνευση όλη η παράγραφος.

Η δήλωση των σταθερών γίνεται στο τμήμα δήλωσης σταθερών:

• Σύνταξη:
Σταθερές
Όνομα-1=σταθερή-τιμή-1
Όνομα-2=σταθερή-τιμή-2

Ονομα-ν=σταθερή-τιμή-ν

• Παράδειγμα:
Σταθερές
Π=3.14
Όνομα=’Κώστας’
• Λειτουργία του τμήματος δήλωσης σταθερών:
Αποδίδει ονόματα σε σταθερές τιμές. Κάθε μία από αυτές τις σταθερές μπορεί να χρησιμοποιηθεί
οπουδήποτε στο πρόγραμμα αλλά δεν είναι δυνατή η μεταβολή της τιμής της.

56. Μεταβλητές

{Oρισμός} Μια μεταβλητή παριστάνει μία ποσότητα που η τιμή της μπορεί να μεταβάλλεται. Commented [SS42]: Ο ορισμός

Οι μεταβλητές που χρησιμοποιούνται σε ένα πρόγραμμα αντιστοιχούνται από τον μεταγλωττιστή σε


συγκεκριμένες θέσεις μνήμης. Η τιμή της μεταβλητής είναι η τιμή της αντίστοιχης θέσης μνήμης.

Ενώ η τιμή της μεταβλητής (θέσης μνήμης ) μπορεί να αλλάξει, ο τύπος της δεν αλλάζει ποτέ. Η
ΓΛΩΣΣΑ επιτρέπει την χρήση τεσσάρων τύπων δεδομένων (ακέραιες λογικές πραγματικές
χαρακτήρες). Το όνομα κάθε μεταβλητής ακολουθεί τους κανόνες δημιουργίας ονομάτων. Είναι
καλή πρακτική να χρησιμοποιούμε ονόματα μεταβλητών που υπονοούν το περιεχόμενό τους. Πχ
«εμβαδόν» και όχι σκέτο «Ε»

57. Δήλωση Μεταβλητών Commented [SS43]: Απομνημόνευση όλη η παράγραφος.

(Η δήλωση των μεταβλητών γίνεται στο τμήμα δήλωσης μεταβλητών)

• Σύνταξη του τμήματος δήλωσης:


Μεταβλητές
Ακέραιες: Λίστα-μεταβλητών-1
Πραγματικές: Λίστα-μεταβλητών-2
Λογικές: Λίστα-μεταβλητών-3
Χαρακτήρες: Λίστα-μεταβλητών-4

σελίδα 28
• Λειτουργία του τμήματος δήλωσης: Δηλώνει τον τύπο όλων των μεταβλητών που χρησιμοποιούνται
στο πρόγραμμα

58. Ονόματα προγραμμάτων και δεδομενων Commented [SS44]: Απομνημόνευση όλη η παράγραφος.

Κάθε πρόγραμμα όπως και τα δεδομένα (μεταβλητές και σταθερές) που χρησιμοποιεί έχουν ένα
όνομα με το οποίο αναφερόμαστε σε αυτό. Τα ονόματα αυτά μπορούν να αποτελούνται από:

• Γράμματα:
Κεφαλαία και μικρά ελληνικού αλφαβήτου (Α-Ω , α-Ω)
Κεφαλαία και μικρά αγγλικού αλφαβήτου (Α-Ζ, a-z)
• Ψηφία:
Όλα τα ψηφία : 0-9
• Ειδικούς χαρακτήρες:
_ (κάτω παύλα ή underscore)
• Περιορισμοί:
o Απαγορεύεται η χρήση δεσμευμένων λέξεων ως ονόματα (πχ γράψε διάβασε)
o Τα ονόματα υποχρεωτικά αρχίζουν από γράμμα (όχι ψηφίο ούτε underscore)

59. Αριθμητικοί τελεστές Commented [SS45]: Απομνημόνευση όλη η παράγραφος.


Τελεστής Αριθμητική πράξη
^ Ύψωση στην δύναμη
+ Πρόσθεση
- Αφαίρεση
* Πολλαπλασιασμός
/ Διαίρεση
mod Υπόλοιπο ακέραιας
διαίρεσης
div Πηλίκο ακέραιας
διαίρεσης

60. Ιεραρχία αριθμητικών τελεστών Commented [SS46]: Απομνημόνευση όλη η παράγραφος.

1. ^

2. * / div mod (έχουν ίδια ιεραρχία)

3. + -

Προσοχή:

• Αν συναντάμε παρενθέσεις προηγούνται οι τελεστές εντός των παρενθέσεων.


• Όσοι τελεστές έχουν ίδια ιεραρχία εκτελούνται από αριστερά προς τα δεξιά (όπως στα μαθηματικά).

σελίδα 29
61. Ενσωματωμένες (εγγενείς) συναρτήσεις της ΓΛΩΣΣΑΣ Commented [SS47]: Απομνημόνευση όλη η παράγραφος.

HM(x) ΣΥΝ(x) ΕΦ(x) ΛΟΓ(x) Ε(χ) Τ_Ρ(x) A_M(x) A_T(x)

Ημίτονο Συνημίτονο Εφαπτομένη Φυσικός Εκθετική Ρίζα Ακέραιο Απόλυτη


Λογάριθμος μέρος τιμή

{ Προσοχή: Η ΛΟΓ(χ) δεν βρίσκει τον δεκαδικό λογάριθμο αλλά τον φυσικό, δηλαδή το ln (x) Οι
τριγωνομετρικές συναρτήσεις δέχονται ως είσοδο μοίρες και όχι ακτίνια Οι συναρτήσεις αυτές είναι
υποπρογράμματα τύπου συνάρτηση. (Βλέπε κεφάλαιο 10). Θεωρούνται ενσωματωμένες στην
ΓΛΩΣΣΑ, άρα μπορούμε να τις χρησιμοποιούμε οπουδήποτε τις χρειαζόμαστε }

62. Αριθμητικές εκφράσεις.

{βλέπε και κεφάλαιο 2ο για εκφράσεις γενικότερα}

Όταν μία τιμή προέρχεται από αριθμητικό υπολογισμό τότε αναφερόμαστε σε αριθμητικές
εκφράσεις. Για την σύνταξη μιας αριθμητικής έκφρασης χρησιμοποιούνται:

• Αριθμητικές σταθερές. { πχ 3 }
• Αριθμητικές μεταβλητές. { πχ x }
• Αριθμητικοί τελεστές { πχ + }
• Συναρτήσεις. { πχ Α_Τ( ) }
• Παρενθέσεις.

Κάθε έκφραση παριστάνει μία αριθμητική τιμή η οποία βρίσκεται μετά την εκτέλεση των πράξεων.
Γι’ αυτό είναι απαραίτητο όλες οι μεταβλητές που εμφανίζονται σε μία έκφραση να έχουν πάρει
προηγούμενα κάποια τιμή.

Η εκτέλεση των πράξεων γίνεται με βάση την ιεραρχία των αριθμητικών τελεστών.

Οι παρενθέσεις πάντα χρησιμοποιούνται σε ζεύγη. Διαφορετικός αριθμός αριστερών από δεξιές


παρενθέσεις στην ίδια έκφραση είναι ένα από τα πιο συνηθισμένα συντακτικά λάθη.

σελίδα 30
63. Εντολή εκχώρησης Commented [SS48]: Απομνημόνευση μόνο τα bullets

Χρησιμοποιείται για την απόδοση τιμών στις μεταβλητές κατά την εκτέλεση του προγράμματος. Σε
μία εντολή εκχώρησης η μεταβλητή και η έκφραση πρέπει να είναι του ιδίου τύπου. Το σύμβολο “←”
διαφοροποιείται από το = το οποίο χρησιμοποιείται ως συγκριτικός τελεστής καθώς και ως τελεστής
απόδοσης τιμών στο τμήμα δηλώσεων των σταθερών.

• Σύνταξη: Όνομα_μεταβλητής ← έκφραση


• Λειτουργία: Υπολογίζεται η έκφραση δεξιά του ← και η τιμή της εκχωρείται στην μεταβλητή που
βρίσκεται αριστερά. Παράδειγμα: Α←’όμορφα’

64. Εντολή εισόδου (διάβασε) Commented [SS49]: Απομνημόνευση μόνο τα bullets

• Σύνταξη: Διάβασε λίστα-μεταβλητών


• Λειτουργία: Η εντολή οδηγεί στην είσοδο τιμών από το πληκτρολόγιο και την εκχώρηση τους στις
μεταβλητές που αναφέρονται στην λίστα. Παράδειγμα: διάβασε χ,ψ

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

65. Εντολή εξόδου (γράψε) Commented [SS50]: Απομνημόνευση μόνο τα bullets

• Σύνταξη: Γράψε λίστα-στοιχείων


• Λειτουργία: Εμφανίζει σταθερές τιμές καθώς και τιμές μεταβλητών (ότι αναγράφεται στην
λίστα)
Παράδειγμα: Γράψε ‘ Ο φόρος είναι ’ , φπα, ’ € ’

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

66. Δομή προγράμματος σε ΓΛΩΣΣΑ Commented [SS51]: Απομνημόνευση όλη η παράγραφος

• Επικεφαλίδα: Πρόγραμμα Όνομα-προγράμματος Το όνομα πρέπει να ακολουθεί τους


κανόνες δημιουργίας ονομάτων
• Τμήμα δήλωσης σταθερών: Εδώ δηλώνονται οι τυχόν σταθερές που χρησιμοποιεί το πρόγραμμα.

σελίδα 31
• Τμήμα δήλωσης μεταβλητών:Δηλώνονται υποχρεωτικά τα ονόματα όλων των μεταβλητών μαζί με
τον τύπο τους.
• Κύριο μέρος: Περιλαμβάνει όλες τις εκτελέσιμες εντολές ανάμεσα στην αρχή και στο
τέλος_προγράμματος.
Παρατηρήσεις:
Κάθε εντολή γράφεται σε ξεχωριστή γραμμή. Αν κάποια εντολή πρέπει να συνεχιστεί σε επόμενη
γραμμή τότε ο πρώτος χαρακτήρας της επόμενης πρέπει να είναι ο: &.
Αν ο πρώτος χαρακτήρας μίας γραμμής είναι ο ! τότε η γραμμή αυτή αποτελεί σχόλιο και δεν εκτελείται
Αν το πρόγραμμα χρησιμοποιεί υποπρογράμματα τότε αυτά γράφονται μετά το τέλος_προγράμματος

Education is what remains after one has forgotten what one has learned in school.

Albert Einstein

σελίδα 32
ΚΕΦΑΛΑΙΟ 8: ΕΠΙΛΟΓΗ ΚΑΙ ΕΠΑΝΑΛΗΨΗ

67. Τι είναι λογική έκφραση: Commented [SS52]: απομνημόνευση όλη η παράγραφος

Μία λογική έκφραση είναι μία έκφραση που έχει λογική τιμή δηλαδή αληθής ή ψευδής. Για την
σύνταξη μιας λογικής έκφρασης χρησιμοποιούνται: Σταθερές, μεταβλητές, αριθμητικές εκφράσεις,
συγκριτικοί τελεστές, λογικοί τελεστές, και παρενθέσεις

68. Ποιοι είναι οι συγκριτικοί τελεστές Commented [SS53]: Απομνημόνευση όλη.


Τελεστής Ελεγχόμενη σχέση
= Ισότητα
<> Ανισότητα
> Μεγαλύτερο
< Μικρότερο
>= Μεγαλύτερο ή ίσο
<= Μικρότερο ή ίσο

69. Συγκρίσεις Commented [SS54]: Απομνημόνευση όλη

Οι συγκρίσεις έχουν ως αποτέλεσμα μία λογική τιμή (Αληθής-ψευδής)

Γίνονται σε δεδομένα όλων των τύπων της ΓΛΩΣΣΑΣ :

• Σύγκριση αριθμών: Η σύγκριση μεταξύ δύο αριθμών γίνεται με προφανή τρόπο.


• Σύγκριση χαρακτήρων: Η σύγκριση μεταξύ ατομικών χαρακτήρων βασίζεται στην αλφαβητική σειρά
ΠΧ το “α” < “β” : αληθής. Η σύγκριση σειράς χαρακτήρων βασίζεται στην σύγκριση χαρακτήρα προς
χαρακτήρα σε κάθε θέση μέχρι να βρεθεί κάποια διαφορά.
{ Πχ “κακός” < “καλός” : αληθής (γιατί το κ είναι μικρότερο του λ) }
• Σύγκριση Λογικών: Η σύγκριση μεταξύ λογικών έχει νόημα μόνο στην περίπτωση του = και του <>
{ Πχ αληθης<ψευδής: δεν εχει νοημα }

70. Σύνθετες λογικές εκφράσεις

Σχηματίζονται από απλές λογικές εκφράσεις με την χρήση των λογικών τελεστών: Όχι, Και,Η

71. Σχετική ιεραρχία των τελεστών Commented [SS55]: Απομνημόνευση όλη

σελίδα 33
1. αριθμητικοί τελεστές,
2. συγκριτικοί,
3. λογικοί.

72. Δομή επιλογής Commented [SS56]: Απομνημόνευση όλη

Η δομή επιλογής υλοποιείται με την εντολή “Αν”. Η εντολή “Αν” έχει τρεις διαφορετικές μορφές:

Απλή επιλογή Σύνθετη επιλογή Πολλαπλή επιλογή

Αν .. τότε Αν..τότε αλλιώς Αν..τότε αλλιώς_αν

Πρσοχή: Κάθε εντολή Αν πρέπει να κλείνει με τέλος_αν

{προσοχή όμως εδώ: Σύμφωνα με το σχολικό σου (κεφάλαιο 2 ) σε μια ψευδογλώσσα όταν οι εντολές
εντός μιας απλής επιλογής είναι μια και μόνο μία, δικαιούμαστε να μην βάλουμε τελος_αν αρκεί να
γράψουμε την εντολή δίπλα από την λέξη τότε.

Παράδειγμα:

Οι δυο αλγόριθμοι είναι ισοδύναμοι:

αλγόριθμος ααα αλγόριθμος ααα


Διάβασε χ Διάβασε χ
αν χ > 100 τότε αν χ > 100 τότε γράψε 'μεγάλος'
γράψε 'μεγάλος' γράψε χ
τελος_αν τελος ααα
γράψε χ
τελος ααα

73. Δομή απλής επιλογής (Αν..τότε) Commented [SS57]: Απομνημόνευση όλη

• Σύνταξη:
Αν συνθήκη τότε
Εντολή-1
Εντολή-2
..
Εντολή-ν

σελίδα 34
τελος_αν
• Λειτουργία
o Αν η συνθήκη ισχύει τότε εκτελούνται οι εντολές που βρίσκονται ανάμεσα στο τότε και στο
τέλος_αν, αλλιώς αγνοούνται.
o Η εκτέλεση συνεχίζεται με την εντολή μετά το τέλος_αν

74. Δομή σύνθετης επιλογής (Αν..τότε.αλλιώς) Commented [SS58]: Απομνημόνευση όλη

• Σύνταξη:

Αν συνθήκη τότε
Εντολή-1
Εντολή-2
..
Εντολή-ν
Αλλιώς
Εντολή-1
Εντολή-2
..
Εντολή-ν
τελος_αν

• Λειτουργία
o Αν η συνθήκη ισχύει τότε εκτελούνται οι εντολές που βρίσκονται ανάμεσα στο τότε και στο
αλλιώς, αλλιώς εκτελούνται οι εντολές που βρίσκονται ανάμεσα στο αλλιώς και στο
τέλος_αν
o Η εκτέλεση συνεχίζεται την εντολή μετά το τέλος_αν.

75. Δομή πολλαπλής επιλογής (Αν..τότε.αλλιώς_αν) Commented [SS59]: Απομνημόνευση όλη

• Σύνταξη:

Αν συνθήκη-1 τότε
Ομάδα εντολών 1
Αλλιώς_αν συνθήκη-2 τότε
Ομάδα εντολών 2
Αλλιώς
Ομάδα εντολών ν
τελος_αν

• Λειτουργία
o Εκτελούνται οι εντολές που βρίσκονται στο αντίστοιχο τμήμα όταν η συνθήκη είναι αληθής.

σελίδα 35
o Η εκτέλεση συνεχίζεται την εντολή μετά το τέλος_αν.

76. Εμφωλευμένες δομές επιλογής

{Oρισμός:} Ονομάζονται δύο ή περισσότερες εντολές Αν που περιέχονται η μία μέσα στην άλλη.

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

{εμφωλευμένες μπορεί να είναι και εντολές επανάληψης αλλά και συνδυασμός δομών επιλογής και
επανάληψης}

77. Δομή επανάληψης Commented [SS60]: Απομνημόνευση όλη

Η δομή επανάληψης έχει τρεις μορφές-εντολές:

• Για
• όσο
• και μέχρις_ότου.

Όλες ελέγχονται από μία συνθήκη ή οποία καθορίζει την έξοδο από τον βρόχο. { Προσοχή: βρόχος
γενικά σημαίνει θηλειά αλλά στην πληροφορική σημαίνει δομή επανάληψης }

78. Δομή οσο..επανάλαβε Commented [SS61]: Απομνημόνευση τα 2 πρώτα bullets

• Σύνταξη:

Όσο συνθήκη επανάλαβε


Εντολή-1
Εντολή-2
..
Εντολή-ν
Τελος_επανάληψης

• Λειτουργία
o Ελέγχεται η συνθήκη και αν είναι αληθής εκτελούνται οι εντολές που βρίσκονται ανάμεσα
στις όσο και τέλος_επανάληψης.
o Στην συνέχεια ελέγχεται πάλι η συνθήκη και αν ισχύει εκτελούνται πάλι οι ίδιες εντολές.
o Όταν η συνθήκη γίνει ψευδής τότε σταματά η επανάληψη και εκτελείται η εντολή μετά το
τέλος_επανάληψης. {αν βέβαια υπάρχει}
Παρατηρήσεις:

σελίδα 36
Με την δομή ΟΣΟ μπορούν να εκφραστούν όλες οι άλλες δομές επανάληψης. Χαρακτηριστικό της είναι
ότι ο αριθμός των επαναλήψεων δεν είναι γνωστός. Για να σταματήσει η επανάληψη πρέπει
υποχρεωτικά μέσα στον βρόχο να υπάρχει μία εντολή η οποία κάνει την συνθήκη ψευδή.

79. Δομή μέχρις_οτου Commented [SS62]: Απομνημόνευση όλη

• Σύνταξη:

Αρχή_επανάληψης
Εντολή-1
Εντολή-2
..
Εντολή-ν
Μέχρις_οτου συνθήκη

• Λειτουργία
o Εκτελούνται οι εντολές μεταξύ των αρχή_επανάληψης και μέχρις_οτου.
o Στη συνέχεια ελέγχεται η συνθήκη και αν είναι ψευδής τότε εκτελούνται πάλι οι εντολές.
o Όταν η συνθήκη βρεθεί αληθής τότε σταματά η επανάληψη και εκτελείται η εντολή μετά
το μέχρις_ότου..
o Η δομή αυτή εκτελείται τουλάχιστον μια φορά.

80. Δομή για Commented [SS63]: Απομνημόνευση όλη

• Σύνταξη:

Για μεταβλητή από τιμή1 μέχρι τιμή2 με βήμα τιμή3


Εντολή-1
Εντολή-2
..
Εντολή-ν
Τελος_επανάληψης

• Λειτουργία
o Οι εντολές του βρόχου εκτελούνται για όλες τις τιμές της μεταβλητής από την τιμή1 μέχρι
την τιμή2 αυξανόμενες κατά την τιμή3.
o Αν το βήμα είναι 1 τότε παραλείπεται
o Χρησιμοποιείται όταν γνωρίζουμε εκ των προτέρων τον αριθμό των επαναλήψεων.

81. Τι ονομάζουμε τιμή φρουρό;

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

82. Εμφωλευμένοι βρόχοι και κανόνες χρήσης

{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: ΠΙΝΑΚΕΣ

84. Τι είναι πίνακας

{Ορισμός} Είναι ένα σύνολο αντικειμένων ιδίου τύπου τα οποία αναφέρονται με ένα κοινό όνομα. Commented [SS65]: Απομνημόνευση μόνο ο ορισμός
Κάθε ένα από τα αντικείμενα που τον αποτελούν ονομάζεται στοιχείο. Η αναφορά σε ατομικά
στοιχεία του πίνακα γίνεται με το όνομα του πίνακα ακολουθούμενο από ένα δείκτη.

Παρατηρήσεις

Το όνομα του πίνακα μπορεί να είναι οποιοδήποτε δεκτό όνομα της ΓΛΩΣΣΑΣ και ο δείκτης είναι μία
ακέραια έκφραση, σταθερή ή μεταβλητή που περικλείεται μέσα στα σύμβολα [ ]

Δήλωση πίνακα:

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

Στοιχείο:

Η αναφορά σε ένα στοιχείο το πίνακα γίνεται με το όνομά του πίνακα ακολουθούμενο από ένα
δείκτη. Κάθε ένα από τα αντικείμενα που τον αποτελούν ονομάζεται στοιχείο. Κάθε συγκεκριμένη
θέση μνήμης καλείται στοιχείο του πίνακα και προσδιορίζεται από την τιμή ενός δείκτη αν ο
πίνακας είναι μονοδιάστατος. Στην περίπτωση που είναι δισδιάστατος προσδιορίζεται από δύο
δείκτες. Αν είναι ν-διαστατος από ν δείκτες. Ο δείκτης είναι μία μεταβλητή που μπορεί να έχει
οποιοδήποτε δεκτό όνομα. Είναι σύνηθες όμως στον προγραμματισμό ως δείκτες να
χρησιμοποιούνται οι μεταβλητές i, j, k.

Πολυδιάστατοι πίνακες

Αν ο καθορισμός των στοιχείων ενός πίνακα απαιτεί παραπάνω από ένα δείκτη τότε μιλάμε για
πολυδιάστατους πίνακες: πχ 3 δείκτες τρισδιάστατος 2 δείκτες δισδιάστατος κλπ

Χρήση πινάκων:

Η ανάγνωση, επεξεργασία και εμφάνιση των στοιχείων των πινάκων γίνεται πάντοτε από βρόχους.
Συνήθως με την χρήση της δομής “Για” αφού είναι προκαθορισμένο το πλήθος των στοιχείων

σελίδα 39
85. Μειονεκτήματα από την χρήση πινάκων Commented [SS66]: Απομνημόνευση όλη

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

86. Πότε πρέπει να χρησιμοποιούνται πίνακες

1. Όταν τα δεδομένα που εισάγονται σε ένα πρόγραμμα πρέπει να διατηρούνται στην μνήμη μέχρι το
τέλος της εκτέλεσης.
2. Η απόφαση για την χρήση ή όχι πίνακα είναι θέμα εμπειρίας στον προγραμματισμό.

87. Τυπικές επεξεργασίες πινάκων Commented [SS67]: Να τα μάθουμε απ’ έξω

{ Καλό είναι να τις μελετήσεις σε συνδυασμό με τις τυπικές επεξεργασίες των δομών δεδομένων βλ.
Κεφάλαιο 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: ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ

88. Τμηματικός προγραμματισμός

{ ορισμός: } Ονομάζεται η τεχνική σχεδίασης και ανάπτυξης των προγραμμάτων ως ένα σύνολο από Commented [SS68]: Απομνημόνευση ο ορισμός
απλούστερα τμήματα προγραμμάτων.

Η ιεραρχική σχεδίαση, υλοποιείται με τον τμηματικό προγραμματισμό. Αφού αναλυθεί ένα


πρόβλημα σε υποπροβλήματα, κάθε υποπρόβλημα γράφεται σαν ανεξάρτητη οντότητα (module).
Αποτελεί ένα από τα βασικά συστατικά του δομημένου προγραμματισμού.

89. Υποπρόγραμμα Commented [SS69]: Απομνημόνευση όλη

{ ορισμός: } Ονομάζεται ένα τμήμα προγράμματος το οποίο επιτελεί ένα αυτόνομο έργο και έχει
γραφεί χωριστά από το υπόλοιπο πρόγραμμα.

90. Χαρακτηριστικά των υποπρογραμμάτων Commented [SS70]: Απομνημόνευσηη όλη η παράγραφος

1) Κάθε υποπρόγραμμα πρέπει να έχει μόνο μία είσοδο και μια έξοδο.

Η είσοδος σε αυτό γίνεται μόνο από την αρχή του και αφού εκτελέσει κάποιες ενέργειες,
απενεργοποιείται στην έξοδο από αυτό η οποία γίνεται μόνο στο τέλος του.

{ Προσοχή. Αυτό δεν σημαίνει ότι μια διαδικασία , για παράδειγμα, έχει μόνο μια είσοδο ή μόνο μία
έξοδο. Στην πραγματικότητα γνωρίζουμε ότι μπορεί να έχει πολλές εισόδους και εξόδους. Αυτό που
εννοεί εδώ το σχολικό είναι ότι δεν είναι δυνατόν να ενεργοποιηθεί το υποπρόγραμμα πουθενά
αλλού εκτός από την αρχή του. Όμοια σταματά μόνο όταν εκτελεστεί η εντολή: τέλος_διαδικασίας..
Σε κανένα άλλο σημείο δεν μπορεί να σταματήσει. Άρα έχει μία και μόνο έξοδο. }

2) Κάθε υπ/μα πρέπει να είναι ανεξάρτητο από τα άλλα.

Κάθε υπ/μα μπορεί να σχεδιαστεί, να αναπτυχθεί και να συντηρηθεί αυτόνομα ,χωρίς να


επηρεαστούν άλλα υποπρογράμματα. Στην πράξη όμως, η απόλυτη ανεξαρτησία είναι δύσκολο να
γίνει.

3) Κάθε υπ/μα πρέπει να μην είναι πολύ μεγάλο.

Η έννοια του μεγάλου είναι υποκειμενική. Γενικά κάθε υπ/μα πρέπει να εκτελεί μόνο μια
λειτουργία. Αν εκτελεί παραπάνω από μία, τότε συνήθως μπορεί να διασπαστεί σε μικρότερα
υποπρογράμματα.

σελίδα 41
91. Πλεονεκτήματα του τμηματικού προγραμματισμού. Commented [SS71]: Απομνημόνευση όλη

1) Διευκολύνει την ανάπτυξη του προγράμματος.

• Αυτό γιατί επιτρέπει την εξέταση και επίλυση απλών προβλημάτων και όχι την κατά- μέτωπο
αντιμετώπιση του συνολικού προβλήματος.
• Με την σταδιακή αντιμετώπιση των υποπροβλημάτων επιλύεται τελικά και το συνολικό

2) Διευκολύνει την κατανόηση και διόρθωση του προγράμματος.

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

{... είναι πιο εύκολο να εξετάζεις πολλά μικρά κομματάκια αλγορίθμων που κάνουν μια
συγκεκριμένη ενέργεια, παρά ένα τεράστιο αλγόριθμο που τα κάνει όλα! }

3) Απαιτεί λιγότερο κόπο και χρόνο στην συγγραφή του προγράμματος.

• Πολύ συχνά σε διαφορετικά σημεία ενός προγράμματος χρειάζεται να εκτελεστεί η ίδια


λειτουργία.
• Από την στιγμή, όμως που ένα υπ/μα έχει γραφεί, μπορεί να χρησιμοποιηθεί πολλές φορές.
• Έτσι, χρησιμοποιώντας στο ίδιο πρόγραμμα το ίδιο υποπρόγραμμα πολλές φορές μειώνεται
το μέγεθος του προγράμματος.
• Μειώνεται παράλληλα ο κόπος για την συγγραφή του και ο χρόνος και οι πιθανότητες
λάθους.

4) Επεκτείνει τις δυνατότητες των γλωσσών προγραμματισμού.

• Η χρήση ενός υποπρογράμματος δεν διαφέρει από την χρήση των ενσωματωμένων
συναρτήσεων (Α_Τ , Τ_Ρ, κλπ).
• Έτσι αν χρειάζεται κάποια λειτουργία που δεν υποστηρίζεται απευθείας από την γλώσσα
προγραμματισμού τότε μπορεί να γραφεί το αντίστοιχο υπ/μα.
• Η συγγραφή πολλών υποπρογραμμάτων και η δημιουργία βιβλιοθηκών με αυτά
επεκτείνουν την ίδια την γλώσσα προγραμματισμού.

92. Παράμετροι Commented [SS72]: Απομνημόνευση όλη

{Ορισμός:} Μια παράμετρος είναι μια μεταβλητή που επιτρέπει το πέρασμα της τιμής της από ένα
τμήμα προγράμματος σε ένα άλλο.

{Είναι σαν τις κοινές μεταβλητές ενός προγράμματος με μια ουσιώδη διαφορά: χρησιμοποιούνται για
να περνούν τιμές από και προς τα υποπρογράμματα.}

σελίδα 42
93. Σύντομη περιγραφή της λειτουργίας ενός υποπρογράμματος.

Κάθε υποπρόγραμμα για να ενεργοποιηθεί καλείται , όπως λέγεται, από ένα άλλο υποπρόγραμμα ή
από το αρχικό πρόγραμμα. (Το αρχικό πρόγραμμα ονομάζεται κυρίως πρόγραμμα.)

Το υπ/μα είναι αυτόνομο και ανεξάρτητο αλλά πρέπει να επικοινωνεί με το υπόλοιπο πρόγραμμα.

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

Οι τιμές αυτές περνούν από το ένα υπ/μα στο άλλο με την βοήθεια των παραμέτρων.

94. Τι είναι συνάρτηση. Commented [SS73]: Απομνημόνευση όλη

{Ορισμός:} Είναι ένας τύπος υποπρογράμματος που υπολογίζει και επιστρέφει μία μόνο τιμή με το
όνομά της.

95. Τι είναι διαδικασία. Commented [SS74]: Απομνημόνευση όλη

(Ορισμός:) Είναι ένας τύπος υποπρογράμματος που μπορεί να εκτελεί όλες τις λειτουργίες ενός
προγράμματος.

96. Δομή συνάρτησης: Commented [SS75]: Απομνημόνευση μόνο η δομή

Κάθε συνάρτηση έχει την ακόλουθη δομή και ορίζεται μετά από το τέλος_προγράμματος:

Συνάρτηση όνομα (λίστα τυπικών παραμέτρων): τύπος συνάρτησης


τμήμα δηλώσεων
Αρχή
...
όνομα←έκφραση
...
τέλος_συνάρτησης

σελίδα 43
Ονομα: Το όνομα της συνάρτησης είναι οποιοδήποτε έγκυρο όνομα της ΓΛΩΣΣΑΣ.

Η λίστα τυπικών παραμέτρων: είναι μια λίστα μεταβλητών των οποίων οι τιμές μεταβιβάζονται
στην συνάρτηση. {Αποτελείται από τις μεταβλητές εισόδου της συνάρτησης}

Ο τύπος της συνάρτησης: είναι ο τύπος της τιμής που υπολογίζει η συνάρτηση. Μπορεί να είναι
ακέραια, λογική, πραγματική, ή χαρακτήρας.{θυμήσου ότι η συνάρτηση επιστρέφει μία μόνο τιμή}

Εντολές: Στις εντολές του σώματος της συνάρτησης πρέπει υποχρεωτικά να υπάρχει μια εντολή
εκχώρησης τιμής στο όνομα της συνάρτησης. (όνομα←έκφραση) {Αυτή η εκχώρηση αποτελεί
ουσιαστικά τον μηχανισμό εξόδου της συνάρτησης}

97. Δομή διαδικασίας: Commented [SS76]: Απομνημόνευση όλη η παράγραφος

Κάθε διαδικασία έχει την ακόλουθη δομή και ορίζεται μετά από το τέλος_προγράμματος:

Διαδικασία όνομα (λίστα τυπικών παραμέτρων)


τμήμα δηλώσεων
Αρχή
...
τέλος_διαδικασίας

Όνομα: Το όνομα της διαδικασίας είναι οποιοδήποτε έγκυρο όνομα της γλώσσας.

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

Εντολές: Στο σώμα της διαδικασίας μπορούν να υπάρχουν οποιεσδήποτε εντολές της ΓΛΩΣΣΑΣ.

98. Κλήση συναρτήσεων.

Κάθε συνάρτηση καλείται όπως ακριβώς καλούνται οι ενσωματωμένες συναρτήσεις της ΓΛΩΣΣΑΣ (Α_Τ,
Τ_Ρ κλπ.)
Απλώς αναφέρεται το όνομά της σε μια έκφραση ή σε μια εντολή και επιστρέφεται η τιμή της.
Παράδειγμα:
Ε←Εμβαδό_κύκλου(R) Το κύριο πρόγραμμα πριν την κλήση της συνάρτηση γνωρίζει την τιμή της
μεταβλητής R. Κατά την κλήση της συνάρτηση μεταβιβάζεται η τιμή του R στην αντίστοιχη μεταβλητή της
συνάρτησης. Η συνάρτηση υπολογίζει το εμβαδόν και το αποτέλεσμα εκχωρείται στο όνομά της. Με το
τέλος_συνάρτησης γίνεται επιστροφή στο κυρίως πρόγραμμα όπου η τιμή του εμβαδού εκχωρείται στην
μεταβλητή Ε

σελίδα 44
99. Κλήση διαδικασιών Commented [SS77]: Απομνημόνευση όλη

Η κλήση μιας διαδικασίας από ένα πρόγραμμα ή από ένα άλλο υποπρόγραμμα γίνεται με την εντολή
κάλεσε.

• Σύνταξη:
Κάλεσε όνομα_διαδικασίας(λίστα πραγματικών παραμέτρων)
• Λειτουργία:
Η εκτέλεση του προγράμματος διακόπτεται. Εκτελούνται οι εντολές της διαδικασίας.Μετά το
τέλος της διαδικασίας η εκτέλεση του προγράμματος συνεχίζεται με την εντολή που βρίσκεται
μετά την κάλεσε.
• Λίστα παραμέτρων:
Μπορεί να περιλαμβάνει καμία, μία ή περισσότερες παραμέτρους. Ορίζει τις τιμές εισόδου
προς την διαδικασία αλλά και τις τιμές εξόδου της διαδικασίας.

{παρατήρησε ότι η λίστα παραμέτρων μπορεί να μην περιλαμβάνει και καμία παράμετρο}

100. Πραγματικές παράμετροι. Commented [SS78]: Απομνημόνευση όλη

{Ορισμός} Η λίστα των πραγματικών παραμέτρων καθορίζει τις παραμέτρους στην κλήση ενός
υποπρογράμματος.

101. Τυπικές παράμετροι. Commented [SS79]: Απομνημόνευση όλη

{ορισμος} Η λίστα των τυπικών παραμέτρων καθορίζει τις παραμέτρους στην δήλωση ενός
υποπρογράμματος. Μερικές γλώσσες προγραμματισμού τις ονομάζουν και ορίσματα.

102. Κανόνες παραμέτρων. Commented [SS80]: Απομνημόνευση όλη

1. Ο αριθμός των πραγματικών και τυπικών παραμέτρων πρέπει να είναι ο ίδιος.


2. Κάθε πραγματική παράμετρος αντιστοιχεί στην αντίστοιχη τυπική.
3. Η πραγματική παράμετρος και η αντίστοιχή της τυπική πρέπει να είναι του ίδιου τύπου.

{ Εξαίρεση στον τρίτο κανόνα αποτελεί το σενάριο όπου η πραγματική παράμετρος είναι ακέραια και
η τυπική παράμετρος είναι πραγματική. Το σχολικό εγχειρίδιο όμως δεν αναφέρει πουθενά κάτι
τέτοιο. Για τον λόγο αυτό μην το αναφέρεις :) }

103. Χρήση στοίβας στην κλήση διαδικασιών.

Όλες οι εντολές ενός προγράμματος έχουν μια μοναδική “διεύθυνση”. Όταν μια διαδικασία ή μία
συνάρτηση καλείται από το κύριο πρόγραμμα, τότε η διεύθυνση της αμέσως επόμενης εντολής του
κυρίου προγράμματος (που ονομάζεται διεύθυνση επιστροφής) αποθηκεύεται από τον μεταφραστή
σε μια στοίβα. Η στοίβα αυτή ονομάζεται στοίβα χρόνου εκτέλεσης. Μετά την εκτέλεση της διαδικασίας

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

104. Τοπικές μεταβλητές Commented [SS81]: Απομνημόνευση όλη

Κάθε κύριο πρόγραμμα όπως και κάθε υποπρόγραμμα περιλαμβάνει τις δικές του μεταβλητές και
σταθερές. Ολες οι μεταβλητές και όλες οι σταθερές στη ΓΛΩΣΣΑ είναι γνωστές στο αντίστοιχο
προγραμμα/υποπρόγραμμα που δηλώνονται και μόνο σε αυτό. Είναι δηλαδή τοπικές στο
συγκεκριμένο τμήμα προγράμματος. Ο μόνος τρόπος για να περάσει μία τιμή από ένα
υποπρόγραμμα σε ένα άλλο ή από το κυρίως πρόγραμμα σε ένα υποπρόγραμμα είναι διαμέσου των
παραμέτρων κατά το στάδιο της κλήσης του υποπρογράμματος και μετά το τέλος της εκτέλεσης του
υποπρογράμματος.

105. Τι ονομάζεται εμβέλεια μεταβλητών Commented [SS82]: Απομνημόνευση όλη

{Ορισμός} Εμβέλεια (scope) μεταβλητών λέγεται το τμήμα του προγράμματος που ισχύουν οι
μεταβλητές

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

106. Απεριόριστη εμβέλεια. Commented [SS83]: Απομνημόνευση όλη

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

107. Περιορισμένη εμβέλεια Commented [SS84]: Απομνημόνευση όλη

Υποχρεώνει όλες τις μεταβλητές που χρησιμοποιούνται σε ένα τμήμα προγράμματος, να δηλώνονται
σε αυτό το τμήμα. Όλες οι μεταβλητές είναι τοπικές, ισχύουν δηλαδή για το υποπρόγραμμα στο οποίο
δηλώθηκαν. (Στη ΓΛΩΣΣΑ έχουμε περιορισμένη εμβέλεια.)

σελίδα 46
Πλεονεκτήματα:
1. Απόλυτη αυτονομία όλων των υποπρογραμμάτων και
2. η δυνατότητα να χρησιμοποιείται οποιοδήποτε όνομα μεταβλητής/σταθεράς, (χωρίς να ενδιαφέρει
αν το ίδιο χρησιμοποιείται σε άλλο υποπρόγραμμα.)

108. Μερικώς περιορισμένη εμβέλεια. Commented [SS85]: Απομνημόνευση όλη

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

How strange to use "You only live once" as an excuse to throw it away.

Bill Copeland

σελίδα 47
ΕΡΩΤΗΣΕΙΣ ΣΩΣΤΟΥ ΛΑΘΟΥΣ

Κεφάλαιο 2
1. Όταν ένας αλγόριθμος εκφράζεται υπό μορφή ελευθέρου κειμένου, υπάρχει κίνδυνος παραβίασης του κριτηρίου της
καθοριστικότητας

2. Μια μεταβλητή μπορεί να αλλάζει τιμή και όνομα κατά τη διάρκεια εκτέλεσης ενός αλγορίθμου

3. Κάθε βρόχος ΓΙΑ μπορεί να μετατραπεί σε ΜΕΧΡΙΣ_ΟΤΟΥ

4. H εντολή εκχώρησης τιμής αποδίδει το αποτέλεσμα μιας έκφρασης (παράστασης) σε μια μεταβλητή.

5. Η δομή της επιλογής χρησιμοποιείται στις περιπτώσεις όπου υπάρχει μία συγκεκριμένη σειρά βημάτων για την
επίλυση ενός προβλήματος

6. Στην δομή ΜΕΧΡΙΣ_ΟΤΟΥ, υπάρχει περίπτωση η ομάδα εντολών του βρόχου να μην εκτελεστεί καμία φορά

7. Η σύζευξη δύο λογικών συνθηκών είναι ψευδής όταν μόνο μία από τις δύο λογικές συνθήκες είναι αληθής

8. Με την εντολή "Αν Χ div 2 = 0 " ελέγχουμε αν ο Χ είναι άρτιος

9. Για τον υπολογισμό του μέσου όρου αριθμών πρέπει να χρησιμοποιηθεί η δομή επιλογής

10. Στην πολλαπλή επιλογή κάθε περίπτωση αντιστοιχεί σε διαφορετική τιμή της μεταβλητής

11. Η λογική πρόταση "Χ ^ 2 > 0" είναι πάντοτε αληθής

12. Η ολίσθηση προς τα αριστερά ισοδυναμεί με πολλαπλασιασμό του αριθμού επί 2

13. Σε μια εντολή εκχώρησης δεν επιτρέπεται η χρήση σταθερών

14. Κάθε βρόχος ΟΣΟ μπορεί να μετατραπεί σε ΜΕΧΡΙ_ΟΤΟΥ και το αντίθετο

15. Η συνθήκη είναι μια λογική έκφραση με λογικούς τελεστές που μπορεί να πάρει τιμή Αληθής ή Ψευδής

16. Εντός μιας δομής επανάληψης δεν μπορεί να περιέχεται δομή επιλογής

17. Κάθε βρόχος "Για" μπορεί να μετατραπεί σε "Όσο"

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

19. Οι επαναληπτικές δομές χρησιμοποιούνται στην περίπτωση που μια ομάδα εντολών πρέπει να εκτελεστεί πολλές
φορές

20. Όταν το πλήθος των επαναλήψεων είναι γνωστό δεν μπορεί να χρησιμοποιηθεί η δομή επανάληψης
"Όσο...επανάλαβε"

21. Σε μια εντολή εκχώρησης είναι δυνατόν μια παράσταση στο δεξιό μέλος να περιέχει τη μετα­βλητή που βρίσκεται
στο αριστερό μέλος.

22. Η εντολή Χ <-- Χ * Χ είναι έγκυρη

23. Το ελεύθερο κείμενο θεωρείται ο πιο αδόμητος τρόπος αναπαράστασης αλγορίθμου

24. Η δομή της επιλογής περιλαμβάνει τον έλεγχο κάποιας συνθήκης που μπορεί να έχει δύο τιμές (Αληθής ή Ψευδής)

σελίδα 48
25. Στην δομή επανάληψης "Μέχρις_ότου" οι μεταβλητές που συμμετέχουν στην συνθήκη πρέπει να αρχικοποιούνται
πριν το βρόχο

26. Μια σταθερά μπορεί να αλλάξει τιμή κατά τη διάρκεια εκτέλεσης ενός αλγορίθμου.

27. Κάθε βρόχος ΓΙΑ μπορεί να μετατραπεί σε ΟΣΟ

28. Όταν πρέπει να εκτελεστούν κάποιες εντολές υπό κάποια συνθήκη χρησιμοποιείται η δομή ακολoυθίας

29. Στο δεξί τμήμα μιας εντολής εκχώρησης πρέπει να υπάρχει υποχρεωτικά πράξη.

30. Η δομή "Όσο...Επανάλαβε" χρησιμοποιείται μόνο όταν γνωρίζουμε το πλήθος των επαναλήψεων

31. Με την εντολή ΜΕΧΡΙΣ_ΟΤΟΥ υπάρχει ένας βρόχος που εκτελείται τουλάχιστον μία φορά

32. Στη δομή ακολουθίας μια συγκεκριμένη εντολή μπορεί να εκτελεστεί πολλές φορές

33. Η σειρά εκτέλεσης των εντολών στη δομή ακολoυθίας είναι προκαθορισμένη

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

35. Το όνομα μιας μεταβλητής πρέπει υποχρεωτικά να αρχίζει με γράμμα ή με κάτω παύλα _

36. Η δομή επιλογής περιλαμβάνει τον έλεγχο κάποιας συνθήκης που μπορεί να έχει δύο τιμές (Αληθής ή Ψευδής)

37. Κάθε πρόβλημα που απαιτεί τη χρήση δομής επανάληψης μπορεί να επιλυθεί με τη χρήση της δομής επανάληψης
"Για"

38. Η έννοια του αλγορίθμου συνδέεται αποκλειστικά και μόνο με προβλήματα της Πληροφορικής.

39. Στη δομή ακολουθίας εκτελούνται όλες οι εντολές

40. Μια υπολογιστική διαδικασία που δεν τελειώνει μετά από συγκεκριμένο αριθμό βημάτων αποτελεί αλγόριθμο.

41. Μια δομή επιλογής μπορεί να περιλαμβάνει μόνο εντολές εκχώρησης τιμής

42. Εντός μιας δομής επιλογής δεν μπορεί να περιέχεται δομή επανάληψης

43. Αλγόριθμος είναι μια ακολουθία βημάτων που βοηθά στην επίλυση ενός προβλήματος

44. Τα κυριότερα σύμβολα των διαγραμμάτων ροής είναι η έλλειψη, ο ρόμβος, το ορθογώνιο και το πλάγιο
παραλληλόγραμμο

45. Ένας αλγόριθμος μπορεί να παρασταθεί συνολικά με 4 διαφορετικούς τρόπους

46. Μια δομή επιλογής μπορεί να περιλαμβάνει μόνο εντολές εκχώρησης τιμής

47. Ένας αλγόριθμος μπορεί να έχει καμία, μία ή πολλές τιμές δεδομένων που του δίνονται ως είσοδοι

48. Η είσοδος σε ένα αλγοριθμικό πρόβλημα είναι ένα σύνολο μεταβλητών που σχετίζονται με τα δεδομένα του

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

50. Σε μια έκφραση εκτελούνται πρώτα οι συγκριτικοί τελεστές και στη συνέχεια οι αριθμητικοί

51. Η δομή της ακολουθίας είναι ιδιαίτερα χρήσιμη για την αντιμετώπιση πολύπλοκων προβλημάτων

52. Μια δομή επανάληψης πρέπει να φροντίζει για μεταβολή της τιμής της συνθήκης ώστε κάποτε να τερματίζεται

σελίδα 49
53. Αν οι μεταβλητές α, β είναι αριθμητικές και έχουν κάποια τιμή, τότε οι παρακάτω εντολές αν εκτελεστούν στη σειρά,
ανταλλάσσουν τις τιμές τους Α ← Α + Β , Β ← Α – Β , Α ← Α – Β

54. Μια δομή επιλογής μπορεί να εκτελεστεί πολλές φορές.

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

56. Ο αλγόριθμος αποτελείται από ένα πεπερασμένο σύνολο εντολών

57. Η δομή ΟΣΟ χρησιμοποιείται μόνο όταν γνωρίζουμε το πλήθος των επαναλήψεων

58. Με την εντολή "Αρχή_επανάληψης…Μέχρις_ότου…" υπάρχει ένας βρόχος που εκτελείται τουλάχιστον μία φορά

59. Χρησιμοποιούμε τη δομή επιλογής όταν θέλουμε μια ομάδα εντολών να εκτελεστεί πολλές φορές

60. Η πιο γνωστή διαγραμματική τεχνική αναπαράστασης του αλγορίθμου είναι τα διαγράμματα ροής.

61. Στις δομές "Όσο" και "Μέχρις_ότου", οι συνθήκες είναι μεταξύ τους αντίθετες

62. Μία εντολή "Αν…τότε" δεν μπορεί να περιληφθεί στα όρια κάποιας άλλης εντολής "Αν…τότε"

63. Όλα τα προβλήματα λύνονται και αλγοριθμικά

64. Δεσμευμένες λέξεις ονομάζονται αυτές που ορίζει ο προγραμματιστής ως ονομασίες των μεταβλητών που
χρησιμοποιεί

65. Τα σχόλια διευκολύνουν την κατανόηση ενός αλγορίθμου

66. Κάθε εντολή ενός αλγορίθμου πρέπει να καθορίζεται χωρίς αμφιβολία για τον τρόπο εκτέλεσής της.

67. Ο πιο δομημένος τρόπος παρουσίασης αλγορίθμων είναι με ελεύθερο κείμενο.

68. Εντός της δομής ΓΙΑ δεν επιτρέπεται η τροποποίηση της τιμής του μετρητή

69. Η δομή "Μέχρις_ότου" τερματίζεται όταν η συνθήκη είναι αληθής.

70. Κάθε βρόχος "Όσο" μπορεί να μετατραπεί σε "Μέχρις_ότου" χωρίς την προσθήκη επιπλέον εντολών

71. Στη δομή επανάληψης Για πρέπει η τιμή του μετρητή να μεταβάλλεται εντός του βρόχου

72. Στην δομή "Μέχρις_ότου", υπάρχει περίπτωση η ομάδα εντολών του βρόχου να μην εκτελεστεί καμία φορά

73. Ο αλγόριθμος τελειώνει μετά από πεπερασμένα βήματα εκτέλεσης εντολών.

74. Οι συγκριτικοί τελεστές έχουν μικρότερη προτεραιότητα από τους αριθμητικούς και μεγαλύτερη από τους λογικούς

75. Η δομή ΟΣΟ τερματίζεται όταν η συνθήκη γίνεται ψευδής

76. Στη δομή επανάληψης Για το βήμα δεν μπορεί να είναι μηδέν

77. Όταν σε μια δομή ΓΙΑ παραλείπεται το βήμα, τότε εννοείται ως βήμα το 1

78. Στην δομή επανάληψης ΟΣΟ οι μεταβλητές που υπάρχουν στην συνθήκη πρέπει να πάρουν τιμή πριν το βρόχο

79. Μια σειρά βημάτων που δεν ικανοποιεί το κριτήριο της περατότητας δεν αποτελεί αλγόριθμο

80. Στην δομή επανάληψης ΜΕΧΡΙΣ_ΟΤΟΥ οι μεταβλητές που υπάρχουν στην συνθήκη πρέπει να αρχικοποιούνται πριν
το βρόχο

σελίδα 50
81. Στην εντολή Χ <-- Α mod B η μεταβλητή Χ μπορεί να είναι πραγματική

82. Μια μεταβλητή μπορεί να αποθηκεύσει και αλφαριθμητικά δεδομένα

83. Κάθε εντολή Αν περιέχει Αλλιώς

84. Δύο πολύ γνωστοί αλγόριθμοι της αρχαιότητας ανοίκουν στον Ευκλείδη και τον Ερατοσθένη

85. Κάθε πρόβλημα που απαιτεί τη χρήση δομής επανάληψης μπορεί να επιλυθεί με τη χρήση της δομής επανάληψης
"Μέχρις_ότου" χωρίς την προσθήκη επιπλέον εντολών.

86. Οι εντολές του βρόχου "Για" εκτελούνται τουλάχιστον μια φορά

87. Για την αναπαράσταση των δεδομένων εισόδου ενός αλγορίθμου χρησιμοποιούμε τις σταθερές

88. Οι ενέργειες που ορίζει ένας αλγόριθμος είναι αυστηρά καθορισμένες.

89. Η εντολή "Για i από .. μέχρι .. βήμα .." πρέπει να περιλαμβάνει για βήμα πάντοτε ένα θετικό αριθμό

90. Όταν χρειάζεται να υπάρξει απόφαση με βάση κάποιο κριτήριο, τότε χρησιμοποιείται η δομή της επιλογής

91. Στη δομή επιλογής υπάρχει περίπτωση κάποιες εντολές να μην εκτελεστούν ποτέ

92. Ο ατέρμων βρόχος μιας εντολής επανάληψης οδηγεί σε έναν αλγόριθμο χωρίς περατότητα

93. Οι τελεστές div και mod έχουν μεγαλύτερη προτεραιότητα από τους τελεστές * και /

94. Κάθε βρόχος "Όσο" μπορεί να μετατραπεί σε "Για"

95. Ο αλγόριθμος είναι απαραίτητος μόνο για την επίλυση προβλημάτων πληροφορικής.

96. Για την αναπαράσταση των δεδομένων εισόδου ενός αλγορίθμου χρησιμοποιούμε τις σταθερές

97. Στη δομή επανάληψης Για δεν είναι δυνατόν η αρχική τιμή να είναι να είναι μεγαλύτερη από την τελική

98. Για να αναπαραστήσουμε τα δεδομένα και τα αποτελέσματα σ’ έναν αλγόριθμο, χρησιμοποιούμε σταθερές

99. Στην δομή πολλαπλής επιλογής εκτελείται πάντα το τμήμα "Αλλιώς"

100. Το αποτέλεσμα μια πράξης μπορεί να εκχωρηθεί σε μια σταθερά

101. Η εντολή ΓΙΑ πρέπει να περιλαμβάνει για βήμα πάντοτε ένα θετικό αριθμό

102. Τα είδη των μεταβλητών που χρησιμοποιούμε είναι οι αριθμητικές, οι αλφαριθμητικές και οι σταθερές

103. Ο αλγόριθμος μπορεί να περιλαμβάνει και εντολές που δεν είναι σαφείς

104. Η αναπαράσταση των αλγορίθμων μπορεί να γίνει με χρήση ελεύθερου κειμένου και φυσικής γλώσσας

105. Στο διάγραμμα ροής το σχήμα του ρόμβου δηλώνει το τέλος ενός αλγορίθμου

106. Μία εντολή «Αν…τότε» δεν μπορεί να περιληφθεί στα όρια κάποιας άλλης εντολής "Αν…τότε"

107. Με χρήση της εντολής “Όσο...επανάλαβε” επιτυγχάνεται η επανάληψη μίας διαδικασίας με βάση κάποια συνθήκη

108. Κάθε πρόβλημα που απαιτεί τη χρήση δομής επανάληψης μπορεί να επιλυθεί με τη χρήση της δομής επανάληψης
"Όσο"

109. Η τιμή μιας μεταβλητής δε μπορεί να αλλάξει κατά τη διάρκεια εκτέλεσης ενός αλγορίθμου.

σελίδα 51
110. Δεξιά μιας εντολής εκχώρησης δεν μπορεί να βρίσκεται η ίδια μεταβλητή που βρίσκεται αριστερά

111. Κάθε εντολή πολλαπλής επιλογής μπορεί να αναπαρασταθεί από πολλά απλά Αν

112. Ένας αλγόριθμος στοχεύει στην επίλυση ενός προβλήματος.

113. Δεν μπορούμε να έχουμε μια δομή επανάληψης μέσα σε μια άλλη δομή επανάληψης

114. Στη δομή απλής επιλογής η ομάδα εντολών εντός της δομής εκτελείται όταν η συνθήκη είναι αληθής

115. Στην δομή επανάληψης "Όσο" οι μεταβλητές που συμμετέχουν στην συνθήκη πρέπει να πάρουν τιμή πριν το βρόχο

116. Ένας αλγόριθμος είναι μία πεπερασμένη σειρά ενεργειών.

117. Η εντολή εκχώρησης τιμής αποδίδει το αποτέλεσμα μιας έκφρασης (παράστασης) σε μια μεταβλητή.

118. Με την εντολή Διάβασε διακόπτεται η ροή εκτέλεσης των εντολών του αλγορίθμου

119. Ο αλγόριθμος υπολογισμού του μέγιστου κοινού διαιρέτη δύο αριθμών, ανήκει στον Ευκλείδη.

120. Το διάγραμμα ροής (flow chart) είναι ένας τρόπος περιγραφής αλγορίθμου.

121. Ένας αλγόριθμος επιλύει μόνο υπολογιστικά προβλήματα

122. Για όλους τους ακέραιους θετικούς αριθμούς Χ ισχύει πως το Χ DIV 2 είναι ίσο με το Α_Μ(Χ/2).

123. Για τον υπολογισμό μίας έκφρασης όλες οι μεταβλητές που εμφανίζονται σε αυτή πρέπει να έχουν οριστεί πριν,
δηλαδή να έχουν κάποια τιμή.

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

125. Η εντολή εκχώρησης αποδίδει το αποτέλεσμα μίας έκφρασης σε μία μεταβλητή.

126. Η λογική πράξη Ή μεταξύ 2 προτάσεων είναι ψευδής, όταν οποιαδήποτε από τις 2 προτάσεις είναι ψευδής.

127. Η ολίσθηση ισχύει και στους δεκαδικούς.

128. Η συνθήκη ΟΧΙ(7>3-10 ΚΑΙ 5>3) είναι ΑΛΗΘΗΣ.

129. Ο αλγόριθμος του πολλαπλασιασμού αλά ρώσικα χρησιμοποιείται από τους υπολογιστές για την εκτέλεση του
πολλαπλασιασμού.

130. Ο τελεστής mod χρησιμοποιείται για τον υπολογισμό του πηλίκου μίας διαίρεσης ακέραιων αριθμών

131. Πολλαπλές επιλογές μπορούν να γίνουν με μία εμφωλευμένη δομή.

132. Σε μία εντολή εκχώρησης του αποτελέσματος μίας έκφρασης σε μια μεταβλητή, η μεταβλητή και η έκφραση πρέπει
να είναι του ίδιου τύπου

133. Στην έκφραση Ζ<--Χ DIV Υ μπορεί κάποιο από τα Χ, Υ, Ζ να είναι πραγματικός αριθμός.

134. Το κριτήριο της καθοριστικότητας απαιτεί κάθε εντολή ενός αλγόριθμου να είναι απλή και εκτελέσιμη.

135. Το πλάγιο παραλληλόγραμμο χρησιμοποιείται για είσοδο/έξοδο και τη συνθήκη σε ένα διάγραμμα ροής.

136. Κάθε εντολή ΑΝ πρέπει να έχει την αντίστοιχη εντολή ΤΕΛΟΣ_ ΑΝ εκτός και αν αποτελείται από μόνο μία εντολή
τοποθετημένη μετά τη δεσμευμένη λέξη ΤΟΤΕ.

σελίδα 52
137. Η θέση ενός στοιχείου σε έναν δισδιάστατο πίνακα καθορίζεται από δυο ακέραιους αριθμούς.

Κεφάλαιο 3

138. Η ταξινόμηση της φυσαλίδας ταξινομεί τα στοιχεία ενός μονοδιάστατου πίνακα μόνο σε αύξουσα σειρά

139. Η δυναμική παραχώρηση μνήμης χρησιμοποιείται στις δομές των πινάκων.

140. Τα στοιχεία ενός πίνακα είναι απαραίτητο να είναι όλα του ίδιου τύπου

141. Οι δομές δεδομένων διακρίνονται σε στατιστικές και δυναμικές

142. Η προσπέλαση είναι μια από τις βασικές πράξεις επί των δομών δεδομένων.

143. Η συγχώνευση και ο διαχωρισμός είναι δύο πράξεις που απαγορεύονται στις στατικές δομές.

144. Πολλές από τις σύγχρονες γλώσσες προγραμματισμού δεν παρέχουν δυναμικές δομές δεδομένων.

145. Ο πίνακας είναι μια δυναμική δομή δεδομένων που περιέχει στοιχεία του ιδίου τύπου.

146. Για τον υπολογισμό μέσου όρου 120 αριθμών πρέπει να χρησιμοποιηθεί πίνακας

147. Η σειριακή αναζήτηση και η δυαδική αναζήτηση μπορούν να χρησιμοποιηθούν σε όλους τους μονοδιάστατους
πίνακες

148. Για να εφαρμοστεί η μέθοδος της σειριακής αναζήτησης είναι απαραίτητο τα στοιχεία να είναι ταξινομημένα.

149. Η χρήση πινάκων έχει το μειονέκτημα της υπερβολικής χρήσης μνήμης

150. Η δυναμική παραχώρηση μνήμης χρησιμοποιείται στις στατικές δομές δεδομένων.

151. Η ταξινόμηση εφαρμόζεται και σε δισδιάστατους πίνακες.

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

153. Η ταξινόμηση έχει ως στόχο να διατάξει τα στοιχεία ενός μονοδιάστατου πίνακα με αύξουσα ή φθίνουσα διάταξη

154. Εναλλακτικοί αλγόριθμοι ταξινόμησης είναι : με επιλογή, με παρεμβολή και με υπερβολή.

155. Η ταξινόμηση είναι χρήσιμη διαδικασία γιατί έτσι εκτελείται γρηγορότερα η αναζήτηση

156. Η ταξινόμηση της φυσαλίδας χρησιμοποιείται μόνο σε ταξινομημένους πίνακες

157. Κάθε δομή δεδομένων μπορεί να χρησιμοποιηθεί σε οποιοδήποτε πρόβλημα ή εφαρμογή

158. Η θέση ενός στοιχείου σε έναν δισδιάστατο πίνακα καθορίζεται από δυο αριθμούς

159. Για το διάβασμα των στοιχείων ενός τρισδιάστατου πίνακα χρειάζονται 3 εμφωλευμένες εντολές ΓΙΑ.

160. Η ταξινόμηση των πινάκων μπορεί να γίνει με περισσότερα του ενός κριτήρια.

161. Σε μία δυναμική δομή δεδομένων τα δεδομένα αποθηκεύονται υποχρεωτικά σε συνεχόμενες θέσεις μνήμης.

162. Όταν γίνεται σειριακή αναζήτηση κάποιου στοιχείου σε έναν μη ταξινομημένο πίνακα και το στοιχείο δεν υπάρχει
στον πίνακα, τότε υποχρεωτικά προσπελαύνονται όλα τα στοιχεία του πίνακα.

σελίδα 53
163. Προσπέλαση είναι η εύρεση ενός κόμβου με κάποιο κριτήριο

164. Η σειριακή αναζήτηση μπορεί να εκτελεστεί μόνο σε μη ταξινομημένους πίνακες

165. Η ταξινόμηση φυσαλίδας είναι ο πιο απλός και ταυτόχρονα ο πιο γρήγορος αλγόριθμος ταξινόμη­σης.

166. Όταν γράφουμε ΠΙΝΑΚΑΣ[α, β] το α αντιστοιχεί στη γραμμή του πίνακα και το β στη στήλη.

167. Τα αρχεία είναι δυναμικές δομές δεδομένων που αποθηκεύονται στη δευτερεύουσα μνήμη του υπολογιστή.

168. Η μέθοδος της σειριακής αναζήτησης δικαιολογείται στην περίπτωση που ο πίνακας είναι μη ταξινομημένος και
μικρού μεγέθους.

169. Αν πρέπει να υπολογίσουμε το άθροισμα 100 ακεραίων, η χρήση πίνακα δεν είναι υποχρεωτική.

170. Όταν ψάχνουμε σε ένα τηλεφωνικό κατάλογο χρησιμοποιούμε τη σειριακή μέθοδο αναζήτησης

171. Η ταξινόμηση είναι μια από τις βασικές λειτουργίες επί των δομών δεδομένων.

172. Η εισαγωγή και η διαγραφή είναι δύο πράξεις που απαγορεύονται στις στατικές δομές.

173. Η σειριακή και η δυαδική αναζήτηση μπορούν να χρησιμοποιηθούν σε όλους τους μονοδιάστατους πίνακες.

174. Ένας πίνακας μπορεί να αποθηκεύσει ακεραίους αριθμούς και ονόματα.

175. Το μέγεθος μιας στατικής δομής καθορίζεται τη στιγμή της μετάφρασης και όχι την στιγμή της εκτέλεσης.

176. Με τη λειτουργία της συγχώνευσης, δύο ή περισσότερες δομές δεδομένων συνενώνονται σε μία ενιαία δομή.

177. Το πεδίο που ταυτοποιεί την εγγραφή ενός αρχείου ονομάζεται πρωτεύον κλειδί.

178. Δυναμικές είναι οι δομές που αποθηκεύονται σε συνεχόμενες θέσεις μνήμης

179. Για την σάρωση των στοιχείων ενός πίνακα, η χρήση της εντολής ΟΣΟ είναι η καλύτερη δυνατή.

180. Η σειριακή αναζήτηση χρησιμοποιείται αποκλειστικά στους ταξινομημένους πίνακες.

181. Το πεδίο που χρησιμοποιείται για την ταυτοποίηση των εγγραφών ενός αρχείου καλείται δευτερεύον κλειδί.

182. Η ταξινόμηση ευθείας ανταλλαγής είναι αποτελεσματική αν ο πίνακας έχει λίγα στοιχεία

183. Δομή δεδομένων είναι ένα σύνολο δεδομένων που μπορούμε να εφαρμόσουμε μια σειρά λειτουργιών

184. Δεν μπορεί να χρησιμοποιηθεί ο αλγόριθμος της φυσαλίδας σε πίνακα χαρακτήρων

185. Οι δισδιάστατοι πίνακες μπορούν να θεωρηθούν ως μονοδιάστατοι πίνακες όπου κάθε θέση τους θεωρούνται
άλλοι μονοδιάστατοι πίνακες

186. Οι δυναμικές δομές έχουν σταθερό μέγεθος.

187. Αλγόριθμοι + Δεδομένα = Προγράμματα

188. Η εγγραφή είναι δομή δεδομένων η οποία αποτελείται από πεδία που αποθηκεύουν χαρακτηριστικά.

189. Οι διαστάσεις ενός πίνακα μπορούν να μεταβληθούν κατά την διάρκεια εκτέλεσης ενός αλγορίθμου

190. Η σειριακή αναζήτηση μπορεί να οδηγήσει στην προσπέλαση ακόμη και ολόκληρου του πίνακα

191. Η δυναμική παραχώρηση μνήμης είναι η τεχνική που χρησιμοποιείται στους πίνακες

σελίδα 54
192. Η σειριακή αναζήτηση χρησιμοποιείται κυρίως για μικρούς ή μη ταξινομημένους πίνακες

193. Ο πίνακας είναι μια δυναμική δομή δεδομένων

194. Σε μια στατική δομή το ακριβές μέγεθος της απαιτούμενης κύριας μνήμης καθορίζεται κατά την εκτέλεση του
προγράμματος.

195. Για να προσπελάσουμε όλα τα στοιχεία ενός πίνακα χρησιμοποιούμε επαναληπτική δομή

196. Η πράξη της συγχώνευσης θεωρείται αντίστροφη της πράξης της ταξινόμησης.

197. Σύμφωνα με τον κανόνα του Wirth: Αλγόριθμοι + Δεδομένα = Προγράμματα.

198. Οι διαστάσεις ενός πίνακα μπορούν να τροποποιηθούν αν χρειάζεται κατά τη διάρκεια εκτέλεσης ενός αλγορίθμου

199. Δομή Δεδομένων είναι ένα σύνολο δεδομένων τα οποία υφίστανται επεξεργασία από λειτουργίες που καλούνται
από το υπόλοιπο πρόγραμμα

200. Δύο από τις μεθόδους ταξινόμησης είναι η ταξινόμηση ευθείας ανταλλαγής και η ταξινόμηση φυσαλίδας (bubble
sort).

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

202. Η δυαδική αναζήτηση είναι αποδοτικότερη από τη σειριακή.

203. Η λειτουργία της διαγραφής είναι λειτουργία αντίστροφη της αντιγραφής.

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

205. Η τακτοποίηση κατά αύξουσα ή φθίνουσα σειρά των κόμβων μίας δομής δεδομένων ονομάζεται εξαγωγή.

206. Η ταξινόμηση ευθείας ανταλλαγής είναι ο πιο απλός τρόπος και ταυτόχρονα ο πιο αργός αλγόριθμος ταξινόμησης

207. Η ταξινόμηση φυσαλίδας δε μπορεί να χρησιμοποιηθεί σε πίνακα χαρακτήρων.

208. Η ταξινόμηση φυσαλίδας είναι πιο αποτελεσματική σε πίνακες που είναι ταξινομημένοι κατά την αντίστροφη
σειρά σε σχέση με την επιθυμητή.

209. Η χρήση του αλγόριθμου της σειριακής αναζήτησης μπορεί να δικαιολογηθεί στην περίπτωση μικρών ή μη
ταξινομημένων πινάκων.

210. Με τη λειτουργία της συγχώνευσης δύο ή περισσότερες δομές δεδομένων συνενώνονται σε μία ενιαία δομή.

211. Ο πίνακας είναι μία δυναμική δομή δεδομένων.

212. Οι δομές δεδομένων δευτερεύουσας μνήμης αποθηκεύονται σε αρχεία.

213. Οι λειτουργίες εισαγωγή και διαγραφή δε μπορούν να εφαρμοστούν σε πίνακα.

214. Όταν γίνεται σειριακή αναζήτηση κάποιου στοιχείου σε ένα μη ταξινομημένο πίνακα και το στοιχείο δεν υπάρχει
στον πίνακα, τότε υποχρεωτικά προσπελαύνονται όλα τα στοιχεία του πίνακα.

215. Στις δυναμικές δομές δεδομένων το μέγεθος της απαιτούμενης κύριας μνήμης, μεταβάλλεται κατά τη διάρκεια της
εκτέλεσης του προγράμματος.

σελίδα 55
216. Στις στατικές δομές το ακριβές μέγεθος της απαιτούμενης κύριας μνήμης, καθορίζεται τη στιγμή του
προγραμματισμού τους.

Κεφάλαιο 6
217. Το εκτελέσιμο είναι το τελικό πρόγραμμα που εκτελείται από τον υπολογιστή

218. Ο μεταγλωττιστής μας επιτρέπει να συντάσσουμε ένα πρόγραμμα σε γλώσσα υψηλού επιπέδου.

219. Στο δομημένο προγραμματισμό ακολουθούνται οι αρχές του ιεραρχικού και του τμηματικού προγραμματισμού

220. Ο δομημένος προγραμματισμός επιτρέπει την άμεση μεταφορά των αλγορίθμων σε πρόγραμμα

221. Κάθε υποπρόβλημα της ιεραρχικής σχεδίασης αποτελεί μια ανεξάρτητη ενότητα στον τμηματικό προγραμματισμό

222. Ο μεταγλωττιστής έχει το μειονέκτημα ότι ελέγχει όλο το πρόγραμμα και πραγματοποιεί και την διαδικασία της
σύνδεσης πολλές φορές μέχρι να επιδιορθωθούν όλα τα λάθη

223. Ο μεταγλωττιστής εισάγει το αντικείμενο πρόγραμμα και εξάγει το πηγαίο πρόγραμμα.

224. Μια ακολουθία εντολών σε γλωσσα μηχανής είναι κατανοητή από τον επεξεργαστή και μπορεί να εκτελεστεί χωρίς
μετατροπή.

225. Ο τμηματικός προγραμματισμός υλοποιεί την φιλοσοφία της ιεραρχικής σχεδίασης

226. Χάρη στο δομημένο προγραμματισμό δημιουργούνται προγράμματα απλούστερα, κατανοήσιμα και εύκολα στη
διόρθωση

227. Το αντικείμενο πρόγραμμα είναι ουσιαστικά γλώσσα μηχανής

228. Τα σύγχρονα προγραμματιστικά περιβάλλοντα χρησιμοποιούν μικτές υλοποιήσεις διερμηνευτή και μεταγλωττιστή

229. Ο μεταγλωττιστής διορθώνει όλα τα συντακτικά λάθη με τη χρήση βιβλιοθηκών

230. Τα λογικά λάθη εντοπίζονται από έναν μεταγλωττιστή αλλά όχι από έναν διερμηνευτή

231. Ο δομημένος προγραμματισμός προϋποθέτει τη χρήση εξιδεικευμένων αλγοριθμικών δομών

232. Κάθε υποπρόβλημα της ιεραρχικής σχεδίασης αντιμετωπίζεται στον τμηματικό προγραμματισμό σαν ανεξάρτητη
ενότητα (module).

233. Οι φυσικές γλώσσες εξελίσσονται συνεχώς ενώ οι τεχνητές χαρακτηρίζονται από στασιμότητα.

234. Στην ιεραρχική σχεδίαση, η ανάλυση του αλγορίθμου πραγματοποιείται με την τεχνική «από πάνω προς τα κάτω»

235. Η γραμματική είναι το συντακτικό μιας γλώσσας, δηλαδή όλοι οι κανόνες που διέπουν τον τρόπο σύνδεσης των
λέξεων.

236. Κάθε προγραμματιστικό περιβάλλον διαθέτει αναγκαστικά ένα μεταφραστικό πρόγραμμα.

237. Βασικό στοιχείο του προγράμματος πέραν της κωδικοποίησης είναι οι δομές δεδομένων.

238. Τα συντακτικά λάθη στον πηγαίο κώδικα εμφανίζονται κατά το στάδιο της μεταγλώττισής του.

239. Δεν υπάρχουν ουσιαστικές διαφορές μεταξύ των φυσικών και των τεχνητών γλωσσών.

240. Υπάρχουν δυο μεγάλες κατηγορίες μεταφραστικών προγραμμάτων: οι μεταφραστές και οι μεταγλωττιστές

σελίδα 56
241. Η χρήση της εντολής ΜΟ ← α + β + γ / 3 αντί της ΜΟ ← (α + β + γ) / 3 είναι λογικό λάθος

242. Ο μεταγλωττιστής αναλαμβάνει το ρόλο της μετάφρασης από το πηγαίο πρόγραμμα στο εκτελέσιμο πρόγραμμα

243. Ο μεταγλωττιστής εξάγει το πηγαίο πρόγραμμα

244. Οι γλώσσες προγραμματισμού είναι τεχνητές γλώσσες που αναπτύχθηκαν με σκοπό την επικοινωνία ανθρώπου –
μηχανής.

245. Ο τμηματικός προγραμματισμός είναι μεθοδολογία που υλοποιεί την ιεραρχική σχεδίαση.

246. Η γραμματική είναι το συντακτικό μιας γλώσσας

247. Για την επιδιόρθωση των λογικών λαθών πολλές φορές ο προγραμματιστής καλείται να εκτελέσει το πρόγραμμά
του επανειλημμένα

248. Το τελικό πρόγραμμα ονομάζεται και αντικείμενο πρόγραμμα ενώ το αρχικό ονομάζεται και πηγαίο.

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

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

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

252. Τα τμήματα του προγράμματος που συνδέονται στο αντικείμενο είναι πάντα γραμμένα από τον ίδιο τον
προγραμματιστή.

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

254. Ο συνδέτης μετατρέπει το πηγαίο πρόγραμμα σε βιβλιοθήκη υποπρογραμμάτων.

255. Ενα πρόγραμμα σε γλώσσα μηχανής χρειάζεται μετατροπή σε ακολουθία δυαδικών ψηφίων ώστε να εκτελεστεί
από τον υπολογιστή

256. Το πηγαίο πρόγραμμα εκτελείται από τον υπολογιστή χωρίς μεταγλώττιση.

257. Ο διερμηνευτής (interpreter) μετατρέπει το εκτελέσιμο πρόγραμμα (executable) σε πρόγραμμα αντικείμενο


(object)

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

259. Ο δομημένος προγραμματισμός περιέχει την ιεραρχική σχεδίαση και τον τμηματικό προγραμματισμό

260. Ο διερμηνευτής έχει το πλεονέκτημα ότι το πρόγραμμα εκτελείται γρηγορότερα

261. Η παράλειψη μιας εντολής Τέλος_αν είναι λογικό λάθος

262. Η σημασιολογία μιας γλώσσας προσδιορίζει το νόημα των λέξεων, των φράσεων και των προτάσεών της.

263. Ο μεταγλωττιστής σε ένα σύγχρονο προγραμματιστικό περιβάλλον καθιστά την ύπαρξη του συνδέτη προαιρετική

264. Ο διερμηνευτής ελέγχει και μετατρέπει μια-μια τις εντολές του πηγαίου προγράμματος σε γλώσσα μηχανής

σελίδα 57
265. Ο τμηματικός προγραμματισμός διευκολύνει τη δημιουργία του προγράμματος.

266. Ο συνδέτης μετατρέπει το πηγαίο πρόγραμμα σε βιβλιοθήκη

267. Μια τεχνητή γλώσσα μπορεί να δεχτεί αλλαγές είτε σε επίπεδο επέκτασης είτε σε επίπεδο διαλέκτου.

268. Η εντολή GOTO που αλλάζει τη ροή εκτέλεσης ενός προγράμματος είναι απαραίτητη στο δο­μημένο
προγραμματισμό.

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

270. Τα λογικά λάθη είναι συνήθως λάθη σχεδιασμού και δεν προκαλούν τη διακοπή της εκτέλεσης του προγράμματος.

271. Λεξιλόγιο μιας γλώσσας είναι όλες οι ακολουθίες που δημιουργούνται από τα στοιχεία του αλφαβήτου της
γλώσσας, τις λέξεις

272. Μια γλώσσα προγραμματισμού προσδιορίζεται από: το αλφάβητό της, το λεξιλόγιό της, τη γραμματική της και τη
σημασιολογία της

273. Η ιεραρχική σχεδίαση διασπά ένα πρόβλημα σε υποπροβλήματα και τα επιλύει, λύνοντας το αρχικό πρόβλημα

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

275. Δεν υπάρχουν διαφορές μεταξύ φυσικών και τεχνητών γλωσσών

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

277. Τα σύγχρονα περιβάλλοντα χρησιμοποιούν μικτές υλοποιήσεις διερμηνευτή και μεταγλωττιστή.

278. Τα συντακτικά λάθη επιδιορθώνονται γρήγορα και εύκολα αλλά για τα λογικά λάθη η επιδιόρθωση είναι μια
επίπονη διαδικασία

279. Ένα πρόγραμμα σε γλώσσα μηχανής χρειάζεται μεταγλώττιση.

280. Τα λογικά λάθη ενός προγράμματος εμφανίζονται κατά τη μεταγλώττιση

281. Το εκτελέσιμο πρόγραμμα είναι απαλλαγμένο από συντακτικά λάθη αλλά όχι και από λογικά.

282. Ο εντοπισμός των συντακτικών λαθών σε ένα πρόγραμμα γίνεται από τον μεταγλωττιστή (compiler)

283. Το πρόγραμμα που παράγεται από το μεταγλωττιστή λέγεται εκτελέσιμο.

284. Ο μεταγλωττιστής μας επιτρέπει να συντάσσουμε ένα πρόγραμμα

285. Ο προγραμματισμός αφορά την διατύπωση ενός αλγορίθμου σε κατανοητή από τον υπολογιστή μορφή

286. Αν θέλουμε να υπολογίσουμε το μέσο όρο 2 τιμών και δώσουμε την εντολή [α+β]/2, θα προκύψει λογικό λάθος.

287. Αν θέλουμε να υπολογίσουμε το μέσο όρο 2 τιμών και δώσουμε την εντολή α+β/2, θα προκύψει λογικό λάθος.

288. Ένα πρόγραμμα σε γλώσσα μηχανής είναι μία ακολουθία δυαδικών ψηφίων.

289. Η γλώσσα μηχανής είναι άμεσα εκτελεστέα από τον υπολογιστή και πιο κατανοητή από τον άνθρωπο.

290. Η παράλειψη της εντολής ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ είναι λογικό λάθος.

291. Η σημασιολογία καθορίζει το νόημα των λέξεων και των εκφράσεων μιας γλώσσας.

σελίδα 58
292. Ο δομημένος προγραμματισμός απαιτεί τη χρήση εξειδικευμένων αλγοριθμικών δομών.

293. Ο δομημένος προγραμματισμός εμπεριέχει τις έννοιες του ιεραρχικού και του τμηματικού προγραμματισμού.

294. Ο δομημένος προγραμματισμός εξασφαλίζει τη δημιουργία προγραμμάτων απλών στη συγγραφή και στην
κατανόηση και εύκολων στη διόρθωση

295. Ο δομημένος προγραμματισμός στηρίζεται στις δομές ακολουθίας, επιλογής και επανάληψης.

296. Ο ιεραρχικός προγραμματισμός στηρίζεται στην «από κάτω προς τα πάνω» σχεδίαση.

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

298. Ο μεταγλωττιστής μεταφράζει το πηγαίο πρόγραμμα σε εκτελέσιμο.

299. Ο συνδέτης -φορτωτής συνδέει το αντικείμενο πρόγραμμα με τμήματα προγραμμάτων που βρίσκονται στις
βιβλιοθήκες.

300. Ο συντάκτης εντοπίζει τα συντακτικά λάθη.

301. Καμμία σύγχρονη γλωσσα προγραμματισμού δεν υποστηρίζει την εντολή GOTO.

302. Οι τεχνητές γλώσσες ανανεώνονται όπως και οι φυσικές.

303. Στο δομημένο προγραμματισμό κάθε πρόγραμμα έχει μόνο μία είσοδο και μία έξοδο.

304. Τα λογικά λάθη εντοπίζονται από τον μεταγλωττιστή ή το διερμηνευτή.

305. Το εκτελέσιμο πρόγραμμα δε μπορεί να δημιουργηθεί αν το πηγαίο πρόγραμμα περιέχει συντακτικά λάθη.

306. Το τυπικό και η σημασιολογία μιας γλώσσας καθορίζουν την γραμματική της.

Κεφάλαιο 7

307. Οι δεσμευμένες λέξεις της ΓΛΩΣΣΑΣ δεν μπορούν να χρησιμοποιηθούν ως ονόματα δεδομένων σε ένα πρόγραμμα.

308. Οι χαρακτήρες ! και & αποτελούν μέρος του αλφαβήτου της ΓΛΩΣΣΑΣ

309. Η δήλωση του τύπου μιας μεταβλητής γίνεται υποχρεωτικά πριν την λέξη αρχή

310. Σε μια εντολή εκχώρησης η μεταβλητή και η έκφραση που εκχωρείται σε αυτή πρέπει να είναι του ιδίου τύπου

311. Οι τύποι μεταβλητών που δέχεται η ΓΛΩΣΣΑ είναι ΠΡΑΓΜΑΤΙΚΕΣ η ΑΚΕΡΑΙΕΣ

312. Το τμήμα δηλώσεων ενός προγράμματος σε ΓΛΩΣΣΑ προηγείται του τμήματος εντολών

313. Στην αριθμητική έκφραση Α+Β*Γ εκτελείται πρώτα η πρόσθεση και μετά ο πολλαπλασιασμός.

314. Δεσμευμένες λέξεις καλούνται οι λέξεις που έχουν δεσμευτεί για τα ονόματα των μεταβλητών

315. Κατά την εκτέλεση του προγράμματος η εντολή ∆ΙΑΒΑΣΕ διακόπτει την εκτέλεσή του και πε­ριμένει την εισαγωγή
τιμών από το πληκτρολόγιο.

316. Η δομή ενός προγράμματος σε ΓΛΩΣΣΑ είναι αυστηρά καθορισμένη

317. Η πράξη της διαίρεσης ( / ) έχει μεγαλύτερη προτεραιότητα από αυτή του πολλαπλασιασμού ( * )

σελίδα 59
318. Στο ΠΙΝΑΚΑΣ[j, i] το j αντιστοιχεί στη γραμμή του πίνακα και το i στη στήλη

319. Με την εντολή Χ<-- 3 + 5 * 6 div 2 στη μεταβλητή Χ εκχωρείται η τιμή 18

320. Το σύμβολο = μπορεί να χρησιμοποιηθεί με διπλό ρόλο μέσα στο πρόγραμμα της ΓΛΩΣΣΑΣ

321. Ο τελεστής MOD χρησιμοποιείται για τον υπολογισμό του πηλίκου μίας διαίρεσης ακεραίων αριθμών.

322. Το όνομα μιας μεταβλητής είναι μοναδικό για κάθε πρόγραμμα

323. Οι λογικές μεταβλητές μπορούν να δέχονται μόνο δύο τιμές

324. Το αλφάβητο της γλώσσας αποτελείται μόνο από γράμματα ελληνικά - λατινικά και αριθμούς

325. Η τιμή μιας μεταβλητής είναι η τιμή που βρίσκεται στην αντίστοιχη θέση της μνήμης που έχει δεσμευτεί για την
μεταβλητή αυτή

326. Το σύμβολο = είναι αριθμητικός τελεστής.

327. Η υλοποίηση ενός αλγορίθμου γίνεται πάντα σε κάποια γλώσσα προγραμματισμού

328. Μπορούμε να αρχικοποιούμε μεταβλητές στο τμήμα δηλώσεων ενός προγράμματος σε ΓΛΩΣΣΑ

329. Ένας πίνακας έχει σταθερό μέγεθος αλλά μεταβαλλόμενο περιεχόμενο

330. Διαφορετικός αριθμός αριστερών από δεξιές παρενθέσεις σε μια αριθμητική έκφραση είναι ένα συνηθισμένο
συντακτικό λάθος

331. Η δήλωση των μεταβλητών που χρησιμοποιούνται μέσα σε ένα πρόγραμμα είναι υποχρεωτική

332. Η συνάρτηση ΣΦ(χ) υπολογίζει την συνεφαπτομένη

333. Μια λογική έκφραση πρέπει απαραίτητα να περιέχει λογικούς τελεστές

334. Η χρήση της εντολής εξόδου είναι για να εμφανίζει κυρίως μηνύματα και τιμές μεταβλητών

335. Οι τελεστές ΚΑΙ και Η είναι συγκριτικοί τελεστές

336. Το σύμβολο της εντολή εκχώρησης τιμής είναι το =

337. Σε ένα πρόγραμμα σε ΓΛΩΣΣΑ δεν μπορούμε να χρησιμοποιήσουμε λογική σταθερά

338. Η τιμή μιας μεταβλητής μπορεί να αλλάζει αλλά ο τύπος της παραμένει πάντα σταθερός

339. Η εντολή διάβασε διακόπτει την εκτέλεση ενός προγράμματος

340. Σε οποιοδήποτε σημείο ενός προγράμματος σε ΓΛΩΣΣΑ μπορούν να τοποθετηθούν σχόλια

341. Οι δηλώσεις των σταθερών προηγούνται πάντοτε των δηλώσεων των μεταβλητών

342. Τα σχόλια τοποθετούνται πάντα στην αρχή του προγράμματος

343. Μια μεταβλητή παριστάνει μια ποσότητα που η τιμή της μπορεί να μεταβάλλεται

344. Αν Α = 10 και Β = 20 τότε η έκφραση (Α > 8 ΚΑΙ Β < 20) Ή (Α > 10 Ή Β = 10) είναι αληθής

345. Οι μεταβλητές που χρησιμοποιούνται σε ένα πρόγραμμα αντιστοιχούνται από τον προγραμματιστή σε
συγκεκριμένες θέσεις μνήμης του υπολογιστή

σελίδα 60
346. Το όνομα μιας μεταβλητής επιτρέπεται να περιέχει λατινικούς χαρακτήρες

347. Η λέξη ΤΕΛΟΣ είναι επιτρεπτή για την ονομασία μιας μεταβλητής

348. Η εντολή γράψε μπορεί να δώσει έξοδο στην βοηθητική μνήμη.

349. Τα ονόματα των μεταβλητών δεν περιέχουν κενά ή άλλα σύμβολα (π.χ. $, @, #)

350. Τετραγωνικός πίνακας καλείται ο δισδιάστατος πίνακας που έχει ίσο αριθμό γραμμών και στηλών.

351. Οι σταθερές είναι προκαθορισμένες τιμές που δεν μεταβάλλονται κατά την εκτέλεση ενός προγράμματος

352. Όταν αριθμητικοί και συγκριτικοί τελεστές συνδυάζονται σε μία έκφραση, οι αριθμητικές πράξεις εκτελούνται
πρώτες.

353. Αν μια μεταβλητή παίρνει την τιμή μηδέν τότε μπορούμε να την δηλώσουμε μόνο ακέραια

354. Η χρήση σταθερών σε ένα πρόγραμμα το κάνει πιο κατανοητό και διορθώνεται πιο εύκολα

355. "Οι αριθμητικοί τελεστές είναι μόνο οι

+ - * / ^ mod div"

356. Η πρώτη εκτελέσιμη εντολή ενός προγράμματος βρίσκεται μετά την λέξη ΑΡΧΗ

357. Ο τύπος μιας μεταβλητής μπορεί να αλλάξει κατά την εκτέλεση ενός προγράμματος.

358. Οι διάφορες γλώσσες προγραμματισμού χρησιμοποιούν όλες το ίδιο σύμβολο για την εντολή εκχώρησης

359. Α_Μ(Χ) είναι η συνάρτηση της ΓΛΩΣΣΑΣ που υπολογίζει την απόλυτη τιμή του Χ.

360. Σε ένα πρόγραμμα είναι υποχρεωτικό το τμήμα ορισμού των σταθερών

361. Τα ψηφία από 0 έως 9 αποτελούν μέρος του αλφαβήτου της ΓΛΩΣΣΑΣ

362. Οι αριθμητικοί τελεστές /, *, div και mod έχουν την ίδια προτεραιότητα στην ιεραρχία των πράξεων

363. Ο χαρακτήρας & χρησιμοποιείται για εντολές που δεν χωράνε να γραφούν σε μία γραμμή

364. Τα ονόματα μεταβλητών μπορούν να καταλήγουν σε γράμμα

365. Μια έκφραση μπορεί να περιέχει μεταβλητές, σταθερές, τελεστές και παρενθέσεις

366. Κατά την εκτέλεση ενός προγράμματος μπορεί να αλλάζει η τιμή και ο τύπος μιας μεταβλητής.

367. Σε μια έκφραση ο αριθμός των αριστερών και δεξιών παρενθέσεων μπορεί να διαφέρει

368. Η συνάρτηση ΛΟΓ(χ) υπολογίζει τον δεκαδικό λογάριθμο ενός αριθμού

369. Με τη συνάρτηση Η_Μ(x) η ΓΛΩΣΣΑ μπορεί να παραστήσει το ημίτονο της μεταβλητής x

370. Μια μεταβλητή μπορεί να αλλάζει τύπο δεδομένων κατά τη διάρκεια εκτέλεσης ενός αλγορίθμου

371. Τελεστής εκχώρησης τιμής σε σταθερά είναι το σύμβολο =

372. Τα αποτελέσματα των ακόλουθων πράξεων είναι σωστά : 5 div 2 = 2 και 5 mod 2 = 0.5

373. Οι εκτελέσιμες εντολές ενός προγράμματος περιέχονται υποχρεωτικά ανάμεσα στις λέξεις αρχή και
τελος_προγραμματος

σελίδα 61
374. Για τη δήλωση της σταθεράς π, γράφουμε ΣΤΑΘΕΡΕΣ: π=3.14.

375. Ένα τμήμα αλγόριθμου που εκτελείται επαναληπτικά αποκαλείται βρόχος.

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

377. Η εντολή ΔΙΑΒΑΣΕ είναι δηλωτική και η εντολή ΠΡΟΓΡΑΜΜΑ εκτελεστέα.

378. Κάθε μεταβλητή παίρνει τιμή μόνο με την εντολή ΔΙΑΒΑΣΕ.

379. Μία μεταβλητή μπορεί να αλλάζει τύπο δεδομένων κατά τη διάρκεια εκτέλεσης ενός αλγόριθμου.

380. Στη δομή του προγράμματος το τμήμα δήλωσης των σταθερών ακολουθεί το τμήμα δήλωσης των μεταβλητών.

381. Τα σχόλια μπορούν να αλλάξουν τη ροή εκτέλεσης ενός προγράμματος.

Κεφάλαιο 8
382. Όταν ένας βρόχος είναι εμφωλευμένος σε άλλο, ο βρόχος που ξεκινάει τελευταίος πρέπει να ολοκληρώνεται
πρώτος.

383. Οι τύποι των μεταβλητών που υποστηρίζει η ΓΛΩΣΣΑ είναι μόνο ΠΡΑΓΜΑΤΙΚΕΣ και ΑΚΕ­ΡΑΙΕΣ.

384. Σε μια λογική έκφραση, οι συγκριτικοί τελεστές έχουν χαμηλότερη ιεραρχία από τους λογικούς τελεστές.

385. Η χρήση εμφωλευμένων ΑΝ είναι καλή προγραμματιστική τακτική

386. Πολλαπλές επιλογές μπορούν να γίνουν και με μία εμφωλευμένη δομή.

387. Σε μια συνθήκη μπορεί να συγκρίνονται δύο αλφαριθμητικές ή δύο λογικές τιμές

388. Σε εμφωλευμένους βρόχους, ο εσωτερικός πρέπει να περικλείεται ολόκληρος στον εξωτερικό

389. Οι εντολές που βρίσκονται σε μία επανάληψη ΓΙΑ εκτελούνται τουλάχιστον μία φορά

390. Η σύγκριση λογικών δεδομένων έχει έννοια μόνο στην περίπτωση του ίσου (=) και του διάφο­ρου (<>).

391. Κάθε τμήμα προγράμματος που έχει την εντολή ΑΛΛΙΩΣ_ΑΝ μπορεί να γραφεί και με εντολές ΑΝ

392. Το τμήμα εντολών που επαναλαμβάνεται σε μια εντολή επανάληψης καλείται βρόχος

393. Αν Α = 10 και Β = 20 τότε η έκφραση ΟΧΙ (Α > 10) ΚΑΙ ΟΧΙ (Β < 3) είναι αληθής

394. Η μεταβλητή της συνθήκης μιας εντολής επανάληψης πρέπει να μεταβάλλεται στο σώμα της επανάληψης

395. Σε μία εντολή εκχώρησης του αποτελέσματος μίας έκφρασης σε μία μεταβλητή, η μεταβλητή και η έκφραση πρέπει
να είναι του ίδιου τύπου.

396. Στην επαναληπτική δομή Για … από … μέχρι …με_βήμα οι τιμές από, μέχρι και με_βήμα δεν είναι απαραίτητο να
είναι ακέραιες.

397. Όταν μια δομή ΓΙΑ είναι εμφωλευμένη σε μια άλλη δομή ΓΙΑ, τότε μπορούμε αν το επιθυμούμε για ευκολία να
χρησιμοποιήσουμε την ίδια μεταβλητή για μετρητή

398. Ο βρόχος Για κ από − 4 μέχρι − 3 εκτελείται ακριβώς δύο φορές.

399. Αν το Α έχει την τιμή 5 και το Β την τιμή 6, τότε η λογική έκφραση Α>5 Η Α<3 ΚΑΙ Β> 5 είναι ψευδής

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

401. Η είσοδος σε κάθε βρόχο επανάληψης υποχρεωτικά γίνεται από την αρχή του.

402. Η εντολή επανάληψης ΓΙΑ … ΑΠΟ … ΜΕΧΡΙ … ΜΕ_ΒΗΜΑ μπορεί να χρησιμοποιηθεί, όταν έχουμε άγνωστο αριθμό
επαναλήψεων.

403. Όταν είναι γνωστός ο αριθμός των επαναλήψεων, κάθε δομή επανάληψης (ΓΙΑ, ΟΣΟ, ΜΕΧΡΙΣ_ΟΤΟΥ) είναι
επιτρεπτή

404. Ένα τμήμα αλγορίθμου που εκτελείται επαναληπτικά αποκαλείται βρόχος.

405. Η συνθήκη που ελέγχεται σε μια δομή επιλογής μπορεί να πάρει περισσότερες από δύο διαφορετικές τιμές.

406. Σε μια εντολή εκχώρησης δεν μπορεί να χρησιμοποιηθεί η ίδια μεταβλητή τόσο στο αριστερό όσο και στο δεξιό
μέλος της.

407. Το βήμα σε μία εντολή ΓΙΑ δεν είναι υποχρεωτικά ένας ακέραιος αριθμός

408. Οι εντολές που βρίσκονται σε μια επανάληψη ΟΣΟ, εκτελούνται τουλάχιστον μία φορά.

409. Κάθε επανάληψη μπορεί να γραφεί με την εντολή ΟΣΟ - ΕΠΑΝΑΛΑΒΕ

410. Κάθε εντολή ΑΝ πρέπει να κλείνει με τη λέξη ΤΕΛΟΣ_ΑΝ

411. Η τιμή του βήματος αναφέρεται υποχρεωτικά σε κάθε εντολή ΓΙΑ

412. Οι εντολές που βρίσκονται σε μια δομή ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ ..... ΜΕΧΡΙΣ_ΟΤΟΥ εκτελούνται τουλάχιστον μια
φορά.

413. Στην επαναληπτική δομή Όσο … Επανάλαβε δεν γνωρίζουμε εκ των προτέρων το πλήθος των επαναλήψεων.

414. Ο τελεστής ΚΑΙ αντιστοιχεί στη λογική πράξη της σύζευξης.

415. Η ΓΛΩΣΣΑ υποστηρίζει τρεις εντολές επανάληψης, την εντολή ΟΣΟ, την εντολή ΜΕΧΡΙΣ_ΟΤΟΥ και την εντολή ΓΙΑ.

416. Στην εντολή ΓΙΑ ο βρόχος επαναλαμβάνεται για προκαθορισμένο αριθμό επαναλήψεων.

417. Η ομάδα εντολών που περιέχεται σε μια δομή επιλογής μπορεί να μην εκτελεστεί.

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

419. Η λογική πράξη ΚΑΙ μεταξύ δύο προτάσεων είναι ψευδής όταν οποιαδήποτε από τις δύο προτάσεις είναι ψευδής.

420. Κάθε βρόχος που υλοποιείται με την εντολή ΟΣΟ … ΕΠΑΝΑΛΑΒΕ μπορεί να γραφεί και με χρήση της εντολής ΓΙΑ …
ΑΠΟ … ΜΕΧΡΙ.

421. Δε μπορεί να χρησιμοποιηθεί η ίδια μεταβλητή ως μετρητής 2 ή περισσοτέρων βρόχων που ο ένας βρίσκεται μέσα
στον άλλο.

422. Η δομή επανάληψης ΟΣΟ εκτελείται τουλάχιστον μία φορά.

423. Η δομή σύνθετης επιλογής συνοδεύεται υποχρεωτικά από το ΤΕΛΟΣ_ ΑΝ.

424. Η ιεραρχία των λογικών τελεστών είναι μικρότερη των αριθμητικών.

σελίδα 63
425. Κάθε βρόχος ΓΙΑ μπορεί να μετατραπεί σε ΟΣΟ.

426. Κάθε βρόχος ΜΕΧΡΙΣ_ ΟΤΟΥ μπορεί να γραφεί και με ΓΙΑ.

427. Με τη συνθήκη ΑΝ Α DIV 10>=1 ΤΟΤΕ ελέγχουμε αν ο αριθμός Α είναι διψήφιος.

428. Μία εμφωλευμένη επιλογή μπορεί να υλοποιηθεί με διαδοχικές δομές απλής επιλογής.

429. Ο βρόχος ΓΙΑ Κ ΑΠΟ 5 ΜΕΧΡΙ 5 δεν εκτελείται καμία φορά.

430. Ο έλεγχος εγκυρότητας δεομένων πραγματοποιείται με τις δομές ΟΣΟ και ΜΕΧΡΙΣ_ ΟΤΟΥ.

431. Πολύ συχνά εντολές που έχουν γραφτεί με εμφωλευμένα ΑΝ μπορούν να γραφούν πιο απλά χρησιμοποιώντας
σύνθετες εκφράσεις.

432. Σε μία λογική έκφραση εκτελούνται πρώτα οι συγκριτικοί τελεστές.

433. Στη ΓΛΩΣΣΑ οι λογικοί τελεστές είναι ΚΑΙ, Ή , ΟΧΙ, ΝΑΙ.

434. Στη δομή επανάληψης ΓΙΑ δεν είναι δυνατόν η αρχική τιμή να είναι μεγαλύτερη από την τελική τιμή.

435. Στη δομή επανάληψης ΓΙΑ οι τιμές ΑΠΟ, ΜΕΧΡΙ, ΜΕ_ ΒΗΜΑ δεν είναι υποχρεωτικό να είναι ακέραιες.

436. Στη δομή επανάληψης ΓΙΑ το βήμα δε μπορεί να είναι μηδέν.

437. Στη δομή επιλογής είναι απαραίτητη η χρήση της εντολής ΤΕΛΟΣ_ ΑΝ.

438. Στη δομή επιλογής μπορεί μία ή περισσότερες εντολές να μην εκτελεστούν.

439. Στη δομή πολλαπλής επιλογής προσπαθούμε να καλύψουμε πολλές εναλλακτικές περιπτώσεις με τη χρήση μίας
δομής.

Κεφάλαιο 9
440. Τα ονόματα και το πλήθος των εισιτηρίων 10 θεάτρων μπορούν να αποθηκευτούν σε ένα δισδιάστατο πίνακα

441. Η ταξινόμηση των στοιχείων ενός πίνακα πρέπει να γίνεται πάντα πριν από την αναζήτηση

442. Τα στοιχεία ενός πίνακα μπορεί να είναι διαφορετικού τύπου.

443. Όλοι οι πίνακες δηλώνονται στο τμήμα δήλωσης μεταβλητών του προγράμματος

444. Ένα πρόγραμμα ενδέχεται να δηλώνει έναν πίνακα με μέγεθος μεγαλύτερο από τις θέσεις που πραγματικά
χρειάζεται

445. Η χρήση πινάκων αυξάνει την απαιτούμενη μνήμη για την εκτέλεση του προγράμματος

446. Ο τρόπος κλήσης των διαδικασιών και των συναρτήσεων είναι ίδιος, ενώ ο τρόπος σύνταξής τους είναι
διαφορετικός.

447. Τα στοιχεία ενός πίνακα μπορούν να αποτελούνται από δεδομένα διαφορετικού τύπου.

448. Ένα πρόγραμμα της ΓΛΩΣΣΑΣ μπορεί να τροποποιεί το μέγεθος ενός πίνακα στο τμήμα εντολών

449. Τα στοιχεία ενός πίνακα πρέπει να είναι του ιδίου τύπου

450. Ο πίνακας που χρησιμοποιεί ένα μόνο δείκτη για την αναφορά των στοιχείων του ονομάζεται μονοδιάστατoς.

σελίδα 64
451. Στο τμήμα δηλώσεων ενός προγράμματος σε ΓΛΩΣΣΑ δηλώνουμε τα ονόματα των πινάκων αλλά όχι και το μέγεθός
τους

452. Για την αναζήτηση σε ταξινομημένους πίνακες προτιμάται η δυαδική αναζήτηση λόγω της ταχύτητάς της

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

454. Αν ένα σύνολο τιμών που εισάγονται στο πρόγραμμα δεν απαιτεί περαιτέρω επεξεργασία, τότε η χρήση πίνακα
δεν είναι υποχρεωτική

455. Για την προσπέλαση του στοιχείου ενός πίνακα χρειάζονται τόσοι δείκτες όσες και οι διαστάσεις του

456. Για την εκτύπωση όλων των περιεχομένων ενός πίνακα απαιτείται η χρήση δομών επανάληψης

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

458. Ένα πρόγραμμα σε ΓΛΩΣΣΑ δεσμεύει τόσες συνεχόμενες θέσεις μνήμης για έναν πίνακα όσες και οι θέσεις που
εμφανίζονται στο τμήμα δηλώσεων

459. Ο πίνακας είναι μια στατική δομή δεδομένων που υλοποιείται με δυναμική παραχώρηση της μνήμης

460. Ο πίνακας είναι δομή δεδομένων που αποθηκεύει τις τιμές της σε συνεχόμενες θέσεις της μνήμης

461. Ο δείκτης ενός μονοδιάστατου πίνακα πρέπει να είναι πάντα i

462. Η χρήση του πίνακα δεν είναι πάντα απαραίτητη όταν χειριζόμαστε ένα πλήθος τιμών

463. Η συγχώνευση δυο πινάκων έχει ως στόχο να συνενώσει δυο πίνακες δημιουργώντας έναν νέο

464. Αν ένας πίνακας έχει αλφαριθμητικά στοιχεία, ο μέσος όρος είναι το μεσαίο στοιχείο του πίνακα.

465. Για τον υπολογισμό του μέσου όρου 100 αριθμών, πρέπει να χρησιμοποιηθεί πίνακας.

466. Ένας αλγόριθμος επεξεργάζεται τα στοιχεία ενός πίνακα όλα μαζί και όχι ένα προς ένα.

467. Η είσοδος νέων κόμβων σε ένα πίνακα είναι από τις τυπικές επεξεργασίες των πινάκων.

468. Κατά τη δήλωση των διαστάσεων ενός πίνακα πρέπει να δηλώνεται η μέγιστη δυνατή τιμή θέσεων που μπορούν
να χρησιμοποιηθούν στο πρόγραμμα.

469. Με μία επαναληπτική δομή μπορεί να γίνει προσπέλαση ένα προς ένα, σε όλα τα στοιχεία ενός μονοδιάστατου
πίνακα

470. Μέσα στις αγκύλες που αναφέρονται στη θέση ενός πίνακα μπορεί να υπάρχει οποιαδήποτε ακέραια έκφραση.

471. Ο υπολογιστής μπορεί να επεξεργαστεί τα στοιχεία ενός πίνακα που έχει το πολύ 3 διαστάσεις.

472. Οι δισδιάστατοι πίνακες μπορούν να θεωρηθούν σαν ένα σύνολο πινάκων μίας διάστασης με το ίδιο πλήθος και
τύπο στοιχείων.

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

474. Σε ένα πίνακα δε μπορεί να υπάρχει 2 φορές η ίδια τιμή.

σελίδα 65
475. Στην αναφορά Α[x,y] το x αντιστοιχεί στη στήλη και το y στη γραμμή.

Κεφάλαιο 10
476. Η συνάρτηση έχει ως έξοδο μια τιμή που εκχωρείται στο όνομά της.

477. Στη διαδικασία η λίστα παραμέτρων είναι υποχρεωτική.

478. Στην απεριόριστη εμβέλεια όλες οι μεταβλητές είναι καθολικές.

479. Μια συνάρτηση παράγει ένα μόνο αποτέλεσμα συγκεκριμένου τύπου.

480. Ένα υποπρόγραμμα μπορεί να έχει περισσότερες από μία εξόδους.

481. Ο ορισμός του τύπου της συνάρτησης δεν είναι υποχρεωτικός.

482. Όταν καλείται ένα υποπρόγραμμα, η διεύθυνση επιστροφής του αποθηκεύεται σε μία ουρά.

483. Στην περιορισμένη εμβέλεια όλες οι μεταβλητές είναι τοπικές.

484. Κατά την κλήση της διαδικασίας γίνεται πέρασμα τιμών μέσω της λίστας παραμέτρων.

485. Αυτό που καθορίζει την περιοχή που ισχύουν οι μεταβλητές και οι σταθερές είναι η εμβέλεια των μεταβλητών της
γλώσσας.

486. Ένα από τα συστατικά του Δομημένου Προγραμματισμού είναι και η τεχνική του Τμηματικού Προγραμματισμού.

487. Κάθε υποπρόγραμμα πρέπει να έχει μία είσοδο.

488. Τα δύο είδη υποπρογραμμάτων είναι οι συναρτήσεις και οι διαδικασίες.

489. Μερικές γλωσσες προγραμματισμού ονομάζουν τις τυπικές παραμέτρους και ορίσματα

490. Η λίστα των τυπικών παραμέτρων καθορίζει τις παραμέτρους στην δήλωση ενός υποπρογράμματος.

491. Η ενεργοποίηση μιας συνάρτησης γίνεται με την εντολή ΚΑΛΕΣΕ.

492. Εμβέλεια (scope) μεταβλητών λέγεται το τμήμα του προγράμματος που ισχύουν οι μεταβλητές

493. Οι μεταβλητές περιορισμένης εμβέλειας δημιουργούν προβλήματα στα μεγάλα προγράμματα.

494. Οι τοπικές μεταβλητές ισχύουν σε ολόκληρο το πρόγραμμα και στα υποπρογράμματα που καλεί.

495. Πολλές γλώσσες προγραμματισμού επιτρέπουν τη χρήση μεταβλητών απεριόριστης εμβέλειας.

496. Η κλήση των διαδικασιών γίνεται με απλή αναφορά του ονόματός τους.

497. Οι μεταβλητές μερικώς περιορισμένης εμβέλειας διευκολύνουν τον έμπειρο προγραμματιστή.

498. Οι συναρτήσεις έχουν περιορισμένες λειτουργίες σε σχέση με τις διαδικασίες.

499. Η συνάρτηση είναι τύπος υποπρογράμματος που μπορεί να εκτελεί όλες τις λειτουργίες ενός προγράμματος.

500. Οι πραγματικές παράμετροι δηλώνονται μέσα στο υποπρόγραμμα που καλείται.

501. Ένα υποπρόγραμμα μπορεί να καλεί ένα άλλο υποπρόγραμμα.

502. Ένα από τα πλεονεκτήματα της περιορισμένης εμβέλειας είναι η απόλυτη αυτονομία των υποπρογραμμάτων.

σελίδα 66
503. Ο Τμηματικός προγραμματισμός επεκτείνει τις γλώσσες προγραμματισμού.

504. Ένα υποπρόγραμμα μπορεί να καλείται από ένα άλλο υποπρόγραμμα ή από το κύριο πρόγραμμα.

505. Μια συνάρτηση υπολογίζει και επιστρέφει παραπάνω από μία τιμές με το όνομά της.

506. Η μερικώς περιορισμένη εμβέλεια προσφέρει πλεονεκτήματα στον αρχάριο προγραμματιστή.

507. Στην Γλώσσα έχουμε απεριόριστη εμβέλεια.

508. Όλες οι μεταβλητές είναι γνωστές μόνο μέσα στο τμήμα προγράμματος που δηλώνονται.

509. Μια συνάρτηση μπορεί να καλέσει μια διαδικασία.

510. Όταν ένα πρόγραμμα καλεί μια διαδικασία τότε σταματά και εκτελούνται οι εντολές της διαδικασίας

511. Για να επικοινωνήσουν δύο υποπρογράμματα, πρέπει να είναι και τα δύο διαδικασίες ή συναρτήσεις.

512. Μία συνάρτηση είναι δυνατό να επιστρέφει μόνον ακέραιες ή πραγματικές τιμές.

513. Μια διαδικασία και μια συνάρτηση μπορούν να εκτελούν τις ίδιες ακριβώς λειτουργίες.

514. Μια πραγματική παράμετρος και η αντίστοιχη τυπική της επιτρέπεται να έχουν το ίδιο όνομα.

515. Κάθε υποπρόγραμμα ενεργοποιείται καλούμενο από ένα άλλο υποπρόγραμμα ή το αρχικό πρόγραμμα.

516. Κάθε πραγματική παράμετρος αντιστοιχεί στην αντίστοιχη τυπική.

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

518. Οι τοπικές μεταβλητές έχουν ισχύ μόνο στο τμήμα προγράμματος που δηλώθηκαν και μόνο σε αυτό.

519. Μια διαδικασία μπορεί να καλέσει μια συνάρτηση.

520. Το κυρίως πρόγραμμα πρέπει να περιλαμβάνει μεγαλύτερο αριθμό εντολών από ένα υποπρόγραμμα που καλεί.

521. Μια συνάρτηση δεν μπορεί να καλεί μια διαδικασία, ενώ μια διαδικασία μπορεί να καλεί μια συνάρτηση.

522. Σε μία συνάρτηση δεν επιτρέπεται η χρήση της εντολής ∆ΙΑΒΑΣΕ.

523. Η πραγματική παράμετρος και η αντίστοιχή της τυπική δεν πρέπει να είναι του ίδιου τύπου.

524. Κάθε συνάρτηση μπορεί να υλοποιηθεί και με διαδικασία.

525. Οι καθολικές μεταβλητές είναι γνωστές σε όλα τα προγράμματα / υποπρογράμματα.

526. Σε κάποιες γλώσσες προγραμματισμού οι τυπικές παράμετροι ονομάζονται ορίσματα.

527. Όταν ένα υποπρόγραμμα καλείται από διαφορετικά σημεία του προγράμματος, οι πραγματικές πα­ράμετροι
πρέπει να είναι οι ίδιες.

528. Ένα υποπρόγραμμα μπορεί να καλέσει το κύριο πρόγραμμα.

529. Όταν ένα υποπρόγραμμα καλείται από το κύριο πρόγραμμα, η διεύθυνση επιστροφής αποθηκεύεται από το
μεταφραστή σε μια ουρά.

530. Οι διαδικασίες επιστρέφουν πάντα τουλάχιστον μια τιμή.

531. Στην μερικώς περιορισμένη εμβέλεια άλλες μεταβλητές είναι καθολικές και άλλες είναι τοπικές.

σελίδα 67
532. Ο τμηματικός προγραμματισμός εξασφαλίζει τη δημιουργία προγραμμάτων χωρίς λάθη.

533. Οι μεταβλητές στη λίστα παραμέτρων μιας διαδικασίας, δεν πρέπει να έχουν το ίδιο όνομα με τις μεταβλητές που
βρίσκονται στο τμήμα κλήσης του κυρίως προγράμματος.

534. Η διαδικασία καλείται απλώς με το όνομά της ενώ η συνάρτηση καλείται μέσω της έντολής κάλεσε

535. Ένα υποπρόγραμμα μπορεί να έχει εκτός από τυπικές παραμέτρους και άλλες τοπικές μεταβλητές.

536. Η λίστα των πραγματικών παραμέτρων καθορίζει τις παραμέτρους στην κλήση του υποπρογράμ­ματος.

537. Οι διαδικασίες μπορεί να έχουν καμία, μία ή πολλές παραμέτρους.

538. Ο αριθμός των πραγματικών και τυπικών παραμέτρων πρέπει να είναι ο ίδιος.

539. Κάθε διαδικασία μπορεί να υλοποιηθεί και με συνάρτηση.

540. Κατά την κλήση ενός υποπρογράμματος η πραγματική παράμετρος και η αντίστοιχη τυπική της είναι δυνατόν να
έχουν το ίδιο όνομα.

541. Αν μας δοθεί μία διαδικασία μπορούμε πάντοτε να την μετατρέψουμε σε συνάρτηση.

542. Αν μας δοθεί μία συνάρτηση μπορούμε πάντοτε να την μετατρέψουμε σε διαδικασία.

543. Για την εύρεση του μέγιστου 3 ακεραίων αριθμών είναι προτιμότερο να χρησιμοποιηθεί διαδικασία.

544. Για τον υπολογισμό των 2 μικρότερων στοιχείων ενός πίνακα δε μπορεί να χρησιμοποιηθεί συνάρτηση

545. Ένα υποπρόγραμμα γράφεται ξεχωριστά και επιτελεί ένα αυτόνομο έργο από το υπόλοιπο πρόγραμμα

546. Ένα υποπρόγραμμα δε μπορεί να καλέσει ένα άλλο υποπρόγραμμα.

547. Ένα υποπρόγραμμα δε μπορεί να κληθεί σε διαφορετικά σημεία ενός προγράμματος.

548. Ένα υποπρόγραμμα μπορεί να κληθεί πολλές φορές.

549. Η είσοδος σε ένα υποπρόγραμμα γίνεται πάντοτε από την αρχή του.

550. Η λίστα παραμέτρων σε μία συνάρτηση είναι μία λίστα μεταβλητών που οι τιμές τους μεταβιβάζονται στη
συνάρτηση κατά την κλήσης της.

551. Μία διαδικασία δε μπορεί να έχει ως παραμέτρους πίνακες.

552. Μία συνάρτηση δέχεται μία τιμή και επιστρέφει επίσης μία τιμή με το όνομα της.

553. Μία συνάρτηση καλείται μόνο μέσω εντολής εκχώρησης τιμής.

554. Μία συνάρτηση μπορεί να επιτελέσει όλες τις λειτουργίες που επιτελεί και ένα πρόγραμμα.

555. Μια συνάρτηση μπορεί να μην έχει καμία παράμετρο εισόδου.

556. Μία συνάρτηση μπορεί να χρησιμοποιηθεί για να ταξινομήσει και να επιστρέψει ένα ταξινομημένο πίνακα.

557. Μία συνάρτηση υπολογίζει και επιστρέφει περισσότερες από μία τιμές με το όνομά της.

558. Ο τρόπος κλήσης των διαδικασιών και των συνάρτησεων είναι ίδιος ενώ ο τρόπος σύνταξής τους είναι
διαφορετικός.

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

σελίδα 68
560. Οι πραγματικές παράμετροι ονομάζονται και ορίσματα από μερικές γλώσσες προγραμματισμού.

561. Οι τιμές που ανταλλάσσονται μεταξύ υποπρογραμμάτων ονομάζονται παράμετροι.

562. Οι τυπικές παράμετροι αναφέρονται στο κύριο πρόγραμμα.

563. Στις εντολές του σώματος της συνάρτησης πρέπει υποχρεωτικά να υπάρχει μία εντολή εκχώρησης τιμής στο όνομα
της συνάρτησης.

564. Τα υποπρογράμματα καλούνται με τη σειρά που έχουν γραφτεί κάτω από το κυρίως πρόγραμμα.

565. Τα υποπρογράμματα τοποθετούνται πριν το κυρίως πρόγραμμα.

566. Το κύριο πρόγραμμα πρέπει να είναι μεγαλύτερο από τα υποπρογράμματα.

567. Υπάρχει περίπτωση μία τυπική παράμετρος να είναι διαφορετικού τύπου από μία πραγματική παράμετρος που
δηλώνεται με το ίδιο όνομα.

568. Υπάρχει περίπτωση ο αριθμός των τυπικών και των αντίστοιχων πραγματικών παραμέτρων να είναι διαφορετικός.

σελίδα 69
ΕΡΩΤΗΣΕΙΣ ΑΝΑΠΤΥΞΗΣ

ΚΕΦΑΛΑΙΟ 2:

Τι είναι αλγόριθμος;

Αναφέρατε ονομαστικά τα κριτήρια που πρέπει να ικανοποιεί ένας αλγόριθμος.

Περιγράψτε το κριτήριο της εισόδου.

Περιγράψτε το κριτήριο της εξόδου.

Περιγράψτε το κριτήριο της καθοριστικότητας.

Περιγράψτε το κριτήριο της περατότητας.

Περιγράψτε το κριτήριο της αποτελεσματικότητας.

Αναφέρατε ονομαστικά τους τρόπους αναπαράστασης ενός αλγορίθμου

Περιγράψτε το «ελεύθερο κείμενο» ως τρόπο αναπαράστασης ενός αλγορίθμου.

Περιγράψτε τις «διαγραμματικές τεχνικές» ως τρόπο αναπαράστασης ενός αλγορίθμου.

Περιγράψτε τη «φυσική γλώσσα κατά βήματα» ως τρόπο αναπαράστασης ενός αλγορίθμου.

Περιγράψτε την «κωδικοποίηση» ως τρόπο αναπαράστασης ενός αλγορίθμου.

Περιγράψτε τα κυριότερα γεωμετρικά σχήματα που χρησιμοποιούνται σε ένα διάγραμμα ροής.

Που χρησιμοποιείται η ακολουθιακή δομή εντολών; Δώστε ένα παράδειγμα από την καθημερινή
ζωή.

Πως ξεκινά και πως τελειώνει ένας αλγόριθμος γραμμένος σε «ψευδογλώσσα» ;

Τι καλείται σταθερά;

Σε τι διακρίνονται οι σταθερές στη ψευδογλώσσα; Δώστε κατάλληλα παραδείγματα.

Τι καλείται μεταβλητή στη ψευδογλώσσα;

Ανάλογα με το είδος της τιμής που μπορούν να λάβουν, να κατατάξετε τις μεταβλητές στη
ψευδογλώσσα.

Τι είναι οι τελεστές στην ψευδογλώσσα;

Σε τι διακρίνονται οι τελεστές στη ψευδογλώσσα;

σελίδα 70
Ποιοι είναι οι αριθμητικοί τελεστές της ψευδογλώσσας;

Ποιοι είναι οι συγκριτικοί τελεστές της ψευδογλώσσας;

Ποιοι είναι οι λογικοί τελεστές της ψευδογλώσσας;

Πως διαμορφώνονται οι εκφράσεις στη ψευδογλώσσα;

Από τι εξαρτάται η τελική τιμή μιας έκφρασης;

Σε τι συνιστάται η διεργασία αποτίμησης μιας έκφρασης στην ψευδογλώσσα;

Ποια είναι η γενική μορφή της εντολής εκχώρησης τιμής στη ψευδογλώσσα;

Ποια είναι η λειτουργία της εντολής εκχώρησης τιμής;

Ποιες εντολές εξόδου της ψευδογλώσσας γνωρίζετε; Δώστε την σύνταξη τους.

Γενικά τι περιλαμβάνει η διαδικασία της επιλογής;

Δώστε τη σύνταξη και τη λειτουργία της εντολής απλής επιλογής στην ψευδογλώσσα.

Πότε εφαρμόζουμε διαδικασίες πολλαπλών επιλογών στην ψευδογλώσσα;

Πότε εφαρμόζεται η λογική των επαναληπτικών διαδικασιών;

Τι καλείται βρόχος;

Δώστε τη σύνταξη της εντολής όσο..επανάλαβε στην ψευδογλώσσα.

Δώστε τη σύνταξη της εντολής Αρχή_επανάληψης..Μέχρις_ότου.. στην ψευδογλώσσα

Δώστε τη σύνταξη της εντολής Για… από… μέχρι ... με_βήμα… στην ψευδογλώσσα

Με τι ισοδυναμεί η ολίσθηση αριστερά και με τι η ολίσθηση δεξιά;

Για ποιο λόγο χρησιμοποιείται η μέθοδος του «Πολλαπλασιασμού αλά Ρωσικά» πρακτικά στους
υπολογιστές;

Δώστε σε ψευδογλώσσα τον αλγόριθμο του «Πολλαπλασιασμού αλά Ρωσικά», δεχόμενοι ότι οι
τιμές των δύο θετικών ακεραίων ΜΙ, Μ2 υπάρχουν ήδη, με στόχο τον υπολογισμό του γινομένου
τους.

Ποιες είναι οι τιμές των 3 λογικών πράξεων – Πίνακας Αληθείας;

ΚΕΦΑΛΑΙΟ 3 :

σελίδα 71
Δώστε τον ορισμό της Δομής Δεδομένων.

Αναφέρατε ονομαστικά τις βασικές λειτουργίες( ή αλλιώς πράξεις) επί των δομών δεδομένων.

Περιγράψτε τη λειτουργία επί των δομών δεδομένων: «Προσπέλαση».

Περιγράψτε τη λειτουργία επί των δομών δεδομένων: «Εισαγωγή».

Περιγράψτε τη λειτουργία επί των δομών δεδομένων: «Διαγραφή».

Περιγράψτε τη λειτουργία επί των δομών δεδομένων: «Αναζήτηση».

Περιγράψτε τη λειτουργία επί των δομών δεδομένων: «Ταξινόμηση».

Περιγράψτε τη λειτουργία επί των δομών δεδομένων: «Αντιγραφή».

Περιγράψτε τη λειτουργία επί των δομών δεδομένων: «Συγχώνευση».

Περιγράψτε τη λειτουργία επί των δομών δεδομένων: «Διαχωρισμός».

Διατυπώστε υπό τη μορφή μαθηματικής εξίσωσης την εξάρτηση μεταξύ της Δομής Δεδομένων και
Αλγορίθμων που επεξεργάζεται τη δομή.

Αναφέρατε ονομαστικά τις δύο μεγάλες κατηγορίες στις οποίες διακρίνονται οι δομές δεδομένων.

Τι γνωρίζετε για τις Δυναμικές δομές δεδομένων;

Τι γνωρίζετε για τις Στατικές δομές δεδομένων;

Πως υλοποιούνται στη πράξη οι στατικές δομές δεομένων ;

Ποιος πίνακας καλείται τετραγωνικός;

Σε ποιες περιπτώσεις δικαιολογείται η χρήση της σειριακής αναζήτησης;

Δώστε τον ορισμό της ταξινόμησης.

Να αναφέρετε τους αλγόριθμους ταξινόμησης που γνωρίζετε.

Τι ονομάζουμε αρχεία και γιατί προτιμώνται.

Πώς ονομάζουμε τα στοιχεία ενός αρχείου.

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

ΚΕΦΑΛΑΙΟ 6

σελίδα 72
Τι χαρακτηρίζουμε ως φυσικές και τεχνητές γλώσσες;

Ποια είναι τα κοινά χαρακτηριστικά των φυσικών και τεχνητών γλωσσών;

Τι καλείται αλφάβητο μιας γλώσσας;

Από τι αποτελείται το λεξιλόγιο μιας γλώσσας;

Από τι αποτελείται η γραμματική μιας γλώσσας;

Τι είναι το τυπικό ως μέρος της γραμματικής μιας γλώσσας;

Τι είναι το συντακτικό ως μέρος της γραμματικής μιας γλώσσας;

Τι είναι η σημασιολογία μιας γλώσσας;

Περιγράψτε μια βασική διαφορά μεταξύ των φυσικών και των τεχνητών γλωσσών;

Τι περιλαμβάνει η ιεραρχική σχεδίαση; Ποιος είναι ο σκοπός της;

Τι ονομάζουμε τμηματικό προγραμματισμό και ποια είναι τα πλεονεκτήματα του;

Τι είναι ο δομημένος προγραμματισμός;

Σε τι στηρίζεται ο δομημένος προγραμματισμός;

Ποια είναι τα πλεονεκτήματα του δομημένου προγραμματισμού

Τι κάνει η εντολή GOTO.

Για ποιο λόγο δημιουργήθηκε η ανάγκη να αναπτυχθεί ο δομημένος προγραμματισμός;

Σήμερα οι σύγχρονες γλώσσες προγραμματισμού υποστηρίζουν την εντολή GOTO;

Πως μετατρέπεται ένα πρόγραμμα σε γλώσσα μηχανής.

Τι είναι ο μεταγλωττιστής και τι ο διερμηνευτής;

Ποιες οι διαφορές μεταγλωττιστή και διερμηνευτή;

Τι είναι πηγαίο και τι αντικείμενο πρόγραμμα;

Τι είναι ο συνδέτης- φορτωτής ;

Τι είναι το εκτελέσιμο πρόγραμμα;

Δώστε σχηματικά τη διαδικασία μεταγλώττισης και σύνδεσης.

Ποια ήδη λαθών έχουμε και γιατί ονομάζονται έτσι;

σελίδα 73
Πως ανιχνεύονται τα λάθη ενός προγράμματος;

Συγκρίνετε μεταγλωττιστή-διερμηνευτή ως προς την ταχύτητα εκτέλεσης του προγράμματος.

Ποια προγράμματα εργαλεία περιέχει ένα σύγχρονο ολοκληρωμένο προγραμματιστικό περιβάλλον;

ΚΕΦΑΛΑΙΟ 7

Τι περιλαμβάνει το αλφάβητο της ΓΛΩΣΣΑΣ;

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

Περιγράψτε τον ακέραιο τύπο που υποστηρίζει η ΓΛΩΣΣΑ. Δώστε παράδειγμα.

Περιγράψτε τον πραγματικό τύπο που υποστηρίζει η ΓΛΩΣΣΑ. Δώστε παράδειγμα.

Περιγράψτε τον τύπο «χαρακτήρας» που υποστηρίζει η ΓΛΩΣΣΑ. Δώστε παράδειγμα.

Περιγράψτε τον λογικό τύπο που υποστηρίζει η ΓΛΩΣΣΑ.

Τι είναι οι σταθερές σε ένα πρόγραμμα σε ΓΛΩΣΣΑ και πως δηλώνονται; Δώστε παραδείγματα
δήλωσης και πως λειτουργεί αυτή η δήλωση στο πρόγραμμα; Ποιο είναι το πλεονέκτημα από τη
χρήση ονομάτων σταθερών;

Τι είναι μεταβλητή σε ένα πρόγραμμα γραμμένο σε ΓΛΩΣΣΑ; Δώστε το συντακτικό δήλωσης


μεταβλητών στο πρόγραμμα καθώς και παραδείγματα δήλωσης και λειτουργίας της. Σε τι
συνιστάται να ανάγουν τα ονόματα των μεταβλητών;

Δώστε τους αριθμητικούς τελεστές της ΓΛΩΣΣΑΣ και την αντίστοιχη πράξη που καλύπτουν.

Δώστε τις έτοιμες συναρτήσεις που υποστηρίζει η ΓΛΩΣΣΑ.

Πως συντάσσεται μια αριθμητική έκφραση; Τι υλοποιεί μια αριθμητική έκφραση. Τι παριστάνει κάθε
αριθμητική έκφραση;

Ποια είναι η ιεραρχία μεταξύ των αριθμητικών πράξεων; Τι συμβαίνει όταν η ιεραρχία των πράξεων
είναι ίδια; Πως θα προηγηθεί η εκτέλεση μιας πράξης χαμηλότερης ιεραρχίας;

Σε τι χρησιμοποιείται η εντολή εκχώρησης στη ΓΛΩΣΣΑ; Δώστε τη σύνταξη της , μερικά


παραδείγματα και τη λειτουργία της.

Τι πρέπει να προσέχουμε σε μια εντολή εκχώρησης;

Ποια εντολή υποστηρίζει η ΓΛΩΣΣΑ για την είσοδο δεδομένων από το πληκτρολόγιο; Δώστε τη
σύνταξη της, παραδείγματα και τη λειτουργία της.

Δώστε μια περιγραφή της εκτέλεσης της εντολής ΔΙΑΒΑΣΕ.

σελίδα 74
Ποια εντολή υποστηρίζει η ΓΛΩΣΣΑ για την εμφάνιση αποτελεσμάτων στην οθόνη; Δώστε τη σύνταξη
της, παραδείγματα και τη λειτουργία της.

Δώστε μια περιγραφή της εκτέλεσης της εντολής ΓΡΑΨΕ.

Περιγράψτε τη δομή του προγράμματος σε ΓΛΩΣΣΑ.

Να δοθεί ο ορισμός των δεσμευμένων λέξεων στη ΓΛΩΣΣΑ.

ΚΕΦΑΛΑΙΟ 8

Τι χρησιμοποιείται για τη σύνταξη μιας λογικής έκφρασης ή συνθήκης; Πως λειτουργεί μια απλή
λογική έκφραση και ποια είναι η τιμή της;

Δώστε τους συγκριτικούς τελεστές που χρησιμοποιεί η «ΓΛΩΣΣΑ». Επίσης δώστε ένα παράδειγμα για
καθένα από αυτούς.

Να περιγράψετε τις συγκρίσεις για κάθε ένα τύπο δεδομένων.

Πως επιτυγχάνουμε τη δημιουργία σύνθετων λογικών εκφράσεων ή σύνθετων συνθηκών; Δώστε


παραδείγματα σύνθετων λογικών εκφράσεων.

Δώστε τη σύνταξη, παράδειγμα και τη λειτουργία της εντολής ΑΝ…ΤΟΤΕ στη «ΓΛΩΣΣΑ». Απάντηση:

Δώστε τη σύνταξη, παράδειγμα και τη λειτουργία της εντολής ΑΝ…ΤΟΤΕ…ΑΛΛΙΩΣ στη «ΓΛΩΣΣΑ»

Δώστε τον ορισμό των εμφωλευμένων ΑΝ.

Δώστε τη σύνταξη, παράδειγμα και τη λειτουργία της εντολής ΑΝ…ΤΟΤΕ…ΑΛΛΙΩΣ_ΑΝ στη «ΓΛΩΣΣΑ»

Ποια η διαφορά της εντολής ΑΝ…ΤΕΛΟΣ_ΑΝ και της ΑΝ..ΑΛΛΙΩΣ..ΤΕΛΟΣ_ΑΝ ;

Ποιο είναι ένα συχνό λάθος που υπάρχει στα προγράμματα; Τι πρόβλημα μπορεί να δημιουργήσει;

Τι γνωρίζετε για την δομή επανάληψης;

Ποιες εντολές επανάληψης υποστηρίζει η «ΓΛΩΣΣΑ»;

Τι πρέπει να υπάρχει υποχρεωτικά μέσα στις εντολές που επαναλαμβάνονται σε μια εντολή

Τι γνωρίζετε για την « τιμή -φρουρό» των δομών επανάληψης;

Δώστε τη σύνταξη, παράδειγμα και τη λειτουργία της εντολής ΜΕΧΡΙΣ_ΟΤΟΥ στη «ΓΛΩΣΣΑ»

Σε ποιες περιπτώσεις συνιστάται η χρήση της ΜΕΧΡΙΣ_ΟΤΟΥ ώστε να οδηγήσει σε απλούστερα και
ευκολότερα προγράμματα;

Ποιες οι διαφορές των εντολών ΟΣΟ και ΜΕΧΡΙΣ_ΟΤΟΥ;

σελίδα 75
Δώστε τη σύνταξη, παράδειγμα και τη λειτουργία της εντολής ΓΙΑ στη «ΓΛΩΣΣΑ»

Ποιοι κανόνες πρέπει να ακολουθούνται αυστηρά στην περίπτωση των εμφωλευμένων βρόχων σε
ένα πρόγραμμα;

ΚΕΦΑΛΑΙΟ 9

Δώστε τον ορισμό του δείκτη ενός πίνακα.

Δώστε τον ορισμό του μονοδιάστατου πίνακα.

Τι καθορίζει το όνομα ενός πίνακα;

Δώστε τον ορισμό του πίνακα.

Που δηλώνεται ένας πίνακας;

Πως γίνεται η ανάγνωση, η επεξεργασία και η εκτύπωση των στοιχείων ενός πίνακα;

Δώστε το σημαντικότερο πλεονέκτημα από τη χρήση πινάκων σε ένα πρόγραμμα.

Δώστε ονομαστικά τα δύο (2) μειονεκτήματα από τη χρήση πινάκων σε ένα πρόγραμμα.

Τι εννοούμε όταν λέμε ότι οι πίνακες περιορίζουν τις δυνατότητες του προγράμματος;

Ποιες είναι οι προϋποθέσεις για τη χρήση πινάκων σε ένα πρόγραμμα;

Ποιος πίνακας καλείται δύο διαστάσεων;

Πως γίνεται η ανάγνωση, η επεξεργασία και η εκτύπωση των στοιχείων ενός πολυδιάστατου πίνακα;

Αναφέρατε ονομαστικά τις τυπικές επεξεργασίες πινάκων.

Ποιοι είναι οι πιο διαδεδομένοι αλγόριθμοι αναζήτησης; Ποιες είναι οι διαφορές τους;

Ποιος είναι ο σκοπός της συγχώνευσης δύο πινάκων;

ΚΕΦΑΛΑΙΟ 10

Πως ορίζεται ο τμηματικός προγραμματισμός;

Να δοθεί ο ορισμός του υποπρογράμματος.

Περιγράψτε τις τρεις(3) ιδιότητες- χαρακτηριστικά που πρέπει να διακρίνουν τα υποπρογράμματα.

Αναφέρατε ονομαστικά τα πλεονεκτήματα του τμηματικού προγραμματισμού.

Ποια είναι η διαφορά παραμέτρου και απλής μεταβλητής (ορισμός παραμέτρου);

σελίδα 76
Δώστε τον ορισμό της Συνάρτησης.

Δώστε τον ορισμό της Διαδικασίας.

Ποια η βασική διαφορά διαδικασία και συνάρτησης;

Πως καλείται μια συνάρτηση;

Πως καλείται μια διαδικασία;

Ποια η διαφορά μεταξύ της λίστας των πραγματικών παραμέτρων και της λίστας των τυπικών
παραμέτρων (ορίσματα);

Γιατί τα ονόματα των τυπικών και των πραγματικών παραμέτρων μπορεί να είναι οποιαδήποτε;

Τι είναι η στοίβα χρόνου εκτέλεσης;

Ποιους κανόνες πρέπει να ακολουθούν οι λίστες των παραμέτρων;

Τι ονομάζουμε εμβέλεια μεταβλητών;

Αναφέρατε τα είδη εμβέλειας που χρησιμοποιούν διάφορες γλώσσες προγραμματισμού.

Τι ονομάζουμε απεριόριστη εμβέλεια;

Ποιες μεταβλητές ονομάζονται καθολικές;

Ποια τα μειονεκτήματα της απεριόριστης εμβέλειας / χρήσης καθολικών μεταβλητών;

Τι ονομάζουμε περιορισμένη εμβέλεια;

Ποιες μεταβλητές ονομάζονται τοπικές;

Ποια τα πλεονεκτήματα της περιορισμένης εμβέλειας;

Τι ονομάζουμε μερικώς περιορισμένη εμβέλεια;

σελίδα 77

You might also like