Αλγόριθμοι & Προγραμματισμός

Σχετικά έγγραφα
Αλγόριθμοι & Προγραμματισμός

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

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

ΕΠΛ 003: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ

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

Προγραµµατισµός Η/Υ. Μέρος2

Πληροφορική 2. Αλγόριθμοι

Αντικειμενοστρεφής Προγραμματισμός -Python. Κ.Π. Γιαλούρης

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

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

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

Θέματα Προγραμματισμού Η/Υ

Υπολογισμός - Εντολές Επανάληψης

ΑΛΓΟΡΙΘΜΟΙ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ

Π. Σταθοπούλου ή Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7

Αρχές Προγραμματισμού Υπολογιστών

ΑΕΠΠ Ερωτήσεις θεωρίας

ΛΟΓΙΚΑ ΔΙΑΓΡΑΜΜΑΤΑ. Γ Λυκείου Κατεύθυνσης Mike Trimos

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

Κεφάλαιο 2.3: Προγραμματισμός. Επιστήμη ΗΥ Κεφ. 2.3 Καραμαούνας Πολύκαρπος

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

ΕΡΩΤΗΣΕΙΣ ΑΞΙΟΛΟΓΗΣΗΣ

Στόχοι και αντικείμενο ενότητας. Πέρασμα Πίνακα σε Συνάρτηση (συν.) Πέρασμα Πίνακα σε Συνάρτηση. #8.. Ειδικά Θέματα Αλγορίθμων

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

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

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

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

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

11/23/2014. Στόχοι. Λογισμικό Υπολογιστή

Προγραμματισμός και Εφαρμογές Υπολογιστών

Ενότητα 4: «Εισαγωγή στον Προγραμματισμό. Τα πρώτα προγράμματα σε γλώσσα C»

Προγραμματισμός Η/Υ. Προτεινόμενα θέματα εξετάσεων Εργαστήριο. Μέρος 1 ό. ΤΕΙ Λάρισας- Σχολή Τεχνολογικών Εφαρμογών Τμήμα Πολιτικών Έργων Υποδομής

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

ΕΠΛ 001: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ. Προγραμματισμός

Γλώσσες υψηλού επιπέδου Περιέχουν περισσότερες εντολές για την εκτέλεση πολύπλοκων εργασιών Τα προγράµµατα µεταφράζονται σε γλώσσα µηχανής είτε από το

Εισαγωγή στον Προγραμματισμό Μάθημα 4: Αλγόριθμοι και Γλώσσες Προγραμματισμού Δεκέμβριος 2015 Χ. Αλεξανδράκη

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

Μάριος Αγγελίδης Ενότητες βιβλίου: 2.1, 2.3, 6.1 (εκτός ύλης αλλά χρειάζεται για την συνέχεια) Ώρες διδασκαλίας: 1

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

Προβλήματα, αλγόριθμοι, ψευδοκώδικας

ΕΠΛ 003: ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΑ ΣΥΣΤΗΜΑΤΑ

Θεωρία Υπολογισμού Άρτιοι ΑΜ. Διδάσκων: Σταύρος Κολλιόπουλος. eclass.di.uoa.gr. Περιγραφή μαθήματος

Θεωρία Υπολογισμού Αρτιοι ΑΜ Διδάσκων: Σταύρος Κολλιόπουλος eclass.di.uoa.gr

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

Πληροφορική 2. Γλώσσες Προγραμματισμού

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

Κεφάλαιο 4: Συνθήκες Έλεγχου (if-else, switch) και Λογικοί τελεστές / παραστάσεις. (Διάλεξη 8)

Περιεχόµενα. Ανασκόπηση - Ορισµοί. Ο κύκλος ανάπτυξης προγράµµατος. Γλώσσες Προγραµµατισµού Ασκήσεις

Λογισµικό (Software SW) Γλώσσες

Η γλώσσα προγραμματισμού C

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

Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού

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

Προγραμματισμός Η/Υ. Ενότητα 8: Ειδικά Θέματα Αλγορίθμων

ΕΠΛ 003: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ. Προγραμματισμός

Π ρ ο γ ρ α μ μ α τ ι σ μ ό ς Β α σ ι κ έ ς έ ν ν ο ι ε ς Ι σ τ ο ρ ι κ ή α ν α δ ρ ο μ ή Η έννοια του προγράμματος Ιστορική αναδρομή

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Πληροφορική II. Ενότητα 2 : Αλγόριθμοι. Δρ. Γκόγκος Χρήστος

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

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 8 & 9 18/10/07

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

