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

Σχετικά έγγραφα
Δομημένος Προγραμματισμός (ΤΛ1006)

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

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

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

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

Προγραμματισμό για ΗΜΥ

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

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

Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: ΕΠΛ 131 Αρχές Προγραµµατισµού I 3-2

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

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

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

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

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

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

Οικονόμου Βαγγέλησ Διάλεξη Νο 2. Δομημένοσ Προγραμματιςμόσ - Διάλεξη 2

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

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

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

Η Γλώσσα C Μία Σφαιρική Ανασκόπηση

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

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

Στοιχειώδης προγραμματισμός σε C++

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

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

ΗΥ-150. Προγραµµατισµός. Εντολές Ελέγχου Ροής

ΗΥ-150. Προγραμματισμός

Προγραμματισμός Η/Υ. Ενότητα 2β: Εισαγωγή στη C (Μέρος Δεύτερο)

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

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

ΗΥ-150. Προγραμματισμός

Διάλεξη 3: Προγραμματισμός σε JAVA I. Διδάσκων: Παναγιώτης Ανδρέου

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

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

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

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

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

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

Εντολές εισόδου - εξόδου. Εισαγωγή στη C++

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

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

Γλώσσα Προγραμματισμού C

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

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

Κεφάλαιο 4: Συνθήκες Έλεγχου (if-else, switch) και Λογικοί τελεστές / παραστάσεις. (Διάλεξη 8)

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

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

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

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

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

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

Κεφάλαιο : Εισαγωγή στην C: (Διαλέξεις 3-4)

a = 10; a = k; int a,b,c; a = b = c = 10;

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

3.1 Αριθμητικοί και Λογικοί Τελεστές, Μετατροπές Τύπου (Casting)

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

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

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

2.1. Εντολές Σχόλια Τύποι Δεδομένων

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

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

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

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

Ηλεκτρονικοί Υπολογιστές

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική

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

Ασκήσεις σε Επαναληπτικούς Βρόχους και Συναρτήσεις. Επανάληψη για την ενδιάμεση εξέταση. (Διάλεξη 13)

ΕΠΛ 032.3: Προγραµµατισµός ΜεθόδωνΕπίλυσηςΠροβληµάτων

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 3 Ο. Σταθερές-Παράμετροι-Μεταβλητές Αριθμητικοί & Λογικοί Τελεστές Δομή ελέγχου-επιλογής Σύνθετοι έλεγχοι

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

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

Βασικοί τύποι δεδομένων (Pascal) ΕΠΑ.Λ Αλίμου Γ Πληροφορική Δομημένος Προγραμματισμός (Ε) Σχολ. Ετος Κων/νος Φλώρος

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

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

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

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

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

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

Δεδομένα, Τύποι και Τιμές

ΒΑΣΙΚΟΙ ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ

Λογικό "και" (AND) μας επιστρέφει 1 αν και οι δύο operands είναι όχι μηδέν, διαφορετικά 0)

Η πρώτη παράμετρος είναι ένα αλφαριθμητικό μορφοποίησης

ΑΣΚΗΣΗ 2: ΧΕΙΡΙΣΜΟΣ ΜΕΤΑΒΛΗΤΩΝ ΣΤΗ C

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

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

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

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 2 Εντολές Εισόδου/Εξόδου Τελεστές. Δρ. Γιώργος Λαμπρινίδης 23/10/2015 Η - Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ 1

ΦΥΛΛΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ 1

Γλώσσα Προγραμματισμού C

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

Προγραμματισμός Ι (HY120)

ΚΕΦΑΛΑΙΟ 8 Η ΓΛΩΣΣΑ PASCAL

Οντοκεντρικός Προγραμματισμός

Pascal, απλοί τύποι, τελεστές και εκφράσεις

Προγραμματισμός Ι. Θεματική ενότητα 3: Tελεστές. εκφράσεις

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

Υπολογισμός - Εντολές Ελέγχου

Ενώσεις δεδομένων Απαριθμητές Ψηφιακοί τελεστές Αναδρομικές συναρτήσεις

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

ΣΥΝΟΠΤΙΚΟΣ ΟΔΗΓΟΣ ΓΛΩΣΣΑΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ C

Transcript:

