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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Πληροφορική 2. Αλγόριθμοι

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

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

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

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

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

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

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

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

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

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

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

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

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

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

for for for for( . */

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Π. Σταθοπούλου ή Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7

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

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

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

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

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

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

ΛΟΓΙΚΑ ΔΙΑΓΡΑΜΜΑΤΑ. Γ Λυκείου Κατεύθυνσης Mike Trimos

Π. Σταθοπούλου ή Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7

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

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

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

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

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

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

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

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

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

Προγραμματισμός Η/Υ. Ενότητα 2β: Εισαγωγή στη C (Μέρος Δεύτερο)

Θεωρητικές Ασκήσεις. ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ. 1 ο Μέρος

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

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

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

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

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

Παρατηρήσεις για την δομή Όσο..επανάλαβε( ΣΟΣ)

Transcript:

Στόχοι και αντικείμενο ενότητας Έλεγχος ροής προγράμματος (βλ. ενότητα #4) Δομή επανάληψης #5.. Εντολές Επανάληψης Προτάσεις επανάληψης Εντολές while, do while Εντολή for Περί βρόχων (loops) Τελεστές, Μετρητές, Σημαίες Φωλιασμένοι βρόχοι Σχετικές προτάσεις Προτάσεις break, continue και goto Προγραμματισμός Η/Υ Διδάσκων: Νίκος Καρακαπιλίδης 5. Προγραμματισμός Η/Υ Διδάσκων: Νίκος Καρακαπιλίδης 5.2 Έλεγχος ροής προγράμματος Προτάσεις επανάληψης Βασικές δομές (ανεξάρτητες της ΓΠ - χρησιμοποιούνται για την ανάπτυξη αλγορίθμων επίλυσης προβλημάτων) Δομή Ακολουθίας (sequence) Ένα σύνολο προτάσεων (εντολών) εκτελείται ακολουθιακά (η μία μετά την άλλη) Δομή Επιλογής (selection) Ανάλογα με το αν μια συνθήκη είναι αληθής ή ψευδής, εκτελούνται διαφορετικές προτάσεις (ή ομάδες προτάσεων) Ε Π true Π Ε true Δομή Επανάληψης (loop, repetition) Μια πρόταση (η μια ομάδα προτάσεων) εκτελείται πολλές φορές Είτε όσο μια συνθήκη είναι αληθής Είτε για προκαθορισμένο αριθμό επαναλήψεων Mε συνθήκη εισόδου while Ε do Π Mε συνθήκη εξόδου do Π while Ε repeat Π until Ε Προγραμματισμός Η/Υ Διδάσκων: Νίκος Καρακαπιλίδης 5.3 Προγραμματισμός Η/Υ Διδάσκων: Νίκος Καρακαπιλίδης 5.4

Προτάσεις επανάληψης στη C Πρόταση while Εκτελεί μια πρόταση ή μια ομάδα προτάσεων όσο μια έκφραση (συνθήκη) είναι αληθής while (έκφραση) while (έκφραση) { πρόταση; πρόταση_; πρόταση_2; int x=0; while(x<5){ ++x; πρόταση_n; block του while Προτάσεις επανάληψης στη C(συν.) Πρόταση while (συν.) int product = 2; while ( product <= 000 ) product = 2 * product; product <= 000 false true product = 2 * product Προγραμματισμός Η/Υ Διδάσκων: Νίκος Καρακαπιλίδης 5.5 Προγραμματισμός Η/Υ Διδάσκων: Νίκος Καρακαπιλίδης 5.6 Πρόταση do while Εκτελεί μια πρόταση (ή μια ομάδα προτάσεων) και στη συνέχεια, για όσο μια έκφραση είναι αληθής, επαναλαμβάνει την εκτέλεση της πρότασης (ή της ομάδας προτάσεων) do do { πρόταση πρόταση_; while (έκφραση); πρόταση_2; int count=0, limit=5; do { count++; printf( count is %d\n,count); while (count<limit); πρόταση_n; while (έκφραση); Προγραμματισμός Η/Υ Διδάσκων: Νίκος Καρακαπιλίδης 5.7 Πρόταση do while (συν.) /* Using the do/while repetition structure */ 2 #include <stdio.h> 3 main() 4 { 5 int counter = ; 6 do { 7 printf( "%d", counter ); 8 while ( ++counter <= 0 ); 9 2 3 4 5 6 7 8 9 0 output προγράμματος Προγραμματισμός Η/Υ Διδάσκων: Νίκος Καρακαπιλίδης 5.8

Προτάσεις while και do while Προτάσεις επανάληψης στη C(συν.) int number; printf( Enter a positive value: ); scanf( %d,&number); while(number <= 0){ printf( Enter a positive value: ); scanf( %d,&number); int number; do{ printf( Enter a positive value: ); scanf( %d,&number); while(number <= 0); Προσοχή: Το σώμα εντολών της while μπορεί να μην εκτελεστεί ποτέ, ενώ το σώμα εντολών της do-while θα εκτελεστεί τουλάχιστον μία φορά Πρόταση for Ειδική περίπτωση επανάληψης εκτέλεσης μιας πρότασης ή μιας ομάδας προτάσεων for (init;test;update){ for (init;test;update) { πρόταση; πρόταση_; πρόταση_2; init αρχικοποίηση test έλεγχος συνθήκης update ενημέρωση πρόταση_n; block του for Προγραμματισμός Η/Υ Διδάσκων: Νίκος Καρακαπιλίδης 5.9 Προγραμματισμός Η/Υ Διδάσκων: Νίκος Καρακαπιλίδης 5.0 Πρόταση for (συν.) Πρόταση for (συν.) x 0 2 3 4 5 x<5 0 output 0 2 3 4 /* Summation with for */ 2 #include <stdio.h> 3 4 main() 5 { 6 int sum = 0, number; 7 8 for ( number = 2; number <= 00; number += 2 ) { 9 sum += number; 0 printf( "Sum is %d\n", sum ); 2 Sum is 2550 output προγράμματος Προγραμματισμός Η/Υ Διδάσκων: Νίκος Καρακαπιλίδης 5. Προγραμματισμός Η/Υ Διδάσκων: Νίκος Καρακαπιλίδης 5.2

Προτάσεις while και for x=0; while(x<5){ ++x; Προσοχή: Οποιαδήποτε δομή while μπορεί να εκφραστεί (γραφεί) ως δομή for και το αντίθετο Περί βρόχων Τελεστές (βλ. ενότητα #2) Μοναδιαίοι αύξησης και μείωσης ++, -- Προπορευόμενοι (prefix), π.χ. ++x η αύξηση ή η ελάττωση γίνεται πριν να χρησιμοποιηθεί η τιμή της μεταβλητής στον υπολογισμό της τιμής της έκφρασης στην οποία συμμετέχει Παρελκόμενοι (postfix), π.χ. x++ η αύξηση ή η ελάττωση γίνεται μετά τον υπολογισμό της τιμής της έκφρασης στην οποία συμμετέχει i = 5; x = ++i; τελικά x y i y = i++; 6 6 7 Προγραμματισμός Η/Υ Διδάσκων: Νίκος Καρακαπιλίδης 5.3 Προγραμματισμός Η/Υ Διδάσκων: Νίκος Καρακαπιλίδης 5.4 Περί βρόχων (συν.) Περί βρόχων (συν.) Χρήση μετρητών (σε while) x = 0; while(x<5){ ++x; Δήλωση μετρητή (μεταβλητής που θα χρησιμοποιηθεί στη συνέχεια για τον έλεγχο των επαναλήψεων) Αρχικοποίηση μετρητή Συνθήκη ελέγχου επανάληψης Αύξηση «βήματος» μετρητή Χρήση «σημαίας» (σε while) Παράδειγμα: άθροισμα σειράς αριθμών απροσδιόριστου μεγέθους (τερματίζεται όταν ο χρήστης εισάγει το 0) int number, sum=0; scanf( %d,&number); /* διάβασε τον πρώτο αριθμό */ while(number!= 0){ /* συνθήκη ελέγχου επανάληψης */ sum +=number; /* sum=sum+number */ scanf( %d,&number); /* διάβασε τον επόμενο αριθμό */ printf( The sum is %d\n,sum); Προγραμματισμός Η/Υ Διδάσκων: Νίκος Καρακαπιλίδης 5.5 Προγραμματισμός Η/Υ Διδάσκων: Νίκος Καρακαπιλίδης 5.6

Περί βρόχων (συν.) Περί βρόχων (συν.) Φωλιασμένοι βρόχοι Φωλιασμένοι βρόχοι (συν.) int i=0,j; while(i<5){ j=0; while(j<5){ printf( %d-%d,i,j); ++j; printf( \n ); ++i; output προγράμματος 0-0 0-0-2 0-3 0-4 -0 - -2-3 -4 2-0 2-2-2 2-3 2-4 3-0 3-3-2 3-3 3-4 4-0 4-4-2 4-3 4-4 int i=0,j; while(i<5){ j=0; while(j<=i){ printf( %d-%d,i,j); ++j; printf( \n ); ++i; output προγράμματος 0-0 -0-2-0 2-2-2 3-0 3-3-2 3-3 4-0 4-4-2 4-3 4-4 Προγραμματισμός Η/Υ Διδάσκων: Νίκος Καρακαπιλίδης 5.7 Προγραμματισμός Η/Υ Διδάσκων: Νίκος Καρακαπιλίδης 5.8 Διαχείριση ειδικών περιπτώσεων Η πρόταση break Σε πρόταση επανάληψης, μεταφέρει τον έλεγχο έξω από τον βρόχο στον οποίο εμπεριέχεται (στην πρόταση που ακολουθεί τον βρόχο) Χρήση της στην πρόταση switch (βλ. ενότητα #4) Αναντικατάστατη Σε άλλες περιπτώσεις, υπάρχει τρόπος να γραφεί κώδικας χωρίς τη χρήση της Πολλές break καταστρέφουν τη δόμηση του κώδικα while (έκφραση){ if (ειδική περίπτωση) { προτάσεις επεξεργασίας ειδικής περίπτωσης break; προτάσεις επεξεργασίας κανονικών περιπτώσεων Προγραμματισμός Η/Υ Διδάσκων: Νίκος Καρακαπιλίδης 5.9 Διαχείριση ειδικών περιπτώσεων (συν.) Η πρόταση continue Αποφυγή continue Μεταφέρει τον έλεγχο στην αρχή του βρόχου, παραλείποντας την εκτέλεση του υπολοίπου τμήματος του σώματος του βρόχου while (έκφραση){ if (κανονική περίπτωση) { προτάσεις επεξεργασίας κανονικής περίπτωσης continue; προτάσεις επεξεργασίας ειδικών περιπτώσεων while (έκφραση){ if (κανονική περίπτωση) προτάσεις επεξεργασίας κανονικής περίπτωσης else προτάσεις επεξεργασίας ειδικών περιπτώσεων Προγραμματισμός Η/Υ Διδάσκων: Νίκος Καρακαπιλίδης 5.20

Διαχείριση ειδικών περιπτώσεων (συν.) Διαχείριση ειδικών περιπτώσεων (συν.) Η πρόταση continue (συν.) Παράδειγμα if (x%2==) continue; output προγράμματος ; Η πρόταση goto Σύνταξη: goto <ετικέτα>; Μεταφέρει τον έλεγχο στην πρόταση που σημειώνεται με την ετικέτα ως <ετικέτα>: πρόταση Προσοχή: να την αποφεύγετε Καταστρέφει τη δόμηση του κώδικα Δεν είναι απαραίτητη μπορείτε να γράψετε οποιοδήποτε πρόγραμμα χωρίς τη χρήση της Προγραμματισμός Η/Υ Διδάσκων: Νίκος Καρακαπιλίδης 5.2 Προγραμματισμός Η/Υ Διδάσκων: Νίκος Καρακαπιλίδης 5.22 Λάθη που γίνονται συχνά Χρήση if αντί για while και αντίστροφα Παράλειψη παρένθεσης στη συνθήκη (ισχύει για τις προτάσεις while και do while) Π.χ. while x>4 αντί του ορθού while (x>4) Παράλειψη ; στην πρόταση for Παράλειψη αγκυλών στο σώμα του while Χρήση τελεστών ++, -- καθώς και σύνθετων τελεστών ανάθεσης (+= κλπ.), ιδιαίτερα σε πολύπλοκες εκφράσεις Προγραμματισμός Η/Υ Διδάσκων: Νίκος Καρακαπιλίδης 5.23 Χρήση προτάσεων ροής ελέγχου Γενικοί κανόνες Προσοχή στην αναγνωσιμότητα του κώδικα Χρήση tabs Χρήση αγκυλών Αποφύγετε το goto Πολλές φορές δείχνει αδυναμία του προγραμματιστή να αναπτύξει δομημένο κώδικα Προτιμήστε προτάσεις while (βρόχος επανάληψης με συνθήκη εισόδου) από το do while (βρόχος επανάληψης με συνθήκη εξόδου) Ο κώδικας είναι πιο ευανάγνωστος Χρησιμοποιήστε την εντολή break σε προτάσεις switch Αποφύγετε όμως τη χρήση των break και continue σε βρόχους επανάληψης Βεβαιωθείτε ότι ο βρόχος επανάληψης που αναπτύξατε θα τερματιστεί μετά από πεπερασμένο αριθμό επαναλήψεων Ελέγξτε διεξοδικά όλες τις περιπτώσεις Προγραμματισμός Η/Υ Διδάσκων: Νίκος Καρακαπιλίδης 5.24