Α. unsigned int Β. double. Γ. int. unsigned char x = 1; x = x + x ; x = x * x ; x = x ^ x ; printf("%u\n", x); Β. unsigned char

ΑΕΠΠ Ερωτήσεις τύπου Σωστό-Λάθος

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

Δομημένος Προγραμματισμός (ΤΛ1006)

ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΤΜΗΜΑ ΠΟΛΙΤΙΣΜΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΣ. Διδάσκουσα Δρ Β. Καβακλή. Χειμερινό Εξάμηνο 2001

<<ΔΗΜΗΤΡΗΣ ΜΑΝΩΛΗΣ ΦΥΣΙΚΟΣ ΜCs>> 1

Η γλώσσα προγραμματισμού C

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

Τμήμα Πληροφορικής & Επικοινωνιών Δρ. Θεόδωρος Γ. Λάντζος

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

Προγραμματισμός Η/Υ. Ενότητα 4: Εντολές Επιλογής

Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL)

Εισαγωγή στις Αρχές της Επιστήμης των ΗΥ

Κεφ. 2 Θέματα Θεωρητικής Επιστήμης Υπολογιστών. Κοντογιάννης Βασίλειος ΠΕ19

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

Χαράλαμπος Καραγιαννίδης

8. Συνθήκες ελέγχου, λογικοί τελεστές

Προγραμματισμός Η/Υ (ΤΛ2007 )

ΠΛΗΡΟΦΟΡΙΚΗ ΣΤΟ ΕΝΙΑΙΟ ΛΥΚΕΙΟ

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

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

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

Δομημένος Προγραμματισμός

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

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

Στόχοι και αντικείμενο ενότητας. Προτάσεις επανάληψης. Έλεγχος ροής προγράμματος. #5.. Εντολές Επανάληψης

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

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

Αλγόριθμοι Ταξινόμησης Μέρος 1

Σύνοψη Θεωρίας ΟΡΙΣΜΟΣ ΚΑΙ ΧΑΡΑΚΤΗΡΙΣΤΙΚΑ ΑΛΓΟΡΙΘΜΩΝ

Εισαγωγή στην επιστήμη των υπολογιστών

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

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

Εισαγωγή στην Πληροφορική Προγραμματισμός-Λειτουργικά

Ενότητα 5: «Εισαγωγή στον Προγραμματισμό. Απλές ασκήσεις με γλώσσα C»

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΔΙΑΓΩΝΙΣΜΑ ΠΡΟΣΟΜΟΙΩΣΗΣ 23/04/2012. Α. Να απαντήσετε με Σ ή Λ στις παρακάτω προτάσεις:

Α. Ερωτήσεις Ανάπτυξης

Εισαγωγή στον Προγραµµατισµό. Διάλεξη 3 η : Επίλυση Προβληµάτων Χειµερινό Εξάµηνο 2011

Transcript:

Διάλεξη 3 Αλγόριθμοι & Προγραμματισμός Εισαγωγή στις Εφαρμογές ΤΠΕ Χαράλαμπος Καραγιαννίδης karagian@uth.gr Διάλεξη 3: Αλγόριθμοι & Προγραμματισμός 1/57 11/10/2016

Σύνοψη Μαθήματος 1. Εισαγωγή στις ΤΠΕ, εισαγωγή στο μάθημα 2. Εσωτερική οργάνωση & λειτουργία Η/Υ 3. Αλγόριθμοι & προγραμματισμός Η/Υ Διάλεξη 3: Αλγόριθμοι & Προγραμματισμός 2/57 11/10/2016

Θυμηθείτε Υπολογιστής > πολυεργαλείο F το χαρακτηριστικό που καθιστά τους υπολογιστές τόσο σημαντικούς είναι η δυνατότητα να κάνουν τόσο διαφορετικές δουλειές F διαφορετικά προγράμματα μπορούν να μετατρέψουν τον ίδιο υπολογιστή σε προσωπικό βοηθό, βάση δεδομένων, παιχνίδι, κλπ, κλπ, κλπ Θα πρέπει όμως να εξηγήσουμε στον υπολογιστή F ποιο πρόβλημα θέλουμε να λύσει F ποια βήματα πρέπει να ακολουθήσει ακριβώς Διάλεξη 3: Αλγόριθμοι & Προγραμματισμός 3/57 11/10/2016

