ΗΥ 150 – ΠρογραμματισμόςΞενοφών Ζαμ π ούλης ΗΥ -150 Προγραμματισμός Αλγόριθμοι και Προγράμματα.

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
Επιμέλεια: Τίκβα Χριστίνα
Advertisements

7.3.8 Μεταφραστές Ελληνογαλλική Σχολή Καλαμαρί - Τίκβα Χριστίνα.
ΙΩΑΝΝΗΣ ΚΩΝΣΤΑΝΤΙΝΟΥ 1ο ΦΡΟΝΤΙΣΤΗΡΙΟ ΠΑΡΑΣΚΕΥΗ 5 ΟΚΤΩΒΡΙΟΥ 2012 ΑΙΘΟΥΣΑ Β4 11.
Τι είναι ο υπολογιστής; Τι είναι ο προγραμματισμός
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ ΤΜΗΜΑΤΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ
Ενότητα 1: Εισαγωγή στην Έννοια του Αλγορίθμου και στον Προγραμματισμό
Εργαστήριο μαθήματος «Τεχνολογία Γνώσης» Σαντιπαντάκης Γιώργος
Πολυδιάστατοι Πίνακες, Δομές, Ενώσεις
Αναδρομη και static Γραψετε την συναρτηση sequence_size που διαβαζει μια απροσδιοριστου μεγεθους σειρας και υπολογιζει και τυπωνει το μεγεθος της. int.
ΜΑΘ 3122 (106) Γλώσσα προγραμματισμού
ΜΑΘ-3122/106 Προγραμματισμός
ΜΑΘ-3122/106 Γλώσσα προγραμματισμού Ξενοφών Ζαμπούλης ΗΥ-150 Προγραμματισμός Ταξινόμηση και Αναζήτηση.
Αλγόριθμοι Ταξινόμησης
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Πίνακες Κλάσεις και Αντικείμενα.
Συναρτήσεις Κληση/Επιστροφη Παραμετροι
Εισαγωγικές Έννοιες Διδάσκοντες: Σ. Ζάχος, Δ. Φωτάκης Επιμέλεια διαφανειών: Δ. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο.
ΗΥ 150 – ΠρογραμματισμόςΞενοφών Ζαμ π ούλης ΗΥ-150 Προγραμματισμός Αλγόριθμοι και Προγράμματα.
ΕΙΣΑΓΩΓΗ ΜΑΘΗΜΑ 1.
Γεωργαλλίδης Δημήτρης Καθηγητής Πληροφορικής
Η ΓΛΩΣΣΑ C ΜΑΘΗΜΑ 2.
Ίδιες αρχές λειτουργίας
1 Ολυμπιάδα Πληροφορικής Μάθημα 7. 2 Στόχοι μαθήματος Δημιουργία συναρτήσεων από το χρήστη Δομή προγράμματος με συναρτήσεις Συναρτήσεις και παράμετροι.
Πάνω προς Κάτω Σχεδιασμός και Συναρτήσεις
Μεταβλητές – εντολές εκχώρησης- δομή ακολουθίας
ΘΕΜΑΤΙΚΗ ΕΝΟΤΗΤΑ 2: ΘΕΜΑΤΑ ΘΕΩΡΗΤΙΚΗΣ ΕΠΙΣΤΗΜΗΣ Η/Υ
Κεφάλαιο 6 -Περιβάλλοντα Ανάπτυξης Εφαρμογών
ΗΥ 150 – ΠρογραμματισμόςΞενοφών Ζαμ π ούλης ΗΥ-150 Προγραμματισμός Δυναμική Διαχείριση Μνήμης (1/2)
Λογισμικό (Software).
Καθηγητής: Σπύρος Ξουργιάς1 Η Έννοια του Προγράμματος Ακριβής προσδιορισμός προβλήματος Ακριβής προσδιορισμός προβλήματος Ανάπτυξη αντίστοιχου αλγορίθμου.
Για τη διεκπεραίωση ενός προβλήματος πρέπει να ακολουθηθεί η εξής διαδικασία:  να γραφεί ο αλγόριθμος να συνταχθεί το πρόγραμμα σε γλώσσα υψηλού επιπέδου.
1.5 Γλώσσες Προγραμματισμού
1 Εισαγωγή στη Java Χρήσιμες Διευθύνσεις Χαρακτηριστικά της Java Εργαλεία της Java Εργαλεία της Java Μεταγλώττιση στοιχειωδών εφαρμογών.
Διδακτική της Πληροφορικής ΗΥ302 Εργασία :Παρουσίαση σχολικού βιβλίου Γ’ Λυκείου Τεχνολογικής Κατεύθυνσης «Ανάπτυξη εφαρμογών σε προγραμματιστικό περιβάλλον»
ΛΑΔΑΚΑΚΟΣ ΘΑΛΗΣ Α.Μ ΔΙΑΧΕΙΡΗΣΗ ΠΛΗΡΟΦΟΡΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ
ΘΕΜΑΤΙΚΗ ΕΝΟΤΗΤΑ 2: ΘΕΜΑΤΑ ΘΕΩΡΗΤΙΚΗΣ ΕΠΙΣΤΗΜΗΣ Η/Υ
ΗΥ 150 – Προγραμματισμός Ξενοφών Ζαμπούλης ΗΥ -150 Προγραμματισμός Εντολές Ελέγχου Ροής.
Κεφάλαιο 10 – Υποπρογράμματα
ΗΥ150 – ΠρογραμματισμόςΚώστας Παναγιωτάκης ΗΥ-150 Προγραμματισμός Αναδρομή (1/2)
ΜΑΘ3122/106 – Γλώσσα προγραμματισμούΞενοφών Ζαμπούλης ΜΑΘ3122/106 Γλώσσα προγραμματισμού Συναρτήσεις.
Προγραμματισμός Γιατι γραφουμε προγραμματα (προηγ. διαλεξη)
Από την ιδέα μέχρι το λογισμικό. Ξεκινώντας από το πρόβλημα...
ΗΥ 150 – Προγραμματισμός Ξενοφών Ζαμπούλης 1 Δείκτες σε συναρτήσεις Δείκτης σε συνάρτηση – Περιέχει τη διεύθυνση του κώδικα της συνάρτησης – Ό π ως ένας.
Δομές Δεδομένων 1 Θέματα Απόδοσης. Δομές Δεδομένων 2 Οργανώνοντας τα Δεδομένα  Η επιλογή της δομής δεδομένων και του αλγορίθμου επηρεάζουν το χρόνο εκτέλεσης.
ΗΥ150 – ΠρογραμματισμόςΚώστας Παναγιωτάκης ΗΥ-150 Προγραμματισμός Συναρτήσεις.
ΛΟΓ102: Τεχνολογία Λογισμικού Ι Διδάσκων: Νίκος Παπασπύρου 1Νίκος ΠαπασπύρουΛΟΓ102:
ΗΥ 150 – Προγραμματισμός Ξενοφών Ζαμπούλης ΗΥ -150 Προγραμματισμός Αρχεία.
ΗΥ 150 – ΠρογραμματισμόςΞενοφών Ζαμ π ούλης ΗΥ -150 Προγραμματισμός Δομές Δεδομένων.
ΗΥ 150 – Προγραμματισμός Ξενοφών Ζαμπούλης ΗΥ -150 Προγραμματισμός Τύ π οι Μεταβλητών Τελεστές Βασική Είσοδος / Έξοδος.
ΗΥ150 – ΠρογραμματισμόςΞενοφών Ζαμπούλης ΗΥ-150 Προγραμματισμός Συναρτήσεις.
ΗΥ150 – Προγραμματισμός Ξενοφών Ζαμπούλης 1 getchar() /* char_count.c A program to count characters of input. */ main() { int c ; int count = 0; while.
ΗΥ150 – ΠρογραμματισμόςΞενοφών Ζαμπούλης ΗΥ-150 Προγραμματισμός Αναδρομή (1/2)
ΗΥ150 – ΠρογραμματισμόςΚώστας Παναγιωτάκης ΗΥ-150 Προγραμματισμός Συναρτήσεις (μέρος δεύτερο) και Μεταβλητές.
ΗΥ150 – ΠρογραμματισμόςΚώστας Παναγιωτάκης ΗΥ-150 Προγραμματισμός Τύποι Μεταβλητών Τελεστές Βασική Είσοδος/Έξοδος.
Πτυχιακή εργασία Προβολή ιστοσελίδα τμήματος από συσκευές κινητής τηλεφωνίας σε λειτουργικό σύστημα Windowsphone ………………
ΚΕΦΑΛΑΙΟ Το αλφάβητο της ΓΛΩΣΣΑΣ
Εισαγωγή στην Έννοια του Αλγορίθμου και στον Προγραμματισμό
Γλώσσες Προγραμματισμού Μεταγλωττιστές Πανεπιστήμιο Μακεδονίας Τμήμα Εφαρμοσμένης Πληροφορικής Ηλίας Σακελλαρίου.
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ «Εισαγωγή στον οντοκεντρικό προγραμματισμό (βασική εισαγωγή στο περιβάλλον εργασίας)» Ρουσσάκης Ιωάννης, ΤΕΙ Κρήτης,
Εισαγωγή στον προγραμματισμό Μέρος 3 ο Προγραμματιστικά περιβάλλοντα § 6.7.
Πληροφορική 2 Γλώσσες Προγραμματισμού 1. Γλώσσες προγραμματσιμού  Επιτρέπουν την κωδικοποίηση των αλγορίθμων  Η εκτέλεση ενός προγράμματος θα πρέπει.
Ενότητα 3 : Γλώσσες προγραμματισμού Δρ. Γκόγκος Χρήστος
Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ
Τύποι Μεταβλητών Τελεστές Βασική Είσοδος/Έξοδος
Η Γλώσσα Pascal Υποπρογράμματα
Εισαγωγή στη Java Χαρακτηριστικά της Java Εργαλεία της Java
2ο ΓΥΜΝΑΣΙΟ ΣΗΤΕΙΑΣ - ΤΑΞΗ Γ'
ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΩΝ Η/Υ
ΗΥ-150 Προγραμματισμός Αναδρομή (1/2).
Μεταγράφημα παρουσίασης:

ΗΥ 150 – ΠρογραμματισμόςΞενοφών Ζαμ π ούλης ΗΥ -150 Προγραμματισμός Αλγόριθμοι και Προγράμματα

Ξενοφών Ζαμ π ούλης ΗΥ 150 – Προγραμματισμός 2 Αλγόριθμοι Μια ακολουθία α π ό βήματα / ενέργειες π ου είναι : – Καλώς ( σαφώς ) ορισμένα – Α π οτελεσματικά ( μ π ορούν να εκτελεστούν ) – Πε π ερασμένα ( τερματισμός ) – Συνήθως δέχονται δεδομένα Παραδείγματα αλγορίθμων – Υ π ολογισμού ημερομηνίας Πάσχα – Υ π ολογισμός ριζών – Πολλ / σμός – Αντιστροφής π ινάκων – Αναζήτησης και Ταξινόμησης – Εύρεσης συντομότερου μονο π ατιού – Πρόβλεψης – Ανάλυσης ιατρικών εικόνων – Δρομολόγησης π ακέτων στο internet

Ξενοφών Ζαμ π ούλης ΗΥ 150 – Προγραμματισμός 3 Αλγόριθμοι Α π αιτήσεις - Πρόβλημα – Προδιαγραφές Σχεδίαση - Ορθότητα Πολυ π λοκότητα ( με βάση το μέγεθος των δεδομένων Ν ) (π ροαιρετική για το μάθημα μας ) – Υ π ολογιστικό Κόστος – Κόστος σε Μνήμη Βελτιστο π οίηση (π ροαιρετική για το μάθημα μας ) Υλο π οίηση

Ξενοφών Ζαμ π ούλης ΗΥ 150 – Προγραμματισμός 4 Αλγόριθμοι Α π αιτήσεις - Πρόβλημα – Προδιαγραφές – Υ π ολογίστε το άθροισμα …+ Ν Σχεδίαση ( Υ π ολογίζω κανονικά το άθροισμα ξεκινώντας α π ό το 1) Σ = 0 // άθροισμα Για κ =1 … Ν // μετρητής Σ = Σ + κ Ορθότητα Πολυ π λοκότητα – Υ π ολογιστικό Κόστος, 2* Ν -> Ο ( Ν ) – Κόστος σε Μνήμη, 2 -> Ο (1) Βελτιστο π οίηση : Σ = Ν *( Ν +1) / 2 – Πολυ π λοκότητα Υ π ολογιστικό Κόστος, 3 -> Ο (1) Κόστος σε Μνήμη, 1 -> Ο (1)

Ξενοφών Ζαμ π ούλης ΗΥ 150 – Προγραμματισμός 5 Αλγόριθμοι Α π αιτήσεις - Πρόβλημα – Προδιαγραφές – Ταξινομήστε Ν φυσικούς, ( μικρότεροι α π ό το 1000) α [1], α [2], …, α [ Ν ] < 1000 Σχεδίαση – Ορθότητα ( Βρίσκω το μικρότερο, μετά τον αμέσως ε π όμενο, …) Για κ =1 … Ν Για λ = κ +1 … Ν Αν α [ λ ] > α [ κ ] άλλαξε τη θέση των α [ κ ], α [ λ ] Πολυ π λοκότητα – Υ π ολογιστικό Κόστος : Τ ( Ν ) = Τ ( Ν -1)+ Ν => Τ ( Ν )= Ν *( Ν +1)/2 -> Ο ( Ν 2 ) – Κόστος σε Μνήμη, 2 -> Ο (1) N 2

Ξενοφών Ζαμ π ούλης ΗΥ 150 – Προγραμματισμός 6 Αλγόριθμοι Α π αιτήσεις - Πρόβλημα – Προδιαγραφές – Ταξινομήστε Ν φυσικούς, ( μικρότεροι α π ό το 1000) α [1], α [2], …, α [ Ν ] < 1000 Βελτιστο π οίηση : Για κ =1 … 1000 h[k] = 0 Για κ =1 … Ν h[a[k]] = h[a[k]]+1 μ = 1 Για κ =1 …1000 Για λ =1 …h[k] a[ μ ] = κ μ = μ +1 – Πολυ π λοκότητα Υ π ολογιστικό Κόστος : Ν * Ν -> Ο ( Ν ) Κόστος σε Μνήμη, > Ο (1) N

Ξενοφών Ζαμ π ούλης ΗΥ 150 – Προγραμματισμός 7 Προγραμματισμός και Αλγόριθμοι Πρόγραμμα = Αλγόριθμος σε μια συγκεκριμένη γλώσσα υ π ολογιστή Γλώσσα Μηχανής : η μόνη γλώσσα π ου π ραγματικά καταλαβαίνει ο υ π ολογιστής Άλλες γλώσσες υ π ολογιστών ≠ γλώσσα π ρογραμματισμού Γλώσσες Προγραμματισμού – Χαμηλού ε π ι π έδου, π ιο κοντά στη γλώσσα μηχανής – Μεσαίου – Υψηλού, π ιο κοντά στην καθομιλουμένη Η ε π ιλογή της γλώσσας π ρογραμματισμού εξαρτάται α π ό την εφαρμογή Συνήθως το π ρόγραμμα γράφετε « ευκολότερα » ( είναι π ιο σύντομο ) στις Υψηλού ε π ι π έδου γλώσσες όμως εκτελείτε με μικρότερη ταχύτητα σε σύγκριση με μια χαμηλού ε π ι π έδου υλο π οίηση. – Πολλά όμως εξαρτώνται και α π ό τον π ρογραμματιστή.

Ξενοφών Ζαμ π ούλης ΗΥ 150 – Προγραμματισμός 8 Οικογένειες Γλωσσών Προγραμματισμού Δύσκολη η ταξινόμηση Ένα «π αράδειγμα » γλωσσών π αρέχει την ά π οψη π ου έχει ο π ρογραμματιστής για το π ρόγραμμα. Μερικές σημαντικές κλάσεις : Διαδικαστικές (Procedural) : C, Pascal, Fortran – Παραδοσιακός τρό π ος π ρογραμματισμού – Σειρά εντολών - ρουτίνες Συναρτησιακές (Functional) : Lisp, Mathematica – Σειρά εντολών – Οι συναρτήσεις – συμβολισμοί είναι αντίστοιχοι με τα μαθηματικά Δηλωτικές (Declarative) : Prolog, XML – Α π οτελούνται α π ό σειρά ορισμούς και δηλώσεις – Λογικός Προγραμματισμός (Logic Programming) – Προγραμματισμός με βάση Περιορισμούς (Constraint Programming) Αντικειμενοστραφής Προγραμματισμός Παράλληλος Προγραμματισμός Διαδικτυακός Προγραμματισμός

Ξενοφών Ζαμ π ούλης ΗΥ 150 – Προγραμματισμός 9 Προγράμματα σε C Εντολές και Δεδομένα Εντολές – Μια σειρά α π ό εντολές π ρος τον ε π εξεργαστή – Α π οθηκεύονται στη μνήμη του υ π ολογιστή Δεδομένα – Διαβάζουμε α π ό τη μνήμη του υ π ολογιστή – Α π οθηκεύονται ( γράφονται ) στη μνήμη του υ π ολογιστή Οι εντολές π ρέ π ει να έχουν μια λογική αλληλουχία Και να ακολουθούν κά π οια βήματα Αλγόριθμοι …

Ξενοφών Ζαμ π ούλης ΗΥ 150 – Προγραμματισμός 10 Πρώτο Παράδειγμα /*Filename: 02-my_first_program.c Author: C. Panagiotakis Date: 14/03/07 Function: Prints Hello, world. */ #include int main() { printf(“Hello, world\n”); return 0; }

Ξενοφών Ζαμ π ούλης ΗΥ 150 – Προγραμματισμός 11 Γενική Δομή Λίστα α π ό συναρτήσεις Συνάρτηση Τύπος-επιστρεφόμενης-τιμής όνομα(λίστα-παραμέτρων) { δηλώσεις μεταβλητών λίστα εντολών } /*Επιστρέφει το μέγιστο μεταξύ των x, y*/ int max(int x,int y) { int z = x; /*δηλώσεις μεταβλητών*/ if (y > x) /*λίστα εντολών*/ z = y; return z; }

Ξενοφών Ζαμ π ούλης ΗΥ 150 – Προγραμματισμός 12 main() { int A,B,C; A=5; B=6; C=max(A,B); } /*Επιστρέφει το μέγιστο μεταξύ των x, y*/ int max(int x,int y) { int z = x; /*δηλώσεις μεταβλητών*/ if (y > x) /*λίστα εντολών*/ z = y; return z; }

Ξενοφών Ζαμ π ούλης ΗΥ 150 – Προγραμματισμός 13 Δημιουργία Προγράμματος Αλγόριθμος (π. χ. Bubble Sort) | Γλώσσα Προγραμματισμού (BubbleSort.c) | compiler Ενδιάμεσος Κώδικας (object code) (BubbleSort.o) | linker Εκτελέσιμο (Executable) (BubbleSort.exe) >gcc –Wall -g BubbleSort.c >./a.out

Ξενοφών Ζαμ π ούλης ΗΥ 150 – Προγραμματισμός 14 Δημιουργία Προγράμματος Αλγόριθμος | Γλώσσα Προγραμματισμού | Συντακτικά Λάθη Ενδιάμεσος Κώδικας (object code) | Λάθη Συμβόλων Εκτελέσιμο (Executable) Λογικά Λάθη Run Time Errors

Ξενοφών Ζαμ π ούλης ΗΥ 150 – Προγραμματισμός 15 Διερμηνευμένες Γλώσσες (Interpreted) Αλγόριθμος | Γλώσσα Προγραμματισμού ( κώδικας ) (π. χ. QuickSort.c) | Διερμηνέας (Interpreter) (CInterpreter.exe) Εκτελέσιμο

Ξενοφών Ζαμ π ούλης ΗΥ 150 – Προγραμματισμός 16 Ακολουθία « τρεξίματος »: Φόρτωμα του κώδικα στη μνήμη Δέσμευση μνήμης για ( καθολικές ) μεταβλητές Εκτέλεση της συνάρτησης main ! Κι οι το π ικές μεταβλητές ; – Δέσμευση μνήμης ανάλογα με την ροή του π ρογράμματος : κάθε συνάρτηση δεσμεύει όση μνήμη χρειάζεται την ώρα π ου τρέχει

Ξενοφών Ζαμ π ούλης ΗΥ 150 – Προγραμματισμός 17 Ακολουθία « τρεξίματος » Καθολικές (global) έναντι το π ικών μεταβλητών (local) double sum;// καθολικές int bigsum; void f(int x, int sum) { sum = 1; x = 1+sum; bigsum = 1; } main() { int x = 0; // το π ική f(1,0); bigsum=0; }