ΠΛΗΡΟΦΟΡΙΚΗ - ΑΕΠΠ

ΑΠΑΝΤΗΣΕ ΤΙΣ ΕΡΩΤΗΣΕΙΣ ΠΑΤΩΝΤΑΣ ΣΤΟΝ ΣΥΝΔΕΣΜΟ ΠΟΥ ΑΚΟΛΟΥΘΕΙ:     


__________________________


ΨΗΦΙΑΚΑ ΒΙΒΛΙΑ: 


ΠΛΗΡΟΦΟΡΙΚΗ

ΟΔΗΓΙΕΣ ΜΕΛΕΤΗΣ ΜΑΘΗΤΗ (ΠΑΡΑΡΤΗΜΑ Α) για το αντίστοιχο βοήθημα.(ΛΥΣΕΙΣ)
ΟΔΗΓΙΕΣ ΜΕΛΕΤΗΣ ΜΑΘΗΤΗ (ΠΑΡΑΡΤΗΜΑ Β) 

INSERTION SORT           


ΣΗΜΕΙΩΣΕΙΣ
Μην ξεχνάς να διαβάζεις τις Συμβουλές και Υποδείξεις του βιβλίου μαθητή (ασκήσεων) σε κάθε κεφάλαιο.


ΠΑΡΑΔΕΙΓΜΑΤΑ ΚΑΙ ΑΣΚΗΣΕΙΣ
Παράδειγμα 1 σελίδα 9.
Ποιο από τα παρακάτω ονόματα μεταβλητών ή σταθερών, είναι σωστό ή λάθος και γιατί;
1) α1           2) Β_1           3) Β_              4) 1_Φ              5) χ23                  6) 23χ          
7) 256         8) χ+ψ           9) χ/ψ            10) χ!1              11) α&        12) ΠΡΟΓΡΑΜΜΑ
13)Άννα     14)Τιμή_Αγοράς                 15) 'ΜΑΡΙΑ'     16) ΑΛΗΘΗΣ    17) Ψευδής1.

Παράδειγμα 2 σελίδα 9.
Τύπος μεταβλητής                                                  Τιμή μεταβλητής
1. ΑΚΕΡΑΙΕΣ                                                             Α. Αληθής
2. ΠΡΑΓΜΑΤΙΚΕΣ                                                     Β. 2345
3. ΛΟΓΙΚΕΣ                                                               Γ. 56.9
4. ΧΑΡΑΚΤΗΡΕΣ                                                      Δ. 'ΑΛΗΘΗΣ'
                                                                                    Ε. Ψευδής
                                                                                    ΣΤ. '90.89'
                                                                                    Ζ. -30,89
                                                                                    Η. Άννα'
Παράδειγμα 3 σελίδα 9.
Δίνονται οι μεταβλητές με τις αντίστοιχες τιμές τους. Να γραφτεί το τμήμα δηλώσεων των παρακάτω μεταβλητών:
α ← 10.89
β ← 'Πρόγραμμα'
γ← 275
δ← ’Αληθής’
x ← 45
y ← Ψευδής
ζ ← 'Νίκος'
κ← – 56
λ← -206.9
ε ← ’– 4'

Παράδειγμα 5 σελίδα 15.
Σε μια εταιρεία οι αποδοχές ενός υπαλλήλου καθορίζονται από το βασικό μισθό, τα επιδόματα και τις κρατήσεις. Ο βασικός μισθός είναι 537€. Το επίδομα για κάθε υπάλληλο είναι 12€ για κάθε χρόνο εργασίας. Οι κρατήσεις είναι 15% για φόρο επί του βασικού μισθού και 2% για χαρτόσημο επί του βασικού μισθού. Να γραφεί πρόγραμμα σε ΓΛΩΣΣΑ, που να διαβάζει όνομα υπαλλήλου και τα χρόνια υπηρεσίας στην εταιρεία. Στη συνέχεια να υπολογίζει το επίδομα και τις κρατήσεις του και τέλος να εμφανίζει το βασικό μισθό, το επίδομα, τις κρατήσεις κάθε μια χωριστά και το μισθό που του καταβάλλεται.

ΑΝΑΛΥΣΗ: ΞΕΧΩΡΙΖΩ ΤΙΣ ΠΡΟΤΑΣΕΙΣ ΚΑΙ ΣΗΜΕΙΩΝΩ ΤΑ ΣΗΜΑΝΤΙΚΑ ΔΕΔΟΜΕΝΑ
Σε μια εταιρεία οι αποδοχές ενός υπαλλήλου καθορίζονται από:
-το βασικό μισθό,
-τα επιδόματα και
-τις κρατήσεις.
Ο βασικός μισθός είναι 537€.
Το επίδομα για κάθε υπάλληλο είναι 12€ για κάθε χρόνο εργασίας.
Οι κρατήσεις είναι
-15% για φόρο επί του βασικού μισθού και
-2% για χαρτόσημο επί του βασικού μισθού. 
Να γραφεί πρόγραμμα σε ΓΛΩΣΣΑ, που
Α) να διαβάζει όνομα υπαλλήλου και τα χρόνια υπηρεσίας στην εταιρεία.
Β) στη συνέχεια να υπολογίζει το επίδομα και τις κρατήσεις του
Γ) και τέλος να εμφανίζει
-το βασικό μισθό,
-το επίδομα,
-τις κρατήσεις κάθε μια χωριστά και
-το μισθό που του καταβάλλεται.

Άσκηση 4 σελίδα 16
(Α > 12 ΚΑΙ Β > -6) Ή (ΟΧΙ (Α < 6) ΚΑΙ Β > 11)
ΟΧΙ (Α < 3 Ή Β > -1)
(ΟΧΙ (Α > -2) ΚΑΙ (ΟΧΙ (Β < -13))
(Α < 43 Ή Β > Γ) ΚΑΙ Α > Γ
ΟΧΙ (Α > Β ΚΑΙ Α > Γ)
ΟΧΙ (Α > Β) ΚΑΙ (Α > Γ)

ΚΕΦΑΛΑΙΟ 2,7,8 - ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΛΓΟΡΙΘΜΩΝ
ΜΕΛΕΤΗ ΘΕΩΡΙΑΣ
1)ΑΛΓΟΡΙΘΜΟΣ: (βλ. βιβλίο σελ 25)

Ιστορία αλγορίθμου:
ΠΕΡΣΗΣ ΜΑΘΗΜΑΤΙΚΟΣ έκανε μελέτη για την ΑΛΓΕΒΡΑ η οποία άρχιζε με τη λέξη ΑΛΓΟΡΙΘΜΟΣ (825 π.χ.).
ΑΛΓΕΒΡΑ σημαίνει ΑΠΟΚΑΤΑΣΤΑΣΗ ΙΣΟΤΗΤΑΣ ΜΕΣΑ ΣΕ ΜΙΑ ΕΞΙΣΩΣΗ άρα και ο όροςΑΛΓΟΡΙΘΜΟΣ σήμαινε κάτι ανάλογο.
Ο όρος ΑΛΓΟΡΙΘΜΟΣ σήμαινε τη ΣΥΣΤΗΜΑΤΙΚΗ ΔΙΑΔΙΚΑΣΙΑ ΑΡΙΘΜΗΤΙΚΩΝ ΧΕΙΡΙΣΜΩΝ για πολλά χρόνια.
Σήμερα σημαίνει τη ΔΗΛΩΣΗ ΤΗΣ ΜΕΘΟΔΟΥ ΓΙΑ ΤΗΝ ΕΠΙΛΥΣΗ ΕΝΟΣ ΠΡΟΒΛΗΜΑΤΟΣ.

2)ΚΡΙΤΗΡΙΑ ΠΟΥ ΠΡΕΠΕΙ ΝΑ ΠΛΗΡΟΙ (βλ.βιβλίο σελ 25, 26)

   1. ΕΙΣΟΔΟΣ:Καμία, μία ή περισσότερες είσοδοι. Στην πρώτη περίπτωση δημιουργεί ο ίδιος αλγόριθμος πρωτογενείς τιμές
   2.ΕΞΟΔΟΣ: Τουλάχιστον μία έξοδος προς το χρήστη ή προς άλλο αλγόριθμο
   3.ΠΕΡΑΤΟΤΗΤΑ: Πεπερασμένα βήματα
   4. ΚΑΘΟΡΙΣΤΙΚΟΤΗΤΑ:Καθορίζει κάθε εντολή χωρίς αμφιβολία.Δεν αφήνει περιπτώσεις χωρίς να τις ελέγχει π.χ. διαίρεση με το μηδέν)
   5.ΑΠΟΤΕΛΕΣΜΑΤΙΚΟΤΗΤΑ: Απλές εντολές, εκτελέσιμες


3)ΤΡΟΠΟΙ ΑΝΑΠΑΡΑΣΤΑΣΗΣ ΑΛΓΟΡΙΘΜΟΥ (βλ.βιβλίο σελ 28).
   1. ΕΛΕΥΘΕΡΟ ΚΕΙΜΕΝΟ: Ανεπεξέργαστος και αδόμητος τρόπος παρουσίασης αλγορίθμου. Εγκυμονεί κινδύνους για μη αποτελεσματικότητα αλγορίθμου
   2. ΦΥΣΙΚΗ ΓΛΩΣΣΑ ΜΕ ΒΗΜΑΤΑ: Εγκυμονεί κινδύνους για μη καθοριστικότητααλγορίθμου
   3. ΔΙΑΓΡΑΜΜΑΤΙΚΕΣ ΤΕΧΝΙΚΕΣ: π.χ.το Διάγραμμα ροής (βλ. βιβλίο σελ 29). Δεν αποτελεί την καλύτερη λύση
   4. ΚΩΔΙΚΟΠΟΙΗΣΗ: η Ψευδογλώσσα (βλ.βιβλίο σελ 30 κάτω από το παράδειγμα,46,47)ή η Γλώσσα Προγραμματισμού θα δώσουν τα ίδια αποτελέσματα.

4) ΠΩΣ ΦΤΙΑΧΝΩ ΕΝΑ ΔΙΑΓΡΑΜΜΑ ΡΟΗΣ (βλ. βιβλίο σελ 29).


5) ΠΩΣ ΓΡΑΦΩ ΕΝΑΝ ΑΛΓΟΡΙΘΜΟ;
Για να γράψω αλγόριθμο πρέπει να μάθω να χρησιμοποιώ τις 3 δομές εντολών που είναι:
1. Δομή Ακολουθίας
2. Δομή Επιλογής
3. Δομή Επανάληψης

