ΣΤΟΙΧΕΙΑ ΨΕΥΔΟΚΩΔΙΚΑ ΒΑΣΙΚΕΣ ΔΟΜΕΣ ΒΑΣΙΚΟΙ ΑΛΓΟΡΙΘΜΟΙ ΠΙΝΑΚΩΝ

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
Βασικές έννοιες αλγορίθμων
Advertisements

Κεφάλαιο Τμηματικός προγραμματισμός
ΚΑΘΟΡΙΣΜΟΣ ΚΑΙ ΚΑΤΑΝΟΗΣΗ ΤΟΥ ΠΡΟΒΛΗΜΑΤΟΣ
7.5.2 Αντικειμενοστραφής προγραμματισμός
-Στοίβα-Ουρά - Πλεονεκτήματα πινάκων -Δομές δεδομένων δευτερεύουσας μνήμης -Πληροφορική και δεδομένα -Παραδείγματα-Προβλήματα ψευδοκώδικα.
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ?? ΣΗΜΑ ΗΧΟΣ.
ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ ΤΜΗΜΑΤΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ
Άμεσοι Αλγόριθμοι: Προσπέλαση Λίστας (list access) TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Έχουμε αποθηκεύσει.
Πίνακες-Αλφαριθμητικά
Εισαγωγή στους Η/Υ Πίνακες.
ΜΑΘ3122/106 Γλώσσα Προγραμματισμού
ΔΙΔΑΚΤΙΚΕΣ ΔΥΣΚΟΛΙΕΣ ΣΤΟΥΣ ΠΙΝΑΚΕΣ ΠΕΚ ΠΕΙΡΑΙΑ Α΄φάση Επιμόρφωσης Εκπ/κών κλάδου ΠΕ19 Διδακτική της Πληροφορικής Ρόδος, Νοέμβρης 2007.
Παράδειγμα 2: Κινηματογράφοι Να γραφεί πρόγραμμα το οποίο:
Εκτέλεση Αλγορίθμων σε ψευδογλώσσα
Εισαγωγικές Έννοιες Διδάσκοντες: Σ. Ζάχος, Δ. Φωτάκης Επιμέλεια διαφανειών: Δ. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο.
Κεφάλαιο 2 : Βασικές Έννοιες Αλγορίθμων 2.1 Τι είναι αλγόριθμος
Β΄ ΓΕΛ ΕισΑρχΕπ Η/Υ παρ – 2.2.5
Κοντινότεροι Κοινοί Πρόγονοι α βγ θ δεζ η π ν ι κλμ ρσ τ κκπ(λ,ι)=α, κκπ(τ,σ)=ν, κκπ(λ,π)=η κκπ(π,σ)=γ, κκπ(ξ,ο)=κ ξο κκπ(ι,ξ)=β, κκπ(τ,θ)=θ, κκπ(ο,μ)=α.
Διαίρει-και-Βασίλευε
Προσεγγιστικοί Αλγόριθμοι
Η αλληλουχία των ενεργειών δεν είναι πάντα μία και μοναδική!!!
ΑΝΑΛΥΣΗ ΠΡΟΒΛΗΜΑΤΟΣ ΚΕΦΑΛΑΙΟ 1ο ΚΕΦ. 1-ΑΝΑΛΥΣΗ ΠΡΟΒΛΗΜΑΤΟΣ ΑΕΠΠ.
Η αλληλουχία των ενεργειών δεν είναι πάντα μία και μοναδική!!!
Β΄ ΓΕΛ ΕισΑρχΕπ Η/Υ παρ – 2.2.5
Αλγοριθμική Μία εισαγωγή στον αλγοριθμικό τρόπο σκέψης.
Μεταβλητές – εντολές εκχώρησης- δομή ακολουθίας
ΘΕΜΑΤΙΚΗ ΕΝΟΤΗΤΑ 2: ΘΕΜΑΤΑ ΘΕΩΡΗΤΙΚΗΣ ΕΠΙΣΤΗΜΗΣ Η/Υ
Στοίβα, Ουρά.
Αλγόριθμοι συνέχεια 2.2.4, 2.2.5,
Ουρά Προτεραιότητας: Heap
Δομές Δεδομένων.
ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΝΝΟΙΑ ΤΟΥ ΑΛΓΟΡΙΘΜΟΥ ΚΑΙ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ
Ενότητα Α.4. Δομημένος Προγραμματισμός
Διάλεξη 9η: Εφαρμογή της μεθόδου Simplex στο γραμμικό προγραμματισμό κατά τη μεγιστοποίηση Μέθοδος Simplex 1.Όταν υπάρχουν μέχρι πέντε κλάδοι παραγωγής.
Η αλληλουχία των ενεργειών δεν είναι πάντα μία και μοναδική!!!
ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ
Διδακτική της Πληροφορικής ΗΥ302 Εργασία :Παρουσίαση σχολικού βιβλίου Γ’ Λυκείου Τεχνολογικής Κατεύθυνσης «Ανάπτυξη εφαρμογών σε προγραμματιστικό περιβάλλον»
Kεφάλαιο 4 ΑΛΓΟΡΙΘΜΟΙ-ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ (αναλυτική προσέγγιση)
Δομές Αναζήτησης TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Θέλουμε να υποστηρίξουμε δύο βασικές λειτουργίες:
ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΛΓΟΡΙΘΜΩΝ
ΘΕΜΑΤΙΚΗ ΕΝΟΤΗΤΑ 2: ΘΕΜΑΤΑ ΘΕΩΡΗΤΙΚΗΣ ΕΠΙΣΤΗΜΗΣ Η/Υ
Λεξικό, Union – Find Διδάσκοντες: Σ. Ζάχος, Δ. Φωτάκης Επιμέλεια διαφανειών: Δ. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο.
ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΛΓΟΡΙΘΜΩΝ
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ §3.7 ΤΑΞΙΝΟΜΗΣΗ
Ερωτήσεις & Φύλλο εργασίας
Δομές Δεδομένων 1 Θέματα Απόδοσης. Δομές Δεδομένων 2 Οργανώνοντας τα Δεδομένα  Η επιλογή της δομής δεδομένων και του αλγορίθμου επηρεάζουν το χρόνο εκτέλεσης.
ΚΕΦΑΛΑΙΟ Τι είναι αλγόριθμος
Κεφάλαιο 1ο Ανάλυση προβλήματος.
ΚΕΦΑΛΑΙΟ Το αλφάβητο της ΓΛΩΣΣΑΣ
Κεφάλαιο 3ο Δομές Δεδομένων.
Γλώσσες Προγραμματισμού Μεταγλωττιστές Πίνακας Συμβόλων Πανεπιστήμιο Μακεδονίας Τμήμα Εφαρμοσμένης Πληροφορικής Ηλίας Σακελλαρίου.
Δομές δεδομένων και Αλγόριθμοι Κεφάλαιο 3. Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον Δεδομένα Δεδομένα (data) Δεδομένα (data) –αφαιρετική αναπαράσταση.
ΚΕΦΑΛΑΙΟ ΑΛΓΟΡΙΘΜΟΙ Αλγόριθμος Η έννοια του αλγορίθμου δεν συνδέεται αποκλειστικά και μόνο με προβλήματα της Πληροφορικής. Πχ συνταγή.
ΔΥΑΔΙΚΗ ΑΝΑΖΗΤΗΣΗ & ΤΑΞΙΝΟΜΗΣΗ ΜΕ ΣΥΓΧΩΝΕΥΣΗ. Δυαδική αναζήτηση (Binary search) ΔΕΔΟΜΕΝΟ: ένα μεγάλο αρχείο που περιέχει τιμές z [0,1,…,n-1] ταξινομημένες.
ΚΕΦΑΛΑΙΟ 2ο - ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΛΓΟΡΙΘΜΩΝ
ΑΛΓΟΡΙΘΜΟΣ ΠΡΟΒΛΗΜΑ ΑΛΓΟΡΙΘΜΟΣ ΛΥΣΗ
Ενότητα 5 : Δομές Δεδομένων και αφηρημένοι
Διδάσκων: Δρ. Τσίντζα Παναγιώτα
Αρχεσ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Η/Υ ΤΑξη Β΄
Κάθε ένα από τα αντικείμενα λέγεται στοιχείο του πίνακα.
ΚΕΦΑΛΑΙΟ 1 Ανάλυση προβλήματος.
Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον
ΑΛΓΟΡΙΘΜΟΣ.
ENOTHTA 2. ΘΕΜΑΤΑ ΘΕΩΡΗΤΙΚΗΣ ΕΠΙΣΤΗΜΗΣ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΚΕΦΑΛΑΙΟ 2
Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον ΑΕΠΠ
Φοιτητής: Τσακίρης Αλέξανδρος Επιβλέπων: Ευάγγελος Ούτσιος
Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον ΑΕΠΠ
Βασικές έννοιες αλγορίθμων
Β.ΕΠΑΛ-Γενικής Παιδείας  ΜΑΘΗΜΑ: Εισαγωγή στης αρχές Επιστήμης των Η/Υ  ΚΕΦΑΛΑΙΟ 4: Γλώσσες Αναπαράστασης Αλγορίθμων  ΕΝΟΤΗΤΑ 4.2: Δομή Ακολουθίας 
Εξωτερική Αναζήτηση Ιεραρχία Μνήμης Υπολογιστή Εξωτερική Μνήμη
Μεταγράφημα παρουσίασης:

