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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

for for for for( . */

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Βασικάχαρακτηριστικάτηςγλώσσας. Πίνακες, Έλεγχος Ροής και Βρόχοι

Κεφάλαιο Πίνακες Ι. ( ιάλεξη 15) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

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

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

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

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

scanf() scanf() stdin scanf() printf() int float double %lf float

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ανάπτυξη και Σχεδίαση Λογισμικού

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

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

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

Λύσεις Σειράς Ασκήσεων 5

Transcript:

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

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

Σύνταξη του Βρόχου 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

Ροή Έλεγχου for int x,y; for (x=0; x<5; x++){ printf( %d\n,x); // Εδώ το x==5 y = x*x + 10; printf( %d\n,y); // εποµένως εκτυπώνεται 35 1) Συνθήκη 3) Ενηµέρωση 2) Εντολές false αρχικ. συνθ. 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

Παραδείγµατα µε for Μπορούµε να µετρήσουµε και αντίστροφα int x; for (x=5; x>0; x--){ printf( %d\n,x) Εκτυπώνει 5,4,3,2,1, Ή µε µεγαλύτερο βήµα (step increment) ή ότι επιθυµούµε int i; int i = 10; for (i = 0; i < 10; i += 2) { for (i = 10; i > 0; i /= 2) { printf ( %d, i); printf ("%d ",i); Εκτυπώνει 0,2,4,6,8, Εκτυπώνει: 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

Πρόβληµα Η Εντολή do-while Θέλουµε να διαβάσουµε αριθµούς από τον χρήστη και να τους αθροίσουµε. Όταν ο χρήστης δώσει 0 τότε τερµατίζει το πρόγραµµα. Με While scanf( %d, &a); while (a!=0) { sum+=a; scanf( %d, &a); Με For scanf( %d, &a); for (;a!=0;) { sum+=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

Ροη Ελεγχου 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

Παράδειγµα continue σε βρόχο H εντολή continue µπορεί να χρησιµοποιηθεί µε for, while, do-while για να προκαλέσει την µαταίωση της εκτέλεσης των εποµένων εντολών του βρόχου, για την τρέχουσα επανάληψη. #include <stdio.h> main ( ) { int i; for (i = 1; i < 10; i++) { if (i == 5) { printf ( \n ); continue; printf ( %d, i); OUTPUT: 1 2 3 4 6 7 8 9 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

Λύση 1: Εύρεσης Παραγοντικού µε int main() { int i, factorial=1; int n; printf("enter Number (1-12):"); scanf("%d", &n); for (i=1; i<=n; i++) { factorial *= i; for loop 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

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

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

Φωλιασµένοι (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