ΔΟΜΗ ΑΚΟΛΟΥΘΙΑΣ
Για να πάρω τα δεδομένα που χρειάζομαι από το χρήστη για την επίλυση ενός προβλήματος (π.χ. μια εκφώνηση άσκησης όπως: να γραφτεί αλγόριθμος για τον υπολογισμό του αθροίσματος δύο αριθμών)καλό είναι πρώτα να του τα ζητήσω, εμφανίζοντάς του ένα μήνυμα και στη συνέχεια να αποθηκεύσω σε μεταβλητές αυτά που θα πληκτρολογήσει.
ΕΜΦΑΝΙΣΗ ΜΗΝΥΜΑΤΟΣ (Εντολή Εξόδου από τον υπολογιστή προς το χρήστη)
ΓΡΑΨΕ‘Δώσε δύο αριθμούς’
ΑΠΟΘΗΚΕΥΣΗ ΔΕΔΟΜΕΝΩΝ (Εντολή Εισόδου από το χρήστη στον υπολογιστή με π.χ. πληκτρολόγιο - το κόμμα λέγεται διαχωριστής)
ΔΙΑΒΑΣΕ α, β
Στη συνέχεια υπολογίζω το άθροισμα (νέα μεταβλητή) με την Εντολή Εκχώρησης Τιμής
σ α + β (δηλαδή μεταβλητή έκφραση)
Τέλος εμφανίζω τις πληροφορίες δηλαδή τα αποτελέσματα του αλγορίθμου όπως είναι η μεταβλητή άθροισμα (σ)
ΓΡΑΨΕ ‘Το άθροισμα των δύο αριθμών είναι’, σ
ΕΝΑΛΛΑΚΤΙΚΑ ΣΤΟΝ ΑΛΓΟΡΙΘΜΟ ΙΣΧΥΟΥΝ
-Μπορώ να γράφω μόνο ΔΙΑΒΑΣΕ χωρίς μήνυμα όταν εισάγω δεδομένα
-Τα αποτελέσματα μπορώ να τα γράφω το ένα μετά το άλλο με κόμματα χωρίς μήνυμα
π.χ.ΓΡΑΨΕ σ
π.χ.ΓΡΑΨΕ σ1, σ2
-Επίσης μπορώ να χρησιμοποιήσω για την εισαγωγή δεδομένων την παρακάτω σύνταξη
Δεδομένα//α, β//
-Επίσης μπορώ να χρησιμοποιήσω για την εξαγωγή πληροφοριών την παρακάτω σύνταξη
Αποτελέσματα//σ1, σ2//

ΠΑΡΑΔΕΙΓΜΑΤΑ
Αλγόριθμος Παράδειγμα_με_ΜέσοΌρο

ΓΡΑΨΕ ‘Δώσε τους βαθμούς σου στα τέσσερα μαθήματα κατεύθυνσης’

ΔΙΑΒΑΣΕ β1, β2, β3, β4

μο(β1+β2+β3+β4)/4

ΓΡΑΨΕ ‘Ο μέσος όρος των τεσσάρων μαθημάτων κατεύθυνσης είναι’, μο
Τέλος


ΜΑΘΑΙΝΩ ΤΟΥΣ ΚΑΝΟΝΕΣ ΜΕ ΤΟΥΣ ΟΠΟΙΟΥΣ ΘΑ ΓΡΑΨΩ ΕΝΑΝ ΑΛΓΟΡΙΘΜΟ ΠΟΥ ΘΑ ΜΕΤΑΤΡΕΠΕΤΑΙ ΕΥΚΟΛΑ ΣΕ ΓΛΩΣΣΑ
1) ΓΙΑ ΤΟ ΟΝΟΜΑ ΑΛΓΟΡΙΘΜΟΥ ΚΑΙ ΤΟ ΟΝΟΜΑ ΜΕΤΑΒΛΗΤΩΝ ΕΦΑΡΜΟΖΩ ΤΑ ΠΑΡΑΚΑΤΩ
   1. Δεν ξεκινάω από αριθμό
   2. Δεν αφήνω κενό ανάμεσα στις λέξεις που χρησιμοποιώ για το όνομα
   3. Χρησιμοποιώ την κάτω παύλα ανάμεσα στις λέξεις
   4. Χρησιμοποιώ το ελληνικό, λατινικό αλφάβητο,πεζά, κεφαλαία και ψηφία 0..9
   5. Δεν χρησιμοποιώ σύμβολα
   6. Δεν χρησιμοποιώ ως όνομα, μία δεσμευμένη λέξη(π.χ. Διάβασε, Εμφάνισε, Γράψε κλπ)

2) ΤΙ ΜΕΤΑΒΛΗΤΕΣ ή ΣΤΑΘΕΡΕΣ ΜΠΟΡΩ ΝΑ ΧΡΗΣΙΜΟΠΟΙΗΣΩ;
Οι μεταβλητές και οι σταθερές χωρίζονται ανάλογα με το περιεχόμενό τους (δηλαδή ανάλογα με αυτό που αποθηκεύω σ’ αυτές):
1. Αριθμητικές ακέραιες (π.χ. το πλήθος των μαθητών της τάξης)

πραγματικές (π.χ. ο βαθμός του μαθητή)

2. Αλφαριθμητικές Χαρακτήρεςδηλ. γράμματα και αριθμοί (π.χ. το όνομα του μαθητή ‘Κώστας’, η δ/νση του μαθητή ‘Ορφέως2 Ηλιούπολη 11521’ ) πάντα μέσα σε μονά εισαγωγικά.

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

3) ΠΩΣ ΓΡΑΦΩ ΤΙΣ ΕΚΦΡΑΣΕΙΣ
Μια μαθηματική έκφραση πρέπει να γράφεται σε μία γραμμή χρησιμοποιώντας τους παρακάτω τελεστές (βλ. κ.α. βιβλίο σελ 153) :
+ πρόσθεση
- αφαίρεση
/ διαίρεση
* πολ/σμός
^ ύψωση σε δύναμη
DIV ακέραιο πηλίκο
MOD ακέραιο υπόλοιπο
Τ_Ρ(χ) τετρ. ρίζα χ αριθμού>=0)

Θυμήσου ότι οι πράξεις εκτελούνται με την εξής σειρά:
1.παρενθέσεις
2.ύψωση σε δύναμη
3.πολ/σμός και διαίρεση
4.πρόσθεση και αφαίρεση.

4) ΠΩΣ ΑΥΞΑΝΩ ή ΜΕΙΩΝΩ ΜΙΑ ΑΡΙΘΜΗΤΙΚΗ ΜΕΤΑΒΛΗΤΗ
π.χ.θέλω να αυξήσω τη μεταβλητή α κατά ν μονάδες: α α + ν
π.χ.θέλω να μειώσω τη μεταβλητή α κατά ν μονάδες: α α - ν

Γενικά όταν θέλω να κάνω πράξεις με την τιμή που ήδη έχει μια μεταβλητή και να της την αλλάξω (αριστερό μέρος), τη γράφω και στο δεξί μέρος της εντολής εκχώρησης.
5) ΠΩΣ ΑΝΤΑΛΛΑΣΣΩ ΤΙΣ ΤΙΜΕΣ 2ΜΕΤΑΒΛΗΤΩΝ
Έστω δύο μεταβλητές α=2 και β=3. Για να πετύχω την αντιστροφή τους δηλ α=3 και β=2γράφω τις εξής εντολές χρησιμοποιώντας μία τρίτη μεταβλητή (temp):
temp α
α β
β temp
6) Επίσης μπορώ να χρησιμοποιήσω τον παρακάτω ΤΥΠΟ για ΣΤΡΟΓΓΥΛΟΠΟΙΗΣΗ (στο 0.5 άνω): ΝΑ_Μ(α+0.5)

ΠΑΡΑΔΕΙΓΜΑΤΑ ΠΡΟΣ ΜΕΛΕΤΗ
Αλγόριθμος Παράδειγμα_στρογγυλοποίησης
ΓΡΑΨΕ ‘Δώσε τρεις αριθμούς για στρογγυλοποίηση’
ΔΙΑΒΑΣΕ α, β, γ
σα Α_Μ(α+0.5)
σβ Α_Μ(β+0.5)
σγ Α_Μ(γ+0.5)
ΓΡΑΨΕ ‘Οι αριθμοί στρογγυλοποιημένοι είναι’, σα,σβ, σγ
Τέλος


Αλγόριθμος Παράδειγμα_με_φπα
ΓΡΑΨΕ ‘Δώσε την τιμή προϊόντος για τον υπολογισμό της τελικής τιμής με ΦΠΑ’
ΔΙΑΒΑΣΕ τιμή
φπα τιμή * 0.23
τελική τιμή + φπα
ΓΡΑΨΕ ‘Η τελική τιμή με φπα 23% είναι’, τελική
Τέλος


Αλγόριθμος Παράδειγμα_με_έκπτωση
ΓΡΑΨΕ ‘Δώσε την τιμή προϊόντος για τον υπολογισμό της έκπτωσης 45%’
ΔΙΑΒΑΣΕ τιμή
έκπτωση τιμή * 0.45
μειωμένη_τιμή τιμή -έκπτωση
ΓΡΑΨΕ ‘Η έκπτωση είναι’, έκπτωση
ΓΡΑΨΕ ‘Η τιμή μετά την έκπτωση είναι’,μειωμένη_τιμή
Τέλος


Αλγόριθμος Παράδειγμα6
ΓΡΑΨΕ ‘Δώσε την τιμή προϊόντος για τον υπολογισμό της έκπτωσης 45%’
ΔΙΑΒΑΣΕ τιμή
έκπτωση τιμή * 0.45
μειωμένη_τιμή τιμή -έκπτωση
ΓΡΑΨΕ ‘Η έκπτωση είναι’, έκπτωση
ΓΡΑΨΕ ‘Η τιμή μετά την έκπτωση είναι’,μειωμένη_τιμή
ΓΡΑΨΕ ‘Δώσε συντελεστή ΦΠΑ’
ΔΙΑΒΑΣΕ φ
φπα τιμή * φ/100
τελική τιμή + φπα
ΓΡΑΨΕ ‘Η τελική τιμή με φπα’, φ ,’είναι’, τελική
Τέλος


Αλγόριθμος Παράδειγμα_με_αύξηση
ΓΡΑΨΕ ‘Δώσε το μισθό ο οποίος θα αυξηθεί με bonus 1200 ευρώ αυτό το μήνα’
ΔΙΑΒΑΣΕ μισθός
μισθός μισθός + 1200
ΓΡΑΨΕ ‘Η μισθός αυτού του μήνα είναι’, μισθός
Τέλος


ΑΠΑΝΤΩ ΣΕ ΟΛΕΣ ΤΙΣ ΕΡΩΤΗΣΕΙΣ – ΚΑΝΩ ΑΥΤΟΑΞΙΟΛΟΓΗΣΗ

1. Να δοθεί ο ορισμός του όρου αλγόριθμος.
2. Να αναφέρετε και να περιγράψτε τα κριτήρια που πρέπει να ικανοποιεί κάθε αλγόριθμος.
3. Περιγράψτε τους τρόπους περιγραφής και αναπαράστασης αλγορίθμων.

4. Ποια είναι τα σύμβολα που χρησιμοποιούμε στα διαγράμματα ροής;
5. Ποια είναι η γενική μορφή αναπαράστασης ενός αλγορίθμου σε ψευδογλώσσα; (σελ 30)
6. Τι αποκαλείται εντολή της ψευδογλώσσας; (σελ30-31)
7. Τι είναι οι σταθερές, οι μεταβλητές, οι τελεστές και οι εκφράσεις (σελ. 31,151-154);
8. Ποιοι είναι οι αριθμητικοί τελεστές που χρησιμοποιούμε στη ψευδογλώσσα και ποια η ιεραρχία εκτέλεσής τους;
9. Τι είναι η εντολή εκχώρησης και πώς συντάσσεται;
10. Ποιες είναι οι εντολές εισόδου και εξόδου δεδομένων, πώς συντάσσονται και πώς λειτουργούν;
11. Πότε χρησιμοποιούνται σχόλια και τι ρόλο έχουν;
12. Ποιες είναι οι βασικές συνιστώσες/εντολές ενός αλγορίθμου (σελ. 29,30);

ΑΣΚΗΣΕΙΣ
Ασκήσεις από το τετράδιο-βιβλίο:
σελ66 ασκήσεις ΔΤ1, ΔΤ2, και σελ 67 ΔΕ2
σελ68,69 ασκήσεις 2, 6, 7, 8, 9, 10, 11, 12, 13, 14
Επιπλέον Ασκήσεις
1)Ποια από τα παρακάτω ονόματα δεν είναι αποδεκτά
10Χ,ΟΝΟΜΑ, temp, όνομα μαθητή, απόδοση$, Τιμή1, he22p, ΣΥΝ+ΜΟΝΑΔΩΝ, κωδικός13Α,μέση-τιμή, ΓΡΑΨΕ, mark_1.


