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

Σχετικά έγγραφα
Η γλώσσα προγραμματισμού C

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

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

Κεφάλαιο : Επαναλήψεις (oι βρόγχοιfor, do-while) (Διάλεξη 10) Εντολές Επανάληψης που θα καλυφθούν σήμερα

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

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

Κεφάλαιο : Επαναλήψεις (for, do-while)

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

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

10. Εντολές επανάληψηςκαι οι εντολές

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

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

Εκτέλεση της εντολής1 και στη συνέχεια εκτέλεση της ΕΝΟΤΗΤΑΣ και της εντολής2 όσο η ΣΥΝΘΗΚΗ είναι αληθής.

Ο βρόχος for Η εντολή for χρησιμοποιείται για τη δημιουργία επαναληπτικών βρόχων στη C

Προγραμματισμός Ι (HY120)

Στόχοι και αντικείμενο ενότητας. Προτάσεις επανάληψης. Έλεγχος ροής προγράμματος. #5.. Εντολές Επανάληψης

Εισαγωγή στον Προγραµµατισµό. Διάλεξη 3 η : Επίλυση Προβληµάτων Χειµερινό Εξάµηνο 2011

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

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

Εντολές Επανάληψης. int sum = 0, i=1; sum += i++ ; sum += i++ ; Η πράξη αυτή θα πρέπει να επαναληφθεί Ν φορές!

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

