ΑΛΓΟΡΙΘΜΟΙ & ΠΟΛΥΠΛΟΚΟΤΗΤΑ

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "ΑΛΓΟΡΙΘΜΟΙ & ΠΟΛΥΠΛΟΚΟΤΗΤΑ"

Transcript

1 ΤΕΧΝΟΛΟΓΙΚΟ ΙΔΡΥΜΑ ΛΑΡΙΣΑΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΣΗΜΕΙΩΣΕΙΣ ΓΙΑ ΤΟ ΜΑΘΗΜΑ ΑΛΓΟΡΙΘΜΟΙ & ΠΟΛΥΠΛΟΚΟΤΗΤΑ Δρ. Ηλίας Κ. Σάββας ΛΑΡΙΣΑ, Ιανουάριος

2 ΠΙΝΑΚΑΣ ΠΕΡΙΕΧΟΜΕΝΩΝ ΠΙΝΑΚΑΣ ΠΕΡΙΕΧΟΜΕΝΩΝ...2 ΑΛΓΟΡΙΘΜΟΙ...4 ΠΡΟΓΡΑΜΜΑΤΑ...6 ΣΧΗΜΑΤΑ ΟΡΙΣΜΟΙ & ΟΡΟΛΟΓΙΑ Εισαγωγή Έννοιες Κλειδιά Πολυπλοκότητα & Απόδοση Αλγορίθμων Αλγοριθμική Γλώσσα Παραδείγματα & Λυμένες Ασκήσεις Ασκήσεις ΠΟΛΥΠΛΟΚΟΤΗΤΑ Ορισμοί Αλγόριθμοι Brute-Force Δισδιάστατα Μέγιστα To Πρόβλημα των Ελαχίστων Αποστάσεων (closest-pair problem) Εύρεση Αλφαριθμητικών Ασκήσεις ΒΕΛΤΙΩΜΕΝΗ ΜΕΘΟΔΟΣ ΥΠΟΛΟΓΙΣΜΟΥ ΔΙΣΔΙΑΣΤΑΤΩΝ ΜΕΓΙΣΤΩΝ (Plane-Sweep Algorithm) Αλγόριθμος Σάρωσης του Επιπέδου (Plane-Sweep Algorithm) Πολυπλοκότητα του Αλγόριθμου Σάρωσης του Επιπέδου Ασκήσεις ΑΝΑΔΡΟΜΙΚΟΙ ΑΛΓΟΡΙΘΜΟΙ Οι Πύργοι του Hanoi Ασκήσεις «ΔΙΑΙΡΕΙ ΚΑΙ ΒΑΣΙΛΕΥΕ» Εισαγωγή Η Μέθοδος Ταξινόμησης Merge Sort Πολυπλοκότητα της Merge Sort H Μέθοδος Ταξινόμησης Quick Sort Quick Sort: Πολυπλοκότητα και Υλοποίηση Ασκήσεις ΔΥΝΑΜΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Εισαγωγή Πολλαπλασιασμός Πινάκων Ασκήσεις ΑΠΛΗΣΤΟΙ ΑΛΓΟΡΙΘΜΟΙ Προγραμματισμός Εργασιών Knapsack Problem Ασκήσεις ΠΑΡΑΛΛΗΛΟΙ ΑΛΓΟΡΙΘΜΟΙ Εισαγωγικός Αλγόριθμος Κόστος Παράλληλων Αλγόριθμων Τύποι Παράλληλων Υπολογιστικών Μηχανών Το Δείπνο των Φιλοσόφων

3 8.5 Ασκήσεις ΔΕΝΤΡΑ Εισαγωγικές Έννοιες - Ορισμοί Διαπεράσεις Δυαδικού Δέντρου Υλοποίηση Δυαδικού Δέντρου με Πίνακα Δυαδικά Δέντρα Αναζήτησης Ασκήσεις ΓΡΑΦΟΙ (Graphs) Εισαγωγικές Έννοιες - Ορισμοί Αλγόριθμος Ψαξίματος Γράφου Κατά Βάθος (depth-first-search ή dfs) Ο Αλγόριθμος του DIJKSTRA (Οικονομικότεροι δρόμοι) Ασκήσεις ΚΑΤΑΚΕΡΜΑΤΙΣΜΟΣ (Hash tables) Εισαγωγικές Έννοιες / Ορισμοί Άσκηση ΟΙ ΚΛΑΣΕΙΣ P ΚΑΙ NP Αιτιοκρατικοί και μη Αιτιοκρατικοί Αλγόριθμοι Η Κλάση Προβλημάτων P Η Κλάση Προβλημάτων NP Η κλάση των NP-hard και NP-complete Προβλημάτων ΒΙΒΛΙΟΓΡΑΦΙΑ

4 ΑΛΓΟΡΙΘΜΟΙ Τμήμα Τεχνολογίας Πληροφορικής & Τηλεπικοινωνιών Αλγόριθμος 1: Εξίσωση2 - Επίλυση Εξίσωσης 2 ου Βαθμού (ax 2 +bx+c=0) 10 Αλγόριθμος 2: ΜΚΔ1 (Υπολογισμός Μ.Κ.Δ. των αριθμών χ και ψ με τον αλγόριθμο του Ευκλείδη) 13 Αλγόριθμος 3: Μεταφορά Αραιού Πίνακα 14 Αλγόριθμος 4: Ανάκτηση Στοιχείου Αραιού Πίνακα από τους Δείκτες του 14 Αλγόριθμος 5: Μεταφορά Στοιχείων Κάτω Τριγωνικού Πίνακα 17 Αλγόριθμος 6: Ανάκτηση Στοιχείου Τριγωνικού Πίνακα 18 Αλγόριθμος 7. Δισδιάστατα Μέγιστα Αλγόριθμος Brute-Force 28 Αλγόριθμος 8. Δισδιάστατα Μέγιστα Δεύτερος Αλγόριθμος 28 Αλγόριθμος 9. Πρόβλημα Ελαχίστων Αποστάσεων (Brute-Force) 30 Αλγόριθμος 10: Αναζήτηση συμβολοσειράς (αλγόριθμος brute-force) 33 Αλγόριθμος 11: Βελτιωμένος Αλγόριθμος Επίλυσης του Προβλήματος Εύρεσης Μέγιστων Δισδιάστατου Χώρου (Sweep-Plane) 39 Αλγόριθμος 12: Μη αναδρομικός αλγόριθμος επίλυσης του προβλήματος 47 «Πύργοι του Hanoi» Αλγόριθμος 13: Merge Sort 49 Αλγόριθμος 14: Ενοποίηση ταξινομημένων πινάκων 50 Αλγόριθμος 14: Το πρόβλημα της επιστροφής ρέστων 65 Αλγόριθμος 15: Χρονοπρογραμματισμός εργασιών 68 Αλγόριθμος 16 : Σειριακός Αλγόριθμος Πρόσθεσης 100 Αριθμών 75 Αλγόριθμος 17: Παράλληλος Αλγόριθμος Πρόσθεσης 100 Αριθμών 75 Αλγόριθμος 18: Το δείπνο των φιλοσόφων (πρώτη έκδοση) 79 Αλγόριθμος 19: Το δείπνο των φιλοσόφων (σωστή έκδοση) 80 Αλγόριθμος 20: Αλγόριθμος Depth First Search 93 Αλγόριθμος 21: Αλγόριθμος Dijkstra Οικονομικότεροι δρόμοι 94 Αλγόριθμος 22: Μη αιτιοκρατικός αλγόριθμος αναζήτησης 107 Αλγόριθμος 23: Μη αιτιοκρατικός αλγόριθμος ταξινόμησης 108 4

5 5

6 ΠΡΟΓΡΑΜΜΑΤΑ Τμήμα Τεχνολογίας Πληροφορικής & Τηλεπικοινωνιών Πρόγραμμα 1: Ανάκτηση Στοιχείου Αραιού Πίνακα 15 Πρόγραμμα 2: Κάτω Τριγωνικός Πίνακας 18 Πρόγραμμα 3: Ενοποίηση Ταξινομημένων Πινάκων 20 Πρόγραμμα 4: Υπολογισμός Δισδιάστατων Μεγίστων 29 Πρόγραμμα 5: Πρόβλημα Ελαχίστων Αποστάσεων 31 Πρόγραμμα 6: Αναζήτηση συμβολοσειράς (αλγόριθμος brute-force) 33 Πρόγραμμα 7: Πρόγραμμα υλοποίησης αλγόριθμου σάρωσης επιπέδου 40 Πρόγραμμα 8: Πρόγραμμα υλοποίησης προβλήματος «Πύργοι του Hanoi» 45 Πρόγραμμα 9: Ενοποίηση ταξινομημένων πινάκων 50 Πρόγραμμα 10: Quick sort 54 Πρόγραμμα 11: Πολλαπλασιασμός αλυσίδας πινάκων 60 Πρόγραμμα 12: Το πρόβλημα της επιστροφής ρέστων 65 Πρόγραμμα 13: Χρονοπρογραμματισμός εργασιών 68 Πρόγραμμα 14: Knapsack problem Αναδρομικός Αλγόριθμος 71 Πρόγραμμα 15: Knapsack problem Άπληστος Αλγόριθμος 72 Πρόγραμμα 16: O αλγόριθμος Dijkstra (Pascal) 99 6

7 7

8 ΣΧΗΜΑΤΑ Τμήμα Τεχνολογίας Πληροφορικής & Τηλεπικοινωνιών Σχήμα 2.1 Ρυθμός αύξησης συναρτήσεων 26 Σχήμα 2.2 Δισδιάστατα μέγιστα 27 Σχήμα 2.3 Συνάρτηση Πολυπλοκότητας Αλγόριθμου Δισδιάστατων Μεγίστων 29 Σχήμα 2.4 α) Τρεις διαστάσεις β) Τέσσερις διαστάσεις 33 Σχήμα 3.1 Βελτιωμένος Αλγόριθμος Υπολογισμού Δισδιάστατων 36 Μεγίστων Σχήμα 4.1 Πύργοι του Hanoi 41 Σχήμα7.1: Χρονοπρογραμματισμός εργασιών 67 Σχήμα 7.2: Επιλογή εργασιών προς εξυπηρέτηση 70 Σχήμα 7.3: Knapsack problem 70 Σχήμα 7.4: Μία λύση του knapsack problem 71 Σχήμα 8.1: SISD 77 Σχήμα8.2 : MISD 77 Σχήμα 8.3 : SIMD 78 Σχήμα 8.4 : MIMD 78 Σχήμα 8.5: Τοπολογίες παράλληλων συστημάτων 79 Σχήμα 9.1: Δυαδικό δέντρο 84 Σχήμα 10.1: Γράφος 5 κορυφών 92 Σχήμα 10.2: Αλγόριθμος Dijkstra 95 Σχήμα 10.3: Ορθότητα αλγόριθμου Dijkstra, 1 η περίπτωση 96 Σχήμα 10.4: Ορθότητα αλγόριθμου Dijkstra, 2 η περίπτωση 96 Σχήμα 12.1: Σχέση κλάσεων P και NP με την υπόθεση P NP 109 Σχήμα 12.2: Σχέσεις των κλάσεων P, NP, NP-hard και NP-complete 110 8

9 9

10 1. ΟΡΙΣΜΟΙ & ΟΡΟΛΟΓΙΑ 1.1 Εισαγωγή Αλγόριθμος είναι ένα σύνολο οδηγιών οι οποίες επιλύουν ένα συγκεκριμένο πρόβλημα ή μία κλάση προβλημάτων. Επιπλέον ένας αλγόριθμος πρέπει να πληροί και τα ακόλουθα κριτήρια: 1) Είσοδος: Για να λειτουργήσει πρέπει να εισαχθούν Ν δεδομένα από κάποια εξωτερική πηγή (το Ν μπορεί να είναι και μηδέν). 2) Έξοδος: Με το τέλος του αλγόριθμου πρέπει να παράγεται τουλάχιστο ένα αντικείμενο σαν αποτέλεσμα. 3) Καλά ορισμένος: Η κάθε οδηγία πρέπει να είναι απόλυτα καθορισμένη, κατανοητή και να μην αφήνει κανένα περιθώριο αμφισβήτησης (πχ σε κάποια απόφαση). 4) Πεπερασμένος: Να τελειώνει σε πεπερασμένο αριθμό βημάτων. 5) Αποτελεσματικός: Κάθε οδηγία του αλγόριθμου πρέπει να είναι απόλυτα βασική και να μπορεί να εκτελεσθεί από μία υπολογιστική μηχανή. Δηλαδή το τρίτο κριτήριο δεν είναι αρκετό: πρέπει η οδηγία επιπλέον να είναι έτσι ώστε να φέρνει κάποιο αποτέλεσμα. 6) Γενικός: Εάν είναι δυνατόν, ο αλγόριθμος πρέπει να λύνει μία κλάση προβλημάτων και όχι ένα και μοναδικό πρόβλημα. Για παράδειγμα, καλός είναι ο αλγόριθμος που επιλύει την εξίσωση πρώτου βαθμού ax+b=0 και όχι μία συγκεκριμένη εξίσωση σαν την 5x+6=0. Τέλος, ένας αλγόριθμος πρέπει να περιγράφεται αναλυτικά και με τέτοιο τρόπο ώστε να είναι απόλυτα κατανοητός ακόμη και σε κάποιον που δεν ξέρει το πρόβλημα που επιλύει (βλέπε Αλγόριθμος 1). Για την ιστορία, η λέξη αλγόριθμος προήλθε από το όνομα ενός Πέρση που είχε γράψει ένα βιβλίο Μαθηματικών (825 μ.χ.) τον Abu Ja far Mohammed ibn Musa al Khowarizmi. Ανάλογα με την τεχνική επίλυσης ενός προβλήματος οι αλγόριθμοι διακρίνονται σε: Αναδρομικοί (recursive): αλγόριθμοι που χρησιμοποιούν αναδρομικές λύσεις προβλημάτων, πχ πολυώνυμα Hermite, υπολογισμός παραγοντικού, κ.α. Διαίρει και Βασίλευε (divide and conquer): επιλύουν το πρόβλημα αναγάγοντάς το σε μικρότερα ανάλογα προβλήματα, πχ quick sort, merge sort, κα Άπληστοι (greedy): επιλύουν προβλήματα επιλέγοντας κάθε φορά την τοπικά βέλτιστη λύση προσδοκώντας την συνολικά βέλτιστη, πχ πρόβλημα επιστροφής ρέστων, χρονικός προγραμματισμός, κ.α. Δυναμικού Προγραμματισμού (dynamic programming): συνήθως αναδρομικοί αλγόριθμοι οι οποίοι χρησιμοποιούν τις ενδιάμεσα παραγόμενες λύσεις, πχ πολλαπλασιασμός αλυσίδας πινάκων, κα. Παράλληλοι (parallel): εύρεση λύσης όπου το πρόβλημα δεν λύνεται σειριακά αλλά πολλές σχέσεις του εκτελούνται παράλληλα, πχ πολλά προβλήματα πινάκων, τεχνικές τύπου «διαίρει και βασίλευε», κ.α. Επίσης, ανάλογα με την λύση που επιτυγχάνουν μπορούν να διακριθούν σε: 10