2) Να βρείτε το αποτέλεσμα των παρακάτω πράξεων
α) 11 DIV 4, 11 MOD 4, 5 DIV 3, 5 MOD 3, 6 DIV 3, 6 MOD 3
β)1 MOD 2, 3 MOD 2, 5 MOD 2, 7 MOD 2, 9 MOD 2 (Τι παρατηρείτε;)
γ)2 MOD 2, 4 MOD2, 6 MOD 2, 8 MOD 2, 10 MOD 2 (Τι παρατηρείτε;)
3)Στον ακόλουθο αλγόριθμο με α=2, συμπλήρωσε τον παρακάτω πίνακα μεταβλητών με τις τιμές που θα πάρουν οι μεταβλητές x, y, z και κύκλωσε τις τιμές που θα εμφανιστούν με την εντολή ΓΡΑΨΕ:



Αλγόριθμός Τιμές_μεταβλητών

ΓΡΑΨΕ ‘Δώσε έναν αριθμό’
ΔΙΑΒΑΣΕ α

x α+5


y (x^2-Τ_Ρ(x+2))/2-(α+6)*2+3


z (x^2-3*Τ_Ρ(x+2))/(4+(α+6)*2)


x 5*x-3*y/a-((a+1)^2+1)

ΓΡΑΨΕ x, y, z

Τέλος



α


x


y


z


2










































4)Στον ακόλουθο αλγόριθμο ποιες τιμές θα πάρουν οι μεταβλητές και ποιες τιμές θα εμφανιστούν με την εντολή ΓΡΑΨΕ (Δούλεψε πάλι με πίνακα μεταβλητών):

Αλγόριθμος Άσκηση2

x 5

y 3 * x + 1

z y MOD x

ΓΡΑΨΕ x, y, z

Τέλος

5)Στον ακόλουθο αλγόριθμο ποιες τιμές θα πάρουν οι μεταβλητές και τι θα εμφανιστεί με τις εντολές ΓΡΑΨΕ (Δούλεψε πάλι με πίνακα μεταβλητών):

Αλγόριθμος Άσκηση3
x 5
y x + 2
x x + 3
a αθροισμα
z x + y
ΓΡΑΨΕ x, y
ΓΡΑΨΕ α, z

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

7)ΑΣΚΗΣΗ ΒΑΘΜΟΙ
Να γραφτεί αλγόριθμος που θα διαβάζει τους βαθμούς α’ (ΒΑ) και β’ τετραμήνου (ΒΒ)και το γραπτό βαθμό (ΓΒ) στο μάθημα ΑΕΠΠ.
Θα υπολογίζει και θα εμφανίζει το μέσο όρο (ΜΟ) των δύο τετραμήνων και τον τελικό βαθμό (ΤΒ), ο οποίος προκύπτει από το άθροισμα του μέσου όρου των δύο τετραμήνων με συντελεστή 30% και του γραπτού με συντελεστή 70%, δηλαδή ΤΒ = ΜΟ*0,30 + ΓΒ*0.70

ΔΟΜΗ ΕΠΙΛΟΓΗΣ
(ΑΠΛΗ ΚΑΙ ΣΥΝΘΕΤΗ ΜΟΡΦΗ-βλ. βιβλίο 32, 33, 34, 35, 166, 167, 168)

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

Τι είναι συνθήκη ή αλλιώς λογική έκφραση;

Μία συνθήκη αποτελείται από
-ΠΡΟΤΑΣΕΙΣ που περιέχουν σταθερές, μεταβλητές, συγκριτικούς τελεστές (π.χ. α > 0)
-ΛΟΓΙΚΟΥΣ ΤΕΛΕΣΤΕΣ (και, ή, όχι)
και παίρνει μία τιμή Αληθής ή Ψευδής.

Βλ ορισμό σελ 165 και κανόνες σελ 166

1)ΑΠΛΗ όταν ελέγχεται μία ΠΡΟΤΑΣΗ όπως:
Χ= 0

2)ΣΥΝΘΕΤΗ όταν ελέγχονται παραπάνω από μία ΠΡΟΤΑΣΕΙΣ όπως:
(Χ>= 0) ΚΑΙ (Χ < 10)
> 0 ΚΑΙ Χ < 20) Ή (Χ > 30 ΚΑΙ Χ < 40)

Για να δεις πώς λειτουργούν οι λογικοί τελεστές βλ σελ 39 τον πίνακα με τους συνδυασμούς περιπτώσεων.

Να ξέρεις βασικά ότι:

-όταν υπάρχει ΚΑΙ πρέπει να είναι και οι δύο προτάσεις αληθείς για να πάρει η συνθήκη την τιμή αληθής

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

-με το ΟΧΙ η συνθήκη παίρνει την αντίθετη τιμή από ότι έχει η πρόταση

1)Σύνταξη απλής δομής επιλογής:

ΑΝ συνθήκη ΤΟΤΕ

Εντολές

ΤΕΛΟΣ_ΑΝ

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


2)Σύνταξη σύνθετης δομής επιλογής:

ΑΝ συνθήκη ΤΟΤΕ

Εντολές

ΑΛΛΙΩΣ

Εντολές

ΤΕΛΟΣ_ΑΝ
Τη χρησιμοποιώ όταν θέλω να γίνει μία ενέργεια (να εκτελεστούν κάποιες εντολές) στην περίπτωση που ισχύει η συνθήκη της ΑΝ και μία διαφορετική ενέργεια στην περίπτωση που δεν ισχύει η συνθήκη της ΑΝ οπότε ισχύει το ΑΛΛΙΩΣ.

ΠΑΡΑΔΕΙΓΜΑΤΑ

Αλγόριθμος ΈλεγχοςΑριθμού

ΓΡΑΨΕ ‘Δώσε αριθμό’

ΔΙΑΒΑΣΕ α

ΑΝ α > 0 ΤΟΤΕ

τΤ_Ρ(α)

ΓΡΑΨΕ ‘Ο αριθμός που δόθηκε είναι θετικός και η τετραγωνική του ρίζα είναι ‘, τ

ΤΕΛΟΣ_ΑΝ

ΑΝ α mod 2 = 0 ΤΟΤΕ

ΓΡΑΨΕ ‘Ο αριθμός που δόθηκε είναι άρτιος’

ΑΛΛΙΩΣ

ΓΡΑΨΕ ‘Ο αριθμός που δόθηκε είναι περιττός’

ΤΕΛΟΝ_ΑΝ

Τέλος


Αλγόριθμος ΠαράδειγμαΕύρεσηςΜεγίστουΚαιΕλαχίστου

ΓΡΑΨΕ ‘Δώσε τρεις αριθμούς’

ΔΙΑΒΑΣΕ α, β, γ

ΜΑΧ α

ΑΝ β > ΜΑΧ ΤΟΤΕ

ΜΑΧ β

ΤΕΛΟΣ_ΑΝ

ΑΝ γ > ΜΑΧ ΤΟΤΕ

ΜΑΧ γ

ΤΕΛΟΣ_ΑΝ


ΜΙΝ α

ΑΝ β < ΜΙΝ ΤΟΤΕ

ΜΙΝ β

ΤΕΛΟΣ_ΑΝ

ΑΝ γ < ΜΙΝ ΤΟΤΕ

ΜΙΝ γ

ΤΕΛΟΣ_ΑΝ

ΓΡΑΨΕ ‘Από τους τρεις αριθμούς ’, α, β, γ, ’ μεγαλύτερος είναι ο ’, ΜΑΧ,‘ και μικρότερος είναι ο ’, ΜΙΝ

Τέλος

Αλγόριθμος ΠαράδειγμαΔιαίρεσηςΔύοΑριθμών

ΓΡΑΨΕ ‘Δώσε δύο αριθμούς που θέλεις να διαιρεθούν’

ΔΙΑΒΑΣΕ α, β

ΑΝ β<>0 ΤΟΤΕ

γ α/β

ΓΡΑΨΕ ‘Το αποτέλεσμα της διαίρεσης ’, α, ‘/’, β, ’ είναι ’, γ

ΑΛΛΙΩΣ

ΓΡΑΨΕ‘Διαίρεση αδύνατη’

ΤΕΛΟΣ_ΑΝ
Τέλος

Περίπτωση ΠΟΛΛΑΠΛΩΝ ΕΠΙΛΟΓΩΝ

3)Σύνταξη δομής πολλαπλής επιλογής ΑΝ (βλ. βιβλίο σελ 35, 36, 37, 170, 171, 172):

ΑΝ συνθήκη1 ΤΟΤΕ

Εντολές

ΑΛΛΙΩΣ_ΑΝ συνθήκη2 ΤΟΤΕ

Εντολές

ΑΛΛΙΩΣ_ΑΝ συνθήκη3 ΤΟΤΕ

Εντολές

ΑΛΛΙΩΣ

Εντολές

ΤΕΛΟΣ_ΑΝ
Τη χρησιμοποιώ όταν θέλω να γίνουν διαφορετικές ενέργειες (να εκτελεστούν κάποιες εντολές) ανάλογα με την τιμή που παίρνει μία έκφραση. Προσέχουμε να μην κάνουμε περιττούς ελέγχους.

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















Αλγόριθμος Ημέρες

ΓΡΑΨΕ ‘Δώσε αριθμό ημέρας εβδομάδος’

ΔΙΑΒΑΣΕ η


ΑΝ > =1) ΚΑΙ (η < =5) ΤΟΤΕ

ΓΡΑΨΕ ‘Καθημερινή ημέρα’

ΑΛΛΙΩΣ_ΑΝ(η=6)ή(η=7) ΤΟΤΕ

ΓΡΑΨΕ ‘Σαββατοκύριακο’

ΑΛΛΙΩΣ

ΓΡΑΨΕ ‘Λάθος νούμερο’

ΤΕΛΟΣ_ΑΝ

Τέλος














Αλγόριθμος Πράξεις

ΓΡΑΨΕ ‘Δώσε 2 αριθμούς και το σύμβολο πράξης’

ΔΙΑΒΑΣΕ α, β, σ_πράξης

ΑΝ σ_πράξης=’+’ ΤΟΤΕ

γα+β

ΓΡΑΨΕ γ

ΑΛΛΙΩΣ_ΑΝ σ_πράξης =’-‘ ΤΟΤΕ

γα-β

ΓΡΑΨΕ γ

ΑΛΛΙΩΣ_ΑΝ σ_πράξης =’*’ ΤΟΤΕ

γα*β

ΓΡΑΨΕ γ

ΑΛΛΙΩΣ

ΓΡΑΨΕ‘Λάθος’

ΤΕΛΟΣ_ΑΝ
Τέλος


Περίπτωση ΕΜΦΩΛΕΥΜΕΝΩΝ δομών επιλογής

1)Σύνταξη εμφωλευμένης δομής επιλογής (βλ.βιβλίο σελ 37, 38, 169):

ΑΝ συνθήκη1 ΤΟΤΕ

Εντολές*

ΑΝ συνθήκη2 ΤΟΤΕ

Εντολές*

ΑΛΛΙΩΣ

Εντολές*

ΤΕΛΟΣ_ΑΝ

Εντολές*

ΑΛΛΙΩΣ

Εντολές*

ΑΝ συνθήκη3 ΤΟΤΕ

Εντολές*

ΑΛΛΙΩΣ

Εντολές*

ΤΕΛΟΣ_ΑΝ

Εντολές*

ΤΕΛΟΣ_ΑΝ

*Όπου βλέπεις εντολές, μπορούμε να βάλουμε οποιαδήποτε από τις δομές που μαθαίνεις

