Δομημένος Προγραμματισμός Θεωρία

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "Δομημένος Προγραμματισμός Θεωρία"

Transcript

1 Δομημένος Προγραμματισμός Θεωρία 1

2 ΤΥΠΟΙ ΜΕΤΑΒΛΗΤΩΝ ΠΑΡΑΔΕΙΓΜΑΤΑ Παράδειγμα 1 Δήλωση μεταβλητής χαρακτήρα char char ch; ch = 'A'; printf("ascii: %c\n", ch); printf("int: %d\n", ch); ΕΞΟΔΟΣ ASCII: Α INT: 65 Παράδειγμα 2 Δήλωση μεταβλητής ακεραίου int, εύρεση μεγαλύτερης και μικρότερης ακέραιης τιμής. #include <limits.h> int x=20; printf("x= %d\n", x); printf("maximum int = %d\n", INT_MAX); printf("minimum int = %d\n", INT_MIN); ΕΞΟΔΟΣ X=20 maximum int = minimum int =

3 Παράδειγμα 3 Δήλωση μεταβλητής πραγματικού αριθμού float, εύρεση μεγαλύτερης και μικρότερης τιμής. #include <float.h> float x= ; printf("x= %f, %e, %g\n", x,x,x); printf("maximum float = %.10e\n", FLT_MAX); printf("minimum float = %.10e\n", FLT_MIN); ΕΞΟΔΟΣ X= , e+000, maximum float = e+038 minimum float = e-038 Παράδειγμα 4 Τελεστής εύρεσης μεγέθους ενός τύπου sizeof() int main() printf("size for int: %d bytes\n", sizeof(int)); printf("size for float: %d bytes \n", sizeof(float)); printf("size for char: %d bytes \n", sizeof(char)); return 0; ΕΞΟΔΟΣ size for int: 4 bytes size for float: 4 bytes size for char: 1 bytes 3

4 Παράδειγμα 5 Απαριθμητικός τύπος enum week sunday, monday, tuesday, wednesday, thursday, friday, saturday ; int main() enum week today; today = wednesday; printf("day %d\n",today+1); return 0; ΕΞΟΔΟΣ Day 4 4

5 ΑΛΓΟΡΙΘΜΟΙ ΠΑΡΑΔΕΙΓΜΑΤΑ ΧΡΗΣΗΣ ΨΕΥΔΟΚΩΔΙΚΑ ΓΙΑ ΤΗΝ ΚΑΤΑΣΚΕΥΗ ΑΛΓΟΡΙΘΜΟΥ Παράδειγμα 1 Αλγόριθμος άθροισης 2 ακεραίων. Όνομα αλγόριθμου: Άθροισμα_2_ακεραίων Είσοδος: Δύο Ακέραιοι Έξοδος: Το άθροισμά τους Βάλε Ακέραιος1 Βάλε Ακέραιος2 Άθροισμα 0 Άθροισμα Ακέραιος1 + Ακέραιος2 Επέστρεψε Άθροισμα Παράδειγμα 2 Αλγόριθμος άθροισης πλήθους ακεραίων (με επανάληψη). Όνομα αλγόριθμου: Άθροισμα_πλήθους_ακεραίων Είσοδος: Πλήθος Ακεραίων Έξοδος: Άθροισμα Ακεραίων Άθροισμα 0 Για όσο(υπάρχει άλλος ακέραιος) Άθροισμα Άθροισμα + Ακέραιος Επέστρεψε Άθροισμα Παράδειγμα 3 Αλγόριθμος πολλαπλασιασμού πλήθους ακεραίων (με επανάληψη). Όνομα αλγόριθμου: Γινόμενο_πλήθους_ακεραίων Είσοδος: Πλήθος Ακεραίων Έξοδος: Γινόμενο Ακεραίων Άθροισμα 1 Για όσο(υπάρχει άλλος ακέραιος) Γινόμενο Γινόμενο * Ακέραιος Επέστρεψε Γινόμενο 5

6 Παράδειγμα 4 Αλγόριθμος εύρεσης του μεγαλύτερου από ένα πλήθος ακεραίων (με επανάληψη και επιλογή). Όνομα αλγόριθμου: Εύρεση_Μεγαλύτερου Είσοδος: Πλήθος Ακεραίων Έξοδος: Ο μεγαλύτερος ακέραιος Μεγαλύτερος - Για όσο(υπάρχει άλλος ακέραιος) Αν(Ακέραιος > Μεγαλύτερος) Μεγαλύτερος Ακέραιος Επέστρεψε Μεγαλύτερος Παράδειγμα 5 Αλγόριθμος εύρεσης του μεγαλύτερου από συγκεκριμένο αριθμό ακεραίων (με επανάληψη και επιλογή). Όνομα αλγόριθμου: Εύρεση_Μεγαλύτερου_συγκεκριμένου_πλήθους Είσοδος: Πλήθος Ακεραίων Έξοδος: Ο μεγαλύτερος από 100 Μεγαλύτερος - Μετρητής 1 Για όσο(μετρητής 100) Αν(Ακέραιος > Μεγαλύτερος) Μεγαλύτερος Ακέραιος Μετρητής Μετρητής + 1 Επέστρεψε Μεγαλύτερος 6

7 Παράδειγμα 6 Αλγόριθμος αξιολόγησης φοιτητών (με επιλογή) Όνομα αλγόριθμου: Αξιολόγηση_φοιτητών Είσοδος: Βαθμός φοιτητή Έξοδος: Αξιολόγηση Αξιολόγηση Βάλε Βαθμός Αν(Βαθμός 5) Αξιολόγηση Πέρασε Αλλιώς Αξιολόγηση Κόπηκε Επέστρεψε Αξιολόγηση Παράδειγμα 7 Αλγόριθμος αξιολόγησης φοιτητών με κλίμακα (με επιλογή). Όνομα αλγόριθμου: Αξιολόγηση_φοιτητών_με _κλίμακα Είσοδος: Βαθμός φοιτητή Έξοδος: Αξιολόγηση με κλίμακα Αξιολόγηση Βάλε Βαθμός Αν(8.5 Βαθμός 10) Αξιολόγηση Άριστα Αλλιώς Αν(6.5 Βαθμός 8.4) Αξιολόγηση Λίαν Καλώς Αλλιώς Αν(5.0 Βαθμός 6.4) Αξιολόγηση Καλώς Αλλιώς Αξιολόγηση Κόπηκε Επέστρεψε Αξιολόγηση 7

8 Παράδειγμα 8 Αλγόριθμος εύρεσης παραγοντικού ενός ακεραίου με την μέθοδο της επανάληψης. Όνομα αλγόριθμου: Παραγοντικό_ΕΠΑΝ Είσοδος: Ακέραιος(ν) Έξοδος: Το παραγοντικό του ακεραίου Βάλε ν Παραγοντικό 1 Μετρητής 1 Για όσο(μετρητής ν) Παραγοντικό Παραγοντικό * Μετρητής Μετρητής Μετρητής + 1 Επέστρεψε Παραγοντικό Παράδειγμα 9 Αλγόριθμος εύρεσης παραγοντικού ενός ακεραίου με την μέθοδο της αναδρομής. Όνομα αλγόριθμου: Παραγοντικό_ΑΝΑΔ Είσοδος: Ακέραιος(ν) Έξοδος: Το παραγοντικό του ακεραίου Βάλε ν Αν(ν=0) Επέστρεψε 1 Αλλιώς Επέστρεψε ν * Παραγοντικο_ΑΝΑΔ(ν-1) 8

9 ΤΕΛΕΣΤΕΣ ΑΡΙΘΜΗΤΙΚΟΙ ΤΕΛΕΣΤΕΣ Παράδειγμα 1 Στο παρακάτω πρόγραμμα εισάγονται δύο ακέραιοι σε δύο μεταβλητές και γίνονται όλες οι πράξεις ακεραίων. int numa,numb; numa=14; numb=8; printf("%d + %d = %d\n", numa, numb, numa+numb); printf("%d - %d = %d\n", numa, numb, numa-numb); printf("%d * %d = %d\n", numa, numb, numa*numb); printf("%d / %d = %d\n", numa, numb, numa/numb); printf("%d %% %d = %d\n", numa, numb, numa%numb); numa=3; printf("%d / %d = %d\n", numa, numb, numa/numb); EΞΟΔΟΣ = =6 14*8=112 14/8=1 (διαίρεση ακεραίων 14/8 πηλίκο 1) 14%8=6 (διαίρεση ακεραίων 14/8 υπόλοιπο 6) 3/8=0 (διαίρεση ακεραίων 3/8 πηλίκο 0) 9

10 Παράδειγμα 2 Στο παρακάτω πρόγραμμα εισάγεται ένας χαρακτήρας ASCII σε μεταβλητή char και μετατρέπεται κατά σειρά σε αντίστοιχο ακέραιο και πραγματικό αριθμό του ASCII. Κατόπιν γίνεται επεξεργασία των τιμών και στην έξοδο παίρνουμε τις νέες τιμές. int main() char ch; int i; float fl; printf("dose character:\t"); scanf("%c",&ch); fl=i=ch; printf("ch=%c, i=%d, fl=%2.2f,\n", ch,i,fl); ch=ch+1; i=fl+2*ch; fl=2.0*ch+i; printf("ch=%c, i=%d, fl=%2.2f,\n", ch,i,fl); return 0; 2 ψηφία ακέραιο μέρος και 2 δεκαδικά ψηφία Είσοδος ASCII 3 EΞΟΔΟΣ dose character:3 ch=3,i=51,fl=51.00, ch=4,i=155,fl= Πράξεις με ASCII 3: ch=ch+1=51+1=52 (ο 51 είναι ο αντίστοιχος ακέραιος του ASCII 3). i=fl+2*ch=51.00+(2*52)=155. fl=2.0*ch+i=2.0*52+155= Είσοδος ASCII A EΞΟΔΟΣ dose character:a ch=a,i=65,fl=65.00, ch=b,i=197,fl= Πράξεις με ASCII A: ch=ch+1=65+1=66 (ο 65 είναι ο αντίστοιχος ακέραιος του ASCII A). i=fl+2*66=65.00+(2*66)=197. fl=2.0*ch+i=2.0*66+155=

11 Παράδειγμα 3 Στο παρακάτω πρόγραμμα κάνουμε αναγκαστική αλλαγή τύπου (casting) σε μια μεταβλητή. Εισάγουμε τιμές σε δύο μεταβλητές ακέραιου τύπου int, τις οποίες χρησιμοποιούμε σε πράξεις και στο τέλος εκχωρούμε τα αποτελέσματα σε μεταβλητές τύπου πραγματικού αριθμού float, κάνοντας αλλαγή τύπου σε μία από αυτές από int σε float. int main() int i,j; float f1,f2,f3; printf("dose i:\n"); scanf("%d",&i); printf("dose j:\n"); casting scanf("%d",&j); f1=i/j+0.5; f2=(float)i/j+0.5; f3=(float)i/(float)j+0.5; printf("f1=%2.2f,f2=%2.2f,f3=%2.2f,\n",f1,f2,f3); return 0; Είσοδος i=2, j=5 EΞΟΔΟΣ dose i: 2 Dose j: 5 f1=0.5,f2=0.9,f3=0.9 Είσοδος i=5, j=2 EΞΟΔΟΣ dose i: 5 Dose j: 2 f1=2.5,f2=3.0,f3=3.0 Πράξεις με i=2, j=5: f1=i/j+0.5=2/5+0.5=0+0.5=0.5 (η διαίρεση ακεραίων 2/5 δίνει αποτέλεσμα 0). f2=(float)i/j+0.5=2.0/5+0.5=2.9 (η διαίρεση πραγματικού με ακέραιο δίνει αποτέλεσμα πραγματικό 2.0/5=0.4). f3=(float)i/(float)j+0.5=2.0/ =2.9 (η διαίρεση πραγματικού με πραγματικό δίνει αποτέλεσμα πραγματικό 2.0/5.0=0.4) Πράξεις με i=5, j=2: f1=i/j+0.5=5/2+0.5=2+0.5=2.5 f2=(float)i/j+0.5=5.0/2+0.5=3.0 (5.0/2 αποτέλεσμα 2.5) f3=(float)i/(float)j+0.5=5.0/ =3.0 (5.0/2.0 αποτέλεσμα 2.5) 11

12 Παράδειγμα 4 Προπορευόμενοι-παρελκόμενοι τελεστές. int a=10,b=5,c,d; printf("proporevomenos TELESTHS\n"); printf("=======================\n"); c=++a + b; printf("a=%d, b=%d, (++a)+b=%d\n", a,b,c); a=10,b=5; printf("\nparelkomenos TELESTHS\n"); printf("=======================\n"); d=a++ + b; printf("a=%d, b=%d, (a++)+b=%d\n", a,b,d); printf("\n"); EΞΟΔΟΣ PROPOREVOMENOS TELESTHS ========================= a=11, b=5, (++a) +b=16 PARELKOMENOS TELESTHS ========================= a=11, b=5, (a++) +b=15 Οι αρχικές τιμές των μεταβλητών είναι a=10 και b=5. Στην έκφραση c=++a + b πρώτα αλλάζει η τιμή του τελεστή αύξησης κατά ένα (++a), άρα a=11 και μετά χρησιμοποιείται η νέα τιμή στην έκφραση 11+5=16. Συνεπώς το αποτέλεσμα της έκφρασης είναι 16. Οι μεταβλητές ξαναπαίρνουν τις αρχικές τους τιμές. Στην έκφραση c=a++ + b πρώτα χρησιμοποιείται η τιμή του τελεστή αύξησης κατά ένα (a++) στην έκφραση, δηλαδή 10+5=15 και μετά αλλάζει τιμή ο τελεστής a=11. Οπότε το αποτέλεσμα της έκφρασης είναι

13 ΤΕΛΕΣΤΕΣ ΣΥΣΧΕΤΙΣΗΣ - ΛΟΓΙΚΟΙ ΤΕΛΕΣΤΕΣ Παράδειγμα 1 Σύνθετες εκφράσεις Στο παρακάτω πρόγραμμα βλέπουμε την εφαρμογή σύνθετων εκφράσεων με την χρήση αριθμητικών, συγκριτικών και λογικών τελεστών. EΞΟΔΟΣ a=1 b=1 c=0 d=0 int x=10, y=2, z=3; int a, b, c, d; a = ((y!=z) (x==y)); b = ((x-y)>(z+1)); c = ((x+y)!=z)&&((x*y)>=z)&&(x==2); d = ((z<0)&&(y==1)) (x<=y); printf("a=%d\n", a);printf("b=%d\n", b); printf("c=%d\n", c);printf("d=%d\n", d); Ας εξηγήσουμε πως υπολογίζονται οι εκφράσεις. Στην πρώτη έκφραση a = ((y!=z) (x==y)) έχουμε τα εξής: η έκφραση (y!=z) δίνει αποτέλεσμα 1 γιατί πράγματι 2!=3 η έκφραση (x==y) δίνει αποτέλεσμα 0 γιατί 10!=2. Η έκφραση (y!=z) (x==y) δίνει αποτέλεσμα 1 γιατί (1 0)=1 Άρα το αποτέλεσμα της πρώτης έκφρασης είναι 1 (και όχι true). Με τον ίδιο τρόπο ενεργούμε και για τις άλλες εκφράσεις. 13

