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



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

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

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

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

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

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

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

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

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

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

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

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

Δομές Επανάληψης. Εισαγωγή στη C++

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

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

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

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

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

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

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

Κεφάλαιο : Επαναλήψεις (o βρόγχος While) (Διάλεξη 9) Δομές Έλεγχου Προγράμματος

Β7.1.4 Δομές Επανάληψης. Β Λυκείου Κατεύθυνσης

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

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

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

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

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

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

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

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

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

Διάλεξη 2η: Αλγόριθμοι και Προγράμματα

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΤΕΜ-101 Εισαγωγή στους Η/Υ Εξεταστική Ιανουαρίου 2011 Θέματα Β

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

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

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

Εντολές επιλογής Επαναλήψεις (if, switch, while)

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

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

Διάλεξη 3: Προγραμματισμός σε JAVA I. Διδάσκων: Παναγιώτης Ανδρέου

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

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

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

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

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

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

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

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

Διάλεξη 9η: Πίνακες (arrays)

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

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

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

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

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

for for for for( . */

ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 11/3/2008

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

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

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

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

Η εντολή if-else. Η απλή μορφή της εντολής if είναι η ακόλουθη: if (συνθήκη) { Η γενική μορφή της εντολής ifelse. εντολή_1; εντολή_2;..

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

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

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

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

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

Διάλεξη 11η: Δείκτες, μέρος 1

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

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

Κεφάλαιο : Επαναλήψεις (oι βρόχος While) ( ιάλεξη 9) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

Χαρακτηριστικά αναδροµής

Master Mind εφαρμογή στη γλώσσα προγραμματισμού C

Εισαγωγή στη Matlab 2 Εισαγωγή στην Αριθμητική Ανάλυση Διδάσκων: Γεώργιος Ακρίβης Βοηθός: Δημήτριος Ζαβαντής

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

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

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

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

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

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

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

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

Γ7.1 Επανάληψη ύλης Β Λυκείου. Γ Λυκείου Κατεύθυνσης

Συναρτήσεις. Εισαγωγή

Διάλεξη 15η: Αναδρομή, μέρος 1ο

Επανάληψη για τις Τελικές εξετάσεις. (Διάλεξη 24) ΕΠΛ 032: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕΘΟΔΩΝ ΕΠΙΛΥΣΗΣ ΠΡΟΒΛΗΜΑΤΩΝ

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

Transcript:

Διάλεξη 5η: Εντολές Επανάληψης Τμήμα Επιστήμης Υπολογιστών, Πανεπιστήμιο Κρήτης Εισαγωγή στην Επιστήμη Υπολογιστών Βασίζεται σε διαφάνειες του Κ Παναγιωτάκη Πρατικάκης (CSD) Εντολές Επανάληψης CS100, 2015-2016 1 / 16

Είδη εντολών Σειριακές (sequential) εντολές, εκτελείται η μία μετά την άλλη x = 42; z = f(x); Εντολές απόφασης (conditional), αποφασίζουν τι θα εκτελεστεί, υπό συνθήκη if (x == 0) y = 1; else y = 2; switch (x) case 1: case 2: default: Εντολές επανάληψης, εκτελούν πολλές φορές την ίδια λειτουργία for (i = 0; i < 10; i++) while (f(x) < 2) Μια εντολή επανάληψης λέγεται και βρόγχος γιατί κυκλώνει άλλες εντολές Πρατικάκης (CSD) Εντολές Επανάληψης CS100, 2015-2016 2 / 16

Επαναληπτικές εντολές: while Εντολή while: επαναλαμβάνει κάποιες εντολές για όσο ισχύει μια συνθήκη Γενική μορφή while (expression) statements Πρατικάκης (CSD) Εντολές Επανάληψης CS100, 2015-2016 3 / 16

Επαναληπτικές εντολές: while Εντολή while: επαναλαμβάνει κάποιες εντολές για όσο ισχύει μια συνθήκη Υπολογίζεται η τιμή της έκφρασης (expression) ως Γενική μορφή ακέραιος αριθμός, και συγκρίνεται με το 0 while (expression) statements Πρατικάκης (CSD) Εντολές Επανάληψης CS100, 2015-2016 3 / 16

Επαναληπτικές εντολές: while Εντολή while: επαναλαμβάνει κάποιες εντολές για όσο ισχύει μια συνθήκη Εντολές (statements) που Γενική μορφή εκτελούνται μόνο αν η έκφραση έχει τιμή διαφορετική από 0 while (expression) statements Πρατικάκης (CSD) Εντολές Επανάληψης CS100, 2015-2016 3 / 16

Επαναληπτικές εντολές: while Εντολή while: επαναλαμβάνει κάποιες εντολές για όσο ισχύει μια συνθήκη Υπολογίζεται ξανά η τιμή της έκφρασης (expression) ως Γενική μορφή ακέραιος αριθμός, και συγκρίνεται με το 0 while (expression) statements Πρατικάκης (CSD) Εντολές Επανάληψης CS100, 2015-2016 3 / 16

Επαναληπτικές εντολές: while Εντολή while: επαναλαμβάνει κάποιες εντολές για όσο ισχύει μια συνθήκη Aν η έκφραση έχει τιμή Γενική μορφή διαφορετική από 0, εκτελούνται ξανά οι εντολές, κλπ while (expression) statements Πρατικάκης (CSD) Εντολές Επανάληψης CS100, 2015-2016 3 / 16

Παράδειγμα: while Άθροισμα των τετραγώνων των αριθμών από 1 έως 10 whilec #include <stdioh> int c = 1, sum = 0; while (c <= 10) c++; printf( 1*1 + 2*2 + + 10*10 = %d\n, sum); Πρατικάκης (CSD) Εντολές Επανάληψης CS100, 2015-2016 4 / 16

Παράδειγμα: while Άθροισμα των τετραγώνων των αριθμών από 1 έως 10 whilec #include <stdioh> int c = 1, sum = 0; Αρχικά, το c είναι 1, και το sum είναι 0 while (c <= 10) c++; printf( 1*1 + 2*2 + + 10*10 = %d\n, sum); Πρατικάκης (CSD) Εντολές Επανάληψης CS100, 2015-2016 4 / 16

Παράδειγμα: while Άθροισμα των τετραγώνων των αριθμών από 1 έως 10 whilec #include <stdioh> int c = 1, sum = 0; while (c <= 10) c++; printf( 1*1 + 2*2 + + 10*10 = %d\n, sum); Ισχύει το 1 <= 10, οπότε θα εκτελεστούν οι εντολές του while Πρατικάκης (CSD) Εντολές Επανάληψης CS100, 2015-2016 4 / 16

Παράδειγμα: while Άθροισμα των τετραγώνων των αριθμών από 1 έως 10 whilec #include <stdioh> int c = 1, sum = 0; while (c <= 10) c++; printf( 1*1 + 2*2 + + 10*10 = %d\n, sum); c = 1, c*c = 1 Εκτυπώνει το μήνυμα για ίσο με 1 Πρατικάκης (CSD) Εντολές Επανάληψης CS100, 2015-2016 4 / 16

Παράδειγμα: while Άθροισμα των τετραγώνων των αριθμών από 1 έως 10 whilec #include <stdioh> int c = 1, sum = 0; while (c <= 10) c++; printf( 1*1 + 2*2 + + 10*10 = %d\n, sum); Υπολογίζει το c*c και το προσθέτει στο sum c = 1, c*c = 1 Πρατικάκης (CSD) Εντολές Επανάληψης CS100, 2015-2016 4 / 16

Παράδειγμα: while Άθροισμα των τετραγώνων των αριθμών από 1 έως 10 whilec #include <stdioh> int c = 1, sum = 0; c = 1, c*c = 1 while (c <= 10) c++; printf( 1*1 + 2*2 + + 10*10 = %d\n, sum); Αυξάνει το c κατά 1 Πρατικάκης (CSD) Εντολές Επανάληψης CS100, 2015-2016 4 / 16

Παράδειγμα: while Άθροισμα των τετραγώνων των αριθμών από 1 έως 10 whilec #include <stdioh> int c = 1, sum = 0; while (c <= 10) c++; printf( 1*1 + 2*2 + + 10*10 = %d\n, sum); c = 1, c*c = 1 Επανέλεγχος της συνθήκης: Ισχύει το 2 <= 10, οπότε θα εκτελεστούν ξανά οι εντολές του while Πρατικάκης (CSD) Εντολές Επανάληψης CS100, 2015-2016 4 / 16

Παράδειγμα: while Άθροισμα των τετραγώνων των αριθμών από 1 έως 10 whilec #include <stdioh> int c = 1, sum = 0; while (c <= 10) c++; printf( 1*1 + 2*2 + + 10*10 = %d\n, sum); c = 1, c*c = 1 c = 2, c*c = 4 Εκτυπώνει το μήνυμα για ίσο με 2 Πρατικάκης (CSD) Εντολές Επανάληψης CS100, 2015-2016 4 / 16

Παράδειγμα: while Άθροισμα των τετραγώνων των αριθμών από 1 έως 10 whilec #include <stdioh> int c = 1, sum = 0; while (c <= 10) c++; printf( 1*1 + 2*2 + + 10*10 = %d\n, sum); Υπολογίζει το c*c και το προσθέτει στο sum c = 1, c*c = 1 c = 2, c*c = 4 Πρατικάκης (CSD) Εντολές Επανάληψης CS100, 2015-2016 4 / 16

Παράδειγμα: while Άθροισμα των τετραγώνων των αριθμών από 1 έως 10 whilec #include <stdioh> int c = 1, sum = 0; c = 1, c*c = 1 c = 2, c*c = 4 while (c <= 10) c++; printf( 1*1 + 2*2 + + 10*10 = %d\n, sum); Αυξάνει το c κατά 1 Πρατικάκης (CSD) Εντολές Επανάληψης CS100, 2015-2016 4 / 16

Παράδειγμα: while Άθροισμα των τετραγώνων των αριθμών από 1 έως 10 whilec #include <stdioh> int c = 1, sum = 0; while (c <= 10) c++; printf( 1*1 + 2*2 + + 10*10 = %d\n, sum); c = 1, c*c = 1 Επανέλεγχος τηςc συνθήκης: = 2, c*c = 4 Ισχύει το 3 <= 10, οπότε θα εκτελεστούν ξανά οι εντολές του while Πρατικάκης (CSD) Εντολές Επανάληψης CS100, 2015-2016 4 / 16

Παράδειγμα: while Άθροισμα των τετραγώνων των αριθμών από 1 έως 10 whilec #include <stdioh> int c = 1, sum = 0; c = 1, c*c = 1 c = 2, c*c = 4 c = 3, c*c = 9 while (c <= 10) c++; printf( 1*1 + 2*2 + + 10*10 = %d\n, sum); Πρατικάκης (CSD) Εντολές Επανάληψης CS100, 2015-2016 4 / 16

Παράδειγμα: while Άθροισμα των τετραγώνων των αριθμών από 1 έως 10 whilec #include <stdioh> int c = 1, sum = 0; while (c <= 10) c++; printf( 1*1 + 2*2 + + 10*10 = %d\n, sum); c = 1, c*c = 1 c = 2, c*c = 4 c = 3, c*c = 9 c = 4, c*c = 16 Πρατικάκης (CSD) Εντολές Επανάληψης CS100, 2015-2016 4 / 16

Παράδειγμα: while Άθροισμα των τετραγώνων των αριθμών από 1 έως 10 whilec #include <stdioh> int c = 1, sum = 0; while (c <= 10) c++; printf( 1*1 + 2*2 + + 10*10 = %d\n, sum); c = 1, c*c = 1 c = 2, c*c = 4 c = 3, c*c = 9 c = 4, c*c = 16 c = 5, c*c = 25 Πρατικάκης (CSD) Εντολές Επανάληψης CS100, 2015-2016 4 / 16

Παράδειγμα: while Άθροισμα των τετραγώνων των αριθμών από 1 έως 10 whilec #include <stdioh> int c = 1, sum = 0; while (c <= 10) c++; printf( 1*1 + 2*2 + + 10*10 = %d\n, sum); c = 1, c*c = 1 c = 2, c*c = 4 c = 3, c*c = 9 c = 4, c*c = 16 c = 5, c*c = 25 c = 6, c*c = 36 Πρατικάκης (CSD) Εντολές Επανάληψης CS100, 2015-2016 4 / 16

Παράδειγμα: while Άθροισμα των τετραγώνων των αριθμών από 1 έως 10 whilec #include <stdioh> int c = 1, sum = 0; while (c <= 10) c++; printf( 1*1 + 2*2 + + 10*10 = %d\n, sum); c = 1, c*c = 1 c = 2, c*c = 4 c = 3, c*c = 9 c = 4, c*c = 16 c = 5, c*c = 25 c = 6, c*c = 36 c = 7, c*c = 49 Πρατικάκης (CSD) Εντολές Επανάληψης CS100, 2015-2016 4 / 16

Παράδειγμα: while Άθροισμα των τετραγώνων των αριθμών από 1 έως 10 whilec #include <stdioh> int c = 1, sum = 0; while (c <= 10) c++; printf( 1*1 + 2*2 + + 10*10 = %d\n, sum); c = 1, c*c = 1 c = 2, c*c = 4 c = 3, c*c = 9 c = 4, c*c = 16 c = 5, c*c = 25 c = 6, c*c = 36 c = 7, c*c = 49 c = 8, c*c = 64 Πρατικάκης (CSD) Εντολές Επανάληψης CS100, 2015-2016 4 / 16

Παράδειγμα: while Άθροισμα των τετραγώνων των αριθμών από 1 έως 10 whilec #include <stdioh> int c = 1, sum = 0; while (c <= 10) c++; printf( 1*1 + 2*2 + + 10*10 = %d\n, sum); c = 1, c*c = 1 c = 2, c*c = 4 c = 3, c*c = 9 c = 4, c*c = 16 c = 5, c*c = 25 c = 6, c*c = 36 c = 7, c*c = 49 c = 8, c*c = 64 c = 9, c*c = 81 Πρατικάκης (CSD) Εντολές Επανάληψης CS100, 2015-2016 4 / 16

Παράδειγμα: while Άθροισμα των τετραγώνων των αριθμών από 1 έως 10 whilec #include <stdioh> int c = 1, sum = 0; while (c <= 10) c++; printf( 1*1 + 2*2 + + 10*10 = %d\n, sum); c = 1, c*c = 1 c = 2, c*c = 4 c = 3, c*c = 9 c = 4, c*c = 16 c = 5, c*c = 25 c = 6, c*c = 36 c = 7, c*c = 49 c = 8, c*c = 64 c = 9, c*c = 81 c = 10, c*c = 100 Πρατικάκης (CSD) Εντολές Επανάληψης CS100, 2015-2016 4 / 16

Παράδειγμα: while Άθροισμα των τετραγώνων των αριθμών από 1 έως 10 whilec #include <stdioh> int c = 1, sum = 0; while (c <= 10) c++; printf( 1*1 + 2*2 + + 10*10 = %d\n, sum); c = 1, c*c = 1 Επανέλεγχος τηςc συνθήκης: = 2, c*c = 4 Δεν ισχύει το 11 <= c = 10, 3, οπότε c*c = 9 τελειώνει η εκτέλεση c = 4, της c*c = 16 whilec = 5, c*c = 25 c = 6, c*c = 36 c = 7, c*c = 49 c = 8, c*c = 64 c = 9, c*c = 81 c = 10, c*c = 100 Πρατικάκης (CSD) Εντολές Επανάληψης CS100, 2015-2016 4 / 16

Παράδειγμα: while Άθροισμα των τετραγώνων των αριθμών από 1 έως 10 whilec #include <stdioh> int c = 1, sum = 0; while (c <= 10) c++; printf( 1*1 + 2*2 + + 10*10 = %d\n, sum); c = 1, c*c = 1 c = 2, c*c = 4 c = 3, c*c = 9 c = 4, c*c = 16 c = 5, c*c = 25 c Η= εκτέλεση 6, c*c = συνεχίζει 36 c = την 7, c*c επόμενη = 49εντολή c = 8, c*c = 64 c = 9, c*c = 81 c = 10, c*c = 100 Πρατικάκης (CSD) Εντολές Επανάληψης CS100, 2015-2016 4 / 16

Παράδειγμα: while Άθροισμα των τετραγώνων των αριθμών από 1 έως 10 whilec #include <stdioh> int c = 1, sum = 0; while (c <= 10) c++; printf( 1*1 + 2*2 + + 10*10 = %d\n, sum); c = 1, c*c = 1 c = 2, c*c = 4 c = 3, c*c = 9 c = 4, c*c = 16 c = 5, c*c = 25 c = 6, c*c = 36 c = 7, c*c = 49 c = 8, c*c = 64 c = 9, c*c = 81 c = 10, c*c = 100 1*1 + 2*2 + + 10*10 = 385 Πρατικάκης (CSD) Εντολές Επανάληψης CS100, 2015-2016 4 / 16

Παράδειγμα 2: while Άθροισμα των τετραγώνων των αριθμών από 1 έως 10, εναλλακτικός τρόπος while2c #include <stdioh> int c = 11, sum = 0; while (--c) printf( 1*1 + 2*2 + + 10*10 = %d\n, sum); Πρατικάκης (CSD) Εντολές Επανάληψης CS100, 2015-2016 5 / 16

Παράδειγμα 2: while Άθροισμα των τετραγώνων των αριθμών από 1 έως 10, εναλλακτικός τρόπος while2c #include <stdioh> int c = 11, sum = 0; c = 10, c*c = 100 while (--c) printf( 1*1 + 2*2 + + 10*10 = %d\n, sum); Πρατικάκης (CSD) Εντολές Επανάληψης CS100, 2015-2016 5 / 16

Παράδειγμα 2: while Άθροισμα των τετραγώνων των αριθμών από 1 έως 10, εναλλακτικός τρόπος while2c #include <stdioh> int c = 11, sum = 0; c = 10, c*c = 100 c = 9, c*c = 81 while (--c) printf( 1*1 + 2*2 + + 10*10 = %d\n, sum); Πρατικάκης (CSD) Εντολές Επανάληψης CS100, 2015-2016 5 / 16

Παράδειγμα 2: while Άθροισμα των τετραγώνων των αριθμών από 1 έως 10, εναλλακτικός τρόπος while2c #include <stdioh> int c = 11, sum = 0; while (--c) printf( 1*1 + 2*2 + + 10*10 = %d\n, sum); c = 10, c*c = 100 c = 9, c*c = 81 c = 8, c*c = 64 Πρατικάκης (CSD) Εντολές Επανάληψης CS100, 2015-2016 5 / 16

Παράδειγμα 2: while Άθροισμα των τετραγώνων των αριθμών από 1 έως 10, εναλλακτικός τρόπος while2c #include <stdioh> int c = 11, sum = 0; while (--c) printf( 1*1 + 2*2 + + 10*10 = %d\n, sum); c = 10, c*c = 100 c = 9, c*c = 81 c = 8, c*c = 64 c = 7, c*c = 49 Πρατικάκης (CSD) Εντολές Επανάληψης CS100, 2015-2016 5 / 16

Παράδειγμα 2: while Άθροισμα των τετραγώνων των αριθμών από 1 έως 10, εναλλακτικός τρόπος while2c #include <stdioh> int c = 11, sum = 0; while (--c) printf( 1*1 + 2*2 + + 10*10 = %d\n, sum); c = 10, c*c = 100 c = 9, c*c = 81 c = 8, c*c = 64 c = 7, c*c = 49 c = 6, c*c = 36 Πρατικάκης (CSD) Εντολές Επανάληψης CS100, 2015-2016 5 / 16

Παράδειγμα 2: while Άθροισμα των τετραγώνων των αριθμών από 1 έως 10, εναλλακτικός τρόπος while2c #include <stdioh> int c = 11, sum = 0; while (--c) printf( 1*1 + 2*2 + + 10*10 = %d\n, sum); c = 10, c*c = 100 c = 9, c*c = 81 c = 8, c*c = 64 c = 7, c*c = 49 c = 6, c*c = 36 c = 5, c*c = 25 Πρατικάκης (CSD) Εντολές Επανάληψης CS100, 2015-2016 5 / 16

Παράδειγμα 2: while Άθροισμα των τετραγώνων των αριθμών από 1 έως 10, εναλλακτικός τρόπος while2c #include <stdioh> int c = 11, sum = 0; while (--c) printf( 1*1 + 2*2 + + 10*10 = %d\n, sum); c = 10, c*c = 100 c = 9, c*c = 81 c = 8, c*c = 64 c = 7, c*c = 49 c = 6, c*c = 36 c = 5, c*c = 25 c = 4, c*c = 16 Πρατικάκης (CSD) Εντολές Επανάληψης CS100, 2015-2016 5 / 16

Παράδειγμα 2: while Άθροισμα των τετραγώνων των αριθμών από 1 έως 10, εναλλακτικός τρόπος while2c #include <stdioh> int c = 11, sum = 0; while (--c) printf( 1*1 + 2*2 + + 10*10 = %d\n, sum); c = 10, c*c = 100 c = 9, c*c = 81 c = 8, c*c = 64 c = 7, c*c = 49 c = 6, c*c = 36 c = 5, c*c = 25 c = 4, c*c = 16 c = 3, c*c = 9 Πρατικάκης (CSD) Εντολές Επανάληψης CS100, 2015-2016 5 / 16

Παράδειγμα 2: while Άθροισμα των τετραγώνων των αριθμών από 1 έως 10, εναλλακτικός τρόπος while2c #include <stdioh> int c = 11, sum = 0; while (--c) printf( 1*1 + 2*2 + + 10*10 = %d\n, sum); c = 10, c*c = 100 c = 9, c*c = 81 c = 8, c*c = 64 c = 7, c*c = 49 c = 6, c*c = 36 c = 5, c*c = 25 c = 4, c*c = 16 c = 3, c*c = 9 c = 2, c*c = 4 Πρατικάκης (CSD) Εντολές Επανάληψης CS100, 2015-2016 5 / 16

Παράδειγμα 2: while Άθροισμα των τετραγώνων των αριθμών από 1 έως 10, εναλλακτικός τρόπος while2c #include <stdioh> int c = 11, sum = 0; while (--c) printf( 1*1 + 2*2 + + 10*10 = %d\n, sum); c = 10, c*c = 100 c = 9, c*c = 81 c = 8, c*c = 64 c = 7, c*c = 49 c = 6, c*c = 36 c = 5, c*c = 25 c = 4, c*c = 16 c = 3, c*c = 9 c = 2, c*c = 4 c = 1, c*c = 1 Πρατικάκης (CSD) Εντολές Επανάληψης CS100, 2015-2016 5 / 16

Παράδειγμα 2: while Άθροισμα των τετραγώνων των αριθμών από 1 έως 10, εναλλακτικός τρόπος while2c #include <stdioh> int c = 11, sum = 0; while (--c) printf( 1*1 + 2*2 + + 10*10 = %d\n, sum); c = 10, c*c = 100 c = 9, c*c = 81 c = 8, c*c = 64 c = 7, c*c = 49 c = 6, c*c = 36 c = 5, c*c = 25 c = 4, c*c = 16 c = 3, c*c = 9 c = 2, c*c = 4 c = 1, c*c = 1 1*1 + 2*2 + + 10*10 = 385 Πρατικάκης (CSD) Εντολές Επανάληψης CS100, 2015-2016 5 / 16

Παράδειγμα 3: while Άθροισμα των τετραγώνων των 10 πρώτων αριθμών που διαιρούνται με 7 ή 9 while3c #include <stdioh> int c = 11, sum = 0, pl = 0; while (pl < 10) if ((c % 7) == 0 (c % 9) == 0) pl++; c++; printf( Sum = %d\n, sum); Πρατικάκης (CSD) Εντολές Επανάληψης CS100, 2015-2016 6 / 16

Επαναληπτικές εντολές: for Εντολή for: επαναλαμβάνει κάποιες εντολές N φορές Γενική μορφή for (expression1; expression2; expression3 ) statements;

Επαναληπτικές εντολές: for Εντολή for: επαναλαμβάνει κάποιες εντολές N φορές Γενική μορφή for (expression1; expression2; expression3 ) statements; Εκτελείται αρχικά η έκφραση expression1 Πρατικάκης (CSD) Εντολές Επανάληψης CS100, 2015-2016 7 / 16

Επαναληπτικές εντολές: for Εντολή for: επαναλαμβάνει κάποιες εντολές N φορές Γενική μορφή for (expression1; expression2; expression3 ) statements; Υπολογίζεται η τιμή της έκφρασης expression2 Πρατικάκης (CSD) Εντολές Επανάληψης CS100, 2015-2016 7 / 16

Επαναληπτικές εντολές: for Εντολή for: επαναλαμβάνει Αν είναι κάποιες αληθής εντολές (μη N φορές μηδενική), εκτελούνται οι Γενική μορφή εντολές, αλλιώς for (expression1; expression2; τελειώνει expression3 η εκτέλεση ) της for statements; Πρατικάκης (CSD) Εντολές Επανάληψης CS100, 2015-2016 7 / 16

Επαναληπτικές εντολές: for Στο τέλος των Εντολή for: επαναλαμβάνει κάποιες εντολές Nεντολών φορές statements, Γενική μορφή εκτελείται η έκφραση expression3 for (expression1; expression2; expression3 ) statements; Πρατικάκης (CSD) Εντολές Επανάληψης CS100, 2015-2016 7 / 16

Επαναληπτικές εντολές: for Εντολή for: επαναλαμβάνει κάποιες εντολές N φορές Γενική μορφή for (expression1; expression2; expression3 ) statements; Ισοδύναμο expression1; while(expression2) statements; expression3; Πρατικάκης (CSD) Εντολές Επανάληψης CS100, 2015-2016 7 / 16

Παράδειγμα 1: for powerc /* Συνάρτηση power * Υπολογίζει τη n-οστή δύναμη ενός αριθμού * Δέχεται τη βάση και τον εκθέτη * Επιστρέφει τη βάση υψωμένη στον εκθέτη */ int power(int base, int n) int i, result = 1; for(i = 1; i <= n; i++) result = result * base; return result; Πρατικάκης (CSD) Εντολές Επανάληψης CS100, 2015-2016 8 / 16

Παράδειγμα 2: for factorialc /* Συνάρτηση factorial * Υπολογίζει το παραγοντικό ενός ακέραιου αριθμού * Δέχεται έναν ακέραιο αριθμό n * Επιστρέφει το παραγοντικό n! */ int factorial(int n) int i, result = 1; for(i = 2; i <= n; i++) result = result * i; return result; Πρατικάκης (CSD) Εντολές Επανάληψης CS100, 2015-2016 9 / 16

Παράδειγμα: for vs while Παράδειγμα for int c; for(c = 1; c <= 100; c++) printf( The square of %d is %d\n, c, c * c); Παράδειγμα while int c; c = 1; while(c <= 10) printf( The square of %d is %d\n, c, c * c); c++; Τα δύο παραδείγματα είναι ισοδύναμα Συνήθως οι προγραμματιστές προτιμούν το πρώτο Σε μία γραμμή for υπάρχουν όλες οι πληροφορίες που περιγράφουν την επανάληψη Πρατικάκης (CSD) Εντολές Επανάληψης CS100, 2015-2016 10 / 16

Ειδικές περιπτώσεις for Στη for δεν είναι υποχρεωτικό να δωθούν οι expression1, expression2 και expression3 Τα παρακάτω επιτρέπονται στη C Ασυνήθιστο for int k; k = 40; for (;k;) printf( k = %d\n, k--); Άδειο for for(;;); Τι υπολογίζουν τα παραπάνω παραδείγματα; Πρατικάκης (CSD) Εντολές Επανάληψης CS100, 2015-2016 11 / 16

Επαναληπτικές εντολές: do while Εντολή do while: επαναλαμβάνει κάποιες εντολές για όσο ισχύει μια συνθήκη Γενική μορφή do statements while (expression); Πρατικάκης (CSD) Εντολές Επανάληψης CS100, 2015-2016 12 / 16

Επαναληπτικές εντολές: do while Εντολή do while: επαναλαμβάνει κάποιες εντολές για όσο ισχύει μια συνθήκη Γενική μορφή do statements while (expression); Εκτελούνται οι εντολές (statements) Πρατικάκης (CSD) Εντολές Επανάληψης CS100, 2015-2016 12 / 16

Επαναληπτικές εντολές: do while Εντολή do while: επαναλαμβάνει κάποιες εντολές για όσο ισχύει μια συνθήκη Γενική μορφή do statements while (expression); Υπολογίζεται η τιμή της έκφρασης (expression) ως ακέραιος αριθμός, και συγκρίνεται με το 0 Πρατικάκης (CSD) Εντολές Επανάληψης CS100, 2015-2016 12 / 16

Επαναληπτικές εντολές: do while Εντολή do while: επαναλαμβάνει κάποιες εντολές για όσο ισχύει μια συνθήκη Aν η έκφραση έχει τιμή Γενική μορφή διαφορετική από 0, εκτελούνται ξανά οι εντολές do statements while (expression); Πρατικάκης (CSD) Εντολές Επανάληψης CS100, 2015-2016 12 / 16

Επαναληπτικές εντολές: do while Εντολή do while: επαναλαμβάνει κάποιες εντολές για όσο ισχύει μια συνθήκη Γενική μορφή do statements while (expression); Υπολογίζεται ξανά η τιμή της έκφρασης (expression) ως ακέραιος αριθμός, και συγκρίνεται με το 0, κλπ Πρατικάκης (CSD) Εντολές Επανάληψης CS100, 2015-2016 12 / 16

Παράδειγμα: do while dowhilec /* Συνάρτηση calculator: Δέχεται δύο ακέραιους αριθμούς, παίρνει από το χρήστη * το είδος της πράξης (+, -, * ή /) την εκτελεί και επιστρέφει το αποτέλεσμα */ int calculator(int a, int b) int result = 0; char choice; printf( Select + for addition, - for subtraction, * for multiplication or / for division\n ); do printf( Enter symbol:\n ); choice = getchar(); while ((choice!= + ) && (choice!= - ) && (choice!= * ) && (choice!= / )); if (choice == + ) result = a + b; else if (choice == - ) result = a - b; else if (choice == * ) result = a * b; else if (choice == / ) result = a / b; return result; Πρατικάκης (CSD) Εντολές Επανάληψης CS100, 2015-2016 13 / 16

Εντολές εξόδου από επανάληψη Εντολή break Τερματίζει την εντολή επανάληψης (for, while, do while) στην οποία βρίσκεται Η εκτέλεση συνεχίζει με την επόμενη εντολή μετά το τέλος του for, while ή do while Αν υπάρχουν πάνω από μια φωλιασμένες εντολές επανάληψης, ισχύει για την πιο μέσα Χρησιμοποιείται για να τερματίσει την εντολή επανάληψης Πχ, βγές από το μενού, σταμάτα την αναζήτηση μόλις το βρείς, κλπ Εντολή continue Τερματίζει την συγκεκριμένη επανάληψη και συνεχίζει με την επόμενη Στις εντολές for, εκτελεί την expression3 σαν να είχε φτάσει στο τέλος των statements Στις while και do while υπολογίζει τη συνθήκη επανάληψης για την επόμενη επανάληψη Χρησιμοποιείται για να παρακάμψει κάποια από όλες τις επαναλήψεις Πχ, αγνόησε τους αριθμούς που διαιρούνται με το 5 Πρατικάκης (CSD) Εντολές Επανάληψης CS100, 2015-2016 14 / 16

Φωλιασμένες εντολές επανάληψης Μπορεί μια εντολή επανάληψης να περιέχει άλλες εντολές επανάληψης Παράδειγμα for (i = 1; i <= 8; i++) for (j = 1; j <= i; j++) printf( * ); printf( \n ); * ** *** **** ***** ****** ******* ******** Πρατικάκης (CSD) Εντολές Επανάληψης CS100, 2015-2016 15 / 16

Παράδειγμα: Φωλιασμένοι βρόγχοι Πώς μπορούμε να τυπώσουμε την ακόλουθη έξοδο; Ζητούμενη έξοδος * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Πρατικάκης (CSD) Εντολές Επανάληψης CS100, 2015-2016 16 / 16