π.χ δομή ακολουθίας(εντολή εκχώρησης), δομή επιλογής, δομή επανάληψης.

Μέσα σε κάθε ΑΝ … ΤΟΤΕ και σε κάθε ΑΛΛΙΩΣ …ΤΕΛΟΣ_ΑΝ μπορούμε να γράψουμε όσες δομές επιλογής θέλουμε σύμφωνα με τις ανάγκες επίλυσης του προβλήματος αρκεί η κάθε δομή να είναι κλειστή και να μην επικαλύπτει την προηγούμενη.
Σε προηγούμενο παράδειγμα με δύο αριθμούς και ένα σύμβολο πράξης, δεν υλοποιήθηκε η περίπτωση της διαίρεσης.Για να υλοποιηθεί πρέπει να χρησιμοποιήσουμε εμφωλευμένο ΑΝ το οποίο θα ελέγχει την περίπτωση όπου ο διαιρετέος είναι μηδέν. Έτσι εξασφαλίζουμε στον αλγόριθμό μας το κριτήριο της καθοριστικότητας. Βλ παράδειγμα πράξεις.


ΠΑΡΑΔΕΙΓΜΑΤΑ

Αλγόριθμος Πράξεις

ΓΡΑΨΕ ‘Δώσε 2 αριθμούς και το σύμβολο πράξης’

ΔΙΑΒΑΣΕ α, β, σ_πράξης

ΑΝ σ_πράξης=’+’ ΤΟΤΕ

γα+β

ΓΡΑΨΕ ‘Το άθροισμα είναι ‘, γ

ΑΛΛΙΩΣ_ΑΝ σ_πράξης =’-‘ ΤΟΤΕ

γα-β

ΓΡΑΨΕ ‘Η διαφορά είναι ’, γ

ΑΛΛΙΩΣ_ΑΝ σ_πράξης =’*’ ΤΟΤΕ

γα*β

ΓΡΑΨΕ ‘Το γινόμενο είναι ‘, γ

ΑΛΛΙΩΣ_ΑΝ σ_πράξης = ‘/’ ΤΟΤΕ


ΑΝ β<>0 ΤΟΤΕ

γ α/β

ΓΡΑΨΕ ‘Το πηλίκο είναι ‘, γ

ΑΛΛΙΩΣ

ΓΡΑΨΕ‘Αδύνατη διαίρεση’

ΤΕΛΟΣ_ΑΝ


ΑΛΛΙΩΣ

ΓΡΑΨΕ ‘Άγνωστο σύμβολο πράξης’

ΤΕΛΟΣ_ΑΝ

Τέλος


ΑΣΚΗΣΕΙΣ

1) Να γίνουν τα Διαγράμματα Ροής δίπλα στις Δομές επιλογής στις προηγούμενες σελίδες.
2) Σελ 23 ΔΤ7, ΔΤ9
3) Σελ 26 ΔΣ6
4) Σελ 80 ΔΕ1 (Α), (Β) και (Γ),
5)ΠΑΝΕΛΛΗΝΙΕΣ: ΑΣΚ 2, ΑΣΚ 7, ΑΣΚ 8, ΑΣΚ 9
6)Σελ22 ΔΤ5
7)ΠΑΝΕΛΛΗΝΙΕΣ ΑΣΚ 11, ΑΣΚ 12, ΘΕΜΑ 3ο

ΑΠΑΝΤΩ ΣΕ ΟΛΕΣ ΤΙΣ ΕΡΩΤΗΣΕΙΣ – ΚΑΝΩ ΑΥΤΟΑΞΙΟΛΟΓΗΣΗ

15.Ποιοι είναι οι συγκριτικοί και ποιοι οι λογικοί τελεστές;
16. Τι καλείται λογική συνθήκη ή λογική έκφραση και σύνθετη λογική πρόταση;
17. Να περιγραφεί η δομή της επιλογής. Ποιες είναι οι διαφορετικές μορφές; Πως συντάσσεται και πως λειτουργεί η κάθε μορφή;
18. Να δοθεί σε διάγραμμα ροής και ψευδογλώσσα ένα παράδειγμα για κάθε μια διαφορετική αλγοριθμική υλοποίησή της εντολής επιλογής.
19. Να συμπληρώσετε τον πίνακα αλήθειας δύο προτάσεων Α, Β και των τριών λογικών πράξεων. (θέμα Εξετάσεων Ιούνιος 2001 Ενιαία Λύκεια).
20. Που οδηγεί συνήθως η συχνή χρήση εμφωλευμένων ΑΝ;

ΔΟΜΗ ΕΠΑΝΑΛΗΨΗΣ
Η δομή αυτή είναι ιδιαίτερα σημαντική γιατί υλοποιεί την επανάληψη των διαδικασιών – ενεργειών που είναι ένας από τους λόγους που αναθέτουμε την επίλυση προβλήματος σε υπολογιστή.
ΕΙΔΗ ΔΟΜΩΝ ΕΠΑΝΑΛΗΨΗΣ
Τα είδη που θα μάθεις είναι τρία και θα αναφερόμαστε σε αυτά με τις παρακάτω ονομασίες:
1.Η Δομή Επανάληψης ΟΣΟ..ΕΠΑΝΑΛΑΒΕ ή ΟΣΟ (σελ.40, 41, 173, 174, 175)
2.Η Δομή Επανάληψης ΜΕΧΡΙΣ ΟΤΟΥ ή ΑΡΧΗ ΕΠΑΝΑΛΗΨΗΣ (σελ. 42, 175, 176, 177, 178)
3. Η Δομή Επανάληψης ΓΙΑ..ΑΠΟ..ΜΕΧΡΙ ή ΓΙΑ (σελ. 43, 44, 178, 179, 180)
ΣΥΝΤΑΞΗ ΔΟΜΩΝ
ΟΣΟ συνθήκη ΕΠΑΝΑΛΑΒΕ
Εντολές
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΑΡΧΗ_ΕΠΑΝΑΛΗΨΗΣ
Εντολές
ΜΕΧΡΙΣ_ΟΤΟΥ συνθήκη
ΓΙΑ μεταβλητή ΑΠΟ αρχική_τιμή ΜΕΧΡΙ τελική_τιμή ΜΕ_ΒΗΜΑ β
Εντολές
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

Κάνε τα Διαγράμματα Ροής:
Σελ 40
Σελ 42
Σελ 43
Όπου βλέπεις εντολές, μπορούμε να βάλουμε οποιονδήποτε συνδυασμό από τις δομές που μαθαίνεις π.χ δομή ακολουθίας(εντολή εκχώρησης),δομή επιλογής, δομή επανάληψης.












Τέλος μπορείς να δεις τους κανόνες για τις εμφωλευμένες δομές επανάληψης στη σελ 180.










ΚΕΦΑΛΑΙΟ 3 - ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ


ΓΕΝΙΚΑ ΠΡΕΠΕΙ ΝΑ ΓΝΩΡΙΖΕΙΣ ΟΤΙ (βλ Βιβλίο σελ 53,54,55,56,57,67):


1) Τα δεδομένα είναι αφαιρετική αναπαράσταση της πραγματικότητας και συνεπώς μια απλοποιημένη όψη της.


2) Η μέτρηση, η κωδικοποίηση, η μετάδοση της πληροφορίας αποτελεί αντικείμενο μελέτης ενός ιδιαίτερο κλάδου, της Θεωρίας Πληροφοριών.


3) Η Πληροφορική θεωρείται η επιστήμη που μελετά τα δεδομένα από τις ακόλουθες σκοπιές:


1.Υλικού: γιατί μας ενδιαφέρει με ποια αναπαράσταση θα αποθηκευτούν τα δεδομένα στην κύρια μνήμη και στις περιφερειακές συσκευές (π.χ. ASCII,EBCDIC…).


2.Γ. Π.: γιατί ο μεταφραστής κάθε γλώσσας φροντίζει για την αποδοτικότερη μορφή αποθήκευσης κάθε μεταβλητής στον υπολογιστή.


3.Δομών Δεδομένων: γιατί μας ενδιαφέρει η οργάνωση χαρακτηριστικών μιας ομάδας οντοτήτων όπως είναι π.χ. οι μαθητές σχολείου και η οποία μπορεί να γίνει με ένα αρχείο(file) το οποίο περιέχει εγγραφές(record)μία για κάθε μαθητή, οι οποίες περιέχουν πεδία (field) που το καθένα περιγράφει ένα συγκεκριμένο χαρακτηριστικό του μαθητή π.χ. όνομα, κωδικός κα.


4.Ανάλυσης Δεδομένων: γιατί μας ενδιαφέρει να αναπαρασταθεί η γνώση για πραγματικά γεγονότα με τη κατάλληλη καταγραφή και αλληλοσυσχέτιση των δεδομένων. Βάσεις Δεδομένων, Μοντελοποίηση Δεδομένων και Αναπαράσταση Γνώσης ανήκουν σε αυτόν τον τομέα.


4) Τι είναι Δομή Δεδομένων;


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


5) Ποιες είναι οι βασικές λειτουργίες των δομών δεδομένων;

1. Προσπέλαση
2. Εισαγωγή
3. Διαγραφή
4. Αναζήτηση
5. Ταξινόμηση
6. Αντιγραφή
7. Συγχώνευση
8. Διαχωρισμός




6)Κατηγορίες δομών δεδομένων με τα χαρακτηριστικά τους:


1)ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΚΥΡΙΑΣ ΜΝΗΜΗΣ (RAM)


1. ΣΤΑΤΙΚΕΣ (π.χ. Πίνακες, Στοίβες, Ουρές)


Ι. ακριβές μέγεθος


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


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




2. ΔΥΝΑΜΙΚΕΣ (Λίστες, Δέντρα, Γράφοι)


Ι. δεν έχουν σταθερό μέγεθος


ΙΙ. η απαιτούμενη μνήμη δεσμεύεται με την τεχνική της λεγόμενης Δυναμικής Παραχώρησης Μνήμης κατά την εκτέλεση του προγράμματος.


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




2) ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΔΕΥΤΕΡΕΥΟΥΣΑΣ ΜΝΗΜΗΣ (ΔΙΣΚΟΣ)


1. ΑΡΧΕΙΑ


Ι.αποτελούνται από εγγραφές μία για κάθε οντότητα μιας ομάδας (π.χ. μαθητής)


ΙΙ.οι εγγραφές αποτελούνται από πεδία ένα για κάθε χαρακτηριστικό της οντότητας (π.χ. ΑΜ, ΟΝ/ΜΟ, ΤΑΞΗ, ΤΜΗΜΑ, ΕΤΟΣ ΓΕΝΝΗΣΗΣ κα).


Το πεδίο που ταυτοποιεί την εγγραφή , δηλ. δείχνει σε ποια οντότητα ανήκει, ονομάζεται πρωτεύων κλειδί(π.χ. ΑΜ) και αν υπάρχει και δεύτερο πεδίο που ταυτοποιεί την εγγραφή ονομάζεται δευτερεύων κλειδί (π.χ.ΟΝ/ΜΟ).


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



ΠΙΝΑΚΕΣ


1. Ως πίνακα ορίζουμε μια δομή που περιέχει στοιχεία του ίδιου τύπου δηλ. ακέραιους ή πραγματικούς ή χαρακτήρες.


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


π.χ Π[1] για το πρώτο στοιχείο, Π[2]για το δεύτερο στοιχείο κλπ.


3. Ένας Πίνακας μπορεί να είναι ν διαστάσεων οπότε χρειάζονταιν δείκτες για να προσπελάσουμε κάποιο στοιχείο του.


