Εισαγωγή στους Αλγόριθμους και τον Προγραμματισμό 3η Διάλεξη Είσοδος Δεδομένων Συνθήκες Βρόχοι Παραδείγματα
Τελεστές συντομογραφίας Τελεστές σύντομης ανάθεσης += παράδειγμα: sum+=10; αντί για: sum = sum +10; αντίστοιχα: -=, *=, /= Τελεστές αύξησης και μείωσης ++ παράδειγμα: χ++ αντί για: χ = χ +1 αντίστοιχα: --
Είσοδος Δεδομένων (1) τα προγράμματα μέχρι τώρα εκτελούνται δίνοντας διαφορετικές τιμές στις μεταβλητές πριν ξεκινήσουμε την διαδικασία της μεταγλώττισης αυτό όμως σε ελάχιστες περιπτώσεις είναι αρκετό συνήθως πρέπει να διαβάσουμε είσοδο από το χρήστη και να πράξουμε ανάλογα παράδειγμα - προβλημα: να βρούμε το μέσο όρο δύο αριθμών που θα δώσει ο χρήστης πρέπει να διαβάσουμε αυτούς τους αριθμούς
Είσοδος Δεδομένων (2) - scanf Χρησιμοποιείται για είσοδο δεδομένων από την standard είσοδο (συνήθως το πληκτρολόγιο) Το πρώτο όρισμα μας λέει τι τύπους περιμένουμε να διαβάσουμε Όπως στην printf %d ακέραιος %f δεκαδικός %c χαρακτήρας Στη συνέχεια δίνουμε της μεταβλητές που θα αποθηκευτεί η είσοδος αφού στην αρχή έχουμε τοποθετήσει το χαρακτήρα & Παράδειγμα διαβάσματος ενός ακεραίου scanf("%d",&x);
Είσοδος Δεδομένων (3) - scanf Πρόγραμμα που διάβαζει δύο ακεραίους και εμφάνιζει το μέσου όρο τους: #include <stdio.h> main() { int x,y; float mo; printf("dwse ton 1o akeraio: "); scanf("%d",&x); printf("dwse ton 2o akeraio: "); scanf("%d",&y); mo = ( x + y) / 2.0; printf("1os: %d\n2os:%d\navg:%f\n",x,y,mo);
Εκτέλεση υπό συνθήκη if(συνθήκη){ εντόλες που θα εκτελεστούν αν η συνθήκη είναι αληθής if(συνθήκη){ εντόλες που θα εκτελεστούν αν η συνθήκη είναι αληθής else{ εντόλες που θα εκτελεστούν αν η συνθήκη είναι ψευδής
Σχεσιακοί τελεστές == ισότητα!= όχι ίσο > μεγαλύτερο από >= μεγαλύτερο ή ίσο από < μικρότερο από <= μικρότερο ή ίσο από Παραδείγματα a == b a!=0 x > y+2 z-23 <= (a +1) *2
Λογικοί Τελεστές && Λογικό ΚΑΙ Η συνθήκη είναι αληθής αν ΚΑΙ τα δύο μέλη είναι αληθή παράδειγμα: (a>23) && (a < 35) Λογικό Ή Η συνθήκη είναι αληθής αν ΈΝΑ από τα δύο μέλη είναι αληθή παράδειγμα: (a>23) (a< -23)! Λογικό ΌΧΙ Η συνθήκη είναι αληθής αν η παράσταση δεξιά απο τον τελεστή είναι ψευδής παράδειγμα:!(a>0 && b>0)
Έλεγχος αν ένα έτος είναι δίσεκτο Δίσεκτο άν: το έτος διαιρείται με το 4 αλλα όχι με το 100 ή το έτος διαιρείται με το 400 #include <stdio.h> main(){ int year; printf("dwse etos: "); scanf("%d", &year); if ((year%4==0 && year%100!= 0) (year%400==0)) printf("to etos %d einai disekto\n", year); else printf("to etos den %d einai disekto\n", year);
Βρόχοι Επανάληψης - for Βρόχος είναι ένα τμήμα προγράμματος που επαναλαμβάνεται όσο ισχύει μία συνθήκη κύκλος είναι μία πλήρης εκτέλεση των εντολών που βρίσκονται μέσα στον βρόχο for(i=0; i<10; i++){ εντολές Ξεκινάει για i=0 Κάθε φορά αυξάνει κατά 1 Εκτελείται όσο το i είναι μικρότερο του 10
Εκτύπωση Αριθμών από το 1 μέχρι το 100 #include <stdio.h> main() { int i; for(i=1; i<=100; i++){ printf("%d\n",i); Προσοχή στην αρχικοποίση του i στην συνθήκη
Άθροιση 10 αριθμών που θα μας δώσει ο χρήστης #include <stdio.h> main() { int i, sum,value; sum=0; for(i=1; i<=10; i++){ printf("dwse thn %d timh: \n",i); scanf("%d",&value); sum += value printf("to athroisma twn arithmwn einai: %d\n",sum);
Βρόχοι Επανάληψης - while while (συνθήκη){ εντολές Η συνθήκη είναι η συνθήκη ελέγχου που πραγματοποιείται προκειμένου να εξεταστθεί αν ο βρόχος πρέπει να συνεχίσει για ένα ακόμη κύκλο επαναλαμβάνεται η εκτέλεση όλων των εντολών όσο η συνθήκη είναι αληθής βροχος: τμήμα προγράμματος που επαναλαμβάνεται κύκλος: μία πλήρης εκτέλεση των εντολών που περιέχονται στο βρόχ
Άθροιση Αριθμών μέχρι να εισαχθεί το (0) - 1ή προσέγγιση #include <stdio.h> main() { int sum,a; printf("dwse enan arithmo: "); scanf("%d",&a); sum = 0; while(a!=0){ sum+=a; printf("dwse enan arithmo: "); scanf("%d",&a); printf("to athroisma einai: %d\n",sum);
Βρόχοι Επανάληψης - do while do{ εντόλες while(συνθήκη); Παρόμοια με την while Ο βρόχος εκτελείται τουλάχιστον μία φορά
Άθροιση Αριθμών μέχρι να εισαχθεί το (0) - 2ή προσέγγιση #include <stdio.h> main() { int sum,a; sum = 0; do{ printf("dwse enan arithmo: "); scanf("%d",&a); sum += a; while(a!=0); printf("to athroisma einai: %d\n",sum);
Βρόχοι επανάληψης - Εντολή break Χρησιμοποιείται σε βρόχους επανάληψης Ο έλεγχος του προγράμματος μεταβαίνει στο τέλος του βρόχου επανάληψης. Τερματίζει ο βρόχος επανάληψης Συνήθως χρησιμοποιείται μέσα σε μία εντολή ελέγχου Πρέπει να χρησιμοποιείται με φειδώ γιατι κάνει δυσκολότερη την ανάγνωση του κώδικα
Άθροιση Αριθμών μέχρι να εισαχθεί το (0) - 3ή προσέγγιση #include <stdio.h> main() { int sum,a; sum = 0; do{ printf("dwse enan arithmo: "); scanf("%d",&a); if(a==0){ break; sum += a; while(a!=0); printf("to athroisma einai: %d\n",sum);
Βρόχοι επανάληψης - for vs while #include <stdio.h> main() { int i; for(i=1; i<=100; i++){ printf("%d\n",i); #include <stdio.h> main() { int i; i=1; while(i<=100){ printf("%d\n",i); i++;
Παραδείγματα και Προγράμματα
Υπολογισμος του αθροίσματος των ψηφίων ενός αριθμού #include <stdio.h> main() { int n, dsum; printf("dose moy ton arithmo: "); scanf( %d, &n); dsum=0; while (n>0){ dsum += n%10; n=n/10; printf("to athroisma ton psifion toy arithmou einai % d\n", dsum);
Εμφάνιση του πίνακα προπαίδειας #include <stdio.h> main() { int i, j; for (i=1;i<=10;i++){ for (j=1; j<=10; j++){ printf("%d ",i*j); printf("\n");
Σχεδιασμός Δένδρου με * #include <stdio.h> main() { int i,j; for (i=1;i<=7;i++){ for (j=1; j<=7-i; j++){ printf(" "); for (j=1; j<=2*i-1; j++){ printf("*"); printf("\n"); Οπτικό αποτέλεσμα * *** ***** ******* ********* *********** *************
Ασκήσεις εξάσκησης 1. Γράψτε ένα πρόγραμμα σε C που θα υπολογίζει το χ! Το πρόγραμμα θα ζητάει από το χρήστη το χ και θα εμφανίζει το χ! 2. Γράψτε ένα πρόγραμμα σε C που θα υπολογίζει το ab. Ο χρήστης θα εισάγει τα a,b και στο τέλος θα τυπώνεται το αποτέλεσμα. 3. Γράψτε ένα πρόγραμμα σε C που θα δέχεται τους βαθμούς ενός φοιτητή και θα βγάζει το μέσο όρο τους. Τα μαθήματα τελειώνουν όταν ο φοιτητής δώσει -1. Πρέπει να γίνουν έλεγχοι για τις τιμές που δίνει ο χρήστης. Ο κάθε βαθμός μπορεί να είναι δεκαδικός από το 0 μέχρι και το 10