11 Βέλτιστοι ή Άριστοι (optimal): εύρεση της βέλτιστης λύσης του προβλήματος, πχ επίλυσης μίας εξίσωσης δευτέρου βαθμού. Προσεγγιστικοί ή ευρεστικοί (approximation heuristics): εύρεση «καλών» λύσεων σε άλυτα ή πολύ δύσκολα προβλήματα, πχ χρονοπρογραμματισμός εργασιών, χρωματισμός χάρτη κ.α. Αλγόριθμος 1: Εξίσωση2 - Επίλυση Εξίσωσης 2 ου Βαθμού (ax 2 +bx+c=0) 1: Εισαγωγή των a, b, και c. 2: Εάν (a=0 ΚΑΙ b=0 ΚΑΙ c=0) Τότε 3: Αόριστη εξίσωση, 4: Τέλος Αλγόριθμου «Εξίσωση2» 5: Τέλος Εάν 6: Εάν (a=0 ΚΑΙ b=0 ΚΑΙ c 0) Τότε 7: Αδύνατη εξίσωση, 8: Τέλος Αλγόριθμου «Εξίσωση2» 9: Τέλος Εάν 10: Υπολόγισε d b 2 4ac b + d 11: Υπολόγισε x 1 2a b d 12: Υπολόγισε x 2 2a 13: Εκτύπωσε τα x 1 και x 2. 14: Τέλος Αλγόριθμου «Εξίσωση2» 1.2 Έννοιες Κλειδιά Για να λειτουργήσει ένας αλγόριθμος χρειάζεται πληροφορίες ή αλλιώς δεδομένα τις οποίες και επεξεργάζεται και δίνει τις πιθανές λύσεις. Τα δεδομένα σε έναν αλγόριθμο κατηγοριοποιούνται σε τρεις γενικές κατηγορίες: Δεδομένα (Πληροφορίες) Αρχικά: Είναι τα δεδομένα εισόδου που πρέπει να εφοδιαστεί ο αλγόριθμος ώστε να μπορέσει να επεξεργαστεί το πρόβλημα, Ενδιάμεσα: Αυτά είναι τα δεδομένα που παράγει ο αλγόριθμος για να μπορέσει να φτάσει στην λύση, και τέλος Αποτελέσματα: Είναι οι πληροφορίες που αφορούν την λύση του προβλήματος. Στον Αλγόριθμο 1, αρχικά δεδομένα είναι τα a, b, και c, ενδιάμεσα το d, και αποτελέσματα τα x 1 και x 2. Τα δεδομένα σε έναν αλγόριθμο περιγράφονται σαν μεταβλητές, δηλαδή υπολογιστικές οντότητες για την αναπαράσταση των δεδομένων σε ένα πρόγραμμα ή αλγόριθμο. Επίσης, τα δεδομένα μπορεί να είναι διαφόρων τύπων. Οι τύποι 11

12 δεδομένων καθορίζουν τις τιμές που επιτρέπεται να πάρει μία μεταβλητή πχ ακέραιος αριθμός, πραγματικός κοκ, αλλά και τους τρόπους διαχείρισης ή επεξεργασίας των τιμών αυτών, δηλαδή τις επιτρεπόμενες πράξεις. Οι τύποι των δεδομένων μπορούν να διαχωριστούν στους απλούς και σύνθετους τύπους. Οι κατηγορίες των απλών τύπων είναι οι: 1) Ακέραιος αριθμός (integer), 2) Πραγματικός αριθμός (real float), 3) Πραγματικός αριθμός μεγάλης ακρίβειας (double), 4) Χαρακτήρας (character), και 5) Boolean (με μοναδικές τιμές: Αληθής / Ψευδής ή 0 / 1). Οι σύνθετοι τύποι δεδομένων ονομάζονται δομές δεδομένων. Δομή Δεδομένων είναι ένα τύπος δεδομένων που αποτελείται από σύνθετες τιμές, δηλαδή τιμές που συντίθενται από άλλες απλούστερες επιμέρους τιμές (κόμβοι) και μεταξύ των οποίων υπάρχει ένα οργανωτικό σχήμα. Μερικές από τις πλέον συνηθισμένες δομές δεδομένων είναι οι: 1) Πίνακας (array), 2) Εγγραφή (record structure), 3) Λίστα (list), 4) Ουρά (queue), 5) Στοίβα ή σωρός (stack), 6) Γράφος (graph), 7) Δένδρα (tree), κλπ και με επιτρεπτές πράξεις: 1) Διαπέραση, 2) Αναζήτηση, 3) Εισαγωγή, 4) Διαγραφή, 5) Διάταξη, κλπ. 1.3 Πολυπλοκότητα & Απόδοση Αλγορίθμων Σαν πολυπλοκότητα ή απόδοση αλγορίθμου ορίζεται το κόστος χρήσης του αλγόριθμου για την επίλυση ενός προβλήματος. Μονάδες μέτρησης κόστους μπορεί να θεωρηθούν: Ο υπολογιστικός χρόνος εκτέλεσης του αλγόριθμου, δηλαδή χρήση της CPU μίας υπολογιστικής μηχανής, Η χρήση αποθηκευτικών χώρων, Η χρήση πόρων δικτύου, ή και σε οποιαδήποτε άλλη μονάδα που μπορεί να εκφράζει χρήση οποιονδήποτε πόρων υπολογιστικών και δικτύων. Βέβαια, ο χρόνος εκτέλεσης ενός αλγόριθμου θεωρείται σαν το πιο σημαντικό μέτρο χαρακτηρισμού του αλγόριθμου. Μάλιστα, επειδή σε πάρα πολλές περιπτώσεις είναι 12

13 εντελώς αδύνατο να υπολογισθεί αυτός ο χρόνος με ακρίβεια, υπολογίζονται συναρτήσεις που αποδίδουν τον καλύτερο, μέσο και χειρότερο χρόνο του. Για παράδειγμα στον Αλγόριθμο 1, ο καλύτερος χρόνος είναι όταν η εξίσωση είναι αόριστη και ο χειρότερος όταν θα υπάρχουν οι δύο λύσεις. 1.4 Αλγοριθμική Γλώσσα Για την περιγραφή των αλγορίθμων έχει προταθεί και χρησιμοποιείται μία «γλώσσα», η λεγόμενη αλγοριθμική γλώσσα η οποία είναι αποδεσμευμένη από τις λεπτομέρειες μιας κανονικής γλώσσας προγραμματισμού σαν την C ή την Pascal, Java και άλλες. Ο στόχος είναι να περιγράφεται η λύση ενός προβλήματος με τέτοιο τρόπο ώστε να μπορεί να μεταφερθεί αργότερα σε οποιαδήποτε γλώσσα προγραμματισμού. Επίσης, στην αλγοριθμική γλώσσα πρέπει να αποφεύγονται εκφράσεις που υπάρχουν σε κάποια γλώσσα προγραμματισμού ενώ δεν υπάρχουν σε άλλες (για παράδειγμα οι τελεστές ++, -- κ.α. της C). Σε γενικές γραμμές, τα δομικά στοιχεία της αλγοριθμικής γλώσσας είναι τα ακόλουθα: 1) Δεδομένα τα οποία μπορεί να είναι: a) Μεταβλητές ποσότητες (πχ x, a, mikos κλπ), b) Σταθερές ποσότητες (πχ ένας αριθμός, ένα όνομα κ.α.), 2) Τελεστές: a) Πρόσθεση, b) Αφαίρεση, c) Πολλαπλασιασμός, d) Διαίρεση, e) Υπόλοιπο, f) Ισότητα, g) Όλες οι πιθανές ανισότητες, κ.λ.π. 3) Παραστάσεις: a) Εκχώρηση Τιμής, πχ a 3x+1 κλπ, b) Κριτήρια ή Συνθήκες, πχ α>7, onoma= Nikos, κλπ, 4) Διατάξεις Ελέγχου Ροής του Αλγόριθμου: a) Η πρόταση: i) Εάν (συνθήκη) Τότε { (1) προτάσεις ii) Αλλιώς (1) {προτάσεις iii) Τέλος Εάν (ή If Then Else End If) b) Η πρόταση πολλαπλής επιλογής: i) Επέλεξε με το (1) Περίπτωση 1: {προτάσεις (2) Περίπτωση 2: {προτάσεις 13

14 (3) (4) Περίπτωση ν: {προτάσεις ii) Τέλος Επιλογής (Switch ή Case) 5) Επαναληπτικές Δομές: a) Για Τέλος Για (For End For) i) Για (προτάσεις ελέγχου επανάληψης) (1) {προτάσεις ii) Τέλος Για b) Εφόσον (While End While) i) Εφόσον (προτάσεις ελέγχου επανάληψης) (1) {προτάσεις ii) Τέλος Εφόσον c) Επανέλαβε (Do While ή Repeat Until) i) Επανέλαβε (1) {προτάσεις ii) Μέχρι (προτάσεις ελέγχου επανάληψης) 6) Διαδικασίες (procedures routines): a) Διαδικασία «όνομα διαδικασίας με πιθανές παραμέτρους» i) {προτάσεις διαδικασίας b) Τέλος Διαδικασίας «όνομα διαδικασίας» 7) Συναρτήσεις (functions): a) Τύπος επιστρεφόμενου δεδομένου «όνομα συνάρτησης με πιθανές παραμέτρους» i) {προτάσεις συνάρτησης ii) Επέστρεψε b) Τέλος Συνάρτησης «όνομα συνάρτησης» 1.5 Παραδείγματα & Λυμένες Ασκήσεις 1. Υπολογισμός Μέγιστου Κοινού Διαιρέτη με χρήση του αναδρομικού αλγόριθμου του Ευκλείδη. ΛΥΣΗ Αλγόριθμος 2: ΜΚΔ1 (Υπολογισμός Μ.Κ.Δ. των αριθμών χ και ψ με τον αλγόριθμο του Ευκλείδη) 1: Δεδομένα / Είσοδος: ακέραιοι χ, ψ 2: Ακέραιος ΜΚΔ1(ακέραιος χ, ακέραιος ψ) 3: Αρχή 4: Εάν ψ>0 Τότε 5: Επέστρεψε ΜΚΔ(ψ, χ υπόλοιπο ψ) 6: Αλλιώς 7: Επέστρεψε ψ 8: Τέλος Εάν 9: Τέλος Συνάρτησης «ΜΚΔ1» 14

15 2. Αραιός ονομάζεται ένας πίνακας του οποίου τα περισσότερα στοιχεία είναι μηδενικά σε ποσοστά που υπερβαίνουν το 80%. Για να μην γίνεται αυτή η σπατάλη χώρου ας υποτεθεί ότι μεταφέρονται τα μη μηδενικά στοιχεία του πίνακα σε ένα νέο πίνακα και διαγράφεται ο παλιός. Το πρόβλημα είναι ότι η θέση των στοιχείων στον αρχικό πίνακα είναι σημαντική οπότε για να διατηρηθεί αυτή η πληροφορία, ο νέος πίνακας αντί για μονοδιάστατος θα μπορούσε να είναι δισδιάστατος με την εξής οργάνωση: σε κάθε γραμμή η πρώτη στήλη να περιέχει τα μη μηδενικά στοιχεία του αραιού πίνακα ενώ στην δεύτερη και τρίτη στήλη να τοποθετούνται οι συντεταγμένες αυτών των στοιχείων που είχαν στον αρχικό πίνακα (δηλαδή τον αριθμό της γραμμής και της στήλης τους). Με βάση αυτή τη διαδικασία να δημιουργηθούν οι αλγόριθμοι μεταφοράς των στοιχείων και αναζήτησης στοιχείου με βάση την θέση του. Αλγόριθμος 3: Μεταφορά Αραιού Πίνακα 1: Δεδομένα / Είσοδος: Αραιός πίνακας Π NxΜ, Πίνακας Στόχος Σ Τx3 2: Διαδικασία «Μεταφορά» 3: Αρχή 4: Ακέραιοι: ι, κ, λ 5: λ 0 6: Για ι = 1 Μέχρι Ν 7: Για κ = 1 Μέχρι Μ 8: Εάν (Π ι,κ 0) Τότε 9: λ λ : Σ λ,1 Π ι,κ 11: Σ λ,2 ι 12: Σ λ,3 κ 13 Τέλος Εάν 14 Τέλος Για (κ) 15 Τέλος Για (ι) 16: Τέλος Διαδικασίας «Μεταφορά» Αλγόριθμος 4: Ανάκτηση Στοιχείου Αραιού Πίνακα από τους Δείκτες του 1: Δεδομένα / Είσοδος: Πίνακας Σ Τx3 2: Τύπος Στοιχείου Αραιού Πίνακα «Ανάκτηση(ακέραιος χ, ακέραιος ψ)» 3: Αρχή 4: Ακέραιος: ι 0 5: Boolean: flag «Ψευδής» 6: Τύπος δεδομένων των στοιχείων του αραιού πίνακα: β 7: Επανέλαβε 8: ι ι + 1 9: Εάν ( Σι,2 = χ ΚΑΙ Σι,3 = υ) Τότε 10: Β Σι,1 11: Flag «Αληθής» 12: Τέλος Εάν 13: Μέχρι (flag = «Αληθής» Η ι = Τ) 14: Εάν (flag = «Αληθής») Τότε 15

