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

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

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

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

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

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

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

Προγραμματισμός Ι. Προτάσεις επανάληψης βρόχοι

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

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

for for for for( . */

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL) (PASCAL ) Εντολές Ελέγχου & Επανάληψης

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

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

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

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

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

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

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

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

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

Προγραμματισμός Ι. Θεματική ενότητα 4: Έλεγχος ροής Προτάσεις υπό συνθήκη διακλάδωσης

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

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

3. Έλεγχος ροής προγράμματος

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

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

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

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

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

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

2 ΟΥ και 8 ΟΥ ΚΕΦΑΛΑΙΟΥ

if(συνθήκη) {... // οµάδα εντολών } C: Από τη Θεωρία στην Εφαρµογή 5 ο Κεφάλαιο

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

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

Πληροφορική ΙΙ Θεματική Ενότητα 7

Ψευδοκώδικας. November 7, 2011

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

1. Πότε χρησιμοποιούμε την δομή επανάληψης; Ποιες είναι οι διάφορες εντολές (μορφές) της;

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

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

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

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

Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2. Α1. Ο αλγόριθμος είναι απαραίτητος μόνο για την επίλυση προβλημάτων πληροφορικής

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

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

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

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

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

Προβλήματα, αλγόριθμοι, ψευδοκώδικας

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

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

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

Βρόχοι. Εντολή επανάληψης. Το άθροισμα των αριθμών 1 5 υπολογίζεται με την εντολή. Πρόβλημα. Πώς θα υπολογίσουμε το άθροισμα των ακέραιων ;

Στόχοι και αντικείμενο ενότητας. Εκφράσεις. Η έννοια του τελεστή. #2.. Εισαγωγή στη C (Μέρος Δεύτερο) Η έννοια του Τελεστή

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

Μαθησιακές δυσκολίες ΙΙ. Παλαιγεωργίου Γιώργος Τμήμα Μηχανικών Ηλεκτρονικών Υπολογιστών Τηλεπικοινωνιών και Δικτύων, Πανεπιστήμιο Θεσσαλίας

Διδακτικά προβλήματα σχετικά με την έννοια της επανάληψης

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

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

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

5 ΕΙΣΑΓΩΓΗ ΣΤΗ ΘΕΩΡΙΑ ΑΛΓΟΡΙΘΜΩΝ

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

ΕΠΛ 003: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ

Διδακτική της Πληροφορικής

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

ΔΙΑΛΕΞΗ ΙΙ ΕΝΑ ΒΗΜΑ ΠΑΡΑΠΑΝΩ ΜΕ SCRATCH ΕΠΙΛΕΓΩΝΤΑΣ & ΕΠΑΝΑΛΑΜΒΑΝΟΝΤΑΣ

ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Αλγοριθμική και Προγραμματισμός

Transcript:

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

Βρόχοι Επανάληψη (Loop) Η επανάληψη ενός συνόλου εντολών για όσες φορές επιθυμούμε ή μέχρι να πληρωθεί μια συνθήκη τερματισμού. Η επανάληψη αποτελεί ένα δυναμικό εργαλείο για την σχεδίαση και επίλυση σύνθετων προβλημάτων που εμπεριέχουν επαναλαμβανόμενες διεργασίες Όταν ο βρόχος θα εκτελείται αενάως καλείται ατέρμων βρόχος (infinite loop) Επανάληψη και καθημερινά προβλήματα, π.χ. Ανσασέρ, Αυτόματες μηχανές πώλησης, ΑΤΜ, 2

Κατηγοριοποίηση Επαναλήψεων Α. Με τον τρόπο οδηγήσεως Βρόχους οδηγούμενους από μετρητή Βρόχους οδηγούμενους από γεγονός Β. Με την θέση στην οποία γίνεται ο έλεγχος κριτηρίου Με συνθήκη εισόδου (pre test loops) ( Το κριτήριο τερματισμού ελέγχεται στην αρχή του βρόχου) Με συνθήκη εξόδου (post test loops) ( Το κριτήριο τερματισμού ελέγχεται στην αρχή του βρόχου) Συνθήκη Μπλόκ εντολών 3

Βρόχος while do Βρόχος με συνθήκη εισόδου Μπορεί να οδηγείται τόσο από μετρητή όσο και από γεγονός Για όσο η συνθήκη είναι αληθής επανέλαβε Έλεγχος συνθήκης στην αρχή Ο βρόχος while do για να έχει λογική υπόσταση θα πρέπει Α. πριν την πρώτη επανάληψη η συνθήκη να είναι αληθής Β. στο μπλόκ εντολών επανάληψης να υπάρχει η δυνατότητα αλλαγής της συνθήκης σε ψευδής Επιλέγεται σε περιπτώσεις που δεν είναι γνωστός εκ των προτέρων ο αριθμός των επαναλήψεων 4

Βρόχος while do Αληθής (συνθήκη) ναι οχι Ε μπλόκ εντολών true Π 5

Βρόχος do while Βρόχος με συνθήκη εξόδου Δυνατότητα καθοδήγησης με μετρητή ή γεγονός Διαφοροποιείται από την while do στο σημείο ελέγχου της συνθήκης τερματισμού καθώς και στο ότι επιτρέπει την εκτέλεση της πρώτης επανάληψης πριν προχωρήσει στον έλεγχο της συνθήκης Δεν προαπαιτεί να είναι η συνθήκη αληθής πριν από την εκτέλεση του βρόχου. Πρέπει βέβαια να υπάρχει δυνατότητα μέσα στο μπλόκ εντολών να μετατρέπεται η συνθήκη σε ψευδής για να μπορεί να τερματισθεί ο βρόχος 6

Βρόχος do while μπλόκ εντολών Π ναι Αληθής (συνθήκη) οχι true Ε 7

Βρόχος do while στην C Δήλωση & λειτουργία do προτάσεις, μέσα στις οποίες θα αλλάζει η συνθήκη; while (συνθήκη); Εκτέλεσε τις προτάσεις Έλεγξε τη συνθήκη Εάν είναι αληθής Ξεκίνησε από την αρχή Αλλιώς σταμάτησε int count=30; int limit = 40; do count++; printf( count is %d\n,count); while(count<limit); <επόμενη πρόταση> Εκτελείται τουλάχιστον μια φορά Χαμηλό λόγο χρήσης 8

Βρόχος στην γλώσσα προγραμματισμού C Εντολή while με σύνταξη while(συνθήκη) προτάσεις, μέσα στις οποίες θα αλλάζει η συνθήκη Έλεγξε τη συνθήκη Εάν είναι αληθής Προχώρησε στις προτάσεις Ξεκίνησε από την αρχή Αλλιώς σταμάτησε Εάν το σώμα του βρόχου αποτελείται από μια πρόταση, δεν απαιτούνται 9

Παράδειγμα 5.1 #include <stdio.h> Main() int count=30; int limit = 40; while(count < limit) count++; printf( count is %d\n, count); false Count<limit true Count++; Pritnf( count is %d\n,count); Επόμενη εντολή 10

Συνθήκη με προπερευόμενο ή παρελκόμενο τελεστη While(++count < 12) Π1; Π2; While(count++ < 12) Π1; Π2; Πού μετατρέπεται η συνθήκη σε ψευδές; Ποια η διαφορά προθεματικής και μεταθεματικής σημειογραφίας στα loop; 11

Βρόχος οδηγούμενος από μετρητή Χρησιμοποιεί έναν μετρητή Έχει αρχική συνθήκη Οδηγείται από μετρητή (ο μετρητής μέλος στην συνθήκη) Έχει Δυνατότητα ρύθμισης προσαύξησης θετική αρνητική Παρέχει την Δυνατότητα διαβάθμισης προσαύξησης (βήμα) 12

Βρόχος οδηγούμενος από μετρητή στην C For( αρχική τιμή μετρητή; Συνθήκη; βήμα μετρητή) προτάσεις; Αρχικοποίησε το μετρητή Έλεγξε τη συνθήκη Εάν είναι αληθής εκτέλεσε τις προτάσεις ενημέρωσε το μετρητή Επανήλθε στον έλεγχο της συνθήκης Αλλιώς ενημέρωσε το μετρητή και σταμάτησε Όταν οι προτάσεις ή εκφράσεις ή εντολές είναι μόνο μία τα άγκιστρα μπορούν να παραλειφθούν 13

Εντολή For παραδείγματα For(n=0;n<10;n++) printf( \n=%d\n,n); For(n=10;n>0;n ) printf( n=%d\n,n); For(n=0;n<60;n=n+13) printf( n=%d\n,n); For(n= a ;n< z ;n++) printf( n=%d, the ASCII value is %d\n,n,n); For(n=0;n<60.0; n=1.2*n) printf( n=%f\n,n); 14

Εντολή For παραδείγματα #include <stdio.h> Main() int count=30; int mac_count = 40; for(count=0; count < max_count; count++) printf( count is %d\n,count); <άλλες προτάσες> #include <stdio.h> main() int x,y; for(x=0,y=0; x+y<100; x=x+20, y=y+10) printf( x=%d\ty=%d\tx+y=%d\n,x,y,x+y); printf( x=%d\ty=%d,x,y); 15

Τελεστής, και χρήση σε loop Επιτρέπει την παράθεση περισσότερων της μίας έκφρασης σε θέσεις όπου επιτρέπεται μία έκφραση. Η τιμή της έκφρασης είναι η τιμή της δεξιότερης των εκφράσεων Έχει περιορισμένη εφαρμογή Στην for χρησιμοποιείται ως συνθετικό των εκφράσεων αρχικοποίησης και ανανέωσης #include <stdio.h> main() int i, j; for(i=0, j=10; i<8 ; i++, j++) printf("\ni=%d\t j=%d",i,j); getchar(); 16

Μετασχηματισμός βρόχων for while for(αρχική τιμή μετρητή; Συνθήκη ; Βήμα μετρητή) προτάσεις; αρχική τιμή μετρητή; while(συνθήκη ) προτάσεις; βήμα μετρητή; for (n=4; n>0; n ) printf( %d,,n/2); n=4; while (n>0) printf( %d,,n/2); n ; 17

Μετασχηματισμός βρόχων for σε do while # include <stdio.h> main() int n; for(n=4; n>1; n ) printf( %d,,10%n); # include <stdio.h> main() int n; n=4; do printf( %d,,10%n); n ; while(n 1); 18

Ένθετοι βρόχοι Αναφέρονται ως και φωλιασμένος βρόχος Ονομάζεται ο βρόχος που περικλείεται σε έναν άλλο Ο εσωτερικός βρόχος λογίζεται ως μια πρόταση του εσωτερικού δηλαδή πρώτα θα εκτελείται ο εσωτερικός βρόχος και μετά η επόμενη επανάληψη του εξωτερικού Η C επιτρέπει πολλαπλή ένθεση Ο συνολικός αριθμός επαναλήψεων σε έναν πολλαπλό βρόχο είναι το γινόμενο του αριθμού των επαναλήψεων όλων των επιμέρους βρόχων 19

Παραδείγματα ένθετων βρόχων for(i=0;i<4;i++) for(j=0;j<3;j++) printf( (%d.%d),i,j); printf( \n ); #include <stdio.h> void main() int I,j,k,temp; printf( I i^2 I^3 i^4\n ); for(i=1;i<10;i++) for(j=1;j<5;j++) temp=1; for(k=0;k<j;k++) temp=temp*i; printf( %9d,temp); printf( \n ); 20

Διακοπτόμενη βρόχοι στη C Ονομάζεται ο βρόχος στον οποίο η επανάληψη διακόπτεται για μεταφορά του ελέγχου α. στην αρχή του βρόχου και έλεγχο της συνθήκης β. εκτός βρόχου Υλοποίηση με την χρήση Κωδικής λέξης break Πρόταση continue Πρόταση goto 21

Break Στους βρόχους η κωδική λέξη break έχει την σημασία του τερματισμού εκτέλεσης ενός βρόχου, μεταβιβάζοντας τον έλεγχο του προγράμματος στην εντολή που βρίσκεται αμέσως μετά το βρόχο #include <stdio.h> void main() int t; for(t=0;t<100;t++) printf( \n%d,t); it(t==10) break; printf( \nt=%d,t); μπλόκ προτάσεων αληθής (συνθήκη) Έναρξη μπλόκ προτάσεων όχι Τερματισμός 22

Πρόταση continue Μεταφέρει τον έλεγχο της ροής στην αρχή του βρόχου, παραλείποντας την εκτέλεση του υπολοίπου τμήματος του σώματος του βρόχου και προχωρώντας στην επόμενη επανάληψη Στις εντολές while και do while η εντολή continue υποχρεώνει τον έλεγχο του προγράμματος να περάσει κατευθείαν στην συνθήκη ελέγχου και να προχωρήσει κατόπιν στην επεξεργασία του βρόχου Αντιθέτως στην εντολή for ο υπολογιστής εκτελεί πρώτα το τμήμα του βρόχου (αύξηση μετρητή) και κατόπιν τη συνθήκη ελέγχου #include <stdio.h> void main() int x; for(x=0;x<100;x++) if(x%2) continue; printf("\t%d",x); getch(); 23

Η πρόταση goto Είναι η πρόταση ρητής διακλάδωσης goto <ετικέτα> Μεταφέρει τον έλεγχο στην πρόταση που σημειώνεται με την ετικέτα ως <ετικέτα>:πρόταση Αποφυγή χρήσης διότι διασπά τις αρχές του δομημένου προγραμματισμού δημιουργώντας επιπλοκές στην λογική ροή του προγράμματος Συνήθως χρησιμοποιείται όταν θέλουμε να διασπάσουμε το τμήμα του προγράμματος που εκτελείται μέσα σε πολλές ένθετες επαναλήψεις (βρόχους) 24

Κανόνες χρήσης προτάσεων επανάληψης Σωστή χρήση στηλοθεσίας για εύκολη αναγνωσιμότητα κώδικα Χρησιμοποιείται για να περικλείετε περισσότερες της μίας πρότασης Αποφεύγετε τη χρήση της πρότασης διακλάδωσης goto Προτιμήστε το βρόχο επανάληψης με συνθήκη εισόδου (while) από τον αντίστοιχο με συνθήκη εξόδου (do while) Αποφεύγετε κατά το δυνατόν τη χρήση των break και continue σε βρόχους επανάληψης Εκτελέστε λεπτομερή έλεγχο και βεβαιωθείτε ότι κάθε συνθήκη βρόχου επανάληψης οδηγεί στην έξοδο μετά από πεπερασμένες επαναλήψεις, έτσι ώστε να μη δημιουργούνται ατέρμονες βρόχοι 25