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

Σχετικά έγγραφα
5. ΒΡΟΧΟΙ ΕΠΑΝΑΛΗΨΗΣ (Β' μέρος: while - do..while)

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

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

7. ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΣΥΝΑΡΤΗΣΕΙΣ

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

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

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

Προγραμματισμός Η/Υ Ι (Χρήση της C) 6 η Θεωρία ΜΟΝΟΔΙΑΣΤΑΤΟΙ ΠΙΝΑΚΕΣ

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

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

2ο ΓΕΛ ΑΓ.ΔΗΜΗΤΡΙΟΥ ΑΕΠΠ ΘΕΟΔΟΣΙΟΥ ΔΙΟΝ ΠΡΟΣΟΧΗ ΣΤΑ ΠΑΡΑΚΑΤΩ

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

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

2. ΕΝΤΟΛΕΣ ΕΛΕΓΧΟΥ (Α' μέρος: if)

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

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

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

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

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

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

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

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

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

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

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

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

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

Πίνακες. 1 Πίνακες. 30 Μαρτίου 2014

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

ΑΣΚΗΣΗ 2: ΔΟΜΗ ΠΡΟΓΡΑΜΜΑΤΟΣ C, ΧΕΙΡΙΣΜΟΣ ΜΕΤΑΒΛΗΤΩΝ ΚΑΙ ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥ ΚΑΙ ΕΞΟΔΟΥ

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

3. ΕΝΤΟΛΕΣ ΕΛΕΓΧΟΥ (Β' μέρος: switch και :? )

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

Σημειώσεις για πρόοδο στο εργαστήριο

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

ΓΛΩΣΣΑ ΑΛΦΑΒΗΤΟ ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ ΣΤΑΘΕΡΕΣ ΜΕΤΑΒΛΗΤΕΣ

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

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

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

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

Βήματα: μνήμη 2. Αλγόριθμος βήματα που περιγράφουν την επεξεργασία των δεδομένων. Δομές Δεδομένων + Αλγόριθμοι = Προγράμματα

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

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

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

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

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

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

Λυμένα παραδείγματα με τις for, while, do-while

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

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

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

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

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

Μεταφερσιμότητα Τα προγράμματα μεταφέρονται εύκολα σε διαφορετικά λειτουργικά συστήματα

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

Επαναληπτικές Διαδικασίες

Να γράψετε τα αποτελέσματα αυτού του αλγόριθμου για Χ=13, Χ=9 και Χ=22. Και στις 3 περιπτώσεις το αποτέλεσμα του αλγορίθμου είναι 1

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

3ο σετ σημειώσεων - Πίνακες, συμβολοσειρές, συναρτήσεις

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ ΕΞΕΤΑΣΗ IOYNIOY 2018 ΘΕΜΑΤΑ Α ΟΝΟΜΑΤΕΠΩΝΥΜΟ:... ΑΕΜ: ΕΞΑΜΗΝΟ:

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

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

Κεφάλαια Εντολές επανάληψης. Τρεις εντολές επανάληψης. Επιλογή εντολής επανάληψης ΟΣΟ...ΕΠΑΝΑΛΑΒΕ. Σύνταξη στη ΓΛΩΣΣΑ

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

Απλά Προγράμματα. Βήματα: 1. Καθορισμός παράστασης δεδομένων στη μνήμη 2. Αλγόριθμος βήματα που περιγράφουν την επεξεργασία των δεδομένων

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

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

Προσέξτε πως η παράσταση μπορεί να περιλαμβάνει όχι μόνο μία τιμή ή μια άλλη μεταβλητή αλλά μια ολόκληρη μαθηματική παράσταση, όπως η εξής:

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον. Εκχώρηση Τιμών

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

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

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

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

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

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

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

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

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

ΑΣΚΗΣΗ 6: ΔΕΙΚΤΕΣ. Σκοπός της Άσκησης. 1. Εισαγωγικά στοιχεία για τους Δείκτες

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

Εισαγωγή στον προγραμματισμό. Τμήμα Πληροφορικής & Επικοινωνιών ΤΕΙ Σερρών Εργαστήριο 4

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

ΑΣΚΗΣΗ 3: ΠΡΟΤΑΣΕΙΣ, ΕΚΦΡΑΣΕΙΣ ΚΑΙ ΤΕΛΕΣΤΕΣ

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

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

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

3.1 Αριθμητικοί και Λογικοί Τελεστές, Μετατροπές Τύπου (Casting)

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

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

Εισαγωγή στον Προγραµµατισµό. Πανεπιστήµιο Θεσσαλίας Τµήµα Ηλεκτρολόγων Μηχανικών και Μηχανικών Η/Υ

Κεφαλαιο 2.2 ΑΝΑΚΕΦΑΛΑΙΩΤΙΚΕΣ ΑΛΓΟΡΙΘΜΟΙ

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

ΦΥΛΛΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ 1

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ Κεφάλαιο 2 ο Να περιγραφεί η δομή επανάληψης Αρχή_επανάληψης Μέχρις_ότου

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

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

Χαράλαµπος Σκόκος ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ I ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ C ΕΞΕΤΑΣΕΙΣ ΧΕΙΜΕΡΙΝΟΥ ΕΞΑΜΗΝΟΥ Ερωτήσεις

6. ΠΙΝΑΚΕΣ & ΑΛΦΑΡΙΘΜΗΤΙΚΑ

Transcript:

4. ΒΡΟΧΟΙ ΕΠΑΝΑΛΗΨΗΣ (Α' μέρος: for) 4.1 Μετρητές Ένας μετρητής (counter) είναι μία μεταβλητή η οποία ξεκινά με μία αρχική τιμή και αυξάνεται κατά ένα κάθε φορά που εκτελείται. Ο αλγόριθμος για έναν μετρητή είναι: μεταβλητή = μεταβλητή + 1 Το παραπάνω είναι απόλυτα νόμιμο στον προγραμματισμό με υπολογιστές αν και μαθηματικά η παραπάνω έκφραση είναι αναληθής. Ο υπολογιστής υπολογίζει την έκφραση που βρίσκεται στα δεξιά πρώτα και κατόπιν εκχωρεί το αποτέλεσμα της στη μεταβλητή που κατονομάζεται στα αριστερά. Αριστερά και δεξιά του ίσον μπορεί να υπάρχει η ίδια μεταβλητή. Παράδειγμα: Ξεκινάμε με μια μεταβλητή count και θα της δώσουμε μια τιμή 0: int count=0; Εάν εκτελέσουμε την οδηγία: count=count +1; // Σημαίνει count = 0+1 άρα count=1 Εάν εκτελέσουμε ξανά την οδηγία: count=count +1; // Σημαίνει count = 1+1 άρα count=2 κλπ... Εάν τώρα εκχωρήσουμε στη μεταβλητή count τη τιμή 1, δηλαδή: int count=1; Εάν εκτελέσουμε την οδηγία: count=count +5; // Σημαίνει count = 1+5 άρα count=6 Εάν εκτελέσουμε ξανά την οδηγία: count=count +5; // Σημαίνει count = 6+5 άρα count=11 κλπ... Για να εκτελέσουμε μείωση, αλλάζουμε απλά την εντολή σε : μεταβλητή = μεταβλητή 1; Κάθε φορά που θα εκτελείται αυτή η πράξη, η τιμή της μεταβλητής θα μειώνεται κατά ένα. 4.2 Τελεστές Αύξησης Μείωσης Οι μετρητές χρησιμοποιούνται τόσο συχνά, που η C διαθέτει ειδικούς τελεστές για την αύξηση και μείωση της τιμής μιας μεταβλητής. Ο τελεστής ++ μεταβλητή προσθέτει 1 στην τιμή της μεταβλητής πριν εκτελεστεί η οδηγία. Έτσι, όταν εκτελείται η εντολή μεταβλητή++; ή η εντολή ++μεταβλητή; είναι σα να εκτελείται η εντολή : μεταβλητή = μεταβλητή + 1; 1

Θα δούμε στα παραδείγματα τη διαφορά ανάμεσα στο μεταβλητή++; και στο ++μεταβλητή; Παράδειγμα 1: int count=0; printf("the first count is %d\n", count); printf("the second count is %d\n", ++count); printf("the last value of count was %d\n", count); The first count is 0 The second count is 1 The last value of count was 1 Η εντολή που γράψαμε προηγουμένως printf("the second count is %d\n", ++count); είναι σα να γράφαμε τις επόμενες δύο εντολές με την παρακάτω σειρά: count=count+1; printf("the second count is %d\n", count); Δηλαδή, πρώτα αυξάνει την τιμή της count και μετά κάνει ότι του ζητάει η εντολή. Ας τροποποιήσουμε το προηγούμενο πρόγραμμα. για να δούμε τι συμβαίνει όταν ο τελεστής αύξησης μπει μετά το όνομα της μεταβλητής. Παράδειγμα 2: void main( ) int count=0; printf("the first count is %d\n", count); printf("the second count is %d\n", count++); printf("the last value of count was %d\n", count); The first count is 0 The second count is 0 The last value of count was 1 Η εντολή που γράψαμε προηγουμένως printf ("The second count is %d\n", count++); είναι σα να γράφαμε τις επόμενες δύο εντολές με την παρακάτω σειρά: printf ("The second count is %d\n", count); 2

count=count+1; Δηλαδή, πρώτα κάνει ότι του ζητάει η εντολή και μετά αυξάνει την τιμή της count. Παράδειγμα 3: void main() int number=3; int storage; storage = number++; printf("the original value was %d\n", storage); printf("the new value is %d\n ", number); The original value was 3 The new value is 4 Ουσιαστικά, αυτό που συμβαίνει είναι η στη μεταβλητή storage, να εκχωρείται η αρχική τιμή της μεταβλητής number και στη συνέχεια η μεταβλητή number, λόγω του τελεστή εκχώρησης να αυξάνεται κατά ένα. Παράδειγμα 4: (το ίδιο παράδειγμα αλλαγμένο) void main() int number=3; int storage; storage = ++number; printf("the original value was %d\n", storage); printf("the new value is %d\n ", number); The original value was 4 The new value is 4 ΠΡΟΣΟΧΗ!!! Άρα, είναι σημαντικό να βλέπουμε αν ο τελεστής αύξησης είναι πριν ή μετά το όνομα της μεταβλητής. Αν είναι πριν κάνουμε πρώτα την αύξηση και μετά οτιδήποτε άλλο, αλλιώς αν είναι μετά κάνουμε τα υπόλοιπα και μετά την αύξηση. Σημείωση Ο τελεστής αύξησης αν είναι μόνος του ως εντολή και στις δύο προηγούμενες περιπτώσεις, απλά αυξάνει την τιμή. Άρα το count++; και ++count; απλά αυξάνουν την τιμή της count κατά 1. 3

Τελεστής Μείωσης Ο τελεστής μείωσης λειτουργεί με τον ίδιο τρόπο, αλλά μειώνει την τιμή της μεταβλητής κατά 1 και γράφεται Άρα το count--; και --count; απλά μειώνουν την τιμή της count κατά 1. 4.3 Ο βρόχος for Η C και η C++ έχουν μερικές (τρεις) ξεχωριστές δομές, γνωστές σαν βρόχους (loops), για τον έλεγχο της επανάληψης στα προγράμματα. Κάθε βρόχος μπορεί να επαναλάβει μια οδηγία ή μία σειρά οδηγιών ή ένα ολόκληρο πρόγραμμα. Τον βρόχο for τον χρησιμοποιούμε όταν ξέρουμε ακριβώς τον αριθμό των επαναλήψεων που θέλουμε να εκτελέσουμε. Η δομή του βρόχου for είναι: for(αρχικοποίηση_μεταβλητής; συνθήκη; βήμα) εντολές βρόχου; Παρατηρήστε ότι το ελληνικό ερωτηματικό δεν τοποθετείται μετά από την παράμετρο for. Ωστόσο, τα τρία στοιχεία μέσα στην παράμετρο πρέπει να διαχωρίζονται με ελληνικά ερωτηματικά. Για παράδειγμα, το ακόλουθο πρόγραμμα χρησιμοποιεί ένα βρόχο for για να εκτυπώσει τους αριθμούς 1 έως 10 προς τα κάτω στην οθόνη. Παράδειγμα 1: int repeat; for(repeat =1; repeat <=10; repeat++) printf("%d\n", repeat); Ο βρόχος ελέγχεται από τη μεταβλητή με όνομα repeat. Μπορείτε να χρησιμοποιείτε οποιοδήποτε όνομα για τη μεταβλητή, αλλά θα πρέπει υποχρεωτικά να είναι τύπου ακεραίου. Η παράμετρος for διαιρείται στα ακόλουθα τμήματα: repeat = 1 // Αρχικοποίηση μεταβλητής repeat < = 10 // Συνθήκη για επανάληψη του βρόχου, // όσο η συνθήκη ισχύει ο βρόχος επαναλαμβάνεται 4

repeat++ // Βήμα αύξησης της μεταβλητής μετά από κάθε επανάληψη. Την πρώτη φορά που ξεκινάει ο βρόχος: Αρχικοποιείται η μεταβλητή (δηλαδή, η μεταβλητή παίρνει τιμή ίση με το πρώτο στοιχείο που υπάρχει μέσα στη for) και μετά εξετάζεται η συνθήκη (δεύτερο στοιχείο μέσα στη for). Αν η συνθήκη ισχύει, εκτελούνται οι εντολές μέσα στο βρόχο, αλλιώς αν δεν ισχύει, τότε βγαίνει από το βρόχο, δηλαδή το πρόγραμμα συνεχίζεται κάτω από το τελευταίο άγκιστρο που περιλαμβάνει τις εντολές του βρόχου. Αν τελικά, η συνθήκη είναι αληθής (δηλαδή ισχύει), τότε αφού εκτελεστούν οι εντολές μέσα στα άγκιστρα της for, το πρόγραμμα ξαναγυρίζει στη for, αλλά αυτή τη φορά αλλάζει την τιμή της μεταβλητής σύμφωνα με το βήμα(τρίτο στοιχείο μέσα στη for). Αμέσως μετά, εξετάζει πάλι τη συνθήκη (δεύτερο στοιχείο μέσα στη for) για τη νέα τιμή και αν είναι αληθής ξαναεκτελεί τις εντολές του βρόχου, αλλιώς βγαίνει από το κομμάτι ελέγχου της for. Αυτό συμβαίνει μέχρι η τιμή της μεταβλητής να μην ικανοποιεί πια τη συνθήκη και τελικά να βγούμε έξω από τα άγκιστρα της εντολής for. Ακολουθεί ένα πρόγραμμα το οποίο μετατρέπει 23 διαδοχικές θερμοκρασίες Fahrenheit (από 110 μέχρι 132) σε βαθμούς Κελσίου: Παράδειγμα 2: int temp; double celsius; for(temp=110; temp<=132; temp++) celsius = (5.0/9.0)*(temp-32); printf("%d farenait antistoixoun se %6.2f Kelsiou\n",temp, celsius); 110 farenait antistoixoun se 43.33 Kelsiou 111 farenait antistoixoun se 43.89 Kelsiou... 132 farenait antistoixoun se 55.56 Kelsiou Το βήμα δεν είναι αναγκαστικά πάντα της μορφής μεταβλητή++, όπως φαίνεται και στο παράδειγμα που ακολουθεί, που οι τιμές αυξάνουν ανά 5, για όσο ισχύει η συνθήκη. Παράδειγμα 3: 5

int metritis, tetragwno; for(metritis=1; metritis<=18; metritis=metritis+5) tetragwno = metritis*metritis; printf("%3d*%3d=%4d\n",metritis,metritis,tetragwno); 1* 1= 1 6* 6= 36 11* 11= 121 16* 16= 256 Να σημειώσουμε ότι τελειώνοντας το βρόχο η μεταβλητή metritis, θα έχει πάρει την τιμή 21, που είναι η πρώτη που δεν ικανοποιεί τη συνθήκη. Ακολουθεί ένα πρόγραμμα, όπου η συνθήκη δεν εξαρτάται από σταθερό αριθμό, αλλά από μια άλλη μεταβλητή (έχουμε τη δυνατότητα να το κάνουμε αυτό). Το πρόγραμμα αναφέρεται στη μαθηματική έννοια του παραγοντικού. Το παραγοντικό ενός αριθμού είναι το γινόμενο όλων των αριθμών από το 1 μέχρι τον αριθμό που θέλουμε και συμβολίζεται ως arithmos! (Διαβάζεται arithmos παραγοντικό) Για παράδειγμα: 5!=1*2*3*4*5=120 Τον αριθμό θα τον πληκτρολογεί ο χρήστης και το πρόγραμμα θα βγάζει το αποτέλεσμα. Παράδειγμα 4: int arithmos, paragontiko, metritis; paragontiko=1; printf("dwse ton arithmo pou thes to paragontiko tou\n"); scanf("%d", &arithmos); for(metritis=1; metritis<=arithmos; metritis++) paragontiko= paragontiko*metritis; printf("%d! = %d\n",arithmos, paragontiko); Dwse ton arithmo pou thes to paragontiko tou Αν ο χρήστης δώσει τον αριθμό... 6 Θα εμφανιστεί 6

6! = 720 Εδώ, παρατηρούμε ότι η συνθήκη εξαρτάται από τη μεταβλητή arithmos και όχι κάποιο σταθερό νούμερο. Να σημειωθεί ότι όπως και στην if, αν περιλαμβάνεται μόνο μια εντολή μέσα στο βρόχο της for δε χρειαζόμαστε τα άγκιστρα. Άρα και αντίστροφα, αν δεν έχουμε άγκιστρα, τότε το πρόγραμμα καταλαβαίνει πως μόνο μια (η αμέσως επόμενη εντολή) περιλαμβάνεται στη for. Οι φωλιασμένοι βρόχοι for Όταν μία εντολή for εκτελείται μέσα από μία άλλη εντολή for, τότε αυτές θεωρούνται φωλιασμένες. Ο εσωτερικός βρόχος επαναλαμβάνεται ολόκληρος όσες φορές μας λέει δηλαδή η συνθήκη του εσωτερικού βρόχου για κάθε μια επανάληψη του εξωτερικού βρόχου. Παράδειγμα 1 int row, column; for(row=1; row <=5 ;row++) printf("\n %d-i epanalipsi tou exwterikou vroxou\n ", row) ; // στον εξωτερικό βρόχο και όχι τον εσωτερικό for (column=1; column<=3;column++) printf("\t%d ", column) ; 1-i epanalipsi tou exwterikou vroxou 2-i epanalipsi tou exwterikou vroxou 3-i epanalipsi tou exwterikou vroxou 4-i epanalipsi tou exwterikou vroxou 5-i epanalipsi tou exwterikou vroxou 7

Αρχικά, με βάση των εξωτερικό βρόγχο που εκτελείται γράφει το κείμενο 1-i epanalipsi tou exwterikou vroxou. Ο αριθμός 1 στην αρχή είναι ο αριθμός της μεταβλητής row. Μετά, φαίνεται πως κάθε εσωτερικός βρόχος κάνει μια σειρά που αποτελείται από την τιμή που έχει κάθε φορά η μεταβλητή column και αφήνοντας λίγο χώρο επειδή υπάρχει το tab \t. Άρα, φτιάχνει τη γραμμή: Βγαίνοντας από τον εξωτερικό βρόγχο πάει να ελέγξει αν η τιμή του νέου row ικανοποιεί τη συνθήκη. Τότε το row=2 αφού αυξάνεται κατά ένα. Γράφει λοιπόν 2-i epanalipsi tou exwterikou vroxou. Μετά ξανακάνει το ίδιο με τον εσωτερικό βρόγχο όπως από πάνω φτιάχνοντας τη γραμμή: 4.4 Οι εντολές continue & break Αν θέλουμε να βγούμε από ένα βρόγχο, μπορούμε να χρησιμοποιήσουμε την εντολή break. Με το που θα βρει την εντολή, το πρόγραμμα θα σταματήσει αυτόματα το βρόχο και θα συνεχίσει να εκτελεί τις εντολές μετά το loop(άρα μετά το τελευταίο άγκιστρο της εντολής επανάληψης) Παράδειγμα 1 #include<stdio.h> void main() int i; for(i=0;i<10;++i) if ( i == 5) break; printf("%d \n",i); 0 1 2 3 4 Μόλις το i, έγινε ίσο με 5 η εντολή for, σταμάτησε να εκτελείται κι ας μην έχουμε φτάσει ακόμα στο σημείο όπου δεν ισχύει η συνθήκη (δηλαδή i=10) Αν θέλουμε σε ένα βρόγχο, για κάποια συγκεκριμένη τιμή του μετρητή να μην εκτελεστούν κάποιες εντολές, αλλά η επανάληψη να συνεχίσει κανονικά για τις 8

υπόλοιπες τιμές μέχρι να μην ισχύει πια η εντολή επανάληψης του βρόχου, μπορούμε να χρησιμοποιήσουμε την εντολή continue. Με το που θα βρει την εντολή, το πρόγραμμα μόνο για τη συγκεκριμένη τιμή του μετρητή, δε θα εκτελέσει τις υπόλοιπες εντολές, αλλά θα πάει ξανά στη for, για να πάρει την επόμενη τιμή ο μετρητής(με βάση το βήμα). Παράδειγμα 2 #include<stdio.h> void main() int i; for(i=0;i<10;++i) if ( i == 5) continue; printf("%d\n",i); 0 1 2 3 4 // (δεν υπάρχει το νούμερο 5) 6 7 8 9 10 Αυτό οφείλεται στο ότι μόλις το i, έγινε ίσο με 5 η εντολή for, δεν εκτέλεσε τις επόμενες εντολές, αλλά πήρε την επόμενη τιμή του μετρητή(i=6) και συνέχισε κανονικά το πρόγραμμα. 9

4.5 Ασκήσεις ΑΣΚΗΣΗ 1: Να πληκτρολογήσετε το παρακάτω πρόγραμμα που τυπώνει το κανόνα της προπαίδειας. Το πρόγραμμα εκτελεί 10 εξωτερικούς και 10 εσωτερικούς βρόχους για τη δημιουργία του πίνακα. int row, column; printf ("\t\t O pinakas tis propaideias \n\n") ; for(row=1; row <=10;row++) for(column=1; column<=10;column++) printf("%4d\t", row*column); printf("\n") ; system("pause"); ΑΣΚΗΣΗ 2: Να πληκτρολογήσετε το παρακάτω πρόγραμμα που αθροίζει τους x πρώτους ακέραιους αριθμούς (1+2+3+4+5+6+.), όπου τον αριθμό x να τον πληκτρολογεί ο χρήστης. Υπόδειξη: Θα χρειαστείτε μια ακόμα μεταβλητή για να αποθηκεύεται τις προσθέσεις, όπως έγινε παραπάνω με το παράδειγμα στο παραγοντικό. (Παραδ. 4, σελ. 6) ΑΣΚΗΣΗ 3: Να δημιουργήσετε πρόγραμμα που να αθροίζει τα τετράγωνα των ν πρώτων ακεραίων αριθμών (1 2 +2 2 +3 2 +4 2 +..). Το ν να το δίνεται από το πληκτρολόγιο. Πάλι, θα χρειαστείτε μια ακόμα μεταβλητή για το άθροισμα. ΑΣΚΗΣΗ 4: Να δημιουργήσετε πρόγραμμα που να δέχεται από το πληκτρολόγιο 10 θερμοκρασίες Fahrenheit και να τις μετατρέπει σε βαθμούς Κελσίου. ΑΣΚΗΣΗ 5: Να γραφεί πρόγραμμα που να εμφανίζει τη σειρά αστερίσκων που φαίνεται στην εικόνα * ** *** **** ***** ****** 10