14 Παράδειγμα 2 Λογικοί τελεστές Έστω οι ακέραιες τιμές: a=0, b=1, c=-1, d=3 Ακολουθεί πίνακας με αποτελέσματα λογικών εκφράσεων με λογικούς τελεστές. Λογική έκφραση Έξοδος a<b && c<d 1 a+b!c 1 a*5 && 5 b/c 1 a<=10 && b>1 && c 0!a!b c+d 1 a*b<c+d a 1 (a>2)+!b c++ 1 Παράδειγμα3 Στο παρακάτω πρόγραμμα βλέπουμε συγκρίσεις μεταξύ τιμών ακέραιων μεταβλητών, σταθερών, αλλά και συγκρίσεις εκφράσεων. int a=2,b=3,c=6; printf("%d\n", a==5); printf("%d\n", (a*b) >= c); printf("%d\n", (b+4) > (a*c)); printf("%d\n", (b=2) == a); printf("%d\n", (a+b)!= c); Σημ. Όταν το αποτέλεσμα της σύγκρισης είναι αληθές η έξοδος είναι 1 και αντίστοιχα όταν είναι ψευδές η έξοδος είναι 0. EΞΟΔΟΣ

15 ΕΛΕΓΧΟΣ ΡΟΗΣ IF-ELSE Παράδειγμα 1 Το παρακάτω πρόγραμμα με την χρήση της δομής ελέγχου ροής if/else, ελέγχει την ηλικία του χρήστη για να τον αφήσει να ψηφίσει. int hlikia; printf("dose thn Hlikia soy: "); scanf("%d", &hlikia); if (hlikia>=18) printf("mporeis na psifiseis\n"); else printf("sygnomh, den mporeis na psifiseis\n"); Το ίδιο πρόγραμμα με υποθετικό τελεστή (? :) int hlikia; printf("dose thn Hlikia soy: "); scanf("%d", &hlikia); printf("%s", hlikia>=18?"psifizeis\n":"den psifizeis\n"); Υποθετικός τελεστής 15

16 Παράδειγμα 2 Το παρακάτω πρόγραμμα δέχεται τρείς ακεραίους από έναν χρήστη, βρίσκει τον μεγαλύτερο από αυτούς και τον τυπώνει στην οθόνη. int a,b,c; printf("\ndwse arithmo a:"); scanf("%d",&a); printf("\ndwse arithmo b:"); scanf("%d",&b); printf("\ndwse arithmo c:"); scanf("%d",&c); if(a>b) if(a>c) printf("max(%d,%d,%d)=%d\n",a,b,c,a); else printf("max(%d,%d,%d)=%d\n",a,b,c,c); else if(b>c)printf("max(%d,%d,%d)=%d\n",a,b,c,b); else printf("max(%d,%d,%d)=%d\n",a,b,c,c); EΞΟΔΟΣ Αv ισχύει (a>b) τότε Αν ισχύει και (a>c) τότε a μεγαλύτερος Αν όχι δηλ (a<c) τότε c μεγαλύτερος Αν όχι δηλ. (a<b) τότε Αν ισχύει και (b>c) τότε b μεγαλύτερος Αν όχι δηλ (b<c) τότε c μεγαλύτερος Σημ. όταν θέλουμε στην if να ανήκουν πάνω από μια προτάσεις τότε υποχρεωτικά τις προτάσεις αυτές τις περικλείουμε σε ένα ζεύγος αγκίστρων. Τα άγκιστρα και οι προτάσεις λέγονται σώμα τις if. 16

17 Το ίδιο με τον υποθετικό τελεστή (? :) int a,b,c,max; printf("\ngive int a:"); scanf("%d",&a); printf("\ngive int b:"); scanf("%d",&b); printf("\ngive int c:"); scanf("%d",&c); max=(a>b?a:b)>c?(a>b?a:b):c; printf("max(%d,%d,%d)=%d\n",a,b,c,max); EΞΟΔΟΣ max=(a>b?a:b)>c?(a>b?a:b):c; A? B :c ή αλλιώς max=α?b:c Αν αληθεύει συνθήκη με την πρώτη παρένθεση (a>b?a:b)>c Α τότε και το a και το b είναι μεγαλύτερα από το c οπότε ισχύει η δεύτερη παρένθεση (a>b?a:b) Β στην οποία ελέγχουμε ποιο από τα a και b είναι μεγαλύτερο. Αν δεν αληθεύει συνθήκη με την πρώτη παρένθεση (a>b?a:b)>c τότε μεγαλύτερο είναι το c. Παράδειγμα με τιμές: 1η περίπτωση 2η περίπτωση 3η περίπτωση a=2 b=1 c=6 A=FALSE Δεν ελέγχουμε την Β άρα MAX=c a=6 a=2 b=5 b=1 c=4 c=6 Ελέγχουμε την συνθήκη Α [(a>b?a:b)>c] A=TRUE ελέγχουμε την Β: (a>b) άρα MAX=a A= TRUE ελέγχουμε την Β: (a<b) άρα MAX=b 17

18 Παράδειγμα 3 Το πρόγραμμα που ακολουθεί υπολογίζει την έκπτωση σύμφωνα με το δοθέν ποσό. Η έκπτωση ορίζεται στο 5% για ποσά από , 10% για ποσά από , στα 15% για ποσά από , στα 20% για ποσά από 400 και πάνω. Για ποσά μικρότερα από 100 δεν υπάρχει έκπτωση. float synolo,ekptosi; printf("synoliko Poso: "); scanf("%f", &synolo); if (synolo>=100 && synolo<200) ekptosi=0.05; else if (synolo>=200 && synolo<300) ekptosi=0.10; else if (synolo>=300 && synolo<400) ekptosi=0.15; else if (synolo>=400) ekptosi=0.20; else ekptosi=0.0; if (ekptosi>0) synolo=synolo-ekptosi*synolo; printf("h Ekptosi einai %.0f%%\n",ekptosi*100); printf("to Poso meta thn Ekptosi einai %.2f\n",synolo); else printf("sygnomi, den exete Ekptosi!!\n"); Σημ. εδώ για να βρούμε την έκπτωση στο εισαγόμενο ποσό χρησιμοποιούμε κλίμακα if/else/if. 18

19 ΕΛΕΓΧΟΣ ΡΟΗΣ ΜΕ ΧΡΗΣΗ ΤΗΣ SWITCH Παράδειγμα 4 Το παρακάτω πρόγραμμα δέχεται δύο αριθμούς από τον χρήστη, ενημερώνει για δυνατές επιλογές, μέσω ενός μενού επιλογών. Ανάλογα με την επιλογή του χρήστη εκτελεί την αντίστοιχη πράξη (διασφαλίζοντας ότι στην διαίρεση δεν θα γίνει η πράξη εάν ο διαιρέτης είναι 0) και στο τέλος εμφανίζει το αποτέλεσμα. float num1, num2, result=0, k=0; int choice; //gia thn epilogi toy xrhsth printf( "\ndose prwto arithmo: "); scanf("%f",&num1 ); printf( "\ndose deytero arithmo: "); scanf("%f",&num2 ); printf( "\n\t\t\t----epelexe praxh---- \n" ); printf( "\n\t\t\t 1 -> + (prosthesh)\n" ); printf( "\n\t\t\t 2 -> - (afairesh)\n" ); printf( "\n\t\t\t 3 -> * (pollaplasiasmos)\n" ); printf( "\n\t\t\t 4 -> / (diairesh)\n" ); printf( "\n\t\t\t 5 -> / (exodos)\n" ); printf( "\n\tepilogh: " ); scanf( "%d",&choice ); switch(choice) //elegxos ths choice me ta cases case 1: result=num1+num2; break; case 2: result=num1-num2; break; case 3: result=num1*num2; break; 19

20 case 4: if (num2!=0) result=num1/num2; // num2!= 0 else printf( "\t\t ERROR: division by 0\n" ); break; case 5: printf("\nden EPILEXATE PRAXH *GEIA SAS*\n\n"); k=1; //gia na mhn typothei apotelesma break; default: printf( "\nlathos EPILOGH\n\n" ); k=1; //gia na mhn typothei apotelesma break; // TELOS THS switch if (k==0) printf( "\n\tto APOTELESMA EINAI: %10.2f\n\n",result ); // telos ths main Λειτουργία 1. Το πρόγραμμα παίρνει την επιλογή του χρήστη και την συγκρίνει με την τιμή της choice. Εάν είναι ίσες τότε εκτελεί την εντολή μετά το αντίστοιχο case (κάνει την πράξη) και βγαίνει από την switch, για να τυπώσει το αποτέλεσμα (εάν το k είναι 0). Σημ. το k λέγεται flag. 2. Στην περίπτωση 5 (έξοδος) τυπώνεται μήνυμα μη επιλογής πράξης, το flag k γίνεται 1, με την break φεύγουμε από την switch και δεν τυπώνεται το αποτέλεσμα!(k==0). 3. Στην περίπτωση που επιλέξουμε κάτι άλλο από τα 1,2,3,4,5 cases, η choice δεν είναι ίση με την εισηγμένη τιμή, η switch δεν εκτελείται, αλλά εκτελείται αυτό που βρίσκεται μετά την default (μήνυμα λάθους επιλογής και το flag k γίνεται 1). 20

21 ΒΡΟΧΟΙ ΒΡΟΧΟΣ WHILE Παράδειγμα 1 Το παρακάτω πρόγραμμα ζητάει από τον χρήστη να εισάγει μία ολόκληρη πρόταση και του την επιστρέφει μαζί με τον πλήθος των χαρακτήρων της. int c,count=0; printf("dose protasi\n"); while((c=getchar())!='\n') //elegxos ena-ena toys xarakthres //eosotou pathsoume to enter('\n') putchar(c); //typonei enan kathe fora count++; //metra olous toys xarakthres printf("\nplithos xaraktiron protashs = %d\n",count); Λειτουργία Στο παράδειγμά μας η συνθήκη στην while παίρνει έναν χαρακτήρα κάθε φορά (getchar) αρκεί να μην είναι το enter και εκτελεί το σώμα της while όπου τυπώνει τον χαρακτήρα (putchar) που δέχτηκε και αυξάνει έναν μετρητή (count). Όταν πατηθεί το enter η συνθήκη καθίσταται ψευδής και στην οθόνη τυπώνεται η τιμή του μετρητή εκείνη την στιγμή που είναι και το πλήθος των χαρακτήρων της πρότασης. Η συνάρτηση getchar() διαβάζει από το πληκτρολόγιο ένα χαρακτήρα χωρίς να δέχεται παραμέτρους όπως η scanf(). Παίρνει έναν χαρακτήρα από το πληκτρολόγιο χωρίς το πάτημα του πλήκτρου enter. Η συνάρτηση putchar() εμφανίζει στην οθόνη έναν μόνο χαρακτήρα. Και οι δύο ανήκουν στο αρχείο κεφαλίδας stdio.h. 21

22 Παράδειγμα 2 Το παρακάτω πρόγραμμα ζητάει από τον χρήστη να εισάγει δύο χαρακτήρες και αυτό τυπώνει όλους τους ενδιάμεσους char protos,deyteros; printf("dose dyo xarakthres kata seira: "); scanf("%s %s",&protos, &deyteros); printf("\n"); while (protos<=deyteros) //sygkrinontai oi ASCII times putchar(protos); //typose xarakthra protos++; //afkshse thn timh toy ASCII printf("\n"); Λειτουργία Εδώ εισάγονται δύο τιμές στις διευθύνσεις των δύο μεταβλητών (&protos, &deyteros). Κατόπιν εάν ισχύει η συνθήκη εισόδου τότε τυπώνεται ο πρώτος χαρακτήρας και αυξάνεται ο αντίστοιχός του ASCII. Αυτό θα επαναληφθεί (δηλαδή η εκτύπωση όλων των ενδιάμεσων χαρακτήρων) έως ότου γίνει ψευδής η συνθήκη και αφού θα έχει τυπώσει όλους τους ενδιάμεσους αλλά και τον δεύτερο χαρακτήρα που μπήκε από τον χρήστη. 22

23 ΒΡΟΧΟΣ FOR Παράδειγμα 1 Το παρακάτω πρόγραμμα ζητάει από τον χρήστη να εισάγει έναν ακέραιο και τον εκτυπώνει αντεστραμμένο. int i,ar; printf("dose enan arithmo: "); scanf("%d", &ar); for(i=ar;i>=1;i/=10) printf("%d", i%10); printf("\n"); Λειτουργία Η τιμή του εισαγόμενου αριθμού αρχικοποιεί τον μετρητή του βρόχου for. Έτσι εάν εισαχθεί για παράδειγμα ο αριθμός 3487, μέσα στο σώμα του βρόχου τυπώνεται το υπόλοιπο της διαίρεσης με το 10 που είναι το 7, κατόπιν το βήμα του for είναι το πηλίκο της διαίρεσης του i με το 10 που είναι το 348, δηλαδή ουσιαστικά τα 3 πρώτα ψηφία του αρχικού αριθμού. Αυτό συνεχίζεται εωσότου τυπωθεί ο αριθμός ανάποδα >7843 Αριθμός Έξοδος (i%10) Βήμα(i/=10)

24 ΜΕΤΑΣΧΗΜΑΤΙΣΜΟΣ ΒΡΟΧΟΥ FOR ΣΕ WHILE Παράδειγμα Το παρακάτω πρόγραμμα τυπώνει το πηλίκο της διαίρεσης με το 2 των ακεραίων αριθμών από το 10 έως το 1. #include<stdio.h> for(int n=10;n>0;n--) printf("%d\n",n/2); Το ίδιο με μετασχηματισμό σε while. #include<stdio.h> int n=10; while(n>0) printf("%d\n",n/2); n--; EΞΟΔΟΣ 5 10/2 4 9/2 4 8/2 3 7/2 3 6/2 2 5/2 2 4/2 1 3/2 1 2/2 0 1/2 24

25 ΒΡΟΧΟΣ DO / WHILE Παράδειγμα Το παρακάτω πρόγραμμα υπολογίζει τον μέσο όρο του πλήθους των αριθμών που εισάγονται από τον χρήστη. Η εισαγωγή των αριθμών σταματά όταν ο χρήστης πατήσει το 0. float num,sum=0.0; int count=0; do printf("dose arithmo (0 gia telos): "); scanf("%f",&num); if (num!=0) sum+=num; count++; while (num!=0); if (count!=0) printf("o M.O.einai: %.2f \n",sum/count); else printf("den ypologisthke o M.O.\n"); Λειτουργία Η if μέσα στο σώμα της do/while υπολογίζει το άθροισμα των αριθμών και μετρά το πλήθος τους. Ο βρόχος do/while θα λειτουργεί μέχρι να πληκτρολογηθεί το μηδέν. Η if μετά το βρόχο μας εξασφαλίζει ότι κατά τον υπολογισμό του μέσου όρου (sum/count) δεν θα γίνει διαίρεση με το μηδέν εάν εξ αρχής ο χρήστης πληκτρολογήσει το μηδέν οπότε και η τιμή του αθροίσματος θα είναι 0. 25