π.χ. Π[10,20] στοιχείο δισδιάστατου πίνακα, Π[5,10,3] στοιχείο τρισδιάστατου πίνακα.


4. Στους δισδιάστατους πίνακεςπρώτα γράφουμε το δείκτη των γραμμών και μετά των στηλών.


π.χ. Π[Γραμμή, Στήλη]


5. Στους δισδιάστατους πίνακες αν οι δύο διαστάσεις είναι ίσεςτότε ο πίνακας λέγεται τετραγωνικός.


π.χ μέγιστη διάσταση Π[3,3]δηλ. 3Χ3 δηλ έχει 3 γραμμές και 3 στήλες.


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


π.χ Έστω πίνακας Π[4,4]

Π[1,1]
Π[2,2]
Π[3,3]
Π[4,4]




7. Σε ένα τετραγωνικό πίνακα η δευτερεύουσα διαγώνιός του έχει το χαρακτηριστικό ότι τα στοιχεία του πίνακα που ανήκουν σ’ αυτήν έχουν για τη γραμμή και τη στήλη στην οποία βρίσκονται το παρακάτω τύπο: γ+σ=ν+1 όπου ν το πλήθος γραμμών=στηλών


π.χ Έστω πίνακας Π[4,4]

Π[1,4]
Π[2,3]
Π[3,2]
Π[4,1]






8. Ένας πίνακας λέγεται αραιός αν ένα μεγάλο ποσοστό (>=80%) των στοιχείων του έχουν μηδενική τιμή.




9. ΠΩΣ ΓΕΜΙΖΩ ΕΝΑ ΠΙΝΑΚΑ ΜΕ ΤΙΜΕΣ ΠΟΥ ΜΟΥ ΔΙΝΕΙ Ο ΧΡΗΣΤΗΣ:

Μονοδιάστατος Π[10] στοιχείων
ΓΙΑ iΑΠΟ 1 ΜΕΧΡΙ 10
ΔΙΑΒΑΣΕ Π[i]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
Δισδιάστατος Π[5,10] στοιχείων
ΓΙΑ iΑΠΟ 1 ΜΕΧΡΙ 5
ΓΙΑ j ΑΠΟ 1 ΜΕΧΡΙ 10
ΔΙΑΒΑΣΕ Π[i,j]
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ


10. ΠΩΣ ΒΡΙΣΚΩ ΤΟ ΜΕΓΙΣΤΟ Ή ΕΛΑΧΙΣΤΟ ΣΕ ΕΝΑ ΜΟΝΟΔΙΑΣΤΑΤΟ ΠΙΝΑΚΑ:

Μονοδιάστατος Π[10] στοιχείων
MAXΠ[1]
ΓΙΑ iΑΠΟ 2 ΜΕΧΡΙ 10
ΑΝΠ[i]>MAX TOTE
MAXΠ[i]
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
MINΠ[1]
ΓΙΑ iΑΠΟ 2 ΜΕΧΡΙ 10
ΑΝΠ[i] TOTE
MINΠ[i]
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ



10. ΠΩΣ ΒΡΙΣΚΩ ΤΟ ΜΕΓΙΣΤΟ Ή ΕΛΑΧΙΣΤΟ ΣΕ ΟΛΟ ΤΟ ΠΙΝΑΚΑ Ή ΣΕ ΜΙΑ ΓΡΑΜΜΗ Ή ΣΕ ΜΙΑ ΣΤΗΛΗ ΕΝΟΣ ΜΟΝΟΔΙΑΣΤΑΤΟΥ ΠΙΝΑΚΑ:

ΣΕ ΟΛΟ ΤΟ ΠΙΝΑΚΑ
Δισδιάστατος Π[5,10] στοιχείων
MAXΠ[1,1]
ΓΙΑ iΑΠΟ 1 ΜΕΧΡΙ 5
ΓΙΑ j ΑΠΟ 1 ΜΕΧΡΙ 10
ΑΝΠ[i,j] >MAX TOTE
MAX Π[i,j]
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΣΕ ΜΙΑ ΣΤΗΛΗ π.χ. 3η στήλη.
MAXΠ[1,3]
ΓΙΑ iΑΠΟ 2 ΜΕΧΡΙ 5
ΑΝΠ[i,3]>MAX TOTE
MAXΠ[i,3]
ΤΕΛΟΣ_ΑΝ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ


Άσκηση: Προσπάθησε να γράψεις τον αλγόριθμο που βρίσκει το μέγιστο ή ελάχιστο στην 3η γραμμή του πίνακα.

Δισδιάστατος Π[5,10] στοιχείων
ΣΕ ΜΙΑ ΓΡΑΜΜΗ π.χ. 3η γραμμή.
Τώρα γράψε τον αλγόριθμο για το ελάχιστο της 3ης γραμμής του ίδιου πίνακα.


ΤΑΞΙΝΟΜΗΣΗ ΠΙΝΑΚΑ (Βλ. βιβλίο σελ 66-69)

Για την ταξινόμηση μονοδιάσταστου πίνακα (ή στήλης ή γραμμής δισδιάστατου πίνακα) χρησιμοποιούμε τη μέθοδο ΕΥΘΕΙΑΣ ΑΝΤΑΛΛΑΓΗΣ ή αλλιώς ΦΥΣΑΛΙΔΑΣ. Αυτή η μέθοδος είναι η πιο απλή και ταυτόχρονα η πιο αργή μέθοδος ταξινόμησης. Υπάρχουν πολλοί αλγόριθμοι ταξινόμησης όπως η ταξινόμηση με επιλογή, η ταξινόμηση με παρεμβολή και η γρήγορη ταξινόμηση.

Θυμήσου όταν μελετάς τη σελίδα του βιβλίου 68: table[j-1] > table[j] => ΑΥΞΟΥΣΑ ταξινόμηση

ΑΝΑΖΗΤΗΣΗ ΣΕ ΠΙΝΑΚΑ (Βλ. βιβλίο σελ 64-66)

Η πιο απλή μορφή αναζήτησης στοιχείου σε πίνακα είναι η ΣΕΙΡΙΑΚΗ ή αλλιώς ΓΡΑΜΜΙΚΗ μέθοδος.

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

1. Ο πίνακας είναι μη ταξινομημένος

2. Ο πίνακας είναι μικρού μεγέθους

3. Η αναζήτηση σε συγκεκριμένο πίνακα γίνεται σπάνια.

Πρέπει να θυμάσαι ότι με την ΟΣΟ έχεις τη δυνατότητα να σταματάς όταν βρεις το στοιχείο που αναζητάς ενώ με τη ΓΙΑ που σαφώς είναι πιο εύκολη, πρέπει να ψάξεις όλο τον πίνακα ακόμα και όταν έχεις βρει το στοιχείο που ζητάς.


ΚΕΦΑΛΑΙΟ  9 - Πίνακες
ΠΟΤΕ ΠΡΕΠΕΙ ΝΑ ΧΡΗΣΙΜΟΠΟΙΟΥΜΕ ΠΙΝΑΚΕΣ; (Βλ. βιβλίο σελ 191)
Όταν τα δεδομένα που εισάγονται σε ένα πρόγραμμα πρέπει να διατηρούνται στη μνήμη για επεξεργασία μέχρι το τέλος της εκτέλεσης του προγράμματος τότε χρησιμοποιούμε πίνακες.
Αυτό ισχύει γιατί οι πίνακες έχουν 2 μειονεκτήματα:
1. Οι πίνακες απαιτούν μνήμη από την αρχή του προγράμματος
2. Οι πίνακες περιορίζουν τις δυνατότητες του προγράμματος γιατί το μέγεθός τους είναι προκαθορισμένο και σταθερό από την αρχή του προγράμματος.
ΤΥΠΙΚΕΣ ΕΠΕΞΕΡΓΑΣΙΕΣ ΠΙΝΑΚΩΝ (Βλ. βιβλίο σελ 198-200)
Στη σελ 15 αναφέραμε τις 8βασικές λειτουργίες επί των δομών δεδομένων.
Για τους πίνακες οι τυπικές επεξεργασίες είναι 5 και είναι οι εξής:
1. Υπολογισμός αθροίσματος στοιχείων του πίνακα
2. Εύρεση ελαχίστου ή μεγίστου στοιχείου του πίνακα
3. Ταξινόμηση στοιχείων του πίνακα
4. Αναζήτηση στοιχείου του πίνακα
5. Συγχώνευση στοιχείων ταξινομημένων πινάκων σε ένα νέο ταξινομημένο πίνακα.
ΑΣΚΗΣΕΙΣ
Παράδειγμα 1 σελ 29 και Παράδειγμα3, 4 σελ 31
ΔΤ1 σελ 33 και ΔΣ1, ΔΣ2σελ 34 και ΔΣ4 σελ 35
ΔΤ1 μόνο τις εντολές που χρειάζονται, ΔΤ2, ΔΤ3, ΔΤ4 σελ 95
ΑΠΑΝΤΩ ΣΕ ΟΛΕΣ ΤΙΣ ΕΡΩΤΗΣΕΙΣ – ΚΑΝΩ ΑΥΤΟΑΞΙΟΛΟΓΗΣΗ
1.Τι είναι δεδομένα και τι πληροφορία; Να δοθεί σύντομος ορισμός των όρων αυτών.
2. Ποιες είναι οι σκοπιές από τις οποίες η επιστήμη της Πληροφορικής μελετά τα δεδομένα (περιγραφή);
3. Να δοθεί ο ορισμός της δομής δεδομένων.
4. Ποιες είναι οι βασικές λειτουργίες (ή αλλιώς πράξεις) επί των δομών δεδομένων;
5. Ποια είναι η σχέση μεταξύ της δομής δεδομένων και του αλγορίθμου που επεξεργάζεται τη δομή; (
Wirth 1976, σελ 55)
6. Να περιγραφούν οι δυο κυριότερες κατηγορίες δομών δεδομένων.
7. Να δοθεί ο ορισμός και να περιγραφεί η δομή του πίνακα. Ποιες οι δυνατές διαστάσεις του. (κεφ8 σελ 187, σελ 56-57)
8. Τι μπορεί να είναι οι δείκτες των πινάκων;
9. Να περιγραφεί η δομή της στοίβας (stack).
10. Ποιες είναι οι δύο κύριες λειτουργίες που εκτελούνται σε μια στοίβα;
11. Πως μπορούμε να υλοποιήσουμε μια στοίβα;
12. Να περιγραφεί η δομή της ουράς (queue).
13. Ποιες είναι οι δύο κύριες λειτουργίες που εκτελούνται σε μια ουρά;
14. Πως μπορούμε να υλοποιήσουμε μια ουρά;
15. Να περιγραφεί η λειτουργία της σειριακής αναζήτησης και να διατυπωθεί σε ψευδογλώσσα ο αλγόριθμος που την υλοποιεί.
16. Σε ποιες περιπτώσεις δικαιολογείται η χρήση της σειριακής μεθόδου αναζήτησης μολονότι είναι η πιο απλή, αλλά και η λιγότερη αποτελεσματική μέθοδος αναζήτησης (σελ. 65); Από τι εξαρτάται η επιλογή αλγορίθμου αναζήτησης; (σελ. 199)
17. Να δοθεί ο τυπικός ορισμός της ταξινόμησης.
18. Να περιγραφεί η μέθοδος ταξινόμησης ευθείας ανταλλαγής (straight exchange sort) ή φυσσαλίδας (bubblesort) και να διατυπωθεί σε ψευδογλώσσα ο αλγόριθμος που την υλοποιεί.
19. Να περιγραφούν οι ειδικές δομές δεδομένων που χρησιμοποιούνται για την αποθήκευση των δεδομένων στη δευτερεύουσα μνήμη. (σελ 67)
20.Να διατυπώσετε τον ορισμό της δομής δεδομένων του πίνακα. (σελ 187)
21. Ποιοι πίνακες ονομάζονται μονοδιάστατοι; Ποιοι κανόνες ισχύουν για τα ονόματα των πινάκων; Πως δηλώνεται στο πρόγραμμα και πως αναφερόμαστε στα στοιχεία ενός πίνακα; (σελ 186)
22. Ποια είναι τα μειονεκτήματα από τη χρήση πινάκων σε ένα πρόγραμμα;
23. Πότε πρέπει να χρησιμοποιούνται πίνακες σ’ ένα πρόγραμμα;
24. Ποιες είναι οι τυπικές επεξεργασίες που εφαρμόζονται στα στοιχεία ενός πίνακα;
25. Χρησιμοποιώντας το όνομα ενός πίνακα τι είναι αυτό που καθορίζουμε (σελ. 186);
26. Τι καλείται στοιχείο του πίνακα και από τι προσδιορίζεται (σελ. 187);
27. Τι στοιχεία μπορεί να περιέχει ένας πίνακας και ποιος βασικός κανόνας ισχύει γι αυτά (σελ. 186);
28. Που δηλώνεται ένας πίνακας και πώς (σελ. 186);