for for for for( . */

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

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

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

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

Δομές ελέγχου ροής προγράμματος

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java

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

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

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

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

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java II

Προγραμματισμός Η/Υ. Ενότητα 5: Εντολές Επανάληψης

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

ΑΡΧΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ

Ο πιο κάτω πίνακας περιγράφει σε ποιες περιπτώσεις χρησιμοποιούμε τους τρεις πιο πάνω τρόπους:

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

Εισαγωγή στην πληροφορική

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

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

Ενότητα 5: «Εισαγωγή στον Προγραμματισμό. Απλές ασκήσεις με γλώσσα C»

Ενότητα 4: «Εισαγωγή στον Προγραμματισμό. Τα πρώτα προγράμματα σε γλώσσα C»

Προγραμματισμός Ι (HY120)

ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 3: Έλεγχος ροής προγράμματος

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

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

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

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

Εργαστήριο 5. Εντολή if και παραλλαγές: if-else, πολλαπλές if, πολλαπλές if-else. Απλές και σύνθετες εντολές. Εντολή switch.

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

Υπολογισμός - Συλλογή Δεδομένων - Πίνακες

9. Εντολές επανάληψηςκαι η εντολή

Εισαγωγή στην πληροφορική

Προγραμματισμός ΗΥ και Υπολογιστική Φυσική. Χρήστος Γκουμόπουλος

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java II

1 Ο ΣΕΤ ΑΣΚΗΣΕΩΝ (Ενδεικτικές Λύσεις)

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java

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

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

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

ΕΝΟΤΗΤΑ 4 Λήψη Αποφάσεων και Συναρτήσεις Ελέγχου

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

Δομή Επανάληψης. Κεφάλαιο 7 Mike Trimos

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

ΠΡΟΓΡΜΜΑΤΑ ΣΕ C. Γράψτε σε γλώσσα προγραμματισμού C τη συνάρτηση:

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

Μεθόδων Επίλυσης Προβλημάτων

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ ΕΞΕΤΑΣΗ IOYNIOY 2018 ΘΕΜΑΤΑ Α ΟΝΟΜΑΤΕΠΩΝΥΜΟ:... ΑΕΜ: ΕΞΑΜΗΝΟ:

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

Θέματα Προγραμματισμού Η/Υ

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

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

Αρχές Προγραμματισμού

ΕΡΓΑΣΤΗΡΙΟ 4: Μεταβλητές, Δομές Ελέγχου και Επανάληψης

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

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

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

11/23/2014. Στόχοι. Λογισμικό Υπολογιστή

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

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

Διάλεξη 5η: Εντολές Επανάληψης

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 22/11/07

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

ΕΡΓΑΣΤΗΡΙΟ 1 - ΣΗΜΕΙΩΣΕΙΣ

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

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

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

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

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

Είδη εντολών. Απλές εντολές. Εντολές ελέγχου. Εκτελούν κάποια ενέργεια. Ορίζουν τον τρόπο με τον οποίο εκτελούνται άλλες εντολές

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

Αρχές Προγραμματισμού

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

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 4 Ο. Δομή επανάληψης Επανάληψη με συνθήκη Ατέρμονη επανάληψη Πίνακας ΣΙΝΑΤΚΑΣ Ι. ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

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

Transcript:

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

Περίληψη Σήμερα... θα συνεχίσουμε τη συζήτησή μας για τα βασικά στοιχεία του υπολογισμού θα μελετήσουμε τον τρόπο επανάληψης εντολών σε ένα σύνολο τιμών (iteration) 2

Εντολή (statement) - Επανάληψη μερικές φορές πρέπει να επαναλάβουμε την εκτέλεση κάποιας (σύνθετης) εντολής είτε για ένα συγκεκριμένο αριθμό επαναλήψεων είτε για όσο ισχύει μια συνθήκη στη C αυτό μπορεί να γίνει με χρήση μίας εκ των εντολών: for while do while ο έλεγχος της επανάληψης γίνεται με τη βοήθεια λογικών εκφράσεων/προτάσεων οι δομές που σχηματίζουν οι εντολές επανάληψης ονομάζονται «βρόχοι» 3

Εντολή (statement) - Επανάληψη - while το πρώτο πρόγραμμα που έτρεξε σε έναν υπολογιστή (David Wheeler, University of Cambridge, 1949) 1. // υπολογισμός και εκτύπωση ενός πίνακα τετραγώνων για τους αριθμούς 0-99 2. 3. #include <stdio.h> 4. 5. main () 6. { 7. int i = 0; // αρχική τιμή μεταβλητής βρόχου, η οποία 8. // παρακολουθεί πόσες φορές έχει εκτελεστεί ο βρόχος 9. while (i < 100) { // συνθήκη τερματισμού βρόχου 10. printf("%d \t %d\n", i, i*i); // εντολή βρόχου 11. ++i; // αύξηση μεταβλητής βρόχου κατά 1 12. } 13. } 4

Εντολή (statement) - Επανάληψη - while ΙΙ τι χρειαζόμαστε: μία μεταβλητή βρόχου (ή μεταβλητή ελέγχου) i αρχικοποίηση μεταβλητής βρόχου int i = 0; κριτήριο τερματισμού if i<100 is false, terminate αύξηση μεταβλητής βρόχου ++i; κάτι να κάνουμε σε κάθε επανάληψη printf( ); 1. int i = 0; 2. while (i < 100) { 3. printf("%d \t %d\n", i, i*i); 4. ++i; 5. } 5

Εντολή (statement) - Επανάληψη - while - Συντακτικό συντακτικό εντολής while: while (condition) statement 1. int i = 0; 2. while (i < 100) { 3. printf("%d \t %d\n", i, i*i); 4. ++i; 5. } // while the condition is true, do statement η εντολή (statement) μπορεί να είναι απλή (μία) ή σύνθετη (μπλοκ) η εντολή εκτελείται όσο ισχύει η συνθήκη (condition) η συνθήκη αποτιμάται σε κάποια τιμή a και είναι αληθής όταν a 0 ψευδής όταν a = 0 όταν η συνθήκη γίνει ψευδής σταματά η εκτέλεση της εντολής 6

Εντολή (statement) - Επανάληψη - while - Διάγραμμα ροής (έναρξη) Εντολές Προγράμματος... σε κάθε επανάληψη γίνεται αποτίμηση της συνθήκης συνθήκη 0 συνθήκη = 0 ΑΛΗΘΗΣ συνθήκη ΨΕΥΔΗΣ εκτελείται όσο η συνθήκη είναι αληθής εντολή βρόχος Εντολές Προγράμματος (συνέχεια)... 1. int i = 0; 2. while (i < 100) { 3. printf("%d \t %d\n", i, i*i); 4. ++i; 5. } 7

Εντολή (statement) - Επανάληψη - while - Παρατηρήσεις η συνθήκη μπορεί να είναι 1. μια έκφραση συσχετισμού x>10 2. μια λογική πρόταση (x>10 && x<20) 3. το αποτέλεσμα κάποιας πράξης x+y 4. μεταβλητή ή τιμή x ή 100 αν η εντολή δεν είναι σύνθετη τα άγκιστρα { } δεν είναι απαραίτητα αν η συνθήκη είναι ψευδής από την αρχή δε θα εκτελεστεί ποτέ η εντολή while (2 > 3) statement αν η συνθήκη είναι πάντα αληθής ατέρμων βρόχος while (1) statement αν βάλουμε ';' μετά τη συνθήκη της while η εντολή της while είναι η κενή εντολή! while (x > 0); statement // το statement είναι εκτός της while! while (x > 0); statement 8

Εντολή (statement) - Επανάληψη - while - 1 ο παράδειγμα 1. #include <stdio.h> 2. 3. main () 4. { 5. int i = 1; 6. while (i < 5) { 7. printf("%d\n", i); 8. ++i; 9. } 10. printf("end\n"); 11. } i (i<5) printf 1 1 1 2 1 2 3 1 3 4 1 4 5 0 end 9

Εντολή (statement) - Επανάληψη - while - 2 ο παράδειγμα 1. #include <stdio.h> 2. 3. main () 4. { 5. int i = 1; 6. while (++i < 5) { 7. printf("%d\n", i); 8. } 9. printf("end\n"); 10. } i (++i<5) printf 1 (2<5) 1 2 2 (3<5) 1 3 3 (4<5) 1 4 4 (5<5) 0 end 10

Εντολή (statement) - Επανάληψη - while - 3 ο παράδειγμα 1. #include <stdio.h> 2. 3. main () 4. { 5. int i = 1; 6. while (i++ < 5) { 7. printf("%d\n", i); 8. } 9. printf("end\n"); 10. } i (i++<5) printf 1 (1<5) 1 2 2 (2<5) 1 3 3 (3<5) 1 4 4 (4<5) 1 5 5 (5<5) 0 end 11

Εντολή (statement) - Επανάληψη - while - 4 ο παράδειγμα γράψτε ένα πρόγραμμα το οποίο να ζητά από το χρήστη έναν ακέραιο n και να εμφανίζει όλους τους ακεραίους που είναι μικρότεροι από το n γράψτε ένα πρόγραμμα το οποίο να ζητά από το χρήστη έναν ακέραιο n και να εμφανίζει όλους τους ακεραίους από το 0 έως και το n 1. // εμφάνιση αριθμών μικρότερων του n 2. 3. #include <stdio.h> 4. 5. main () 6. { 7. int i, n; 8. printf("enter integer: "); 9. scanf("%d", &n); 10. i = 0; 11. while (i < n) { 12. printf("i is now: %d\n", i); 13. ++i; 14. } 15. } 1. // εμφάνιση αριθμών από το 0 έως και το n 2. 3. #include <stdio.h> 4. 5. main () 6. { 7. int i, n; 8. printf("enter integer: "); 9. scanf("%d", &n); 10. i = 0; 11. while (i <= n) { 12. printf("i is now: %d\n", i); 13. ++i; 14. } 15. } 12

Εντολή (statement) - Επανάληψη - while - 5 ο παράδειγμα γράψτε ένα πρόγραμμα το οποίο να ζητά από το χρήστη έναν ακέραιο n και υπολογίζει το άθροισμα: 1 + 2 +... + n 1. int i, n, sum; 2. 3. printf("enter integer: "); 4. scanf("%d", &n); 5. 6. i = 0; 7. sum = 0; 8. while (i <= n) { 9. sum += i; 10. ++i; 11. } 12. 13. printf("sum = %d\n", sum); 13

Εντολή Επανάληψης do..while 14

Εντολή (statement) - Επανάληψη - do..while - Συντακτικό συντακτικό εντολής do while: do statement while (condition); // do statement, while condition is true ο έλεγχος της συνθήκης (condition) γίνεται στο τέλος του βρόχου η εντολή (statement) εκτελείται τουλάχιστον μία φορά το while στο τέλος της εντολής do while πρέπει να τελειώνει με ελληνικό ερωτηματικό (;) 1. int i = 0; 2. while (i < 100) { 3. printf("%d \t %d\n", i, i*i); 4. ++i; 5. } 1. int i = 0; 2. do { 3. printf("%d \t %d\n", i, i*i); 4. ++i; 5. } while (i < 100); 15

Εντολή (statement) - Επανάληψη - do..while - Διάγραμμα ροής (έναρξη) Εντολές Προγράμματος... συνθήκη 0 ΑΛΗΘΗΣ βρόχος εντολή συνθήκη εκτελείται όσο η συνθήκη είναι αληθής ΨΕΥΔΗΣ συνθήκη = 0 σε κάθε επανάληψη γίνεται αποτίμηση της συνθήκης Εντολές Προγράμματος (συνέχεια)... 1. int i = 0; 2. do { 3. printf("%d \t %d\n", i, i*i); 4. ++i; 5. } while (i < 100); 16

Εντολή (statement) - Επανάληψη - do..while - 1 ο παράδειγμα γράψτε ένα πρόγραμμα το οποίο να ζητά από το χρήστη έναν ακέραιο n και να εμφανίζει όλους τους ακεραίους που είναι μικρότεροι από το n γράψτε ένα πρόγραμμα το οποίο να ζητά από το χρήστη έναν ακέραιο n και να εμφανίζει όλους τους ακεραίους από το 0 έως και το n 1. // εμφάνιση αριθμών μικρότερων του n 2. 3. #include <stdio.h> 4. 5. main () 6. { 7. int i, n; 8. printf("enter integer: "); 9. scanf("%d", &n); 10. i = 0; 11. do { 12. printf("i is now: %d\n", i); 13. ++i; 14. } while (i < n); 15. } 1. // εμφάνιση αριθμών από το 0 έως και το n 2. 3. #include <stdio.h> 4. 5. main () 6. { 7. int i, n; 8. printf("enter integer: "); 9. scanf("%d", &n); 10. i = 0; 11. do { 12. printf("i is now: %d\n", i); 13. ++i; 14. } while (i <= n); 15. } 17

Εντολή (statement) - Επανάληψη - do..while - 2 ο παράδειγμα γράψτε ένα πρόγραμμα το οποίο να ζητά από το χρήστη έναν ακέραιο n και υπολογίζει το άθροισμα: 1 + 2 +... + n 1. int i, n, sum; 2. 3. printf("enter integer: "); 4. scanf("%d", &n); 5. 6. i = 0; 7. sum = 0; 8. do { 9. sum += i; 10. ++i; 11. } while (i <= n); 12. 13. printf("sum = %d\n", sum); 18

Εντολή Επανάληψης for 19

Εντολή (statement) - Επανάληψη - for η εντολή for είναι παρόμοια με την εντολή while, με τη διαφορά ότι η διαχείριση της μεταβλητής ελέγχου επικεντρώνεται στην αρχή ευκολότερο να καταλάβουμε τι συμβαίνει 1. for (int i = 0; i < 100; ++i) 2. printf("%d \t %d\n", i, i*i); 1. int i = 0; 2. while (i < 100) { 3. printf("%d \t %d\n", i, i*i); 4. ++i; 5. } συντακτικό εντολής for: for (initialize; condition; increment) statement 20

Εντολή (statement) - Επανάληψη - for - Διάγραμμα ροής εκτελείται όσο η συνθήκη είναι αληθής συνθήκη 0 εντολή ΑΛΗΘΗΣ βρόχος εντολή προσαύξησης (έναρξη) Εντολές Προγράμματος... εντολή αρχικοποίησης συνθήκη ΨΕΥΔΗΣ σε κάθε επανάληψη γίνεται αποτίμηση της συνθήκης συνθήκη = 0 1. for (int i = 0; i < 100; ++i) 2. printf("%d \t %d\n", i, i*i); Εντολές Προγράμματος (συνέχεια)... 21

Εντολή (statement) - Επανάληψη - for - Παρατηρήσεις συντακτικό εντολής for: for (initialize; condition; increment) statement αν η συνθήκη είναι ψευδής δε θα εκτελεστεί ποτέ η εντολή η εντολή αρχικοποίησης (initialize) μπορεί να είναι περισσότερες από μία εντολές for (i = 0, j = 0, k = 1; i < k; ++i) { } η εντολή προσαύξησης (increment) μπορεί να είναι περισσότερες από μία εντολές for (i = 0; i < k; ++i, j+=2) { } όταν οι εντολές αρχικοποίησης και προσαύξησης αποτελούνται από πολλαπλές εντολές τότε αυτές χωρίζονται μεταξύ τους με κόμμα (,) 22

Εντολή (statement) - Επανάληψη - for - Παρατηρήσεις II χρησιμοποιούμε τη for όταν γνωρίζουμε εκ των προτέρων τον αριθμό επαναλήψεων δε βάζουμε το ελληνικό ερωτηματικό (;) στο τέλος της for for (i = 0; i < 100; ++i); { } // απλά αυξάνει το i 100 φορές δεν είναι απαραίτητο να υπάρχουν και τα τρία τμήματα της for όμως υπάρχει πάντα το διαχωριστικό ';' μεταξύ των τμημάτων for (;;) { } // ατέρμων βρόχος 23

Εντολή (statement) - Επανάληψη - for? παρατηρείτε κάποιο πρόβλημα στον παρακάτω κώδικα; 1. for (int i = 0; i < 100; ++i) // για κάθε i στην περιοχή [0:100) 2. { 3. printf("%d \t %d\n", i, i*i); 4. ++i; 5. } δεν τροποποιούμε ποτέ το μετρητή του βρόχου στο μπλοκ εντολών της for δυσνόητος κώδικας εάν θέλετε να αυξήσετε το μετρητή κατά 2, πείτε το! 1. // υπολογισμός και εκτύπωση ενός πίνακα τετραγώνων άρτιων αριθμών στην περιοχή [0:100) 2. 3. for (int i = 0; i < 100; i+=2) 4. printf("%d \t %d\n", i, i*i); 24

Εντολή (statement) - Επανάληψη - for - 1 ο παράδειγμα γράψτε ένα πρόγραμμα το οποίο να ζητά από το χρήστη έναν ακέραιο n και να εμφανίζει όλους τους ακεραίους που είναι μικρότεροι από το n γράψτε ένα πρόγραμμα το οποίο να ζητά από το χρήστη έναν ακέραιο n και να εμφανίζει όλους τους ακεραίους από το 0 έως και το n 1. // εμφάνιση αριθμών μικρότερων του n 2. 3. #include <stdio.h> 4. 5. main () 6. { 7. int i, n; 8. printf("enter integer: "); 9. scanf("%d", &n); 10. for (i = 0; i < n; ++i) 11. printf("i is now: %d\n", i); 12. } 1. // εμφάνιση αριθμών από το 0 έως και το n 2. 3. #include <stdio.h> 4. 5. main () 6. { 7. int i, n; 8. printf("enter integer: "); 9. scanf("%d", &n); 10. for (i = 0; i <= n; ++i) 11. printf("i is now: %d\n", i); 12. } 25

Εντολή (statement) - Επανάληψη - for - 2 ο παράδειγμα γράψτε ένα πρόγραμμα το οποίο να ζητά από το χρήστη έναν ακέραιο n και υπολογίζει το άθροισμα: 1 + 2 +... + n 1. int i, n, sum; 2. 3. printf("enter integer: "); 4. scanf("%d", &n); 5. 6. for (i = 0, sum = 0; i <= n; ++i) 7. sum += i; 8. 9. printf("sum = %d\n", sum); 26

while, do..while, for Παραδείγματα 27

Εντολή (statement) - Επανάληψη - Παρουσίαση αριθμών από 0 έως n 1. int i, n; 2. printf("enter integer: "); 3. scanf("%d", &n); 4. i = 0; 5. while (i <= n) { 6. printf("i is now: %d\n", i); 7. ++i; 8. } 1. int i, n; 2. printf("enter integer: "); 3. scanf("%d", &n); 4. i = 0; 5. do { 6. printf("i is now: %d\n", i); 7. ++i; 8. } while (i <= n); 1. int i, n; 2. printf("enter integer: "); 3. scanf("%d", &n); 4. for (i = 0; i <= n; ++i) 5. printf("i is now: %d\n", i); 28

Εντολή (statement) - Επανάληψη - Άθροισμα αριθμών 1+2+...+n 1. int i, n, sum; 2. printf("enter integer: "); 3. scanf("%d", &n); 4. i = 0; 5. sum = 0; 6. while (i <= n) { 7. sum += i; 8. ++i; 9. } 10. printf("sum = %d\n", sum); 1. int i, n, sum; 2. printf("enter integer: "); 3. scanf("%d", &n); 4. i = 0; 5. sum = 0; 6. do { 7. sum += i; 8. ++i; 9. } while (i <= n); 10. printf("sum = %d\n", sum); 1. int i, n, sum; 2. printf("enter integer: "); 3. scanf("%d", &n); 4. for (i = 0, sum = 0; i <= n; ++i) 5. sum += i; 6. printf("sum = %d\n", sum); 29

Εντολή (statement) - Επανάληψη - Έυρεση αθροίσματος N ακεραίων (for) γράψτε ένα πρόγραμμα το οποίο να ζητά από το χρήστη Ν ακεραίους και να υπολογίζει το άθροισμά τους 1. int i, n, N, sum; 2. 3. printf("enter number of integers (N): "); 4. scanf("%d", &N); 5. 6. for (i = 0, sum = 0; i < N; ++i) { 7. printf("enter integer: "); 8. scanf("%d", &n); 9. sum += n; 10. } 11. 12. printf("sum = %d\n", sum); 30

Εντολή (statement) - Επανάληψη - Έυρεση αθροίσματος N πραγματικών (while) γράψτε ένα πρόγραμμα το οποίο να ζητά από το χρήστη Ν πραγματικούς αριθμούς και να υπολογίζει το άθροισμά τους 1. int i, N; 2. float n, sum; 3. 4. printf("enter number of integers (N): "); 5. scanf("%d", &N); 6. 7. i = 0; 8. sum = 0; 9. while (i < N) { 10. printf("enter real: "); 11. scanf("%f", &n); 12. sum += n; 13. ++i; 14. } 15. 16. printf("sum = %f\n", sum); 31

Εντολή (statement) - Επανάληψη - Έυρεση μέσου όρου N ακεραίων (do..while) γράψτε ένα πρόγραμμα το οποίο να ζητά από το χρήστη Ν ακεραίους αριθμούς και να υπολογίζει το μέσο όρο τους 1. int i, n, N, sum; 2. float average; 3. 4. printf("enter number of integers (N): "); 5. scanf("%d", &N); 6. 7. i = 0; 8. sum = 0; 9. do { 10. printf("enter integer: "); 11. scanf("%d", &n); 12. sum = sum + n; 13. ++i; 14. } while (i < N); 15. 16. average = (float)sum/n; 17. 18. printf("average = %f\n", average); ο μέσος όρος (ως αποτέλεσμα διαίρεσης) είναι πραγματικός αριθμός μετατροπή της τιμής της sum σε πραγματικό αριθμό ώστε να έχουμε πραγματικό αριθμό ως αποτέλεσμα 32

break & continue 33

Εντολή (statement) - break έχει ως αποτέλεσμα την έξοδο του προγράμματος από τον (πιο εσωτερικό) βρόχο ή switch στο οποίο αυτή περιέχεται το πρόγραμμα συνεχίζει με τις εντολές που ακολουθούν μετά το βρόχο 1. int i, N, sum; 2. 3. printf("enter integer (N): "); 4. scanf("%d", &N); 5. 6. for (i = 0, sum = 0; i < N; ++i) { 7. if (i == 5) break; 8. sum = sum + i; 9. } 10. 11. printf("sum = %d\n", sum); θα υπολογίσει το πολύ το άθροισμα των αριθμών 1+2+3+4, ανεξάρτητα από την τιμή του N (καθώς ο βρόχος σταματά όταν το i πάρει την τιμή 5) 34

Εντολή (statement) - continue επιστρέφει τη ροή του προγράμματος στον έλεγχο της συνθήκης σε ένα βρόχο (τον πιο εσωτερικό) δε διακόπτεται ο βρόχος, αλλά η τρέχουσα επανάληψη 1. int i, N, sum; 2. 3. printf("enter integer (N): "); 4. scanf("%d", &N); 5. 6. for (i = 0, sum = 0; i < N; ++i) { 7. if (i == 5) continue; 8. sum = sum + i; 9. } 10. 11. printf("sum = %d\n", sum); θα υπολογίσει το άρθοισμα: 1+2+ +n-5 (όταν το i πάρει την τιμή 5, η γραμμή 8 δε θα εκτελεστεί, όμως ο βρόχος δε θα τερματιστεί, αλλά θα συνεχίσει για i = 6, ) 35

Εντολή (statement) - break & continue break έχει ως αποτέλεσμα την έξοδο του προγράμματος από τον (πιο εσωτερικό) βρόχο ή switch στο οποίο αυτή περιέχεται το πρόγραμμα συνεχίζει με τις εντολές που ακολουθούν μετά το βρόχο continue επιστρέφει τη ροή του προγράμματος στον έλεγχο της συνθήκης σε ένα βρόχο (τον πιο εσωτερικό) βολικό για 1. τον έλεγχο συνθηκών πριν ξεκινήσει η εκτέλεση του βρόχου, ή 2. για πρόωρη επιστροφή στον έλεγχο της συνθήκης βρόχοι: for, while, do while 36

Εντολή (statement) - break - 1 ο Παράδειγμα while ( &&!StopFlag) { <some code> if (I should stop){ StopFlag = true; }else{ <some more code> } } // end of while loop while ( ) { <some code> if (I should stop){ break; } < some more code> } // end of while loop 37

Εντολή (statement) - continue - Παράδειγμα while ( ) { if (everything is ok){ <rest of code> } // end of if } // end of while loop while ( ) { if (I don t like something){ continue; } <rest of code> } // end of while loop 38

Εντολή (statement) - break - 2 ο Παράδειγμα 1. // Παράδειγμα χρήσης break 2. 3. main() 4. { 5. int counter = 0; 6. 7. while (1) { 8. counter++; 9. if (counter == 100) 10. break; 11. } 12. // ατέρμων βρόχος // αύξηση counter έως το 100 // έξοδος από τον ατέρμων βρόχο 13. printf("the value of counter is: %d\n", counter); 14. } 39

Εντολή (statement) - break - 3 ο Παράδειγμα 1. // Παράδειγμα χρήσης break 2. 3. main() 4. { 5. int counter1 = 0, counter2 = 0; 6. 7. while (1) { // 1 ος ατέρμων βρόχος 8. counter1++; 9. if (counter1 == 100) // αύξηση counter1 έως το 100 10. break; // έξοδος από τον 1 ο ατέρμων βρόχο 11. 12. counter2 = 0; 13. while (1) { // 2 ος ατέρμων βρόχος 14. counter2+=2; 15. if (counter2 == 200) // αύξηση counter2 έως το 200 16. break; // έξοδος από τον 2 ο ατέρμων βρόχο 17. } 18. } 19. } 40

while, do..while, for Περισσότερα παραδείγματα 41

Εντολή (statement) - Επανάληψη - Έυρεση πλήθους αριθμών με κάποια ιδιότητα γράψτε ένα πρόγραμμα το οποίο να ζητά από το χρήστη Ν ακεραίους και να υπολογίζει το πλήθος των αριθμών που είναι μεγαλύτεροι του 100 1. int i, N, n, counter; 2. 3. printf("enter number of integers (N): "); 4. scanf("%d", &N); 5. 6. i = 0; 7. counter = 0; 8. while (i < N) { 9. printf("enter integer: "); 10. scanf("%d", &n); 11. if (n > 100) 12. ++counter; 13. ++i; 14. } 15. 16. printf("read %d numbers larger than 100\n", counter); 42

Εντολή (statement) - Επανάληψη - Έυρεση μικρότερου αριθμού γράψτε ένα πρόγραμμα το οποίο να ζητά από το χρήστη Ν ακεραίους και να εκτυπώνει τον μικρότερο 1. int i, N, n, min; 2. 3. printf("enter number of integers (N): "); 4. scanf("%d", &N); 5. 6. for (i = 0; i < N; ++i) { 7. printf("enter integer: "); 8. scanf("%f", &n); 9. if (i == 0) 10. min = n; 11. else if (n < min) 12. min = n; 13. } 14. 15. printf("the minimum number is: %d\n", min); 43

Ένθετοι βρόχοι 44

Εντολή (statement) - Επανάληψη - Ένθετοι βρόχοι ένας βρόχος μπορεί να περιέχει άλλες εντολές βρόχων βρόχοι μέσα σε βρόχο ένθετοι βρόχοι σε αυτές τις περιπτώσεις θα πρέπει να είμαστε προσεκτικοί στους μετρητές που χρησιμοποιούνται στους βρόχους 45

Εντολή (statement) - Επανάληψη - Ένθετοι βρόχοι - 1 ο Παράδειγμα γράψτε ένα πρόγραμμα που εκτυπώνει την προπαίδεια 1-10 1. main() 2. { 3. int i, j; 4. 5. for (i = 1; i <= 10; ++i) { 6. for (i = 1; j <= 10; ++i) 7. printf("%d\t", i*j); 8. printf("\n"); 9. } 10. }? τι θα άλλαζε για την προπαίδεια 1-5; 5. for (i = 1; i <= 5; ++i) { 6. for (i = 1; j <= 10; ++i;) 7. printf("%d\t", i*j); 8. printf("\n"); 9. } 46

Σύνοψη Εντολές επανάληψης while do..while for Διαγράμματα ροής Ένθετοι βρόχοι break, continue 47