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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 2 Εντολές Εισόδου/Εξόδου Τελεστές. Δρ. Γιώργος Λαμπρινίδης 23/10/2015 Η - Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ 1

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Γ ε ν ι κ ό Λ ύ κ ε ι ο Ε λ ε υ θ ε ρ ο ύ π ο λ η ς. Α λ γ ό ρ ι θ μ ο ι

Οικονόμου Βαγγέλησ Διάλεξη Νο 2. Δομημένοσ Προγραμματιςμόσ - Διάλεξη 2

Εισαγωγή στον Προγραµµατισµό. Διάλεξη 2 η : Βασικές Έννοιες της γλώσσας προγραµµατισµού C Χειµερινό Εξάµηνο 2011

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

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

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

Η ΔΟΜΗ ΕΠΑΝΑΛΗΨΗΣ Εντολές Επανάληψης REPEAT UNTIL, FOR, WHILE

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

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

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

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

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

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

Δομές Ακολουθίας- Επιλογής - Επανάληψης. Δομημένος Προγραμματισμός

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

Transcript:

Προγραμματισμός Μεθόδων Επίλυσης Προβλημάτων 9. Εντολές επανάληψηςκαι η εντολή while Ιωάννης Κατάκης

Σήμερα o Εισαγωγή στις δομές επανάληψης o Εντολή while o Τελεστές prefix και postfix

Δομές ελέγχου προγράμματος o Ακολουθιακήεκτέλεση inta=1; b=34; printf( Hello ); o Εκτέλεση με έλεγχο if(a>1) printf( a>1 ); o Εκτέλεση χρησιμοποιώντας δομής επανάληψης Επιτρέπουν στους προγραμματιστές να προσδιορίσουν ενέργειες που θα επαναλαμβάνονται όσο μια συνθήκη παραμένει αληθής Ενώ(α>0)εκτέλεσε αυτές τις εντολές Για(i=0 έως i<5) εκτέλεσε αυτές τις εντολές

Ακολουθιακή εκτέλεση Άσκηση: Να εκτυπωθούν οι αριθμοί από το 0 ως το 5 στην οθόνη intmain() printf( 0 ); printf( 1 ); printf( 2 ); printf( 3 ); printf( 4 ); printf( 5 ); return 0; Προφανώς, η λύση αυτή δεν είναι πρακτική.

Eντολήwhile o Η εντολή whileεπαναλαμβάνει την εκτέλεση μιας πρότασης ενώσω η τιμή μιας λογικής παράστασης είναι αληθής (1) o Η σύνταξη της εντολής είναι: while (παράσταση) Πρόταση1; o Η πρόταση1(απλή ή σύνθετη) θα εκτελείται συνέχεια μέχρι η παράσταση της whileνα πάρει λογική τιμή false (0) o Π.χ. while (5>0) printf( ε θα σταµατήσω ποτέ\n ); while (παράσταση) Πρόταση1; while (παράσταση) Πρόταση1 1 ; Πρόταση1 2 ; Πρόταση1 Ν ; Προηγούµενη Πρόταση Παράσταση true Πρόταση while Επόµενη Πρόταση false 5/31

Παράδειγμα inta = 0; while (a<4) printf( %d,, a); a = a+1; συνθήκη Ενέργειες επανάληψης (iteration), ονομάζεται και βρόχος (loop) Αποτέλεσμα: 0, 1, 2, 3, 9-6

Ροή εκτέλεσης α α<4 output 0 1 0, 1 1 1, 2 1 2, 3 1 3, 4 0 int a=0; while (a<4) printf( %d,, a); a = a+1; 9-7

Παράδειγμα Εκτύπωση σε αντίστροφη σειρά inta = 4; while (a>0) a = a-1; printf( %d,, a); Αποτέλεσμα: 3,2,1,0 Σιγουρευτείτε ότι καταλαβαίνετετη διαφορά του whileκαι if inta = 4; if (a>0) a = a-1; printf( %d,, a); Αποτέλεσμα: 3 9-8

