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

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

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

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

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

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

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

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

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

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

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

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

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

Εργαστήριο 2ο. Περίγραμμα Εργαστηριακής Άσκησης

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

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

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

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

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

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

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

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

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

Τύποι Δεδομένων Είσοδος/Έξοδος

Προγραμματισμός Ι. Χαρακτήρες. Πανεπιστήμιο Πελοποννήσου Τμήμα Πληροφορικής & Τηλεπικοινωνιών

C: Από τη Θεωρία στην Εφαρµογή 2 ο Κεφάλαιο

Προγραμματισμός I (Θ)

Διαδικασία Ανάπτυξης Λογισμικού

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

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

Στόχοι και αντικείμενο ενότητας. Συντακτικό Γλώσσας. Αλφάβητο. #2.. Εισαγωγή στη C (Μέρος Πρώτο)

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

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

Απλά Προγράμματα. Βήματα: 1. Καθορισμός παράστασης δεδομένων στη μνήμη 2. Αλγόριθμος βήματα που περιγράφουν την επεξεργασία των δεδομένων

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

TMHMA TEXNΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΗΛ/ΝΙΩΝ Προγραμματισμός Ι ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ , Α ΕΞΑΜΗΝΟ Βασίλης Μποζαντζής. Βασίλης Μποζαντζής

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

Περιεχόμενα. Πρόλογος... 21

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

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

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

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

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

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

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

Ενδεικτική περιγραφή μαθήματος

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

6. ΠΙΝΑΚΕΣ & ΑΛΦΑΡΙΘΜΗΤΙΚΑ

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

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

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

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

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

Διδάσκων: Δημήτριος Βαρσάμης

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

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

ΒΑΣΙΚΟΙ ΤΥΠΟΙ ΚΑΙ ΠΙΝΑΚΕΣ

Προγραμματισμός Ι. Θεματική ενότητα 2: Μεταβλητές σταθερές Ι/Ο κονσόλας

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

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

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

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

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

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

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

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

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

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

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

#include <stdlib.h> Α. [-128,127] Β. [-127,128] Γ. [-128,128]

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

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

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

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

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

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

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

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

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

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

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

Τεχνολογία και Προγραμματισμός Υπολογιστών. Η γλώσσα προγραμματισμού C

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

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

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

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

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

printf Οι κωδικοί (format codes) του printf για διάφορους τύπους δεδοµένων είναι:

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

ΕΝΤΟΛΕΣ ΕΠΑΝΑΛΗΨΗΣ. for (παράσταση_1; παράσταση_2; παράσταση_3) εντολή επόμενη εντολή

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

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

Βήματα: μνήμη 2. Αλγόριθμος βήματα που περιγράφουν την επεξεργασία των δεδομένων. Δομές Δεδομένων + Αλγόριθμοι = Προγράμματα

C Programming EPL032 Maria Stavrinou Ioannou Εισαγωγή στη Γλώσσα C

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

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

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

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

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

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

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

Transcript:

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

Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr 2 Code::Blocks Γράψτε το παρακάτω πρόγραμμα μεταγλωττίστε το και τρέξτε το εκτελέσιμο #include <stdlib.h> #include <stdio.h> main{} { float s = 0, a, mo; int i, N = 6; for ( i=1; i<=n; i++ ) { printf( " Type a number: " ); scanf( " %f ", &a ); s += a; } mo = s / N; printf( " MO = %f ", mo ); }

Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr 3 Code::Blocks Πληκτρολογήστε τους παρακάτω αριθμούς 5 2 4 5 8 12 Ποιο είναι το αποτέλεσμα;

Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr 4 Συνάρτηση main() Βασική ή Κύρια Συνάρτηση Δυνατότητα τοποθέτησης εντολών και κλήση άλλων συναρτήσεων Οι εντολές εντός της συνάρτησης αποτελούν το σώμα αυτής και περικλείονται με άγκιστρα { } ; Το σύμβολο του τερματιστή προτάσεων ή απλά τέλος εντολής ή κενή εντολή

Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr 5 Δομή Προγράμματος Σχόλια προλόγου [προαιρετικό] Οδηγίες αναφοράς σε βιβλιοθήκες [προαιρετικό] Συναρτήσεις [προαιρετικό] Κύρια Συνάρτηση (main) { } Δηλώσεις Σώμα προγράμματος [προαιρετικό]

Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr 6 Σχόλια προγράμματος // για μία γραμμή ή /* */ για πολλές γραμμές Δεν αποτελούν τμήμα κώδικα Δεν λαμβάνονται υπόψη από τον μεταγλωττιστή Τοποθετούνται σε οποιοδήποτε σημείο του προγράμματος Η εισαγωγή σχολίων αποτελεί ένα εργαλείο δημιουργίας ευανάγνωστων προγραμμάτων και εύκολης κατανόησης

