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



Σχετικά έγγραφα
ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

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

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

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

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

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

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

Λογισμικό Υπολογιστών (Software) ΜΥΥ-106 Εισαγωγή Η/Υ και Πληροφορική

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

ΕΙΔΗ,ΤΕΧΝΙΚΕΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΑ ΠΡΟΓΡΑΜΜΑΤΙ- ΣΜΟΥ

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

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

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

Προγραμματισμός Ι. Προχωρημένα Θέματα. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

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

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

Εισαγωγή στην γλώσσα προγραμματισμού C

Γλώσσες Προγραμματισμού Μεταγλωττιστές

Κεφάλαιο 3.1, : Συναρτήσεις I. (Διάλεξη 11)

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

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

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

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

Εισαγωγή στους Αλγόριθμους και τον Προγραμματισμό. 4η Διάλεξη Πίνακες Συναρτήσεις

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

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

Μεθόδων Επίλυσης Προβλημάτων

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

Παρακάτω δίνεται o σκελετός προγράμματος σε γλώσσα C. Σχολιάστε κάθε γραμμή του κώδικα.

Διάλεξη 22η: Επιπλέον στοιχεία της C

Είναι μια αλληλουχία κατάλληλων οδηγιών(εντολών) που εκτελεί ο υπολογιστής για την επίλυση ενός προβλήματος.

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

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

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C

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

Διάλεξη 13η: Δυναμική Διαχείρηση Μνήμης, μέρος 1

Διάλεξη 15η: Αναδρομή, μέρος 1ο

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

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

Διάλεξη 11η: Δείκτες, μέρος 1

Μαλούτα Θεανώ Σελίδα 1

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

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

H ΓΛΩΣΣΑ C. Μάθηµα 1: Το Πρώτο µας Πρόγραµµα σε C. ηµήτρης Ψούνης

ΑΣΚΗΣΗ 1: TO ΠΕΡΙΒΑΛΛΟΝ ΕΡΓΑΣΙΑΣ DEV-C++

Προγραμματισμός Ι: Γλώσσα Προγραμματισμού C

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

Εισαγωγή στον Προγραμματισμό (με. τη C)

ΥΠΟΛΟΓΙΣΤΕΣ Ι. Τα επιμέρους τμήματα Η ΟΜΗ TOY ΥΠΟΛΟΓΙΣΤΗ. Αναπαράσταση μεγεθών. Αναλογική αναπαράσταση ΚΕΝΤΡΙΚΗ ΜΝΗΜΗ ΜΟΝΑ Α ΕΛΕΓΧΟΥ

ΚΑΤΑΝΟΗΣΗ ΑΝΑΛΥΣΗ ΕΠΙΛΥΣΗ. Ο προγραμματισμός ασχολείται με το σύνολο των εντολών που δίνονται στον υπολογιστή ώστε να υλοποιείται ο αλγόριθμος.

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

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

ΠαράδειγµαΠρογραµµατισµού

6. Εισαγωγή στον προγραµµατισµό

Εισαγωγή στην επιστήμη των υπολογιστών. Λογισμικό Υπολογιστών Κεφάλαιο 9ο Γλώσσες Προγραμματισμού

Μεθόδων Επίλυσης Προβλημάτων

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

Προγραμματισμός Ι (ΗΥ120)

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

Χρησιμοποιείται για να αποφασίσει το πρόγραμμα αν θα κάνει κάτι σε ένα σημείο της εκτέλεσής του, εξετάζοντας αν ισχύει ή όχι μια συνθήκη.

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

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

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

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

Πίνακες. 1 Πίνακες. 30 Μαρτίου 2014

Κεφάλαιο , 3.2: Συναρτήσεις II. (Διάλεξη 12)

Κεφάλαιο 3.1, : Συναρτήσεις I. ( ιάλεξη 11) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

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

Εργαστηριακή Άσκηση 1

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

Δυναμικές Ιστοσελίδες Εισαγωγή στην Javascript για προγραμματισμό στην πλευρά του client

Προγραμματισμός και Χρήση Ηλεκτρονικών Υπολογιστών - Βασικά Εργαλεία Λογισμικού

11. Συναρτήσεις (Μέρος Ι)

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

