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

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
Indexing.
Advertisements

3.4 Στοίβα (stack) (μόνο θεωρία)
Συλλογές, Στοίβες και Ουρές Σε πολλές εφαρμογές μας αρκεί η αναπαράσταση ενός δυναμικού συνόλου με μια δομή δεδομένων η οποία δεν υποστηρίζει την αναζήτηση.
Στοιχειώδεις Δομές Δεδομένων TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Τύποι δεδομένων στη Java • Ακέραιοι.
-Στοίβα-Ουρά - Πλεονεκτήματα πινάκων -Δομές δεδομένων δευτερεύουσας μνήμης -Πληροφορική και δεδομένα -Παραδείγματα-Προβλήματα ψευδοκώδικα.
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ?? ΣΗΜΑ ΗΧΟΣ.
Παράδειγμα 1:Σειριακή αναζήτηση
ΣΤΟΙΧΕΙΑ ΨΕΥΔΟΚΩΔΙΚΑ ΒΑΣΙΚΕΣ ΔΟΜΕΣ ΒΑΣΙΚΟΙ ΑΛΓΟΡΙΘΜΟΙ ΠΙΝΑΚΩΝ
Γεωργαλλίδης Δημήτρης Καθηγητής Πληροφορικής
Αλεξιάδης Γεώργιος ΕΠΠΑΙΚ Σαπών
ΔΙΔΑΚΤΙΚΕΣ ΔΥΣΚΟΛΙΕΣ ΣΤΟΥΣ ΠΙΝΑΚΕΣ ΠΕΚ ΠΕΙΡΑΙΑ Α΄φάση Επιμόρφωσης Εκπ/κών κλάδου ΠΕ19 Διδακτική της Πληροφορικής Ρόδος, Νοέμβρης 2007.
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ
TEMPLATES STANDARD TEMPLATE LIBRARY ΟΝΤΟΚΕΝΤΡΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ C Evangelos Theodoridis.
Στοίβα & Ουρά Πέμπτη 08/03/2007 Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον Τμήμα: Γ3τεχν. Καθηγητής :Ν. Γιαννακόπουλος ΠΕ19 Ερωτήσεις:
Βελτιστοποίηση και Επεξεργασία Ερωτημάτων
ΣΧΕΣΙΑΚΟ ΜΟΝΤΕΛΟ ΜΑΘΗΜΑ 3.
Διαίρει-και-Βασίλευε
ΘΠ06 - Μεταγλωττιστές Πίνακας Συμβόλων. Πίνακας Συμβόλων (Symbol Table) (Ι)  Είναι μια δομή στην οποία αποθηκεύονται τα ονόματα ενός προγράμματος και.
Διδάσκων: Παύλος Παυλικκάς1 Ολυμπιάδα Πληροφορικής Stacks - Στοίβες.
ΘΕΜΑΤΙΚΗ ΕΝΟΤΗΤΑ 2: ΘΕΜΑΤΑ ΘΕΩΡΗΤΙΚΗΣ ΕΠΙΣΤΗΜΗΣ Η/Υ
Ε. ΠετράκηςΣτοίβες, Ουρές1 Στοίβες  Στοίβα: περιορισμένη ποικιλία λίστας  τα στοιχεία μπορούν να εισαχθούν ή να διαγραφούν μόνο από μια άκρη : λίστες.
Στοίβα, Ουρά.
Αλγόριθμοι συνέχεια 2.2.4, 2.2.5,
ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ
Δομές Δεδομένων.
Δομές Δεδομένων. Επιλογή δομής δεδομένων Κριτήρια: – Μέγεθος του προβλήματος – Πως θα χρησιμοποιηθεί Ενέργειες που καθορίζουν το κόστος: – Lookup: αναζήτηση/έλεγχος.
ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ
Διδακτική της Πληροφορικής ΗΥ302 Εργασία :Παρουσίαση σχολικού βιβλίου Γ’ Λυκείου Τεχνολογικής Κατεύθυνσης «Ανάπτυξη εφαρμογών σε προγραμματιστικό περιβάλλον»
ΘΕΜΑΤΙΚΗ ΕΝΟΤΗΤΑ 2: ΘΕΜΑΤΑ ΘΕΩΡΗΤΙΚΗΣ ΕΠΙΣΤΗΜΗΣ Η/Υ
Λεξικό, Union – Find Διδάσκοντες: Σ. Ζάχος, Δ. Φωτάκης Επιμέλεια διαφανειών: Δ. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο.
Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Εισαγωγή στην Επεξεργασία Ερωτήσεων.
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ
ΕΠΛ 231 – Δομές Δεδομένων και Αλγόριθμοι
ΑΕΠΠ 3ο Κεφάλαιο Γεωργαλλίδης Δημήτρης Καθηγητής Πληροφορικής 1 Ο Λύκειο Ρόδου.
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ §3.7 ΤΑΞΙΝΟΜΗΣΗ
1 Τμήμα Μηχανικών Ηλεκτρονικών Υπολογιστών και Πληροφορικής Πανεπιστήμιο Πατρών ΟΝΤΟΚΕΝΤΡΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΙΙ (C++) Πίνακες.
Ταξινόμηση - Sorting.
Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Ευρετήρια.
ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ Διδάσκοντες:Στάθης Ζάχος Νίκος Παπασπύρου
Κεφάλαιο 3ο Δομές Δεδομένων.
Γλώσσες Προγραμματισμού Μεταγλωττιστές Πίνακας Συμβόλων Πανεπιστήμιο Μακεδονίας Τμήμα Εφαρμοσμένης Πληροφορικής Ηλίας Σακελλαρίου.
Δομές δεδομένων και Αλγόριθμοι Κεφάλαιο 3. Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον Δεδομένα Δεδομένα (data) Δεδομένα (data) –αφαιρετική αναπαράσταση.
Πίνακες στην JAVA ΕΡΓΑΣΤΗΡΙΟ AΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ (Διαφάνειες: ΧΟΧΟΛΗΣ ΔΙΟΝΥΣΙΟΣ Προσαρμογή 2014: Κώστας Στάμος)
ΤΕΙ ΚΕΝΤΡΙΚΗΣ ΜΑΚΕΔΟΝΙΑΣ ΣΕΡΡΕΣ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Τ.Ε. Πτυχιακή εργασία Μάρθα Τσολακίδου.
Λειτουργικά Συστήματα
Οι Δομές Δεδομένων Ουρά και Στοίβα
Ευρετήρια Βάσεις Δεδομένων Ευαγγελία Πιτουρά.
Δυναμικός Κατακερματισμός
ΑΛΓΟΡΙΘΜΟΣ ΠΡΟΒΛΗΜΑ ΑΛΓΟΡΙΘΜΟΣ ΛΥΣΗ
9η Διάλεξη Ταξινόμηση Ε. Μαρκάκης
Διδάσκων: Δρ. Τσίντζα Παναγιώτα
Αρχεσ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Η/Υ ΤΑξη Β΄
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ.
Δομές δεδομένων.
Μανασσάκης Βασίλης Καθηγητής Πληροφορικής
Μανασσάκης Βασίλης Καθηγητής Πληροφορικής
Μονοδιάστατοι πίνακες
ΣΤΟΙΒΑ.
Σειριακή ή Γραμμική Αναζήτηση 1.Μοναδικό Κλειδί (key)
Η τακτοποίηση των κόμβων μίας δομής με μία ιδιαίτερη σειρά είναι μία πολύ σημαντική λειτουργία που ονομάζεται ταξινόμηση (sorting) ή διάταξη (ordering).
Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον ΑΕΠΠ
Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον ΑΕΠΠ
Οι Δομές Δεδομένων Ουρά και Στοίβα
Φοιτητής: Τσακίρης Αλέξανδρος Επιβλέπων: Ευάγγελος Ούτσιος
ΚΕΦΑΛΑΙΟ 3 ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ
Πολυπλοκότητα Αλγορίθμων
Εξωτερική Αναζήτηση Ιεραρχία Μνήμης Υπολογιστή Εξωτερική Μνήμη
Δυναμικός Κατακερματισμός
Μανασσάκης Βασίλης Καθηγητής Πληροφορικής
ΠΙΝΑΚΕΣ Δομή ΟΥΡΑΣ (queue)
Μεταγράφημα παρουσίασης:

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον ΑΕΠΠ Κεφάλαιο 3: Δομές Δεδομένων και Αλγόριθμοι 3.2 Αλγόριθμοι + Δομές Δεδομένων = Προγράμματα 3.3 Πίνακες 3.4 Στοίβα 3.5. Ουρά 3.6 Αναζήτηση 3.7 Ταξινόμηση