16 15: Επέστρεψε β 16: Αλλιώς 17: Επέστρεψε 0 18: Τέλος Εάν 19: Τέλος Συνάρτησης «Ανάκτηση» Στο Πρόγραμμα 1 που ακολουθεί περιγράφεται ένας διαφορετικός αλγόριθμος ανάκτησης στοιχείου (είναι καλύτερος;). Πρόγραμμα 1: Ανάκτηση Στοιχείου Αραιού Πίνακα #include <stdio.h> #define M 7 /* Μέγεθος Πίνακα Στόχου */ int S[M][3]={ -3,3,9, -12,7,2, -5,12,4, -7,12,8, -31,12,9, -5,15,17, -9,20,1; /* S είναι ο πίνακας στον οποίο μεταφέρθηκε ο αραιός πίνακας */ int anaktisi(int,int); main() { int i; int ii,jj; /* Δείκτες του υπό ανάκτηση στοιχείου */ int s; /* Το αναζητούμενο στοιχείο */ /* Εκτύπωση πίνακα στόχου */ for (i=0;i<m;i++) printf("\n%5d%5d%5d",s[i][0],s[i][1],s[i][2]); /* Είσοδος παραμέτρων */ printf("\n\nεισαγωγή γραμμής και στήλης του ζητούμενου στοιχείου:"); scanf("%d%d",&ii,&jj); /* Ανάκτηση στοιχείου */ s=anaktisi(ii,jj); /* Εκτύπωση στοιχείου */ printf("\n\nstoixeio = %5d\n\n",s); /****************************/ /* ΣΥΝΑΡΤΗΣΗ ΑΝΑΚΤΗΣΗΣ */ 16

17 /***************************/ int anaktisi(int i, int j) { int k; k=0; while (S[k][1]<i && k<m-1) k++; if (S[k][1]==i) while (S[k][2]<j && k<m-1) k++; if (S[k][1]==i && S[k][2]==j) return S[k][0]; else return 0; 3. Τριγωνικοί Πίνακες. Ένας τετραγωνικός πίνακας ονομάζεται κάτω (επάνω) τριγωνικός εάν μόνο τα στοιχεία κάτω (επάνω) της κύριας διαγωνίου του είναι μη μηδενικά (η κύρια διαγώνιος συμπεριλαμβάνεται στα μη μηδενικά στοιχεία). Επειδή πάλι υπάρχει σπατάλη χώρου (πολλά μηδενικά στοιχεία) ζητείται μία μέθοδος απεικόνισης του πίνακα ώστε να αποφευχθεί αυτή η σπατάλη χώρου. ΛΥΣΗ Εάν ο τριγωνικός πίνακας μεταφερθεί σε ένα νέο μονοδιάστατο πίνακα, τότε το πρώτο ζητούμενο είναι το μέγεθος του πίνακα στόχου. Η γενική μορφή ενός κάτω τριγωνικού πίνακα είναι η ακόλουθη: a1,1,0,0, LLLLL,0 a2,1, a2,2,0,0, LLL,0 a3,1, a3,2, a3,3,0, LL,0 LLLLLL an,1, an,2, an,3, LL, an, Δηλαδή τα μη μηδενικά στοιχεία ανά γραμμή είναι: 1 η γραμμή: 1 2 η γραμμή: 2 3 η γραμμή: 3 n η γραμμή: n Επομένως το σύνολο των μη μηδενικών στοιχείων είναι: n 17

18 n n( n + 1) L + n = i = = N, i=1 2 επομένως και το μέγεθος του γραμμών του μονοδιάστατου πίνακα στόχου πρέπει να n( n +1) είναι N =, όπου n το πλήθος των γραμμών / στηλών του τριγωνικού πίνακα. 2 Ο αλγόριθμος μεταφοράς δίνεται στον Αλγόριθμο 5. Αλγόριθμος 5: Μεταφορά Στοιχείων Κάτω Τριγωνικού Πίνακα 1: Δεδομένα / Είσοδος: Κάτω Τριγωνικός Πίνακας Τ nxn, Πίνακας Στόχος Σ Ν 2: Διαδικασία «Μεταφορά Τριγωνικού» 3: Αρχή 4: Ακέραιοι: ι, κ, λ = 0 5: Για ι = 1 Μέχρι n 6: Για κ = 1 Μέχρι ι 7: λ λ+1 8: Σ λ Τ ι,κ 9: Τέλος Για (κ) 10: Τέλος Για (λ) 11: Τέλος διαδικασίας «Μεταφορά Τριγωνικού» Το επόμενο πρόβλημα είναι πως θα γίνεται ανάκτηση ενός στοιχείου του τριγωνικού πίνακα που έχει πλέον μεταφερθεί, από τους δείκτες του, έστω i, j. Εάν i<j τότε το ζητούμενο στοιχείο είναι μηδενικό. Εάν όμως i j τότε το στοιχείο που βρίσκεται στη i γραμμή έπεται όλων των στοιχείων των προηγουμένων γραμμών i-1 και το πλήθος των στοιχείων αυτών είναι: 1 η γραμμή: 1 2 η γραμμή: 2 3 η γραμμή: 3 (i-1) η γραμμή: i-1 Επομένως το σύνολο των μη στοιχείων είναι: i( i 1) L + ( i 1) =, i 1 i = i= 1 2 και επιπλέον προηγούνται και τα j-1 στοιχεία της ι γραμμής. Δηλαδή το σύνολο των στοιχείων που προηγούνται του i,j είναι: i 1 i= 1 i( i 1) i = + ( j 1) 2 και αυτό δείχνει ότι το στοιχείο i,j έχει καταχωρηθεί στον πίνακα στόχο στη θέση: 18

19 i 1 l = i= i( i 1) i = j. Στον Αλγόριθμο 6 περιγράφεται η διαδικασία ανάκτησης. Αλγόριθμος 6: Ανάκτηση Στοιχείου Τριγωνικού Πίνακα 1: Δεδομένα / Είσοδος: Πίνακας Στόχος Σ Ν 2: Τύπος Στοιχείου Τριγωνικού Πίνακα «Ανάκτηση ΚΤΠ(ακέραιος i, ακέραιος j)» 3: Αρχή 4: Ακέραιος k 5: Εάν (i < j) Τότε 6: Επέστρεψε 0 7: Τέλος Εάν i( i 1) 8: k + j 2 9: Επέστρεψε Σ k 10: Τέλος συνάρτησης «Ανάκτηση ΚΤΠ» Στο Πρόγραμμα 2 δίνεται η μεταφορά και ανάκτηση στοιχείου κάτω τριγωνικού πίνακα. Η διαφορά της συνάρτησης ανάκτησης του Προγράμματος 2 με αυτής του Αλγόριθμου 6 οφείλεται στο ότι στην C οι δείκτες των πινάκων αρχίζουν από το μηδέν. Πρόγραμμα 2: Κάτω Τριγωνικός Πίνακας #include <stdio.h> #define n 4 /* Μέγεθος Κάτω Τριγωνικού Πίνακα */ #define N n*(n+1)/2 /* Μέγεθος Πίνακα Στόχου */ int T[n][n]={ -3,0,0,0, -12,7,0,0, -5,12,4,0, -7,12,8,9; int S[N]; void metafora(void); int anaktisi(int,int); main() { int i, j, l; /* Αρχικοποίηση πίνακα στόχου */ for (i=0; i<n; i++) S[i] = 0; metafora(); printf("\n\nκατω ΤΡΙΓΩΝΙΚΟΣ ΠΙΝΑΚΑΣ\n\n"); 19

20 for (i=0; i<n; i++) { for (j=0; j<n; j++) printf("%5d", T[i][j]); printf("\n"); printf("\n\nπινακασ ΣΤΟΧΟΣ\n\n"); for (i=0; i<n; i++) printf("%5d", S[i]); printf("\n\n"); printf("\nείσοδος δεικτών γραμμής και στήλης του υπό αναζήτηση στοιχείου:"); scanf("%d%d",&i, &j); l = anaktisi(i,j); if (l==-1) printf("\n\nτο στοιχείο είναι το: %d\n\n", 0); else printf("\n\nτο στοιχείο είναι το: %d\n\n", S[l]); /*************************/ /* Σ Υ Ν Α Ρ Τ Η Σ Ε Ι Σ */ /************************/ void metafora(void) { int i, k, l = 0; for (i=0; i<n; i++) for (k=0; k<=i; k++) S[l++] = T[i][k]; int anaktisi(int x, int y) { if (x < y) return -1; return x*(x+1)/2 + y; 4. Ένα ενδιαφέρον πρόβλημα είναι η ενοποίηση δύο ταξινομημένων πινάκων Α Ν και Β Μ σε ένα νέο αλλά πάλι ταξινομημένο πίνακα C N+M. Μία απλή λύση είναι η μεταφορά του πρώτου στον C, μετά η μεταφορά του δεύτερου στον C και τέλος η ταξινόμηση του C. Αυτή είναι μία χρονοβόρα λύση γιατί χρειάζεται να ταξινομηθεί πάλι ο C και δεν εκμεταλλεύεται το γεγονός ότι οι A και Β είναι ήδη ταξινομημένοι. Προφανώς, η καλύτερη και πιο γρήγορη λύση είναι να μεταφερθούν «ταυτόχρονα» 20

21 οι Α και Β στον C ταξινομημένα. Στο Πρόγραμμα 3 δίνεται μία λύση αυτού του προβλήματος. ΛΥΣΗ Πρόγραμμα 3: Ενοποίηση Ταξινομημένων Πινάκων #include <stdio.h> #define N 5 /* Μέγεθος Α Πίνακα */ #define M 9 /* Μέγεθος Β Πίνακα */ #define F N+M /* Μέγεθος Πίνακα Στόχου */ int A[N] = {2,6,7,9,9; int B[M] = {-4,0,1,6,12,12,15,17,19; int C[F]; void enopoiisi(void); main() { int i; printf("\n\na ΠΙΝΑΚΑΣ\n\n"); for (i=0; i<n; i++) printf("%5d", A[i]); printf("\n\nb ΠΙΝΑΚΑΣ\n\n"); for (i=0; i<m; i++) printf("%5d",b[i]); enopoiisi(); printf("\n\nενοποιημένος Πίνακας\n\n"); for (i=0; i<f; i++) printf("%5d", C[i]); printf("\n\n"); /*************************/ /* Σ Υ Ν Α Ρ Τ Η Σ Ε Ι Σ */ /************************/ void enopoiisi(void) { int i, j, k; for (i=0, j=0, k=0; k<f; k++) { if (i == N) { C[k] = B[j++]; continue; if (j == M) { C[k] = A[i++]; continue; C[k] = (A[i]<B[j])? A[i++] : B[j++]; 21

22 1.6 Ασκήσεις 1) Οι συμμετρικοί πίνακες είναι μία ιδιαίτερη κατηγορία τετραγωνικών πινάκων οι οποίοι μάλιστα μοιάζουν με τους τριγωνικούς. Σε έναν συμμετρικό πίνακα ισχύει a i, j = a j, i. Δηλαδή, υπάρχει μία κατοπτρική συμμετρία των στοιχείων του σε άξονα συμμετρίας την κύρια διαγώνιο του πίνακα. Με βάση το σκεπτικό των τριγωνικών πινάκων και επειδή πάλι υπάρχει σπατάλη μνήμης λόγω τον πολλών όμοιων στοιχείων, να βρεθεί τρόπος οικονομικότερης διαχείρισης αυτού του είδους των πινάκων και να αναπτυχθούν οι αντίστοιχοι αλγόριθμοι και προγράμματα σε οποιαδήποτε γλώσσα προγραμματισμού. 2) Να αναπτυχθούν αλγόριθμοι ταξινόμησης πίνακα με τις παρακάτω μεθόδους: a) Φυσαλίδας, b) Παρεμβολής, και c) Εισαγωγής. 3) Να γραφεί αλγόριθμος υπολογισμού του μεγαλύτερου και μικρότερου στοιχείου πίνακα. Ο αλγόριθμος να επιστρέφει και την θέση στον πίνακα που βρέθηκαν το μεγαλύτερο και μικρότερο στοιχείο αντίστοιχα. 4) Να αναπτυχθούν αλγόριθμοι αναζήτησης στοιχείου πίνακα (και της θέσης που βρέθηκε) με τις παρακάτω μεθόδους. Επίσης να συγκριθούν αυτοί οι αλγόριθμοι ως προς την ταχύτητά τους. a) Σειριακή σε αταξινόμητο πίνακα, b) Σειριακή σε ταξινομημένο πίνακα, c) Δυαδική αναζήτηση (φυσικά σε ταξινομημένο πίνακα). 5) Να τροποποιηθούν οι αλγόριθμοι των μεθόδων (a) και (b) της προηγούμενης άσκησης με τέτοιο τρόπο ώστε εάν υπάρχουν παραπάνω από ένα ίδια στοιχεία με αυτό το υπό αναζήτηση να υπολογίζεται το πλήθος τους αλλά και η θέση τους. 6) Quiz: Έστω ότι υπάρχουν δώδεκα αντικείμενα ίδιου μεγέθους και χρώματος. Επίσης, έστω ότι όλα τα αντικείμενα, εκτός από ένα, έχουν το ίδιο βάρος. Εάν διαθέτουμε μία ζυγαριά (παλιού τύπου, με δύο ζυγούς) να βρεθεί ο τρόπος ώστε με το πολύ τέσσερις ζυγίσεις να βρεθεί το αντικείμενο το οποίο είναι διαφορετικού βάρους αλλά και το είδος της διαφορετικότητάς του (πιο ελαφρύ ή πιο βαρύ). 7) Να σχεδιασθεί αλγόριθμος, ο οποίος να επιλύει το προηγούμενο πρόβλημα αλλά με N αντικείμενα (εκ των οποίων ένα είναι διαφορετικού βάρους). Επίσης, να αποδειχθεί ο ελάχιστος αριθμός των απαιτούμενων ζυγίσεων. 22

23 23

