εντοτητα 2.2

14
ΘΕΜΑΤΙΚΗ ΕΝΟΤΗΤΑ 2: ΘΕΜΑΤΑ ΘΕΩΡΗΤΙΚΗΣ ΕΠΙΣΤΗΜΗΣ Η/Υ 2.2 ΑΛΓΟΡΙΘΜΟΙ (10 ώρες) Στόχοι: 1. να περιγράφετε την έννοια του αλγορίθμου και να διακρίνετε την ύπαρξη συγκεκριμένων χαρακτηριστικών που χρειάζεται να έχει ένας αλγόριθμος 2. να αναγνωρίζετε βασικές έννοιες στην Ανάλυση Αλγορίθμων 3. να αναγνωρίζετε τις διάφορες μορφές αναπαράστασης αλγορίθμου 4. να αναφέρετε τους βασικούς τύπους και δομές δεδομένων 5. να διακρίνετε τις βασικές εντολές και δομές που χρησιμοποιούνται σε έναν αλγόριθμο 6. να προσδιορίζετε τον τρόπο λειτουργίας των δομών δεδομένων 7. να εκπονείτε απλούς αλγορίθμους 8. να εντοπίζετε και να διορθώνετε τα λογικά λάθη ενός αλγορίθμου 9. να εξηγείτε την ανάγκη δημιουργίας της κατάλληλης τεκμηρίωσης.

Upload: foteinh-damianou

Post on 10-Jul-2015

52 views

Category:

Education


0 download

TRANSCRIPT

Page 1: εντοτητα 2.2

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

2.2 ΑΛΓΟΡΙΘΜΟΙ (10 ώρες)

Στόχοι: 1. να περιγράφετε την έννοια του αλγορίθμου και να διακρίνετε την

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

2. να αναγνωρίζετε βασικές έννοιες στην Ανάλυση Αλγορίθμων3. να αναγνωρίζετε τις διάφορες μορφές αναπαράστασης αλγορίθμου4. να αναφέρετε τους βασικούς τύπους και δομές δεδομένων5. να διακρίνετε τις βασικές εντολές και δομές που χρησιμοποιούνται σε

έναν αλγόριθμο6. να προσδιορίζετε τον τρόπο λειτουργίας των δομών δεδομένων7. να εκπονείτε απλούς αλγορίθμους8. να εντοπίζετε και να διορθώνετε τα λογικά λάθη ενός αλγορίθμου9. να εξηγείτε την ανάγκη δημιουργίας της κατάλληλης τεκμηρίωσης.

Page 2: εντοτητα 2.2

Αλγόριθμος είναι μια πεπερασμένη σειρά ενεργειών, αυστηρά καθορισμένων και εκτελέσιμων σε

πεπερασμένο χρόνο, που στοχεύουν στην επίλυση ενός προβλήματος.

2

κεφ 2.2 - Αλγόριθμοι

Παραδείγματα:

2.2.1 Ορισμός αλγορίθμου

Page 3: εντοτητα 2.2

Παράδειγμα

3

κεφ 2.2 - Αλγόριθμοι

Να γραφεί αλγόριθμος που να υπολογίζει την περίμετρο ενός κύκλο, δεδομένης της ακτίνας του.

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

Φ.Ε. Ασκ 9

Page 4: εντοτητα 2.2

2.2.2 Χαρακτηριστικά αλγορίθμων

4

κεφ 2.2 - Αλγόριθμοι

Φ.Ε. Ασκ 10

Page 5: εντοτητα 2.2

2.2.3 Ανάλυση αλγορίθμων

5

κεφ 2.2 - Αλγόριθμοι

Θεωρία υπολογισμού

Υπάρχει λύση στο πρόβλημα; Η λύση είναι αποδοτική;

Η θεωρία Υπολογισμού διαιρείται σε 2 κλάδους: 1. Θεωρία Υπολογισιμότητας (Πόσο αποδοτική είναι η λύση;)2. Θεωρία Πολυπλοκότητας (Τι πόροι-χρόνος και χώρος

μνήμης- απαιτούνται;)

Page 6: εντοτητα 2.2

2.2.4 Βασικοί τύποι αλγορίθμων

6

κεφ 2.2 - Αλγόριθμοι

ΣειριακοίΤα βήματα του αλγορίθμου εκτελούνται το ένα μετά το άλλο (αναγκαστικά όταν υπάρχει ένας μόνο επεξεργαστής)

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

Παράδειγμα σειριακού Παράδειγμα παράλληλου αλγορίθμου

1ος επεξεργαστής 2ος επεξεργαστής

Page 7: εντοτητα 2.2

7

κεφ 2.2 - Αλγόριθμοι

ΕπαναληπτικοίΤα περισσότερα προβλήματα απαιτούν την επανάληψη κάποιων βημάτων προκειμένου να επιλυθούν.

