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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Αναφορά (1/2) Μπορούμε να ορίσουμε μια άλλη, ισοδύναμη αλλά ίσως πιο σύντομη, ονομασία για ποσότητα (μεταβλητή, σταθερή, συνάρτηση, κλπ.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Λογικό "και" (AND) μας επιστρέφει 1 αν και οι δύο operands είναι όχι μηδέν, διαφορετικά 0)

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

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

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

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

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

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

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ AΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ. Εισαγωγή στη Python

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

11/23/2014. Στόχοι. Λογισμικό Υπολογιστή

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

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

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

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

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

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

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

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

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

Η γλώσσα προγραμματισμού 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 1

Εισαγωγή: Δομές Επανάληψης Παράδειγμα Θέλουμε να τυπώσουμε τους αριθμούς από το μηδέν έως τρία στην οθόνη Ανεπιτυχής Προσπάθεια 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 2

Εισαγωγή: Δομές Επανάληψης Ας δούμε τι ακριβώς εκτελείτε α α<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 3

Κατηγορίες Βρόχων Επανάληψης Για δημιουργία επανάληψης σε ένα πρόγραμμα υπάρχουν διάφοροι τρόποι: Α) 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 4

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

Πρόβλημα 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 6

Τελεστές 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 int my_int = 3; printf ("%d, ", my_int++); printf ("%d, ", my_int++); printf ("%d, ", my_int); Εκτυπώνει: 3,4,5 int my_int = 3; printf ("%d, ", ++my_int); printf ("%d, ", ++my_int); printf ("%d, ", my_int); Εκτυπώνει: 4,5,5 9-14 7

Σύνθετοι Τελεστές Ανάθεσης Συχνά θέλουμε να αυξάνουμε / μειώνουμε μετρητές κατά κάποιο Κ (>1) Υπάρχει πιο συνοπτικός τρόπος! Πρόσθεση: i+=k; <==> i = i + k; Πολλαπλασιασμός: i*=k;<==> i = i * k; Διαίρεση: i/=k; <==> i = i / k; Υπόλοιπο: i%=k; <==> i = i%k; i op = k; <==> i = i op (k); 9-15 Πρόβλημα: Άθροισμα Σειράς - Περιγραφή Γράψετε ένα πρόγραμμα το οποίο υπολογίζει το άθροισμα μιας σειράς ακέραιων αριθμών. Η σειρά εισάγεται από μονάδα εισόδου και τερματίζεται με την τιμή 0. π.χ. Enter series: 2 4 236 6 31 23 0 >> 302 9-16 8

Πρόβλημα Άθροισμα Σειράς: 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 9

Πρόβλημα Εύρεσης Μέγιστου Σειράς: Γράψετε ένα πρόγραμμα που αναγνωρίζει τον πιο μεγάλο αριθμό σε μια σειρά ακέραιων αριθμών. Ησειρά εισάγεται από μονάδα εισόδου και τερματίζεται με την τιμή 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 10

Πρόβλημα Εύρεσης Μέγιστου Σειράς: Ολοκληρωμένος Κώδικας 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 11