Τμήμα Ηλεκτρονικών Μηχανικών Τ.Ε.Ι. Κρήτης Προγραμματισμός Η/Υ (ΤΛ2007 ) Δρ. Μηχ. Νικόλαος Πετράκης (npet@chania.teicrete.gr) Ιστοσελίδα Μαθήματος: https://eclass.chania.teicrete.gr/ Εξάμηνο: Εαρινό 2015-16

Συμβολικές Σταθερές Μία συμβολική σταθερά είναι μία σταθερά που αναπαρίσταται από ένα όνομα. Μία συμβολική σταθερά δεν μπορεί να μεταβληθεί. Για την δήλωση μίας σταθεράς χρησιμοποιούμε το #define π.χ. #define PI 3.14159 Χωρίς ίσον και χωρίς ερωτηματικό στο τέλος! Προτείνεται η χρήση κεφαλαίων χαρακτήρων για να ξεχωρίζουν εύκολα από τις μεταβλητές. Οι εντολές define μπορούν να τοποθετούνται οπουδήποτε στον πηγαίο κώδικα αλλά είναι σε ισχύ μόνο για το τμήμα του πηγαίου κώδικα που ακολουθεί μετά τη define. Οι προγραμματιστές πιο συχνά ομαδοποιούν τις define στην αρχή της main() ή του κάθε αρχείου. 2

Αναπαράσταση των σταθερών στην C Σταθερά απαρίθμησης (enumeration constant) Σύνταξη: enum [ <type_tag> ] { <constant_name> [ = <value> ], }[var_list]; Παραδείγματα: enum boolean {NO, YES} ; enum months {JAN=1, FEB, MAR, } ; (αλλιώς θα ήταν JAN=0) 3

Μεταβλητές Μεταβλητή (variable) είναι η θέση αποθήκευσης δεδομένων η οποία μπορεί να δέχεται τιμές κατά τη διάρκεια της εκτέλεσης του προγράμματος. Στη C οι μεταβλητές πρέπει: 1. Να έχουν δηλωθεί σε κάποια εντολή δήλωσης, συνήθως στην αρχή ενός αρχείου πηγαίου κώδικα, ή στην αρχή μιας συνάρτησης 2. Να έχουν συγκεκριμένο τύπο δεδομένων 3. Να έχουν αρχική τιμή πριν χρησιμοποιηθούν για πρώτη φορά 4. Τα δεδομένα (οι τιμές) που αποθηκεύονται στη μεταβλητή πρέπει να είναι του ίδιου ή συμβατού τύπου με αυτόν της μεταβλητής 4

Δηλώσεις μεταβλητών Για να δηλώσουμε μια μεταβλητή πρέπει πρώτα να ορίσουμε τον τύπο και μετά το όνομα της μεταβλητής, π.χ.: short int a; /* δήλωση μεταβλητής τύπου μικρού ακεραίου */ int i, k, l; /* δήλωση 3 ακέραιων μεταβλητών */ char c, line[100]; /* δήλωση χαρακτήρα και πίνακα χα/ρων */ float periferia, emvadon; /* δήλωση πραγματικών */ char cp= a ; char esc = \\ ; int k=0; /* με αρχική τιμή */ int m = MX + 5; float eps = 1.0e-5; /* δήλωση πραγματικού απλής ακρίβειας */ double e = 2.7; /* δήλωση πραγματικού διπλής ακρίβειας */ float inch = 2.54; ή float inch = 254e-2; long double pi = 314159265359e-11; /* εκτεταμένης ακρίβειας */ 5

Ονόματα μεταβλητών Τα ονόματα των μεταβλητών σ ένα πρόγραμμα C πρέπει να αρχίζουν με γράμμα και μπορούν να περιέχουν αλφαριθμητικούς χαρακτήρες, δηλαδή: γράμματα, ψηφία και το σύμβολο underscore (_). Δεν μπορούν να περιέχουν ειδικούς χαρακτήρες όπως: #, &, *,., +, -, /, (, {, κλπ. Τα ονόματα count και Count αντιστοιχούν σε διαφορετικές μεταβλητές (διαχωρισμός πεζώνκεφαλαίων). Υπάρχουν συγκεκριμένα ονόματα τα οποία αναφέρονται σε λέξεις κλειδιά της C τα οποία δεν μπορούν να χρησιμοποιηθούν ως ονόματα μεταβλητών. 6