Γιατί πρέπει να μας ενδιαφέρει??? Αλγόριθμοι F η αλγοριθμική/υπολογιστική σκέψη είναι απαραίτητη σε όλους μας F και αποτελεί ένα σημαντικό αντικείμενο διδασκαλίας Προγραμματισμός F υπάρχουν σήμερα πολλά ισχυρά εργαλεία F που δεν απαιτούν ειδικές γνώσεις προγραμματισμού F και δίνουν τη δυνατότητα για την παραγωγή ψηφιακού εκπαιδευτικού υλικού και την ανάπτυξη υπηρεσιών εκπαίδευσης και κατάρτισης Διάλεξη 3: Αλγόριθμοι & Προγραμματισμός 4/57 11/10/2016

Σύνοψη Διάλεξης Αλγόριθμοι Προγραμματισμός Συζήτηση Διάλεξη 3: Αλγόριθμοι & Προγραμματισμός 5/57 11/10/2016

Ορισμός Αλγόριθμος F μια ακολουθία εντολών F μέσω της οποίας είναι δυνατή η ακριβής έκφραση μιας βήμα-προς-βήμα διαδικασίας F που τερματίζει την εκτέλεσή της μετά την ολοκλήρωση ενός πεπερασμένου αριθμού βημάτων F και η οποία επιτρέπει την επίλυση ενός δεδομένου προβλήματος Παράδειγμα F οδηγίες για να έρθει κάποιος στο σπίτι σας... Διάλεξη 3: Αλγόριθμοι & Προγραμματισμός 6/57 11/10/2016

Απλό παράδειγμα Διάλεξη 3: Αλγόριθμοι & Προγραμματισμός 7/57 11/10/2016

Σύνθετο παράδειγμα Το κόσκινο του Ερατοσθένη Να βρεθούν όλοι οι πρώτοι αριθμοί μεταξύ του 1 και του Ν 1. Καταγράφουμε όλους τους αριθμούς από το 2 μέχρι το Ν σε μια λίστα 2. Για κάθε πρώτο που συναντάμε στη λίστα, διαγράφουμε από τη λίστα όλα τα πολλαπλάσιά του 3. Αν ο πρώτος αριθμός που συναντάμε στη λίστα είναι μικρότερος της τετραγωνικής ρίζας του Ν, τότε επαναλαμβάνουμε το βήμα 2, διαφορετικά η λίστα περιλαμβάνει μόνο πρώτους αριθμούς Διάλεξη 3: Αλγόριθμοι & Προγραμματισμός 8/57 11/10/2016

Άλλα παραδείγματα Κατασκευή καφέ Προετοιμασία ενός φαγητού Μεταφορά καφέ από το κυλικείο Διέλευση αυτοκινήτων από διασταύρωση με φανάρια Διέλευση αυτοκινήτων από διασταύρωση χωρίς φανάρια Εύρεση μεγαλύτερου/μικρότερου αριθμού και μέσου όρου από μια λίστα αριθμών??? Διάλεξη 3: Αλγόριθμοι & Προγραμματισμός 9/57 11/10/2016

Τι ΔΕΝ είναι αλγόριθμος ευρετική μέθοδος Hill-climbing heuriswc F ανεβαίνουμε ένα βουνό και βρισκόμαστε μπροστά σε ένα σταυροδρόμι με δύο μονοπάτια F δε φαίνεται που οδηγεί κάθε μονοπάτι F επιλέγουμε το μονοπάτι που είναι ανηφορικό F είμαστε σίγουροι ότι θα μας οδηγήσει στην κορυφή? F τις περισσότερες φορές ναι, αλλά όχι πάντα... Διάλεξη 3: Αλγόριθμοι & Προγραμματισμός 10/57 11/10/2016

Απαιτήσεις αλγορίθμων Θα πρέπει F να περιγράφει με ακρίβεια τα δεδομένα που θα χρησιμοποιήσει F κάθε βήμα του πρέπει να είναι τελείως καθορισμένο και να φανερώνει τι ακριβώς κάνει F να δίνει με ακρίβεια τα αποτελέσματα που παράγονται από κάθε βήμα του F να ολοκληρώνει πάντοτε σωστά τη σκέψη επίλυσης του προβλήματος, μετά από ένα πεπερασμένο αριθμό βημάτων, που το καθένα εκτελείται σε πεπερασμένο χρόνο Διάλεξη 3: Αλγόριθμοι & Προγραμματισμός 11/57 11/10/2016