24 2. ΠΟΛΥΠΛΟΚΟΤΗΤΑ Πριν την σχεδίαση ενός αλγορίθμου, είναι στοιχειωδώς απαραίτητο να ορισθεί το κριτήριο ή κριτήρια τα οποία πρέπει να εκπληρώνει ώστε να μπορεί να χαρακτηρισθεί εάν είναι «καλός» αλγόριθμος ή όχι. Το βασικό στοιχείο ενός καλού αλγόριθμου λοιπόν, είναι το κατά πόσον είναι ή όχι αποδοτικός. Και απόδοση σημαίνει η χρήση υπολογιστικών πόρων που απαιτούνται για την επίλυση του προβλήματος. Οι υπολογιστικοί πόροι (ανάλογα και με την φύση του αλγόριθμου) μπορεί να είναι η CPU, η μνήμη ή ακόμη και πιθανούς δικτυακούς πόρους (πχ bandwidth) που χρησιμοποιούνται. Ουσιαστικά όμως, στα περισσότερα προβλήματα αυτό που εξετάζεται είναι η χρήση της CPU δηλαδή, πόσος χρόνος απαιτείται για την εκτέλεση του αλγόριθμου. Αυτό όμως προϋποθέτει να δοθεί και τυποποιηθεί ένα υπολογιστικό μοντέλο ώστε όλοι να αναφέρονται σε αυτό. Αυτή η υπολογιστική μηχανή θεωρείται όσο πιο απλή όσο είναι δυνατόν. Δηλαδή, είναι σε θέση να εκτελεί μόνο στοιχειώδεις αριθμητικές πράξεις (πχ πρόσθεση, αφαίρεση, κλπ) και επίσης στοιχειώδεις συγκρίσεις (πχ είναι το a>4;). Η υπολογιστική αυτή μηχανή ονομάζεται RAM από το ακρωνύμιο Random Access Machine. H RAM, αποτελείται από ένα μόνο επεξεργαστή (επομένως δεν είναι δυνατή η παράλληλη επεξεργασία), και εκτελεί τις οδηγίες του αλγόριθμου σειριακά, δηλαδή μία την φορά. Τέλος, θεωρείται ότι η μνήμη της είναι μεγάλη ή τουλάχιστον τόσο μεγάλη όσο απαιτεί ο οποιοσδήποτε αλγόριθμος. 2.1 Ορισμοί Η έννοια της Πολυπλοκότητα και Απόδοσης Αλγόριθμου αντιπροσωπεύει το κόστος χρήσης του αλγόριθμου για την επίλυση ενός προβλήματος. Το πρόβλημα χαρακτηρίζεται από τα δεδομένα εισόδου ενώ η συνάρτηση της πολυπλοκότητας f(n) εκφράζει την απαίτηση του αλγόριθμου σε χρόνο εκτέλεσης σε σχέση με το μέγεθος των δεδομένων εισόδου n. Επειδή είναι ιδιαίτερα δύσκολο ή και αδύνατο σε πάρα πολλές περιπτώσεις να βρεθεί μία ακριβής συνάρτηση, συνήθως σ αυτήν την περίπτωση ενδιαφέρει η εύρεση της τιμής της f(n) στις εξής περιπτώσεις: Καλύτερη Περίπτωση, δηλ. η ελάχιστη τιμή της f(n) Χειρότερη Περίπτωση, δηλ. η μέγιστη τιμή της f(n) Μέση Περίπτωση, δηλ. η αναμενόμενη τιμή της f(n) με πλέον χρήσιμη την χειρότερη περίπτωση. Όμως το πρόβλημα της ανάλυσης ενός αλγόριθμου παραμένει όταν τα δεδομένα εισόδου n, αυξάνονται πάρα πολύ. Γι αυτό είναι απαραίτητη η χρήση και επίδειξη ασυμπτωτικών συναρτήσεων οι οποίες να δείχνουν την τάξη μεγέθους της αύξησης του υπολογιστικού χρόνου χωρίς να είναι απαραίτητο να δείχνουν την ακριβή συνάρτηση της πολυπλοκότητάς του. Έτσι, είναι ιδιαίτερα χρήσιμοι οι ορισμοί που ακολουθούν. 24

25 Ορισμός 1. Θεωρούμε ότι f(n)=o(g(n)) για n (μικρό όμικρον little oh) f ( n) εάν lim n = 0. Δηλαδή, η συνάρτηση f αυξάνει πιο αργά από την g( n) συνάρτηση g όταν το n είναι πολύ μεγάλο. Παραδείγματα: n 2 = o( n 5 ) ημ ( n ) = o( n) Ορισμός 2. Θεωρούμε ότι f(n)=o(g(n)) για n (μεγάλο όμικρον big oh) εάν C,n0, τέτοια ώστε f ( n) Cg( n),( n > n0 ). Δηλαδή, η συνάρτηση f δεν αυξάνει πιο γρήγορα από την συνάρτηση g. Παραδείγματα: ημ ( n ) = O(1) n( n + 1) 2 = O( n ). 2 n( n + 1) Απόδειξη: f ( n) = = n 2 + n με επικρατούντα όρο τον n Επομένως f ( n) = O( n ). 8log( n) + 4n 1 = O( ). 2 3n log( n) nlog( n) Απόδειξη: ( 8log( n) 4n 8 4 f n) = + = +. Ο 2 2 3n log( n) 3n log( n) 3n 2 3n log( n) 2 επικρατών όρος είναι ο δεύτερος γιατί n nlog( n) και επομένως 1 f ( n) = O( ). nlog( n) Γενικά οι σημαντικότερες συναρτήσεις τάξης μεγέθους παρουσιάζουν την ακόλουθη διάταξη (αύξουσα): 2 3 n 1 log( n) n nlog( n) n n 2 L Ορισμός 3. Θεωρούμε ότι f ( n) = Θ( g( n)) (θήτα) εάν υπάρχουν σταθερές c1 0, c2 0, n0 τέτοιες ώστε n > n0 c1g( n) < f ( n) < c2g( n). Δηλαδή οι δύο συναρτήσεις, f και g, αυξάνουν με τον ίδιο περίπου ρυθμό. Παραδείγματα: 2 2 ( n + 1) = Θ(3n ) 2 n + 5n = Θ( ) 3 5n + 7n + 2 n f ( n) Ορισμός 4. Θεωρούμε ότι f ( n) ~ g( n) (ασυμπτωτικά) εάν lim n = 1. g( n) Δηλαδή όχι μόνον ότι οι δύο συναρτήσεις f και g αυξάνουν με τον ίδιο 25

26 περίπου ρυθμό αλλά και ότι το πηλίκο τους g f προσεγγίζει την μονάδα όσο n Παραδείγματα: 2 2 n + n ~ n 4 ( 3n + 1) ~ 81n 4 Ορισμός 5. Θεωρούμε ότι f ( n) = Ω( g( n)) (ωμέγα) εάν ε > 0 και μία ακολουθία n 1, n2, n3, K τέτοια ώστε i : f ( ni ) > εg( ni ). Στην πραγματικότητα αυτό δηλώνει την άρνηση του ο. Δηλαδή, εάν f ( n) = Ω( g( n)) not( f ( n) = o( g( n))). Για παράδειγμα, είναι γνωστό ότι ο πολλαπλασιασμός δύο πινάκων nxn δεν μπορεί με κανένα τρόπο να 2 επιτευχθεί με λιγότερους από n πολλαπλασιασμούς. Αυτό σημαίνει ότι υπάρχει κατώτερο όριο και ότι η πολυπλοκότητα του γινομένου εκπεφρασμένου με την συνάρτηση Ω είναι Ω ( n 2 ). Μερικές χρήσιμες μαθηματικές σειρές: Αριθμητική σειρά: Γεωμετρική σειρά: Αρμονική σειρά: n i= 1 n i= 0 n i= 1 n( n + 1) i = L + n = = Θ(n 2 ) 2 n+ 1 i 2 3 n x 1 x = 1+ x + x + x + L + x = = Θ(x n ) x = L + ln( n) = Θ(ln(n)) i 2 3 n Τέλος, στο επόμενο σχήμα (Σχήμα 2.1) φαίνεται ο ρυθμός αύξησης των συναρτήσεων 2 n f ( n) = log n, f ( n) = n, f ( n) = nlog n, f ( n) = n, και f ( n) = Αλγόριθμοι Brute-Force Μία κατηγορία αλγορίθμων είναι οι λεγόμενοι brute-force αλγόριθμοι. Με βάση αυτή τη τεχνική, το πρόβλημα επιλύεται με τον πιο απλό και προφανή τρόπο, ο οποίος όμως δεν είναι πάντα (σχεδόν σε όλες τις περιπτώσεις) και ο πιο καλός. Επειδή ακριβώς επιλύει τα προβλήματα με τον πιο απλό και προφανή δυνατό τρόπο, είναι συνήθως εύκολο να υλοποιηθεί και να γίνει κατανοητός. Συνήθως αποτελούν και τον πιο «κουτό» τρόπο επίλυσης ενός προβλήματος. Ένα χαρακτηριστικό παράδειγμα τέτοιας τεχνικής είναι η ταξινόμηση ενός πίνακα με την μέθοδο της φυσαλίδας όπως επίσης και η σειριακή αναζήτηση. Σαν απόδειξη του πόσο αργοί είναι οι αλγόριθμοι αυτού του είδους, η μέθοδος της φυσαλίδας έχει πολυπλοκότητα της τάξης O( n 2 ) ενώ άλλες τεχνικές ταξινόμησης (πχ quick sort) έχουν πολυπλοκότητα της τάξης O ( nlog n). 26

ΑΛΓΟΡΙΘΜΟΙ & ΣΤΟΙΧΕΙΑ ΠΟΛΥΠΛΟΚΟΤΗΤΑΣ

ΑΛΓΟΡΙΘΜΟΙ & ΣΤΟΙΧΕΙΑ ΠΟΛΥΠΛΟΚΟΤΗΤΑΣ ΑΛΓΟΡΙΘΜΟΙ & ΣΤΟΙΧΕΙΑ ΠΟΛΥΠΛΟΚΟΤΗΤΑΣ Περίγραµµα Εισαγωγή Στοιχεία Πολυπλοκότητας Ηλίας Κ. Σάββας Επίκουρος Καθηγητής Τμήμα: Τεχνολογίας Πληροφορικής & Τηλεπικοινωνιών Email: savvas@teilar teilar.gr Αλγόριθµοι

Διαβάστε περισσότερα

Αλγοριθμικές Τεχνικές. Brute Force. Διαίρει και Βασίλευε. Παράδειγμα MergeSort. Παράδειγμα. Τεχνικές Σχεδιασμού Αλγορίθμων

Αλγοριθμικές Τεχνικές. Brute Force. Διαίρει και Βασίλευε. Παράδειγμα MergeSort. Παράδειγμα. Τεχνικές Σχεδιασμού Αλγορίθμων Τεχνικές Σχεδιασμού Αλγορίθμων Αλγοριθμικές Τεχνικές Παύλος Εφραιμίδης, Λέκτορας http://pericles.ee.duth.gr Ορισμένες γενικές αρχές για τον σχεδιασμό αλγορίθμων είναι: Διαίρει και Βασίλευε (Divide and

Διαβάστε περισσότερα

Υπολογιστικά & Διακριτά Μαθηματικά

Υπολογιστικά & Διακριτά Μαθηματικά Υπολογιστικά & Διακριτά Μαθηματικά Ενότητα 1: Εισαγωγή- Χαρακτηριστικά Παραδείγματα Αλγορίθμων Στεφανίδης Γεώργιος Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.

Διαβάστε περισσότερα

Αναδρομικοί Αλγόριθμοι

Αναδρομικοί Αλγόριθμοι Αναδρομικός αλγόριθμος (recursive algorithm) Επιλύει ένα πρόβλημα λύνοντας ένα ή περισσότερα στιγμιότυπα του ίδιου προβλήματος. Αναδρομικός αλγόριθμος (recursive algorithm) Επιλύει ένα πρόβλημα λύνοντας

Διαβάστε περισσότερα

Εισαγωγή στους Αλγόριθµους. Αλγόριθµοι. Ιστορικά Στοιχεία. Ο πρώτος Αλγόριθµος. Παραδείγµατα Αλγορίθµων. Τι είναι Αλγόριθµος

Εισαγωγή στους Αλγόριθµους. Αλγόριθµοι. Ιστορικά Στοιχεία. Ο πρώτος Αλγόριθµος. Παραδείγµατα Αλγορίθµων. Τι είναι Αλγόριθµος Εισαγωγή στους Αλγόριθµους Αλγόριθµοι Τι είναι αλγόριθµος; Τι µπορεί να υπολογίσει ένας αλγόριθµος; Πως αξιολογείται ένας αλγόριθµος; Παύλος Εφραιµίδης pefraimi@ee.duth.gr Αλγόριθµοι Εισαγωγικές Έννοιες

Διαβάστε περισσότερα

Εισαγωγή στον Προγραμματισμό

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό Ενότητα 6 Πίνακες Πανεπιστήμιο Αιγαίου Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων Τύπος πίνακα (array) Σύνθετος τύπος δεδομένων Αναπαριστά ένα σύνολο ομοειδών

Διαβάστε περισσότερα

ιαίρει-και-βασίλευε ημήτρης Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο

ιαίρει-και-βασίλευε ημήτρης Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο ιαίρει-και-βασίλευε ημήτρης Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο ιαίρει-και-βασίλευε Γενική μέθοδος σχεδιασμού αλγορίθμων: ιαίρεση σε ( 2) υποπροβλήματα

Διαβάστε περισσότερα

Εντολή Δεδομένα Περιεχόμενα μετά την εκτέλεση 1 read(x) 122 x= 2 read(a,b,c) 133 244 355 a= b= c= 3 read(d,e) 166 277 3888

Εντολή Δεδομένα Περιεχόμενα μετά την εκτέλεση 1 read(x) 122 x= 2 read(a,b,c) 133 244 355 a= b= c= 3 read(d,e) 166 277 3888 ΕΡΩΤΗΣΕΙΣ 1. Να αναφέρετε μερικά από τα ιδιαίτερα χαρακτηριστικά της Pascal. 2. Ποιο είναι το αλφάβητο της Pascal; 3. Ποια είναι τα ονόματα-ταυτότητες και σε τι χρησιμεύουν; 4. Σε τι χρησιμεύει το συντακτικό

Διαβάστε περισσότερα

5.1. Προσδοκώμενα αποτελέσματα

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

Διαβάστε περισσότερα