3.2 Αλγόριθμοι + Δομές Δεδομένων = Προγράμματα (1/6) Τα δεδομένα ενός προβλήματος αποθηκεύονται: Στην κύρια μνήμη Στη δευτερεύουσα μνήμη Η αποθήκευση δε γίνεται τυχαία αλλά συστηματικά χρησιμοποιώντας μια δομή. Ορισμός: Δομή Δεδομένων είναι ένα σύνολο αποθηκευμένων δεδομένων που υφίστανται επεξεργασία από ένα σύνολο λειτουργιών.

3.2 Αλγόριθμοι + Δομές Δεδομένων = Προγράμματα (2/6) Βασικές Λειτουργίες επί των δομών δεδομένων: Προσπέλαση (access), πρόσβαση σε έναν κόμβο με σκοπό να εξετασθεί ή να τροποποιηθεί το περιεχόμενό του. Εισαγωγή (insertion), δηλαδή η προσθήκη νέων κόμβων σε μία υπάρχουσα δομή. Διαγραφή (deletion), που αποτελεί το αντίστροφο της εισαγωγής, δηλαδή ένας κόμβος αφαιρείται από μία δομή. Αναζήτηση (searching), κατά την οποία προσπελαύνονται οι κόμβοι μιας δομής, προκειμένου να εντοπιστούν ένας ή περισσότεροι που έχουν μια δεδομένη ιδιότητα.