ΚΕΦΑΛΑΙΟ 6, 10 - ΤΜΗΜΑΤΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Στη θεωρία του κεφαλαίου αυτού θα εντάξεις την ενότητα 6.4 του κεφαλαίου 6 (βλ. σελ 131-136).

(Από Κεφάλαιο 6)
ΕΝΤΟΛΗ GOTO: παράδειγμα προς αποφυγή, το μαύρο πρόβατο τού προγραμματισμού
Στα πρώτα χρόνια δημιουργίας Γλωσσών Προγραμματισμού κυριαρχούσε ο αδόμητος προγραμματισμός και κυρίως η εντολή διακλάδωσης GOTO που ευθύνεται γι αυτόν και θεωρείται το μαύρο πρόβατο του προγραμματισμού (βλ βιβλίο σελ 134, παράδειγμα).
Η χρήση αυτής της εντολής είχε τα ακόλουθα αποτελέσματα:
1. μεγάλα προγράμματα και ιδιαίτερα μπερδεμένα,
2. απαιτούνταν πάρα πολύς χρόνος για τη συγγραφή, διόρθωση και συντήρηση.
Όλες οι σύγχρονες γλώσσες υποστηρίζουν το δομημένο προγραμματισμό και διαθέτουν εντολές που καθιστούν τη χρήση της εντολής GOTO περιττή. Για λόγους συμβατότητας και μόνο, μερικές την διατηρούν ακόμα στο ρεπερτόριο των εντολών τους.
Η εντολή GOTO δεν θα μας απασχολήσει και καλό είναι να μην χρησιμοποιείται.

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ: η καλή μεθοδολογία προγραμματισμού
Ο δομημένος προγραμματισμός είναι μία μεθοδολογία σύνταξης προγραμμάτων, η οποία στηρίζεται στη χρήση τριών και μόνο στοιχειωδών δομών:
1. τη δομή ακολουθίας,
2. τη δομή επιλογής,
3. και τη δομή επανάληψης
4. και διέπεται από την αρχή ότι κάθε πρόγραμμα όπως και κάθε υποπρόγραμμα, έχει μία είσοδο και μία έξοδο.

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

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

Από την αρχή της εμφάνισης των υπολογιστών γίνονται προσπάθειες ανάπτυξης τεχνικών προγραμματισμού που σκοπό έχουν:
1. να διευκολύνουν τη συγγραφή απλών, κομψών προγραμμάτων,
2. να μειώσουν τα λάθη,
3. να βοηθήσουν στην ευκολότερη κατανόηση του προγράμματος από τρίτους*,
4. και να επιτρέψουν την παρακολούθηση και συντήρηση του προγράμματος.

*Να τονίσουμε ότι ένα μεγάλο πρόγραμμα όσο χρησιμοποιείται, χρειάζεται να συντηρηθεί από διαφορετικούς προγραμματιστές.
Ο καλύτερος τρόπος για να επιτευχθεί ο παραπάνω στόχος αλλά και να αντιμετωπισθούν σύνθετα προβλήματα είναι η ιεραρχική σχεδίαση προγράμματος ή αλλιώς «από πάνω προς τα κάτω» ή top-down program design.
ΙΕΡΑΡΧΙΚΗ ΣΧΕΔΙΑΣΗ ΠΡΟΓΡΑΜΜΑΤΟΣ
Η ιεραρχική σχεδίαση περιλαμβάνει τη διάσπαση του κύριου προβλήματος σε απλούστερα υποπροβλήματα και αυτά με τη σειρά τους σε άλλα μικρότερα, έτσι ώστε να καταλήξουμε σε πολύ απλά υποπροβλήματα που μπορούν να σχεδιαστούν και να γραφούν εύκολα.
Στην ιεραρχική σχεδίαση χρησιμοποιούμε πολλές φορές διαγραμματικές τεχνικές όπως μάθαμε στο κεφ 1.
Η ιεραρχική σχεδίαση προγράμματος υλοποιείται με τον τμηματικό προγραμματισμό.

ΤΜΗΜΑΤΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ
Τμηματικός προγραμματισμός ονομάζεται η τεχνική σχεδίασης και ανάπτυξης των προγραμμάτων η οποία αντιμετωπίζει το πρόγραμμα σαν ένα σύνολο από απλούστερα τμήματα προγραμμάτων(βλ σελ 205).
Το καθένα από αυτά τα τμήματα αντιστοιχεί σε υποπρόβλημα του κύριου προβλήματος. Θεωρείται ανεξάρτητη ενότητα και γράφεται ξεχωριστά από τα υπόλοιπα τμήματα προγράμματος.

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

ΥΠΟΠΡΟΓΡΑΜΜΑ
Υποπρόγραμμα λέγεται το τμήμα προγράμματος που επιτελεί αυτόνομο έργο και έχει γραφτεί χωριστά από το υπόλοιπο πρόγραμμα.

ΧΑΡΑΚΤΗΡΙΣΤΙΚΑ ΥΠΟΠΡΟΓΡΑΜΜΑΤΩΝ
1. Κάθε υποπρόγραμμα έχει μία είσοδο και μία έξοδο. Συγκεκριμένα ενεργοποιείται με την είσοδο σε αυτό, που γίνεται πάντοτε στην αρχή του, εκτελεί ορισμένες ενέργειες και απενεργοποιείται με την έξοδο, που γίνεται πάντοτε από το τέλος του.
2. Κάθε υποπρόγραμμα πρέπει να είναι ανεξάρτητο από τα άλλα. Αυτό σημαίνει ότι μπορεί να σχεδιαστεί, να αναπτυχθεί και να συντηρηθεί αυτόνομα.
3. Κάθε υποπρόγραμμα πρέπει να μην είναι πολύ μεγάλο. Δηλαδή να είναι τόσο ώστε να είναι εύκολα κατανοητό και να εκτελεί μία λειτουργία.

ΌΛΑ ΟΣΑ ΠΡΕΠΕΙ ΝΑ ΞΕΡΟΥΜΕ ΓΙΑ ΕΝΑ ΥΠΟΠΡΟΓΡΑΜΜΑ;
Τα υποπρογράμματα γράφονται μετά το τέλος του κύριου προγράμματος.
Οι διευθύνσεις επιστροφής (return address) των υποπρογραμμάτων αποθηκεύονται από το μεταφραστή στη στοίβα χρόνου εκτέλεσης (execution time stack) (βλ σελ 219). Ένα υποπρόγραμμα χρησιμοποιεί και ορίζει παραμέτρους για να επικοινωνεί με τα άλλα τμήματα προγράμματος.

ΕΙΔΗ ΥΠΟΠΡΟΓΡΑΜΜΑΤΟΣ
Υπάρχουν δύο είδη υποπρογράμματος. Η ΔΙΑΔΙΚΑΣΙΑ και η ΣΥΝΑΡΤΗΣΗ.
Κάθε διαδικασία ή συνάρτηση μπορεί να καλείται: από το κύριο πρόγραμμα ή από άλλη διαδικασία ή συνάρτηση.

ΔΙΑΔΙΚΑΣΙΑ: είναι ένας τύπος υποπρογράμματος που μπορεί να εκτελεί όλες τις λειτουργίες ενός προγράμματος, δηλαδή εισαγωγή δεδομένων (ΔΙΑΒΑΣΕ), υπολογισμούς (ΕΝΤΟΛΗ ΕΚΧΩΡΗΣΗΣ), εμφάνιση ή εκτύπωση αποτελεσμάτων (ΓΡΑΨΕ). Το όνομα της βασίζεται στην ονοματολογία της ΓΛΩΣΣΑΣ.
Η λίστα παραμέτρων δεν είναι υποχρεωτική.
Για να καλέσουμε μία ΔΙΑΔΙΚΑΣΙΑ γράφουμε :
ΚΑΛΕΣΕ <<όνομα της ΔΙΑΔΙΚΑΣΙΑΣ>>

ΣΥΝΑΡΤΗΣΗ: είναι ένας τύπος υποπρογράμματος που υπολογίζει και επιστρέφει μόνο μία τιμή με το όνομά της, Όπως οι μαθηματικές συναρτήσεις (ΕΝΤΟΛΗ ΕΚΧΩΡΗΣΗΣ). Μπορεί να επιστρέψει ΑΚΕΡΑΙΑ, ΠΡΑΓΜΑΤΙΚΗ, ΧΑΡΑΚΤΗΡΑ ή ΛΟΓΙΚΗ τιμή. Το όνομα της βασίζεται στην ονοματολογία της ΓΛΩΣΣΑΣ.
Η λίστα παραμέτρων είναι υποχρεωτική.
Για να καλέσουμε μία ΣΥΝΑΡΤΗΣΗ γράφουμε το όνομα της ΣΥΝΑΡΤΗΣΗΣ μέσα σε μία έκφραση.

ΠΑΡΑΜΕΤΡΟΙ
Παράμετρος είναι μία μεταβλητή που επιτρέπει το πέρασμα τής τιμής της από το ένα τμήμα του προγράμματος στο άλλο. Ισχύει μόνο τοπικά στο τμήμα του προγράμματος, στο οποίο έχει δηλωθεί.