Λέξεις κλειδιά (δεσμευμένες λέξεις) που δεν μπορούν να χρησιμοποιηθούν ως ονόματα μεταβλητών auto double int struct break else long switch case enum register typedef char extern return union const float short unsigned continue for signed void default goto sizeof volatile do if static while 7

Καλές πρακτικές ονομασίας μεταβλητών Χρήση μικρών χαρακτήρων (όχι κεφαλαίων) Αποφυγή χρήσης μικρών και κεφαλαίων για δύο διαφορετικές μεταβλητές π.χ. one και ONE Χρήση μνημονικών ονομάτων που είναι περιγραφικά, π.χ. interestrate αντί ir Κατανοητή σύνταξη για πολύπλοκα ονόματα π.χ. interestrate, ή interest_rate αντί interestrate 8

Χρήση του const για μεταβλητές που δεν αλλάζουν τιμή! O δεύτερος τρόπος δήλωσης μιας συμβολικής σταθεράς είναι με τη λέξη κλειδί const. Μία τιμή const δεν μπορεί να τροποποιηθεί κατά τη διάρκεια του προγράμματος, δέχεται μόνο αρχική τιμή τη στιγμή της δήλωσής της. Π.χ. const int count = 100; const float PI = 3.14159265; 9

Τελεστές Ένας τελεστής είναι ένα σύμβολο που οδηγεί την C να εκτελέσει κάποια λειτουργία, σε ένα ή περισσότερους τελεστέους. Τελεστές εκχώρησης (=), τελεστές αριθμητικοί, τελεστές σχεσιακοί, τελεστές λογικοί. H C έχει δύο μοναδιαίους (unary) αριθμητικούς τελεστές (επιδέχονται έναν τελεστέο) και 5 δυαδικούς (binary) αριθμητικούς τελεστές (απαιτούν δύο τελεστέους). 10