Κατηγορίες αλγορίθμων By implementawon F recursion or iterawon (επαναληπτικοί) F logical (λογικοί) F serial, parallel or distributed (σειριακοί, παράλληλοι ή κατανεμημένοι) F determiniswc or nondeterminiswc (ντετερμινιστικοί ή μη-ντετερμινιστικοί) F exact or approximate (ακριβείς ή προσεγγιστικοί) By design F brute-force or exhauswve search F divide and conquer F dynamic programming F greedy algorithms F linear programming F reducwon F enumerawon Διάλεξη 3: Αλγόριθμοι & Προγραμματισμός 12/57 11/10/2016

Αναπαράσταση αλγορίθμων λογικό διάγραμμα ΑΡΧΗ ΤΕΛΟΣ υπολογισµός ή επεξεργασία υποπρόγραµµα είσοδος / έξοδος εκτύπωση ναι συνθήκη αληθής όχι Διάλεξη 3: Αλγόριθμοι & Προγραμματισμός 13/57 11/10/2016

Παράδειγμα ΑΡΧΗ διάβασε όνοµα επώνυµο ΔΜ ναι ΔΜ>200 όχι τύπωσε "πτυχιούχος" τύπωσε επώνυµο, όνοµα τύπωσε "φοιτητής" ΤΕΛΟΣ Διάλεξη 3: Αλγόριθμοι & Προγραμματισμός 14/57 11/10/2016

Παράδειγμα (2/2) αρχή κάρτα κωδικός ανάληψη? όχι κατάθεση? όχι ναι ναι ποσό ποσό χρήµατα επεξεργασία στοιχείων επεξεργασία στοιχείων χρήµατα απόδειξη απόδειξη κάρτα τέλος Διάλεξη 3: Αλγόριθμοι & Προγραμματισμός 15/57 11/10/2016

Αναπαράσταση αλγορίθμων - ψευδοκώδικας αρχή διάβασε όνομα, επώνυμο, αριθμός ΔΜ τύπωσε όνομα, επώνυμο αν (αριθμός ΔΜ) >= 100 τότε τύπωσε πτυχιούχος αλλιώς τύπωσε φοιτητές τέλος Διάλεξη 3: Αλγόριθμοι & Προγραμματισμός 16/57 11/10/2016

Βασικές αλγοριθμικές δομές - επιλογή αν συνθήκη αληθής ΝΑΙ συνθήκη αληθής ΟΧΙ τότε εντολή 1 αλλιώς εντολή 2 εντολή 1 εντολή 2 if condiwon true then εντολή 1 else εντολή 2 Διάλεξη 3: Αλγόριθμοι & Προγραμματισμός 17/57 11/10/2016

Βασικές αλγοριθμικές δομές - επανάληψη επανέλαβε (αν συνθήκη αληθής) εντολή 1... εντολή ν εντολή 1... εντολή 2 repeat (if condiwon true) εντολή 1... εντολή 2 συνθήκη αληθής ΝΑΙ ΟΧΙ Διάλεξη 3: Αλγόριθμοι & Προγραμματισμός 18/57 11/10/2016

Συνδυασμοί παράδειγμα ΝΑΙ συνθήκη 1 αληθής ΟΧΙ ΝΑΙ συνθήκη 2 αληθής ΟΧΙ εντολή 3 εντολή 4 εντολή 1 εντολή 2 συνθήκη 3 αληθής ΝΑΙ ΟΧΙ Διάλεξη 3: Αλγόριθμοι & Προγραμματισμός 19/57 11/10/2016

Σύνοψη διάλεξης Αλγόριθμοι Προγραμματισμός Συζήτηση Διάλεξη 3: Αλγόριθμοι & Προγραμματισμός 20/57 11/10/2016