ΣΤΟΙΧΕΙΑ ΨΕΥΔΟΚΩΔΙΚΑ ΒΑΣΙΚΕΣ ΔΟΜΕΣ ΒΑΣΙΚΟΙ ΑΛΓΟΡΙΘΜΟΙ ΠΙΝΑΚΩΝ ΣΤΟΙΧΕΙΑ ΨΕΥΔΟΚΩΔΙΚΑ ΒΑΣΙΚΕΣ ΔΟΜΕΣ ΒΑΣΙΚΟΙ ΑΛΓΟΡΙΘΜΟΙ ΠΙΝΑΚΩΝ

ΟΡΙΣΜΟΙ Προγράμματα=Αλγόριθμοι + Δομές Δεδομένων 8.Αλγόριθμος Βηματική ακολουθία εντολών για την επίλυση ενός προβλήματος Ουσιαστικά, η λογική που ακολουθούμε για να λύσουμε ένα πρόβλημα Κάθε πρόβλημα μπορεί να επιλυθεί με περισσότερους του ενός τρόπους – αλγορίθμους Ποιος αλγόριθμος είναι ο καλύτερος; (ανάλυση αλγορίθμων)

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Δεδομένα: Παραστάσεις γεγονότων, εννοιών ή άλλων πληροφοριών που είναι σε κατάλληλη μορφή για επεξεργασία απο τον άνθρωπο ή τον Η/Υ Απλά – Σύνθετα δεδομένα Δομές δεδομένων: Ένα σύνολο Δεδομένων μαζί με ένα σύνολο επιτρεπτών λειτουργιών στα δεδομένα αυτά

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