26 ΜΕΤΑΣΧΗΜΑΤΙΣΜΟΣ ΒΡΟΧΟΥ FOR ΣΕ DO/WHILE Παράδειγμα Το παρακάτω πρόγραμμα τυπώνει το υπόλοιπο της διαίρεσης του 10 με τους αριθμούς από το 5 έως το 1. #include<stdio.h> for(int n=5;n>0;n--) printf("%d\n",5%n); Το ίδιο με μετασχηματισμό σε while. #include<stdio.h> int n=5; do printf("%d\n",5%n); n--; while(n>0); EΞΟΔΟΣ 0 5%5 1 5%4 2 5%3 1 5%2 0 5%1 26

27 ΒΡΟΧΟΣ ΕΜΦΩΛΕΥΜΕΝΟΥ FOR Παράδειγμα Το παρακάτω πρόγραμμα υπολογίζει τις 4 πρώτες δυνάμεις των αριθμών 1-9. int temp; printf(" i i^2 i^3 i^4\n"); for(int i=1;i<10;i++) temp=1; for(int j=1;j<5;j++) temp=(temp*i); printf("%5d",temp); printf("\n"); Λειτουργία Ο εξωτερικός βρόχος είναι αυτός των αριθμών από το 1 έως το 9 και ο εσωτερικός υπολογίζει τις 4 πρώτες δυνάμεις του κάθε αριθμού. EΞΟΔΟΣ i i 2 i 3 i

28 ΒΡΟΧΟΣ ΜΕ ΤΗΝ ΕΝΤΟΛΗ CONTINUE Παράδειγμα Το πρόγραμμα εμφανίζει μόνο τους άρτιους αριθμούς από το 0 έως το 100. int x; for(x=0;x<100;x++) if(x%2) continue; printf("%d\n",x); Λειτουργία Κάθε φορά που επαληθεύεται η συνθήκη της if, δηλαδή κάθε φορά που προκύπτει υπόλοιπο από την διαίρεση του αριθμού με το 2 (δηλαδή ο αριθμός είναι περιττός), η continue στέλνει την ροή του προγράμματος στην αρχή του βρόχου και ο αριθμός δεν τυπώνεται. ΒΡΟΧΟΣ ΜΕ ΤΗΝ ΕΝΤΟΛΗ BREAK Παράδειγμα Το πρόγραμμα εμφανίζει τους αριθμούς από το int t; for(t=0;t<100;t++) printf("%d\n",t); if(t==10) break; Λειτουργία Εδώ το πρόγραμμα έχει φτιαχτεί για να μας εμφανίζει τους αριθμούς από το Εάν επαληθευτεί η συνθήκη της if, δηλαδή τυπωθεί και ο αριθμός 10 τότε η break στέλνει την ροή του προγράμματος έξω από το βρόχο τυπώνοντας ουσιαστικά τους αριθμούς από το

29 ΒΡΟΧΟΣ ΜΕ ΤΗΝ ΕΝΤΟΛΗ GOTO Παράδειγμα Το παρακάτω πρόγραμμα ζητάει από τον χρήστη να μαντέψει έναν αριθμό από το μέχρι να βρει τον κρυφό αριθμό που είναι ήδη περασμένος στο πρόγραμμα. #include<stdio.h> int num, ar=77; mario: printf("mantepse enan ar apo 1-100\n"); scanf("%d",&num); if (num==ar) printf("ton vrhkes!!\n"); else printf("xanaprospathise!!\n"); goto mario; Λειτουργία Εδώ η εντολή goto πηγαίνει την ροή του προγράμματος στην ετικέτα Mario: αν ο αριθμός που εισήχθη είναι διαφορετικός από τον κρυφό δημιουργώντας έναν ψευδοβρόχο, εωσότου ο χρηστής πληκτρολογήσει τον σωστό αριθμό. Σημ. Το παραπάνω πρόγραμμα μπορούμε να το υλοποιήσουμε και με βρόχο do-while. 29

30 ΠΙΝΑΚΕΣ ΜΟΝΟΔΙΑΣΤΑΤΟΙ ΠΙΝΑΚΕΣ Παράδειγμα 1 Δήλωση και αρχικοποίηση μονοδιάστατου πίνακα [5] με χρήση δομής επανάληψης με συνθήκη στην είσοδο και μετρητή. int main() int myarray[5]; int i; for(i=0;i<5;i++)//loop 4 times printf("value for myarray[%d]:",i); scanf("%d", &myarray[i]); for(i=0;i<5;i++) printf("myarray[%d] is %d\n",i,myarray[i]); return 0; EΞΟΔΟΣ Εάν βάλουμε στον πίνακα τις τιμές 1,2,3,45,100: Value for myarray[0]:1 Value for myarray[0]:2 Value for myarray[0]:3 Value for myarray[0]:45 Value for myarray[0]:100 θα πάρουμε την έξοδο: myarray[0] is 1 myarray[0] is 2 myarray[0] is 3 myarray[0] is 45 myarray[0] is 100 Δήλωση και αρχικοποίηση με τις δοθείσες τιμές: int myarray[5]=1,2,3,45,100; 30

31 Παράδειγμα 2 Δήλωση ενός πίνακα 5 στοιχείων και εκτύπωση των τιμών των στοιχείων του αντίστροφα. int main() int Ar[5],i; for(i=0;i<5;i++) printf("%2d: ",i+1); scanf("%d", &Ar[i]); printf("oi times antistrofa einai:\n"); for(i=4;i>-1;i--) printf("%5d\n", Ar[i]); return 0; Λειτουργία Εδώ χρησιμοποιούμε βρόχο for για την εισαγωγή τιμών στον πίνακα με αρχικοποίηση στο 0 (πρώτο στοιχείο του πίνακα) και συνθήκη i<5. Για την εμφάνιση των τιμών του πίνακα αντίστροφα χρησιμοποιούμε βρόχο for με αρχικοποίηση στο 4 (τελευταίο στοιχείο του πίνακα) και φθίνουσα μέτρηση. 31

32 ΔΙΣΔΙΑΣΤΑΤΟΙ ΠΙΝΑΚΕΣ Παράδειγμα 1 Δήλωση και αρχικοποίηση δισδιάστατου πίνακα [2Χ3] με χρήση δομής επανάληψης με συνθήκη στην είσοδο και μετρητή int myarray[2][3]; int i,j; for(i=0;i<2;i++) for(j=0;j<3;j++) printf("value for myarray[%d][%d]:",i,j); scanf("%d", &myarray[i][j]); for(i=0;i<2;i++) for(j=0;j<3;j++) printf("myarray[%d][%d] is %d\n",i,j,myarray[i][j]); EΞΟΔΟΣ Εάν βάλουμε στον πίνακα τις τιμές 1,10,100,2,20,200 Είσοδος Value for myarray[0][0]:1 Value for myarray[0][1]:10 Value for myarray[0][2]:100 Value for myarray[1][0]:2 Value for myarray[1][1]:200 Value for myarray[1][2]:2000 θα πάρουμε την έξοδο: myarray[0][0] is 1 myarray[0][1] is 10 myarray[0][2] is 100 myarray[1][0] is 2 myarray[1][1] is 20 myarray[1][2] is 200 Δήλωση και αρχικοποίηση με τις δοθείσες τιμές: int myarray[2][3]=1,10,100,2,20,200 32

33 Παράδειγμα 2 Πρόγραμμα που αρχικοποιεί έναν δισδιάστατο πίνακα 3Χ4 με τιμές που του δίνει ο χρήστης και κατόπιν εμφανίζει στην έξοδο τα αθροίσματα των στοιχείων των στηλών και τα γινόμενα των στοιχείων των γραμμών εκχωρώντας τα αποτελέσματα των πράξεων σε δύο νέους πίνακες. #define R 3 #define C 4 int main() int i,j; float Ar[R][C],sum[4],prod[3]; //arxikopoihsh pinaka for(i=0;i<r;i++) for(j=0;j<c;j++) printf("\nstoixeio[%d][%d]: ",i,j); scanf("%f", &Ar[i][j]); for(j=0;j<c;j++) //athroisma sthlwn sum[j]=0.0; for(i=0;i<r;i++) sum[j]=sum[j]+ar[i][j]; for(i=0;i<r;i++) //ginomeno grammwn prod[i]=1.0; for(j=0;j<c;j++) prod[i]=prod[i]*ar[i][j]; printf("\nginomeno GRAMMWN:\n"); for(i=0;i<r;i++) printf("%.2f ",prod[i]); printf("\nathroisma STHLWN:\n"); for(j=0;j<c;j++) printf("%.2f ",sum[j]); return 0; 33

34 EΞΟΔΟΣ Για έναν πίνακα με τιμές: Γινόμενα γραμμών Αθροίσματα στηλών Σημ. Τις μεταβλητές που δέχονται αθροίσματα τιμών (sum) τις αρχικοποιούμε στην τιμή 0 και αυτές που δέχονται γινόμενα (prod) στο 1. Εάν δεν τις αρχικοποιήσουμε, οι μεταβλητές θα πάρουν τυχαίες αρχικές τιμές που θα αλλοιώσουν το τελικό αποτέλεσμα. Παράδειγμα3 Πρόγραμμα που βρίσκει και εμφανίζει το μικρότερο στοιχείο της κύριας και δευτερεύουσας διαγώνιου ενός ακέραιου πίνακα 5Χ5. include <stdio.h> #define R 5 #define C 5 int Ar[R][C], i,j,master_min,minor_min; for(i=0;i<r;i++) for(j=0;j<c;j++) printf("\nstoixeio[%d][%d]: ",i,j); scanf("%d", &Ar[i][j]); printf("\n"); master_min=ar[0][0]; \\ 1 Ο for(i=0;i<r;i++) if(ar[i][i]<master_min) stoixeio kyrias diagwniou master_min=ar[i][i]; minor_min=ar[0][c-1]; \\ 1 Ο stoixeio defterevousas diagon 34

35 for(i=0;i<r;i++) if(ar[i][c-1-i]<minor_min) minor_min=ar[i][c-1-i]; printf("\nmikr kyrias diag. einai to:%d \n",master_min); printf("\nmikr deyt. diag. einai to:%d \n",minor_min); EΞΟΔΟΣ Τα στοιχεία της κύριας διαγώνιου είναι τα: Ar[i][i] Ar[0][0], Ar[1][1], Ar[2][2], Ar[3][3], Ar[4][4]. Τα στοιχεία της δευτερεύουσας διαγώνιου είναι τα: Ar[i][j-1-i] Ar[0][4], [0] [5-1-0] Ar[1][3], [1] [5-1-1] Ar[2][2], [2] [5-1-2] Ar[3][1], [3] [5-1-3] Ar[4][0]. [4] [5-1-4] Π.χ. σε έναν πίνακα: Η κύρια διαγώνιος είναι: Η δευτερεύουσα διαγώνιος είναι:

36 Παράδειγμα ΑΛΦΑΡΙΘΜΗΤΙΚΑ ΕΙΣΟΔΟΣ ΕΞΟΔΟΣ ΑΛΦΑΡΙΘΜΗΤΙΚΟΥ char name[30]; printf( Poio einai to onoma soy?\n ); scanf( %s, name); printf( Geia soy %s \n, name); EΞΟΔΟΣ Poio einai to onoma soy? (Εισάγουμε Mario) Geia soy Mario ΜΕ ΤΗΝ ΧΡΗΣΗ ΤΩΝ gets() ΚΑΙ puts() #include <string.h> char name[30]; printf( Poio einai to onoma soy?\n ); gets(name); puts( Geia soy); puts(name); Σημ. Όταν σε κάποια συνάρτηση καλούμε την μεταβλητή αλφαριθμητικού, γράφουμε μόνο το όνομά της και όχι τον δείκτη των στοιχείων της. 36

37 ΣΥΝΑΡΤΗΣΕΙΣ ΑΛΦΑΡΙΘΜΗΤΙΚΩΝ ΕΥΡΕΣΗ ΜΗΚΟΥΣ strlen() #include <string.h> char name[30]= Hello ; printf( %d\n, strlen(name)); EΞΟΔΟΣ Θα τυπωθεί το μήκος του αλφαριθμητικού δηλαδή στην προκειμένη περίπτωση θα εκτυπωθεί ο αριθμός 5. ΤΟ ΙΔΙΟ ΜΕ ΕΚΧΩΡΗΣΗ ΣΕ ΜΕΤΑΒΛΗΤΗ. #include <string.h> int a; char name[30]= Hello ; a=strlen(name); printf( to mhkos toy %s einai %d\n, name, a); ΑΝΤΙΓΡΑΦΗ ΑΛΦΑΡΙΘΜΗΤΙΚΟΥ strcpy() #include <string.h> char name1[30]= hello ; char name2[30]= class ; strcpy(name1, name2); printf( %s n, name1); EΞΟΔΟΣ Το string του name2 θα καταχωρηθεί στο name1. Θα τυπωθεί το αλφαριθμητικό class που πήρε την θέση του Hello στον πίνακα name1. Με strncpy(name1, name2, n); Θα αντιγράψει τα n πρώτα γράμματα του name2 στο name1. 37

38 ΣΥΝΕΝΩΣΗ ΑΛΦΑΡΙΘΜΗΤΙΚΩΝ strcat() #include <string.h> char name1[30]= hello ; char name2[30]= class ; strcat(name1, name2); printf( %s n, name1); EΞΟΔΟΣ Το string του name2 θα συνενωθεί με το string του name1. Θα τυπωθεί το αλφαριθμητικό helloclass. Με strncat (name1, name2, n); Θα ενώσει τα n πρώτα γράμματα του name2 με το name1. ΣΥΓΚΡΙΣΗ ΑΛΦΑΡΙΘΜΗΤΙΚΩΝ strcmp() #include <string.h> char name1[30]= hello ; char name2[30]= class ; strcmp(name1, name2); EΞΟΔΟΣ Συγκρίνονται τα δύο αλφαριθμητικά και εάν βρεθούν όμοια η έξοδος της strcmp() είναι ο αριθμός 0 αλλιώς είναι ο -1. Σημ. Εδώ η έξοδος θα είναι 0. 38

39 Παράδειγμα1 Συνδυασμός των συναρτήσεων strcpy() και strcat() #include <string.h> char str1[30], str2[30]; strcpy(str1, Kalhmera!! ); strcpy(str2, Paidia!! ); printf( String1=%s\t string2=%s \n,str1,str2); strncat(str1,str2,3); printf( String1=%s \n,str1); strcpy(str1, Kalhnyxta ); printf( String1=%s \n,str1); EΞΟΔΟΣ Τα str1 Και str2 θα πάρουν τα strings Kalhmera και Paidia αντίστοιχα. Θα τυπωθεί στην αρχή: String1=Kalhmera!! String2=Paidia!! Μετά τη συνένωση του πρώτου string και των 3 πρώτων χαρακτήρων του δεύτερου θα έχουμε: String1=Kalhmera!! Pai Στο τέλος το str1 θα πάρει το string Kalynyxta και θα έχουμε: String1=Kalhnyxta 39

