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



Σχετικά έγγραφα
Κεφάλαιο : Επαναλήψεις (for, do-while)

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

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

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

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

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

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

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

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

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

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

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

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

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

Προγραμματισμό για ΗΜΥ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Δομές Ελέγχου και Επανάληψης

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

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

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

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

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

Επανάληψη. Εντολές while, for, do-while

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

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

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

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

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

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

Κεφάλαιο 6: Συναρτήσεις IΙΙ Αρθρωτός Προγραμματισμός. Δείκτες (Διάλεξη 14)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

EΒ ΟΜΑ Α 4 Η. οµές επανάληψης while και do while

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

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

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

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

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

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

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

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

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

Κεφάλαιο 6: Συναρτήσεις IΙΙ Αρθρωτός Προγραμματισμός. (Διάλεξη 14) Παράδειγμα: Αλλαγή τιμής μεταβλητής μόνο τοπικά

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

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

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

Δείκτες (Pointers) Ένας δείκτης είναι μια μεταβλητή με τιμή μια διεύθυνση μνήμης. 9.8

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

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

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

for for for for( . */

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

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

Εισαγωγή στον δομημένο προγραμματισμό

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

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

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

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

Transcript:

Κεφάλαιο 5.4-5.11: Επαναλήψεις (oι βρόγχοιfor, do-while) (Διάλεξη 10) 10-1 Εντολές Επανάληψης που θα καλυφθούν σήμερα Διάλεξη 9 - Δευτέρα while() τελεστές postfix/prefix (++, --,...) και σύνθετοι τελεστές Παραδείγματα Διάλεξη 10 - Σήμερα for() Η εντολές break/continue; do while() Φωλιασμένοι Βρόχοι (Nested Loops) Παραδείγματα 10-2 1

Σύνταξη του Βρόχου for for(αρχικοποίηση; συνθήκη επανάληψης ; ενημέρωση) εντολή; for(αρχικοποίηση; συνθήκη επανάληψης; ενημέρωση) εντολη; εντολη;.. Προσοχή: Γιατί είναι λάθος η πιο κάτω πρόταση for (αρχικοποίηση; συνθήκη επανάληψης ; ενημέρωση); εντολή; 10-3 Παράδειγμα με for int x; for (x=0; x<5; x++) printf( %d\n,x); x x<5 έξοδος 0 1 0 1 1 1 2 1 2 3 1 3 4 1 4 5 0 10-4 2

Ροή Έλεγχου for 1) Συνθήκη 3) Ενημέρωση int x,y; for (x=0; x<5; x++) printf( %d\n,x); 2) Εντολές false // Εδώ το x==5 y = x*x + 10; printf( %d\n,y); // επομένως εκτυπώνεται 35 αρχικ. συνθ. true εντολές ενημ. Επόμενες εντολές 10-5 Ομοιότητα for με while int x = 0; while (x < 5) printf( %d\n,x); x++; int x; for (x=0; x<5; x++) printf( %d\n,x); Οποιoδήποτε for μπορεί να γραφεί με while και οποιoδήποτε while με for ακόμα και το άπειρο loop for (;1;) printf("hello"); <==> while (1) printf("hello"); 10-6 3

Παραδείγματα με for Μπορούμε να μετρήσουμε και αντίστροφα int x; for (x=5; x>0; x--) printf( %d\n,x) Εκτυπώνει 5,4,3,2,1, Ή με μεγαλύτερο βήμα (step increment) ή ότι επιθυμούμε int i; for (i = 0; i < 10; i += 2) printf ( %d, i); Εκτυπώνει 0,2,4,6,8, int i = 10; for (i = 10; i > 0; i /= 2) printf ("%d ",i); Εκτυπώνει: 10,5,2,1 10-7 Η Εντολή do-while Στις εντολές for και while, προτού εκτελεστεί κάποια εντολή στο body, πρέπει να ελεγχθεί κάποια συνθήκη. π.χ. int a =0; while (a<2) /* body */ a = a+1; π.χ. int for (a=0;a<2;a++) /* body */ Σε αρκετές περιπτώσεις αυτό δεν είναι βολικό διότι δεν υπάρχει η τιμή της μεταβλητής στην συνθήκη. Παράδειγμα ακολουθεί 10-8 4

Η Εντολή do-while Πρόβλημα Θέλουμε να διαβάσουμε αριθμούς από τον χρήστη και να τους αθροίσουμε. Όταν ο χρήστης δώσει 0 τότε τερματίζει το πρόγραμμα. Με While Με For scanf( %d, &a); scanf( %d, &a); while (a!=0) for (;a!=0;) sum+=a; sum+=a; scanf( %d, &a); scanf( %d, &a); Πρόβλημα: Και στις δυο περιπτώσεις χρειάζομαι 2 scanf 10-9 Η Εντολή do-while do εντολή; while(συνθήκη); do εντολή; εντολή; while(συνθήκη); do scanf( %d, &a); sum+=a; while (a!=0); Πρώτα εκτελείται το σώμα της do /* σώμα */ while(); Ο έλεγχος της συνθήκης γίνεται μετά το while 10-10 5

