Εντολή επανάληψης Το άθροισμα των αριθμών 1 5 υπολογίζεται με την εντολή Πρόβλημα Πώς θα υπολογίσουμε το άθροισμα των ακέραιων 1 5000;
Ισοδύναμοι υπολογισμοί του
Ισοδύναμοι υπολογισμοί του
Ισοδύναμοι υπολογισμοί του
Παράδειγμα Εκτύπωση των αριθμών 1 5 στην οθόνη:
Παράδειγμα Εκτύπωση των αριθμών 1 5 στην οθόνη:
Παράδειγμα Εκτύπωση των αριθμών 1 5 στην οθόνη:
Εντολή επανάληψης για συγκεκριμένο αριθμό επαναλήψεων Σύνταξη μεταβλητή = αρχική τιμή, τελική τιμή, βήμα αύξησης εντολές όπου Η «μεταβλητή» είναι ακέραια Τα «αρχική τιμή», «τελική τιμή», «βήμα αύξησης» είναι ακέραιες ποσότητες (σταθερές ή μεταβλητές ή εκφράσεις) Το «βήμα αύξησης» είναι θετικό ή αρνητικό Μπορεί να παραλείπεται (και θεωρείται 1) Η «μεταβλητή» δεν επιτρέπεται να αλλάξει τιμή μέσα στο σώμα
Εντολή επανάληψης για συγκεκριμένο αριθμό επαναλήψεων Εκτέλεση μεταβλητή = αρχική τιμή, τελική τιμή, βήμα αύξησης εντολές 1 η «μεταβλητή» αποκτά την «αρχική τιμή» 2 ελέγχεται αν με διαδοχικές προσθέσεις του «βήματος αύξησης» στη «μεταβλητή» μπορούμε να φτάσουμε ή να ξεπεράσουμε την «τελική τιμή» Αν όχι, διακόπτεται η επανάληψη Αν ναι, εκτελούνται οι εντολές στο σώμα 3 Προστίθεται στη «μεταβλητή» το «βήμα αύξησης» και επαναλαμβάνεται το βήμα 2
Παραδείγματα επανάληψης (1/3) Το γινόμενο των άρτιων ακέραιων αριθμών μεταξύ 2 8 ( ):
Παραδείγματα επανάληψης (1/3) Το γινόμενο των άρτιων ακέραιων αριθμών μεταξύ 2 8 ( ):
Παραδείγματα επανάληψης (1/3) Το γινόμενο των άρτιων ακέραιων αριθμών μεταξύ 2 8 ( ):
Παραδείγματα επανάληψης (2/3) Άθροισμα των ακεραίων αριθμών από το 1 ως το 100:
Παραδείγματα επανάληψης (2/3) Άθροισμα των ακεραίων αριθμών από το 1 ως το 100: Εκτύπωση των αριθμών 99, 97, 95,, 3, 1, (με αυτή τη σειρά):
Παραδείγματα επανάληψης (3/3) Εκτύπωση των αριθμών 00, 01, 02,, 99, 100: Είναι ΛΑΘΟΣ το
Παραδείγματα επανάληψης (3/3) Εκτύπωση των αριθμών 00, 01, 02,, 99, 100: Είναι ΛΑΘΟΣ το Το ΣΩΣΤΟ είναι
Πότε χρησιμοποιούμε εντολή ; Αν έχουμε εντολές που επαναλαμβάνονται και μπορούν να γραφούν στη μορφή «ακέραια μεταβλητή» = «ακέραια μεταβλητή» + «βήμα αύξησης» σύνολο εντολών, εξαρτώμενων ή μη από την «ακέραια μεταβλητή», αλλά με την ίδια μορφή ανεξάρτητα από την τιμή της μεταβλητής, τότε χρησιμοποιούμε την εντολή που παρουσιάσαμε
Εφαρμογή: Μετρητής Ορισμός Μια ακέραια μεταβλητή που Ακριβώς πριν το τη μηδενίζουμε, Μέσα στις εντολές του την αυξάνουμε κατά ένα όταν ικανοποιείται κάποια λογική έκφραση, Μετά το έχει τιμή το πόσες φορές στο διάστημα μεταβολής της μεταβλητής ελέγχου ήταν αληθής η λογική έκφραση
Εφαρμογή: Μετρητής Παράδειγμα Το πλήθος των ακέραιων στο διάστημα [5, 108] που είναι πολλαπλάσιοι του 2 ή του 3 υπολογίζεται στο μετρητή :
Εφαρμογή: Λογικός «μετρητής» Αν ενδιαφερόμαστε όχι για το πόσες φορές αληθεύει μία συνθήκη αλλά μόνο για το αν αληθεύει, χρησιμοποιούμε ως «μετρητή» μια μεταβλητή λογικού τύπου Αμέσως πριν την εντολή δίνουμε μια τιμή ( ή ) και μέσα στο αλλάζει όταν ικανοποιηθεί κάποια συνθήκη
Εφαρμογή: Λογικός «μετρητής» Αν ενδιαφερόμαστε όχι για το πόσες φορές αληθεύει μία συνθήκη αλλά μόνο για το αν αληθεύει, χρησιμοποιούμε ως «μετρητή» μια μεταβλητή λογικού τύπου Αμέσως πριν την εντολή δίνουμε μια τιμή ( ή ) και μέσα στο αλλάζει όταν ικανοποιηθεί κάποια συνθήκη Παράδειγμα Υπάρχει πολλαπλάσιο του 912 στο διάστημα [4000, 5000];
Υπολογισμός αθροίσματος Κώδικας Το άθροισμα j a k = a i + a i+1 + a i+2 + + a j k=i (i,j ακέραια) υπολογίζεται προσθέτοντας σε μια πραγματική μεταβλητή έναν-έναν τους όρους: Στο γράφουμε τον κώδικα που εκφράζει τον όρο a k
Υπολογισμός αθροίσματος Παράδειγμα Υπολογισμός του αθροίσματος 10 k=1 1 k 2 = 1 1 2 + 1 2 2 + + 1 10 2
Υπολογισμός αθροίσματος Παράδειγμα Υπολογισμός του αθροίσματος 10 k=1 1 k 2 = 1 1 2 + 1 2 2 + + 1 10 2 Παρατήρηση Γιατί όχι ;
Υπολογισμός γινομένου Κώδικας Το γινόμενο j a k = a i a i+1 a i+2 a j k=i (i,j ακέραια) υπολογίζεται πολλαπλασιάζοντας σε μια πραγματική μεταβλητή έναν-έναν τους όρους: Στο γράφουμε τον κώδικα που εκφράζει τον όρο a k
Υπολογισμός γινομένου Παράδειγμα Το παραγοντικό, n!, ενός μη αρνητικού ακέραιου n είναι n 1 2 3 (n 1) n = k, n > 0, n! = k=1 1, n = 0
Υπολογισμός γινομένου Παράδειγμα Το παραγοντικό, n!, ενός μη αρνητικού ακέραιου n είναι n! = n 1 2 3 (n 1) n = k, n > 0, k=1 1, n = 0 Υπολογίζεται στη μεταβλητή με τον κώδικα Πόσο είναι το όταν το n είναι 0;
Υπολογισμός διπλού αθροίσματος Κώδικας Το άθροισμα j k=i m=p n a km = ( j n ) a km k=i m=p (i,j,p,n ακέραια) υπολογίζεται ως εξής:
Υπολογισμός διπλού αθροίσματος Κώδικας Το άθροισμα j k=i m=p n a km = ( j n ) a km k=i m=p (i,j,p,n ακέραια) υπολογίζεται ως εξής: Στο γράφουμε τον κώδικα που εκφράζει τον όρο a km
Εντολή για απροσδιόριστο αριθμό επαναλήψεων Σύνταξη εντολές (λογική_έκφραση) εντολές Οι εντολές που περικλείονται στα εκτελούνται για πάντα Πρέπει να διακόψουμε την επανάληψη («βγαίνουμε» από το ) όταν κάποια λογική έφραση γίνει αληθής, εκτελώντας την εντολή
Εντολή για απροσδιόριστο αριθμό επαναλήψεων Παράδειγμα Επιθυμούμε να διαβάσουμε έναν πραγματικό αριθμό και να προχωρήσουμε μόνο αν είναι θετικός: Όσο ο χρήστης δίνει μη θετικούς αριθμούς, οι εντολές θα επαναλαμβάνονται
Βοηθητικές εντολές Εμφανίζονται μόνο μέσα σε με ή χωρίς μεταβλητή ελέγχου: Όταν εκτελεστεί, προκαλεί την έξοδο από το βρόχο που την περικλείει Η επόμενη εντολή που εκτελείται είναι αυτή που ακολουθεί το
Βοηθητικές εντολές Εμφανίζονται μόνο μέσα σε με ή χωρίς μεταβλητή ελέγχου: Όταν εκτελεστεί, προκαλεί την έξοδο από το βρόχο που την περικλείει Η επόμενη εντολή που εκτελείται είναι αυτή που ακολουθεί το Όταν εκτελεστεί, παραλείπει τις εντολές που την ακολουθούν και πηγαίνει στο Το επόμενο βήμα που εκτελείται είναι η αύξηση της μεταβλητής ελέγχου Σε χωρίς μεταβλητή ελέγχου ξαναρχίζει την επανάληψη
Βοηθητικές Εντολές Παράδειγμα Θέλουμε να τυπώσουμε 10 τετραγωνικές ρίζες των αριθμών εισόδου, αγνοώντας τους αρνητικούς: απορρίπτουμε το x