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

Σχετικά έγγραφα
Η γλώσσα προγραμματισμού C

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

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

Προγραμματισμός Υπολογιστών με C++

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Προγραμματισμός Ι. Δυναμική Διαχείριση Μνήμης. Δημήτρης Μιχαήλ. Ακ. Έτος Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

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

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

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

(Κεφάλαιο 2.7 και 12) Αρχεία στην C. (Διάλεξη 15)

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

Ανάπτυξη και Σχεδίαση Λογισμικού

Προγραμματισμός H/Y Ενότητα 1: Εισαγωγή. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Εισαγωγή στην C. Μορφή Προγράµµατος σε γλώσσα C

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

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

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

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

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

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

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

Εισαγωγή ΕΙΣΑΓΩΓΗ. Γεώργιος Παπαϊωάννου ( )

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Προγραµµατισµός Ι Εισαγωγή Πανεπιστήµιο Πελοποννήσου Τµήµα Πληροφορικής & Τηλεπικοινωνιών Προγραµµατισµός Ι Νικόλαος Δ. Τσελίκας

ΑΣΚΗΣΗ 2: ΔΟΜΗ ΠΡΟΓΡΑΜΜΑΤΟΣ C, ΧΕΙΡΙΣΜΟΣ ΜΕΤΑΒΛΗΤΩΝ ΚΑΙ ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥ ΚΑΙ ΕΞΟΔΟΥ

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

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

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

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

Γνωριμία με το μάθημα

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

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

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

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

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

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

Προγραμματισμός Μεθόδων Επίλυσης Προβλημάτων. 1. Εισαγωγή. Ιωάννης Κατάκης. ΕΠΛ 032: Προγραμματισμός Μεθόδων Επίλυσης Προβλημάτων

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

Μεταφερσιμότητα Τα προγράμματα μεταφέρονται εύκολα σε διαφορετικά λειτουργικά συστήματα

Εξοικείωση με το πρόγραμμα DEV C++ Επικοινωνία Χρήστη - Υπολογιστή

Προγραμματισμός Ι. Είσοδος/Έξοδος. Δημήτρης Μιχαήλ. Ακ. Έτος Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ

ΕΡΓΑΣΤΗΡΙΟ 6: Συναρτήσεις και Αναδρομή

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

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

(Κεφάλαιο 2.7 και 12) Αρχεία στην C. ( ιάλεξη 13) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

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

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

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

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

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

Εργαστήριο 9: Αρχεία

Κεφάλαιο : Επαναλήψεις (o βρόγχος While) (Διάλεξη 9) Δομές Έλεγχου Προγράμματος

Κεφάλαιο ΙV: Δείκτες και πίνακες. 4.1 Δείκτες.

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

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

Mεταγλωττιστές. 4 ο εργαστηριακό μάθημα Λεξική ανάλυση και flex. Θεωρία

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

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

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

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

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

Γλώσσα Προγραμματισμού C. Προγραμματισμός HY: Γλώσσα Προγραμματισμού C. Γρήγορος Πίνακας Αναφοράς Σύνταξης. Εισήγηση #4. Επαναληπτικές δομές:

Μέρος 2 Κατασκευή Συντακτικού Αναλυτή

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

ΜΕΤΑΓΛΩΤΤΙΣΤΕΣ. Στην εξοικείωση με τη διαδικασία κατασκευής ενός Λεξικού Αναλυτή κάνοντας χρήση του lex.

Στόχοι και αντικείμενο ενότητας. Εκφράσεις. Η έννοια του τελεστή. #2.. Εισαγωγή στη C (Μέρος Δεύτερο) Η έννοια του Τελεστή

Οι εντολές ελέγχου της ροής ενός προγράμματος.

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

Κεφάλαιο : Επαναλήψεις (oι βρόχος While) ( ιάλεξη 9) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

Εισαγωγή στο προγραμματιστικό περιβάλλον ANSI

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

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

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

Transcript:

Εισαγωγή στον Προγραμματισμό Εισαγωγή Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2012-2013

Βιβλιογραφία "C Προγραμματισμός", Deitel & Deitel, Πέμπτη Έκδοση, Εκδόσεις Γκιούρδας, 2010 "Η Γλώσσα Προγραμματισμού C", B. W. Kernighan, D. M. Ritchie, Δεύτερη Έκδοση, Κλειδάριθμος, 2008 Το μάθημα θα βασιστεί στο πρώτο βιβλίο, το οποίο και προτείνω να διαλέξετε. Χαροκόπειο Πανεπιστήμιο 2/21