40 Παράδειγμα2 Συνδυασμός των συναρτήσεων strcpy() και strcmp() και δομή επιλογής if/else. #include <string.h> char name1[30]="kalhmera"; char name2[30]="kalhspera"; int diff; diff=strcmp(name1,name2); if(diff==0) printf("ta strings einai idia\n"); else printf("ta strings den einai idia\n"); printf("to diff einai %d\n", diff); strcpy(name2,name1); diff=strcmp(name1,name2); if(diff==0) printf("ta strings einai idia\n"); else printf("ta strings den einai idia\n"); printf("to diff einai %d\n", diff); EΞΟΔΟΣ Στην αρχή τα strings είναι Kalhmera και Kalhspera. Αφού συγκριθεί το πλήθος των χαρακτήρων των δύο μεταβλητών με την συνάρτηση strcmp() το αποτέλεσμα εκχωρείται στην μεταβλητή diff. Στη έξοδο θα τυπωθεί: Ta strings den einai idia To diff einai -1 Κατόπιν αντιγράφουμε το string του name1 στο name2. Τώρα οι δύο μεταβλητές έχουν τι ίδιο μήκος αλφαριθμητικού άρα το ίδιο πλήθος χαρακτήρων. Στη έξοδο θα τυπωθεί: Ta strings einai idia To diff einai 0 40

41 ΣΥΝΑΡΤΗΣΕΙΣ ΟΡΙΣΜΟΣ ΣΥΝΑΡΤΗΣΗΣ ΜΕ ΕΠΙΣΤΡΟΦΗ ΤΙΜΗΣ #include <iostream.h> int compare_numbers(int num1, int num2); int main().... return 0; int compare_numbers(int num1, int num2) if (num1>mum2) return (num1); ΟΡΙΣΜΟΣ ΣΥΝΑΡΤΗΣΗΣ ΧΩΡΙΣ ΕΠΙΣΤΡΟΦΗ ΤΙΜΗΣ #include <iostream.h> void compare_numbers(int num1, int num2); int main().... return 0; void compare_numbers(int num1, int num2) if (num1>mum2) printf( max=%d\n, num1); else printf( max=%d\n, num1); 41

42 ΤΟΠΙΚΕΣ ΜΕΤΑΒΛΗΤΕΣ Το παρακάτω πρόγραμμα δείχνει την συμπεριφορά των τοπικών μεταβλητών. #include<stdio.h> int tetragono(int a); int x, y; // y-topikh metavlhth ths main x=3; y=tetragono(x); printf("to y ths main einai=%d\n", y); printf("to tetragono toy %d einai %d\n", x, y); int tetragono(int a) int y=10; // y-topikh metavlhth ths tetragono printf("to y ths tetragono einai=%d\n", y); return(a*a); EΞΟΔΟΣ To y ths tetragono einai 10 To y ths main einai 9 To tetragono toy 3 einai 9 Press any key to continue ΠΙΝΑΚΑΣ ΩΣ ΠΑΡΑΜΕΤΡΟΣ ΣΥΝΑΡΤΗΣΗΣ void func_arr(int Pin[]); //dhlosh synarthshs int A[10],i; for(i=0;i<=9;i++) A[i]=i; func_arr(a); /* klhsh synsrthshs me apostolh toy pinaka A */ void func_arr(int Pin[]) //orismos synarthshs int k; for(k=0;k<=9;k++) printf("%d\n",pin[k]); 42

43 Λειτουργία Σε αυτό το πρόγραμμα αρχικοποιούμε τον πίνακα Α[10] με τις τιμές που παίρνει ο μετρητής του βρόχου και μετά καλούμε την συνάρτηση func_arr() με όρισμα το όνομα του πίνακα Α. η συνάρτηση με την σειρά της τυπώνει τι τιμές του πίνακα Pin[ ] τις οποίες έχει δεχθεί από τον πίνακα Α[ ]. ΠΟΛΛΕΣ ΕΝΤΟΛΕΣ ΕΠΙΣΤΡΟΦΗΣ (ΧΡΗΣΗ ΤΗΣ ΓΛΩΣΣΑΣ C++) Το παρακάτω πρόγραμμα δέχεται ένα ποσό που του δίνει ο χρήστης μεταξύ 0 και 1000 και το διπλασιάζει. Εάν το ποσό που εισήχθη είναι μεγαλύτερο από 1000 βγάζει μήνυμα λάθους. #include <iostream.h> int diplasio(int posogiadiplasiasmo); int main() int apotelesma=0; int posoeisagomeno; cout<<"dose poso metaxy 0 kai gia na to diplasiaso: "; cin>>posoeisagomeno; cout<<"\nprin kaleso thn diplasio... "; cout<<"\neisagomeno poso: "<<posoeisagomeno<<" Diplasio: "<<apotelesma<<"\n"; apotelesma=diplasio(posoeisagomeno); if (apotelesma==-1) cout<<"\nepistrofh apo thn diplasio...\n"; cout<<"to poso pou edoses einai megalytero apo 10000\n\n"; else cout<< "\nepistrofh apo thn diplasio..."; cout<< "\neisagomeno poso: "<<posoeisagomeno<< "Diplasio: "<<apotelesma<< "\n\n"; return 0; int diplasio(int pragmatiko) 43

44 if (pragmatiko<=10000) return (pragmatiko*2); else return -1; ΔΙΠΛΗ ΕΠΙΣΤΡΟΦΗ ΤΙΜΗΣ ΠΕΡΑΣΜΑ ΟΡΙΣΜΑΤΩΝ ΜΕ ΤΙΜΗ (ΠΑΡΑΜΕΤΡΟΙ ΣΑΝ ΤΟΠΙΚΕΣ ΜΕΤΑΒΛΗΤΕΣ) Το παρακάτω πρόγραμμα κάνει αλλαγή θέσης 2 τιμών τοπικών μεταβλητών χωρίς να επηρεάζονται οι αρχικές μεταβλητές. #include <iostream.h> void swap(int x, int y); int main() int a,b; cout<<"dose a: "<<endl; cin>>a; cout<<"dose b: "<<endl; cin>>b; cout<<"main. Prin to swap, a: "<<a<<" b: "<<b<<"\n"; swap(a,b); cout<<"main. Meta to swap, a: "<<a<<" b: "<<b<<"\n"; return 0; void swap(int x, int y) int temp; cout<<"swap. Prin to swap, x: "<<x<<" y: "<<y<<"\n"; temp=x; x=y; y=temp; cout<<"swap. Meta to swap, x: "<<x<<" y: "<<y<<"\n"; Λειτουργία Σε αυτό το πρόγραμμα ένα αντίγραφο των τιμών των μεταβλητών a,b περνούν στις x,y. Στην έξοδο έχουμε την αντιστροφή των μεταβλητών x,y χωρίς να επηρεαστούν οι τιμές των μεταβλητών a,b. 44

45 ΣΥΝΑΡΤΗΣΗ ΜΕ ΑΝΑΔΡΟΜΗ Το παρακάτω πρόγραμμα υπολογίζει το παραγοντικό ενός αριθμού. Ισχύει ότι: n!=1 αν n=0 και n!=n*(n-1) αν n>0. #include <iostream.h> long paragontiko(long n); //dhlosh prototypou int main() long arithmos; cout<<"dose enan arithmo: "<<endl; cin>>arithmos; // exodos me klhsh ths synarthshs cout<<arithmos<<"!=" <<paragontiko(arithmos)<<endl; return 0; //telos ths main long paragontiko(long n) //orismos synarthshs if (n>1) return (n*paragontiko(n-1)); else return 1; //telos synarthshs Λειτουργία Πχ. Εάν το n=5 τότε η συνάρτηση καλεί τον εαυτό της με όρισμα n-1 μέχρι το παραγοντικό του 0 όπου και σταματά λόγω της συνθήκης του if όπου θα επιστρέψει 1 δηλαδή: Επιστρέφει * paragontiko(4) 4 * paragontiko(3) 3 * paragontiko(2) 2 * paragontiko(1) 1 * paragontiko(0) Επιστρέφει 24 Επιστρέφει 6 Επιστρέφει 2 Επιστρέφει 1 Εάν το n=0 τότε η συνάρτηση δεν τρέχει τον εαυτό της αλλά επιστρέφει 1 που ουσιαστικά είναι το παραγοντικό του 0. 45

46 ΣΥΝΑΡΤΗΣΗ ΜΕ ΕΠΑΝΑΛΗΨΗ Το παρακάτω πρόγραμμα υπολογίζει την δύναμη ενός αριθμού. Ο αριθμός και η δύναμη θα εισάγεται από το χρήστη. Ισχύει: x n = x*x*x*..*x, n φορές. #include <iostream.h> int power(int x, int n); //dhlosh synarthshs int main() int a,b,dynamh; cout<<"dose ton arithmo: "<<endl; cin>>a; cout<<"dose thn dynamh: "<<endl; cin>>b; dynamh=power(a,b); //klhsh ths synarthshs cout<<"to "<<a<<"sthn"<<b<<" mas kanei: <<dynamh<<endl; return 0; //telos ths main int power(int x, int n) //orismos synarthshs int i,p; p = 1; for (i=1; i<=n; i++) p = p*x; return p; //telos synarthshs 46

47 ΠΡΟΚΑΘΟΡΙΣΜΕΝΕΣ ΤΙΜΕΣ ΠΑΡΑΜΕΤΡΩΝ Το παρακάτω πρόγραμμα υπολογίζει τον όγκο ενός κύβου με την χρήση προκαθορισμένων τιμων. #include <iostream.h> int ogkoskyvou(int mhkos, int platos = 30, int ypsos = 2); int main() int mhkos = 50; int platos = 20; int ypsos = 5; int ogkos; ogkos = ogkoskyvou(mhkos, platos, ypsos); cout <<"1h Klhsh Synarthshs o ogkos einai: "<<ogkos<<"\n"; ogkos = ogkoskyvou(mhkos, platos); cout <<"2h Klhsh Synarthshs o ogkos einai: "<<ogkos<<"\n"; ogkos = ogkoskyvou(mhkos); cout <<"3h Klhsh Synarthshs o ogkos einai: "<<ogkos<<"\n"; return 0; ogkoskyvou(int mhkos, int platos, int ypsos) return (mhkos * platos * ypsos); Λειτουργία Εδώ το πρόγραμμα θα χρησιμοποιήσει (καλέσει) την συνάρτηση 3 φορές με διαφορετικές κάθε φορά παραμέτρους κατά την κλήση. Την πρώτη φορά θα υπολογιστεί ο όγκος χρησιμοποιώντας τις τιμές των παραμέτρων που έχουν οριστεί μέσα στην main. Την δεύτερη φορά χρησιμοποιώντας τις τιμές δύο εκ των παραμέτρων που έχουν οριστεί μέσα στην main και την τελευταία στη σειρά στο πρωτότυπο και τη τρίτη φορά χρησιμοποιώντας την τιμή της μιας παραμέτρου που έχει οριστεί μέσα στην main και την 2 η και 3 η κατά σειρά στο πρωτότυπο. 47

48 ΚΛΗΣΗ ΣΥΝΑΡΤΗΣΗΣ ΑΠΟ ΣΥΝΑΡΤΗΣΗ Το παρακάτω πρόγραμμα με την χρήση συναρτήσεων βρίσκει εάν ο αριθμός που εισάγει ο χρήστης είναι άρτιος ή περιττός. Εάν δοθεί σαν επιλογή ο αριθμός 0 τότε το πρόγραμμα να τερματίζει. #include <iostream.h> void peritos(int a); void artios(int a); int main() int i; do cout<<"dose enan arithmo (0 gia EXODO): "; cin>>i; peritos(i); while (i!=0); return 0; void peritos(int a) if ((a%2)!=0) ΚΛΗΣΗ ΤΗΣ ΣΥΝΑΡΤΗΣΗΣ artios(a) ΜΕΣΑ ΣΤΗ ΣΥΝΑΡΤΗΣΗ peritos(a) cout<<"o arithmos pou edoses einai PERITOS.\n"; else artios(a); void artios(int a) if ((a%2)==0) cout<<"o arithmos pou edoses einai ARTIOS.\n"; else peritos(a); Λειτουργία Εδώ το πρόγραμμα θα βρει εάν ο αριθμός που εισήχθη είναι άρτιος ή περιττός με την χρήση κλήσης συνάρτησης από συνάρτηση. Η πρώτη συνάρτηση καλείται μέσα στην main. Εκεί ελέγχεται εάν ο αριθμός που εισήχθη είναι το 0 κάτι που προκαλεί το τερματισμό του προγράμματος. Στην πρώτη συνάρτηση (peritos) ελέγχεται εάν το υπόλοιπο της διαίρεσης του αριθμού δεν είναι 0 τότε ο αριθμός είναι περιττός αλλιώς καλείται η δεύτερη συνάρτηση (artios) που ελέγχει με την σειρά της εάν ο αριθμός είναι άρτιος. 48

49 INLINE ΣΥΝΑΡΤΗΣΕΙΣ Το παρακάτω πρόγραμμα διπλασιάζει 3 φορές διαδοχικά μια τιμή εισόδου με την χρήση INLINE συνάρτησης. #include <iostream.h> inline int Diplasio(int); int main() int timh; cout<<"dose MIA TIMH: "; cin>>timh; cout<<"\ndiadoxikos DIPLASIASMOS TIMHS\n"; cout<<"\narxikh TIMH: "<<timh<<endl; timh=diplasio(timh); cout<<"timh1 (ARXIKH TIMH x 2): "<<timh<<endl; timh=diplasio(timh); cout<<"timh2 (TIMH1 x 2): "<<timh<<endl; timh=diplasio(timh); cout<<"timh3 (TIMH2 x 2): "<<timh<<endl; cout<<endl; return 0; int Diplasio(int timh) return 2*timh; Λειτουργία Εδώ έχουμε ορίσει μία inline συνάρτηση (Diplasio) που την καλούμε μέσα στην main τρεις φορές. Ουσιαστικά ο compiler αντιγράφει τον κώδικα της συνάρτησης σε κάθε σημείο της main που καλείται η συνάρτηση. Με αυτό τον τρόπο δεν έχουμε τρεις μεταπηδήσεις από την main στην συνάρτηση και έτσι κερδίζουμε χρόνο κατά την εκτέλεση του προγράμματος. Χρησιμοποιούμε inline συναρτήσεις όταν η συνάρτηση έχει μία έως δύο εντολές και χρειάζεται να την καλέσουμε μέσα στην main πολλές φορές. 49

