Εισαγωγή στον δομημένο προγραμματισμό

Σχετικά έγγραφα
Εισαγωγή στους Αλγορίθμους

Εισαγωγή στους Αλγορίθμους

Λογιστική Κόστους Ενότητα 12: Λογισμός Κόστους (2)

ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ

ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ

ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ

Εισαγωγή στους Αλγορίθμους

Λογιστική Κόστους Ενότητα 8: Κοστολογική διάρθρωση Κύρια / Βοηθητικά Κέντρα Κόστους.

Νέες Τεχνολογίες και Καλλιτεχνική Δημιουργία

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Τεχνολογία & Καινοτομία - Αρχές Βιομηχανικής Επιστήμης

Τεχνοοικονομική Μελέτη

Διοικητική Λογιστική

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Εισαγωγή στους Αλγορίθμους Ενότητα 10η Άσκηση Αλγόριθμος Dijkstra

Θερμοδυναμική. Ανοικτά Ακαδημαϊκά Μαθήματα. Πίνακες Νερού σε κατάσταση Κορεσμού. Γεώργιος Κ. Χατζηκωνσταντής Επίκουρος Καθηγητής

Διοίκηση Εξωτερικής Εμπορικής Δραστηριότητας

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Μαθηματική Ανάλυση Ι

Εκκλησιαστικό Δίκαιο. Ενότητα 10η: Ιερά Σύνοδος της Ιεραρχίας και Διαρκής Ιερά Σύνοδος Κυριάκος Κυριαζόπουλος Τμήμα Νομικής Α.Π.Θ.

Διεθνείς Οικονομικές Σχέσεις και Ανάπτυξη

Λογιστική Κόστους Ενότητα 11: Λογισμός Κόστους (1)

Εισαγωγή στον δομημένο προγραμματισμό

Εισαγωγή στους Αλγορίθμους Φροντιστήριο 1

Εισαγωγή στους Αλγορίθμους Ενότητα 9η Άσκηση - Αλγόριθμος Kruskal

Εισαγωγή στον δομημένο προγραμματισμό

Μηχανολογικό Σχέδιο Ι

Εισαγωγή στους Αλγορίθμους Ενότητα 9η Άσκηση - Αλγόριθμος Prim

Λογιστική Κόστους Ενότητα 11: Λογισμός Κόστους

Εισαγωγή στην πληροφορική

ΗΛΕΚΤΡΟΝΙΚΗ ΙIΙ Ενότητα 6

Κοινωνιολογία της Εκπαίδευσης

Εισαγωγή στην πληροφορική

Ιστορία της μετάφρασης

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας

Τίτλος Μαθήματος: Μαθηματική Ανάλυση Ενότητα Γ. Ολοκληρωτικός Λογισμός

Λογιστική Κόστους Ενότητα 10: Ασκήσεις Προτύπου Κόστους Αποκλίσεων.

Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας. Βιοστατιστική (Ε) Ενότητα 3: Έλεγχοι στατιστικών υποθέσεων

Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας. Βιοστατιστική (Ε) Ενότητα 1: Καταχώρηση δεδομένων

Νέες Τεχνολογίες και Καλλιτεχνική Δημιουργία

Μεθοδολογία Έρευνας Κοινωνικών Επιστημών Ενότητα 2: ΣΥΓΚΕΝΤΡΩΣΗ ΠΛΗΡΟΦΟΡΙΩΝ ΜΑΡΚΕΤΙΝΓΚ Λοίζου Ευστράτιος Τμήμα Τεχνολόγων Γεωπόνων-Kατεύθυνση

Ψηφιακή Επεξεργασία Εικόνων

Μαθηματική Ανάλυση Ι

Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας. Βιοστατιστική (Ε) Ενότητα 2: Περιγραφική στατιστική

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Προγραμματισμός Η/Υ. Βασικές Προγραμματιστικές Δομές. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος

Εισαγωγή στους Αλγορίθμους Ενότητα 11η Άσκηση - Σταθμισμένος Χρονοπρογραμματισμός Διαστημάτων

1 η Διάλεξη. Ενδεικτικές λύσεις ασκήσεων

Θεσμοί Ευρωπαϊκών Λαών Ι 19 ος -20 ος αιώνας

Ενότητα. Εισαγωγή στις βάσεις δεδομένων

Δομές Δεδομένων Ενότητα 1

Μαθηματική Ανάλυση ΙI