Διαφάνειες Υλικό για το μάθημα θα παρουσιάζεται σταδιακά στις τοποθεσίες: ηλεκτρονική πλατφόρμα ασύγχρονης τηλεκπαίδευσης http://leo.hua.gr/eclass/courses/dit135 Χαροκόπειο Πανεπιστήμιο 3/21

Τι είναι ο υπολογιστής Ένας υπολογιστής είναι μία συσκευή που μπορεί να εκτελέσει υπολογισμούς και να πάρει λογικές αποφάσεις, με ταχύτητες δισεκατομμύρια φορές μεγαλύτερες από εκείνες των ανθρώπινων όντων. Αλλά για να ξέρει τι να κάνει ένας υπολογιστής, πρέπει κάποιος να του δώσει οδηγίες. Στο μάθημα αυτό θα μάθουμε να δίνουμε οδηγίες σε έναν υπολογιστή! Χαροκόπειο Πανεπιστήμιο 4/21

H Ανατομία ενός Υπολογιστή Χαροκόπειο Πανεπιστήμιο 5/21

H Ανατομία ενός Υπολογιστή Συσκευές Εισόδου: πληκτρολόγια, ποντίκι, οθόνη αφής, κ.τ.λ Χαροκόπειο Πανεπιστήμιο 5/21

H Ανατομία ενός Υπολογιστή Συσκευές Εξόδου: οθόνη, εκτυπωτής, κ.τ.λ Χαροκόπειο Πανεπιστήμιο 5/21

H Ανατομία ενός Υπολογιστή μονάδα υπολογιστή: κεντρική μονάδα επεξεργασίας (CPU), μονάδα μνήμης, μονάδα δευτερεύουσας αποθήκευσης (π.χ σκληρός δίσκος), αριθμητική και λογική μονάδα (συνήθως μέσα στη CPU), δίαυλος επικοινωνίας (bus) για επικοινωνία των διαφόρων μονάδων, κ.τ.λ Χαροκόπειο Πανεπιστήμιο 5/21

Λογισμικό Ο υπολογιστής χρειάζεται και οδηγίες για το τι να κάνει. Αυτό το ρόλο παίζουν τα διάφορα προγράμματα: BIOS: πρόγραμμα που βοηθάει τον υπολογιστή να ξεκινήσει Χαροκόπειο Πανεπιστήμιο 6/21

Λογισμικό Ο υπολογιστής χρειάζεται και οδηγίες για το τι να κάνει. Αυτό το ρόλο παίζουν τα διάφορα προγράμματα: BIOS: πρόγραμμα που βοηθάει τον υπολογιστή να ξεκινήσει λειτουργικό σύστημα: πρόγραμμα που παίρνει τον έλεγχο μετά την εκκίνηση και διαχειρίζεται όλους τους πόρους του υπολογιστή, τις συσκευές εισόδου και εξόδου και γενικά φροντίζει για την εκτέλεση άλλων προγραμμάτων (π.χ Windows, Linux, SunOS, MacOSX, κ.τ.λ) Χαροκόπειο Πανεπιστήμιο 6/21

Λογισμικό Ο υπολογιστής χρειάζεται και οδηγίες για το τι να κάνει. Αυτό το ρόλο παίζουν τα διάφορα προγράμματα: BIOS: πρόγραμμα που βοηθάει τον υπολογιστή να ξεκινήσει λειτουργικό σύστημα: πρόγραμμα που παίρνει τον έλεγχο μετά την εκκίνηση και διαχειρίζεται όλους τους πόρους του υπολογιστή, τις συσκευές εισόδου και εξόδου και γενικά φροντίζει για την εκτέλεση άλλων προγραμμάτων (π.χ Windows, Linux, SunOS, MacOSX, κ.τ.λ) εφαρμογές γενικής χρήσης: προγράμματα φτιαγμένα με συγκεκριμένο σκοπό, π.χ αναπαραγωγή ταινιών, επεξεργασία εικόνας, κειμενογράφοι, παιχνίδια, κ.τ.λ Χαροκόπειο Πανεπιστήμιο 6/21