Εισαγωγή Πρέπει να εισάγουμε στον υπολογιστή έναν αλγόριθμο για να να λύσει ένα πρόβλημα F ο υπολογιστής καταλαβαίνει μόνο 0/1 F η γλώσσα που μπορούμε να χτίσουμε πάνω στα bits ονομάζεται γλώσσα μηχανής F δεν είναι καθόλου εύκολο να εκφράσουμε τον αλγόριθμο σε γλώσσα μηχανής F γι αυτό, τον εκφράζουμε σε μια άλλη, πιο κατανοητή γλώσσα προγραμματισμού, και χρησιμοποιούμε ένα μεταφραστή για να κάνει τη μετάφραση σε γλώσσας μηχανής Διάλεξη 3: Αλγόριθμοι & Προγραμματισμός 21/57 11/10/2016

Δηλαδή... αλγόριθµος πρόγραµµα επεξεργαστής κειµένου, προγραµµατιστικό περιβάλλον µεταφραστής εκτελέσιµο πρόγραµµα υπολογιστής εκτέλεση προγράµµατος Διάλεξη 3: Αλγόριθμοι & Προγραμματισμός 22/57 11/10/2016

Χαρακτηριστικά γλωσσών Αλφάβητο F οι χαρακτήρες που μπορούν να χρησιμοποιηθούν για τη σύνθεση λέξεων (εντολών) Συντακτικό F οι κανόνες σχηματισμού προτάσεων από λέξεις Λεξιλόγιο F δεσμευμένες λέξεις Ιδιότητες F εκφραστικότητα και αποτελεσματικότητα (expressiveness, efficiency) Διάλεξη 3: Αλγόριθμοι & Προγραμματισμός 23/57 11/10/2016

Κατηγορίες γλωσσών Διαδικαστικός προγραμματισμός (procedural) F ο κόσμος αποτελείται από δεδομένα που αλλάζουν μέσω κάποιων συναρτήσεων (διαδικασιών) Αντικειμενοστραφής προγραμματισμός (object-oriented) F ο κόσμος αποτελείται από αντικείμενα που έχουν συγκεκριμένες ιδιότητες και τρόπους για να αλληλεπιδρούν Λογικός προγραμματισμός (logic) F ο κόσμος αποτελείται από προτάσεις που είναι σωστές ή λάθος Διάλεξη 3: Αλγόριθμοι & Προγραμματισμός 24/57 11/10/2016

Παραδείγματα γλωσσών C, C++ Java Prolog Pascal Fortran Basic Διάλεξη 3: Αλγόριθμοι & Προγραμματισμός 25/57 11/10/2016

Παράδειγμα πρόγραμμα C main( ) { int a, b, c, sum; a = 1; b = 2; c = 3; sum = a + b + c; printf("sum is %d", sum); } Διάλεξη 3: Αλγόριθμοι & Προγραμματισμός 26/57 11/10/2016

Παράδειγμα πρόγραμμα C (2/3) #include <stdio.h> #define KILOS_PER_POUND.45359 main() { int pounds; printf(" US lbs UK st. lbs INT Kg\n"); for(pounds=10; pounds < 250; pounds+=10) { int stones = pounds / 14; int uklbs = pounds % 14; float kilos = pounds * KILOS_PER_POUND; printf(" %d %d %d %f\n", pounds, stones, uklbs, kilos); } } Διάλεξη 3: Αλγόριθμοι & Προγραμματισμός 27/57 11/10/2016

Παράδειγμα πρόγραμμα C (3/3) #include <stdio.h> void print_converted(int pounds) { int stones = pounds / 14; int uklbs = pounds % 14; float kilos_per_pound = 0.45359; float kilos = pounds * kilos_per_pound; printf(" %3d %2d %2d %6.2f\n", pounds, stones, uklbs, kilos); } main() { int us_pounds; printf("give an integer weight in Pounds : "); scanf("%d", &us_pounds); printf(" US lbs UK st. lbs INT Kg\n"); print_converted(us_pounds); } Διάλεξη 3: Αλγόριθμοι & Προγραμματισμός 28/57 11/10/2016

Περιβάλλοντα ανάπτυξης Διάλεξη 3: Αλγόριθμοι & Προγραμματισμός 29/57 11/10/2016

Σύνοψη διάλεξης Αλγόριθμοι Προγραμματισμός Συζήτηση Διάλεξη 3: Αλγόριθμοι & Προγραμματισμός 30/57 11/10/2016

Είναι σοβαρό Διάλεξη 3: Αλγόριθμοι & Προγραμματισμός 31/57 11/10/2016

Λύση Διάλεξη 3: Αλγόριθμοι & Προγραμματισμός 32/57 11/10/2016

