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

Σχετικά έγγραφα
Μεθόδων Επίλυσης Προβλημάτων

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

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

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

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

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

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

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

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

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

Επανάληψη για τις Τελικές εξετάσεις

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

for for for for( . */

Κεφάλαιο , 3.2: Συναρτήσεις II. ( ιάλεξη 12) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

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

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

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

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

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

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

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

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

Κεφάλαιο 2.6: Είσοδος / Έξοδος εδοµένων, Μορφοποίηση εδοµένων Εξόδου. ( ιάλεξη 7) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

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

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

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

Κεφάλαιο 3.1, : Συναρτήσεις I. ( ιάλεξη 11) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Σημειώσεις του εργαστηριακού μαθήματος Πληροφορική ΙΙ. Εισαγωγή στην γλώσσα προγραμματισμού

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

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

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

ικτυακά Πολυμέσα Ι (Β Έτος, 3ο εξ) ιάλεξη #8η: Javascript: Τεχνικές εντοπισμού/διόρθωσης λαθών, τελεστές, δομές ελέγχου, βρόχοι επανάληψης

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

Εκτέλεση της εντολής1 και στη συνέχεια εκτέλεση της ΕΝΟΤΗΤΑΣ και της εντολής2 όσο η ΣΥΝΘΗΚΗ είναι αληθής.

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

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

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

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

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

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

Αντικειμενοστρεφής Προγραμματισμός -Python. Κ.Π. Γιαλούρης

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

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

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

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

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

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

ΑΣΚΗΣΗ 4: ΟΜΕΣ ΒΑΣΙΚΩΝ ΒΡΟΧΩΝ

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

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

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

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

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

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

Κεφάλαιο Αλφαριθµητικές Σειρές Χαρακτήρων (Strings)

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

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

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

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

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

Κεφάλαιο 2.5: Τύποι εδοµένων, Τελεστές και Αριθµητικές Εκφράσεις. ( ιαλέξεις 5-6) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

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

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

Διάλεξη 6: Δείκτες και Πίνακες

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

Προγραµµατισµός ΙΙ. Ηγλώσσααντικειµενοστραφούς. ιδάσκων ηµήτριος Κατσαρός, Τµ. Μηχανικών Η/Υ, Τηλεπικοινωνιών & ικτύων Πανεπιστήµιο Θεσσαλίας

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

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

(Κεφάλαιο 2.7 και 12) Αρχεία στην C. ( ιάλεξη 13) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

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

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

Transcript:

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

οµές Έλεγχου Προγράµµατος Μέχρι τώρα είδαµε τις ακόλουθες δοµές έλεγχου (program control structure) ενός προγράµµατος Α) Sequence π.χ. int a=1; b=34; printf( Hello ); B) Selection π.χ. If (a>1) { printf( a>1 ); ή switch (a) { Σήµερα θα δούµε ένα τρίτο τύπο δοµής έλεγχου ενός προγράµµατος: Γ) Repetition (Επαναληπτική οµή Έλεγχου) π.χ. while (α>0) { ή for (i=0;i<5;i++) { Η δοµές επανάληψης επιτρέπουν στους προγραµµατιστές να προσδιορίσουν µία ενέργεια που θα επαναλαµβάνεται όσο µία συνθήκη παραµένει αληθής. 9-2

Εισαγωγή: οµές Επανάληψης Παράδειγµα Θέλουµε να τυπώσουµε τους αριθµούς από το µηδέν έως τρία στην οθόνη Ανεπιτυχής Προσπάθεια int main() { printf( 0 ); printf( 1 ); printf( 2 ); printf( 3 ); return 0; Τι γίνεται αν θέλω να εκτυπώσω τους αριθµούς από 0 έως 100? Φαίνεται ότι η ρητή απαρίθµηση δεν είναι πολύ εύχρηστη 9-3

Εισαγωγή: οµές Επανάληψης Επιτυχής Προσπάθεια int a = 0; while (α<4) { printf( %d,, a); a = a+1; συνθήκη Ενέργεια επανάληψης (iteration) Μας τυπώνει 0,1,2,3, 9-4

Εισαγωγή: οµές Επανάληψης Ας δούµε τι ακριβώς εκτελείτε α α<4 output 0 1 0 1 1 1 2 1 2 3 1 3 4 0 int a=0; while (α<4) { printf( %d,, a); a = a+1; 9-5

Εισαγωγή: οµές Επανάληψης Εκτύπωση σε αντίστροφη σειρά int a = 4; while (α>0) { a = a-1; printf( %d,, a); Μας τυπώνει 3,2,1,0 Σιγουρευτείτε ότι καταλαβαίνεται την διαφορά του while και if int a = 4; if (α>0) { a = a-1; printf( %d,, a); Μας τυπώνει 3 9-6

Κατηγορίες Βρόχων Επανάληψης Για δηµιουργία επανάληψης σε ένα πρόγραµµα υπάρχουν διάφοροι τρόποι: Α) Counting Loops (Με µετρητή) Προσδιορισµένος αριθµός επαναλήψεων π.χ. int a =0; while (a<2) { printf( Hello ); a = a+1; B) Sentinel Loops (Με σηµαία) Απροσδιόριστος αριθµός επαναλήψεων. Το loop διακόπτεται όταν δοθεί κάποιος ειδικός χαρακτήρας. π.χ. int a =0; while (a!=-1) { scanf( %d, &a); printf( Hello ); C) Συνδυασµός (µε χρήση λογικών τελεστών) 9-7

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

While Loop Σύνταξη: while (έκφραση) εντολή; Σηµασία: εφόσον η έκφραση (συνθήκης == αληθής) εκτέλεσε τις εξαρτώµενες εντολές αλλιώς συνέχισε µε τις εντολές που ακολουθούν το while block while (έκφραση){ εντολη1; εντολη2;... ΠΡΟΣΟΧΗ ΛΑΘΟΣ!!! while (εκφραση); εντολη; 9-9

Ροή Ελέγχου while false συνθ. true εφόσον η έκφραση (συνθήκης == αληθής) εκτέλεσε τις εξαρτώµενες εντολές αλλιώς συνέχισε µε τις εντολές που ακολουθούν το while block Επόµενες εντολές 9-10

Πρόβληµα 1: Εκτύπωση Αριθµών Γράψετε ένα τµήµα προγράµµατος που τυπώνει τους ακέραιους αριθµούς από το 1 µέχρι το 12. Κάθε αριθµός που διαιρείται µε το 3 να τυπώνεται * δίπλα του. Ο κάθε αριθµός να τυπώνεται σε ξεχωριστή γραµµή. ηλαδή: 1 2 3* 4 5 6* 9-11

Πρόβληµα 1: Λύση (Εκτύπωση Αριθµών) int i; /* loop counter */ i = 1; while (i <= 12){ printf( %d,i); if((i%3) == 0) { printf( * ); printf( \n ); i = i + 1; 9-12

Τελεστές Prefix and Postfix Συχνά θέλουµε να αυξάνουµε/µειώνουµε µετρητές κατά 1. Υπάρχει πιο εύκολος τρόπος! Prefix Operator (προ-σηµειογραφική) ++i; <==> i = i + 1; --i; <==> i = i - 1; Postfix Operator (µετά-σηµειογραφική i++; <==> i = i + 1; i--; <==> i = i - 1; Και οι δυο τελεστές εκτελούν την ίδια πράξη (αφαίρεση / πρόσθεση) αλλά µε διαφορετική σειρά. Παραδείγµατα ακολουθούν 9-13

i = 5; x = ++i; y = i++; Prefix vs Postfix Τελεστές Πρώτα αύξησε και µετά ανάθεσε x=6 Πρώτα ανάθεσε και µετά αύξησε y=6 i=7 x είναι 6, y είναι 6 και το i είναι 7 intmy_int= 3; printf ("%d, ", my_int++); printf ("%d, ", my_int++); printf ("%d, ", my_int); Εκτυπώνει: 3,4,5 intmy_int= 3; printf ("%d, ", ++my_int); printf ("%d, ", ++my_int); printf ("%d, ", my_int); Εκτυπώνει: 4,5,5 9-14

Σύνθετοι Τελεστές Ανάθεσης Συχνά θέλουµε να αυξάνουµε / µειώνουµε µετρητές κατά κάποιο Κ (>1) Υπάρχει πιο συνοπτικός τρόπος! Πρόσθεση: i+=k; <==> i = i + k; Πολλαπλασιασµός: i*=k;<==> i = i * k; ιαίρεση: i/=k; <==> i = i / k; Υπόλοιπο: i%=k; <==> i = i%k; iop= k; <==> i = i op (k); 9-15

Πρόβληµα: Άθροισµα Σειράς - Περιγραφή Γράψετε ένα πρόγραµµα το οποίο υπολογίζει το άθροισµα µιας σειράς ακέραιων αριθµών. Η σειρά εισάγεται από µονάδα εισόδου και τερµατίζεται µε την τιµή 0. π.χ. Enter series: 2 4 236 6 31 23 0 >> 302 9-16

Πρόβληµα Άθροισµα Σειράς: b) Άθροιση Στοιχείων α1 α2 α3 α4 Sum= + Sum= + Sum= + Sum 9-17

Πρόβληµα Άθροισµα Σειράς: Ολοκληρωµένος κώδικας int number; /* holds input number one at a time */ int sum=0; /* current sum */ // διάβασµα πρώτου αριθµού scanf( %d,&number); while(number!= 0){ // εκτέλεση πράξης sum += number; // άθροιση µε υπάρχων sum // διάβασµα επόµενου scanf( %d,&number); printf( To άθροισµα της σειράς είναι %d\n,sum); 9-18

Πρόβληµα Εύρεσης Μέγιστου Σειράς: Γράψετε ένα πρόγραµµα που αναγνωρίζει τον πιο µεγάλο αριθµό σε µια σειρά ακέραιων αριθµών. Η σειρά εισάγεται από µονάδα εισόδου και τερµατίζεται µε την τιµή 0. π.χ. Enter series: 2 4 5236 6 31 978 5555 23 0 >> 5555 9-19

Πρόβληµα Εύρεσης Μέγιστου από σειρά Ν στοιχείων α1 α2 α3 α4 megistos max megistos max megistos max megistos 9-20

Πρόβληµα Εύρεσης Μέγιστου Σειράς: Ολοκληρωµένος Κώδικας int main() { int number; /* hold input number one at a time */ int maximum; /* hold current maximum */ scanf("%d",&number); /* diabase prwto stoixeio */ maximum = number; /* arxikopoihsh */ while(number!= 0){ scanf("%d",&number); /*διαβασε εποµενο στοιχειο*/ if (number>maximum) maximum = number; printf("to megisto stoixeio της σειρας ειναι %d\n", maximum); 9-21