50 ΥΠΕΡΦΟΡΤΩΣΗ ΣΥΝΑΡΤΗΣΕΩΝ Το παρακάτω πρόγραμμα χρησιμοποιεί μία συνάρτηση με υπερφόρτωση ώστε να κάνει τα εξής: I. Να τυπώνει στην οθόνη 50 μηδενικά (0), II. Να τυπώνει στην οθόνη 50 χαρακτήρες που θα καθορίζονται από την κλήση της συνάρτησης και III. Να τυπώνει στην οθόνη χαρακτήρες που ο χαρακτήρας αλλά και ο αριθμός των χαρακτήρων να καθορίζονται στην κλήση της συνάρτησης. #include <iostream.h> void printfunc(); void printfunc(char ch); void printfunc(char ch, int n); printfunc(); printfunc('/'); printfunc('%',40); void printfunc() int i; for (i=0; i<50; i++) cout << "0"; cout << endl; void printfunc(char ch) int i; for (i=0; i<50; i++) cout << ch; cout << endl; void printfunc(char ch, int n) int i; for (i=0; i<n; i++) cout << ch; cout << endl; 50

51 ΥΠΕΡΦΟΡΤΩΣΗ ΣΥΝΑΡΤΗΣΕΩΝ (ΜΕ ΠΡΟΕΠΙΛΕΓΜΕΝΑ ΟΡΙΣΜΑΤΑ) Το παρακάτω πρόγραμμα χρησιμοποιεί μία συνάρτηση με υπερφόρτωση και προεπιλεγμένα ορίσματα - και 50 #include <iostream.h> void printfunc(char ch='-', int n=50); printfunc(); printfunc('/'); printfunc('%',40); void printfunc(char ch, int n) int i; for (i=0; i<n; i++) cout << ch; cout << endl; Λειτουργία Εδώ το πρόγραμμα θα χρησιμοποιήσει (καλέσει) την συνάρτηση 3 φορές. Την πρώτη φορά το loop που βρίσκεται μέσα στον ορισμό της συνάρτησης θα χρησιμοποιήσει και τα δύο προεπιλεγμένα ορίσματα που βρίσκονται μέσα στο πρωτότυπο. Την δεύτερη φορά θα χρησιμοποιήσει το όρισμα της κλήσης συνάρτησης και το δεξί του πρωτοτύπου και την τρίτη φορά θα χρησιμοποιήσει τα ορίσματα που βρίσκονται στη κλήση της συνάρτησης. 51

52 ΔΟΜΕΣ ΟΡΙΣΜΟΣ ΔΟΜΗΣ Παράδειγμα 1 Το παρακάτω πρόγραμμα ορίζει μια δομή για να καταχωρήσει τα στοιχεία ενός φοιτητή. #include <string.h> struct foit_entry //orismos domhs int f_code; //melos ths domhs char f_fname[15]; char f_lname[15]; float vathmos; foithths1; //dhlosh metavlhths domhs // eisagwgh stoixeiwn foithths1.f_code=001; strcpy(foithths1.f_fname, "George") ; strcpy(foithths1.f_lname, "Panou"); foithths1.vathmos=7.5; // emfanish stoixeiwn printf("stoixeia tou foithth:\n"); printf("kwdikos:%d\n", foithths1.f_code); printf("onma:%s\n", foithths1.f_fname); printf("epwnymo:%s\n", foithths1.f_lname); printf ("Vathmos:%.2f\n", foithths1.vathmos); Λειτουργία Μέσα στην main ορίζουμε μια δομή με όνομα foit_entry, δημιουργώντας ταυτόχρονα τη μεταβλητή foithths1 της δομής. Μετά εισάγουμε τα στοιχεία της μεταβλητής με την σειρά που είναι δηλωμένα στην δομή και κατόπιν τα εμφανίζουμε στην οθόνη. Εδώ οι τιμές των μελών της μεταβλητής της δομής καταχωρούνται κατευθείαν μέσα από το πρόγραμμα. 52

53 Παράδειγμα 2 Στο παρακάτω πρόγραμμα ορίζουμε μια δομή όπως στο προηγούμενο παράδειγμα, αλλά καταχωρούμε τα στοιχεία ενός φοιτητή από το πληκτρολόγιο. struct foit_entry //orismos domhs int f_code; //melos ths domhs char f_fname[15]; char f_lname[15]; float vathmos; foithths1; //dhlosh metavlhths domhs // eisagwgh timwn printf("dwse Kwdiko: "); scanf("%d",foithths1.f_code); getchar(); printf("dwse Onoma: "); gets(foithths1.f_fname); printf("dwse Epwnymo: "); gets(foithths1.f_lname); printf("dwse Vathmo: "); scanf("%f", foithths1.vathmos); ΔΟΜΕΣ ΚΑΙ ΣΥΝΑΡΤΗΣΕΙΣ struct foithths //orismos domhs char f_name[15]; char l_name[15]; int Vathmos; ; //telos domhs //dhlwsh synarthshs eisagwghs timwn struct foithths entry(struct foithths); //dhlwsh synarthshs emfanishs timwn void show(struct foithths); struct foithths x; x=entry(x) ; ΤΥΠΟΣ ΕΠΙΣΤΡΟΦΗΣ ΣΥΝΑΡΤΗΣΗΣ ΤΥΠΟΣ ΠΑΡΑΜΕΤΡΟΥ ΣΥΝΑΡΤΗΣΗΣ ΟΝΟΜΑ ΣΥΝΑΡΤΗΣΗΣ 53

54 show(x) ; //end of main // orismos synarthshs eisagwghs stoixeiwn struct foithths entry(struct foithths a) printf("dwse Onoma: "); gets(a.f_name); printf("dwse Epwnymo: "); gets(a.l_name); printf("dwse Vathmo: "); scanf("%d", &a.vathmos); return a; // orismos synarthshs emfanishs stoixeiwn void show(struct foithths a) printf ("\nta stoixeia toy foithth einai:\n"); printf("onoma:%s\n", a.f_name); printf("epwnymo:%s\n", a.l_name); printf("vathmos:%d\n", a.vathmos); Λειτουργία Σε αυτό το πρόγραμμα ορίζουμε μια δομή και την χρησιμοποιούμε πλέον σαν τύπο για άλλες μεταβλητές ή συναρτήσεις. Δηλαδή στην πρόταση: struct foithths entry(struct foithths) δηλώνεται η συνάρτηση entry με τύπο επιστροφής struct foithths και τύπο ορίσματος τον ίδιο. Στον ορισμό της συνάρτησης αυτής βλέπουμε ότι θα επιστραφεί η μεταβλητή a, που είναι του ίδιου τύπου με τα παραπάνω, δηλαδή θα επιστραφούν όλες οι τιμές των μελών της μεταβλητής x της δομής, που μεταβιβάζεται σαν παράμετρος στην συνάρτηση. Στην main βλέπουμε ότι φτιάχνουμε μία μεταβλητή της δομής foithths και την ονομάζουμε x. Κατόπιν καλούμε την συνάρτηση entry και της μεταβιβάζουμε ως παράμετρο την μεταβλητή x με τα μέλη της μεταβλητής χωρίς τιμές. Όταν επιστρέψει η συνάρτηση θα καταχωρήσει στην x τις τιμές των μελών που εισήχθησαν. Τέλος για να δούμε τα στοιχεία που έχουν τα μέλη της μεταβλητής x καλούμε την συνάρτηση show με όρισμα την μεταβλητή x που πλέον έχει τιμές στα μέλη της. 54

55 ΕΝΘΕΤΕΣ ΔΟΜΕΣ struct address //domh diefthinshs char odos[15]; char polh[15]; char tax_cod[6]; char thlefwno[11]; ; //telos domhs struct foithths //domh foithth int f_code; char f_name[15]; char l_name[15]; struct address f_address; //en8eth domh float Vathmos; ; //telos domhs //dhlosh metavlhths foit1 kai eisagogh stoixeiwn struct foithths foit1=1,"giorgos", "ATHANASIOU", "DHMOSTHENOUS 1", "IOANNINA", "12546", " ", 8.0; //ektypwsh apo thn arxikh domh printf("o foithths: %s\n", foit1.l_name); //ektypwsh apo thn en8eth domh printf("menei sthn polh: %s\n", foit1.f_address.polh); printf("o Vathmos toy einai: %2.1f\n", foit1.vathmos); //telos ths main Λειτουργία Σε αυτό το πρόγραμμα φτιάχνουμε δύο δομές foithths και address. Η δομή address θα δηλωθεί ως ένθετη μέσα στην δομή foithths. Στην main θα δηλώνουμε τη μεταβλητή foit1 της δομής foithths με ταυτόχρονη εισαγωγή στοιχείων σε όλα τα μέλη και των δύο δομών κατά σειρά. (Δηλαδή κωδικός, όνομα, επώνυμο, διεύθυνση, πόλη, ταχ. κωδικός, τηλέφωνο και βαθμός). Στο τέλος ζητάμε από το πρόγραμμα να μας επιστρέψει το επώνυμο (foit1.l_name) την πόλη (foit1.f_address.polh) και τον βαθμό του φοιτητή (foit1.vathmos) με την βοήθεια πάντα του τελεστή τελεία (.) 55

56 ΔΟΜΕΣ ΚΑΙ ΠΙΝΑΚΕΣ #include<stdio.h> #define N 10 struct foithtes //domh int code; char name[20]; char lastname[20]; float vathmos; ; //telos domhs struct foithtes foithths[n]; // pinakas N metablhtwn printf("----esagwgh Stoixeiwn----\n\n"); for(int i=0;i<n;i++) //Vroxos eisagwghs stoixeiwn printf("%dos Foithths\n",i+1); printf("kwdikos: "); scanf("%d", &foithths[i].code); printf("onoma: "); scanf("%s", foithths[i].name); printf("epwnymo: "); scanf("%s", foithths[i].lastname); printf("vathmos: "); scanf("%f", &foithths[i].vathmos); printf("\n"); //telos Vroxou eisagwghs printf("----emfanish Stoixeiwn----\n"); for(i=0;i<n;i++) //Vroxos emfanishs stoixeiwn printf("%dos Foithths\n",i+1); printf("kwdikos: %d\n", foithths[i].code); printf("onoma: %s\n", foithths[i].name); printf("epwnymo: %s\n", foithths[i].lastname); printf("vathmos: %2.1f\n", foithths[i].vathmos); printf("\n"); //telos Vroxou emfanishs //telos main Λειτουργία Σε αυτό το πρόγραμμα δηλώνουμε μέσα στην main πίνακα Ν μεταβλητών foithths[n] και κατόπιν με δύο βρόχους for εισάγουμε και τυπώνουμε στοιχεία. 56

57 ΠΑΡΑΔΕΙΓΜΑ #include<stdio.h> #include<math.h> //xrhsh mathimatikwn synarthsewn struct shmeio //orismos domhs float a,b; ; //telos domhs //protwtypo synarthshs float apostash(struct shmeio, struct shmeio); struct shmeio shm1, shm2; //metavlhtes domhs printf ("Syntetagmenes 1ou shmeiou: "); printf ("(Vazoyme keno anamesa) "); scanf ("%f %f", &shm1.a, &shm1.b); printf("syntetagmenes 2ou shmeiou: "); printf ("(Vazoyme keno anamesa) "); scanf ("%f %f", &shm2.a, &shm2.b); //ektypwsh twn stoixeiwn me klhsh synarthshs //gia ton ypologismo ths apostashs printf("h apopstash metaxy (%.2f, %.2f) kai (%.2f, %.2f) einai %.2f\n", shm1.a, shm1.b, shm2.a, shm2.b, apostash(shm1, shm2)); //orismos synarthshs poy //ypologizei thn apostash float apostash (struct shmeio a1, struct shmeio a2) return sqrt(pow((a1.a-a2.a),2) + pow((a1.b-a2.b),2)); Λειτουργία Σε αυτό το πρόγραμμα δηλώνουμε δύο σημεία πάνω στο επίπεδο, της μορφής shm1(a1,b1) shm2(a2,b2) και υπολογίζουμε την απόσταση μεταξύ τους, με βάση την εφαρμογή του πυθαγόρειου θεωρήματος, σε 2 2 σύστημα συντεταγμένων: ( a1 2) ( 1 2). Η συνάρτηση apostash παίρνει τα μέλη a,b των μεταβλητών shm1,shm2 της δομής shmeio και επιστρέφει το μήκος του ευθύγραμμου τμήματος, που ορίζεται από τα 2 σημεία στο επίπεδο. Για την λύση χρησιμοποιούμε την μαθηματική συνάρτηση δύναμης pow(vash,dynamh), αλλά και την συνάρτηση τετραγωνικής ρίζας sqrt(), 57

58 από το αρχείο επικεφαλίδας math.h, το οποίο και συμπεριλαμβάνουμε στο πρόγραμμά μας. Την έξοδο την παίρνουμε συνδυασμένα, με την συνάρτηση μορφοποιημένης εξόδου scanf(), όπου εμφανίζουμε και τις συντεταγμένες των σημείων που επιλέξαμε, αλλά και το αποτέλεσμα, καλώντας μέσα στην scanf() την συνάρτηση apostash. 58

ΣΥΝΑΡΤΗΣΕΙΣ Παραδείγματα χρήσης συναρτήσεων ΟΡΙΣΜΟΣ ΣΥΝΑΡΤΗΣΗΣ ΜΕ ΕΠΙΣΤΡΟΦΗ ΤΙΜΗΣ #include <iostream.h> int compare_numbers(int num1, int num2)

ΣΥΝΑΡΤΗΣΕΙΣ Παραδείγματα χρήσης συναρτήσεων ΟΡΙΣΜΟΣ ΣΥΝΑΡΤΗΣΗΣ ΜΕ ΕΠΙΣΤΡΟΦΗ ΤΙΜΗΣ #include <iostream.h> int compare_numbers(int num1, int num2) ΣΥΝΑΡΤΗΣΕΙΣ Παραδείγματα χρήσης συναρτήσεων ΟΡΙΣΜΟΣ ΣΥΝΑΡΤΗΣΗΣ ΜΕ ΕΠΙΣΤΡΟΦΗ ΤΙΜΗΣ int compare_numbers(int num1, int num2);.... int compare_numbers(int num1, int num2) if (num1>mum2) return (num1); ΟΡΙΣΜΟΣ

Διαβάστε περισσότερα

ΜΟΝΟΔΙΑΣΤΑΤΟΙ ΠΙΝΑΚΕΣ. Παράδειγμα 1 Δήλωση και αρχικοποίηση μονοδιάστατου πίνακα [5] με χρήση δομής επανάληψης με συνθήκη στην είσοδο και μετρητή.