Ροη Ελεγχου do-while body συνθ. false true 10-11 Παράδειγμα break σε βρόχο Ηεντολήbreak μπορεί να χρησιμοποιηθεί σε βρόχο while, do-while και for για να προκαλέσει έξοδο από το βρόχο. #include <stdio.h> main ( ) int i; for (i = 1; i < 10; i++) if (i == 5) break; printf ( %d, i); printf ( \nbroke out of loop at i = %d\n, i); ΈΞΟΔΟΣ: 1 2 3 4 Έξοδος από βρόχο με i = 5 10-12 6

Παράδειγμα continue σε βρόχο H εντολή continue μπορεί να χρησιμοποιηθεί με for, while, do-while για να προκαλέσει την ματαίωση της εκτέλεσης των επομένων εντολών του βρόχου, για την τρέχουσα επανάληψη. #include <stdio.h> main ( ) int i; for (i = 1; i < 10; i++) OUTPUT: if (i == 5) 1 2 3 4 6 7 8 9 continue; printf ( %d, i); printf ( \n ); 10-13 Πρόβλημα Εύρεσης Παραγοντικού Σχεδιάστε αλγόριθμο ο οποίος υπολογίζει το παραγοντικό ενός θετικού ακέραιου αριθμού (>0) που δίνει ο χρήστης. Δεδομένα εισόδου: αριθμός x Δεδομένα εξόδου : το παραγοντικό Π.χ. 1! = 1, 2! = 1.2 = 2, 3! = 1.2.3 = 6 4!=1.2.3.4=24, 5!=1.2.3.4.5=120,. 10-14 7

Λύση 1: Εύρεσης Παραγοντικού με for loop int main() int i, factorial=1; int n; printf("enter Number (1-12):"); scanf("%d", &n); for (i=1; i<=n; i++) factorial *= i; printf("the factorial of %d is %d\n", n, factorial); return 0; 10-15 Λύση 2: Εύρεσης Παραγοντικού με έλεγχο δεδομένων εισόδου int main() int i, factorial=1; int n; do // Έλεγχος ότι τα δεδομένα εισόδου είναι ορθά printf("enter Number (1-12):"); scanf("%d", &n); while (n<1 n>12); for (i=1; i<=n; i++) factorial *= i; printf("the factorial of %d is %d\n", n, factorial); return 0; Ελέγχουμε ότι η τιμή είναι μεταξύ 1-12 10-16 8

Λύση 3: Εύρεσης Παραγοντικού με while loop int main() int i=1, factorial=1; int n; Η αρχικοποίηση γίνεται εδώ do // Έλεγχος ότι τα δεδομένα εισόδου είναι ορθά printf("enter Number (1-12):"); scanf("%d", &n); while (n<1 n>12); Η εκτέλεση με την χρήση while loop while (i<=n) factorial *= i; i++; printf("the factorial of %d is %d\n", n, factorial); return 0; 10-17 Λύση 4: Εύρεσης Παραγοντικού με do while loop int main() int i=1, factorial=1; int n; Η αρχικοποίηση γίνεται εδώ do // Έλεγχος ότι τα δεδομένα εισόδου είναι ορθά printf("enter Number (1-12):"); scanf("%d", &n); while (n<1 n>12); Η εκτέλεση με χρήση do-while loop do factorial = factorial * i; i++; while (i<=n) printf("the factorial of %d is %d\n", n, factorial); return 0; 10-18 9

Φωλιασμένοι (Nested) Βρόχοι : Παράδειγμα 1 Σε ένα πρόγραμμα μπορούμε να φωλιάσουμε ένα βρόχο μέσα σε ένα άλλο βρόχο. Πχ. int i=0, j; while(i<5) j=0; while(j<5) printf( %d-%d,i,j); j++; printf( \n ); i++; Αποτέλεσμα 0-0 0-1 0-2 0-3 0-4 1-0 1-1 1-2 1-3 1-4 2-0 2-1 2-2 2-3 2-4 3-0 3-1 3-2 3-3 3-4 4-0 4-1 4-2 4-3 4-4 10-19 Φωλιασμένοι (Nested) Βρόχοι : Παράδειγμα 2 Ας κτίσουμε ένα τρίγωνο int i=0,j; while(i<5) j=0; while(j<=i) printf( %d-%d,i,j); j++; printf( \n ); i++; Αποτέλεσμα 0-0 1-0 1-1 2-0 2-1 2-2 3-0 3-1 3-2 3-3 4-0 4-1 4-2 4-3 4-4 10-20 10