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

Slides:



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

7.3.8 Μεταφραστές Ελληνογαλλική Σχολή Καλαμαρί - Τίκβα Χριστίνα.
ΙΩΑΝΝΗΣ ΚΩΝΣΤΑΝΤΙΝΟΥ 1ο ΦΡΟΝΤΙΣΤΗΡΙΟ ΠΑΡΑΣΚΕΥΗ 5 ΟΚΤΩΒΡΙΟΥ 2012 ΑΙΘΟΥΣΑ Β4 11.
7.5.2 Αντικειμενοστραφής προγραμματισμός
Τι είναι ο υπολογιστής; Τι είναι ο προγραμματισμός
ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ ΤΜΗΜΑΤΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ
Ενότητα 1: Εισαγωγή στην Έννοια του Αλγορίθμου και στον Προγραμματισμό
Πολυδιάστατοι Πίνακες, Δομές, Ενώσεις
ΣΤΟΙΧΕΙΑ ΨΕΥΔΟΚΩΔΙΚΑ ΒΑΣΙΚΕΣ ΔΟΜΕΣ ΒΑΣΙΚΟΙ ΑΛΓΟΡΙΘΜΟΙ ΠΙΝΑΚΩΝ
ΜΑΘ3122/106 Γλώσσα Προγραμματισμού
Κεφάλαιο 6 Υλοποίηση Γλωσσών Προγραμματισμού
ΜΑΘ 3122 (106) Γλώσσα προγραμματισμού
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΜΑΘ-3122/106 Προγραμματισμός
29/11/2004Εισαγωγή στο OpenMP1 OpenMP Αθήνα, Νοέμβριος 2004 Συστήματα Παράλληλης Επεξεργασίας Εργαστήριο Υπολογιστικών Συστημάτων.
1/12/2003Εισαγωγή στο OpenMP1 OpenMP Αθήνα, Νοέμβριος 2003 Συστήματα Παράλληλης Επεξεργασίας Εργαστήριο Υπολογιστικών Συστημάτων.
HY100 : ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΥΠΟΛΟΓΙΣΤΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ, ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ, ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΥΠΟΛΟΓΙΣΤΩΝ ΔΙΔΑΣΚΟΝΤΕΣ Αντώνιος Σαββίδης, Χρήστος.
ΜΑΘ-3122/106 Γλώσσα προγραμματισμού Ξενοφών Ζαμπούλης ΗΥ-150 Προγραμματισμός Ταξινόμηση και Αναζήτηση.
Αλγόριθμοι Ταξινόμησης
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Πίνακες Κλάσεις και Αντικείμενα.
Συναρτήσεις Κληση/Επιστροφη Παραμετροι
24/11/2003Message Passing Interface (MPI)1 Αθήνα, Νοέμβριος 2003 Συστήματα Παράλληλης Επεξεργασίας Εργαστήριο Υπολογιστικών Συστημάτων.
22/11/2004Message Passing Interface (MPI)1 Αθήνα, Νοέμβριος 2004 Συστήματα Παράλληλης Επεξεργασίας Εργαστήριο Υπολογιστικών Συστημάτων.
ΗΥ-150 Προγραμματισμός Εντολές Ελέγχου Ροής.
Εισαγωγικές Έννοιες Διδάσκοντες: Σ. Ζάχος, Δ. Φωτάκης Επιμέλεια διαφανειών: Δ. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο.
ΗΥ150 – Προγραμματισμός Ξενοφών Ζαμπούλης ΗΥ-150 Προγραμματισμός Ταξινόμηση και Αναζήτηση.
Κοντινότεροι Κοινοί Πρόγονοι α βγ θ δεζ η π ν ι κλμ ρσ τ κκπ(λ,ι)=α, κκπ(τ,σ)=ν, κκπ(λ,π)=η κκπ(π,σ)=γ, κκπ(ξ,ο)=κ ξο κκπ(ι,ξ)=β, κκπ(τ,θ)=θ, κκπ(ο,μ)=α.
ΕΙΣΑΓΩΓΗ ΜΑΘΗΜΑ 1.
ΕΠΛ223 Θεωρία και Πρακτική Μεταγλωττιστών Εαρινό Εξάμηνο 2002 Κ. Μουρλάς, Λέκτορας Σημείωση: Οι διαφάνειες αυτές βασίζονται κατά το μεγαλύτερο μέρος τους.
1 Οργάνωση και Αρχιτεκτονική Υπολογιστών Πρόγραμμα Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ.Ε.Ι Θεσσαλονίκης Μάθημα Οργάνωση και Αρχιτεκτονική.
Γεωργαλλίδης Δημήτρης Καθηγητής Πληροφορικής
Η ΓΛΩΣΣΑ C ΜΑΘΗΜΑ 2.
Ολυμπιάδα Πληροφορικής
1 Ολυμπιάδα Πληροφορικής Μάθημα 7. 2 Στόχοι μαθήματος Δημιουργία συναρτήσεων από το χρήστη Δομή προγράμματος με συναρτήσεις Συναρτήσεις και παράμετροι.
Ολυμπιάδα Πληροφορικής
Πάνω προς Κάτω Σχεδιασμός και Συναρτήσεις
Message Passing Interface (MPI) Συστήματα Παράλληλης Επεξεργασίας Εργαστήριο Υπολογιστικών Συστημάτων Αθήνα, Δεκέμβριος 2002.
ΘΕΜΑΤΙΚΗ ΕΝΟΤΗΤΑ 2: ΘΕΜΑΤΑ ΘΕΩΡΗΤΙΚΗΣ ΕΠΙΣΤΗΜΗΣ Η/Υ
Κεφάλαιο 6 -Περιβάλλοντα Ανάπτυξης Εφαρμογών
ΗΥ 150 – ΠρογραμματισμόςΞενοφών Ζαμ π ούλης ΗΥ-150 Προγραμματισμός Δυναμική Διαχείριση Μνήμης (1/2)
Ενότητα Α.4. Δομημένος Προγραμματισμός
1 ΗΥ-340 Γλώσσες και Μεταφραστές Φροντιστήριο Πίνακας Συμβόλων Symbol Table.
Για τη διεκπεραίωση ενός προβλήματος πρέπει να ακολουθηθεί η εξής διαδικασία:  να γραφεί ο αλγόριθμος να συνταχθεί το πρόγραμμα σε γλώσσα υψηλού επιπέδου.
1.5 Γλώσσες Προγραμματισμού
1 Εισαγωγή στη Java Χρήσιμες Διευθύνσεις Χαρακτηριστικά της Java Εργαλεία της Java Εργαλεία της Java Μεταγλώττιση στοιχειωδών εφαρμογών.
Διδακτική της Πληροφορικής ΗΥ302 Εργασία :Παρουσίαση σχολικού βιβλίου Γ’ Λυκείου Τεχνολογικής Κατεύθυνσης «Ανάπτυξη εφαρμογών σε προγραμματιστικό περιβάλλον»
ΛΑΔΑΚΑΚΟΣ ΘΑΛΗΣ Α.Μ ΔΙΑΧΕΙΡΗΣΗ ΠΛΗΡΟΦΟΡΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ
Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 1 Κεφάλαιο 3 Η Σημασιολογία των Γλωσσών Προγραμματισμού Προπτυχιακό.
ΘΕΜΑΤΙΚΗ ΕΝΟΤΗΤΑ 2: ΘΕΜΑΤΑ ΘΕΩΡΗΤΙΚΗΣ ΕΠΙΣΤΗΜΗΣ Η/Υ
Κεφάλαιο 10 – Υποπρογράμματα
ΜΑΘ3122/106 – Γλώσσα προγραμματισμούΞενοφών Ζαμπούλης ΜΑΘ3122/106 Γλώσσα προγραμματισμού Συναρτήσεις.
Προγραμματισμός Γιατι γραφουμε προγραμματα (προηγ. διαλεξη)
Από την ιδέα μέχρι το λογισμικό. Ξεκινώντας από το πρόβλημα...
Ασυμπτωτικός Συμβολισμός
Δομές Δεδομένων 1 Θέματα Απόδοσης. Δομές Δεδομένων 2 Οργανώνοντας τα Δεδομένα  Η επιλογή της δομής δεδομένων και του αλγορίθμου επηρεάζουν το χρόνο εκτέλεσης.
ΗΥ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 Προγραμματισμός Τύποι Μεταβλητών Τελεστές Βασική Είσοδος/Έξοδος.
ΗΥ 150 – ΠρογραμματισμόςΞενοφών Ζαμ π ούλης ΗΥ -150 Προγραμματισμός Αλγόριθμοι και Προγράμματα.
Πληροφορική 2 Γλώσσες Προγραμματισμού 1. Γλώσσες προγραμματσιμού  Επιτρέπουν την κωδικοποίηση των αλγορίθμων  Η εκτέλεση ενός προγράμματος θα πρέπει.
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ
Τύποι Μεταβλητών Τελεστές Βασική Είσοδος/Έξοδος
Πίνακας Συμβόλων Διαλέξεις στο μάθημα: Μεταφραστές Γιώργος Μανής.
2ο ΓΥΜΝΑΣΙΟ ΣΗΤΕΙΑΣ - ΤΑΞΗ Γ'
ΗΥ-150 Προγραμματισμός Αναδρομή (1/2).
Μεταγράφημα παρουσίασης:

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

Ξενοφών Ζαμπούλης ΗΥ150 – Προγραμματισμός 2 Οργάνωση ενός ΗΥ

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

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

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

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

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

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

Ξενοφών Ζαμπούλης ΗΥ150 – Προγραμματισμός 10 Διερμηνευμένες Γλώσσες (Interpreted) Αλγόριθμος | Γραμμή εντολών (κώδικας) (π.χ. “move arm”, “show image”, “run script A1”, “move west”) | Διερμηνέας (Interpreter), ανάλυση και εκτέλεση εντολής Εκτελέσιμο

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

Ξενοφών Ζαμπούλης ΗΥ150 – Προγραμματισμός 12 Οργάνωση ενός ΗΥ RAM Disk Main Secondary

Ξενοφών Ζαμπούλης ΗΥ150 – Προγραμματισμός 13 Πρώτο Παράδειγμα /*Filename: 00-my_first_program.c Author: X. Zabulis Date: 14/03/07 Function: Prints the following string of characters: ‘Hello world!’ */ #include int main() { printf(“Hello world!\n”); return 0; }

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

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

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

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

Ξενοφών Ζαμπούλης ΗΥ150 – Προγραμματισμός 19 Ακολουθία «τρεξίματος» Καθολικές (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; }