Κατέβασμα παρουσίασης
Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε
ΔημοσίευσεΦωτινή Αθανασίου Τροποποιήθηκε πριν 9 χρόνια
1
ΗΥ 150 – ΠρογραμματισμόςΞενοφών Ζαμ π ούλης ΗΥ -150 Προγραμματισμός Αλγόριθμοι και Προγράμματα
2
Ξενοφών Ζαμ π ούλης ΗΥ 150 – Προγραμματισμός 2 Αλγόριθμοι Μια ακολουθία α π ό βήματα / ενέργειες π ου είναι : – Καλώς ( σαφώς ) ορισμένα – Α π οτελεσματικά ( μ π ορούν να εκτελεστούν ) – Πε π ερασμένα ( τερματισμός ) – Συνήθως δέχονται δεδομένα Παραδείγματα αλγορίθμων – Υ π ολογισμού ημερομηνίας Πάσχα – Υ π ολογισμός ριζών – Πολλ / σμός – Αντιστροφής π ινάκων – Αναζήτησης και Ταξινόμησης – Εύρεσης συντομότερου μονο π ατιού – Πρόβλεψης – Ανάλυσης ιατρικών εικόνων – Δρομολόγησης π ακέτων στο internet
3
Ξενοφών Ζαμ π ούλης ΗΥ 150 – Προγραμματισμός 3 Αλγόριθμοι Α π αιτήσεις - Πρόβλημα – Προδιαγραφές Σχεδίαση - Ορθότητα Πολυ π λοκότητα ( με βάση το μέγεθος των δεδομένων Ν ) (π ροαιρετική για το μάθημα μας ) – Υ π ολογιστικό Κόστος – Κόστος σε Μνήμη Βελτιστο π οίηση (π ροαιρετική για το μάθημα μας ) Υλο π οίηση
4
Ξενοφών Ζαμ π ούλης ΗΥ 150 – Προγραμματισμός 4 Αλγόριθμοι Α π αιτήσεις - Πρόβλημα – Προδιαγραφές – Υ π ολογίστε το άθροισμα 1+2+3+…+ Ν Σχεδίαση ( Υ π ολογίζω κανονικά το άθροισμα ξεκινώντας α π ό το 1) Σ = 0 // άθροισμα Για κ =1 … Ν // μετρητής Σ = Σ + κ Ορθότητα Πολυ π λοκότητα – Υ π ολογιστικό Κόστος, 2* Ν -> Ο ( Ν ) – Κόστος σε Μνήμη, 2 -> Ο (1) Βελτιστο π οίηση : Σ = Ν *( Ν +1) / 2 – Πολυ π λοκότητα Υ π ολογιστικό Κόστος, 3 -> Ο (1) Κόστος σε Μνήμη, 1 -> Ο (1)
5
Ξενοφών Ζαμ π ούλης ΗΥ 150 – Προγραμματισμός 5 Αλγόριθμοι Α π αιτήσεις - Πρόβλημα – Προδιαγραφές – Ταξινομήστε Ν φυσικούς, ( μικρότεροι α π ό το 1000) α [1], α [2], …, α [ Ν ] < 1000 Σχεδίαση – Ορθότητα ( Βρίσκω το μικρότερο, μετά τον αμέσως ε π όμενο, …) Για κ =1 … Ν Για λ = κ +1 … Ν Αν α [ λ ] > α [ κ ] άλλαξε τη θέση των α [ κ ], α [ λ ] Πολυ π λοκότητα – Υ π ολογιστικό Κόστος : Τ ( Ν ) = Τ ( Ν -1)+ Ν => Τ ( Ν )= Ν *( Ν +1)/2 -> Ο ( Ν 2 ) – Κόστος σε Μνήμη, 2 -> Ο (1) 1 1000 1 N 2
6
Ξενοφών Ζαμ π ούλης ΗΥ 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 – Πολυ π λοκότητα Υ π ολογιστικό Κόστος : 1000 + Ν + 1000 + 2* Ν -> Ο ( Ν ) Κόστος σε Μνήμη, 1003 -> Ο (1) 1 1000 1 2 N
7
Ξενοφών Ζαμ π ούλης ΗΥ 150 – Προγραμματισμός 7 Προγραμματισμός και Αλγόριθμοι Πρόγραμμα = Αλγόριθμος σε μια συγκεκριμένη γλώσσα υ π ολογιστή Γλώσσα Μηχανής : η μόνη γλώσσα π ου π ραγματικά καταλαβαίνει ο υ π ολογιστής Άλλες γλώσσες υ π ολογιστών ≠ γλώσσα π ρογραμματισμού Γλώσσες Προγραμματισμού – Χαμηλού ε π ι π έδου, π ιο κοντά στη γλώσσα μηχανής – Μεσαίου – Υψηλού, π ιο κοντά στην καθομιλουμένη Η ε π ιλογή της γλώσσας π ρογραμματισμού εξαρτάται α π ό την εφαρμογή Συνήθως το π ρόγραμμα γράφετε « ευκολότερα » ( είναι π ιο σύντομο ) στις Υψηλού ε π ι π έδου γλώσσες όμως εκτελείτε με μικρότερη ταχύτητα σε σύγκριση με μια χαμηλού ε π ι π έδου υλο π οίηση. – Πολλά όμως εξαρτώνται και α π ό τον π ρογραμματιστή.
8
Ξενοφών Ζαμ π ούλης ΗΥ 150 – Προγραμματισμός 8 Οικογένειες Γλωσσών Προγραμματισμού Δύσκολη η ταξινόμηση Ένα «π αράδειγμα » γλωσσών π αρέχει την ά π οψη π ου έχει ο π ρογραμματιστής για το π ρόγραμμα. Μερικές σημαντικές κλάσεις : Διαδικαστικές (Procedural) : C, Pascal, Fortran – Παραδοσιακός τρό π ος π ρογραμματισμού – Σειρά εντολών - ρουτίνες Συναρτησιακές (Functional) : Lisp, Mathematica – Σειρά εντολών – Οι συναρτήσεις – συμβολισμοί είναι αντίστοιχοι με τα μαθηματικά Δηλωτικές (Declarative) : Prolog, XML – Α π οτελούνται α π ό σειρά ορισμούς και δηλώσεις – Λογικός Προγραμματισμός (Logic Programming) – Προγραμματισμός με βάση Περιορισμούς (Constraint Programming) Αντικειμενοστραφής Προγραμματισμός Παράλληλος Προγραμματισμός Διαδικτυακός Προγραμματισμός
9
Ξενοφών Ζαμ π ούλης ΗΥ 150 – Προγραμματισμός 9 Προγράμματα σε C Εντολές και Δεδομένα Εντολές – Μια σειρά α π ό εντολές π ρος τον ε π εξεργαστή – Α π οθηκεύονται στη μνήμη του υ π ολογιστή Δεδομένα – Διαβάζουμε α π ό τη μνήμη του υ π ολογιστή – Α π οθηκεύονται ( γράφονται ) στη μνήμη του υ π ολογιστή Οι εντολές π ρέ π ει να έχουν μια λογική αλληλουχία Και να ακολουθούν κά π οια βήματα Αλγόριθμοι …
10
Ξενοφών Ζαμ π ούλης ΗΥ 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; }
11
Ξενοφών Ζαμ π ούλης ΗΥ 150 – Προγραμματισμός 11 Γενική Δομή Λίστα α π ό συναρτήσεις Συνάρτηση Τύπος-επιστρεφόμενης-τιμής όνομα(λίστα-παραμέτρων) { δηλώσεις μεταβλητών λίστα εντολών } /*Επιστρέφει το μέγιστο μεταξύ των x, y*/ int max(int x,int y) { int z = x; /*δηλώσεις μεταβλητών*/ if (y > x) /*λίστα εντολών*/ z = y; return z; }
12
Ξενοφών Ζαμ π ούλης ΗΥ 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; }
13
Ξενοφών Ζαμ π ούλης ΗΥ 150 – Προγραμματισμός 13 Δημιουργία Προγράμματος Αλγόριθμος (π. χ. Bubble Sort) | Γλώσσα Προγραμματισμού (BubbleSort.c) |-----------------------------------------------------compiler Ενδιάμεσος Κώδικας (object code) (BubbleSort.o) | -----------------------------------------------------linker Εκτελέσιμο (Executable) (BubbleSort.exe) >gcc –Wall -g BubbleSort.c >./a.out
14
Ξενοφών Ζαμ π ούλης ΗΥ 150 – Προγραμματισμός 14 Δημιουργία Προγράμματος Αλγόριθμος | Γλώσσα Προγραμματισμού |-------------------------------------------- Συντακτικά Λάθη Ενδιάμεσος Κώδικας (object code) | -------------------------------------------- Λάθη Συμβόλων Εκτελέσιμο (Executable) ------------- Λογικά Λάθη Run Time Errors
15
Ξενοφών Ζαμ π ούλης ΗΥ 150 – Προγραμματισμός 15 Διερμηνευμένες Γλώσσες (Interpreted) Αλγόριθμος | Γλώσσα Προγραμματισμού ( κώδικας ) (π. χ. QuickSort.c) | Διερμηνέας (Interpreter) (CInterpreter.exe) Εκτελέσιμο
16
Ξενοφών Ζαμ π ούλης ΗΥ 150 – Προγραμματισμός 16 Ακολουθία « τρεξίματος »: Φόρτωμα του κώδικα στη μνήμη Δέσμευση μνήμης για ( καθολικές ) μεταβλητές Εκτέλεση της συνάρτησης main ! Κι οι το π ικές μεταβλητές ; – Δέσμευση μνήμης ανάλογα με την ροή του π ρογράμματος : κάθε συνάρτηση δεσμεύει όση μνήμη χρειάζεται την ώρα π ου τρέχει
17
Ξενοφών Ζαμ π ούλης ΗΥ 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; }
Παρόμοιες παρουσιάσεις
© 2024 SlidePlayer.gr Inc.
All rights reserved.