ΕΝΤΟΛΕΣ ΕΠΑΝΑΛΗΨΗΣ for (παράσταση_1; παράσταση_2; παράσταση_3) εντολή επόμενη εντολή παράσταση_1 = Παράσταση Αρχικοποίησης παράσταση_2 = Παράσταση Ελέγχου Επανάληψης παράσταση_3 = Παράσταση Ενημέρωσης
ΛΟΓΙΚΟ ΔΙΑΓΡΑΜΜΑ ΤΗΣ for Παράσταση_1 Παράσταση_3 Παράσταση_2 Μη μηδενική (αληθής) εντολή 0 (ψευδής) Επόμενη εντολή
Παράδειγμα Να γράψετε τμήμα προγράμματος που να τυπώνει τρεις φορές το μήνυμα << Είναι καιρός να αρχίσετε να δουλεύετε σοβαρά διαφορετικά... >> for ( i = 1; i <= 3; ++i ) printf ( <<Είναι καιρός να αρχίσετε να δουλεύετε σοβαρά, διαφορετικά... >> ); i=1 1<=3 (αληθής) <<Είναι καιρός... >> i=2(++i) 2<=3 (αληθής) <<Είναι καιρός... >> i=3(++i) 3<=3 (αληθής) <<Είναι καιρός... >> i=4(++i) 4<=3 (ψευδής) έξοδος από την for
Παράδειγμα Γράψτε ένα πρόγραμμα που να υπολογίζει και n να τυπώνει τη ποσότητα: k, για δεδομένο n. k = 1
Πρόγραμμα /*Υπολογίζει το άθροισμα 1+2+ +n*/ #include<stdio.h> int main(void) /*Δηλώσεις μεταβλητών*/ int i, n, athroisma; printf( Δώστε το n= ); scanf( %d, &n);
} /* Υπολογισμός του αθροίσματος */ athroisma = 0; /*αρχική τιμή*/ for (i = 1; i <= n; ++i) athroisma = athroisma + i; printf( \n\n Για n = %d, το άθροισμα είναι %d, n, athroisma); return 0;
for (i = 1; i <= n; ++i) athroisma += i; Βήμα Εντολή athroisma i 1 Δώστε το n = 2 Καταχώρηση της τιμής 3 στην n 3 athroisma = 0; 0 4 i = 1; 0 1 5 1 <= 3 (i <= n) αληθής 0 1 6 athroisma += 1; 1 1 7 i = 2; 1 2 8 2 <= 3 (i <= n) αληθής 1 2 9 athroisma += 2; 3 2 10 i = 3; 3 3 11 3 <= 3 (i <= n) αληθής 3 3 12 athroisma += 3; 6 3 13 i = 4; 6 4 14 4 <= 3 (i <= n) ψευδής 6 4 έξοδος από την for
Πρόγραμμα /*Υπολογισμός μέσης τιμής ακεραίων αριθμών*/ #include <stdio.h> int main(void) /*Δηλώσεις μεταβλητών*/ int arithmos, plithos = 0, athroisma = 0; double mesi_timi; printf( Εισαγωγή αριθμού. Εισάγετε 0 για να σταματήσετε );
for ( scanf( %d, &arithmos); arithmos!= 0; scanf( %d, &arithmos )) athroisma += arithmos; plithos ++; printf( Εισαγωγή αριθμού. Εισάγετε 0 για να σταματήσετε ); }
} if (plithos == 0) mesi_timi = 0.0; else mesi_timi = (double) athroisma / plithos; printf( Μέση τιμή: %6.2f, mesi_timi); return 0;
Αλλη μορφή της for στο προηγούμενο παράδειγμα. for ( ; ; ) /* ατέρμονη επανάληψη */ scanf( %d, &arithmos); if (arithmos == 0) break; /* έξοδος από την for */ athroisma += arithmos; plithos ++; printf( Εισαγωγή αριθμού. Εισάγετε 0 για να σταματήσετε ); }
ΗΕΝΤΟΛΗ while while ( παράσταση ) εντολή επόμενη εντολή
ΛΟΓΙΚΟ ΔΙΑΓΡΑΜΜΑ ΤΗΣ while while (παράσταση ) εντολή επόμενη εντολή Παράσταση Μη μηδενική (αληθής) Εντολή 0 (ψευδής) Επόμενη εντολή
Παράδειγμα Να γραφεί ένα τμήμα προγράμματος που να υπολογίζει το παραγοντικό ενός δεδομένου θετικού ακεραίου αριθμού. n! = 1 2 3 n, 0! = 1. par = 1; metritis = 2; while (metritis <= n) par *= metritis; metritis++; }
Πρόβλημα Να γραφεί ένα πρόγραμμα που να υπολογίζει και τυπώνει το άθροισμα και το πλήθος των όρων της σειράς: 1 + 1/2 + 1/3 + 1/4 + μέχρι εκείνο τον όρο που είναι μικρότερος από την ποσότητα ε = 0.5 10-2.
Πρόγραμμα #include <stdio.h> const float EPSILON = 0.5e 0.2; int main(void) /*Δηλώσεις μεταβλητών*/ float athroisma = 0.0, oros = 1; int plithos; plithos = 1;
} while ( oros >= EPSILON) athroisma += oros; plithos ++; oros = 1.0 / plithos; } printf( Πλήθος όρων = %d. Άθροισμα σειράς = %6.3f, plithos-1, athroisma); return 0;
Η for (παράσταση_1; παράσταση_2; παράσταση_3) εντολή επόμενη εντολή είναι ισοδύναμη με την παράσταση_1; while ( παράσταση_2 ) εντολή παράσταση_3; }
ΗΕΝΤΟΛΗ do - while Η εντολή do - while έχει τη μορφή do εντολή while ( παράσταση ) ; επόμενη εντολή
ΛΟΓΙΚΟ ΔΙΑΓΡΑΜΜΑ ΤΗΣ do - while εντολή Παράσταση Μη μηδενική (αληθής) 0 (ψευδής) do εντολή Επόμενη εντολή while ( παράσταση)
Παράδειγμα Ας υποτεθεί ότι επιθυμούμε να διαβαστεί ένας θετικός ακέραιος αριθμός από το πληκτρολόγιο, τότε γράφοντας την εντολή: do printf( \n\n Δώστε έναν θετικό ακέραιο: ); scanf( %d, &arithmos); } while (arithmos <= 0); θα σταματήσει να εκτελείται μόνον αν δοθεί ένας θετικός αριθμός.
Παράδειγμα Γράψτε ένα πρόγραμμα σε C που να υπολογίζει και τυπώνει τη μέση τιμή ενός συνόλου μη αρνητικών αριθμών.
Πρόγραμμα /*Υπολογίζει τη μέση τιμή μη αρνητικών αριθμών*/ #include <stdio.h> int main(void) double arithmos, athroisma = 0.0, mesi_timi; int metritis = 0; printf( Εισάγετε ένα μη αρνητικό αριθμό ); printf( Εισάγετε 1 για τέλος δεδομένων\n ); scanf( %d, &arithmos);
if (arithmos ==-1) printf( Δεν υπάρχουν δεδομένα\n ); else do athroisma += arithmos; metritis ++; printf( Εισάγετε ένα μη αρνητικό αριθμό : );
printf( Εισάγετε 1 για το τέλος δεδομένων : ); scanf( %f, &arithmos); } while (arithmos!= -1.0); mesi_timi = athroisma / metritis; printf( Μέση τιμή = %8.2f \n, mesi_timi); printf( Πλήθος αριθμών = %d \n, metritis); } return 0;
ΦΩΛΙΑΣΜΕΝΕΣ ΕΠΑΝΑΛΗΨΕΙΣ for (i = 1; i <= 4; i++) /* Εξωτερική επανάληψη */ for (j = i; j <= 3; j++) /* Εσωτερική επανάληψη */ printf( i = %d j = %d\n, i, j); Εκτύπωση i = 1 j = 1 i = 1 j = 2 i = 1 j = 3 πρώτος κύκλος εξωτερικής επανάληψης i = 2 j = 2 i = 2 j = 3 δεύτερος κύκλος εξωτερικής επανάληψης i = 3 j = 3 τρίτος κύκλος εξωτερικής επανάληψης
ΗΧΡΗΣΗ ΤΟΥ EOF Το τέλος μιας γραμμής δεδομένων δηλώνεται με το χαρακτήρα Carriage Return, ο οποίος ανιχνεύεται με τον χαρακτήρα \n. Το τέλος ενός αρχείου δηλώνεται με τον χαρακτήρα Ctrl-Z (DOS), ο οποίος ανιχνεύεται με τη χρήση του EOF.
Παράδειγμα Να γραφεί ένα πρόγραμμα που να διαβάζει και τυπώνει ένα δεδομένο πλήθος γραμμών ενός κειμένου (αποτελούμενο από χαρακτήρες) όταν αυτό δίνεται από το πληκτρολόγιο. Το κείμενο να διαβάζεται και τυπώνεται ανά γραμμές. Η κάθε γραμμή του κειμένου να διαβάζεται και τυπώνεται ανά χαρακτήρα.
Πρόγραμμα /*Διαβάζει και τυπώνει τις γραμμές ενός κειμένου*/ #include <stdio.h> #define PLITHOS 2 /* Πλήθος γραμμών */ int main(void) char xar; int metritis; printf( Εισάγετε %d γραμμές ενός κειμένου \n, PLITHOS);
} for (metritis=1; metritis <= PLITHOS; ++metritis) /* Διαβάζεται και τυπώνεται μία γραμμή */ while ((xar = getchar())!= \n ) putchar(xar); putchar( \n ); /*νέα γραμμή εκτύπωσης*/ } return 0;
Παράδειγμα Γράψτε ένα πρόγραμμα σε C που να διαβάζει και τυπώνει ένα κείμενο.
#include <stdio.h> int main(void) ínt xar; Πρόγραμμα printf( Εισάγετε κείμενο\n ); printf( Πατήστε Ctrl-Z στο τέλος\n ); xar = getchar();
} while (xar!= EOF) while (xar!= \n ) putchar(xar); xar = getchar(); } putchar( \n ); xar = getchar(); } return 0;