3.2 Αλγόριθμοι + Δομές Δεδομένων = Προγράμματα (3/6) Βασικές Λειτουργίες επί των δομών δεδομένων (συνέχεια): Ταξινόμηση (sorting), όπου οι κόμβοι μιας δομής διατάσσονται κατά αύξουσα ή φθίνουσα σειρά. Αντιγραφή (copying), κατά την οποία όλοι οι κόμβοι ή μερικοί από τους κόμβους μίας δομής αντιγράφονται σε μία άλλη δομή. Συγχώνευση (merging), κατά την οποία δύο ή περισσότερες δομές συνενώνονται σε μία ενιαία δομή. Διαχωρισμός (separation), που αποτελεί την αντίστροφη πράξη της συγχώνευσης.

3.2 Αλγόριθμοι + Δομές Δεδομένων = Προγράμματα (4/6) Υπάρχει μεγάλη εξάρτηση μεταξύ της δομής δεδομένων και του αλγορίθμου που επεξεργάζεται τη δομή. Το πρόγραμμα πρέπει να θεωρεί τη δομή δεδομένων και τον αλγόριθμο ως μία αδιάσπαστη ενότητα. Wirth (1976): Αλγόριθμοι + Δομές Δεδομένων = Προγράμματα

3.2 Αλγόριθμοι + Δομές Δεδομένων = Προγράμματα (5/6) Κατηγορίες δομών δεδομένων: Στατικές (static): Αποθηκεύονται σε σταθερές και συνεχόμενες θέσεις της μνήμης. Το μέγεθός τους προσδιορίζεται κατά τη στιγμή του προγραμματισμού δεν μεταβάλλεται κατά τη διάρκεια εκτέλεσης του προγράμματος

3.2 Αλγόριθμοι + Δομές Δεδομένων = Προγράμματα (6/6) Κατηγορίες δομών δεδομένων: Δυναμικές (dynamic): Στηρίζονται στην τεχνική της δυναμικής παραχώρησης μνήμης (dynamic memory allocation). Δεν αποθηκεύονται σε συνεχόμενες θέσεις μνήμης. Δεν έχουν σταθερό μέγεθος (ο αριθμός των κόμβων τους αυξομειώνεται καθώς στη δομή εισάγονται νέα δεδομένα ή διαγράφονται κάποια άλλα). Υποστηρίζονται από όλες οι σύγχρονες γλώσσες προγραμματισμού

3.3 Πίνακες (1/4) Υλοποιούν στατικές δομές δεδομένων Περιέχουν στοιχεία του ίδιου τύπου (π.χ. ακέραιους ή πραγματικούς) Μπορεί να έχουν μία (μονοδιάστατοι πίνακες) ή περισσότερες διαστάσεις (δισδιάστατοι, τρισδιάστατοι κτλ) Σημείωση: Οι δισδιάστατοι πίνακες με ίσο αριθμό γραμμών και στηλών (ίσο μέγεθος των δύο διαστάσεων) ονομάζονται τετραγωνικοί

3.3 Πίνακες (2/4)

3.3 Πίνακες (3/4)

3.3 Πίνακες (4/4)