Περιεχόμενα. Δομές δεδομένων. Τεχνικές σχεδίασης αλγορίθμων. Εισαγωγή στον προγραμματισμό. Υποπρογράμματα. Επαναληπτικά κριτήρια αξιολόγησης

Περιεχόμενα. Δομές δεδομένων. Τεχνικές σχεδίασης αλγορίθμων. Εισαγωγή στον προγραμματισμό. Υποπρογράμματα. Επαναληπτικά κριτήρια αξιολόγησης Περιεχόμενα Δομές δεδομένων 37. Δομές δεδομένων (θεωρητικά στοιχεία)...11 38. Εισαγωγή στους μονοδιάστατους πίνακες...16 39. Βασικές επεξεργασίες στους μονοδιάστατους πίνακες...25 40. Ασκήσεις στους μονοδιάστατους

Διαβάστε περισσότερα

ΠΙΝΑΚΑΣ ΠΕΡΙΕΧΟΜΕΝΩΝ

ΠΙΝΑΚΑΣ ΠΕΡΙΕΧΟΜΕΝΩΝ ii ΠΙΝΑΚΑΣ ΠΕΡΙΕΧΟΜΕΝΩΝ 1. Εντολές εκχώρησης (αντικατάστασης)....1 1.1 Εισαγωγή...4 1.1.1 Χρήση ΛΣ και IDE της Turbo Pascal....4 1.1.2 Αίνιγμα...6 1.2 Με REAL...7 1.2.1 Ερώτηση...9 1.2.2 Επίλυση δευτεροβάθμιας

Διαβάστε περισσότερα

I. ΜΙΓΑΔΙΚΟΙ ΑΡΙΘΜΟΙ. math-gr

I. ΜΙΓΑΔΙΚΟΙ ΑΡΙΘΜΟΙ. math-gr I ΜΙΓΑΔΙΚΟΙ ΑΡΙΘΜΟΙ i e ΜΕΡΟΣ Ι ΟΡΙΣΜΟΣ - ΒΑΣΙΚΕΣ ΠΡΑΞΕΙΣ Α Ορισμός Ο ορισμός του συνόλου των Μιγαδικών αριθμών (C) βασίζεται στις εξής παραδοχές: Υπάρχει ένας αριθμός i για τον οποίο ισχύει i Το σύνολο

Διαβάστε περισσότερα

Διαδικασιακός Προγραμματισμός

Διαδικασιακός Προγραμματισμός Τμήμα ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ Διαδικασιακός Προγραμματισμός Διάλεξη 12 η Αναζήτηση/Ταξινόμηση Πίνακα Οι διαλέξεις βασίζονται στο βιβλίο των Τσελίκη και Τσελίκα C: Από τη Θεωρία στην

Διαβάστε περισσότερα

Διάλεξη 2η: Αλγόριθμοι και Προγράμματα

Διάλεξη 2η: Αλγόριθμοι και Προγράμματα Διάλεξη 2η: Αλγόριθμοι και Προγράμματα Τμήμα Επιστήμης Υπολογιστών, Πανεπιστήμιο Κρήτης Εισαγωγή στην Επιστήμη Υπολογιστών Βασίζεται σε διαφάνειες του Κ Παναγιωτάκη Πρατικάκης (CSD) Αλγόριθμοι και Προγράμματα

Διαβάστε περισσότερα

Αλγόριθμοι Ταξινόμησης Bubble Sort Quick Sort. Αντρέας Δημοσθένους Καθηγητής Πληροφορικής Ολυμπιάδα 2012

Αλγόριθμοι Ταξινόμησης Bubble Sort Quick Sort. Αντρέας Δημοσθένους Καθηγητής Πληροφορικής Ολυμπιάδα 2012 Αλγόριθμοι Ταξινόμησης Bubble Sort Quick Sort Αντρέας Δημοσθένους Καθηγητής Πληροφορικής Ολυμπιάδα 2012 3 5 1 Ταξινόμηση - Sorting Πίνακας Α 1 3 5 5 3 1 Ταξινόμηση (Φθίνουσα) Χωρίς Ταξινόμηση Ταξινόμηση

Διαβάστε περισσότερα

Εισαγωγή στην επιστήμη των υπολογιστών. Λογισμικό Υπολογιστών Κεφάλαιο 8ο Αλγόριθμοι

Εισαγωγή στην επιστήμη των υπολογιστών. Λογισμικό Υπολογιστών Κεφάλαιο 8ο Αλγόριθμοι Εισαγωγή στην επιστήμη των υπολογιστών Λογισμικό Υπολογιστών Κεφάλαιο 8ο Αλγόριθμοι 1 Έννοια Ανεπίσημα, ένας αλγόριθμος είναι μια βήμα προς βήμα μέθοδος για την επίλυση ενός προβλήματος ή την διεκπεραίωση

Διαβάστε περισσότερα

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

Εισαγωγή στους Αλγορίθμους Εισαγωγή στους Αλγορίθμους Ενότητα 5η Διδάσκων Χρήστος Ζαρολιάγκης Καθηγητής Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Πατρών Email: zaro@ceid.upatras.gr Η Μέθοδος «Διαίρει & Βασίλευε» Η Μέθοδος

Διαβάστε περισσότερα

1 Αριθμητική κινητής υποδιαστολής και σφάλματα στρογγύλευσης

1 Αριθμητική κινητής υποδιαστολής και σφάλματα στρογγύλευσης 1 Αριθμητική κινητής υποδιαστολής και σφάλματα στρογγύλευσης Στη συγκεκριμένη ενότητα εξετάζουμε θέματα σχετικά με την αριθμητική πεπερασμένης ακρίβειας που χρησιμοποιούν οι σημερινοί υπολογιστές και τα

Διαβάστε περισσότερα

Εισαγωγή στον Προγραμματισμό

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό Πίνακες Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2012-2013 Πίνακες Πολλές φορές θέλουμε να κρατήσουμε στην μνήμη πολλά αντικείμενα

Διαβάστε περισσότερα

Εισαγωγή στον Προγραμματισμό

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό Έλεγχος Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2012-2013 Σχεσιακοί Τελεστές και Ισότητας Ένα πρόγραμμα εκτός από αριθμητικές πράξεις

Διαβάστε περισσότερα

Δομές Δεδομένων (Data Structures)

Δομές Δεδομένων (Data Structures) Δομές Δεδομένων (Data Structures) Στοίβες Ουρές Στοίβες: Βασικές Έννοιες. Ουρές: Βασικές Έννοιες. Βασικές Λειτουργίες. Παραδείγματα. Στοίβες Δομή τύπου LIFO: Last In - First Out (τελευταία εισαγωγή πρώτη

Διαβάστε περισσότερα

Οι βασικές λειτουργίες (ή πράξεις) που γίνονται σε μια δομή δεδομένων είναι:

Οι βασικές λειτουργίες (ή πράξεις) που γίνονται σε μια δομή δεδομένων είναι: ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Μια δομή δεδομένων στην πληροφορική, συχνά αναπαριστά οντότητες του φυσικού κόσμου στον υπολογιστή. Για την αναπαράσταση αυτή, δημιουργούμε πρώτα ένα αφηρημένο μοντέλο στο οποίο προσδιορίζονται

Διαβάστε περισσότερα

2 ΟΥ και 7 ΟΥ ΚΕΦΑΛΑΙΟΥ

2 ΟΥ και 7 ΟΥ ΚΕΦΑΛΑΙΟΥ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ 2 ΟΥ και 7 ΟΥ ΚΕΦΑΛΑΙΟΥ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΛΓΟΡΙΘΜΩΝ και ΔΟΜΗ ΑΚΟΛΟΥΘΙΑΣ 2.1 Να δοθεί ο ορισμός

Διαβάστε περισσότερα

3 ΟΥ και 9 ΟΥ ΚΕΦΑΛΑΙΟΥ

3 ΟΥ και 9 ΟΥ ΚΕΦΑΛΑΙΟΥ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ 3 ΟΥ και 9 ΟΥ ΚΕΦΑΛΑΙΟΥ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΠΙΝΑΚΩΝ ΣΤΟΙΒΑΣ ΚΑΙ ΟΥΡΑΣ Α ΜΕΡΟΣ ΘΕΩΡΙΑ ΓΙΑ ΠΙΝΑΚΕΣ 3.1

Διαβάστε περισσότερα

1. Πότε χρησιμοποιούμε την δομή επανάληψης; Ποιες είναι οι διάφορες εντολές (μορφές) της;

1. Πότε χρησιμοποιούμε την δομή επανάληψης; Ποιες είναι οι διάφορες εντολές (μορφές) της; 1. Πότε χρησιμοποιούμε την δομή επανάληψης; Ποιες είναι οι διάφορες (μορφές) της; Η δομή επανάληψης χρησιμοποιείται όταν μια σειρά εντολών πρέπει να εκτελεστεί σε ένα σύνολο περιπτώσεων, που έχουν κάτι

Διαβάστε περισσότερα

ΘΕΜΑ Α ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ

ΘΕΜΑ Α ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ 1ΗΣ ΣΕΛΙΔΑΣ ΘΕΜΑ Α ΑΝΑΚΕΦΑΛΑΙΩΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ Γ' ΤΑΞΗΣ ΗΜΕΡΗΣΙΟΥ ΓΕΝΙΚΟΥ ΛΥΚΕΙΟΥ ΠΕΜΠΤΗ 26 ΑΠΡΙΛΙΟΥ 2012 ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΕΧΝΟΛΟΓΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ (ΚΥΚΛΟΥ

Διαβάστε περισσότερα

ΔΙΑΓΩΝΙΣΜΑ ΠΡΟΣΟΜΟΙΩΣΗΣ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ

ΔΙΑΓΩΝΙΣΜΑ ΠΡΟΣΟΜΟΙΩΣΗΣ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΔΙΑΓΩΝΙΣΜΑ ΠΡΟΣΟΜΟΙΩΣΗΣ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΘΕΜΑ 1 (Α) Σημειώστε δίπλα σε κάθε πρόταση «Σ» ή «Λ» εφόσον είναι σωστή ή λανθασμένη αντίστοιχα. 1. Τα συντακτικά λάθη ενός προγράμματος

Διαβάστε περισσότερα

Διάλεξη 15: Αναδρομή (Recursion) Διδάσκων: Παναγιώτης Ανδρέου

Διάλεξη 15: Αναδρομή (Recursion) Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 15: Αναδρομή (Recursion) Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Η έννοια της αναδρομής Μη αναδρομικός / Αναδρομικός Ορισμός Συναρτήσεων Παραδείγματα Ανάδρομης Αφαίρεση της Αναδρομής

Διαβάστε περισσότερα

Αναδρομή. Τι γνωρίζετε για τη δυνατότητα «κλήσης» αλγορίθμων; Τι νόημα έχει;

Αναδρομή. Τι γνωρίζετε για τη δυνατότητα «κλήσης» αλγορίθμων; Τι νόημα έχει; ΜΑΘΗΜΑ 7 Κλήση αλγορίθμου από αλγόριθμο Αναδρομή Σ χ ο λ ι κ ο Β ι β λ ι ο ΥΠΟΚΕΦΑΛΑΙΟ 2.2.7: ΕΝΤΟΛΕΣ ΚΑΙ ΔΟΜΕΣ ΑΛΓΟΡΙΘΜΟΥ ΠΑΡΑΓΡΑΦΟI 2.2.7.5: Κλήση αλγορίθμου από αλγόριθμο 2.2.7.6: Αναδρομή εισαγωγη

Διαβάστε περισσότερα

2 ΟΥ και 8 ΟΥ ΚΕΦΑΛΑΙΟΥ

2 ΟΥ και 8 ΟΥ ΚΕΦΑΛΑΙΟΥ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ 2 ΟΥ και 8 ΟΥ ΚΕΦΑΛΑΙΟΥ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΔΟΜΗ ΕΠΑΝΑΛΗΨΗΣ 1) Πότε χρησιμοποιείται η δομή επανάληψης

Διαβάστε περισσότερα

5 ΕΙΣΑΓΩΓΗ ΣΤΗ ΘΕΩΡΙΑ ΑΛΓΟΡΙΘΜΩΝ

5 ΕΙΣΑΓΩΓΗ ΣΤΗ ΘΕΩΡΙΑ ΑΛΓΟΡΙΘΜΩΝ 5 ΕΙΣΑΓΩΓΗ ΣΤΗ ΘΕΩΡΙΑ ΑΛΓΟΡΙΘΜΩΝ 5.1 Εισαγωγή στους αλγορίθμους 5.1.1 Εισαγωγή και ορισμοί Αλγόριθμος (algorithm) είναι ένα πεπερασμένο σύνολο εντολών οι οποίες εκτελούν κάποιο ιδιαίτερο έργο. Κάθε αλγόριθμος

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ 12: Θεωρία υπολογισµών

ΚΕΦΑΛΑΙΟ 12: Θεωρία υπολογισµών ΚΕΦΑΛΑΙΟ 12: Θεωρία υπολογισµών 1 Συναρτήσεις και ο υπολογισµός τους 2 Μηχανές Turing 3 Καθολικές γλώσσες προγραµµατισµού 4 Μια µη υπολογίσιµη συνάρτηση 5 Πολυπλοκότητα προβληµάτων 1 Συναρτήσεις Μία συνάρτηση

Διαβάστε περισσότερα

Άπληστοι Αλγόριθµοι (CLR, κεφάλαιο 17)

Άπληστοι Αλγόριθµοι (CLR, κεφάλαιο 17) Άπληστοι Αλγόριθµοι (CLR, κεφάλαιο 17) Στην ενότητα αυτή θα µελετηθούν τα εξής θέµατα: Σχεδιασµός αλγορίθµων µε Άπληστους Αλγόριθµους Στοιχεία άπληστων αλγορίθµων Το πρόβληµα επιλογής εργασιών ΕΠΛ 232

Διαβάστε περισσότερα

Ν!=1*2*3* *(N-1) * N => N! = (Ν-1)! * N έτσι 55! = 54! * 55

Ν!=1*2*3* *(N-1) * N => N! = (Ν-1)! * N έτσι 55! = 54! * 55 ΑΝΑ ΡΟΜΗ- ΑΣΚΗΣΕΙΣ Μια µέθοδος είναι αναδροµική όταν καλεί τον εαυτό της και έχει µια συνθήκη τερµατισµού π.χ. το παραγοντικό ενός αριθµού Ν, µπορεί να καλεί το παραγοντικό του αριθµού Ν-1 το παραγοντικό