Σχόλια Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr 7 /*********************************** Eyresh mesou orou 5 arithmwn ************************************/ #include <stdlib.h> #include <stdio.h> main{} { float s=0, a, mo; int i,n=5; for (i=1;i<=n;i++) { } // Orismos metablhtwn mo: mesos oros, s: a8roisma // Plh8os ari8mwn printf("type a number: "); scanf("%f",&a); // Eisodos ari8mwn s += a; //Pros8esh ari8mou sto a8roisma } mo=s/n; //Ypologismos Mesou Orou printf("mo = %f \n",mo); //Emfanish apotelesmatos

Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr 8 Αρχεία Κεφαλίδας Δηλώνονται πάντα στην αρχή του προγράμματος και πριν από την main με χρήση της οδηγίας προς τον προεπεξεργαστή #include <όνομα_αρχείου_κεφαλίδας.h> Οτιδήποτε ξεκινάει με # είναι μία οδηγία για τον προεπεξεργαστή Τα αρχεία κεφαλίδας περιλαμβάνουν συναρτήσεις συναφούς λειτουργίας Οι εντολές include δεν δέχονται ;

Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr 9 Αρχεία Κεφαλίδας /*********************************** Eyresh mesou orou 5 arithmwn ************************************/ #include <stdlib.h> #include <stdio.h> main{} { float s=0, a, mo; int i,n=5; for (i=1;i<=n;i++) { } // Orismos metablhtwn mo: mesos oros, s: a8roisma // Plh8os ari8mwn printf("type a number: "); scanf("%f",&a); // Eisodos ari8mwn s += a; //Pros8esh ari8mou sto a8roisma } mo=s/n; //Ypologismos Mesou Orou printf("mo = %f \n",mo); //Emfanish apotelesmatos

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

Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr 11 Κανόνες Δημιουργίας Ευανάγνωστων Προγραμμάτων /*********************************** Eyresh mesou orou 5 arithmwn ************************************/ #include <stdlib.h> #include <stdio.h> Σωστή στοίχιση main{} { float s=0, a, mo; int i,n=5; for (i=1;i<=n;i++) { printf("type a number: "); scanf("%f",&a); s += a; } mo=s/n; printf("mo = %f \n",mo); }

Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr 12 Κανόνες Δημιουργίας Ευανάγνωστων Προγραμμάτων /*********************************** Eyresh mesou orou 5 arithmwn ************************************/ #include <stdlib.h> #include <stdio.h> Ανύπαρκτη στοίχιση main{}{ float s=0, a, mo; int i,n=5; for (i=1;i<=n;i++) {printf("type a number: "); scanf("%f",&a); s += a;} mo=s/n; printf("mo = %f \n",mo);}

Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr 13 The International Obfuscated C Code Contest http://www.de.ioccc.org int i;main(){for(;i["]<i;++i){--i;}"];read('-'-'-',i+++"hell\ o, world!\n",'/'/'/'));}read(j,i,p){write(j/p+p,i---j,i/i);}

Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr 14 The International Obfuscated C Code Contest http://www.de.ioccc.org #define iv 4 #define v ;(void #define XI(xi)int xi[iv*'v']; #define L(c,l,i)c(){d(l);m(i);} #include <stdio.h> int*cc,c,i,ix='\t',exit(),x='\n'*'\d';xi(vi)xi(xi)extern(*vi[])(),(* signal())();char*v,cm,d['x'],m='\n',i,*gets();l(mv,v,(c+='d',ix))m(x){v) signal(x/'i',vi[x]);}d(x)char*x;{v)write(i,x,i);}l(mc,v,m+i)xv(){c>=i?m( c/m/m+m):(d(&m),m(cm));}l(mi,v+cm,m)l(md,v,m)mm(){c=c*m%x;v-=cm;m(ix);} LXX(){gets(D) (vi[iv])();c=atoi(d);while(c>=x){c-=x;d("m");}v="ivxlcdm" +iv;m(ix);}lv(){c-=c;while((i=cc[*d=getchar()])>-i)i?(c?(c<i&&l(-c-c, "%d"),l(i,"+%d")):l(i,"(%d")):(c&&l(m,")"),l(*d,"%c")),c=i;c&&l(x,")"),l (-i,"%c");m(iv-!(i&i));}l(ml,v,'\f')li(){m(cm+!isatty(i=i));}ii(){m(c=cm = ++I)v)pipe(VI);cc=xi+cm++;for(V="jWYmDEnX";*V;V++)xi[*V^' ']=c,xi[*v++] =c,c*=m,xi[*v^' ']=xi[*v]=c>>i;cc[-i]-=ix v)close(*vi);cc[m]-=m;}main(){ (*vi)();for(;v)write(vi[i],v,m));}l(xl,lx)char*lx;{v)printf(lx,xl)v) fflush(stdout);}l(xx,v+i,(c-=x/cm,ix))int(*vi[])()={ii,li,lxx,lv,exit,l, d,l,d,xv,mm,md,mc,ml,mv,xx,xx,xx,xx,mv,mi};

Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr 15 Κανόνες Δημιουργίας Ευανάγνωστων Προγραμμάτων Όχι ονόματα ενός χαρακτήρα i,j,x,y (εκτός από μετρητές... i,j,k) Χρήση ονομάτων που δηλώνουν χαρακτήρα (εκφραστικά ονόματα μέχρι 31 χαρακτήρες) synolo Χρήση μικρών γραμμάτων για μεταβλητές ή συνδυασμός μικρών κεφαλαίων για εκφραστικά ονόματα mesosoros ή mesos_oros

Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr 16 Κανόνες Δημιουργίας Ευανάγνωστων Προγραμμάτων /*********************************** Eyresh mesou orou 5 arithmwn ************************************/ #include <stdlib.h> #include <stdio.h> main{} main{} { } Χωρίς περιγραφικές δηλώσεις μεταβλητών float synolo=0, neonoumero, mesos_oros; float a=0, b, c; int i,n=5; int e,d=5; for (i=1;i<=n;i++) for (e=1;e<=d;e++) { { printf("type a number: "); printf("type a number: "); scanf("%f",& neonoumero); scanf("%f",&b); synolo += neonoumero; a += b; } } mesos_oros =synolo/n; c=a/d; printf("mesos printf("mo = %f Oros \n ",c); = %f \n", mesos_oros);

Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr 17 Πρακτικές Καλού Προγραμματισμού Γράψτε τα προγράμματα σας με απλό και σαφή τρόπο KIS Keep It Simple Διαβάστε τα εγχειρίδια που συνοδεύουν κάθε συνάρτηση της C - man pages του Linux ή αναζητήστε τα στο web http://linux.die.net/man/ http://man.cx/ http://man.he.net/ http://www.freebsd.org/cgi/man.cgi Πειραματιστείτε με ένα άγνωστο χαρακτηριστικό της C προτού το συμπεριλάβετε σε ένα πρόγραμμα Χρησιμοποιείτε τις συναρτήσεις της τυπικής βιβλιοθήκης της C (είναι δοκιμασμένες...)

Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr 18 Λεξιλόγιο της γλώσσας C Δεσμευμένες Λέξεις Ονόματα συναρτήσεων Ονόματα σε αρχεία κεφαλίδας EOF, INT_MAX Ονόματα τύπων Ονόματα εντολών προ επεξεργαστή Ονόματα που αρχίζουν με τον χαρακτήρα _ και έχουν δεύτερο χαρακτήρα τον ίδιο ή κεφαλαίο γράμμα _DATE,_FILE Λέξεις κλειδιά if else for goto int long struct etc Τελεστές

Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr 19 Λεξιλόγιο της γλώσσας C 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 ( ) * / % + - < <= => > ==!= = & *

Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr 20 Εντολή printf Ανήκει στην κατηγορία εντολών εσόδου εξόδου Ορίζεται στην βιβλιοθήκη stdio.h Ονομάζεται μορφοποιούμενη διότι δίνει την δυνατότητα στον χρήστη να μορφοποιήσει την έξοδο της με ακολουθίες διαφυγής Χρησιμοποιείται ως προς την εκτύπωση μηνυμάτων στην οθόνη (στη ροή stdout) Εκτυπώνει ότι υπάρχει εντός του ορίσματος μορφοποιημένο ανάλογα με τις ακολουθίες διαφυγής \n : χαρακτήρας διαφυγής ακολουθούμενος από n : Νέα Γραμμή %f : εκτύπωση σε αυτή τη θέση της τιμής της μεταβλητής με μορφή αριθμού τύπου float printf("mo = %f \n",mo);

Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr 21 Προσοχή Στη C υπάρχει διαχωρισμός μεταξύ κεφαλαίων και μικρών (Case Sensitive) πχ. printf δεν είναι ίδια με την Printf

Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr 22 Νέο Πρόγραμμα Δημιουργήστε ένα νέο project με τίτλο Printf1 Αποθήκευση στον φάκελο Domimenos\11_10_2012

Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr 23 Ειδικοί χαρακτήρες Πώς λέτε στον υπολογιστή ότι θέλετε να αλλάξει γραμμή κατά την εμφάνιση ενός μηνύματος στην οθόνη; με τον χαρακτήρα αλλαγής γραμμής \n Στη C υπάρχουν κι άλλοι τέτοιοι ειδικοί χαρακτήρες, για να τους γράψουμε χρησιμοποιούμε το πρόθεμα \.