ΠΑΝΕΠΙΣΤΗΜΙΟ AΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ. Εισαγωγή στη Python

Εισαγωγή στον Προγραµµατισµό. Διάλεξη 2 η : Βασικές Έννοιες της γλώσσας προγραµµατισµού C Χειµερινό Εξάµηνο 2011

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

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

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

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

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

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C

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

Εισαγωγή στην PHP. ΕΣΔ 516 Τεχνολογίες Διαδικτύου. Περιεχόμενα. Περιεχόμενα. ΕΣ 516: Τεχνολογίες ιαδικτύου. ΕΣ 516: Τεχνολογίες ιαδικτύου

ΚΕΦΑΛΑΙΟ 6 ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ. 03/01/09 Χαράλαμπος Τζόκας 1

Εισαγωγή στη γλώσσα προγραμματισμού C++

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

3ο σετ σημειώσεων - Πίνακες, συμβολοσειρές, συναρτήσεις

Κεφάλαιο Αλφαριθμητικές Σειρές Χαρακτήρων (Strings) (Διάλεξη 20) 1) Strings στη C

Η βασική συνάρτηση προγράμματος main()

Υπολογιστές Ι. Άδειες Χρήσης. Εισαγωγή. Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης

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

Κεφάλαιο 1 Εισαγωγή στη C

Βασικές Αρχές Προγραμματισμού

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

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

Δομημένος Προγραμματισμός. Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων

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

Συναρτήσεις και διαδικασίες

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

Transcript:

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

Αλγόριθμοι είναι μια ακολουθία από βήματα ή ενέργειες που είναι: Καλώς (σαφώς) ορισμένα Αποτελεσματικά (μπορούν να εκτελεστούν) Πεπερασμένα (τερματισμός) Συνήθως εφαρμόζονται πάνω σε δεδομένα Παραδείγματα αλγορίθμων Διαίρεση ακεραίων Υπολογισμός τετραγωνικής ρίζας Πολλαπλασιασμός ή αντιστροφή πινάκων Αναζήτηση και ταξινόμηση Εύρεση συντομότερης διαδρομής Ανάλυση ιατρικών εικόνων Πρατικάκης (CSD) Αλγόριθμοι και Προγράμματα CS100, 2015-2016 2 / 14

Χαρακτηριστικά Απαιτήσεις, Πρόβλημα, Προδιαγραφές Σχεδίαση και Ορθότητα Πολυπλοκότητα σε σχέση με το μέγεθος των δεδομένων (προαιρετικά για αυτό το μάθημα) Υπολογιστικό κόστος, χρόνος Κόστος σε μνήμη, χώρος Βελτιστοποίηση (προαιρετικά) Υλοποίηση Πρατικάκης (CSD) Αλγόριθμοι και Προγράμματα CS100, 2015-2016 3 / 14

Παράδειγμα: Πρόσθεση N αριθμών Απαιτήσεις, Πρόβλημα, Προδιαγραφές Υπολογίστε το άθροισμα N i = 1 + 2 + 3 + + N i=1 Σχεδίαση και Ορθότητα Ξεκινώ από το i = 1 Αρχικά, το άθροισμα μέχρι τώρα είναι Σ = 0 Για i = 1, 2,, N, προσθέτω i στο μέχρι τώρα Σ Πολυπλοκότητα Υπολογιστικό κόστος: 2N, ή O(N) Κόστος σε μνήμη: 2, ή O(1) Βελτιστοποίηση: Σ = N(N + 1) 2 Υπολογιστικό κόστος: 3, ή O(1) Κόστος σε μνήμη: 1, ή O(1) Πρατικάκης (CSD) Αλγόριθμοι και Προγράμματα CS100, 2015-2016 4 / 14

Παράδειγμα: Ταξινόμηση Απαιτήσεις, Πρόβλημα, Προδιαγραφές Ταξινομήστε N φυσικούς αριθμούς, μικρότερους από 1000 a[1], a[2], a[n] < 1000 Σχεδίαση και Ορθότητα Βρίσκω το μικρότερο και τον βάζω πρώτο Επαναλαμβάνω για τον επόμενο μικρότερο, κοκ Πιό τυπικά Για κ = 1 έως N Για λ = κ + 1 έως N Αν a[λ] < a[κ] τότε άλλαξε θέση των a[κ], a[λ] Πολυπλοκότητα Υπολογιστικό κόστος: T(N) = T(N 1) + N T(N) = ή O(N 2 ) Κόστος σε μνήμη: 2, ή O(1) N(N + 1) 2 Πρατικάκης (CSD) Αλγόριθμοι και Προγράμματα CS100, 2015-2016 5 / 14