Ψευδοκώδικας Διάλεξη 3: Αλγόριθμοι & Προγραμματισμός 33/57 11/10/2016

Δυσκολότερο πρόβλημα Διάλεξη 3: Αλγόριθμοι & Προγραμματισμός 34/57 11/10/2016

Παράδειγμα ταξινόμησης bubble sort algorithm Ο παλαιότερος και πιο αργός αλγόριθμος F συγκρίνει κάθε στοιχείο της λίστας με το επόμενό του, και αν δεν είναι στη σωστή σειρά τα μεταθέτει F τα στοιχεία με μεγάλες τιμές "σπρώχνονται" στο τέλος, και αυτά με μικρές τιμές προς την αρχή F συνεχίζεται μέχρι να περάσει από όλα τα στοιχεία και να μην κάνει καμία αλλαγή (δηλαδή όλα τα στοιχεία είναι ταξινομημένα) Διάλεξη 3: Αλγόριθμοι & Προγραμματισμός 35/57 11/10/2016

Κώδικας void bubblesort(int numbers[], int array_size) { int i, j, temp; for (i = (array_size - 1); i >= 0; i--) { for (j = 1; j <= i; j++) { if (numbers[j-1] > numbers[j]) } } } { temp = numbers[j-1]; numbers[j-1] = numbers[j]; numbers[j] = temp; } Διάλεξη 3: Αλγόριθμοι & Προγραμματισμός 36/57 11/10/2016

Παράδειγμα ταξινόμησης quick sort algorithm Ένας πιο γρήγορος αλγόριθμος για το ίδιο πρόβλημα F μέχρι η λίστα να ταξινομηθεί F επιλέγει ένα στοιχείο της λίστας F κόβει τη λίστα σε δύο μέρη το ένα με τα στοιχεία που είναι μεγαλύτερα από το παραπάνω, και το άλλο με τα στοιχεία που είναι μικρότερα F συνεχίζει την ίδια διαδικασία και στις υπο-λίστες που προκύπτουν δύο Διάλεξη 3: Αλγόριθμοι & Προγραμματισμός 37/57 11/10/2016

Δείτε τη διαφορά Διάλεξη 3: Αλγόριθμοι & Προγραμματισμός 38/57 11/10/2016

Συνεπώς Διάλεξη 3: Αλγόριθμοι & Προγραμματισμός 39/57 11/10/2016

Παράδειγμα Διάλεξη 3: Αλγόριθμοι & Προγραμματισμός 40/57 11/10/2016

Έξυπνο παράδειγμα Διάλεξη 3: Αλγόριθμοι & Προγραμματισμός 41/57 11/10/2016

Κώδικας Διάλεξη 3: Αλγόριθμοι & Προγραμματισμός 42/57 11/10/2016

Και λίγη φιλοσοφία Διάλεξη 3: Αλγόριθμοι & Προγραμματισμός 43/57 11/10/2016

Τα όρια των αλγορίθμων Διάλεξη 3: Αλγόριθμοι & Προγραμματισμός 44/57 11/10/2016

Ερωτήματα Μπορεί ένας αλγόριθμος να λύνει περισσότερα από ένα προβλήματα? F φυσικά F Αθήνα-Θεσσαλονίκη, και Θεσσαλονίκη-Αθήνα J Υπάρχουν περισσότεροι από έναν αλγόριθμο για την επίλυση του ίδιου προβλήματος? F φυσικά F Αθήνα-Θεσσαλονίκη μέσω Λαμίας, Αθήνα-Θεσσαλονίκη μέσω Πάτρας J F μάλιστα κάποιοι είναι καλύτεροι από κάποιους άλλους Διάλεξη 3: Αλγόριθμοι & Προγραμματισμός 45/57 11/10/2016

Μεγάλο ερώτημα Για κάθε πρόβλημα υπάρχει ένας αλγόριθμος που μπορεί να το λύσει? F είναι μεγάλο ερώτημα??? Διάλεξη 3: Αλγόριθμοι & Προγραμματισμός 46/57 11/10/2016