Αριθμητικοί Τελεστές (+) Πρόσθεση (δυαδικός τελεστής binary operator), και έκφραση θετικού προσήμου (μοναδιαίος τελεστής unary operator) (-) Αφαίρεση (δυαδικός τελεστής binary operator), και έκφραση αρνητικού προσήμου (μοναδιαίος τελεστής unary operator) (*) Πολλαπλασιασμός (δυαδικός τελεστής binary operator) (/) Διαίρεση (δυαδικός τελεστής binary operator) (%) Υπόλοιπο διαίρεσης (για ακέραιους τύπους μόνο - (δυαδικός τελεστής binary operator) 11

Παραδείγματα 10/3 δίνει 3 10%3 δίνει 1 10%2 δίνει 0 10+2 δίνει 12 10*2-2 δίνει 18 10/0 δεν ορίζεται (διαίρεση με 0) 10%0 δεν ορίζεται (υπόλοιπο διαίρεσης με 0) 6/2+4 δίνει 7-10+2 δίνει -8 10/2 + -10/3 = (10/2) + ((-10)/3) δίνει 2 12

Σχεσιακοί Τελεστές (1) Οι σχεσιακοί ή συσχετιστικοί τελεστές χρησιμοποιούνται για να συγκρίνουν εκφράσεις. Ο υπολογισμός μίας έκφρασης που περιέχει ένα σχεσιακό τελεστή δίνει αποτέλεσμα είτε αληθές (μη μηδενικό) είτε ψευδές (μηδέν). == (Ίσον), > (Μεγαλύτερο από), < (Μικρότερο από), >= (Μεγαλύτερο ή ίσο), <= (Μικρότερο ή ίσο),!= (Διάφορο) ΠΡΟΣΟΧΗ: Το = είναι ο τελεστής εκχώρησης, ενώ το == είναι ο σχεσιακός τελεστής. 13

Σχεσιακοί Τελεστές (2) Οι σχεσιακοί τελεστές θέτουν ερωτήσεις όπως: «Είναι η x μεγαλύτερη από το 100;», «Είναι η y ίση με 0;». Π.χ.: 5 == 1, Είναι το 5 ίσο με το 1; (ψευδές) 5>1, Είναι το 5 μεγαλύτερο του 1; (αληθές) 5!= 1, Είναι το 5 διαφορετικό από το 1; (αληθές) (5+10) == (3*5), Είναι το (5+10) ίσο με το (3*5); (αληθές) 14

Σχεσιακοί Τελεστές Οι αριθμητικοί τελεστές έχουν υψηλότερη προτεραιότητα από τους σχεσιακούς τελεστές Π.χ. η συνθήκη: (x+2>y) είναι ισοδύναμη με την ((x+2)>y) Η σειρά προτεραιότητας των σχεσιακών τελεστών είναι < <= > >=!= == Π.χ. το: x == y>z είναι ίδιο με το: x == (y>z) 15

Λογικοί Τελεστές Οι λογικοί τελεστές χρησιμοποιούνται για να συνδέσουν εκφράσεις σχηματίζοντας πιο σύνθετες συνθήκες. Τελεστής σύζευξης && (λογικό και, and) Τελεστής διάζευξης (λογικό ή, or) Τελεστής άρνησης! (λογικό όχι, not) Το && έχει μεγαλύτερη προτεραιότητα από το ενώ το! είναι μοναδιαίος τελεστής. Υπολογίζονται από τα αριστερά προς τα δεξιά όταν είναι πάνω από δύο με ίδια προτεραιότητα. 16

Τελεστές πράξεων ανά μπιτ Εφαρμόζονται μόνο σε ακέραιους τελεστέους. & σύζευξη (and) διάζευξη (or) ^ αποκλειστική διάζευξη (xor) << ολίσθηση αριστερά (shift left) >> ολίσθηση δεξιά (shift right) ~ συμπλήρωμα ως προς ένα (1 s complement) Μόνο το ~ είναι μοναδιαίος τελεστής ενώ όλοι οι υπόλοιποι είναι δυαδικοί. 17

Τελεστής αντικατάστασης (Εντολή ανάθεσης) Οι μεταβλητές λαμβάνουν τιμές με συγκεκριμένη εντολή ανάθεσης Η εντολή είναι της μορφής: μεταβλητή = έκφραση όπου η έκφραση μπορεί να είναι μια σταθερή τιμή, μια λογική ή αριθμητική πράξη, το αποτέλεσμα κλήσης μιας συνάρτησης κλπ. Η έκφραση θα πρέπει να παράγει ένα αποτέλεσμα που να είναι συμβατό με τον τύπο της μεταβλητής 18

Συγκεντρωτικά οι τελεστές της C (1) Αριθμητικοί τελεστές: + - * / % + - Συσχετιστικοί τελεστές: > >= < <= ==!= Λογικοί τελεστές: &&! 19

Συγκεντρωτικά οι τελεστές της C (2) Τελεστές πράξεων ανά bit (bitwise): & ^ << >> ~ Τελεστές αντικατάστασης: = += -= *= /+ %= <<= >>= ^= &= = π.χ. x= y+z; x = a*5 + b/c + 12.75/(d-8); i=i+5; μπορεί να γραφεί ως: i+=5; j=j*(k+7); μπορεί να γραφεί ως: j*=(k+7); 20

Το πρώτο μου πρόγραμμα /* my first C program */ #include <stdio.h> main() { printf ("Hello World"); } 21

/* my first C program */ Εντολή Προ-επεξεργασίας Τύπος Επιστροφής της main #include <stdio.h> void main() { } printf( Hello World! ); Σχόλια Εντολή εισαγωγής βιβλιοθήκης για χρήση συναρτήσεων είσοδου/έξοδου Βιβλιοθήκη Η αρχική συνάρτηση main Η συνάρτηση printf που έχει ορισθεί στη βιβλιοθήκη stdio και επιτρέπει την εμφάνιση στην οθόνη (standard output) Αυτή η πρόταση οδηγεί τον υπολογιστή να εμφανίσει το μήνυμα Hello World! στην οθόνη. 22

Μορφοποίηση εισόδου /εξόδου Συναρτήσεις printf() - Προβάλλει πληροφορίες στην οθόνη. scanf() - Εισάγει δεδομένα από το πληκτρολόγιο και εκχωρεί αυτά τα δεδομένα σε μία ή περισσότερες μεταβλητές. Κωδικοί διαμόρφωσης %d %5d %o %x %f %8.2f %.3f %s %c %% 23

Εντολή εμφάνισης στην οθόνη Η σύνταξη της εντολής printf είναι printf ( δήλωση φόρμας, έκφραση1, έκφραση2...); όπου: Η δήλωση φόρμας ορίζει το πως θα μορφοποιηθεί η εκτύπωση, και το τι θα τυπώνεται στην πρότυπη έξοδο (standard output). H δήλωση φόρμας ορίζει, επίσης, με την συνδρομή των κωδικών διαμόρφωσης, πως θα μετατραπούν οι τιμές από τη εσωτερική δυαδική μορφή του Η/Υ στην επιθυμητή μορφή της εκτύπωσης. 24

Παράδειγμα main() { int i, j; float x, y; Δήλωση φόρμας } Εμφάνιση ως ακεραίου στο δεκαδικό σύστημα αρίθμησης i = 10; j = 20; x = 43.2892; y = 5527.0; printf( i = %d, j = %d, x = %f, y = %f\n, i, j, x, y); Εμφάνιση ως πραγματικός Οι μεταβλητές για εκτύπωση Αποτέλεσμα εκτύπωσης : i = 10, j = 20, x = 43.289200, y = 5527.000000 25

Εντολή εισαγωγής δεδομένων από το πληκτρολόγιο Η σύνταξη της εντολής scanf είναι scanf ( δήλωση φόρμας, έκφραση1, έκφραση2...); όπου: Η δήλωση φόρμας ορίζει - με την βοήθεια των κωδικών διαμόρφωσης - το πως θα ερμηνεύονται τα δεδομένα που εισάγονται από το πληκτρολόγιο το οποίο αποτελεί την πρότυπη είσοδο (standard input). Στην συνέχεια οι εκφράσεις πρέπει να δείχνουν τις θέσεις της μνήμης RAM που θα αποθηκευθούν τα δεδομένα (δηλαδή τις διευθύνσεις των θέσεων) 26

Παράδειγμα #include <stdio.h> main() { int i, j; float x, y; scanf("%d%d%f%f", &i, &j, &x, &y); printf("%d %d %f %g", i, j, x, y); } Διαφορά από το printf Εάν ο χρήστης εισάγει 1, -20,.3, -4.0e3 τότε η παραπάνω εντολή εισόδου θα διαβάσει και θα αναθέσει στη μεταβλητή i τον αριθμό 1, στη j το -20, στη x το 0.3, και στη y το -4000.0 27

Η συνάρτηση main() Η συνάρτηση main είναι μία ειδική συνάρτηση που πρέπει να έχει ορισθεί σε κάθε C πρόγραμμα. Η συνάρτηση main είναι η πρώτη συνάρτηση που καλείται σε ένα C πρόγραμμα. Η κλήση γίνεται αυτόματα από το λειτουργικό σύστημα όταν το πρόγραμμα αρχίζει να «τρέχει». Η συνάρτηση main μπορεί να επιστρέφει, ή να μην επιστρέφει κάποιο αποτέλεσμα. 28

Σχόλια (comments) Ένα καλό πρόγραμμα δεν είναι μόνο συντακτικά σωστό, γρήγορο, και συμβατό με τις απαιτήσεις του χρήστη, αλλά και τεκμηριωμένο με σχόλια. Τα σχόλια δεν μεταφράζονται από τον compiler ο οποίος τα θεωρεί σαν κενούς χαρακτήρες Τα σχόλια στη C ορίζονται ανάμεσα στα σύμβολα /* και */ π.χ. /* this is a comment in C */ Δεν επιτρέπονται τα ένθετα σχόλια εκτός αν έχει γίνει η κατάλληλη ρύθμιση. Σχόλια γραμμής: στη C++ ή στη Java αρχίζουν με // και τελειώνουν με το πέρας της γραμμής. Κάποιοι μεταγλωττιστές της C το επιτρέπουν, αλλά αν σας ενδιαφέρει η μεταφορά να χρησιμοποιείτε /* και */ Προσθέστε σχόλια μόνο σε προτάσεις ή συναρτήσεις οι οποίες δεν έχουν προφανή σημασία. Βασική αρχή είναι να έχουμε ένα ευπαρουσίαστο και εύκολο να διαβαστεί πρόγραμμα (διευκολύνει τη συντήρησή του) π.χ. /************************************************************ * Name: main.c * * Author: John Smith * * Purpose: Translate Celsius degrees to Fahrenheit * * Date/Version: 12/12/02 v1.1 * ************************************************************/ 29

Αν το αποτέλεσμα του προγράμματος είναι το παρακάτω, ποιο είναι το πρόγραμμα; Enter a number between 1 and 100 : 35 Enter another number between 1 and 100 : 23 35 times 23 = 805 Press any key to continue!! 30