Γραμμικές Δομές Δεδομένων 10.dwste 4 grammikes domes dedomenvn Πίνακες Ενσωματωμένη δομή σχεδόν σε όλες τις γλώσσες προγραμματισμού (και άρα εύχρηστη) Στατική δομή και πιθανώς μνημοβόρα) Ουρές Μη ενσωματωμένη δομή: Υλοποιούνται με πίνακες ή με δείκτες First – In – First – Out (FIFO) Στοίβες Last – In – First – Out (LIFO) Λίστες Σχεδόν πάντα υλοποιούνται με δείκτες Η πιο ευέλικτη γραμμική δομή δεδομένων

11.Μη γραμμικές Δομές Δεδομένων Δένδρα Ίσως η πιο σημαντική (μαζί με τις λίστες) δομή δεδομένων Σχεδόν πάντα υλοποιούνται με δείκτες Γράφοι – Γραφήματα Η πιο ευέλικτη (και γι’ αυτό η πιο πολύπλοκη) απο τις δομές της εσωτερικής μνήμης

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

Ψευδοκώδικας

Παράσταση Αλγορίθμων Υπάρχουν πολλές τεχνικές, τόσο διαγραμματικές (π.χ. Διαγράμματα Ροής Δεδομένων) όσο και με χρήση κειμένου όπως ψευδοκώδικα 12 - Στοιχεία Ψευδοκώδικα Ακολουθία εντολών Μπλοκ εντολών (αρχή – τέλος) Επιλογή (απλή – Πολλαπλή) Επανάληψη Λογικές μεταβλητές Τελεστές (πράξεων, συγκρίσεων, λογικοί) Σχόλια