ΜΟΝΟΔΙΑΣΤΑΤΟΙ ΠΙΝΑΚΕΣ. Παράδειγμα 1 Δήλωση και αρχικοποίηση μονοδιάστατου πίνακα [5] με χρήση δομής επανάληψης με συνθήκη στην είσοδο και μετρητή. ΜΟΝΟΔΙΑΣΤΑΤΟΙ ΠΙΝΑΚΕΣ Παράδειγμα 1 Δήλωση και αρχικοποίηση μονοδιάστατου πίνακα [5] με χρήση δομής επανάληψης με συνθήκη στην είσοδο και μετρητή. int main() int myarray[5]; int i; for(i=0;i

Διαβάστε περισσότερα

ΕΛΕΓΧΟΣ ΡΟΗΣ IF-ELSE

ΕΛΕΓΧΟΣ ΡΟΗΣ IF-ELSE ΕΛΕΓΧΟΣ ΡΟΗΣ IF-ELSE Παράδειγμα 1 Το παρακάτω πρόγραμμα ελέγχει την ηλικία του χρήστη για να τον αφήσει να ψηφίσει. int hlikia; printf("dose thn Hlikia soy: "); scanf("%d", &hlikia); if (hlikia>=18) printf("mporeis

Διαβάστε περισσότερα

ΣΥΝΑΡΤΗΣΕΙΣ Παραδείγματα χρήσης συναρτήσεων

ΣΥΝΑΡΤΗΣΕΙΣ Παραδείγματα χρήσης συναρτήσεων ΣΥΝΑΡΤΗΣΕΙΣ Παραδείγματα χρήσης συναρτήσεων ΠΟΛΛΕΣ ΕΝΤΟΛΕΣ ΕΠΙΣΤΡΟΦΗΣ Να γραφτεί ένα πρόγραμμα που να διπλασιάζει ένα ποσό που του δίνει ο χρήστης μεταξύ 0 και 1000. Να ελέγχει εάν το ποσό που εισήχθη

Διαβάστε περισσότερα

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

Εισαγωγή στους Αλγόριθμους και τον Προγραμματισμό. 3η Διάλεξη Είσοδος Δεδομένων Συνθήκες Βρόχοι Παραδείγματα Εισαγωγή στους Αλγόριθμους και τον Προγραμματισμό 3η Διάλεξη Είσοδος Δεδομένων Συνθήκες Βρόχοι Παραδείγματα Τελεστές συντομογραφίας Τελεστές σύντομης ανάθεσης += παράδειγμα: sum+=10; αντί για: sum = sum

Διαβάστε περισσότερα

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

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό Ενότητα 5 Δομές Ελέγχου Πανεπιστήμιο Αιγαίου Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων Δομές Ελέγχου Οι Boehm και Jacopini απέδειξαν ότι οποιοσδήποτε αλγόριθμος

Διαβάστε περισσότερα

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

ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Πανεπιστήμιο Δυτικής Μακεδονίας Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Διαμόρφωση Ελέγχου Ροής Προγράμματος Δομημένος Προγραμματισμός Ο πιο απλός και συνηθισμένος

Διαβάστε περισσότερα

3. ΕΝΤΟΛΕΣ ΕΛΕΓΧΟΥ (Β' μέρος: switch και :? )

3. ΕΝΤΟΛΕΣ ΕΛΕΓΧΟΥ (Β' μέρος: switch και :? ) 3. ΕΝΤΟΛΕΣ ΕΛΕΓΧΟΥ (Β' μέρος: switch και :? ) 3.1 Η εντολή switch case Στην περίπτωση που θέλουμε να εξετάσουμε πολλές διαφορετικές τιμές, θα αναγκαζόμασταν να φτιάξουμε ένα κώδικα που θα περιέχει πολλά

Διαβάστε περισσότερα

4. ΒΡΟΧΟΙ ΕΠΑΝΑΛΗΨΗΣ (Α' μέρος: for)

4. ΒΡΟΧΟΙ ΕΠΑΝΑΛΗΨΗΣ (Α' μέρος: for) 4. ΒΡΟΧΟΙ ΕΠΑΝΑΛΗΨΗΣ (Α' μέρος: for) 4.1 Μετρητές Ένας μετρητής (counter) είναι μία μεταβλητή η οποία ξεκινά με μία αρχική τιμή και αυξάνεται κατά ένα κάθε φορά που εκτελείται. Ο αλγόριθμος για έναν μετρητή

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Η γλώσσα προγραμματισμού C Η γλώσσα προγραμματισμού C Εντολές ελέγχου ροής προγράμματος (if-else & switch) Η εντολή if-else Η εντολή if-else υπάρχει σχεδόν σε όλες τις γλώσσες προγραμματισμού. Χρησιμοποιείται για τον έλεγχο της

Διαβάστε περισσότερα

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

Μεταφερσιμότητα Τα προγράμματα μεταφέρονται εύκολα σε διαφορετικά λειτουργικά συστήματα Η ΓΛΩΣΣΑ C Η C είναι μια γλώσσα προγραμματισμού υψηλού επιπέδου η οποία αναπτύχθηκε στις αρχές της δεκαετίας του 70 από τον Dennis Ritchie στα Bell Labs. Η σημερινή μορφή της γλώσσας ακολουθεί το πρότυπο

Διαβάστε περισσότερα

Εντολές ελέγχου ροής if, for, while, do-while

Εντολές ελέγχου ροής if, for, while, do-while Εντολές ελέγχου ροής if, for, while, do-while 1 Μαρτίου 014 1 Εντολές εκτέλεσης υπό συνθήκη Μπορούμε να εκτελέσουμε εντολές της γλώσσας σε περίπτωση που κάποια συνθήκη ισχύει χρησιμοποιώντας την εντολή

Διαβάστε περισσότερα

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

Σημειώσεις για πρόοδο στο εργαστήριο Σημειώσεις για πρόοδο στο εργαστήριο 5 Απριλίου 2012 1. Γράψτε πρόγραμμα το οποίο τυπώνει τους αριθμούς από 1 έως 10 σε μία γραμμή τον καθένα. 3 int i; 4 for (i = 0; i < 10; ++i) 5 printf("%d\n", i); 6

Διαβάστε περισσότερα

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

Λογικό και (AND) μας επιστρέφει 1 αν και οι δύο operands είναι όχι μηδέν, διαφορετικά 0) 0ι Λογικοί Τελεστές: Πρόκειται για τελεστές που μας επιτρέπουν να συνδυάσουμε απλές εκφράσεις συσχετισμού και να δημιουργήσουμε πιό πολύπλοκες λογικές εκφράσεις. Εχουμε λοιπόν: && Λογικό "και" (AND) μας

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

8. Συνθήκες ελέγχου, λογικοί τελεστές

8. Συνθήκες ελέγχου, λογικοί τελεστές Προγραμματισμός Μεθόδων Επίλυσης Προβλημάτων 8. Συνθήκες ελέγχου, λογικοί τελεστές Ιωάννης Κατάκης Σήμερα o Λογικές παραστάσεις Σχεσιακοί τελεστές Λογικοί τελεστές o if -else o switch Λογικές παραστάσεις

Διαβάστε περισσότερα

Υπολογισμός - Εντολές Επανάληψης

Υπολογισμός - Εντολές Επανάληψης Προγραμματισμός Η/Υ Ι Υπολογισμός - Εντολές Επανάληψης ΕΛΕΥΘΕΡΙΟΣ ΚΟΣΜΑΣ ΕΑΡΙΝΟ ΕΞΑΜΗΝΟ 2018-2019 ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ Τ.Ε. 1 Περίληψη Σήμερα... θα συνεχίσουμε τη συζήτησή μας για τα βασικά στοιχεία

Διαβάστε περισσότερα

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

Η γλώσσα προγραμματισμού C Η γλώσσα προγραμματισμού C Οι εντολές επανάληψης (while, do-while, for) Γενικά για τις εντολές επανάληψης Συχνά στο προγραμματισμό είναι επιθυμητή η πολλαπλή εκτέλεση μιας ενότητας εντολών, είτε για ένα

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Η γλώσσα προγραμματισμού C Η γλώσσα προγραμματισμού C Εντολές ελέγχου ροής προγράμματος (if-else & switch) Η εντολή if-else Η εντολή if-else υπάρχει σχεδόν σε όλες τις γλώσσες προγραμματισμού. Χρησιμοποιείται για τον έλεγχο της

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Η Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 6 Εντολές Επανάληψης Ασκήσεις. Γιώργος Λαμπρινίδης

Η Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 6 Εντολές Επανάληψης Ασκήσεις. Γιώργος Λαμπρινίδης Η Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Εργαστήριο 6 Εντολές Επανάληψης Ασκήσεις Γιώργος Λαμπρινίδης lamprinidis@pharm.uoa.gr Ασκήσεις Εμπέδωσης στις εντολές επανάληψης Σε αυτό το εργαστήριο θα δούμε στην πράξη: Πόσο χρήσιμες

Διαβάστε περισσότερα

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

Γλώσσα Προγραμματισμού C. Προγραμματισμός HY: Γλώσσα Προγραμματισμού C. Γρήγορος Πίνακας Αναφοράς Σύνταξης. Εισήγηση #4. Επαναληπτικές δομές: Προγραμματισμός HY: Γλώσσα Προγραμματισμού C Δρ. Ηλίας Κ. Σάββας, Αναπληρωτής Καθηγητής, Τμήμα Μηχανικών Πληροφορικής Τ.Ε., T.E.I. Θεσσαλίας Email: savvas@teilar.gr URL: http://teilar.academia.edu/iliassavvas

Διαβάστε περισσότερα

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδηµαϊκό έτος ΑΣΚΗΣΗ #5 Προτεινόµενη λύση

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδηµαϊκό έτος ΑΣΚΗΣΗ #5 Προτεινόµενη λύση ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδηµαϊκό έτος 2003-2004 ΑΣΚΗΣΗ #5 Προτεινόµενη λύση Θέµα 1 /* Προγραµµατιστής : Ηµεροµηνία συγγραφής : Λειτουργία Προγράµµατος : Πρόγραµµα για την αποθήκευση και ανάκτηση βαθµολογιών

Διαβάστε περισσότερα

Νικόλαος Μιχαλοδημητράκης Σημειώσεις C (Εργαστήριο) 5 ο Μέρος 5 ο Μέρος Εντολές Επανάληψης: FOR - WHILE. Περιγραφή

Νικόλαος Μιχαλοδημητράκης Σημειώσεις C (Εργαστήριο) 5 ο Μέρος 5 ο Μέρος Εντολές Επανάληψης: FOR - WHILE. Περιγραφή Νικόλαος Μιχαλοδημητράκης Σημειώσεις C (Εργαστήριο) 5 ο Μέρος 5 ο Μέρος Εντολές Επανάληψης: FOR - WHILE Περιγραφή Χρησιμοποιούμε την εντολή επανάληψης for όταν γνωρίζουμε εκ των προτέρων πόσες αλλά και

Διαβάστε περισσότερα

2ο σετ σημειώσεων. 1 Εντολές εκτέλεσης υπό συνθήκη. 19 Μαρτίου 2012

2ο σετ σημειώσεων. 1 Εντολές εκτέλεσης υπό συνθήκη. 19 Μαρτίου 2012 ο σετ σημειώσεων 19 Μαρτίου 01 1 Εντολές εκτέλεσης υπό συνθήκη Μπορούμε να εκτελέσουμε εντολές της γλώσσας σε περίπτωση που κάποια συνθήκη ισχύει χρησιμοποιώντας την εντολή if. Συντάσσεται ως εξής: 1 if

Διαβάστε περισσότερα

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

Παρακάτω δίνεται o σκελετός προγράμματος σε γλώσσα C. Σχολιάστε κάθε γραμμή του κώδικα. Ερωτήσεις προόδου C Παρακάτω δίνεται o σκελετός προγράμματος σε γλώσσα C. Σχολιάστε κάθε γραμμή του κώδικα. #include // δίνει οδηγία στον compiler να // συμπεριλάβει την βιβλιοθήκη stdio int

Διαβάστε περισσότερα

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ I ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ C ΠΡΟΓΡΑΜΜΑΤΑ ΕΡΓΑΣΤΗΡΙΟΥ

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ I ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ C ΠΡΟΓΡΑΜΜΑΤΑ ΕΡΓΑΣΤΗΡΙΟΥ Χαράλαµπος Σκόκος ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ I ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ C ΠΡΟΓΡΑΜΜΑΤΑ ΕΡΓΑΣΤΗΡΙΟΥ Πρόγραµµα 1 (Βασική χρήση της συνάρτησης printf) /* Βασική χρήση της συνάρτησης printf */ /* Το \n αλλάζει γραµµή

Διαβάστε περισσότερα

ΑΣΚΗΣΗ 7: ΑΛΦΑΡΙΘΜΗΤΙΚΑ

ΑΣΚΗΣΗ 7: ΑΛΦΑΡΙΘΜΗΤΙΚΑ ΑΣΚΗΣΗ 7: ΑΛΦΑΡΙΘΜΗΤΙΚΑ Σκοπός της Άσκησης Ο σκοπός αυτής της εργαστηριακής άσκησης είναι η εξοικείωση με τον ορισμό, τη δήλωση και τη χρήση των χαρακτήρων, συνεπώς και των αλφαριθμητικών, της Γλώσσας

Διαβάστε περισσότερα

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

Η γλώσσα προγραμματισμού C Η γλώσσα προγραμματισμού C Οι εντολές επανάληψης (while, do-while, for) Γενικά για τις εντολές επανάληψης Συχνά στο προγραμματισμό είναι επιθυμητή η πολλαπλή εκτέλεση μιας ενότητας εντολών, είτε για ένα

Διαβάστε περισσότερα

Χαράλαµπος Σκόκος ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ I ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ C ΕΞΕΤΑΣΕΙΣ ΧΕΙΜΕΡΙΝΟΥ ΕΞΑΜΗΝΟΥ Ερωτήσεις

Χαράλαµπος Σκόκος ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ I ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ C ΕΞΕΤΑΣΕΙΣ ΧΕΙΜΕΡΙΝΟΥ ΕΞΑΜΗΝΟΥ Ερωτήσεις Χαράλαµπος Σκόκος ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ I ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ C ΕΞΕΤΑΣΕΙΣ ΧΕΙΜΕΡΙΝΟΥ ΕΞΑΜΗΝΟΥ 2004-2005 Ερωτήσεις Ερώτηση 1 #include double s=0,a[10]=1,2,3,4,5,6,7,8,9,10,m; int i,j=0; for (i=3;

Διαβάστε περισσότερα

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

Δομημένος Προγραμματισμός ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Δομημένος Προγραμματισμός Ενότητα 8: Συναρτήσεις Κουκουλέτσος Κώστας Τμήμα Μηχανικών Ηλεκτρονικών Υπολογιστικών Συστημάτων Άδειες

Διαβάστε περισσότερα

5. ΒΡΟΧΟΙ ΕΠΑΝΑΛΗΨΗΣ (Β' μέρος: while - do..while)

5. ΒΡΟΧΟΙ ΕΠΑΝΑΛΗΨΗΣ (Β' μέρος: while - do..while) 5. ΒΡΟΧΟΙ ΕΠΑΝΑΛΗΨΗΣ (Β' μέρος: while - do..while) 5.1 Ο βρόχος while Η εντολή while παρέχει έναν μηχανισμό επανάληψης των δηλώσεων όσο μια συνθήκη είναι αληθινή. Χρησιμοποιείται όταν ο αριθμός των επαναλήψεων

Διαβάστε περισσότερα

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 9 Συναρτήσεις. Γεώργιος Λαμπρινίδης

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 9 Συναρτήσεις. Γεώργιος Λαμπρινίδης Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Εργαστήριο 9 Συναρτήσεις Γεώργιος Λαμπρινίδης lamprinidis@pharm.uoa.gr Ασκήσεις Προηγούμενου Εργαστηρίου #include main() { int i, flag, temp, a[5]; for (i=0;i

Διαβάστε περισσότερα

Τμήμα Πληροφορικής & Επικοινωνιών Δρ. Θεόδωρος Γ. Λάντζος http://www.teiser.gr/icd/staff/lantzos lantzos@teiser.gr

Τμήμα Πληροφορικής & Επικοινωνιών Δρ. Θεόδωρος Γ. Λάντζος http://www.teiser.gr/icd/staff/lantzos lantzos@teiser.gr Τμήμα Πληροφορικής & Επικοινωνιών Δρ. Θεόδωρος Γ. Λάντζος http://www.teiser.gr/icd/staff/lantzos lantzos@teiser.gr 1 Βρόχοι Επανάληψη (Loop) Η επανάληψη ενός συνόλου εντολών για όσες φορές επιθυμούμε ή

Διαβάστε περισσότερα

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

Κεφάλαιο Αλφαριθμητικές Σειρές Χαρακτήρων (Strings) (Διάλεξη 20) 1) Strings στη C Κεφάλαιο 9.1-9.2 Αλφαριθμητικές Σειρές Χαρακτήρων (Strings) (Διάλεξη 20) 1) Strings στη C Ένα string είναι μία ακολουθία αλφαριθμητικών χαρακτήρων, σημείων στίξης κτλ. Π.χ. Hello How are you? 121212 *Apple#123*%

Διαβάστε περισσότερα

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

Τμήμα Πληροφορικής & Επικοινωνιών Δρ. Θεόδωρος Γ. Λάντζος Τμήμα Πληροφορικής & Επικοινωνιών Δρ. Θεόδωρος Γ. Λάντζος http://www.teiser.gr/icd/staff/lantzos lantzos@teiser.gr 1 Μονοδιάστατοι Πίνακες (tables) Μια συλλογή μεταβλητών ίδιου τύπου οι οποίες είναι αποθηκευμένες

Διαβάστε περισσότερα

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

Εισαγωγή στην C. Μορφή Προγράµµατος σε γλώσσα C Εισαγωγή στην C Μορφή Προγράµµατος σε γλώσσα C Τµήµα Α Με την εντολή include συµπεριλαµβάνω στο πρόγραµµα τα πρότυπα των συναρτήσεων εισόδου/εξόδου της C.Το αρχείο κεφαλίδας stdio.h είναι ένας κατάλογος

Διαβάστε περισσότερα

Στόχοι και αντικείμενο ενότητας. Τύπος πίνακα. Τύπος πίνακα (συν.) #6. Πίνακες και Δείκτες

Στόχοι και αντικείμενο ενότητας. Τύπος πίνακα. Τύπος πίνακα (συν.) #6. Πίνακες και Δείκτες Στόχοι και αντικείμενο ενότητας Ο τύπος του Πίνακα (βλ. ενότητα #2α) Ορισμός και αρχικοποίηση Αποθήκευση πινάκων στη μνήμη Πολυδιάστατοι πίνακες #6. Πίνακες και Δείκτες Ο τύπος του Δείκτη Η έννοια του

Διαβάστε περισσότερα

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

ΗΥ-150. Προγραμματισμός ΗΥ-150 Εντολές Ελέγχου Ροής Σειριακή εκτέλεση εντολών Όλα τα προγράμματα «γράφονται» χρησιμοποιώντας 3 είδη εντολών: Σειριακές εντολές (sequential built in C) Εντολές απόφασης (if, if/else, switch) Περιλαμβάνει

Διαβάστε περισσότερα

Υπολογιστής - Λογισμικό

Υπολογιστής - Λογισμικό 1 2 Υπολογιστής - Λογισμικό Ο υπολογιστής είναι μία μηχανή η οποία επεξεργάζεται δεδομένα με ένα σύνολο εντολών που λέγονται προγράμματα. Ο υπολογιστής αποτελείται από διάφορα τμήματα (πληκτρολόγιο, μνήμη,

Διαβάστε περισσότερα

Νικόλαος Μιχαλοδημητράκης Σημειώσεις C (Εργαστήριο) 12 ο Μάθημα 1

Νικόλαος Μιχαλοδημητράκης Σημειώσεις C (Εργαστήριο) 12 ο Μάθημα 1 12 ο Μέρος Συναρτήσεις Συναρτήσεις Τι είναι οι συναρτήσεις Οι συναρτήσεις είναι ένα βασικό δομικό συστατικό σε όλες τις ανώτερες γλώσσες προγραμματισμού. Με τις συναρτήσεις έχουμε τη δυνατότητα να χωρίσουμε

Διαβάστε περισσότερα

Δομές ελέγχου & επανάληψης

Δομές ελέγχου & επανάληψης 3 Δομές ελέγχου & επανάληψης Τι θα δούμε σε αυτό το μάθημα 1. δομές ελέγχου 1. η δομή if 2. η δομή switch 2. δομές επανάληψης 1. η δομή while 2. η δομή do...while 3. η δομή for 3. break και continue 4.

Διαβάστε περισσότερα

Προγραμματισμός Η/Υ Ι (Χρήση της C) 6 η Θεωρία ΜΟΝΟΔΙΑΣΤΑΤΟΙ ΠΙΝΑΚΕΣ

Προγραμματισμός Η/Υ Ι (Χρήση της C) 6 η Θεωρία ΜΟΝΟΔΙΑΣΤΑΤΟΙ ΠΙΝΑΚΕΣ Προγραμματισμός Η/Υ Ι (Χρήση της C) 6 η Θεωρία ΜΟΝΟΔΙΑΣΤΑΤΟΙ ΠΙΝΑΚΕΣ Σκοπός του μαθήματος Σκοπός του παρόντος μαθήματος είναι να μάθετε να κάνετε εισαγωγή δεδομένων σε πίνακες και περαιτέρω επεξεργασία

Διαβάστε περισσότερα

Ερωτήσεις αυτοαξιολόγησης τετραπλής επιλογής για το μάθημα Προγραμματισμός I.

Ερωτήσεις αυτοαξιολόγησης τετραπλής επιλογής για το μάθημα Προγραμματισμός I. Ερωτήσεις αυτοαξιολόγησης τετραπλής επιλογής για το μάθημα Προγραμματισμός I. (1) Η γλώσσα C αποτελεί: (α) Γλώσσα προγραμματισμού υψηλού επιπέδου (β) Γλώσσα μηχανής (γ) Γλώσσα assembly (δ) Τίποτε από τα

Διαβάστε περισσότερα

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ & ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ & ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΙΑΔΙΚΑΣΤΙΚΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ (2009-2010) ΥΠΕΥΘΥΝΟΙ ΔΙΔΑΣΚΟΝΤΕΣ ΕΡΓΑΣΤΗΡΙΟΥ: Α. ΦΩΚΑ, K. ΣΤΑΜΟΣ

Διαβάστε περισσότερα

Προγραμματισμός Ι. Θεματική ενότητα 4: Έλεγχος ροής Προτάσεις υπό συνθήκη διακλάδωσης

Προγραμματισμός Ι. Θεματική ενότητα 4: Έλεγχος ροής Προτάσεις υπό συνθήκη διακλάδωσης Θεματική ενότητα 4: Έλεγχος ροής Προτάσεις υπό συνθήκη διακλάδωσης Προτάσεις ελέγχου ροής Ο πιο συνηθισμένος τρόπος εκτέλεσης είναι ο ακολουθιακός: δύο ή περισσότερες προτάσεις βρίσκονται διατεταγμένες

Διαβάστε περισσότερα

7. ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΣΥΝΑΡΤΗΣΕΙΣ

7. ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΣΥΝΑΡΤΗΣΕΙΣ 7. ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΣΥΝΑΡΤΗΣΕΙΣ 7.1 Ορισμός και δήλωση συνάρτησης Μία συνάρτηση είναι μία ενότητα οδηγιών οι οποίες μαζί εκτελούν μία συγκεκριμένη εργασία. Παρέχει έναν κατάλληλο τρόπο να μπορέσουμε να κάνουμε

Διαβάστε περισσότερα

Ινστιτούτο Επαγγελµατική Κατάρτιση Κορυδαλλού "ΤΕΧΝΙΚΟΣ ΣΥΣΤΗΜΑΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ" (Ερωτήσεις Πιστοποίησης στην γλώσσα προγραµµατισµού C)

Ινστιτούτο Επαγγελµατική Κατάρτιση Κορυδαλλού ΤΕΧΝΙΚΟΣ ΣΥΣΤΗΜΑΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ (Ερωτήσεις Πιστοποίησης στην γλώσσα προγραµµατισµού C) Ινστιτούτο Επαγγελµατική Κατάρτιση Κορυδαλλού "ΤΕΧΝΙΚΟΣ ΣΥΣΤΗΜΑΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ" (Ερωτήσεις Πιστοποίησης στην γλώσσα προγραµµατισµού C) ΚΑΤΑΛΟΓΟΣ ΕΡΩΤΗΣΕΩΝ ΕΡΩΤΗΣΕΙΣ ΕΙ ΙΚΩΝ ΓΝΩΣΕΩΝ (γλώσσα προγραµµατισµού

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Αντικειμενοστραφής Προγραμματισμός ΣΗΜΕΙΩΣΕΙΣ ΘΕΩΡΙΑΣ

Αντικειμενοστραφής Προγραμματισμός ΣΗΜΕΙΩΣΕΙΣ ΘΕΩΡΙΑΣ ΣΗΜΕΙΩΣΕΙΣ ΘΕΩΡΙΑΣ ΜΑΡΙΟΣ ΤΣΟΥΚΑΛΑΣ 2017 Πίνακας περιεχομένων Εισαγωγή... 3 Συναρτήσεις... 10 Παραδείγματα συναρτήσεων... 20 Κλάσεις Αντικείμενα... 27 Παραδείγματα κλάσεων... 42 Κλάσεις και Πίνακες...

Διαβάστε περισσότερα

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

ΗΥ-150. Προγραµµατισµός. Εντολές Ελέγχου Ροής ΗΥ-150 Εντολές Ελέγχου Ροής Σειριακή εκτέλεση εντολών Όλα τα προγράµµατα «γράφονται» χρησιµοποιώντας 3 είδη εντολών: Σειριακές εντολές (sequential built in C) Εντολές απόφασης (if, if/else, switch) Περιλαµβάνει

Διαβάστε περισσότερα

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

Ενώσεις δεδομένων Απαριθμητές Ψηφιακοί τελεστές Αναδρομικές συναρτήσεις Ενώσεις δεδομένων Απαριθμητές Ψηφιακοί τελεστές Αναδρομικές συναρτήσεις Ενώσεις δεδομένων (union) τι και γιατί Συσκευές με μικρή μνήμη => ανάγκη εξοικονόμησης πόρων Παρατήρηση: αχρησιμοποίητη μνήμη. Έστω

Διαβάστε περισσότερα

2. ΕΝΤΟΛΕΣ ΕΛΕΓΧΟΥ (Α' μέρος: if)

2. ΕΝΤΟΛΕΣ ΕΛΕΓΧΟΥ (Α' μέρος: if) 2. ΕΝΤΟΛΕΣ ΕΛΕΓΧΟΥ (Α' μέρος: if) 2.1. Τελεστές ΠΡΑΞΗ ΤΕΛΕΣΤΗΣ Ισότητα = = Μεγαλύτερο από > Μικρότερο από < Μεγαλύτερο ή ίσο από >= Μικρότερο ή ίσο από

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Κεφάλαιο 8.7. Πολυδιάστατοι Πίνακες (Διάλεξη 19) Κεφάλαιο 8.7 Πολυδιάστατοι Πίνακες (Διάλεξη 19) Πολυδιάστατοι πίνακες Μέχρι τώρα μιλούσαμε για Μονοδιάστατους Πίνακες. ή π.χ. int age[5]= {31,28,31,30,31; για Παράλληλους πίνακες, π.χ. int id[5] = {1029,1132,1031,9991,1513;

Διαβάστε περισσότερα

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

ΗΥ-150. Προγραμματισμός ΗΥ-150 Εντολές Ελέγχου Ροής Σειριακή εκτέλεση εντολών Όλα τα προγράμματα «γράφονται» χρησιμοποιώντας 3 είδη εντολών: Σειριακές εντολές (sequential built in C) Εντολές απόφασης (if, if/else, switch) Περιλαμβάνει

Διαβάστε περισσότερα

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

Εισαγωγή στον Προγραμματισμό (με. τη C) Υποχρεωτικό Μάθημα 3 ου Εξαμήνου Χειμερινό Εξάμηνο Ακ. Έτους 20 Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης Εισαγωγή στον Προγραμματισμό (με τη C) Διδάσκουσα: Φατούρου Παναγιώτα faturu [at] csd.uoc.gr

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ Διάλεξη 2:Αλφαριθμητικές Σειρές Χαρακτήρων (Strings)- Επανάληψη Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Εισαγωγικές Έννοιες σε Strings(Αρχικοποίηση, Ανάγνωση & Εκτύπωση) Πίνακες από Strings

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Εισαγωγή στον Προγραµµατισµό. Διάλεξη 2 η : Βασικές Έννοιες της γλώσσας προγραµµατισµού C Χειµερινό Εξάµηνο 2011 Εισαγωγή στον Προγραµµατισµό Διάλεξη 2 η : Βασικές Έννοιες της γλώσσας προγραµµατισµού C Χειµερινό Εξάµηνο 2011 Hello World /* Αρχείο hello.c * Εµφανίζει στην οθόνη το * µήνυµα hello world */ #include

Διαβάστε περισσότερα

2 η Διάλεξη C++ Δρ. Χρήστος Δρόσος ΑΕΙ ΠΕΙΡΑΙΑ ΤΤ ΤΜΗΜΑ ΑΥΤΟΜΑΤΙΣΜΟΥ

2 η Διάλεξη C++ Δρ. Χρήστος Δρόσος ΑΕΙ ΠΕΙΡΑΙΑ ΤΤ ΤΜΗΜΑ ΑΥΤΟΜΑΤΙΣΜΟΥ 2 η Διάλεξη C++ Δρ. Χρήστος Δρόσος ΑΕΙ ΠΕΙΡΑΙΑ ΤΤ ΤΜΗΜΑ ΑΥΤΟΜΑΤΙΣΜΟΥ Τι μάθαμε μέχρι τώρα Κάθε πρόγραμμα της c++ περιέχει υποχρεωτικά μια συνάρτηση main() η οποία είναι εκείνη που εκτελείται πρώτη. Κάθε

Διαβάστε περισσότερα

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

Γλώσσα Προγραμματισμού C Προγραμματισμός HY: Γλώσσα Προγραμματισμού C Δρ. Ηλίας Κ. Σάββας, Αναπληρωτής Καθηγητής, Τμήμα Μηχανικών Πληροφορικής Τ.Ε., T.E.I. Θεσσαλίας Email: savvas@teilar.gr URL: http://teilar.academia.edu/iliassavvas

Διαβάστε περισσότερα

Προσέξτε πως η παράσταση μπορεί να περιλαμβάνει όχι μόνο μία τιμή ή μια άλλη μεταβλητή αλλά μια ολόκληρη μαθηματική παράσταση, όπως η εξής:

Προσέξτε πως η παράσταση μπορεί να περιλαμβάνει όχι μόνο μία τιμή ή μια άλλη μεταβλητή αλλά μια ολόκληρη μαθηματική παράσταση, όπως η εξής: Νικόλαος Μιχαλοδημητράκης Σημειώσεις C (Εργαστήριο) 3 ο Μέρος 3 ο Μέρος Παραστάσεις και Τελεστές Εντολή καταχώρησης Για να καταχωρήσουμε μία τιμή σε μια μεταβλητή χρησιμοποιούμε τον τελεστή καταχώρησης

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Οι εντολές ελέγχου της ροής ενός προγράμματος. Κεφάλαιο ΙΙI: Οι εντολές ελέγχου της ροής ενός προγράμματος 31 Εντολές ελέγχου της ροής Στο παρόν κεφάλαιο ασχολούμαστε με την σύνταξη των εντολών της C οι οποίες εισάγουν λογική και ελέγχουν την ροή εκτέλεσης

Διαβάστε περισσότερα

Διάλεξη 2: Επανάληψη Προγραμματισμού Συμβολοσειρές (strings) Διδάσκων: Παναγιώτης Ανδρέου

Διάλεξη 2: Επανάληψη Προγραμματισμού Συμβολοσειρές (strings) Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 2: Επανάληψη Προγραμματισμού Συμβολοσειρές (strings) Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Εισαγωγή στις έννοιες: - Εισαγωγικές Έννοιες σε Strings - Πίνακες από Strings - Συναρτήσεις

Διαβάστε περισσότερα

Τα δεδομένα στη C++ χωρίζονται σε 3 κατηγορίες: τους αριθμούς (numbers), τους χαρακτήρες (characters) και τις συμβολοσειρές (strings).

Τα δεδομένα στη C++ χωρίζονται σε 3 κατηγορίες: τους αριθμούς (numbers), τους χαρακτήρες (characters) και τις συμβολοσειρές (strings). Για να λύσουμε ένα πρόβλημα στη C++ χρειαζόμαστε δυο βασικές έννοιες. Η μια είναι οι οδηγίες εντολές, ο αλγόριθμος δηλαδή, που πρέπει να ακολουθήσουμε για να λύσουμε το πρόβλημά μας και η άλλη είναι τα

Διαβάστε περισσότερα

A[0] = 0; /* To μηδέν δεν έχει διαιρέτες */ for (i=1; i<n; i++) { S=0; for (d=1; d<=i; d++) if (i % d == 0) S += d; A[i] = S; }

A[0] = 0; /* To μηδέν δεν έχει διαιρέτες */ for (i=1; i<n; i++) { S=0; for (d=1; d<=i; d++) if (i % d == 0) S += d; A[i] = S; } TEI Λάρισας / ΣΤΕΦ Τμ. Τεχνολογίας Πληροφορικής & Τηλεπικοινωνιών B Εξεταστική Περίοδος, 19 Φεβρουαρίου 2009 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Ι Ηλίας. Κ. Σάββας Α 1) Να γράψετε ένα πρόγραμμα το οποίο να γεμίζει ένα ακέραιο

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Χαράλαµπος Σκόκος ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ I ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ C ΕΞΕΤΑΣΕΙΣ ΕΑΡΙΝΟΥ ΕΞΑΜΗΝΟΥ 2004-2005. Ερωτήσεις

Χαράλαµπος Σκόκος ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ I ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ C ΕΞΕΤΑΣΕΙΣ ΕΑΡΙΝΟΥ ΕΞΑΜΗΝΟΥ 2004-2005. Ερωτήσεις Χαράλαµπος Σκόκος ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ I ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ C ΕΞΕΤΑΣΕΙΣ ΕΑΡΙΝΟΥ ΕΞΑΜΗΝΟΥ 2004-2005 Ερωτήσεις Ερώτηση 1 int double s=0; int i; for( i=8; i

Διαβάστε περισσότερα

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

Δομημένος Προγραμματισμός ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Δομημένος Προγραμματισμός Ενότητα 4: Έλεγχος ροής Κουκουλέτσος Κώστας Τμήμα Μηχανικών Ηλεκτρονικών Υπολογιστικών Συστημάτων Άδειες

Διαβάστε περισσότερα

Στη C++ υπάρχουν τρεις τύποι βρόχων: (a) while, (b) do while, και (c) for. Ακολουθεί η σύνταξη για κάθε μια:

Στη C++ υπάρχουν τρεις τύποι βρόχων: (a) while, (b) do while, και (c) for. Ακολουθεί η σύνταξη για κάθε μια: Εργαστήριο 6: 6.1 Δομές Επανάληψης Βρόγχοι (Loops) Όταν θέλουμε να επαναληφθεί μια ομάδα εντολών τη βάζουμε μέσα σε ένα βρόχο επανάληψης. Το αν θα (ξανα)επαναληφθεί η εκτέλεση της ομάδας εντολών καθορίζεται

Διαβάστε περισσότερα

Δομές Ανακυκλώσεων. Εντολές ελέγχου - 1

Δομές Ανακυκλώσεων. Εντολές ελέγχου - 1 Δομές Ανακυκλώσεων Σε όλες τις γλώσσες προγραμματισμού, οι εντολές ανακυκλώσεων επιτρέπουν να επαναλαμβάνουμε ένα σύνολο εντολών, περισσότερες από μια φορές και μέχρι να επιτευχθεί μια ορισμένη συνθήκη

Διαβάστε περισσότερα

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

Υπολογισμός - Εντολές Ελέγχου Προγραμματισμός Η/Υ Ι Υπολογισμός - Εντολές Ελέγχου ΕΛΕΥΘΕΡΙΟΣ ΚΟΣΜΑΣ ΕΑΡΙΝΟ ΕΞΑΜΗΝΟ 2018-2019 ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ Τ.Ε. 1 Περίληψη Σήμερα... θα συνεχίσουμε τη συζήτησή μας για τα βασικά στοιχεία

Διαβάστε περισσότερα

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

Η γλώσσα προγραμματισμού C Η γλώσσα προγραμματισμού C Χειρισμός χαρακτήρων, συμβολοσειρές Συμβολοσειρές Συμβολοσειρά ονομάζουμε μια οποιαδήποτε ακολουθία αλφαριθμητικών χαρακτήρων: «Κώστας», «Κώστας Βασιλάκης», «Δαιδάλου 23» Στην

Διαβάστε περισσότερα

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

6. ΠΙΝΑΚΕΣ & ΑΛΦΑΡΙΘΜΗΤΙΚΑ 6. ΠΙΝΑΚΕΣ & ΑΛΦΑΡΙΘΜΗΤΙΚΑ 6.1 Η Έννοια του Πίνακα Συχνά είναι προτιμότερο να αντιμετωπίζουμε ένα σύνολο μεταβλητών σαν ενότητα για να απλοποιούμε το χειρισμό τους. Έτσι οργανώνουμε σύνθετα δεδομένα σε

Διαβάστε περισσότερα

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ Μέρος 5ο ΝΙΚΟΛΑΟΣ ΣΤΕΡΓΙΟΥΛΑΣ ΤΜΗΜΑ ΦΥΣΙΚΗΣ ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ 1 Η ΕΝΤΟΛΗ for Με την εντολή for δημιουργούμε βρόχους επανάληψης σε

Διαβάστε περισσότερα

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

Προγραμματισμός Ι (ΗΥ120) Προγραμματισμός Ι (ΗΥ120) Διάλεξη 8: Πίνακες, Αλφαριθμητικά Πίνακες Ο πίνακας είναι μια ειδική δομή για την αποθήκευση μιας σειράς από δεδομένα του ίδιου τύπου. Η δήλωση ενός πίνακα γίνεται όπως για μια

Διαβάστε περισσότερα

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

ΤΕΧΝΟΛΟΓΙΑ ΚΑΙ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑ ΚΑΙ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ Έλεγχος ροής Δομή επιλογής (if, switch) Δομές επανάληψης (while, do-while, for) Διακλάδωση

Διαβάστε περισσότερα

Ασκηή σεις 12ο Μαά θημα - Λυύ σεις

Ασκηή σεις 12ο Μαά θημα - Λυύ σεις Ασκηή σεις 12ο Μαά θημα - Λυύ σεις Άσκηση 1: Γράψτε ένα πρόγραμμα που να δέχεται από το πληκτρολόγιο 21 ακέραιους αριθμούς (μεταξύ 0 και 100) και στη συνέχεια να υπολογίζει το πλήθος και το μέσο όρο, μόνο

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Τι είναι κλάση Κλάση

Τι είναι κλάση Κλάση 35 Τι είναι κλάση Κλάση είναι μια συλλογή από μεταβλητές. Αλλιώς είναι ένα σύνολο από: δεδομένα που δηλώνουν τα χαρακτηριστικά της κλάσης (τι είναι) και συναρτήσεις που προδιαγράφουν την συμπεριφορά της

Διαβάστε περισσότερα

Ορισμός μεταβλητών δεικτών και αρχικοποίηση

Ορισμός μεταβλητών δεικτών και αρχικοποίηση Ορισμός μεταβλητών δεικτών και αρχικοποίηση Η έννοια του δείκτη Κάθε μεταβλητή σχετίζεται με μια θέση στην κύρια μνήμη του Η/Υ η οποία έχει τη δική της ξεχωριστή διεύθυνση Ο δείκτης είναι μια μεταβλητή

Διαβάστε περισσότερα

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

Η γλώσσα προγραμματισμού C Η γλώσσα προγραμματισμού C Χειρισμός χαρακτήρων, συμβολοσειρές Συμβολοσειρές Συμβολοσειρά ονομάζουμε μια οποιαδήποτε ακολουθία αλφαριθμητικών χαρακτήρων: «Κώστας», «Κώστας Βασιλάκης», «Δαιδάλου 23» Στην

Διαβάστε περισσότερα

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

Ενδεικτική περιγραφή μαθήματος ΜΑΘΗΜΑ: ΔΙΔΑΣΚΩΝ: ΤΜΗΜΑ: Προγραμματισμός Η/Υ Συνδουκάς Δημήτριος Διοίκησης Επιχειρήσεων (Γρεβενά) Ενδεικτική περιγραφή μαθήματος 1. Εισαγωγή: Εισαγωγή στον προγραμματισμό, γλώσσες προγραμματισμού, μεταγλωτιστές.

Διαβάστε περισσότερα

Α' Εξάμηνο ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ. Ερωτήσεις Επανάληψης

Α' Εξάμηνο ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ. Ερωτήσεις Επανάληψης Α' Εξάμηνο ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Ερωτήσεις Επανάληψης Α. Ερωτήσεις Στο τέλος δίνονται υποδείξεις για την απάντηση μερικών ερωτήσεων. 01 Ερώτηση: Στις παρακάτω εντολές τι πρόβλημα υπάρχει;

Διαβάστε περισσότερα

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

ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Πανεπιστήμιο Δυτικής Μακεδονίας Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Πίνακες Πίνακες (arrays) Πολύ συχνά είναι απαραίτητο το πρόγραμμα μας να χειριστεί

Διαβάστε περισσότερα

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

Δομημένος Προγραμματισμός ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Δομημένος Προγραμματισμός Ενότητα 5: Εντολές επανάληψης Κουκουλέτσος Κώστας Τμήμα Μηχανικών Ηλεκτρονικών Υπολογιστικών Συστημάτων

Διαβάστε περισσότερα

Λυμένα παραδείγματα με τις for, while, do-while

Λυμένα παραδείγματα με τις for, while, do-while Λυμένα παραδείγματα με τις for, while, do-while Πως διαβάζω ένα θετικό αριθμό Με την while // N=0; while (N

Διαβάστε περισσότερα

Ασκήσεις & παραδείγματα για επανάληψη

Ασκήσεις & παραδείγματα για επανάληψη Λυμένα παραδείγματα Ασκήσεις & παραδείγματα για επανάληψη Χρησιμοποιώντας την ρητή (cast) ανάθεση main () int x, y; x = 7; y = 5; printf("given x = %d, y = %d\n", x, y); printf("x / y produces: %d\n",

Διαβάστε περισσότερα

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

Α. unsigned int Β. double. Γ. int. unsigned char x = 1; x = x + x ; x = x * x ; x = x ^ x ; printf(%u\n, x); Β. unsigned char ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Εξετάσεις Β Περιόδου 2015 (8/9/2015) ΟΝΟΜΑΤΕΠΩΝΥΜΟ:................................................................................ Α.Μ.:...............................................

Διαβάστε περισσότερα

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

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Μάθημα 5ο Τμήμα Διοίκησης Επιχειρήσεων α εξάμηνο Β. Φερεντίνος Πίνακες 77 Στατική δομή αποθήκευσης δεδομένων (το μέγεθος ορίζεται εξαρχής και δεν αλλάζει) Αποθήκευση πολλών μεταβλητών

Διαβάστε περισσότερα

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

Πίνακες. 1 Πίνακες. 30 Μαρτίου 2014 Πίνακες 0 Μαρτίου 014 1 Πίνακες Είδαμε ότι δηλώνοντας μία μεταβλητή κάποιου συγκεκριμένου τύπου δεσμεύουμε μνήμη κατάλληλη για να αποθηκευτεί μία οντότητα του συγκεκριμένου τύπου. Στην περίπτωση που θέλουμε

Διαβάστε περισσότερα

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

ΕΝΤΟΛΕΣ ΕΠΑΝΑΛΗΨΗΣ. for (παράσταση_1; παράσταση_2; παράσταση_3) εντολή επόμενη εντολή ΕΝΤΟΛΕΣ ΕΠΑΝΑΛΗΨΗΣ for (παράσταση_1; παράσταση_2; παράσταση_3) εντολή επόμενη εντολή παράσταση_1 = Παράσταση Αρχικοποίησης παράσταση_2 = Παράσταση Ελέγχου Επανάληψης παράσταση_3 = Παράσταση Ενημέρωσης

Διαβάστε περισσότερα

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

Η γλώσσα προγραμματισμού C Η γλώσσα προγραμματισμού C Οι πίνακες στη C (μονοδιάστατοι -συμβολοσειρές) Γενικά για τους πίνακες Ο πίνακας είναι μια αρκετά διαδεδομένη δομή που προσφέρεται από σχεδόν κάθε γλώσσα προγραμματισμού. Πρόκειται

Διαβάστε περισσότερα