Παράδειγμα: Ταξινόμηση (2) Βελτιστοποίηση Βελτιστοποίηση Για κ = 1 έως 1000 θέτω h[κ] = 0 Για κ = 1 έως N αυξάνω το h [a [κ]] κατά 1 Θέτω µ = 1 Για κ = 1 έως 1000 Για λ = 1 έως h[κ] Θέτω a[µ] = κ Θέτω µ = µ + 1 Πολυπλοκότητα Υπολογιστικό κόστος: 1000 + N + 1000 + 2N ή O(N) Κόστος σε μνήμη: 1003, ή O(1) Πρατικάκης (CSD) Αλγόριθμοι και Προγράμματα CS100, 2015-2016 6 / 14

Προγραμματισμός Πρόγραμμα: ένας αλγόριθμος σε συγκεκριμένη τυπική γλώσσα Γλώσσα μηχανής: η γλώσσα που ερμηνεύει το hardware, μόνο λογικά 0 και 1 (ή οι αντίστοιχες τάσεις στο κύκλωμα) Επίπεδα γλωσσών προγραμματισμού Χαμηλού επιπέδου, κοντά στη γλώσσα μηχανής Μεσαίου επιπέδου Υψηλού επιπέδου, κοντά στα μαθηματικά (ή την καθομιλουμένη) Η επιλογή γλώσσας προγραμματισμού εξαρτάται από την εφαρμογή Συνήθως: Χαμηλό επίπεδο γρήγορο πρόγραμμα Υψηλό επίπεδο εύκολος προγραμματισμός, λιγότερα λάθη Πολύ βασικό: η ικανότητα και εμπειρία του προγραμματιστή Πρατικάκης (CSD) Αλγόριθμοι και Προγράμματα CS100, 2015-2016 7 / 14

Γλώσσες προγραμματισμού Ανάλογα με τον τρόπο περιγραφής του αλγορίθμου Προστακτικές (imperative): C, Pascal, Fortran Παραδοσιακός τρόπος προγραμματισμού Το πρόγραμμα είναι ακολουθία εντολών και ορισμός νέων εντολών (ρουτίνες) Συναρτησιακές (functional): ML, Haskel, Lisp Μαθηματική περιγραφή υπολογισμών Το πρόγραμμα είναι ορισμοί μαθηματικών συναρτήσεων Δηλωτικές (declarative): Prolog, XML Δηλώσεις και ορισμοί Το πρόγραμμα είναι η λεπτομερής περιγραφή του αποτελέσματος Ανάλογα με τον τρόπο οργάνωσης του κώδικα Διαδικαστικές (procedural): C, Pascal Αντικειμενοστραφείς (Object-oriented): C++, Java Ανάλογα με το χώρο των προβλημάτων που λύνουν Παράλληλες, κατανεμημένες (parallel, distributed): CML, Erlang Διαδικτυακές: PHP, Javascript Πρατικάκης (CSD) Αλγόριθμοι και Προγράμματα CS100, 2015-2016 8 / 14

Προγράμματα σε C Εντολές και δεδομένα Εντολές Μια σειρά από βασικές πράξεις, εντολές στον επεξεργαστή Αποθηκεύονται στη μνήμη του υπολογιστή Δεδομένα Γράφονται και διαβάζονται από εντολές Αποθηκεύονται στη μνήμη του υπολογιστή Οι εντολές πρέπει να έχουν μια λογική αλληλουχία Να ακολουθούν συγκεκριμένα βήματα Αλγόριθμοι Πρατικάκης (CSD) Αλγόριθμοι και Προγράμματα CS100, 2015-2016 9 / 14

Παράδειγμα Το πρώτο C πρόγραμμα helloc #include <stdioh> int main() { printf( Hello, world!\n ); return 0; }