Διαβάστε περισσότερα

Αριθμητική εύρεση ριζών μη γραμμικών εξισώσεων

Αριθμητική εύρεση ριζών μη γραμμικών εξισώσεων Αριθμητική εύρεση ριζών μη γραμμικών εξισώσεων Με τον όρο μη γραμμικές εξισώσεις εννοούμε εξισώσεις της μορφής: f( ) 0 που προέρχονται από συναρτήσεις f () που είναι μη γραμμικές ως προς. Περιέχουν δηλαδή

Διαβάστε περισσότερα

Περιεχόμενα. Περιεχόμενα

Περιεχόμενα. Περιεχόμενα Περιεχόμενα xv Περιεχόμενα 1 Αρχές της Java... 1 1.1 Προκαταρκτικά: Κλάσεις, Τύποι και Αντικείμενα... 2 1.1.1 Βασικοί Τύποι... 5 1.1.2 Αντικείμενα... 7 1.1.3 Τύποι Enum... 14 1.2 Μέθοδοι... 15 1.3 Εκφράσεις...

Διαβάστε περισσότερα

2.1. Εντολές. 2.2. Σχόλια. 2.3. Τύποι Δεδομένων

2.1. Εντολές. 2.2. Σχόλια. 2.3. Τύποι Δεδομένων 2 Βασικές Εντολές 2.1. Εντολές Οι στην Java ακολουθούν το πρότυπο της γλώσσας C. Έτσι, κάθε εντολή που γράφουμε στη Java θα πρέπει να τελειώνει με το ερωτηματικό (;). Όπως και η C έτσι και η Java επιτρέπει

Διαβάστε περισσότερα

Αλγόριθµοι και Πολυπλοκότητα

Αλγόριθµοι και Πολυπλοκότητα Αλγόριθµοι και Πολυπλοκότητα Στην ενότητα αυτή θα µελετηθούν τα εξής θέµατα: Πρόβληµα, Στιγµιότυπο, Αλγόριθµος Εργαλεία εκτίµησης πολυπλοκότητας: οι τάξεις Ο(n), Ω(n), Θ(n) Ανάλυση Πολυπλοκότητας Αλγορίθµων

Διαβάστε περισσότερα

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος 2001-2002 ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #4

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος 2001-2002 ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #4 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος 2001-2002 ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #4 «Προγραμματισμός Η/Υ» - Τετράδιο Εργαστηρίου #4 2 Γενικά Στο Τετράδιο #4 του Εργαστηρίου θα αναφερθούμε σε θέματα διαχείρισης πινάκων

Διαβάστε περισσότερα

Λυσεις προβλημάτων τελικής φάσης Παγκύπριου Μαθητικού Διαγωνισμού Πληροφορικής 2007

Λυσεις προβλημάτων τελικής φάσης Παγκύπριου Μαθητικού Διαγωνισμού Πληροφορικής 2007 Λυσεις προβλημάτων τελικής φάσης Παγκύπριου Μαθητικού Διαγωνισμού Πληροφορικής 2007 Πρόβλημα 1 Το πρώτο πρόβλημα λύνεται με τη μέθοδο του Δυναμικού Προγραμματισμού. Για να το λύσουμε με Δυναμικό Προγραμματισμό

Διαβάστε περισσότερα

Αριθμητικές Μέθοδοι σε Προγραμματιστικό Περιβάλλον

Αριθμητικές Μέθοδοι σε Προγραμματιστικό Περιβάλλον Τμήμα Μηχανικών Πληροφορικής Αριθμητικές Μέθοδοι σε Προγραμματιστικό Περιβάλλον Δρ. Δημήτρης Βαρσάμης Επίκουρος Καθηγητής Οκτώβριος 2014 Δρ. Δημήτρης Βαρσάμης Οκτώβριος 2014 1 / 42 Αριθμητικές Μέθοδοι

Διαβάστε περισσότερα

Δομές δεδομένων (2) Αλγόριθμοι

Δομές δεδομένων (2) Αλγόριθμοι Δομές δεδομένων (2) Αλγόριθμοι Παράγωγοι τύποι (struct) σύνοψη προηγουμένων Πίνακες: πολλές μεταβλητές ίδιου τύπου Παράγωγοι τύποι ή Δομές (struct): ομαδοποίηση μεταβλητών διαφορετικού τύπου struct Student

Διαβάστε περισσότερα

Εισαγωγή στον Προγραμματισμό

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό Αριθμητική Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2012-2013 Δεύτερο Πρόγραμμα 1 / * Second Simple Program : add 2 numbers * / 2

Διαβάστε περισσότερα

Δομές Δεδομένων (Data Structures)

Δομές Δεδομένων (Data Structures) Δομές Δεδομένων (Data Structures) Ανάλυση - Απόδοση Αλγορίθμων Έλεγχος Αλγορίθμων. Απόδοση Προγραμμάτων. Χωρική/Χρονική Πολυπλοκότητα. Ασυμπτωτικός Συμβολισμός. Παραδείγματα. Αλγόριθμοι: Βασικές Έννοιες

Διαβάστε περισσότερα

Δομές Δεδομένων και Αλγόριθμοι

Δομές Δεδομένων και Αλγόριθμοι Δομές Δεδομένων και Αλγόριθμοι Χρήστος Γκόγκος ΤΕΙ Ηπείρου, Τμήμα Μηχανικών Πληροφορικής ΤΕ Χειμερινό Εξάμηνο 2014-2015 (Παρουσίαση 5) 1 / 17 Απόδοση προγραμμάτων Συχνά χρειάζεται να εκτιμηθεί η απόδοση

Διαβάστε περισσότερα

Πίνακες. FORTRAN και Αντικειμενοστραφής Προγραμματισμός

Πίνακες. FORTRAN και Αντικειμενοστραφής Προγραμματισμός Πίνακες (i) Δομημένη μεταβλητή: αποθηκεύει μια συλλογή από τιμές δεδομένων Πίνακας (array): δομημένη μεταβλητή που αποθηκεύει πολλές τιμές του ίδιου τύπου INTEGER:: pinakas(100)ή INTEGER, DIMENSION(100)::pinakas

Διαβάστε περισσότερα

Δομές Δεδομένων. Καθηγήτρια Μαρία Σατρατζέμη. Τμήμα Εφαρμοσμένης Πληροφορικής. Δομές Δεδομένων. Τμήμα Εφαρμοσμένης Πληροφορικής

Δομές Δεδομένων. Καθηγήτρια Μαρία Σατρατζέμη. Τμήμα Εφαρμοσμένης Πληροφορικής. Δομές Δεδομένων. Τμήμα Εφαρμοσμένης Πληροφορικής Ενότητα 8: Γραμμική Αναζήτηση και Δυαδική Αναζήτηση-Εισαγωγή στα Δέντρα και Δυαδικά Δέντρα-Δυαδικά Δέντρα Αναζήτησης & Υλοποίηση ΔΔΑ με δείκτες Καθηγήτρια Μαρία Σατρατζέμη Άδειες Χρήσης Το παρόν εκπαιδευτικό

Διαβάστε περισσότερα

Διάλεξη 3η: Τύποι Μεταβλητών, Τελεστές, Είσοδος/Έξοδος

Διάλεξη 3η: Τύποι Μεταβλητών, Τελεστές, Είσοδος/Έξοδος Διάλεξη 3η: Τύποι Μεταβλητών, Τελεστές, Είσοδος/Έξοδος Τμήμα Επιστήμης Υπολογιστών, Πανεπιστήμιο Κρήτης Εισαγωγή στην Επιστήμη Υπολογιστών Βασίζεται σε διαφάνειες του Κ Παναγιωτάκη Πρατικάκης (CSD) Μεταβλητές,

Διαβάστε περισσότερα

υναμικός Προγραμματισμός

υναμικός Προγραμματισμός υναμικός Προγραμματισμός ιδάσκοντες: Σ. Ζάχος,. Φωτάκης Επιμέλεια διαφανειών:. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο ιωνυμικοί Συντελεστές ιωνυμικοί

Διαβάστε περισσότερα

Εισαγωγή στον Προγραμματισμό

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό Ενότητα 5 Δομές Ελέγχου Πανεπιστήμιο Αιγαίου Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων Δομές Ελέγχου Οι Boehm και Jacopini απέδειξαν ότι οποιοσδήποτε αλγόριθμος

Διαβάστε περισσότερα

Θεώρημα Βolzano. Κατηγορία 1 η. 11.1 Δίνεται η συνάρτηση:

Θεώρημα Βolzano. Κατηγορία 1 η. 11.1 Δίνεται η συνάρτηση: Κατηγορία η Θεώρημα Βolzano Τρόπος αντιμετώπισης:. Όταν μας ζητούν να εξετάσουμε αν ισχύει το θεώρημα Bolzano για μια συνάρτηση f σε ένα διάστημα [, ] τότε: Εξετάζουμε την συνέχεια της f στο [, ] (αν η

Διαβάστε περισσότερα

Δομές Δεδομένων και Αλγόριθμοι

Δομές Δεδομένων και Αλγόριθμοι Δομές Δεδομένων και Αλγόριθμοι Χρήστος Γκόγκος ΤΕΙ Ηπείρου Χειμερινό Εξάμηνο 2014-2015 Παρουσίαση 22 Counting sort, bucket sort και radix sort 1 / 16 Ιδιότητες αλγορίθμων ταξινόμησης ευστάθεια (stable

Διαβάστε περισσότερα

Προγραμματισμός Ι. Δυναμική Διαχείριση Μνήμης. Δημήτρης Μιχαήλ. Ακ. Έτος 2011-2012. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Προγραμματισμός Ι. Δυναμική Διαχείριση Μνήμης. Δημήτρης Μιχαήλ. Ακ. Έτος 2011-2012. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Προγραμματισμός Ι Δυναμική Διαχείριση Μνήμης Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2011-2012 Ανάγκη για Δυναμική Μνήμη Στατική Μνήμη Μέχρι τώρα χρησιμοποιούσαμε

Διαβάστε περισσότερα

ΕΡΓΑΣΤΗΡΙΟ 6: Συναρτήσεις και Αναδρομή

ΕΡΓΑΣΤΗΡΙΟ 6: Συναρτήσεις και Αναδρομή ΕΡΓΑΣΤΗΡΙΟ 6: Συναρτήσεις και Αναδρομή Στο εργαστήριο αυτό θα μάθουμε για τη χρήση συναρτήσεων με σκοπό την κατασκευή αυτόνομων τμημάτων προγραμμάτων που υλοποιούν μία συγκεκριμένη διαδικασία, τα οποία

Διαβάστε περισσότερα

ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Πανεπιστήμιο Δυτικής Μακεδονίας Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Πίνακες Πίνακες (arrays) Πολύ συχνά είναι απαραίτητο το πρόγραμμα μας να χειριστεί

Διαβάστε περισσότερα

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΔΙΑΓΩΝΙΣΜΑ ΠΡΟΣΟΜΟΙΩΣΗΣ Γ ΛΥΚΕΙΟΥ - 02/05/2014 ΘΕΜΑ Α Α1. Έστω ο παρακάτω αλγόριθμος ταξινόμησης: Για κ από.. μέχρι 19 Για λ από 19 μέχρι κ με_βήμα -1

Διαβάστε περισσότερα

Δομές Δεδομένων. Λουκάς Γεωργιάδης. http://www.cs.uoi.gr/~loukas/courses/data_structures/ email: loukas@cs.uoi.gr

Δομές Δεδομένων. Λουκάς Γεωργιάδης. http://www.cs.uoi.gr/~loukas/courses/data_structures/ email: loukas@cs.uoi.gr Δομές Δεδομένων http://www.cs.uoi.gr/~loukas/courses/data_structures/ Λουκάς Γεωργιάδης email: loukas@cs.uoi.gr Αλγόριθμος: Μέθοδος για την επίλυση ενός προβλήματος Δεδομένα: Σύνολο από πληροφορίες που

Διαβάστε περισσότερα

2 ο ΦΥΛΛΑΔΙΟ ΑΣΚΗΣΕΩΝ ΕΙΣΑΓΩΓΗ ΣΤΗ ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ C

2 ο ΦΥΛΛΑΔΙΟ ΑΣΚΗΣΕΩΝ ΕΙΣΑΓΩΓΗ ΣΤΗ ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ C Δημοκρίτειο Πανεπιστήμιο Θράκης Πολυτεχνική Σχολή Τμήμα Μηχανικών Παραγωγής & Διοίκησης Ακαδ. έτος 2015-2016 Τομέας Συστημάτων Παραγωγής Εξάμηνο A Αναπληρωτής Καθηγητής Στέφανος Δ. Κατσαβούνης 20 ΟΚΤ 2015

Διαβάστε περισσότερα

ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Πανεπιστήμιο Δυτικής Μακεδονίας Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Διαμόρφωση Ελέγχου Ροής Προγράμματος Δομημένος Προγραμματισμός Ο πιο απλός και συνηθισμένος

Διαβάστε περισσότερα

ΟΜΑΔΑ Ε ΓΕΩΡΓΙΟΥ ΦΩΤΕΙΝΗ ΗΛΙΟΥΔΗ ΑΦΡΟΔΙΤΗ ΜΕΤΑΛΛΙΔΟΥ ΧΡΥΣΗ ΝΙΖΑΜΗΣ ΑΛΕΞΑΝΔΡΟΣ ΤΖΗΚΑΛΑΓΙΑΣ ΑΝΔΡΕΑΣ ΤΡΙΓΚΑΣ ΑΓΓΕΛΟΣ

ΟΜΑΔΑ Ε ΓΕΩΡΓΙΟΥ ΦΩΤΕΙΝΗ ΗΛΙΟΥΔΗ ΑΦΡΟΔΙΤΗ ΜΕΤΑΛΛΙΔΟΥ ΧΡΥΣΗ ΝΙΖΑΜΗΣ ΑΛΕΞΑΝΔΡΟΣ ΤΖΗΚΑΛΑΓΙΑΣ ΑΝΔΡΕΑΣ ΤΡΙΓΚΑΣ ΑΓΓΕΛΟΣ ΟΜΑΔΑ Ε ΓΕΩΡΓΙΟΥ ΦΩΤΕΙΝΗ ΗΛΙΟΥΔΗ ΑΦΡΟΔΙΤΗ ΜΕΤΑΛΛΙΔΟΥ ΧΡΥΣΗ ΝΙΖΑΜΗΣ ΑΛΕΞΑΝΔΡΟΣ ΤΖΗΚΑΛΑΓΙΑΣ ΑΝΔΡΕΑΣ ΤΡΙΓΚΑΣ ΑΓΓΕΛΟΣ Η ΔΙΔΑΣΚΑΛΙΑ ΤΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΣΤΟ ΛΥΚΕΙΟ Εισαγωγή Η μεγάλη ανάπτυξη και ο ρόλος που

Διαβάστε περισσότερα

ΜΑΘΗΜΑΤΙΚΑ Γ Γυμνασίου

ΜΑΘΗΜΑΤΙΚΑ Γ Γυμνασίου ΜΑΘΗΜΑΤΙΚΑ Γ Γυμνασίου Κεφάλαιο ο Αλγεβρικές Παραστάσεις ΛΕΜΟΝΙΑ ΜΠΟΥΤΣΚΟΥ Γυμνάσιο Αμυνταίου ΜΑΘΗΜΑ Α. Πράξεις με πραγματικούς αριθμούς ΑΣΚΗΣΕΙΣ ) ) Να συμπληρώσετε τα κενά ώστε στην κατακόρυφη στήλη