Παράσταση Αλγορίθμων

Παράσταση Αλγορίθμων

Παράσταση Αλγορίθμων

Παράσταση Αλγορίθμων

Παράσταση Αλγορίθμων

Παράσταση Αλγορίθμων

Θεωρία Αλγορίθμων 13.Είδη προβλημάτων 14.Ανάλυση Αλγορίθμων: Κανονικά προβλήματα (υπάρχει γνωστός αλγόριθμος επίλυσης) Άλυτα προβλήματα (έχει αποδειχθεί οτι δεν υπάρχει ικανός αλγόριθμος επίλυσης) Ανοικτά προβλήματα (δεν έχει βρεθεί μέχρι σήμερα ικανός αλγόριθμος, ούτε όμως έχει αποδειχθεί η μη ύπαρξή του 14.Ανάλυση Αλγορίθμων: Η μελέτη της πολυπλοκότητας ενός αλγορίθμου Αφορά τις απαιτήσεις του αλγορίθμου σε μνήμη και το χρόνο εκτέλεσής του

Πολυπλοκότητα Αλγορίθμων

Πολυπλοκότητα Αλγορίθμων 15

Θεωρία Πολυπλοκότητας

Δομές Δεδομένων

Βάσεις Δεδομένων (πίνακες δομών)

Βασικές λειτουργίες (πράξεις) επί των δομών : Προσπέλαση (Access) Είναι η δυνατότητα πρόσβασης σε ένα κόμβο με σκοπό την ανάγνωση ή τροποποίηση του περιεχομένου του. Αναζήτηση (Searching) Προσπελαύνονται οι κόμβοι μίας δομής με σκοπό να εντοπιστεί κάποιος που περιέχει μία συγκεκριμένη τιμή. Εισαγωγή (Insertion) Προσθήκη νέου κόμβου στη δομή Διαγραφή (Deletion) Αφαιρούμε έναν κόμβο από τη δομή. Ταξινόμηση (Sorting) Διατάσσουμε τους κόμβους της δομής σε αύξουσα ή φθίνουσα σειρά (π.χ. αλφαβητικά κατά επώνυμο, όνομα) Αντιγραφή (Copying) Όλοι ή μερικοί κόμβοι αντιγράφονται σε μία άλλη δομή Συγχώνευση (Merging) Δύο ή περισσότερες δομές συνενώνονται σε μία ενιαία δομή. Διαχωρισμός (Separation) Μία δομή διασπάται σε δύο ή περισσότερες. Είναι το αντίστροφο της συγχώνευσης.

Πίνακες Χαρακτηριστικός εκπρόσωπος των στατικών δομών. Περιέχει ένα σταθερό σύνολο κόμβων (θέσεις) που αποθηκεύονται σε συνεχόμενες θέσεις στη μνήμη. Επίσης, όλα τα στοιχεία είναι του ιδίου τύπου (δηλαδή ακέραιοι, πραγματικοί κλπ). 16.Enas pseudokwdikas

α) Μονοδιάστατοι πίνακες (μίας γραμμής ή μίας στήλης)

Οι αριθμοί κάτω από τις θέσεις του πίνακα δηλώνουν τον αριθμό θέσης του πίνακα. Ο αριθμός θέσης λέγεται και δείκτης θέσης. Ο πίνακας ορίζεται ως εξής: τύπος όνομα_πίνακα [διαστάσεις]. Π.χ. ακέραιος Π [1:5] δηλώνει έναν μονοδιάστατο πίνακα μίας γραμμής πέντε θέσεων (στήλες) που περιέχει ακεραίους. Γενικά, ορίζεται ως Π [1:Ν]. Για να αναφερθούμε στο περιεχόμενο μία θέσης του πίνακα βάζουμε το όνομα[θέση] Για παράδειγμα, Π [1] = το περιεχόμενο της θέσης 1, Π [6] = το περιεχόμενο της θέσης 6

