Upload
mariaprogr
View
85
Download
3
Embed Size (px)
Citation preview
1
Κεφάλαιο 2.2. Αλγόριθμοι2.2.5 Αναπαράσταση Αλγορίθμων
ΕΝΟΤΗΤΑ 2. ΘΕΜΑΤΑ ΘΕΩΡΗΤΙΚΗΣ ΕΠΙΣΤΗΜΗΣ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ
2
2.2.5 Αναπαράσταση Αλγορίθμων
Οι αλγόριθμοι μπορούν να αναπαρασταθούν με:
Φυσική γλώσσα
Ψευδοκώδικα ή ψευδογλώσσα
Γλώσσα προγραμματισμούo οπτικές γλώσσες προγραμματισμού,
o κειμενικές γλώσσες προγραμματισμού
Μεθοδολογίες διαγραμματικής αναπαράστασης αλγορίθμων
3
2.2.5 Αναπαράσταση Αλγορίθμων
Φυσική γλώσσα
Οι φυσικές γλώσσες, είναιοι γλώσσες που μιλούν οιάνθρωποι, ενώ οι τεχνητέςγλώσσες έχουν αναπτυχθείκυρίως για διευκόλυνση τηςεπικοινωνίας ιδεών.
μέσω της οποίας περιγράφονται τα βήματα επίλυσης του προβλήματος. (Μειονέκτημα οι ασάφειες στις οδηγίες).
4
Παράδειγμα: Να αναπτυχθεί αλγόριθμος σε φυσική γλώσσα ο οποίος να υπολογίζει το άθροισμα και το γινόμενο δύο αριθμών.
ΑπάντησηΦυσική γλώσσα: Αφού εισαχθούν οι τιμές δύο μεταβλητών α και β, να προσθέσετε το περιεχόμενό τους και το αποτέλεσμα να το δώσετε σε μια νέα μεταβλητή γ. Στην συνέχεια να πολλαπλασιάσετε το περιεχόμενο των δύο μεταβλητών α, β και το αποτέλεσμα να το δώσετε σε μια μεταβλητή δ.
2.2.5 Αναπαράσταση Αλγορίθμων
Φυσική γλώσσα
5
Ψευδοκώδικα ή ψευδογλώσσα
2.2.5 Αναπαράσταση Αλγορίθμων
Απάντηση:
Αλγόριθμος υπολογισμοίΔιάβασε α, βγ ← α + βδ ← α * βΕμφάνισε γ, δ
Τέλος υπολογισμοί
Παράδειγμα: Να αναπτυχθεί αλγόριθμος σε ψευδογλώσσα ο οποίος να υπολογίζει το άθροισμα και το γινόμενο δύο αριθμών.
6
2.2.5 Αναπαράσταση Αλγορίθμων
Γλώσσα προγραμματισμούΠαράδειγμα: Να αναπτυχθεί αλγόριθμος σε γλώσσα προγραμματισμού ο οποίος να υπολογίζει το άθροισμα και το γινόμενο δύο αριθμών.o οπτικές γλώσσες
προγραμματισμού,
7
Γλώσσα προγραμματισμού
o κειμενικές γλώσσες προγραμματισμού
σε Pascal
Program athrisma;uses wincrt;var a, b, athr: real;begin read (a,b); athr := a+b; gin := a*b writeln ('Αθροισμα = ',athr:7:2, Γινόμενο= ',gin:7:2 )end.
Παράδειγμα: Να αναπτυχθεί αλγόριθμος σε γλώσσα προγραμματισμού ο οποίος να υπολογίζει το άθροισμα και το γινόμενο δύο αριθμών.
2.2.5 Αναπαράσταση Αλγορίθμων
8
Παράδειγμα: Να αναπτυχθεί αλγόριθμος σε μορφή διαγράμματος ροής ο οποίος να υπολογίζει το άθροισμα και το γινόμενο δύο αριθμών.
2.2.5 Αναπαράσταση Αλγορίθμων
Μεθοδολογίες διαγραμματικής αναπαράστασης αλγορίθμων
ΑΡΧΗ
ΔΙΑΒΑΣΕα , β
γ <-- α + β
δ <-- α * β
ΓΡΑΨΕγ , δ
ΤΕΛΟΣ
Τα γεωμετρικά σχήματα που χρησιμοποιούνται συνήθως στα διαγράμματα ροής είναι:
1. Έλλειψη , για να δηλώσουμε την αρχή και το τέλος του αλγορίθμου.
2. Πλάγιο παραλληλόγραμμο για να δηλώσουμε την είσοδο ή έξοδο στοιχείων
Διάγραμμα ροής
9
2.2.5 Αναπαράσταση Αλγορίθμων
3. Ορθογώνιο παραλληλόγραμμο, για να δηλώσουμε την εκτέλεση μιας ή περισσότερων πράξεων.
4. Ρόμβος, για να δηλώσουμε μία ερώτηση με δύο εξόδους για απάντηση.
5. το βέλος, το οποίο δείχνει τη ροή εκτέλεσης του αλγορίθμου.
10
2.2.6 Δεδομένα και αναπαράσταση τους
Ένας αλγόριθμος μετατρέπει τα δεδομένα σε πληροφορία.
Κάθε γλώσσα μπορεί να υποστηρίζει τη χρήση διαφόρων τύπων δεδομένων. Κάθε γλώσσα έχει συγκεκριμένους τύπους δεδομένων, ενώ μπορούν να δημιουργηθούννέοι τύποι ορισμένοι από το χρήστη.
Η επεξεργασία δεδομένων, η οποία στην πράξη πραγματοποιείται μέσω αλγορίθμων, αναφέρεται στην εκτέλεση διαφόρων πράξεων/ λειτουργιών πάνω στα δεδομένα.
11
2.2.6 Δεδομένα και αναπαράσταση τους
Δεδομένα12
34.5
“Καλά Χριστούγεννα”78
11.34“2014”
2014
-12.5-106
Αληθής
Ψευδής“άρτιος”
“1ο ΓΕΛ Ιεράπετρας”
-4
12
2.2.6 Δεδομένα και αναπαράσταση τους
Οι πιο συνήθεις τύποιδεδομένων είναι:
Ακέραιος τύπος: για την αναπαράσταση ακεραίων αριθμών.Π.χ. 12, 78, 2014, -106, -4
Αριθμητικοί Τύποι
Πραγματικός τύπος: για την αναπαράσταση πραγματικών αριθμών. Π.χ. 34.5, -12.5, 11.34
13
2.2.6 Δεδομένα και αναπαράσταση τους
Οι πιο συνήθεις τύποιδεδομένων είναι:
Αλφαριθμητικοί Τύποι
για την αναπαράσταση αλφαριθμητικών δεδομένων δηλαδή χαρακτήρων (τους βάζουμε μέσα σε “ “ )
Π.χ.
“Καλά Χριστούγεννα”“άρτιος”“2014”“1ο ΓΕΛ Ιεράπετρας”
14
2.2.6 Δεδομένα και αναπαράσταση τους
για την αναπαράσταση λογικών δεδομένων (τα οποία μπορούν να πάρουν μόνο δύο τιμές)
Λογικός τύπος:
Αληθής, Ψευδής
Παράδειγμα:
Η πρόταση: «το 5 είναι μεγαλύτερο από το 3» είναι Αληθής (δηλ. 5 > 3 => Αληθής).Η πρόταση: «το 10 είναι μικρότερο ίσο του 3» είναι Ψευδής (δηλ. 10 ≤ 3 => Ψευδής).Η πρόταση: «το 5=4 είναι Ψευδής (δηλ. 5=4 => Ψευδής).Η πρόταση: το 5 > 3 και το 10 ≤ 3 είναι Ψευδής (δηλ. 5 > 3 και 10 ≤ 3 => Αληθής και Ψευδής => Ψευδής)Η πρόταση: το 5 > 3 ή το 10 ≤ 3 είναι Αληθής (δηλ. 5 > 3 ή 10 ≤ 3 => Αληθής ή Ψευδής =>Αληθής)
15
2.2.6 Δεδομένα και αναπαράσταση τους
Κατά τον σχεδιασμό ενός αλγορίθμου έχει σημασία το είδος των τύπων δεδομένων που υποστηρίζονται γιατί σε κάθε τύπο μπορούν να εφαρμοστούν διαφορετικές πράξεις. (π.χ. στα αριθμητικά δεδομένα εφαρμόζονται οι αριθμητικές πράξεις της πρόσθεσης, αφαίρεσης κλπ)
Τα δεδομένα των προγραμμάτων αποθηκεύονται στην κύρια μνήμη ή και στις περιφερειακές συσκευές ενός υπολογιστή με διάφορες μορφές.
Για την επεξεργασία των δεδομένων είναι πιθανόν να χρησιμοποιούνται διαφορετικοί αλγόριθμοι και το υλικό του υπολογιστή έχει επίδραση στο είδος των αλγορίθμων που θα χρησιμοποιηθούν.
16
2.2.6 Δεδομένα και αναπαράσταση τους
Μνήμη
Μεταβλητές
α
5
α 5
β
β 8
8
β
β 4
48
Φανταστείτε την μνήμη του Η/Υ , σαν μια συρταριέρα.
Τα α, β είναι τα ονόματα των μεταβλητών ενώ το 5 και το 8 είναι οι τιμές που αποθηκεύονται σε αυτές.
17
2.2.6 Δεδομένα και αναπαράσταση τους
Μνήμη
Μεταβλητές
α
5
α 5
β
β 8
8
β
β 4
48
Φανταστείτε την μνήμη του Η/Υ , σαν μια συρταριέρα.Στην μεταβλητή α εκχωρείται η τιμή 5 ενώ στην β η τιμή 8.Οι μεταβλητές μπορούν να λάβουν μία τιμή κάθε φορά.Συνεπώς αν στην μεταβλητή β αποθηκεύσουμε την τιμή (δεδομένο) 4 τότε η προηγούμενη τιμή της β θα χαθεί.
18
2.2.6 Δεδομένα και αναπαράσταση τους
Τα δεδομένα μπορούν να αποθηκεύονται και ως μια δομή δεδομένων
Ορισμός
Δομή δεδομένων (data structure) είναι ένα σύνολο αποθηκευμένων δεδομένων, τα οποία είναι έτσι οργανωμένα, ώστε να υπόκεινται σε συγκεκριμένες απαιτούμενες επεξεργασίες.
Αλγόριθμοι + Δομές Δεδομένων = Προγράμματα
Σχέση Αλγορίθμων και Δομών δεδομένωνΔιατυπώθηκε από τον Νικλάους Βιρθ
δημιουργό της Pascal
19
2.2.6 Δεδομένα και αναπαράσταση τους
Οι δομές δεδομένων που χρησιμοποιούνται συχνότερα είναι:
ο πίνακας,
η στοίβα,
η ουρά,
η λίστα,
το δένδρο και
ο γράφος.
20
2.2.6 Δεδομένα και αναπαράσταση τους O πίνακας (table)
Ο πίνακας είναι ένα σύνολο ομοειδών (ίδιου είδους) στοιχείων. Τα στοιχεία ενός πίνακα καθορίζονται με τη βοήθεια δεικτών. Υπάρχουν πίνακες μίας, δύο, τριών ή περισσότερων διαστάσεων.Παράδειγμα: πίνακας A i x j εννοούμε ένα πίνακα δύο διαστάσεων με i γραμμές και j στήλες. Δηλαδή πίνακας Α 5 x 4 σημαίνει ότι έχει i = 5 γραμμές και j =4 στήλες. Το στοιχείο
(δεδομένο) του πίνακα αij = α34 βρίσκεται στην i=3 γραμμή και j=4 στήλη.
α11 α12 α13 α14
α21 α22 α23 α24
α31 α32 α33 α34
α41 α42 α43 α44
α51 α52 α53 α54
Δισδιάστατος Πίνακας Α 5 x 4 (δηλ. πίνακας δύο διαστάσεων με 5 γραμμές και 4 στήλες)
Στήλη 1 Στήλη 2 Στήλη 4Στήλη 3Γραμμή 1Γραμμή 2Γραμμή 3Γραμμή 4Γραμμή 5
Στοιχείο α34
21
2.2.6 Δεδομένα και αναπαράσταση τους
21
16 14 15 16
Παραδείγματα Μονοδιάστατων Πινάκων
Μάνος ΓιώργοςΕλένηΜαρία
Ηλικία 1x 4
Στοιχείο α13 = 15
21
16
14
15
16
17
Μάνος
Γιώργος
Μαρία
Ελένη
Νίκη
Στοιχείο α21 = 14
Ηλικία 5 x 1
O πίνακας (table)
22
2.2.6 Δεδομένα και αναπαράσταση τους
Παράδειγμα τρισδιάστατου Πίνακα
O πίνακας (table)
Πίνακας 2x4x2
Πίνακας 2x3x4
23
2.2.6 Δεδομένα και αναπαράσταση τους Η στοίβα (stack)
Στην στοίβα εισάγονται και εξάγονται στοιχεία (δεδομένα) μόνο από το ένα άκρο. Με την λειτουργία της ώθησης (push) εισάγεται στοιχείο στην κορυφή της στοίβας, ενώ με την λειτουργία της απώθησης (pop ή pull) εξάγεται στοιχείο από την κορυφή της λίστας.
top
ώθησης (push) απώθησης (pop)Η διαδικασία αυτή, δηλαδή το τελευταίο στοιχείο που εισάγεται να εξέρχεται και πρώτο ονομάζεται και LIFO (Last In, First Out)
24
2.2.6 Δεδομένα και αναπαράσταση τους Η Ουρά (queue)
Στην ουρά εισάγονται στοιχεία (δεδομένα) από το ένα άκρο και εξάγονται στοιχεία από το άλλο άκρο.
Η διαδικασία αυτή, δηλαδή το πρώτο στοιχείο που εισάγεται να εξέρχεται και πρώτο ονομάζεται και FIFO (First In, First Out)
Πίσω(rear)
Εμπρός (front)
25
2.2.6 Δεδομένα και αναπαράσταση τους Η Λίστα (linked list)
Στη Λίστα τα στοιχεία φαίνονται να είναι «λογικά» γραμμικά διατεταγμένα, χωρίς όμως να βρίσκονται απαραίτητα σε συνεχόμενες θέσεις της μνήμης του υπολογιστή. Ένα δεδομένο συσχετίζεται με το επόμενό του με την βοήθεια κάποιου δείκτη (pointer), ανεξάρτητα από τη θέση που καταλαμβάνει στη μνήμη.
26
2.2.6 Δεδομένα και αναπαράσταση τους
Τo δένδρο (tree), αποτελείται από ένα σύνολο κόμβων, οι οποίοι συνδέονται με ακμές.
Η Δένδρο (tree)
Υπάρχει μόνο ένας κόμβος, από τον οποίο μόνο ξεκινούν ακμές, που ονομάζεται ρίζα (root)
Οι κόμβοι στους οποίους καταλήγουν μόνο
ακμές (δεν ξεκινούν ακμές μόνο καταλήγουν),
ονομάζονται φύλλα.
ρίζα (root)
φύλλα.
27
2.2.6 Δεδομένα και αναπαράσταση τους Ο Γράφος (graph)
Είναι η πιο γενική δομή δεδομένων μια και αποτελείται από κόμβους και ακμές χωρίς όμως κάποια ιεράρχηση. Δηλαδή τα δεδομένα συσχετίζονται μεταξύ τους χωρίς συγκεκριμένη ιεράρχηση.
28
2.2.6 Δεδομένα και αναπαράσταση τους
ΣτατικέςΈχουν σταθερό μέγεθος, δηλαδή μπορούν να αποθηκεύσουν συγκεκριμένο πλήθος στοιχείων.
ΔυναμικέςΤο μέγεθός τους μπορεί να μεταβάλλεται ανάλογα με τις ανάγκες του αλγορίθμου τη στιγμή που εκτελείται. Το μέγεθός τους μπορεί να μεγαλώνει όταν εισάγονται νέα δεδομένα ή να μικραίνει ή όταν διαγράφονται δεδομένα.
Οι δομές δεδομένων διακρίνονται σε:
29
2.2.6 Δεδομένα και αναπαράσταση τους
ΓραμμικέςΥπάρχει σχέση διάταξης ανάμεσα στα διαδοχικά στοιχεία (κάποιο στοιχείο θα είναι πρώτο κάποιο δεύτερο… και κάποιο τελευταίο)
Μη γραμμικέςΔεν υπάρχει σχέση διάταξης ανάμεσα στα στοιχεία.
Οι δομές δεδομένων διακρίνονται επίσης σε:
Ο πίνακας, η στοίβα, η ουρά και η λίστα είναι γραμμικές δομές δεδομένων
Το δένδρο και ο γράφος είναι μη γραμμικές δομές δεδομένων
30
2.2.6 Δεδομένα και αναπαράσταση τους
Οι δομές δεδομένων διακρίνονται επίσης ανάλογα με το είδος της μνήμης (κύριας ή βοηθητικής) που χρησιμοποιούν.
Ο σκληρός δίσκος και η μνήμη flash, αποτελούν παραδείγματα βοηθητικής μνήμης του υπολογιστή.
Οι δομές δεδομένων που αποθηκεύονται στην βοηθητική μνήμη καλούνται αρχεία δεδομένων.
Πχ. Η εγγραφή ενός μαθητή μπορεί να αποτελείται από το όνομα, το επώνυμο, τον αριθμό κινητού τηλεφώνου, τη διεύθυνση αλληλογραφίας, την ηλεκτρονική διεύθυνση, τη φωτογραφία του κ.ά., που καλούνται πεδία της εγγραφής.