Γενικά Μαθηματικά Ι. Ενότητα 12: Κριτήρια Σύγκλισης Σειρών. Λουκάς Βλάχος Τμήμα Φυσικής ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

Εισαγωγή στους Αλγορίθμους Φροντιστήριο 5

Εκκλησιαστικό Δίκαιο

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Διοίκηση Επιχειρήσεων

Λογιστική Κόστους. Ενότητα 4: ΣΥΜΠΕΡΙΦΟΡΑ - ΦΥΣΗ ΚΟΣΤΟΥΣ. Μαυρίδης Δημήτριος Τμήμα Λογιστικής και Χρηματοοικονομικής

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ

Μαθηματική Ανάλυση Ι

Πανεπιστήμιο Δυτικής Μακεδονίας. Τμήμα Μηχανολόγων Μηχανικών. Χημεία. Ενότητα 9: Υβριδισμός. Τόλης Ευάγγελος

Διοικητική Λογιστική

Θεσμοί Ευρωπαϊκών Λαών Ι 19 ος -20 ος αιώνας

Μαθηματική Ανάλυση Ι

Μαθηματική Ανάλυση Ι

Θερμοδυναμική. Ανοικτά Ακαδημαϊκά Μαθήματα. Πίνακες Νερού Υπέρθερμου Ατμού. Γεώργιος Κ. Χατζηκωνσταντής Επίκουρος Καθηγητής

Μαθηματική Ανάλυση Ι

Τεχνολογία και Καινοτομία - Οικονομική Επιστήμη και Επιχειρηματικότητα

Γενικά Μαθηματικά Ι. Ενότητα 15: Ολοκληρώματα Με Ρητές Και Τριγωνομετρικές Συναρτήσεις Λουκάς Βλάχος Τμήμα Φυσικής

Έννοιες φυσικών επιστημών Ι και αναπαραστάσεις

Εκκλησιαστικό Δίκαιο

Κοινωνιολογία της Εκπαίδευσης

Αλγόριθμοι και πολυπλοκότητα Συγχωνευτική Ταξινόμηση

Βάσεις Περιβαλλοντικών Δεδομένων

ΗΛΕΚΤΡΟΝΙΚΗ IΙ Ενότητα 6

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 8: Αναζήτηση και ταξινόμηση

Μυελού των Οστών Ενότητα #1: Ερωτήσεις κατανόησης και αυτόαξιολόγησης

Μαθηματική Ανάλυση ΙI

Πανεπιστήμιο Δυτικής Μακεδονίας. Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών. Διακριτά Μαθηματικά. Ενότητα 7: Σχέσεις και Συναρτήσεις

Έννοιες φυσικών επιστημών Ι και αναπαραστάσεις

Έννοιες φυσικών επιστημών Ι και αναπαραστάσεις

Διδακτική Πληροφορικής

Κβαντική Επεξεργασία Πληροφορίας

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Πληροφορική ΙΙ Ενότητα 1

Μαθηματική Ανάλυση Ι

Εισαγωγή στους Αλγορίθμους Φροντιστήριο 4

Νέες Τεχνολογίες και Καλλιτεχνική Δημιουργία

Προγραμματισμός H/Y Ενότητα 2: Εντολές ελέγχου ροής. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Λογιστική Κόστους Ενότητα 5: Προορισμός Κόστους

Διεθνείς Οικονομικές Σχέσεις και Ανάπτυξη

Μαθηματική Ανάλυση ΙI

Θέματα Εφαρμοσμένης. Ενότητα 14.2: Η ψήφος στα πρόσωπα. Θεόδωρος Χατζηπαντελής Τμήμα Πολιτικών Επιστημών ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

Διδακτική της Πληροφορικής

Εφαρμογές πληροφορικής σε θέματα πολιτικού μηχανικού

Βάσεις Δεδομένων. Ενότητα 1: Εισαγωγή στις Βάσεις δεδομένων. Πασχαλίδης Δημοσθένης Τμήμα Ιερατικών σπουδών

Βέλτιστος Έλεγχος Συστημάτων

Εφαρμογές της Πληροφορικής στην Εκπαίδευση

Transcript:

Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Εισαγωγή στον δομημένο προγραμματισμό Ενότητα 5 η : Πίνακες (Προχωρημένα Θέματα) Αν. καθηγητής Στεργίου Κώστας e-mail: kstergiou@uowm.gr Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύπου άδειας χρήσης, η άδεια χρήσης αναφέρεται ρητώς. 2

Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ψηφιακά Μαθήματα στο Πανεπιστήμιο Δυτικής Μακεδονίας» έχει χρηματοδοτήσει μόνο τη αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους. 3