Τι καταλαβαίνει ένας υπολογιστής; Ένας υπολογιστής καταλαβαίνει από 0 και από 1 Χαροκόπειο Πανεπιστήμιο 7/21

Τι καταλαβαίνει ένας υπολογιστής; Ένας υπολογιστής καταλαβαίνει από 0 και από 1 Αλλά ένας άνθρωπος δε μπορεί εύκολα να μιλάει στον υπολογιστή με 0 και 1 π.χ 000000 00001 00010 00110 00000 100000 σε μία αρχιτεκτονική λέει στον υπολογιστή να προσθέσει τους καταχωρητές 1 και 2 και να βάλει το αποτέλεσμα τον καταχωρητή 6. Χαροκόπειο Πανεπιστήμιο 7/21

Από τις Γλώσσες Μηχανής μέχρι και σήμερα γλώσσα μηχανής συμβολομεταφραστικές γλώσσες (assembly language) η οποία περιέχει συντομεύσεις της αγγλικής γλώσσας, π.χ ADD32 6, 1, 2 Ένα πρόγραμμα, ο assembler αναλαμβάνει να μετατρέψει την παραπάνω εντολή σε γλώσσα μηχανής. γλώσσες υψηλού επιπέδου που μας δίνουν την δυνατότητα να γράφουμε οδηγίες που μοιάζουν σχεδόν όπως τα καθομιλουμένα αγγλικά και περιέχουν συνήθη μαθηματικά σύμβολα, π.χ x6 = x1 + x2; Ένα ακόμη πρόγραμμα ο μεταγλωττιστής (compiler) αναλαμβάνει να μετατρέψει το πρόγραμμα υψηλού επιπέδου σε συμβολομεταφραστική γλώσσα. Χαροκόπειο Πανεπιστήμιο 8/21

Η Ιστορία της C 1969-1973 AT & T Bell Labs, Dennis Ritchie 1978 The C Programming Language K & R: Kernighan & Ritchie 1983 Σύσταση ANSI Standardization Committee X3J11 1989-1990 Αποδοχή ANSI/ISO Standard (ANSI C) 1990-1999 Αναθεώρηση του standard υπό εξέλιξη C9X (C99) Χαροκόπειο Πανεπιστήμιο 9/21

Χαρακτηριστικά της C Μικρό μέγεθος Χαροκόπειο Πανεπιστήμιο 10/21

Χαρακτηριστικά της C Μικρό μέγεθος Χρήση συναρτήσεων Χαροκόπειο Πανεπιστήμιο 10/21

Χαρακτηριστικά της C Μικρό μέγεθος Χρήση συναρτήσεων Χαλαρό σύστημα τύπων (loose typing) Χαροκόπειο Πανεπιστήμιο 10/21

Χαρακτηριστικά της C Μικρό μέγεθος Χρήση συναρτήσεων Χαλαρό σύστημα τύπων (loose typing) Δομημένη γλώσσα (structured language) Χαροκόπειο Πανεπιστήμιο 10/21

Χαρακτηριστικά της C Μικρό μέγεθος Χρήση συναρτήσεων Χαλαρό σύστημα τύπων (loose typing) Δομημένη γλώσσα (structured language) Χαμηλού επιπέδου προγραμματισμός Χαροκόπειο Πανεπιστήμιο 10/21

Χαρακτηριστικά της C Μικρό μέγεθος Χρήση συναρτήσεων Χαλαρό σύστημα τύπων (loose typing) Δομημένη γλώσσα (structured language) Χαμηλού επιπέδου προγραμματισμός Ο προγραμματιστής έχει πλήρη έλεγχο (αλλά και δύναμη) και ευθύνεται για τα σφάλματα του. Χαροκόπειο Πανεπιστήμιο 10/21

Χαρακτηριστικά της C Η C είναι πάρα πολύ γνωστή για διάφορους λόγους: έχει υψηλού επιπέδου δομές μπορεί να χρησιμοποιηθεί για χαμηλού επιπέδου προγραμματισμό παράγει πολύ αποτελεσματικά προγράμματα μπορεί να μεταγλωττιστεί σε πάρα πολλές πλατφόρμες Οι γλώσσες C++, Java, C#, PHP, κ.τ.λ που θα μάθετε αργότερα όλες βασίζονται στην C. Χαροκόπειο Πανεπιστήμιο 11/21