Άσκηση Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr 24 Γράψτε ένα πρόγραμμα που να τυπώνει τη φράση: ATEI KRHTHS TMHMA BPIS σε δύο χωριστές γραμμές.

Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr 25 Ειδικοί χαρακτήρες \n Νέα γραμμή \t Οριζόντιο tab \a Alert. Προκαλεί ήχο στο σύστημα \b Οπισθοχώρηση (backspace) \r Επαναφορά κεφαλής (return) \\ Προβάλει το χαρακτήρα \ \ Προβάλει το χαρακτήρα

Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr 26 Νέο Πρόγραμμα Δημιουργήστε ένα νέο project με τίτλο Printf2 Αποθήκευση στον φάκελο Domimenos\11_10_2012

Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr 27 Άσκηση Γράψτε ένα πρόγραμμα που εμφανίζει στην οθόνη το παρακάτω: * *** ***** Γράψτε ένα πρόγραμμα που να εμφανίζει το παρακάτω: 213432 + 3434

Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr 28 Αλφαριθμητικές σταθερές ή συμβολοσειρές Όπως είδατε για να τυπώσετε ένα μήνυμα με την printf το εσωκλείετε μέσα σε εισαγωγικά. Ένα τέτοιο μήνυμα ονομάζεται αλφαριθμητική σταθερά ή συμβολοσειρά. Αλφαριθμητική γιατί μπορεί να περιέχει γράμματα και αριθμούς Σταθερά γιατί η τιμή του, το περιεχόμενο του δηλαδή δεν αλλάζει

Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr 29 Μεταβλητές Διαχείριση πληροφορίας σε μορφή αριθμητικών δεδομένων, γραμμάτων ή ακολουθίας γραμμάτων Τα δεδομένα αποθηκεύονται στην μνήμη και χρειάζονται ένα μέσο για να κληθούν από τα προγράμματα Η λύση στο πρόβλημα αναφοράς και διαχείρισης των δεδομένων από την μνήμη δόθηκε με την έννοια της μεταβλητής

Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr 30 Τι είναι μεταβλητή; Μεταβλητή είναι μια περιοχή στην μνήμη του υπολογιστή στην οποία μπορούμε να αποθηκεύσουμε μια τιμή και να την ανακτήσουμε. Το όνομα μιας μεταβλητής είναι άμεσα συνδεδεμένο με την διεύθυνση με την οποία είναι αποθηκευμένο το δεδομένο. Την μνήμη του υπολογιστή μπορούμε να την φανταστούμε σαν μια σειρά άδεια κελιά τα οποία είναι στοιχισμένα σε μια διαδοχική σειρά. Το κάθε κελί ή θέση μνήμης αριθμείτε σειριακά. Αυτοί οι αριθμοί είναι γνωστοί ως διευθύνσεις μνήμης.

Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr Τι είναι μεταβλητή;

Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr 32 Κύκλος Ζωής Μεταβλητής 1. Επιλογή Ονόματος Σχηματισμός Ονόματος από Γράμματα του Αλφαβήτου Ψηφία 0-9 Χαρακτήρα υπογράμμισης _ Ξεκινάμε με Γράμμα ή χαρακτήρα υπογράμμισης Όχι δεσμευμένη λέξη Μέγεθος μέχρι 31 γράμματα Ενδεικτικό με την ιδιότητα του τύπου που αντιπροσωπεύει (Περιγραφικά ονόματα)

Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr 33 Κύκλος Ζωής Μεταβλητής 2. Επιλογή Τύπου (Βαθμωτός ή Συναθροιστικός) ΒαθμωτώνΤύπων int κωδική λέξη για ακεραίους (integers) float κωδική λέξη για πραγματικούς (real) double κωδική λέξη για αριθμούς διπλής ακρίβειας char κωδική λέξη για χαρακτήρα (character) Δείκτες (pointers) Απαριθμητικό τύπο enum (enumerated) ΣυναθροιστικώνΤύπων Πίνακες (Array) Δομές (Struct) Ενώσεις (Union)

Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr 34 Κύκλος Ζωής Μεταβλητής 3. Δήλωση Με πρόταση ορισμού η οποία τελειώνειμε ; Η μορφή δήλωσης είναι: κωδική_λέξη_τύπου όνομα_μεταβλητής ; int κωδική λέξη για ακεραίους (integers) float κωδική λέξη για πραγματικούς(real) double κωδική λέξη για αριθμούς διπλής ακρίβειας char για χαρακτήρα (character) Δηλώνεται στην αρχή μιας συνάρτησης Μετά το εισαγωγικό άγκιστρο { Οπωσδήποτε πρίν απο την χρήση

Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr 35 Κύκλος Ζωής Μεταβλητής 4. Αρχική Τιμή Δίνεται αμέσως μετά την δήλωση ή πριν από την πρώτη χρήση της. Ισχύει μέχρι την πρώτη αλλαγή τιμής εντός προγράμματος Κρίνεται αναγκαία για την σωστή λειτουργία του προγράμματος Εξυπηρετεί στην τοποθέτηση μαζικών τιμών και δοκιμών

Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr 36 Κύκλος Ζωής Μεταβλητής 5. Ανάθεση τιμών, Χρήση Πάντοτε εντός της συνάρτησης Όσες φορές κρίνεται αναγκαίο Χρήση ως προς ανάκτηση τιμής αποθηκευμένης τιμής Χρήση ως προς τοποθέτηση νέας τιμής

Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr 37 Ο τύπος ακεραίου Χρησιμοποιείται για να παραστήσει ακεραίους αριθμούς Η δήλωση μιας μεταβλητής ακεραίου τύπου έχει τον φορμαλισμό ιnt όνομα_μεταβλητής; Π.χ. ιnt num; Δηλώνεται πάντα στην αρχή μιας συνάρτησης και αμέσως μετά το { Το μέγεθος μια μεταβλητής ακεραίου τύπου είναι 16 bits και το σύνολο των δυνατών τιμών είναι 2 16 = 65536 με εύρος τιμών 32768 έως +32768 Προσδιοριστές long int εξασφαλίζει αποθηκευτικό χώρο 32 bits unsigned int δεσμεύει τιμές χωρίς πρόσημο 0-65535 short int τουλάχιστον 16 bits Περιβάλλον Windows XP οι ακέραιοι έχουν 4 bytes με σύνολο δυνατών τιμών 2 32 =4.294.967.296

Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr 38 Τύποι πραγματικών αριθμών Αναπαράσταση πραγματικών αριθμών Για αριθμούς που διαθέτουν κλασματικό μέρος Η δήλωση μιας μεταβλητής πραγματικού τύπου απλής ακρίβειας έχει τον φορμαλισμό float όνομα_μεταβλητής; π.χ. float num; Μέγεθος 32 bits διπλής ακρίβειας έχει τον φορμαλισμό double όνομα_μεταβλητής; πχ. double plank; Μέγεθος 64 bits Προσδιοριστής long πριν από τον τύπο double για δήλωση μεταβλητής κινητής υποδιαστολής εκτεταμένης ακρίβειας πχ. long double plank;

Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr 39 Έκφραση Πραγματικών Αριθμών Αριθμός με δεκαδικά Επιστημονική σημειογραφία Εκθετική σημειογραφία 123456 1.23456Χ10 2 1.23456e+02 0.00002 2.0x10-5 2.0e-05 50000.0 2.0x10 4 5.0e+04 Σε μεταβλητές τύπου float από τα 32 bits τα 8 bits χρησιμοποιούνται για τον Εκθέτη, ένα για το πρόσημο και τα υπόλοιπα 23 για το κλασματικό μέρος Εκθέτης 2 8 = 256 δυνατές τιμές

Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr 40 Ο τύπος χαρακτήρα Ο τύπος χαρακτήρα παριστάνει απλούς χαρακτήρες του αλφάβητου της γλώσσας Η δήλωση μιας μεταβλητής χαρακτήρα έχει τον φορμαλισμό char όνομα_μεταβλητής; π.χ. char choice; 1byte για την αποθήκευση της τιμής μίας μεταβλητής χαρακτήρα Χαρακτήρες δια μέσο του κώδικα ASCII (American Standard Code for Information Interchange). Χαρακτήρας σε αντιστοίχηση με οκταψήφιο δυαδικό αριθμό

Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr 41 Μηνύματα στην οθόνη Πως; Με την χρήση της εντολής printf(); Πού ; Εντός του σώματος του προγράμματος Απλή μορφή μηνυμάτων : Δέχεται ένα όρισμα το οποίο και αποστέλλει στην έξοδο. Το όρισμα περικλείεται από " μήνυμα " πχ. printf( " HELLO WORLD "); Μορφοποιημένα μηνύματα Δέχεται ένα όρισμα το οποίο και αποστέλλει στην έξοδο μορφοποιώντας το ανάλογα με τον οδηγό εντολών (μη εκτυπωμένους χαρακτήρες) που εσωκλείονται στο μήνυμα. Το μήνυμα περικλείεται από " " printf( My first name is : \t Yannis \n Family Name is :\t Aikaterinidis );

Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr 42 Τιμές μεταβλητών και εμφάνιση Με την χρήση της εντολής printf(); Σύνθετη Μορφή printf( μήνυμα,μεταβλητή1, μεταβλητή2,.,.,.,μεταβλητή_ν); Για κάθε μεταβλητή πρέπει να έχουμε και έναν προσδιοριστή εντός του μηνύματος. Το σύνολο μεταβλητών και προσδιοριστών θα πρέπει να είναι ίσο Οι προσδιοριστές τοποθετούνται εντός του μηνύματος, με το σύμβολο % και δίπλα έναν χαρακτήρα ανάλογα με τον τύπο της μεταβλητής Στους ακεραίους και πραγματικούς μπορούμε να ορίσουμε το πλήθος των ψηφίων που θα εκτυπωθούν τοποθετώντας τον επιθυμητό αριθμό ανάμεσα στο % και τον χαρακτήρα με την μορφή a.b π.χ %3.2f, %4d

Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr 43 Προσδιοριστές μεταβλητών για εμφάνιση και ανάγνωση τιμών Είδος Τιμής Τύπος Μεταβλητής Προσδιοριστής Χαρακτήρας char %c Σύνολο χαρακτήρων string %s Ακέραιος δεκαδική int %d Ακέραιος Οκταδική int %o Ακέραιος Δεκαεξαδική int %h Ακέραιος μεγάλου μεγέθους long int %ld Ακέραιος μικρού μεγέθους short int %sd Ακέραιος χωρίς πρόσημο unsigned %ud Πραγματικός Απλής ακρίβειας float %f Πραγματικός Διπλής Ακρίβειας double %f

Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr 44 Νέο Πρόγραμμα Δημιουργήστε ένα νέο project με τίτλο Variables

Άσκηση Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr 45 Γράψτε ένα πρόγραμμα όπου αποθηκεύετε σε μεταβλητές Την ημέρα γεννήσεως σας (πχ 12) Το μήνα γεννήσεως σας (πχ 7) Το έτος γέννησης (πχ 1984) Το ύψος σας σε μέτρα (πχ 1.85) Το πρώτο γράμμα του ονόματός σας (πχ X) Προσοχή: Στη C ένας χαρακτήρας πρέπει να είναι ανάμεσα σε μονά εισαγωγικά για να θεωρηθεί χαρακτήρας, πχ Χ Ένα αλφαριθμητικό πρέπει να είναι ανάμεσα σε διπλά εισαγωγικά xx xx

Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr 46 Εμφανίζοντας τις τιμές των μεταβλητών Αν γράψετε printf( hlikia ) τότε θα εμφανιστεί η λέξη hlikia και όχι η τιμή της μεταβλητής. H printf έχει το δικό της τρόπο για να σας επιτρέψει να τυπώσετε την τιμή μιας μεταβλητής. Στο αλφαριθμητικό h hlikia moy einai %d οι δύο τελευταίοι χαρακτήρες σημαίνουν ότι σε εκείνη τη θέση θα μπει η τιμή μιας ακεραίας μεταβλητής. Μετά το αλφαριθμητικό βάζουμε και τη μεταβλητή την οποία θέλουμε να χρησιμοποιήσουμε.

Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr 47 Παραδείγματα printf( H hlikia moy einai %d,hlikia) θα τυπώσει στη θέση του %d την τιμή της μεταβλητής hlikia printf( H hlikia moy einai %d kai to ypsos mou %d cm,hlikia, ypsos) στο πρώτο %d θα τυπωθεί η τιμή της μεταβλητής hlikia και στο δεύτερο η τιμή της μεταβλητής ypsos Για μεταβλητές τύπου float και double χρησιμοποιείστε το %f int χρησιμοποιείστε το %d char χρησιμοποιήστε το %c.

Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr 48 Παράδειγμα Ένα πρόγραμμα που εκχωρεί σε μια μεταβλητή το έτος και το τυπώνει: #include<stdio.h> void main(void) { int etos; etos = 2003; printf( To etos einai %d\n, etos); }

Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr 49 Εμφανίζοντας τις τιμές των μεταβλητών Επεκτείνετε το πρόγραμμα σας ώστε να εμφανίζονται οι τιμές των μεταβλητών στην οθόνη

Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr 50 Η συνάρτηση scanf Ανήκει και αυτή στην κατηγορία εντολών εσόδου εξόδου Ορίζεται στην βιβλιοθήκη stdio.h Χρησιμοποιείται για την είσοδο χαρακτήρων από το πληκτρολόγιο ( από τη ροή stdin)

Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr 51 Η συνάρτηση scanf H εισαγωγή τιμών στις μεταβλητές μπορεί να γίνει με τη χρήση της συνάρτησης scanf και του αντίστοιχου προσδιοριστή (specifier) Επιστρέφει: π.χ. scanf( " %c", &ch ); τον αριθμό των στοιχείων που διάβασε επιτυχώς. 0 αν δεν διαβάσει τίποτα μια ειδική τιμή, την EOF (συνήθως ισούται με 1), αν βρεθεί σε κατάσταση end of file Προσδιοριστές: %c χαρακτήρας %d ακέραιος %f κινητής υποδιαστολής %lf διπλής ακρίβειας %x δεκαεξαδικός %s συμβολοσειρά

Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr 52 Εισαγωγή τιμών σε μεταβλητές Στην εντολή scanf πριν από κάθε μεταβλητή τοποθετούμε τον τελεστή διεύθυνσης & όχι στην printf double var; scanf ( "%f", &var ); scanf ( "%f", var );

Άσκηση Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr 53 Επεκτείνετε το πρόγραμμα σας ώστε τιμές των μεταβλητών να εισάγονται από το πληκτρολόγιο με χρήση της συνάρτησης scanf() και στη συνέχεια να τυπώνονται