Στόχοι της διάλεξης Κατανόηση προχωρημένων χρήσεων πινάκων στη C. Ανάλυση απλών μεθόδων για ταξινόμηση των στοιχείων ενός πίνακα και αναζήτηση στοιχείων σε ταξινομημένους και μη ταξινομημένους πίνακες. 4

Περιεχόμενα Ταξινόμηση πίνακα: Ο αλγόριθμος bubble sort. Ο αλγόριθμος selection sort. Αναζήτηση στοιχείου σε πίνακα: Γραμμική αναζήτηση. Δυαδική αναζήτηση. 5

Ταξινόμηση Πίνακα int a[]={3,2,5,7,1,8,4,9,6}; {1,2,3,4,5,6,7,8,9} Μέθοδοι ταξινόμησης: Ταξινόμηση φυσαλίδας (bubble sort). Ταξινόμηση επιλογής (selection sort). Γρήγορη ταξινόμηση (quicksort). 6

Μέθοδος ταξινόμησης Bubble Sort Σύγκρινε το πρώτο με το δεύτερο στοιχείο. Αν το πρώτο είναι μεγαλύτερο αντάλλαξε τις τιμές τους. Συνέχισε με το δεύτερο και τρίτο στοιχείο.... Επανέλαβε τη διαδικασία ξεκινώντας πάλι από το πρώτο στοιχείο και συγκρίνοντας όλα τα στοιχεία εκτός του τελευταίου.... Επανέλαβε τη διαδικασία εφόσον υπάρχει έστω μία ανταλλαγή. 7

Μέθοδος ταξινόμησης Bubble Sort /* Δεδομένου πίνακα a[n] */ int i, t, n=n; int taxinomisi; /* χρησιμοποιείται ως λογική μεταβλητή */ do { taxinomisi=1; for (i=0; i<n-1; i++) if (a[i] > a[i+1]) { t = a[i]; a[i] = a[i+1]; a[i+1] = t; } n=n-1; taxinomisi=0; /*έγινε ανταλλαγή*/ } while(taxinomisi==0); 8

Παράδειγμα (1/2) 8 6 34 2 51 32 21 Αρχική ακολουθία 6 8 34 2 51 32 21 Πέρασμα 1 6 8 34 2 51 32 21 6 8 2 34 51 32 21 6 8 2 34 51 32 21 6 8 2 34 32 51 21 6 8 2 34 32 21 51 9

Παράδειγμα (2/2) 6 8 2 34 32 21 51 6 8 2 34 32 21 51 Πέρασμα 2 6 2 8 34 32 21 51 6 2 8 34 32 21 51 6 2 8 32 34 21 51 6 2 8 32 21 34 51 Επανέλαβε τη διαδικασία μέχρι η λίστα να έχει ταξινομηθεί 10

Ταξινόμηση με Επιλογή (1/2) Βρες το μικρότερο στοιχείο του πίνακα. Αντάλλαξε το με το πρώτο στοιχείο. Επανέλαβε τη διαδικασία για τον πίνακα από το 2ο ως το τελευταίο στοιχείο όσο ο πίνακας έχει πάνω από 1 στοιχείο. 11

Ταξινόμηση με Επιλογή (2/2) /* Δεδομένου πίνακα a[n] */ int i, j, t, meg; for (i=0; i < N-1; i++) { meg = i; for (j=i; j < N; j++) if (a[j] > a[meg]) meg = j; /* Θέση του μέγιστου */ t = a[i]; /* Ανταλλαγή στοιχείων */ a[i] = a[meg]; a[meg] = t; } 12

Παράδειγμα: Διάταξη Αριθμών 8 6 34 2 51 32 21 Αρχική ακολουθία 2 6 34 8 51 32 21 πέρασμα 1 2 6 34 8 51 32 21 πέρασμα 2 2 6 8 34 51 32 21 πέρασμα 3 2 6 8 21 51 32 34 πέρασμα 4 2 6 8 21 32 51 34 πέρασμα 5 2 6 8 21 32 34 51 πέρασμα 6 13