Διαβάστε περισσότερα

Προγραμματισμός Η/Υ Ι (Χρήση της C) 6 η Θεωρία ΜΟΝΟΔΙΑΣΤΑΤΟΙ ΠΙΝΑΚΕΣ

Προγραμματισμός Η/Υ Ι (Χρήση της C) 6 η Θεωρία ΜΟΝΟΔΙΑΣΤΑΤΟΙ ΠΙΝΑΚΕΣ Προγραμματισμός Η/Υ Ι (Χρήση της C) 6 η Θεωρία ΜΟΝΟΔΙΑΣΤΑΤΟΙ ΠΙΝΑΚΕΣ Σκοπός του μαθήματος Σκοπός του παρόντος μαθήματος είναι να μάθετε να κάνετε εισαγωγή δεδομένων σε πίνακες και περαιτέρω επεξεργασία

Διαβάστε περισσότερα

Δομές Δεδομένων και Αλγόριθμοι

Δομές Δεδομένων και Αλγόριθμοι Δομές Δεδομένων και Αλγόριθμοι Χρήστος Γκόγκος ΤΕΙ Ηπείρου Χειμερινό Εξάμηνο 2014-2015 Παρουσίαση 19 Hashing - Κατακερματισμός 1 / 23 Πίνακες απευθείας πρόσβασης (Direct Access Tables) Οι πίνακες απευθείας

Διαβάστε περισσότερα

ΒΑΣΙΚΟΙ ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ

ΒΑΣΙΚΟΙ ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ Η ΓΛΩΣΣΑ PASCAL ΒΑΣΙΚΟΙ ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ Απλοί ή στοιχειώδης Τ.Δ. Ακέραιος τύπος Πραγματικός τύπος Λογικός τύπος Χαρακτήρας Σύνθετοι Τ.Δ. Αλφαριθμητικός 1. Ακέραιος (integer) Εύρος: -32768 έως 32767 Δήλωση

Διαβάστε περισσότερα

Διάλεξη 06: Συνδεδεμένες Λίστες & Εφαρμογές Στοιβών και Ουρών

Διάλεξη 06: Συνδεδεμένες Λίστες & Εφαρμογές Στοιβών και Ουρών ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 1 Διάλεξη 06: Συνδεδεμένες Λίστες & Εφαρμογές Στοιβών και Ουρών Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Υλοποίηση ΑΤΔ με Συνδεδεμένες Λίστες -

Διαβάστε περισσότερα

ΑΡΙΘΜΗΤΙΚΗ ΠΡΟΟΔΟΣ. Σύμφωνα με τα παραπάνω, για μια αριθμητική πρόοδο που έχει πρώτο όρο τον ...

ΑΡΙΘΜΗΤΙΚΗ ΠΡΟΟΔΟΣ. Σύμφωνα με τα παραπάνω, για μια αριθμητική πρόοδο που έχει πρώτο όρο τον ... ΑΡΙΘΜΗΤΙΚΗ ΠΡΟΟΔΟΣ Ορισμός : Μία ακολουθία ονομάζεται αριθμητική πρόοδος, όταν ο κάθε όρος της, δημιουργείται από τον προηγούμενο με πρόσθεση του ίδιου πάντοτε αριθμού. Ο σταθερός αριθμός που προστίθεται

Διαβάστε περισσότερα

Κεφάλαιο 8.7. Πολυδιάστατοι Πίνακες (Διάλεξη 19)