β) Δισδιάστατοι πίνακες (πολλών γραμμών και στηλών) Εδώ έχουμε περισσότερες από μία γραμμές. Κάθε γραμμή έχει ένα σύνολο θέσεων (στήλες). Στο παρακάτω παράδειγμα ο πίνακας ορίζεται ως εξής : ακέραιος Π [1:3, 1:4}. Η πρώτη διάσταση αναφέρεται στις γραμμές και η δεύτερη στις στήλες. Γενικά, ορίζεται ως Π [1:Μ, 1:Ν] για έναν πίνακα ΜxΝ. Για να αναφερθούμε στο περιεχόμενο μία θέσης του δισδιάστατου πίνακα βάζουμε το όνομα[γραμμή, στήλη]. Δηλαδή, η θέση προσδιορίζεται από τον αριθμό γραμμής και στήλης.

17.Τυπικές επεξεργασίες (λειτουργίες) σε έναν πίνακα Για παράδειγμα, Π [1,2] = το περιεχόμενο της θέσης στη γραμμή 1 και στήλη 2, Π [3,2] = το περιεχόμενο της θέσης στη γραμμή 3 και στήλη 2. 17.Τυπικές επεξεργασίες (λειτουργίες) σε έναν πίνακα Διάβασμα των στοιχείων του πίνακα, δηλαδή εισαγωγή τιμών στις θέσεις του. Εκτύπωση των στοιχείων του πίνακα Υπολογισμός του αθροίσματος των στοιχείων του. Υπολογισμός του μέσου όρου των στοιχείων του. Εύρεση του ελάχιστου ή μέγιστου στοιχείου του. Αναζήτηση ενός στοιχείου. Ταξινόμηση του πίνακα. Συγχώνευση δύο πινάκων

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

Αλγόριθμοι μονοδιάστατου πίνακα β) Εκτύπωση στοιχείων

Αλγόριθμοι μονοδιάστατου πίνακα γ) Υπολογισμός αθροίσματος στοιχείων

Αλγόριθμοι μονοδιάστατου πίνακα δ) Υπολογισμός μέσου όρου (ΜΟ) στοιχείων

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

Αλγόριθμοι μονοδιάστατου πίνακα στ) Αναζήτηση στοιχείου Εδώ θα δούμε την σειριακή μέθοδο. Η λογική είναι η εξής : Σαρώνουμε τον πίνακα και εξετάζουμε σε κάθε θέση αν το στοιχείο της θέσης αυτής είναι ίσο με αυτό που ψάχνουμε. Αν ναι, τότε σταματάμε. Πότε χρησιμοποιούμε τη μέθοδο αυτή; Όταν ο πίνακας είναι μη ταξινομημένος Ο πίνακας είναι μικρού μεγέθους (π.χ. Ν <=20) Η αναζήτηση να πραγματοποιείται σπάνια, διότι η μέθοδος αυτή είναι σχετικά αργή. Θα χρειαστούμε μία μεταβλητή βρέθηκε λογικού τύπου, που θα γίνει True αν το στοιχείο βρεθεί. Επίσης, δεν γνωρίζουμε σε ποια θέση βρίσκεται. Μπορεί να είναι στην 1η θέση αλλά μπορεί να είναι στη Νστή θέση. Θα χρησιμοποιήσουμε και μία μεταβλητή θέση που θα κρατήσει τη θέση όπου βρέθηκε.

Σημείωση : Όταν ο πίνακας είναι ταξινομημένος είναι προτιμότερο να χρησιμοποιείται μία πιο αποδοτική (γρήγορη) μέθοδος που ονομάζεται δυαδική αναζήτηση.

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

Αλγόριθμοι μονοδιάστατου πίνακα

Παράδειγμα : Να ταξινομηθούν οι ακέραιοι 12, 7, 5, 3, 10 ενός πίνακα Παράδειγμα : Να ταξινομηθούν οι ακέραιοι 12, 7, 5, 3, 10 ενός πίνακα. Πώς διαμορφώνεται ο πίνακας σε κάθε βήμα του αλγορίθμου;

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

Αλγόριθμοι δισδιάστατου πίνακα β) Εκτύπωση στοιχείων

Αλγόριθμοι δισδιάστατου πίνακα γ) Υπολογισμός ΜΟ ανά γραμμή

Αλγόριθμοι δισδιάστατου πίνακα γ) Υπολογισμός ΜΟ ανά γραμμή αλλά με αποθήκευσή του σε ξεχωριστό πίνακα.