Κατηγορίες βρόχων επανάληψης Α) Counting Loops (Με μετρητή) Προσδιορισμένος αριθμός επαναλήψεων π.χ. inta =0; while (a<2) printf( Hello ); a = a+1; B) Sentinel Loops (Με σημαία) Απροσδιόριστος αριθμός επαναλήψεων. Το loop διακόπτεται όταν δοθεί κάποιος ειδικός χαρακτήρας. π.χ. inta =0; while (a!=-1) scanf( %d, &a); printf( Hello ); 9-9

Άσκηση 9.1 Να αναπτύξετε πρόγραμμα το οποίο τυπώνει τους ακέραιους αριθμούς από το 1 μέχρι το 12. Κάθε αριθμός που διαιρείται με το 3 να τυπώνεται με * δίπλα του. Κάθε αριθμός να τυπώνεται σε ξεχωριστή γραμμή. Παράδειγμα εκτέλεσης: 1 2 3* 4 5 6* 12* 9-10

Λύση H στοίχιση των εντολών του ίδιου μπλοκ με εσοχή προς τα μέσα βοηθάει στην ανάγνωση του προγράμματος int i; /* Μετρητής*/ i = 1; while (i <= 12) printf( %d, i); if((i%3) == 0) printf( * ); printf( \n ); i = i + 1; Καλή πρακτική inti; /* Μετρητής*/ i = 1; while(i<=12) printf( %d, i); if((i%3) == 0) printf( * ); printf( \n ); i = i + 1; Κακή πρακτική 9-11

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

Prefix καιpostfix τελεστές i = 5; x = ++i; y = i++; Πρώτα αύξησε και μετά ανάθεσε x=6 Πρώτα ανάθεσε και μετά αύξησε y=6 Στο τέλος του προγράμματος, το 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-13

Σύνθετοι τελεστές ανάθεσης Συχνά θέλουμε να αυξήσουμε / μειώσουμε μετρητές κατά κάποιο k (>1). Υπάρχει πιο συνοπτικός τρόπος! o Πρόσθεση: i+=k; <==> i = i + k; o Πολλαπλασιασμός: i*=k; <==> i = i * k; o Διαίρεση: i/=k; <==> i = i /k; o Υπόλοιπο: i%=k; <==> i = i%k; Γενικά: i<τελεστής>= kσημαίνειi = i <τελεστής>k; 9-14

Άσκηση 9.2 o Αναπτύξτε ένα πρόγραμμα το οποίο υπολογίζει το άθροισμα μιας σειράς ακέραιων αριθμών. o Η σειρά εισάγεται από το πληκτρολόγιο και τερματίζεται με την τιμή 0 o Παράδειγμα εκτέλεσης Enterseries: 2 4 236 6 31 23 0 Sum: 302 9-15

Άσκηση 9.2: Σχεδιασμός λύσης α1 α2 α3 α4 Sum= + Sum= + Sum= + Sum 9-16

Άσκηση 9.2: Λύση int number; int sum=0; // κρατά τον αριθμό που προστίθεται κάθε φορά // το τρέχον άθροισμα // διάβασμα πρώτου αριθμού scanf( %d,&number); while(number!= 0) sum += number; // πρόσθεσε τον αριθμό στο τρέχον άθροισμα scanf( %d,&number); //διάβασε τον επόμενο αριθμό printf( \nsum%d\n, sum); 9-17

Άσκηση 9.3 Αναπτύξετε ένα πρόγραμμα που αναγνωρίζει τον πιο μεγάλο αριθμό σε μια σειρά ακέραιων αριθμών. Η σειρά εισάγεται από το πληκτρολόγιο και τερματίζεται με την τιμή 0 Enterseries: 2 4 5236 6 31 978 5555 23 0 Max: 5555 9-18

Άσκηση 9.3 Σχεδιασμός λύσης α1 α2 α3 α4 Maximum= max Maximum= max Maximum= max 9-19

Άσκηση 9.3: Λύση intmain() int number; int maximum; scanf("%d", &number); maximum = number; // Κρατά τον αριθμό που δίνει ο χρήστης // Κρατά το τρέχον μέγιστο // Διάβασε το πρώτο στοιχείο // Αρχικοποίηση μέγιστου while(number!= 0) scanf("%d",&number); // Διάβασε επομενο στοιχειο if (number>maximum) maximum = number; printf( \nmax: %d\n", maximum); return 0; 9-20

Τέλος διάλεξης