Παράδειγμα Το πρώτο C πρόγραμμα helloc #include <stdioh> int main() { printf( Hello, world!\n ); return 0; } Βιβλιοθήκη Input/Output: χρειάζεται για την printf() Πρατικάκης (CSD) Αλγόριθμοι και Προγράμματα CS100, 2015-2016 10 / 14

Παράδειγμα Το πρώτο C πρόγραμμα helloc #include <stdioh> int main() { printf( Hello, world!\n ); return 0; } Τύπος συνάρτησης: η main επιστρέφει ακέραιο Πρατικάκης (CSD) Αλγόριθμοι και Προγράμματα CS100, 2015-2016 10 / 14

Παράδειγμα Το πρώτο C πρόγραμμα Σε όλα τα προγράμματα C, η helloc εκτέλεση ξεκινάει από τη συνάρτηση main #include <stdioh> int main() { printf( Hello, world!\n ); return 0; } Πρατικάκης (CSD) Αλγόριθμοι και Προγράμματα CS100, 2015-2016 10 / 14

Παράδειγμα Το πρώτο C πρόγραμμα helloc #include <stdioh> int main() { printf( Hello, world!\n ); return 0; } Συνάρτηση εκτύπωσης: γράφει Hello, world! στην οθόνη και πηγαίνει στην επόμενη γραμμή Πρατικάκης (CSD) Αλγόριθμοι και Προγράμματα CS100, 2015-2016 10 / 14

Παράδειγμα Το πρώτο C πρόγραμμα helloc #include <stdioh> int main() { printf( Hello, world!\n ); return 0; } Κάθε εντολή τελειώνει με semicolon ; Πρατικάκης (CSD) Αλγόριθμοι και Προγράμματα CS100, 2015-2016 10 / 14

Παράδειγμα Το πρώτο C πρόγραμμα helloc #include <stdioh> int main() { printf( Hello, world!\n ); return 0; } Η συνάρτηση επιστρέφει 0 Πρατικάκης (CSD) Αλγόριθμοι και Προγράμματα CS100, 2015-2016 10 / 14

Δομή προγράμματος Στη C το πρόγραμμα είναι μια λίστα από συναρτήσεις maxc int max(int x, int y) { int z; if (x < y) { z = y; } else { z = x; } return z; }

Δομή προγράμματος Στη C το πρόγραμμα Όρισμα είναισυνάρτησης: μια λίστα απόοισυναρτήσεις τιμές maxc του x και του y καθορίζονται όταν καλούμε τη συνάρτηση int max(int x, int y) { int z; if (x < y) { z = y; } else { z = x; } return z; } Πρατικάκης (CSD) Αλγόριθμοι και Προγράμματα CS100, 2015-2016 11 / 14

Δομή προγράμματος Στη C το πρόγραμμα είναι μια λίστα από συναρτήσεις maxc Δήλωση τοπικής μεταβλητής: θα χρειαστούμε τη z για να αποθηκεύσουμε το αποτέλεσμα int max(int x, int y) { int z; if (x < y) { z = y; } else { z = x; } return z; } Πρατικάκης (CSD) Αλγόριθμοι και Προγράμματα CS100, 2015-2016 11 / 14

Δομή προγράμματος Στη C το πρόγραμμα είναι μια λίστα από συναρτήσεις maxc int max(int x, int y) { int z; if (x < y) { z = y; } else { z = x; } return z; } Η εντολή if ελέγχει μια συνθήκη Πρατικάκης (CSD) Αλγόριθμοι και Προγράμματα CS100, 2015-2016 11 / 14

Δομή προγράμματος Στη C το πρόγραμμα είναι μια λίστα από συναρτήσεις maxc int max(int x, int y) { int z; Συνθήκη: είναι το x μικρότερο από το y; if (x < y) { z = y; } else { z = x; } return z; } Πρατικάκης (CSD) Αλγόριθμοι και Προγράμματα CS100, 2015-2016 11 / 14

Δομή προγράμματος Στη C το πρόγραμμα είναι μια λίστα από συναρτήσεις maxc int max(int x, int y) { int z; if (x < y) { z = y; } else { z = x; } return z; } Αν ισχύει η συνθήκη, εκτελούνται οι εντολές του πρώτου block Πρατικάκης (CSD) Αλγόριθμοι και Προγράμματα CS100, 2015-2016 11 / 14