20 φορές επανάλαβε: άπλωσε φύλλο άλειψε φύλλο στρώσε μίγμα καρυδιών

Εμφάνισε στην οθόνη 1000 φορές το μήνυμα

Hello world!

1000 φορές επανάλαβε: Εμφάνισε “Hello world!”

Αναδρομικοί

Page 8: εντοτητα 2.2

2.2.5 Αναπαράσταση αλγορίθμου

8

κεφ 2.2 - Αλγόριθμοι

Φυσική γλώσσαΟμιλούμενη γλώσσα.

Ψευδογλώσσα (ψευδοκώδικα)Υποθετική γλώσσα που παραλείπει λεπτομέρειες.

Γλώσσα προγραμματισμούΤεχνητή γλώσσα για χρήση από ΗΥ. οπτικές γλώσσες π.χ. scratch κειμενικές γλώσσες π.χ. Διερμηνευτής ΓΛΩΣΣΣΑΣ

Διαγραμματική αναπαράστασηΓραφικός τρόπος με σύμβολα και βέλη ροής.

Page 9: εντοτητα 2.2

Σύμβολα διαγραμματικής αναπαράστασης

9

κεφ 2.2 - Αλγόριθμοι

ΑΡΧΗ

ΤΕΛΟΣ

Εκτέλεση πράξεων

Είσοδος Έξοδος

συνθήκη

ροή εκτέλεσης

ΤΕΛΟΣ

ΑΡΧΗ

Διάβασε α, β, γ

Δ < 0ΝΑΙ ΟΧΙ

Δ β2-4αγ

Εκτύπωσε …Εκτύπωσε ‘Δε λύνεται’ Δ > 0ΟΧΙ

ΝΑΙ

Εκτύπωσε ...

Φ.Ε. Ασκ 11

Page 10: εντοτητα 2.2

2.2.6 Δεδομένα και αναπαράστασή τους

10

κεφ 2.2 - Αλγόριθμοι

Τα δεδομένα δεν έχουν νόημα αν δεν

συσχετιστούν μεταξύ τους.

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

ακέραιος 34 16000πραγματικός 23.12 34.0 89.99009

λογικός ΑΛΗΘΕΣ ΨΕΥΔΕΣ αλφαριθμητικός «Λύκειο» «10ο Γενικό Λύκειο Ηρακλείου»

Page 11: εντοτητα 2.2

Δεδομένα και αναπαράστασή τους

11

κεφ 2.2 - Αλγόριθμοι

Σε μία μεταβλητή αποθηκεύουμε κάθε στιγμή μία τιμή.

Δομή δεδομένων (data structure) είναι ένα σύνολο αποθηκευμένωνδεδομένων, τα οποία είναι έτσι οργανωμένα, ώστε να υπόκεινται σεσυγκεκριμένες απαιτούμενες επεξεργασίες. Πίνακας Στοίβα Ουρά Λίστα Δένδρο Γράφος

Πού αποθηκεύονται τα δεδομένα;

Page 12: εντοτητα 2.2

Δεδομένα και αναπαράστασή τους

12

κεφ 2.2 - Αλγόριθμοι

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

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

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

Επίσης, οι δομές δεδομένων διακρίνονται σε Γραμμικές

Υπάρχει η έννοια του πρώτου και του τελευταίου στοιχείου, του προηγούμενου και του επόμενου (π.χ. ουρά, στοίβα)

Μη γραμμικέςΔεν υφίστανται οι παραπάνω έννοιες. (π.χ. δένδρο, γράφος)

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

Φ.Ε. Ασκ 12 έως20

Page 13: εντοτητα 2.2

2.2.7 Εντολές και Δομές αλγορίθμου

13

κεφ 2.2 - Αλγόριθμοι

Ψευδογλώσσα

Αρχίζουμε με …

Τελειώνουμε με …

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

καλούνται δεσμευμένες λέξεις. Όπως και οι φυσικές γλώσσες περιλαμβάνει αλφάβητο, δηλαδή

επιτρεπτά σύμβολα.

Page 14: εντοτητα 2.2

Εντολές και Δομές αλγορίθμου (Ψευδογλώσσα)

14

κεφ 2.2 - Αλγόριθμοι

Οι σταθερές μπορεί να είναι αριθμητικές (ακέραιες ή πραγματικές),αλφαριθμητικές και λογικές

Για την ονομασία αλγορίθμων, μεταβλητών σταθερών πρέπει ναακολουθούμε τους παρακάτω κανόνες:

• μόνο γράμματα (ελληνικά ή αγγλικά), ψηφία (0…9) και κάτω παύλα(_)• πρέπει να αρχίζει με γράμμα

Φ.Ε. Ασκ 21 και22