Αναζήτηση Πίνακα Ελέγχεται αν ο πίνακας περιέχει ένα στοιχείο με μία συγκεκριμένη τιμή. Πίνακας = {2,4,3,5,1,6,7}. Τιμή = 1. Αποτέλεσμα = ΝΑΙ (5ο στοιχείο). Τιμή = 8. Αποτέλεσμα = ΌΧΙ. Μέθοδοι αναζήτησης: Γραμμική αναζήτηση. Δυαδική αναζήτηση (απαιτεί ταξινομημένο πίνακα). 14

Γραμμική Αναζήτηση /* Δεδομένου πίνακα a[n] */ int i=0, timi; int found=0; /* χρησιμοποιείται ως λογική μεταβλητή */ scanf("%d", &timi); while ((!found) && (i<n)) if (a[i]==timi) found=1; else i++; if (found) else printf("bρεθηκε ΤΟ %d ΣΤΗ ΘΕΣΗ %d\n", a[i],i); printf("δεν ΒΡΕΘΗΚΕ\n"); 15

Δυαδική Αναζήτηση (1/2) Εφαρμόζεται σε ταξινομημένους πίνακες. Εξετάζεται η τιμή του μεσαίου στοιχείου: Αν έχει την τιμή που αναζητούμε, η αναζήτηση τερματίζεται επιτυχώς. Αν έχει μεγαλύτερη τιμή, η αναζήτηση συνεχίζεται στο πρώτο τμήμα του πίνακα. Αν έχει μικρότερη τιμή, η αναζήτηση συνεχίζεται στο δεύτερο τμήμα του πίνακα. Η διαδικασία επαναλαμβάνεται στο νέο τμήμα πίνακα μέχρι να βρεθεί το στοιχείο ή το τμήμα να περιέχει ένα μόνο στοιχείο που δεν είναι αυτό που αναζητούμε. 16

Δυαδική Αναζήτηση (2/2) /* Δεδομένου ταξινομημένου πίνακα a[n] */ int top,bot,mid; found; top=0; bot=n-1; found=0; while ((!found) && (top <= bot)) { mid = (top+bot)/2; if (a[mid] == timi) found=1; else if(a[mid] > timi) bot=mid-1; else top = mid+1; } if (found) else printf("bρεθηκε ΤΟ %d ΣΤΗ ΘΕΣΗ %d\n", a[mid],mid); printf("δεν ΒΡΕΘΗΚΕ\n"); 17

Τέλος Ενότητας 18

Σημείωμα Αναφοράς Copyright, Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών, Στεργίου Κωνσταντίνος. «Εισαγωγή στον Δομημένο Προγραμματισμό». Έκδοση: 1.0. Κοζάνη 2015. Διαθέσιμο από τη δικτυακή διεύθυνση: https: //eclass.uowm.gr/courses/icte258/ 19

Σημείωμα Αδειοδότησης Το παρόν υλικό διατίθεται με τους όρους της άδειας χρήσης Creative Commons Αναφορά, Όχι Παράγωγα Έργα Μη Εμπορική Χρήση 4.0 [1] ή μεταγενέστερη, Διεθνής Έκδοση. Εξαιρούνται τα αυτοτελή έργα τρίτων π.χ. φωτογραφίες, διαγράμματα κ.λ.π., τα οποία εμπεριέχονται σε αυτό και τα οποία αναφέρονται μαζί με τους όρους χρήσης τους στο «Σημείωμα Χρήσης Έργων Τρίτων». [1] h t t p ://creativecommons.org/licenses/by-nc-nd/4.0/ Ως Μη Εμπορική ορίζεται η χρήση: που δεν περιλαμβάνει άμεσο ή έμμεσο οικονομικό όφελος από την χρήση του έργου για το διανομέα του έργου και αδειοδόχο που δεν περιλαμβάνει οικονομική συναλλαγή ως προϋπόθεση για τη χρήση ή πρόσβαση στο έργο που δεν προσπορίζει στο διανομέα του έργου και αδειοδόχο έμμεσο οικονομικό 20

Διατήρηση Σημειωμάτων Οποιαδήποτε αναπαραγωγή ή διασκευή του υλικού θα πρέπει να συμπεριλαμβάνει: το Σημείωμα Αναφοράς το Σημείωμα Αδειοδότησης τη δήλωση Διατήρησης Σημειωμάτων το Σημείωμα Χρήσης Έργων Τρίτων (εφόσον υπάρχει) μαζί με τους συνοδευόμενους υπερσυνδέσμους. 21