ΠΡΑΓΜΑΤΙΚΕΣ ΠΑΡΑΜΕΤΡΟΙ
Η λίστα των πραγματικών παραμέτρων καθορίζει τις παραμέτρους στην κλήση του υποπρογράμματος.
ΤΥΠΙΚΕΣ ΠΑΡΑΜΕΤΡΟΙ ή ΟΡΙΣΜΑΤΑ
Η λίστα των τυπικών παραμέτρων ή ορίσματα καθορίζει τις παραμέτρους στη δήλωση του υποπρογράμματος.
ΚΑΝΟΝΕΣ ΧΡΗΣΗΣ ΠΑΡΑΜΕΤΡΩΝ
Οι λίστες παραμέτρων πρέπει να ακολουθούν τρεις κανόνες:
1. ίδιο πλήθος πραγματικών και τυπικών παραμέτρων,
2. ίδια σειρά και διάταξη πραγματικών και τυπικών παραμέτρων
3. ίδιο κατ’ αντιστοιχία τύπο πραγματικών και τυπικών παραμέτρων (βλ σελ 220).
ΑΠΑΝΤΩ ΣΕ ΟΛΕΣ ΤΙΣ ΕΡΩΤΗΣΕΙΣ – ΚΑΝΩ ΑΥΤΟΑΞΙΟΛΟΓΗΣΗ
1. Να διατυπώσετε τον ορισμό του τμηματικού προγραμματισμού.
2. Τι ονομάζεται υποπρόγραμμα (subprogram) στον τμηματικό προγραμματισμό;
3. Ποιες ιδιότητες πρέπει να διακρίνουν τα υποπρογράμματα;
4. Ποια είναι τα πλεονεκτήματα του τμηματικού προγραμματισμού;
5. Να διατυπώσετε τον ορισμό της παραμέτρου.
6. Ποια είναι τα δύο είδη υποπρογραμμάτων που μπορούν να χρησιμοποιηθούν εφαρμόζοντας την τεχνική του τμηματικού προγραμματισμού με τη ΓΛΩΣΣΑ;
7. Πως ορίζεται και καλείται και που γράφεται μια συνάρτηση (όνομα, λίστα παραμέτρων, τι προσέχουμε);
8. Πως ορίζεται και καλείται και που γράφεται μια διαδικασία (όνομα, λίστα παραμέτρων);
9. Τι είναι και ποια η εμβέλεια για πραγματικές και τυπικές παραμέτρους (ή απλά παράμετροι ή ορίσματα);
10. Τι είναι διεύθυνση επιστροφής, που αποθηκεύεται και πώς λειτουργεί η στοίβα χρόνου εκτέλεσης;
11. Ποιους κανόνες πρέπει να ακολουθούν πάντα οι λίστες παραμέτρων των υποπρογραμμάτων; (σελ 220)
ΑΣΚΗΣΕΙΣ: ΔΤ1 και ΔΤ2 σελ 109, ΔΤ1 σελ 57 και ΔΣ2 σελ 58

ΚΕΦΑΛΑΙΟ 6 - ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ
ΓΕΝΙΚΑ
Πρόγραμμα = Δεδομένα + Δομές Δεδομένων + Υλοποίηση Αλγορίθμου
Ο υπολογιστής δεν είναι μία έξυπνη μηχανή απλά διαχειρίζεται ακολουθίες δύο ψηφίων 0 και 1:
1. τις αποθηκεύει στη μνήμη,
2. τις ανακτά,
3. κάνει στοιχειώδεις πράξεις με αυτές τις ακολουθίες,
4. τις συγκρίνει.
Η/Υ + Πρόγραμμα: Λύνουν συγκεκριμένα προβλήματα.
Το Υλικό Υπολογιστών (Hardware) βελτιώνεται συνεχώς.
Οι Γλώσσες Προγραμματισμού (Software) αναπτύχθηκαν με σκοπό την επικοινωνία ανθρώπου με μηχανή (1945 Φον Νόυμαν) και εξελίσσονται με αργούς ρυθμούς.
ΓΛΩΣΣΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ
Κανόνας: Δεν υπάρχει καλύτερη γλώσσα προγραμματισμού. (*βλ πριν τις ερωτήσεις)
1. ΓΛΩΣΣΑ ΜΗΧΑΝΗΣ
Με ψηφία 0 και 1.
Συνδεδεμένη με την αρχιτεκτονική της μηχανής.
π.χ. ENIAC (Διακόπτες και καλώδια).
2. ΣΥΜΒΟΛΙΚΕΣ ΓΛΩΣΣΕΣ
Με συμβολικά ονόματα για απλές εντολές.
Δύσκολο να γραφούν και να συντηρηθούν.
Συνδεδεμένη με την αρχιτεκτονική της μηχανής.
Με συμβολομεταφραστή (assembler).
Π.χ. ADD INDEX
3. ΓΛΩΣΣΕΣ ΥΨΗΛΟΥ ΕΠΙΠΕΔΟΥ (3ης γενιάς)
1957
FORTRAN
FORmula TRANslation
Μαθηματικά επιστημονικά προβλήματα.
Χρειάζεται το δικό της μεταγλωττιστή.
1960
COBOL
COmmon Business Oriented Language
Εμπορικές εφαρμογές.
1960
ALGOL
ALGOrithmic Language
Γενικής φύσης προβλήματα.
1965
PL/1
Programming Language/1
Προσπάθεια να καλύψει όλους τους τομείς.
Εξέλιξη FORTRAN + COBOL.
1965
LISP
LISt Processor
Τεχνητή Νοημοσύνη.
1970
PROLOG
Programming LOGic
Τεχνητή Νοημοσύνη.
1967
LOGO Λόγος
Εκπαιδευτικές εφαρμογές μαθητών.
1964
BASIC
Beginner’s All Purpose Symbolic Instruction Code
Εκπαίδευση Αρχαρίων.
Χρήση διερμηνευτή (interpreter).
1970
PASCAL
Γλώσσα γενικής χρήσης. Δομημένος Προγραμματισμός.
1972
C, C++
Λειτουργικά Συστήματα (Unix). Αντικειμενοστραφής.
1970-80
dBase, Clipper, Access
Διαχείριση Βάσεων Δεδομένων.ΠροςΓλώσσες 4ης Γενιάς
Τα
τελευταία
χρόνια
JAVA
Γλώσσα Διαδικτύου.
Event driven programming
Γλώσσες Οδηγούμενες από το γεγονός (κλικ ποντικιού).
Visual programming
Οπτικός Προγραμματισμός (Γραφικό περιβάλλον).

3.1 ΠΛΕΟΝΕΚΤΗΜΑΤΑ
1. Ανθρώπινος τρόπος έκφρασης
2. Μεταφερσιμότητα (ανεξαρτησία από τον υπολογιστή)
3. Ευκολία στην εκμάθηση και εκπαίδευση
4. Εύκολη διόρθωση λαθών και συντήρηση
5. Λιγότερος χρόνος και λιγότερο κόστος παραγωγής προγραμμάτων.
3.2 ΚΑΤΗΓΟΡΙΕΣ
Με βάση το σκοπό για τον οποίο είναι φτιαγμένες ή τη χρήση:
1. Διαδικασιακές
2. Αλγοριθμικές
3. Αντικειμενοστραφείς: Λαμβάνουν ως δομικά στοιχεία τα δεδομένα βάσει των οποίων μορφοποιούνται τα αντικείμενα. Ιεραρχική Σχ.+ Τμηματικός Προγ.+ Δομημένος Προγ. (C++, PASCAL)
4. Συναρτησιακές (LISP)
5. Μη διαδικασιακές (PROLOG)
6. Ερωταπαντήσεων (SQL)
7. Γενικής χρήσης (BASIC, PASCAL, Επιστημονικές FORTRAN και Εμπορικές COBOL)
8. Συστημάτων (C)
9. Τεχνητής Νοημοσύνης (LISP, PROLOG)
10. Ειδικής Χρήσης (Για γραφικά, Εκπαίδευση, ρομποτική, Ολοκληρωμένα κυκλώματα-Αυτοματισμός, Βάσεων Δεδομένων (dBase, Clipper, Access, SQL).

4. ΓΛΩΣΣΕΣ ΥΨΗΛΟΥ ΕΠΙΠΕΔΟΥ (4ης ΓΕΝΙΑΣ)
Γλώσσες ερωταπαντήσεων (χρήση από προγραμματιστές αλλά και από χρήστες με λίγες γνώσεις, SQL).

ΦΥΣΙΚΕΣ ΚΑΙ ΤΕΧΝΙΚΕΣ ΓΛΩΣΣΕΣ
ΓΕΝΙΚΑ ΧΑΡΑΚΤΗΡΙΣΤΙΚΑ
1. Το αλφάβητο (Γράμματα και ψηφία).
2. Λεξιλόγιο (Λέξεις).
3. Γραμματική
Τυπική (Κανόνες σύνθεσης λέξεων)
Συντακτικό (Κανόνες σύνταξης λέξεων).
4. Σημασιολογία (Νόημα λέξεων, εκφράσεων και προτάσεων).
ΔΙΑΦΟΡΕΣ
Η δυνατότητα εξέλιξης.
Φυσικές γλώσσες: μεγάλη δυνατότητα εξέλιξης.
Τεχνητές γλώσσες: στασιμότητα ή μικρή βελτίωση σε επίπεδο διαλέκτου και σε επίπεδο επέκτασης.

ΠΑΡΑΛΛΗΛΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ
Α. Περισσότεροι επεξεργαστές
Β. Μοιράζονται την ίδια μνήμη
Γ. Λειτουργούν παράλληλα εκτελώντας διάφορες εντολές του ίδιου προγράμματος
Δ. Ασύλληπτες ταχύτητες
Ε. Απαιτούν τμηματικό προγραμματισμό.

ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΑ ΠΕΡΙΒΑΛΛΟΝΤΑ
Το πρόγραμμα γράφεται στον συντάκτη (Editor).
Το σύνολο των εντολών του προγράμματος ονομάζεται πηγαίος κώδικας (Source Code).
Πηγαίος Κώδικας


_
Μεταγλώττιση(συντακτικός έλεγχος σε όλες τις εντολές)


_
Αντικείμενο Πρόγραμμα


_

Σύνδεση από το συνδέτη


_

Εκτελέσιμο Πρόγραμμa
Source
Compilation
By Compiler
object
obj
Linking by Linker
executable prg
Όταν εντοπίζονται λάθη λογικά κατά την εκτέλεση, διορθώνονται εντολή-εντολή με διερμηνευτή (interpreter).

*ΓΛΩΣΣΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ
Κανόνας: Δεν υπάρχει καλύτερη γλώσσα προγραμματισμού.
Η επιλογή της γλώσσας προγραμματισμού εξαρτάται από:
1) από το είδος της εφαρμογής
2) από το υλικό (Hardware) και το λογισμικό (Software)
3) από τις γνώσεις του προγραμματιστή


ΑΠΑΝΤΩ ΣΕ ΟΛΕΣ ΤΙΣ ΕΡΩΤΗΣΕΙΣ – ΚΑΝΩ ΑΥΤΟΑΞΙΟΛΟΓΗΣΗ
1. Ποια είναι τα στάδια επίλυσης ενός προβλήματος με υπολογιστή;
2. Με τι ασχολείται ο προγραμματισμός; Ποιο είναι το βασικό στοιχείο ενός προγράμματος;
3. Τι είναι αυτό που δίνει την εντύπωση ότι οι υπολογιστές είναι έξυπνες μηχανές ενώ είναι απλώς μια ψευδαίσθηση;
4. Ποιες καταστάσεις καταλαβαίνει ο υπολογιστής και ποιες οι στοιχειώδεις ενέργειες που εκτελεί με αυτές;
5. Ποιος είναι ο βασικός σκοπός για τον οποίο αναπτύχθηκαν οι γλώσσες προγραμματισμού;
6. Τι είναι γλώσσα μηχανής; Ανάφερε ποιες δυσκολίες παρουσιάζονταν παλιότερα με τις γλώσσες μηχανής;
7. Τι γνωρίζεις για τις συμβολικές γλώσσες ή γλώσσες χαμηλού επιπέδου (σκοπός δημιουργίας και μειονεκτήματα);
8. Τι είναι ο συμβολομεταφραστής;
9. Ποια είναι τα πλεονεκτήματα των γλωσσών υψηλού επιπέδου από αυτές του χαμηλού επιπέδου;
10. Ποιες γλώσσες υψηλού επίπεδου γνωρίζετε; Αναφέρετε βασικά χαρακτηριστικά για κάθε μία.
11. Τι ονομάζουμε οπτικό προγραμματισμό και τι προγραμματισμό οδηγούμενο από το γεγονός;
12. Ποιες είναι οι κατηγορίες των γλωσσών προγραμματισμού υψηλού επιπέδου; Να δοθεί ένα παράδειγμα για κάθε κατηγορία.
13. Σε ποιες κατηγορίες ταξινομούμε τις γλώσσες προγραμματισμού με βάση την περιοχή χρήσης τους; Να δοθεί ένα παράδειγμα για κάθε κατηγορία.
14. Υπάρχει η καλύτερη γλώσσα προγραμματισμού;
15. Πώς προσδιορίζεται μία γλώσσα;
16. Να δοθεί ο ορισμός του αλφαβήτου, του λεξιλογίου, της γραμματικής και της σημασιολογίας μιας γλώσσας.
17. Ποιες είναι οι κυριότερες διαφορές των φυσικών και των τεχνητών γλωσσών; Σε τι επίπεδο μια γλώσσα προγραμματισμού μπορεί να βελτιωθεί;
18. Ποιες τεχνικές σχεδίασης προγραμμάτων γνωρίζετε;
19. Τι καλείται ιεραρχική σχεδίαση προγράμματος;
20. Τι καλείται τμηματικός προγραμματισμός;
21. Ποιο σκοπό έχει και που βασίζεται ο δομημένος προγραμματισμός;
22. Ποια είναι τα πλεονεκτήματα του δομημένου προγραμματισμού;
23. Τι κάνει ένας μεταγλωττιστής;
24. Τι κάνει ένας διερμηνευτής;
25. Ποια είναι η διαδικασία δημιουργίας ενός εκτελέσιμου προγράμματος;
26. Ποια είναι τα είδη λαθών που εμφανίζονται σ’ ένα πρόγραμμα κατά τη διαδικασία ανάπτυξής του;
27. Ποιες είναι οι διαφορές μεταγλωττιστή και διερμηνευτή;