3.4 Στοίβα (1/2) Μία στοίβα δεδομένων μοιάζει με μια στοίβα πιάτων. Κάθε πιάτο που πλένεται τοποθετείται στην κορυφή (top) Για σκούπισμα επιλέγεται το πιάτο της κορυφής (top) Επεξεργασία: Τελευταίο μέσα, πρώτο έξω LIFO – Last-In-First-Out Βασικές Λειτουργίες στη Στοίβα: Ώθηση (push) στοιχείου στην κορυφή της στοίβας Πρέπει να ελέγχεται αν η στοίβα είναι γεμάτη (υπερχείλιση-overflow)) Απώθηση (pop) στοιχείου από την κορυφή της στοίβας Πρέπει να ελέγχεται αν η στοίβα έχει στοιχεία (υποχείλιση-underflow))

3.4 Στοίβα (2/2)

3.5 Ουρά (1/2) Οι ουρές είναι καθημερινό φαινόμενο: Οι ουρές είναι καθημερινό φαινόμενο: Π.χ. Ουρές ανθρώπων, οχημάτων, εργασιών Υπάρχει ειδικός κλάδος για τη μελέτη τους (Θεωρία Ουρών) Επεξεργασία: Πρώτο μέσα, πρώτο έξω FIFO – Last-In-First-Out Αυτός που στάθηκε πρώτος θα εξυπηρετηθεί πρώτος Βασικές Λειτουργίες στη Στοίβα: Εισαγωγή (enqueue) στοιχείου στο πίσω άκρο της ουράς Εξαγωγή (dequeue) στοιχείου από τo εμπρός άκρο της ουράς

3.5 Ουρά (2/2) Απαιτείται η χρήση δύο δεικτών: front και rear

3.6 Αναζήτηση (1/3) Η αναζήτηση (searching) είναι ένα μία από τις πιο συνηθισμένες λειτουργίες σε πίνακα. Η πιο απλή μορφή είναι η σειριακή (ή γραμμική) αναζήτηση (sequential search). Η σειριακή αναζήτηση είναι χρήσιμη όταν: ο πίνακας είναι μη ταξινομημένος ο πίνακας είναι μικρού μεγέθους (για παράδειγμα, n ≤ 20) η αναζήτηση σε ένα συγκεκριμένο πίνακα γίνεται σπάνια Υπάρχουν και άλλες μέθοδοι (π.χ. δυαδική αναζήτηση)

3.6 Αναζήτηση (2/3) Μη ταξινομημένος πίνακας: Αναζήτηση του 56: 4 προσπελάσεις Αναζήτηση μη υπαρκτού στοιχείου: 9 προσπελάσεις Ταξινομημένος πίνακας: Αναζήτηση μη υπαρκτού στοιχείου: Σταματάει μόλις ξεπεραστεί ο ζητούμενος αριθμός

3.6 Αναζήτηση (3/3) Χρησιμοποιείται η λογική μεταβλητή done: Αληθής αν το ζητούμενο στοιχείο βρεθεί αλλιώς ψευδής Η μεταβλητή position αποθηκεύει τη θέση που βρέθηκε το αναζητούμενο στοιχείο (αν αυτό βρεθεί)

3.7 Ταξινόμηση (1/4) Ταξινόμηση (sorting) ή Διάταξη (ordering)είναι η τακτοποίηση των κόμβων μίας δομής με μία ιδιαίτερη σειρά. Είναι μία πολύ σημαντική λειτουργία σε πολλές δομές δεδομένων και έχει πολλές εφαρμογές (π.χ. κατάλογοι, λεξικά, ονομαστικές καταστάσεις κ.α.) Η διάταξη των στοιχείων μπορεί να είναι αύξουσα ή φθίνουσα.

3.7 Ταξινόμηση (2/4) Υπάρχουν πολλοί αλγόριθμοι ταξινόμησης Πιο απλός και συνάμα πιο αργός ο Aλγόριθμος Ευθείας Ανταλλαγής ή Αλγόριθμος Φυσαλίδας (Bubblesort): Βασίζεται στην αρχή της σύγκρισης και ανταλλαγής ζευγών γειτονικών στοιχείων, μέχρις ότου διαταχθούν όλα τα στοιχεία. Κάθε φορά γίνονται διαδοχικές προσπελάσεις στον πίνακα και μετακινείται το μικρότερο κλειδί της ακολουθίας προς το αριστερό άκρο του πίνακα (ή προς τα πάνω αν ο πίνακας θεωρηθεί κάθετος).

3.7 Ταξινόμηση (3/4)

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