Δομή προγράμματος Στη C το πρόγραμμα είναι μια λίστα από συναρτήσεις maxc int max(int x, int y) { int z; if (x < y) { z = y; } else { z = x; } return z; } Αν δεν ισχύει η συνθήκη, εκτελούνται οι εντολές του else block Πρατικάκης (CSD) Αλγόριθμοι και Προγράμματα CS100, 2015-2016 11 / 14

Δημιουργία προγράμματος Πρατικάκης (CSD) Αλγόριθμοι και Προγράμματα CS100, 2015-2016 12 / 14

Δημιουργία προγράμματος πχ Bubble Sort Πρατικάκης (CSD) Αλγόριθμοι και Προγράμματα CS100, 2015-2016 12 / 14

Δημιουργία προγράμματος Πρατικάκης (CSD) Αλγόριθμοι και Προγράμματα CS100, 2015-2016 12 / 14

Δημιουργία προγράμματος Προγραμματιστής Πρατικάκης (CSD) Αλγόριθμοι και Προγράμματα CS100, 2015-2016 12 / 14

Δημιουργία προγράμματος Προγραμματιστής Γλώσσα προγραμματισμού Πρατικάκης (CSD) Αλγόριθμοι και Προγράμματα CS100, 2015-2016 12 / 14

Δημιουργία προγράμματος Προγραμματιστής Γλώσσα προγραμματισμού πχ bubblesortc Πρατικάκης (CSD) Αλγόριθμοι και Προγράμματα CS100, 2015-2016 12 / 14

Δημιουργία προγράμματος Προγραμματιστής Γλώσσα προγραμματισμού Πρατικάκης (CSD) Αλγόριθμοι και Προγράμματα CS100, 2015-2016 12 / 14

Δημιουργία προγράμματος Προγραμματιστής Γλώσσα προγραμματισμού Compiler Πρατικάκης (CSD) Αλγόριθμοι και Προγράμματα CS100, 2015-2016 12 / 14

Δημιουργία προγράμματος Προγραμματιστής Γλώσσα προγραμματισμού Compiler Ενδιάμεσος κώδικας Πρατικάκης (CSD) Αλγόριθμοι και Προγράμματα CS100, 2015-2016 12 / 14

Δημιουργία προγράμματος Προγραμματιστής Γλώσσα προγραμματισμού Compiler Ενδιάμεσος κώδικας πχ bubblesorto Πρατικάκης (CSD) Αλγόριθμοι και Προγράμματα CS100, 2015-2016 12 / 14

Δημιουργία προγράμματος Προγραμματιστής Γλώσσα προγραμματισμού Compiler Ενδιάμεσος κώδικας Πρατικάκης (CSD) Αλγόριθμοι και Προγράμματα CS100, 2015-2016 12 / 14

Δημιουργία προγράμματος Προγραμματιστής Γλώσσα προγραμματισμού Compiler Ενδιάμεσος κώδικας Linker Πρατικάκης (CSD) Αλγόριθμοι και Προγράμματα CS100, 2015-2016 12 / 14

Δημιουργία προγράμματος Προγραμματιστής Γλώσσα προγραμματισμού Compiler Ενδιάμεσος κώδικας Linker Τελικό εκτελέσιμο Πρατικάκης (CSD) Αλγόριθμοι και Προγράμματα CS100, 2015-2016 12 / 14

Δημιουργία προγράμματος Προγραμματιστής Γλώσσα προγραμματισμού Compiler Ενδιάμεσος κώδικας Linker Τελικό εκτελέσιμο πχ bubblesortexe Πρατικάκης (CSD) Αλγόριθμοι και Προγράμματα CS100, 2015-2016 12 / 14

Δημιουργία προγράμματος Προγραμματιστής Στο Linux Γλώσσα προγραμματισμού Compile & Link: $ gcc -Wall -g bubblesortc Compiler -o bubblesort Execute: $ /bubblesortενδιάμεσος κώδικας Linker Τελικό εκτελέσιμο Πρατικάκης (CSD) Αλγόριθμοι και Προγράμματα CS100, 2015-2016 12 / 14

