ΕΡΓΑΣΤΗΡΙΟ 2 ΕΙΣΑΓΩΓΗ ΣΤΗ C Εργαστήριο 2 Τµήµα Πληροφορικής και Τηλεπικοινωνιών
οµή προγράµµατος Οδηγίες προεπεξεργαστή #include... # define... τµήµα δηλώσεων ηλωσεις και ορισµοί µεταβλητών. ηλωσεις συναρτήσεων (πρωτότυπα) ορισµός της συνάρτησης main ορισµοί συναρτήσεων ΣΧΟΛΙΑ ό,τι πλαισιώνεται από /*...*/, αγνοείται από το µεταφραστή //... σχόλια γραµµής, ο µεταφρασής αγνοεί το περιεχόµενο ολόκληρης της γραµµής.
Η συνάρτηση main main() { declarations /* ηλώσεις µεταβλητών και σταθερών που ϑα χρησιµοποιηθούν µόνο από τη main.*/ statements /*Εντολές (σώµα της συνάρτησης).*/ system(pause); /*Την χρησιµοποιούµε για «πάγωµα» του παραθύρου.*/ return 0; /* εντολή επιστροφής.*/ }
Τι είναι µεταβλητή; Η C επιτρέπει τη χρήση συµβολικών ονοµάτων για αναφορά στα δεδοµένα που επεξεργαζόµαστε (αντί η αναφορά να γίνεται µε κλήση διευθύνσεων µνήµης). Μια µεταβλητή αντιστοιχεί σε µια ϑέση µνήµης που έχει το όνοµα της µεταβλητής. Η αντιστοιχία συµβολικού ονόµατος και διεύθυνσης µνήµης είναι µοναδική. Οι µεταβλητές αφορούν τις ποσότητες που οι τιµές τους µπορούν να µεταβληθούν κατά τη διάρκεια εκτέλεσης του προγράµµατος.
Χαρακτηριστικά Μεταβλητών Κάθε µεταβλητή χαρακτηρίζεται από όνοµα τύπο µέγεθος τιµή
Επιτρεπτά ονόµατα µεταβλητών Πρέπει να αρχίζει µε γράµµα ή µε το χαρακτήρα υπογράµµισης _ Μπορεί να περιέχει γράµµατα, αριθµούς και χαρακτήρες υπογράµµισης. ε µπορεί να είναι δεσµευµένη λέξη. Στις περισσότερες υλοποιήσεις της C γίνεται διάκριση µεταξύ πεζών και κεφαλαίων γραµµάτων. Το µέγιστο πλήθος χαρακτήρων σε ένα όνοµα µεταβλητής εξαρτάται από το µεταγλωτιστή.
ηλωσεις Μεταβλητών Οι µεταβλητές δηλώνονται ως εξής: <Τύπος εδοµένων> < Ονοµα Μεταβλητής> ; Περισσότερες από µία µεταβλητές του ίδιου τύπου διαχωρίζονται µε κόµµα. Μπορούµε να αρχικοποιήσουµε µια µεταβλητή κατά τη δήλωση της.
Βασικοί τύποι δεδοµένων στη C Η C υποστηρίζει τους παρακάτω ϐασικούς τύπους δεδοµένων. ακέραιους - int πραγµατικούς - float/double χαρακτήρες - char
Τύπος Ακεραίου- int Οι ακέραιοι (integer) στη C είναι οι γνωστοι ακέραιοι από τα µαθηµατικά και µπορεί να είναι ϑετικοί ή αρνητικοί. ήλωση της µεταβλητής µε όνοµα a ως ακέραιο τύπο δεδοµένων: int a Προσδιοριστές για εκτύπωση και ανάγνωση είναι %d -για εµφάνιση σε δεκαδική µορφή %x -για εµφάνιση σε δεκαεξαδική µορφή %o -για εµφάνιση σε οκταδική µορφή άλλοι τύποι ακεραίων Για πολύ µεγάλους ακεραίους χρησιµοποιούµε long. Για πολύ µικρούς ακεραίους χρησιµοποιούµε short. Αν δε ϑέλουµε να έχουν πρόσηµο χρησιµοποιούµε unsigned.
Παράδειγµα #include <stdio.h> #include <stdlib.h> int main() { int a,b; a=3; b=64; printf("a=%d, b=%d \n",a,b); printf(" o a se dekadikh morfh einai %d \n",a); printf(" o b se oktadikh morfh einai %o \n",b); system("pause"); return (0); }
Τύπος δεδοµένων float περιλαµβάνει πραγµατικούς αριθµούς µε ακρίβεια 6 σηµαντικών ψηφίων. ήλωση της µεταβλητής a ως τύπου float: float a Προσδιοριστής %f για εµφάνιση σε fixed point µορφή (6 δεκαδικά). Εχουµε τη δυνατότητα να καθορίσουµε το πληθος των ϑέσεων που ϑα καταλαβει ένας πραγµατικός αριθµός καθώς και το πληθος των δεκαδικών ψηφίων που ϑα διαθέτει. %w.d f όπου w: πλήθος συνολικών ψηφίων d: πληθος δεκαδικών ψηφίων Προσδιοριστής %e για εµφάνιση σε επιστηµονική µορφή.
Παράδειγµα 1 #include <stdio.h> #include <stdlib.h> int main() { float x; x=15.23456; printf("x=%f \n",x); system("pause"); return(0); }
Παράδειγµα 2 #include <stdio.h> #include <stdlib.h> int main() { float x; x=15.23456; printf("x=%5.2f \n",x); system("pause"); return(0); }
Παράδειγµα 3 #include <stdio.h> #include <stdlib.h> int main() { float x; x=15.23456; printf("x=%.3f \n",x); system("pause"); return(0); }
Παράδειγµα 4 #include <stdio.h> #include <stdlib.h> int main() { float x; x=15.23456; printf("x=%e \n",x); system("pause"); return(0); }
Τύπος δεδοµένων double περιλαµβάνει πραγµατικούς αριθµούς µε ακρίβεια 16 σηµαντικών ψηφίων. ήλωση της µεταβλητής a ως τύπου double: double a Προσδιοριστές %f,%lf,%e για εκτύπωση.
Χαρακτήρες char Χαρακτήρες ονοµάζονται όλα τα σύµβολα που διαθέτει το αλφάβητο που χρησιµοποιούµε στη C. Οταν δηλωσουµε µια µεταβλητή να είναι τύπου char οι τιµές που τις δίνουµε πρέπει να περικλείονται σε και να είναι µεµονωµένοι χαρακτήρες και όχι ακολουθία χαρακτήρων. ήλωση της µεταβλητής a ως χαρακτήρα: char a προσδιοριστής %c Οταν ϑέλουµε να εµφανιστεί στην οθόνη ο κώδικός ASCII ενός χαρακτήρα και όχι ο ίδιος ο χαρακτήρας χρησιµοποιούµε τον προσδιοριστή των ακεραίων %d.
Παράδειγµα #include <stdio.h> #include <stdlib.h> int main() { char a; a= @ ; printf("a=%.c \n",a); printf("a=%.d \n",a); printf("character: %c ASCII Code: %d \n", a,a); system("pause"); return(0); }
Τι σηµαίνει καταχώρηση; Μορφή: <µεταβλητή>=<παράσταση> Χρησιµοποιούµε αυτή την εντολή στην περίπτωση που ϑέλουµε να δώσουµε τιµή σε µια µεταβλητή ή να αλλάξουµε την τιµή της. Με τον όρο καταχώρηση εννοούµε ότι η έκφραση δεξιά του τελεστή καταχώρησης = αποτιµάται και στη συνέχεια η τιµή που προκύπτει καταχωρείται στη µεταβλητή που είναι αριστερά. εν έχει την έννοια της ισότητας όπως αυτή είναι γνωστή από τα Μαθηµατικά. Οταν έχουµε δυο ή περισσότερες εντολες καταχώρησης για την ίδια µεταβλητή τότε η τελική της τιµή ισούται µε την τελευταία τιµή που της έχει δωθεί.
Ανταλλαγή των τιµών 2 µεταβλητών #include <stdio.h> int main() { int a,b; a=3; b=64; printf("a=%d, b=%d \n",a,b); a=b; b=a; printf("a=%d, b=%d" \n",a,b); system("pause"); return(0);}
Ανταλλαγή των τιµών 2 µεταβλητών #include <stdio.h> int main() { int a,b,help; a=3; b=64; printf("oi times prin a=%d, b=%d \n",a,b); help=a; a=b; b=help; printf("oi times meta a=%d, b=%d" \n",a,b); system("pause"); return(0);}
υαδικοί Τελεστές + Πρόσθεση Αφαίρεση Πολλαπλασιασµός / ιαίρεση % Το υπόλοιπο της ακέραιας διαίρεσης που προκύπτει από τον τύπο της ευκλείδειας διαίρεσης.
Μοναδιαίοι Τελεστές ++ Τελεστής αύξησης κατα ένα. Τελεστής µείωσης κατα ένα. ιακρίνονται σε Προθεµατικούς + + a, a, αντιστοιχούν σε αύξηση/µείωση της µεταβλητής πριν τον υπολογισµό της τιµής της παράστασης. Μεταθεµατικούς a + +,a, αντιστοιχούν σε αύξηση/µείωση της µεταβλητής µετά τον υπολογισµό της παράστασης.
Ιεραρχία και κανόνας προσεταιριστικότητας Πρώτα γίνονται οι πράξεις στις παρενθέσεις. Μοναδιαίοι Τελεστές ++, προθεµατικοί (από δεξιά προς τα αριστερά) Πολλαπλασιασµοί - ιαιρέσεις, /, % (από αριστερά προς τα δεξιά) Προσθέσεις - αφαιρέσεις +, (από αριστερά προς τα δεξιά) Η αύξηση και µείωση των µεταθεµατικών τελεστών αύξησης και µείωσης γίνεται µετά τον υπολογισµό της παράστασης
Παράδειγµα 1 #include <stdio.h> #include <stdlib.h> int main() { int a,b,c,par; a=7; b=5; c=8; par=a*a/2*b-1/c; printf("par=%d \n",par); system("pause"); return (0);}
Παράδειγµα 2 #include <stdio.h> #include <stdlib.h> int main() { int a=2 ; printf("%d,%d,%d \n",a,+ + a,a); printf("%d,%d,%d \n",a,a + +,a); system("pause"); return(0); }
Παράδειγµα 3 #include <stdio.h> #include <stdlib.h> int main() { int a,b,c,par; a=7; b=5; c=8; par=--a*a/2*b-1/++c; printf("par=%d \n",par); system("pause"); return (0);}