Δομημένος Προγραμματισμός Βασίζεται στην οργάνωση του προγράμματος σε μικρές, αυτόνομα κατανοητές, οντότητες. Κάθε τέτοια οντότητα πρέπει να έχει ένα σημείο εισόδου και ένα σημείο εξόδου. Χαροκόπειο Πανεπιστήμιο 12/21

Δομημένος Προγραμματισμός Βασίζεται στην οργάνωση του προγράμματος σε μικρές, αυτόνομα κατανοητές, οντότητες. Κάθε τέτοια οντότητα πρέπει να έχει ένα σημείο εισόδου και ένα σημείο εξόδου. Η δομή ενός προγράμματος βασίζεται στις τρεις παρακάτω λογικές δομές:.1 ακολουθία (sequence).2 επιλογή (condition).3 επανάληψη (repetition) Με τις παραπάνω δομές μπορεί να εκφραστεί οποιοσδήποτε αλγόριθμος. Χαροκόπειο Πανεπιστήμιο 12/21

Δομημένος Προγραμματισμός Βασίζεται στην οργάνωση του προγράμματος σε μικρές, αυτόνομα κατανοητές, οντότητες. Κάθε τέτοια οντότητα πρέπει να έχει ένα σημείο εισόδου και ένα σημείο εξόδου. Η δομή ενός προγράμματος βασίζεται στις τρεις παρακάτω λογικές δομές:.1 ακολουθία (sequence).2 επιλογή (condition).3 επανάληψη (repetition) Με τις παραπάνω δομές μπορεί να εκφραστεί οποιοσδήποτε αλγόριθμος. Σε εξαιρετικές περιπτώσεις όπου είναι αναγκαία κάποια παρέκλιση από την χρήση μόνο των παραπάνω, πρέπει να γίνεται τεκμηριωμένα. Χαροκόπειο Πανεπιστήμιο 12/21

Το πρώτο πρόγραμμα σε γλώσσα C 1 / * 2 Hello world program i n C 3 * / 4 #include < s t d i o. h> 5 6 int main ( ) 7 { 8 printf ( "Hello, world!\n" ) ; 9 10 return 0 ; 11 } το οποίο λέει στον υπολογιστή να εκτυπώσει στην οθόνη το μήνυμα "hello, world". Χαροκόπειο Πανεπιστήμιο 13/21

Διαδικασία Μεταγλώττισης πρόγραµµα επεξεργασίας κειµένου if a<b (lib ref) do while z = x-y (lib ref) προεπεξεργαστής if a<b (lib ref) do while z = x-y (lib ref) Πηγαίος Κώδικας Επεξεργασµένος Κώδικας 01100100 11011010 11001001 00010001 11110001 πρόγραµµα σύνδεσης 01100100 (lib ref) 11001001 00010001 (lib ref) µεταγλωττιστής Εκτελέσιµο Αρχείο Κώδικας Αντικειµένου 01100101 00010111 10001001 11011010 11110001 Βιβλιοθήκη Χαροκόπειο Πανεπιστήμιο 14/21

Αναλυτική Επεξήγηση Προγράμματος 1 / * 2 Hello world program i n C 3 * / Οτιδήποτε είναι ανάμεσα σε /* */ είναι σχόλια τα οποία αφαιρούνται τελείως από τον προεπεξεργαστή. Χαροκόπειο Πανεπιστήμιο 15/21

Αναλυτική Επεξήγηση Προγράμματος 4 #include < s t d i o. h> Δίνει οδηγίες στον μεταγλωττιστή (πιο συγκεκριμένα στον προ-επεξεργαστή) να διαβάσει το αρχείο stdio.h το οποίο περιέχει κάποιες βοηθητικές συναρτήσεις για να εκτυπώνουμε στην οθόνη. Στην προκειμένη περίπτωση την συνάρτηση printf(). Χαροκόπειο Πανεπιστήμιο 16/21

Αναλυτική Επεξήγηση Προγράμματος 6 int main ( ) 7 { 11 } και είναι ο ορισμός της συνάρτησης main() η οποία υπάρχει σε κάθε πρόγραμμα C και λέει στον υπολογιστή από που να ξεκινήσει την εκτέλεση του προγράμματος. Η συνάρτηση main() μόλις τελειώσει την εκτέλεση της επιστρέφει μία τιμή ακεραίου int στον χρήστη. Οι αγκύλες υποδηλώνουν την αρχή και το τέλος της συνάρτησης. Χαροκόπειο Πανεπιστήμιο 17/21