28. Ποια προγράμματα και εργαλεία περιέχει ένα προγραμματιστικό περιβάλλον;

ΕΚΤΟΣ ΥΛΗΣ


  ΚΕΦΑΛΑΙΟ 1 - ΑΝΑΛΥΣΗ ΠΡΟΒΛΗΜΑΤΟΣ
    ΜΑΘΑΙΝΩ ΤΑ ΠΑΡΑΚΑΤΩ

1)ΠΡΟΒΛΗΜΑ: (βλ. βιβλίο σελ 3).

2)ΚΑΤΗΓΟΡΙΕΣ ΠΡΟΒΛΗΜΑΤΩΝ

Δυνατότητα Επίλυσης
Επιλύσιμα (π.χ. Δευτεροβάθμια εξίσωση)
Ανοικτά (π.χ. Ενοποίηση Τεσσάρων Πεδίων,AIDS)
Άλυτα (π.χ. Τετραγωνισμός του κύκλου)

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

Είδος Επίλυσης
Απόφασης (Ναι ή όχι)
Υπολογιστικά
Βελτιστοποίησης (Ψάχνουμε τη βέλτιστη λύση)

3)ΔΕΔΟΜΕΝΟ: (βλ. βιβλίο σελ 8). Επίσης είναι ένα γνωσιακό στοιχείο που χρειάζεται επεξεργασία (είναι ακατέργαστο).

4)ΠΛΗΡΟΦΟΡΙΑ: : (βλ. βιβλίο σελ 8).

5)ΕΠΕΞΕΡΓΑΣΙΑ ΔΕΔΟΜΕΝΩΝ: : (βλ. βιβλίο σελ 8).

6)ΔΟΜΗ ΠΡΟΒΛΗΜΑΤΟΣ: (βλ. βιβλίο σελ 8) + Διαγραμματική ή Φραστική αναπαράσταση (σελ 10).

7)ΣΤΑΔΙΑ ΑΝΤΙΜΕΤΩΠΙΣΗΣ ΠΡΟΒΛΗΜΑΤΟΣ
Κατανόηση
1. Σωστή διατύπωση 2.Σωστή Ερμηνεία

Ανάλυση (σε αυτό το στάδιο γίνεται ο καθορισμός απαιτήσεων)
Δομή Προβλήματος
Καθορισμός απαιτήσεων σημαίνει προσδιορισμός δεδομένων και καταγραφή λεπτομερειακή των ζητουμένων με ανίχνευση και ερωτήσεις διευκρίνησης (σελ. 11-12).

Επίλυση
Επεξεργασία Δεδομένων που οδηγούν σε Πληροφορίες

8)ΧΡΗΣΗ ΤΟΥ ΥΠΟΛΟΓΙΣΤΗ ΟΤΑΝ:
1. Έχουμε πολύπλοκους υπολογισμούς
2. Έχουμε διαδικασίες που επαναλαμβάνονται
3. Θέλουμε ταχύτητα στην εκτέλεση των πράξεων
4. Έχουμε μεγάλο πλήθος δεδομένων

9)ΒΑΣΙΚΕΣ ΛΕΙΤΟΥΡΓΙΕΣ ΠΟΥ ΕΚΤΕΛΕΙ ΕΝΑΣ ΥΠΟΛΟΓΙΣΤΗΣ
1. Πρόσθεση (Οι άλλες πράξεις προκύπτουν από την πρόσθεση)
2. Σύγκριση (Βασική λειτουργία για τις λογικές πράξεις)
3. Μεταφορά δεδομένων (πριν και μετά από επεξεργασία δεδομένων)

ΑΥΤΟΑΞΙΟΛΟΓΗΣΗ – ΑΠΑΝΤΩ ΣΕ ΟΛΕΣ ΤΙΣ ΕΡΩΤΗΣΕΙΣ
Μέθοδος:Ψάχνω στο βιβλίο τις απαντήσεις και τις υπογραμμίζω ή φτιάχνω δικές μου σημειώσεις.
1.Τι ονομάζουμε πρόβλημα;
2.Τι ονομάζουμε επίλυση προβλήματος;
3.Τι προϋποθέτει η κατανόηση ενός προβλήματος; Από ποιους παράγοντες εξαρτάται;
4.Να δοθεί ο ορισμός των όρων “δεδομένο” και “πληροφορία”.
5.Να δοθεί ο ορισμός του όρου “επεξεργασίας δεδομένων”. Να αναφέρεις μηχανισμούς επεξεργασίας δεδομένων.
6.Τι θα συμβεί αν κάποιος σας διατυπώσει ασαφώς ένα πρόβλημα;
7.Τι εννοούμε με τον όρο δομή ενός προβλήματος; Με την καταγραφή της δομής ενός προβλήματος ποια διαδικασία ξεκινάει;
8.Ποιους τρόπους χρησιμοποιούμε για να περιγράψουμε τη δομή ενός προβλήματος;
9.Πώς υλοποιείται η διαγραμματική αναπαράσταση ενός προβλήματος; Τι προσφέρει και σε τι βοηθάει;
10.Τι σημαίνει καθορισμός απαιτήσεων και πώς αντιμετωπίζεται;
11.Ποια είναι τα στάδια αντιμετώπισης ενός προβλήματος;
12.Ποιες είναι οι Κατηγορίες Προβλημάτων;
13.Να αναφέρετε τις κατηγορίες προβλημάτων με κριτήριο τη δυνατότητα επίλυσης τους.
14.Να αναφέρετε τις κατηγορίες προβλημάτων με κριτήριο το βαθμό δόμησης.
15.Να αναφέρετε τις κατηγορίες προβλημάτων με κριτήριο το είδος της επίλυσης.
16.Γνωρίζουμε τον ακριβή τρόπο λειτουργίας του ανθρώπινου εγκεφάλου;
17.Ποια είναι η διαφορά του υπολογιστή με τον ανθρώπινο εγκέφαλο-πνεύμα;
18.Για ποιους λόγους χρησιμοποιούμε τον υπολογιστή για την επίλυση ενός προβλήματος;
19.Ποιες είναι οι τρεις βασικές λειτουργίες που εκτελεί ένας υπολογιστής;

Προσπάθησε να διατυπώσεις 1από τα προβλήματα των σελίδων 3, 4, 5.

ΣΤΟΙΒΑ (Βλ. βιβλίο σελ 59,60)

Η στοίβα είναι ένας μονοδιάστατος πίνακας που τον διαχειριζόμαστε με μία συγκεκριμένη λογική. Η λογική αυτή ονομάζεται ΤΕΛΕΥΤΑΙΟ ΜΕΣΑ ΠΡΩΤΟ ΕΞΩ ή αλλιώς LAST IN FIRST OUT ή LIFO.Παραδείγματα αυτής της λογικής στην καθημερινότητα είναι το πλύσιμο των πιάτων σε στοίβα, ο κερματοδέκτης ενός εισπράκτορα, η είσοδος και έξοδος ανθρώπων σε ασανσέρ.

Οι κύριες λειτουργίες σε μια στοίβα είναι :

1. η ΩΘΗΣΗ (είσοδος) στοιχείου στη στοίβα

2. η ΑΠΩΘΗΣΗ (έξοδος) στοιχείου από τη στοίβα

ΠΡΟΣΟΧΗ: Για τη διαχείρισή της, χρησιμοποιούμε μία βοηθητική μεταβλητή-δείκτη με όνομα συνήθως top, που δείχνει το στοιχείο που τοποθετήθηκε τελευταίο στη στοίβα.

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

AN top

toptop+1

ΔΙΑΒΑΣΕ Στοιβα[top]

ΑΛΛΙΩΣ

ΓΡΑΨΕ ‘αδύνατη ώθηση στοιχείου λόγω υπερχείλισης’’

ΤΕΛΟΣ_ΑΝ

Στην απώθηση στοιχείου, αφού ελεγχθεί αν υπάρχει στοιχείο στη στοίβα (top >0μειώνεται η top κατά ένα.

AN top>0 TOTE

ΓΡΑΨΕ Στοιβα[top] ! εμφανίζουμε ποιο φεύγει

toptop-1

ΑΛΛΙΩΣ

ΓΡΑΨΕ ‘αδύνατη απώθηση στοιχείου λόγω υποχείλισης

ΤΕΛΟΣ_ΑΝ


ΟΥΡΑ (Βλ. βιβλίο σελ 60, 61)

Η ουρά είναι ένας μονοδιάστατος πίνακας που τον διαχειριζόμαστε με μία συγκεκριμένη λογική. Η λογική αυτή ονομάζεται ΠΡΩΤΟ ΜΕΣΑ ΠΡΩΤΟ ΕΞΩ ή αλλιώς FIRST IN FIRST OUT ή FIFO.Παραδείγματα αυτής της λογικής στην καθημερινότητα είναι η ουρά αναμονής σε οποιαδήποτε περίπτωση. Το θέμα είναι τόσο σημαντικό ώστε ένας κλάδος των Μαθηματικών, η Επιχειρησιακή Έρευνα με τη Θεωρία Ουρών μελετά τη συμπεριφορά και την επίδοση των ουρών

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

1. η ΕΙΣΑΓΩΓΗ (είσοδος) στοιχείου στη ουρά

2. η ΕΞΑΓΩΓΗ (έξοδος) στοιχείου από τη ουρά

ΠΡΟΣΟΧΗ: Για τη διαχείρισή της, χρησιμοποιούμε δύο βοηθητικές μεταβλητές-δείκτες:ο εμπρός-front, που δείχνει το στοιχείο που είναι έτοιμο να εξαχθεί από την ουρά και ο πίσω-rear, που δείχνει το στοιχείο που τοποθετήθηκε τελευταίο στη ουρά.

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

AN rear

rearrear+1

ΔΙΑΒΑΣΕ Ουρά[rear]

ΤΕΛΟΣ_ΑΝ

Στην εξαγωγή στοιχείου, αφού ελεγχθεί αν υπάρχει στοιχείο στη ουρά(front<=rear)αυξάνεται η front κατά ένα.

AN front<=rear TOTE

ΓΡΑΨΕ Ουρά[front]

frontfront+1

ΤΕΛΟΣ_ΑΝ