Απαντήσεις... David Hilbert, 1900 F wir muessen wissen, wir werden wissen Kurt Goedel, 1931 F θεώρημα μη-πληρότητας F υπάρχουν (μαθηματικές) προτάσεις που δεν αποδεικνύονται... Alan Turing, 1936 F δε μπορούμε να γνωρίζουμε ποιες προτάσεις ανήκουν στην "κακή" κατηγορία... Διάλεξη 3: Αλγόριθμοι & Προγραμματισμός 47/57 11/10/2016

Τελικά πώς προγραμματίζουμε??? Donald Knuth F ο προγραμματισμός των υπολογιστών είναι μια έκφανση τέχνης, όπως η δημιουργία ενός ποιήματος ή μουσικής Κι εμείς οι παιδαγωγοί κύριε??? Διάλεξη 3: Αλγόριθμοι & Προγραμματισμός 48/57 11/10/2016

Visual Programming Οπτικές γλώσσες προγραμματισμού F any programming language that lets users create programs by manipulawng program elements graphically rather than by specifying them textually γλώσσες προγραμματισμού όπου χρήστες δημιουργούν προγράμματα καθώς χειρίζονται αντικείμενα σε γραφική μορφή και όχι σε μορφή κειμένου Διάλεξη 3: Αλγόριθμοι & Προγραμματισμός 49/57 11/10/2016

Παράδειγμα Διάλεξη 3: Αλγόριθμοι & Προγραμματισμός 50/57 11/10/2016

Authoring Tools Εργαλεία συγγραφής (πολυμεσικού) περιεχομένου F programs that have pre-programmed elements for the development of interacwve mulwmedia so ware wtles by non-programmers προγράμματα με έτοιμα στοιχεία για τη δημιουργία διαδραστικού πολυμεσικού λογισμικού από μη-προγραμματιστές F they allow users/authors to create mulwmedia applicawons for manipulawng mulwmedia objects F they usually include an authoring language, a programming language built (or extended) with funcwonality for represenwng the tutoring system Διάλεξη 3: Αλγόριθμοι & Προγραμματισμός 51/57 11/10/2016

Χ. Καραγιαννίδης, ΠΘ-ΠΤΕΑ Εισαγωγή στις Εφαρμογές ΤΠΕ Παραδείγματα Διάλεξη 3: Αλγόριθμοι & Προγραμματισμός 52/57 11/10/2016

Digital Storytelling Ψηφιακή αφήγηση F a short form of digital media producwon that allows everyday people to share aspects of their story μια μορφή παραγωγής ψηφιακών μέσων που επιτρέπει σε κάθε άνθρωπο να μοιραστεί πλευρές της ιστορίας του F the media used may include the digital equivalent of film techniques (fullmowon video with sound), swlls, audio only, or any of the other forms of non-physical media (material that exists only as electronic files as opposed to actual painwngs or photographs on paper, sounds stored on tape or disc, movies stored on film) which individuals can use to tell a story or present an idea με πολύ διαφορετικά μέσα... Διάλεξη 3: Αλγόριθμοι & Προγραμματισμός 53/57 11/10/2016

Παραδείγματα Διάλεξη 3: Αλγόριθμοι & Προγραμματισμός 54/57 11/10/2016

Συμπέρασμα Αλγόριθμοι F η αλγοριθμική/υπολογιστική σκέψη είναι απαραίτητη σε όλους μας F και αποτελεί ένα σημαντικό αντικείμενο διδασκαλίας Προγραμματισμός F υπάρχουν σήμερα πολλά ισχυρά εργαλεία F που δεν απαιτούν ειδικές γνώσεις προγραμματισμού F και δίνουν τη δυνατότητα για την παραγωγή ψηφιακού εκπαιδευτικού υλικού και την ανάπτυξη υπηρεσιών εκπαίδευσης και κατάρτισης Διάλεξη 3: Αλγόριθμοι & Προγραμματισμός 55/57 11/10/2016

Ειδική βιβλιογραφία Sanjeev Arora F The Computawonal Universe, Princeton University, Course COS 116. Απόστολος Δοξιάδης F Ο Θείος Πέτρος και η Εικασία του Γκόλντμπαχ, Εκδόσεις Καστανιώτη, 2000. Askatechteacher.com F 9 Best-in-Class Digital Storytelling Tools MIT F Scratch Διάλεξη 3: Αλγόριθμοι & Προγραμματισμός 56/57 11/10/2016

Καλό βράδυ karagian@uth.gr Διάλεξη 3: Αλγόριθμοι & Προγραμματισμός 57/57 11/10/2016