Αναλυτική Επεξήγηση Προγράμματος 8 printf ( "Hello, world!\n" ) ; εκτελεί μία συνάρτηση (ορισμένη στο αρχείο που διαβάστηκε με την εντολή #include <stdio.h>) η οποία τυπώνει στην οθόνη του υπολογιστή την ακολουθία χαρακτήρων hello, world το \n υποδηλώνει έναν ειδικό χαρακτήρα στην C που σημαίνει newline (νέα γραμμή) και υποδηλώνει στον υπολογιστή πως πρέπει να αλλάξει γραμμή στην οθόνη. Ολόκληρη η γραμμή είναι μία πρόταση και κάθε πρόταση πρέπει να τερματίζεται πάντα με ένα ελληνικό ερωτηματικό. Χαροκόπειο Πανεπιστήμιο 18/21

Αναλυτική Επεξήγηση Προγράμματος 10 return 0 ; εκτελεί μία πρόταση ακόμη που λέει στο πρόγραμμα να σταματήσει την εκτέλεση την συνάρτησης main() και να επιστρέψει στον χρήστη την τιμή 0. Χαροκόπειο Πανεπιστήμιο 19/21

Γενικές Γραμμές Προγραμματισμού να χρησιμοποιείτε σχόλια ώστε ο κώδικας να είναι ευανάγνωστος και από 3ους μεταξύ των αγκίστρων { } ο κώδικας που εμφανίζεται πρέπει να είναι στοιχισμένος πιο δεξιά (π.χ με 1 tab ή με 8 κενά) ώστε να είναι πιο ευδιάκριτος τα προγράμματα σας πρέπει να είναι απλά, δηλαδή να αποφεύγεται η χρήση "προγραμματιστικών κόλπων" Χαροκόπειο Πανεπιστήμιο 20/21

Παράδειγμα προς Αποφυγή 1 #include <stdio. h> 2 3 main ( t, _, a ) 4 char *a ; 5 { return!0 <t?t<3?main( 79, 13,a+main( 87,1 _, 6 main( 86, 0, a+1 )+a ) ) : 1, t<_?main ( t+1, _, a ) : 3, main ( 94, 27+t, a 7 )&&t == 2?_<13?main ( 2, _+1, "%s %d %d\n" ) : 9 : 1 6 : t<0?t< 72?main ( _, 8 t, "@n'+,#'/*{}w+/w#cdnr/+,{}r/*de}+,/*{*+,/w{%+,/w#q#n+,/#{l,+,/n{n+\ 9,/+#n+,/#;#q#n+,/+k#;*+,/'r :'d*'3,}{w+k w'k:'+}e#';dq#'l q#'+d'k#!/\ 10 +k#;q#'r}ekk#}w'r}ekk{nl]'/#;#q#n'){)#}w'){){nl]'/+#n';d}rw' i;# ){n\ 11 l]!/n{n#'; r{#w'r nc{nl]'/#{l,+'k {rw' ik{;[{nl]'/w#q#\ 12 n'wk nw' iwk{kk{nl]!/w{%'l##w#' i; :{nl]'/*{q#'ld;r'}{nlwb!/*de}'c \ 13 ;;{nl'-{}rw]'/+,}##'*}#nc,',#nw]'/+kd'+e}+;\ 14 #'rdq#w! nr'/ ') }+}{rl#'{n' ')# }'+}##(!!/" ) 15 : t< 50?_==*a?putchar ( a [ 3 1 ] ) : main( 65,_, a + 1 ) : main ( ( * a == '/')+t, _, a \ 16 +1 ):0 <t?main ( 2, 2, "%s" ) : * a=='/' main ( 0, main( 61,*a, "!ek;dc \ 17 i@bk'(q)-[w]*%n+r3#l,{}:\nuwloca-o;m.vpbks,fxntdceghiry" ), a + 1 ) ; } Αυτός ο κώδικας μπορεί να μεταγλωττιστεί με επιτυχία!! Χαροκόπειο Πανεπιστήμιο 21/21