Δημιουργία προγράμματος Προγραμματιστής Γλώσσα προγραμματισμού Compiler Ενδιάμεσος κώδικας Linker Τελικό εκτελέσιμο Πρατικάκης (CSD) Αλγόριθμοι και Προγράμματα CS100, 2015-2016 12 / 14

Δημιουργία προγράμματος Προγραμματιστής Γλώσσα προγραμματισμού Compiler Ενδιάμεσος κώδικας Linker Τελικό εκτελέσιμο Συντακτικά λάθη Πρατικάκης (CSD) Αλγόριθμοι και Προγράμματα CS100, 2015-2016 12 / 14

Δημιουργία προγράμματος Προγραμματιστής Γλώσσα προγραμματισμού Συντακτικά λάθη Compiler Ενδιάμεσος κώδικας Λάθη συμβόλων Linker Τελικό εκτελέσιμο Πρατικάκης (CSD) Αλγόριθμοι και Προγράμματα CS100, 2015-2016 12 / 14

Δημιουργία προγράμματος Προγραμματιστής Γλώσσα προγραμματισμού Συντακτικά λάθη Compiler Ενδιάμεσος κώδικας Λάθη συμβόλων Linker Τελικό εκτελέσιμο Run-time λάθη Πρατικάκης (CSD) Αλγόριθμοι και Προγράμματα CS100, 2015-2016 12 / 14

Δημιουργία προγράμματος Λογικά λάθη Προγραμματιστής Γλώσσα προγραμματισμού Συντακτικά λάθη Compiler Ενδιάμεσος κώδικας Λάθη συμβόλων Linker Τελικό εκτελέσιμο Run-time λάθη Πρατικάκης (CSD) Αλγόριθμοι και Προγράμματα CS100, 2015-2016 12 / 14

Διερμηνευόμενες Γλώσσες Πρατικάκης (CSD) Αλγόριθμοι και Προγράμματα CS100, 2015-2016 13 / 14

Διερμηνευόμενες Γλώσσες πχ Bubble Sort Πρατικάκης (CSD) Αλγόριθμοι και Προγράμματα CS100, 2015-2016 13 / 14

Διερμηνευόμενες Γλώσσες Πρατικάκης (CSD) Αλγόριθμοι και Προγράμματα CS100, 2015-2016 13 / 14

Διερμηνευόμενες Γλώσσες Προγραμματιστής Πρατικάκης (CSD) Αλγόριθμοι και Προγράμματα CS100, 2015-2016 13 / 14

Διερμηνευόμενες Γλώσσες Προγραμματιστής Γλώσσα προγραμματισμού Πρατικάκης (CSD) Αλγόριθμοι και Προγράμματα CS100, 2015-2016 13 / 14

Διερμηνευόμενες Γλώσσες Προγραμματιστής Γλώσσα προγραμματισμού πχ bubblesortc Πρατικάκης (CSD) Αλγόριθμοι και Προγράμματα CS100, 2015-2016 13 / 14

Διερμηνευόμενες Γλώσσες Προγραμματιστής Γλώσσα προγραμματισμού Πρατικάκης (CSD) Αλγόριθμοι και Προγράμματα CS100, 2015-2016 13 / 14

Διερμηνευόμενες Γλώσσες Προγραμματιστής Γλώσσα προγραμματισμού Interpreter Πρατικάκης (CSD) Αλγόριθμοι και Προγράμματα CS100, 2015-2016 13 / 14

Διερμηνευόμενες Γλώσσες Εκτελέσιμο Προγραμματιστής Γλώσσα προγραμματισμού Interpreter Πρατικάκης (CSD) Αλγόριθμοι και Προγράμματα CS100, 2015-2016 13 / 14

Διαδικασία εκτέλεσης Φόρτωμα του κώδικα στη μνήμη Δέσμευση χώρου στη μνήμη για τις καθολικές μεταβλητές Εκτέλεση της συνάρτησης main() Οι τοπικές μεταβλητές; On-the-fly: Κάθε συνάρτηση δεσμεύει όση μνήμη χρειάζεται όταν αρχίζει Τελειώνοντας, απελευθερώνει ξανά τη μνήμη των τοπικών μεταβλητών Πρατικάκης (CSD) Αλγόριθμοι και Προγράμματα CS100, 2015-2016 14 / 14