Κεφάλαιο 8.7. Πολυδιάστατοι Πίνακες (Διάλεξη 19) Κεφάλαιο 8.7 Πολυδιάστατοι Πίνακες (Διάλεξη 19) Πολυδιάστατοι πίνακες Μέχρι τώρα μιλούσαμε για Μονοδιάστατους Πίνακες. ή π.χ. int age[5]= {31,28,31,30,31; για Παράλληλους πίνακες, π.χ. int id[5] = {1029,1132,1031,9991,1513;

Διαβάστε περισσότερα

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΕΧΝΟΛΟΓΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΕΧΝΟΛΟΓΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΕΧΝΟΛΟΓΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ ΘΕΜΑ 1ο Α. Να γράψετε στο τετράδιό σας τον αριθμό καθεμιάς από τις παρακάτω προτάσεις 1-5 και δίπλα τη λέξη Σωστό, αν είναι σωστή,

Διαβάστε περισσότερα

Εργαστήριο 2: Πίνακες

Εργαστήριο 2: Πίνακες Εργαστήριο 2: Πίνακες Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Επεξεργασία Πινάκων - Υλοποίηση της Δυαδικής Αναζήτησης σε πίνακες - Υλοποίηση της Ταξινόμησης με Επιλογής σε πίνακες ΕΠΛ035

Διαβάστε περισσότερα

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ Κεφάλαιο 3 ο

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ Κεφάλαιο 3 ο 3.07 Να γραφεί αλγόριθμος που θα δημιουργεί πίνακα 100 θέσεων στον οποίο τα περιττά στοιχεία του θα έχουν την τιμή 1 και τα άρτια την τιμή 0. ΛΥΣΗ Θα δημιουργήσω άσκηση βάση κάποιων κριτηρίων. Δηλ. δεν

Διαβάστε περισσότερα

Συνήθεις διαφορικές εξισώσεις προβλήματα οριακών τιμών

Συνήθεις διαφορικές εξισώσεις προβλήματα οριακών τιμών Συνήθεις διαφορικές εξισώσεις προβλήματα οριακών τιμών Οι παρούσες σημειώσεις αποτελούν βοήθημα στο μάθημα Αριθμητικές Μέθοδοι του 5 ου εξαμήνου του ΤΜΜ ημήτρης Βαλουγεώργης Καθηγητής Εργαστήριο Φυσικών

Διαβάστε περισσότερα

Ελαφρύτερος και βαρύτερος Αλγόριθμοι ταξινόμησης

Ελαφρύτερος και βαρύτερος Αλγόριθμοι ταξινόμησης 7η Δραστηριότητα Ελαφρύτερος και βαρύτερος Αλγόριθμοι ταξινόμησης Περίληψη Οι υπολογιστές χρησιμοποιούνται συχνά για την ταξινόμηση καταλόγων, όπως για παράδειγμα, ονόματα σε αλφαβητική σειρά, ραντεβού

Διαβάστε περισσότερα

ΓΙΑΝΝΗΣ ΖΑΧΑΡΟΠΟΥΛΟΣ. Γρήγορα τεστ. Μαθηματικά ΣT Δημοτικού ΕΚΔΟΣΕΙΣ ΠΑΠΑΔΟΠΟΥΛΟΣ

ΓΙΑΝΝΗΣ ΖΑΧΑΡΟΠΟΥΛΟΣ. Γρήγορα τεστ. Μαθηματικά ΣT Δημοτικού ΕΚΔΟΣΕΙΣ ΠΑΠΑΔΟΠΟΥΛΟΣ ΓΙΑΝΝΗΣ ΖΑΧΑΡΟΠΟΥΛΟΣ Γρήγορα τεστ Μαθηματικά ΣT Δημοτικού 1 ΕΚΔΟΣΕΙΣ ΠΑΠΑΔΟΠΟΥΛΟΣ ΓΡΗΓΟΡΑ ΤΕΣΤ ΜΑΘΗΜΑΤΙΚΩΝ - ΣΤ Δημοτικού No 1 Γιάννης Ζαχαρόπουλος Διόρθωση: Αντωνία Κιλεσσοπούλου 201, Εκδόσεις Κυριάκος

Διαβάστε περισσότερα

ΜΑΘΗΜΑΤΑ ΜΑΘΗΜΑΤΙΚΑ ΘΕΤΙΚΟΥ ΠΡΟΣΑΝΑΤΟΛΙΣΜΟΥ Β ΛΥΚΕΙΟΥ

ΜΑΘΗΜΑΤΑ ΜΑΘΗΜΑΤΙΚΑ ΘΕΤΙΚΟΥ ΠΡΟΣΑΝΑΤΟΛΙΣΜΟΥ Β ΛΥΚΕΙΟΥ ΜΑΘΗΜΑΤΑ ΜΑΘΗΜΑΤΙΚΑ ΘΕΤΙΚΟΥ ΠΡΟΣΑΝΑΤΟΛΙΣΜΟΥ Β ΛΥΚΕΙΟΥ ΚΕΦΑΛΑΙΟ 1 ο : ΔΙΑΝΥΣΜΑΤΑ 1 ΜΑΘΗΜΑ 1 ο +2 ο ΕΝΝΟΙΑ ΔΙΑΝΥΣΜΑΤΟΣ Διάνυσμα ορίζεται ένα προσανατολισμένο ευθύγραμμο τμήμα, δηλαδή ένα ευθύγραμμο τμήμα

Διαβάστε περισσότερα

Περιληπτικά, τα βήματα που ακολουθούμε γενικά είναι τα εξής:

Περιληπτικά, τα βήματα που ακολουθούμε γενικά είναι τα εξής: Αυτό που πρέπει να θυμόμαστε, για να μη στεναχωριόμαστε, είναι πως τόσο στις εξισώσεις, όσο και στις ανισώσεις 1ου βαθμού, που θέλουμε να λύσουμε, ακολουθούμε ακριβώς τα ίδια βήματα! Εκεί που πρεπει να

Διαβάστε περισσότερα

Δυναμικά Πολυεπίπεδα Ευρετήρια (Β-δένδρα) Μ.Χατζόπουλος 1

Δυναμικά Πολυεπίπεδα Ευρετήρια (Β-δένδρα) Μ.Χατζόπουλος 1 Δυναμικά Πολυεπίπεδα Ευρετήρια (Β-δένδρα) Μ.Χατζόπουλος 1 Α Β Γ Δ Ε Ζ Η Θ Ι Κ Λ Μ.Χατζόπουλος 2 Δένδρο αναζήτησης είναι ένας ειδικός τύπος δένδρου που χρησιμοποιείται για να καθοδηγήσει την αναζήτηση μιας

Διαβάστε περισσότερα

K15 Ψηφιακή Λογική Σχεδίαση 7-8: Ανάλυση και σύνθεση συνδυαστικών λογικών κυκλωμάτων

K15 Ψηφιακή Λογική Σχεδίαση 7-8: Ανάλυση και σύνθεση συνδυαστικών λογικών κυκλωμάτων K15 Ψηφιακή Λογική Σχεδίαση 7-8: Ανάλυση και σύνθεση συνδυαστικών λογικών κυκλωμάτων Γιάννης Λιαπέρδος TEI Πελοποννήσου Σχολή Τεχνολογικών Εφαρμογών Τμήμα Μηχανικών Πληροφορικής ΤΕ Η έννοια του συνδυαστικού

Διαβάστε περισσότερα

Ανάπτυξη Μεγάλων Εφαρµογών στη Γλώσσα C (2)

Ανάπτυξη Μεγάλων Εφαρµογών στη Γλώσσα C (2) Ανάπτυξη Μεγάλων Εφαρµογών στη Γλώσσα C (2) Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: Οργάνωση Προγράµµατος Header Files Μετάφραση και σύνδεση αρχείων προγράµµατος ΕΠΛ 132 Αρχές Προγραµµατισµού

Διαβάστε περισσότερα

(Γραμμικές) Αναδρομικές Σχέσεις

(Γραμμικές) Αναδρομικές Σχέσεις (Γραμμικές) Αναδρομικές Σχέσεις ιδάσκοντες: Φ. Αφράτη,. Φωτάκης Επιμέλεια διαφανειών:. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Αναδρομικές Σχέσεις Αναπαράσταση

Διαβάστε περισσότερα

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΦΡΟΝΤΙΣΤΗΡΙΟ ΑΛΓΟΡΙΘΜΩΝ ΒΟΗΘΟΣ: ΒΑΓΓΕΛΗΣ ΔΟΥΡΟΣ

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΦΡΟΝΤΙΣΤΗΡΙΟ ΑΛΓΟΡΙΘΜΩΝ ΒΟΗΘΟΣ: ΒΑΓΓΕΛΗΣ ΔΟΥΡΟΣ 1 ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΦΡΟΝΤΙΣΤΗΡΙΟ ΑΛΓΟΡΙΘΜΩΝ ΒΟΗΘΟΣ: ΒΑΓΓΕΛΗΣ ΔΟΥΡΟΣ Φροντιστήριο #10: Αλγόριθμοι Διαίρει & Βασίλευε: Master Theorem, Αλγόριθμοι Ταξινόμησης, Πιθανοτικός

Διαβάστε περισσότερα

Γ.1 Να γράψετε στο τετράδιό σας τους αριθµούς 1,2,3,4 από τη Στήλη Α και δίπλα το γράµµα α, β της Στήλης Β που δίνει το σωστό χαρακτηρισµό.

Γ.1 Να γράψετε στο τετράδιό σας τους αριθµούς 1,2,3,4 από τη Στήλη Α και δίπλα το γράµµα α, β της Στήλης Β που δίνει το σωστό χαρακτηρισµό. ΜΑΘΗΜΑ: ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΘΕΜΑ 1ο Α. Να γράψετε στο τετράδιό σας τον αριθµό καθεµιάς από τις παρακάτω προτάσεις 1 5 και δίπλα τη λέξη Σωστό, αν η πρόταση είναι σωστή, ή

Διαβάστε περισσότερα

Δρομολόγηση Και Πολύχρωματισμός. Γραφημάτων ΚΑΡΑΓΕΩΡΓΟΣ ΤΙΜΟΘΕΟΣ Α.Μ 1026

Δρομολόγηση Και Πολύχρωματισμός. Γραφημάτων ΚΑΡΑΓΕΩΡΓΟΣ ΤΙΜΟΘΕΟΣ Α.Μ 1026 Δρομολόγηση Και Πολύχρωματισμός Μονοπατιών Γραφημάτων ΚΑΡΑΓΕΩΡΓΟΣ ΤΙΜΟΘΕΟΣ Α.Μ 1026 Εισαγωγή. Το πρόβλημα με το οποίο θα ασχοληθούμε εδώ είναι γνωστό σαν: Δρομολόγηση και Πολύ-χρωματισμός Διαδρομών (Routing

Διαβάστε περισσότερα

ΜΙΓΑΔΙΚΟΙ ΑΡΙΘΜΟΙ ΕΠΙΜΕΛΕΙΑ : ΑΥΓΕΡΙΝΟΣ ΒΑΣΙΛΗΣ

ΜΙΓΑΔΙΚΟΙ ΑΡΙΘΜΟΙ ΕΠΙΜΕΛΕΙΑ : ΑΥΓΕΡΙΝΟΣ ΒΑΣΙΛΗΣ ΜΙΓΑΔΙΚΟΙ ΑΡΙΘΜΟΙ ΕΠΙΜΕΛΕΙΑ : ΑΥΓΕΡΙΝΟΣ ΒΑΣΙΛΗΣ ΕΥΡΙΠΙΔΟΥ 80 ΝΙΚΑΙΑ ΝΕΑΠΟΛΗ ΤΗΛΕΦΩΝΟ 0965897 ΔΙΕΥΘΥΝΣΗ ΣΠΟΥΔΩΝ ΒΡΟΥΤΣΗ ΕΥΑΓΓΕΛΙΑ ΜΠΟΥΡΝΟΥΤΣΟΥ ΚΩΝ/ΝΑ ΑΥΓΕΡΙΝΟΣ ΒΑΣΙΛΗΣ ΜΙΓΑΔΙΚΟΙ ΑΡΙΘΜΟΙ Η έννοια του μιγαδικού

Διαβάστε περισσότερα

ΠΡΟΣ: Τηλέφωνο: 210-3443422 Ινστιτούτο Εκπαιδευτικής Πολιτικής ΚΟΙΝ.:

ΠΡΟΣ: Τηλέφωνο: 210-3443422 Ινστιτούτο Εκπαιδευτικής Πολιτικής ΚΟΙΝ.: ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ, ΕΡΕΥΝΑΣ ΚΑΙ ΘΡΗΣΚΕΥΜΑΤΩΝ ----- Βαθμός Ασφαλείας: Να διατηρηθεί μέχρι: Βαθ. Προτεραιότητας: ΓΕΝΙΚΗ ΔΙΕΥΘΥΝΣΗ ΣΠΟΥΔΩΝ Π/ΘΜΙΑΣ ΚΑΙ Δ/ΘΜΙΑΣ ΕΚΠΑΙΔΕΥΣΗΣ ΔΙΕΥΘΥΝΣΗ ΣΠΟΥΔΩΝ,

Διαβάστε περισσότερα

Α' Εξάμηνο ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

Α' Εξάμηνο ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Α' Εξάμηνο ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Εργαστήριο 9η εβδομάδα. Κοζάνη, 2 Δεκεμβρίου 2008. Δίνονται παραδείγματα που αποσαφηνίζουν και συμπληρώνουν όσα αναφέρθηκαν στο μάθημα σχετικά με τις δομές

Διαβάστε περισσότερα

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ ΣΧΟΛΙΚΟΥ ΕΤΟΥΣ 2013-2014

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ ΣΧΟΛΙΚΟΥ ΕΤΟΥΣ 2013-2014 ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ ΣΧΟΛΙΚΟΥ ΕΤΟΥΣ 2013-2014 Επιμέλεια: Ομάδα Διαγωνισμάτων από το Στέκι των Πληροφορικών Θέμα Α A1. Να γράψετε στο τετράδιό σας τους

Διαβάστε περισσότερα

Παντελής Μπουμπούλης, M.Sc., Ph.D. σελ. 2 math-gr.blogspot.com, bouboulis.mysch.gr

Παντελής Μπουμπούλης, M.Sc., Ph.D. σελ. 2 math-gr.blogspot.com, bouboulis.mysch.gr VI Ολοκληρώματα Παντελής Μπουμπούλης, MSc, PhD σελ mth-grlogspotcom, ououlismyschgr ΜΕΡΟΣ Αρχική Συνάρτηση Ορισμός Έστω f μια συνάρτηση ορισμένη σε ένα διάστημα Δ Αρχική συνάρτηση ή παράγουσα της στο Δ

Διαβάστε περισσότερα

ΣΥΣΤΗΜΑΤΑ. 6.1 ΓΡΑΜΜΙΚΑ ΣΥΣΤΗΜΑΤΑ (Επαναλήψεις-Συμπληρώσεις)

ΣΥΣΤΗΜΑΤΑ. 6.1 ΓΡΑΜΜΙΚΑ ΣΥΣΤΗΜΑΤΑ (Επαναλήψεις-Συμπληρώσεις) 6 ΣΥΣΤΗΜΑΤΑ 6.1 ΓΡΑΜΜΙΚΑ ΣΥΣΤΗΜΑΤΑ (Επαναλήψεις-Συμπληρώσεις) Η εξίσωση αx βy γ Στο Γυμνάσιο διαπιστώσαμε με την βοήθεια παραδειγμάτων ότι η εξίσωση αx βy γ, με α 0 ή β 0, που λέγεται γραμμική εξίσωση,

Διαβάστε περισσότερα

Κεφάλαιο 5ο: Εντολές Επανάληψης

Κεφάλαιο 5ο: Εντολές Επανάληψης Χρήστος Τσαγγάρης ΕΕ ΙΠ Τµήµατος Μαθηµατικών, Πανεπιστηµίου Αιγαίου Κεφάλαιο 5ο: Εντολές Επανάληψης Η διαδικασία της επανάληψης είναι ιδιαίτερη συχνή, αφού πλήθος προβληµάτων µπορούν να επιλυθούν µε κατάλληλες

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ 1ο 3ο. ΚΕΦΑΛΑΙΟ 5ο 6ο. ΚΕΦΑΛΑΙΟ 7ο. Δομημένος Προγραμματισμός - Γενικές Ασκήσεις Επανάληψης

ΚΕΦΑΛΑΙΟ 1ο 3ο. ΚΕΦΑΛΑΙΟ 5ο 6ο. ΚΕΦΑΛΑΙΟ 7ο. Δομημένος Προγραμματισμός - Γενικές Ασκήσεις Επανάληψης ΚΕΦΑΛΑΙΟ 1ο 3ο 1. Συμπληρώστε τα κενά με τη λέξη που λείπει. α. Ένα πρόβλημα το χωρίζουμε σε άλλα απλούστερα, όταν είναι ή όταν έχει τρόπο επίλυσης. β. Η επίλυση ενός προβλήματος προϋποθέτει την του. γ.

Διαβάστε περισσότερα

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 7 Ο. Αριθμητικές πράξεις Τυχαίοι αριθμοί Εφαρμογές σε προβλήματα ΣΙΝΑΤΚΑΣ Ι. ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ 2010-11 1

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 7 Ο. Αριθμητικές πράξεις Τυχαίοι αριθμοί Εφαρμογές σε προβλήματα ΣΙΝΑΤΚΑΣ Ι. ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ 2010-11 1 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 7 Ο Αριθμητικές πράξεις Τυχαίοι αριθμοί Εφαρμογές σε προβλήματα ΣΙΝΑΤΚΑΣ Ι. ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ 2010-11 1 Εισαγωγή Οι αριθμητικές πράξεις που εκτελούνται στον υπολογιστή αποτελούν το

Διαβάστε περισσότερα

Συναρτήσεις Όρια Συνέχεια

Συναρτήσεις Όρια Συνέχεια Κωνσταντίνος Παπασταματίου Μαθηματικά Γ Λυκείου Κατεύθυνσης Συναρτήσεις Όρια Συνέχεια Συνοπτική Θεωρία Μεθοδολογίες Λυμένα Παραδείγματα Επιμέλεια: Μαθηματικός Φροντιστήριο Μ.Ε. «ΑΙΧΜΗ» Κ. Καρτάλη 8 (με

Διαβάστε περισσότερα

Αλγόριθμοι και Πολυπλοκότητα

Αλγόριθμοι και Πολυπλοκότητα Αλγόριθμοι και Πολυπλοκότητα Ροή Δικτύου Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Μοντελοποίηση Δικτύων Μεταφοράς Τα γραφήματα χρησιμοποιούνται συχνά για την μοντελοποίηση

Διαβάστε περισσότερα

Διδάσκων: Παναγιώτης Ανδρέου

Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 12: Δέντρα ΙΙ -Δυαδικά Δέντρα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Δυαδικά Δένδρα - Δυαδικά Δένδρα Αναζήτησης(ΔΔΑ) - Εύρεση Τυχαίου, Μέγιστου, Μικρότερου στοιχείου - Εισαγωγή

Διαβάστε περισσότερα

www.lazarinis.gr ΑΕΠΠ - ΗΜΕΡΗΣΙΑ ΛΥΚΕΙΑ 2011 - ΘΕΜΑΤΑ ΚΑΙ ΛΥΣΕΙΣ

www.lazarinis.gr ΑΕΠΠ - ΗΜΕΡΗΣΙΑ ΛΥΚΕΙΑ 2011 - ΘΕΜΑΤΑ ΚΑΙ ΛΥΣΕΙΣ Σελίδα 1 από 12 www.lazarinis.gr ΑΕΠΠ - ΗΜΕΡΗΣΙΑ ΛΥΚΕΙΑ 2011 - ΘΕΜΑΤΑ ΚΑΙ ΛΥΣΕΙΣ Σε συνεργασία µε τις εκδόσεις ΕΛΛΗΝΟΕΚ ΟΤΙΚΗ κυκλοφορούν τα βοηθήµατα «Ανάπτυξη Εφαρµογών σε Προγραµµατιστικό Περιβάλλον:

Διαβάστε περισσότερα

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 1 Εισαγωγή στη C. Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 1 Εισαγωγή στη C. Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Εργαστήριο 1 Εισαγωγή στη C Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr Διαδικαστικά Ιστοσελίδα μαθήματος: http://eclass.uoa.gr/courses/f30/ Υποχρεωτική παρακολούθηση: Παρασκευή 14:00 16:00 στην

Διαβάστε περισσότερα

2.3 ΜΕΤΡΟ ΜΙΓΑΔΙΚΟΥ ΑΡΙΘΜΟΥ

2.3 ΜΕΤΡΟ ΜΙΓΑΔΙΚΟΥ ΑΡΙΘΜΟΥ ΕΠΙΜΕΛΕΙΑ : ΠΑΛΑΙΟΛΟΓΟΥ ΠΑΥΛΟΣ.ptetragono.gr Σελίδα. ΜΕΤΡΟ ΜΙΓΑΔΙΚΟΥ ΑΡΙΘΜΟΥ Να βρεθεί το μέτρο των μιγαδικών :..... 0 0. 5 5 6.. 0 0. 5. 5 5 0 0 0 0 0 0 0 0 ΜΕΘΟΔΟΛΟΓΙΑ : ΜΕΤΡΟ ΜΙΓΑΔΙΚΟΥ Αν τότε. Αν χρειαστεί

Διαβάστε περισσότερα

10. Με πόσους και ποιους τρόπους μπορεί να αναπαρασταθεί ένα πρόβλημα; 11. Περιγράψτε τα τρία στάδια αντιμετώπισης ενός προβλήματος.

10. Με πόσους και ποιους τρόπους μπορεί να αναπαρασταθεί ένα πρόβλημα; 11. Περιγράψτε τα τρία στάδια αντιμετώπισης ενός προβλήματος. 1. Δώστε τον ορισμό του προβλήματος. 2. Σι εννοούμε με τον όρο επίλυση ενός προβλήματος; 3. Σο πρόβλημα του 2000. 4. Σι εννοούμε με τον όρο κατανόηση προβλήματος; 5. Σι ονομάζουμε χώρο προβλήματος; 6.

Διαβάστε περισσότερα

ΛΧ1004 Μαθηματικά για Οικονομολόγους

ΛΧ1004 Μαθηματικά για Οικονομολόγους ΛΧ1004 Μαθηματικά για Οικονομολόγους Μάθημα 1 ου Εξαμήνου 2Θ+2Φ(ΑΠ) Ι. Δημοτίκαλης, Επίκουρος Καθηγητής 1 ΤΕΙ ΚΡΗΤΗΣ-ΤΜΗΜΑ Λ&Χ: jdim@staff.teicrete.gr ΠΡΟΤΕΙΝΟΜΕΝΟ ΒΙΒΛΙΟ ΕΦΑΡΜΟΓΕΣ ΜΑΘΗΜΑΤΙΚΟΥ ΛΟΓΙΣΜΟΥ

Διαβάστε περισσότερα

Μεταθέσεις και πίνακες μεταθέσεων

Μεταθέσεις και πίνακες μεταθέσεων Παράρτημα Α Μεταθέσεις και πίνακες μεταθέσεων Το παρόν παράρτημα βασίζεται στις σελίδες 671 8 του βιβλίου: Γ. Χ. Ψαλτάκης, Κβαντικά Συστήματα Πολλών Σωματιδίων (Πανεπιστημιακές Εκδόσεις Κρήτης, Ηράκλειο,

Διαβάστε περισσότερα