Εισαγωγή στον Προγραμματισμό Η/Υ (Fortran 90/95/2003)

Σχετικά έγγραφα
Εντολές Επανάληψης. Επικ. Καθ. Ν. Καραµπετάκης, Τµήµα. Τµήµα Μαθηµατικών, Α.Π.Θ.

Εισαγωγή στον Προγραμματισμό Η/Υ (Fortran 90/95/2003)

Εισαγωγή στον Προγραμματισμό Η/Υ (Fortran 90/95/2003)

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

Προγραμματισμός και Εφαρμογές Υπολογιστών

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική

Εισαγωγή στον Προγραμματισμό Η/Υ (Fortran 90/95/2003)

Γενικά Μαθηματικά Ι. Ενότητα 12: Κριτήρια Σύγκλισης Σειρών. Λουκάς Βλάχος Τμήμα Φυσικής ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

Λογισμός 3. Ενότητα 19: Θεώρημα Πεπλεγμένων (γενική μορφή) Μιχ. Γ. Μαριάς Τμήμα Μαθηματικών ΑΝΟΙΚΤΑ ΑΚΑ ΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

Προγραμματισμός Η/Υ. Βασικές Προγραμματιστικές Δομές. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος

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

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

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

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

Κλασσική Θεωρία Ελέγχου

Ενότητα 6: Ακρότατα συναρτησιακών διανυσματικών συναρτήσεων. Νίκος Καραμπετάκης Τμήμα Μαθηματικών

ΥΠΟΛΟΓΙΣΤΕΣ ΙI. Άδειες Χρήσης. Εντολές for, while, do-while Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης

Διδακτική της Πληροφορικής

Τεχνικές Προγραμματισμού και Χρήση Λογισμικού Η/Υ στις Κατασκευές

Προγραμματισμός H/Y Ενότητα 2: Εντολές ελέγχου ροής. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Γενικά Μαθηματικά Ι. Ενότητα 15: Ολοκληρώματα Με Ρητές Και Τριγωνομετρικές Συναρτήσεις Λουκάς Βλάχος Τμήμα Φυσικής

Γενικά Μαθηματικά Ι. Ενότητα 1: Συναρτήσεις και Γραφικές Παραστάσεις. Λουκάς Βλάχος Τμήμα Φυσικής ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

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

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

ΑΡΙΣΤΟΤΕΛΕΙΟ ΑΝΟΙΚΤΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΚΑΔΗΜΑΪΚΑ ΘΕΣΣΑΛΟΝΙΚΗΣ ΜΑΘΗΜΑΤΑ Γενικά Μαθηματικά Ι Ενότητα 11 : Ακολουθίες και Σειρές Λουκάς Βλάχος Τμήμα Φυσικής

Γενικά Μαθηματικά Ι. Ενότητα 7: Σειρές Taylor, Maclaurin. Λουκάς Βλάχος Τμήμα Φυσικής ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

Μαθηματικά Και Στατιστική Στη Βιολογία

Τμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Δομή Επανάληψης. Ιωάννης Λυχναρόπουλος Μαθηματικός, MSc, PhD

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

Προγραμματισμός και Εφαρμογές Υπολογιστών

Εκκλησιαστικό Δίκαιο. Ενότητα 10η: Ιερά Σύνοδος της Ιεραρχίας και Διαρκής Ιερά Σύνοδος Κυριάκος Κυριαζόπουλος Τμήμα Νομικής Α.Π.Θ.

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική

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

Λογισμός 3. Ενότητα 18: Θεώρημα Πεπλεγμένων (Ειδική περίπτωση) Μιχ. Γ. Μαριάς Τμήμα Μαθηματικών ΑΝΟΙΚΤΑ ΑΚΑ ΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

Προγραμματισμός Ηλεκτρονικών Υπολογιστών 2 - Εργαστήριο

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική

Άσκηση 1. Α. Υπολογίστε χωρίς να εκτελέσετε κώδικα FORTRAN τα παρακάτω: Ποιά είναι η τελική τιμή του Z στα παρακάτω κομμάτια κώδικα FORTRAN:

Κλασσική Θεωρία Ελέγχου

ΑΝΟΙΚΤΑ ΑΚΑ ΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ. Λογισμός 3. Ενότητα 13: Τύπος του Taylor. Μιχ. Γ. Μαριάς Τμήμα Μαθηματικών

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Ενότητα: ΔΟΜΕΣ ΕΠΑΝΑΛΗΨΗΣ ΚΥΡΟΠΟΥΛΟΣ ΚΩΝΣΤΑΝΤΙΝΟΣ. Τμήμα Διοίκηση Επιχειρήσεων (Κοζάνη)

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

Εισαγωγή στους Η/Υ. Ενότητα 2β: Αντίστροφο Πρόβλημα. Δημήτρης Σαραβάνος, Καθηγητής Πολυτεχνική Σχολή Τμήμα Μηχανολόγων & Αεροναυπηγών Μηχανικών

Ιστορία της μετάφρασης

Γενικά Μαθηματικά Ι. Ενότητα 14: Ολοκλήρωση Κατά Παράγοντες, Ολοκλήρωση Ρητών Συναρτήσεων Λουκάς Βλάχος Τμήμα Φυσικής

Μαθηματικά Διοικητικών & Οικονομικών Επιστημών

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

Υπόγεια Υδραυλική και Υδρολογία

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

Μοντέρνα Θεωρία Ελέγχου

Προγραμματισμός Η/Υ. 8 η ενότητα: Περιβαλλοντικά και μαθηματικά προβλήματα. Τμήμα. Τεχνολόγων Περιβάλλοντος. ΤΕΙ Ιονίων Νήσων

Γενικά Μαθηματικά Ι. Ενότητα 13: Ακτίνα Σύγκλισης, Αριθμητική Ολοκλήρωση, Ολοκλήρωση Κατά Παράγοντες. Λουκάς Βλάχος Τμήμα Φυσικής

Μοντέρνα Θεωρία Ελέγχου

Θεσμοί Ευρωπαϊκών Λαών Ι 19 ος -20 ος αιώνας

Εισαγωγή στην Πληροφορική & τον Προγραμματισμό

Μορφοποίηση της εξόδου

Προγραμματισμός και Εφαρμογές Υπολογιστών

Εκκλησιαστικό Δίκαιο

Εισαγωγή στους Υπολογιστές

Διδακτική της Πληροφορικής

Τίτλος Μαθήματος: Μαθηματική Ανάλυση Ενότητα Γ. Ολοκληρωτικός Λογισμός

ΔΡΔ: Διαγράμματα Ροής Δεδομένων

Θεσμοί Ευρωπαϊκών Λαών Ι 19 ος -20 ος αιώνας

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

Εισαγωγή στους Υπολογιστές

Μοντέρνα Θεωρία Ελέγχου

Κλασσική Θεωρία Ελέγχου

ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ. Λογισμός 4. Ενότητα 5: Το Θεώρημα του Fubini. Μιχ. Γ. Μαριάς Τμήμα Μαθηματικών

Γενικά Μαθηματικά Ι. Ενότητα 5: Παράγωγος Πεπλεγμένης Συνάρτησης, Κατασκευή Διαφορικής Εξίσωσης. Λουκάς Βλάχος Τμήμα Φυσικής

Μηχανολογικό Σχέδιο Ι

Οικονομία των ΜΜΕ. Ενότητα 7: Μορφές αγοράς και συγκέντρωση των ΜΜΕ

Εκκλησιαστικό Δίκαιο

Ιστορία των Μαθηματικών

Πληροφορική. Ενότητα 1: Α. Οργάνωση μαθήματος. Β. Στοιχεία Προγραμματισμού -Προγραμματιστικές Δομές, Πρόγραμμα, Γλώσσες.

Γενικά Μαθηματικά Ι. Ενότητα 17: Αριθμητική Ολοκλήρωση, Υπολογισμός Μήκους Καμπύλης Λουκάς Βλάχος Τμήμα Φυσικής ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ

Υπολογιστές Ι. Άδειες Χρήσης. Τύποι δεδομένων. Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης

Στατιστική. 6 ο Μάθημα: Διαστήματα Εμπιστοσύνης και Έλεγχοι Υποθέσεων. Γεώργιος Μενεξές Τμήμα Γεωπονίας ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ

Προγραμματισμός Η/Υ. 3 η ενότητα. Τμήμα. Τεχνολόγων Περιβάλλοντος. ΤΕΙ Ιονίων Νήσων. Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων

Προγραμματισμός Ηλεκτρονικών Υπολογιστών 2 - Εργαστήριο

Ιστορία των Μαθηματικών

Αλγόριθμοι και πολυπλοκότητα Δυναμικός Προγραμματισμός

Μοντέρνα Θεωρία Ελέγχου

Προγραμματισμός Η/Υ. Αλγόριθμοι. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος

ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ

ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ

Κλασσική Θεωρία Ελέγχου

ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ

Παράκτια Τεχνικά Έργα

ΓΕΝΙΚΗ ΚΑΙ ΑΝΟΡΓΑΝΗ ΧΗΜΕΙΑ

Κλασική Θεωρία Ελέγχου

Ιστορία των Μαθηματικών

Στατιστική. 5 ο Μάθημα: Βασικές Έννοιες Εκτιμητικής. Γεώργιος Μενεξές Τμήμα Γεωπονίας ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ

Προγραμματισμός και Εφαρμογές Υπολογιστών

Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών

Οικονομία των ΜΜΕ. Ενότητα 9: Εταιρική διασπορά και στρατηγικές τιμολόγησης

Κλασσική Θεωρία Ελέγχου

Λογισμός 4. Ενότητα 9: Παραδείγματα από άλλες αλλαγές. Μιχ. Γ. Μαριάς Τμήμα Μαθηματικών ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

Λογισμός 4 Ενότητα 10

Διδακτική Πληροφορικής

Γενικά Μαθηματικά Ι. Ενότητα 16: Ολοκλήρωση Τριγωνομετρικών Συναρτήσεων, Γενικευμένα Ολοκληρώματα Λουκάς Βλάχος Τμήμα Φυσικής

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

Transcript:

ΑΝΟΙΧΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ () Ενότητα 5: Εντολές Επανάληψης Νίκος Καραμπετάκης Τμήμα Μαθηματικών

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύπου άδειας χρήσης, η άδεια χρήσης αναφέρεται ρητώς. 2

Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα στο Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης» έχει χρηματοδοτήσει μόνο την αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους. 3

Περιεχόμενα Ενότητας 1. Η έννοια του μετρητή. 2. Ανακύκλωση και χρήση μετρητών σε προγράμματα. 3. Η εντολή DO. 4. Οι τρεις μορφές της DO-END DO. 5. Φωλιασμένες εντολές επανάληψης. 4

Σκοποί Ενότητας 1. Η ανάλυση της έννοιας ανακύκλωση. 2. Η παρουσίαση των μορφών της εντολής επανάληψης DO-END DO. 3. Η παρουσίαση του συνδυασμού των δύο ή παραπάνω εντολών επανάληψης DO-END DO (Φωλιασμένες εντολές επανάληψης). 5

Παραδείγματα που απαιτούν εντολές επανάληψης Παράδειγμα 1. Έστω ότι μας ζητείται να βρούμε το άθροισμα 10 αριθμών. Τότε θα πρέπει να εκτελέσουμε 10 φορές τις εξής ενέργειες : α) Δώσε έναν αριθμό, β) Πρόσθεσε τον αριθμό αυτόν σε μια μεταβλητή έστω S, την οποία θα χρησιμοποιούμε για να αποθηκεύουμε το συνολικό άθροισμα των αριθμών. Παράδειγμα 2. Έστω ότι θέλουμε να βρούμε το μέγιστο κοινό διαιρέτη (ΜΚΔ) δύο ακεραίων αριθμών α, β βάσει του τύπου ΜΚΔ(α β, β) α > β ΜΚΔ α, β = ΜΚΔ(α, β α) α < β Η παραπάνω διαδικασία θα πρέπει να επαναληφθεί ένα πλήθος φορών που δε γνωρίζουμε, έως ότου οι α, β να γίνουν ίσοι. 6

Ανακύκλωση και χρήση μετρητών σε προγράμματα 1. Η έννοια του μετρητή Παράδειγμα. Να γραφεί πρόγραμμα που θα υπολογίζει το μέσο όρο N αριθμών. S=0 10 READ*,Χ S=S+X GOTO 10 Εκτελείται άπειρες φορές! Χρειάζεται κάποιος να μετράει τον αριθμό φορών επανάληψης. Ο μετρητής : Μεταβλητή που αυξάνει κατά ένα κάθε φορά που εκτελείται μια επανάληψη. 7

Ανακύκλωση και χρήση μετρητών σε προγράμματα 2. Παράδειγμα με μετρητή Παράδειγμα. Να γραφεί πρόγραμμα που θα υπολογίζει το μέσο όρο N αριθμών. I=1 ; S=0 10 READ*,Χ S=S+X I=I+1 IF (I<=N) GOTO 10 PRINT*, MO=,S/N 8

Ανακύκλωση και χρήση μετρητών σε προγράμματα 3. Βήματα επίλυσης προβλημάτων με μετρητές Βήμα 1. Ζητώ πλήθος επαναλήψεων (Ν). Βήμα 2. Αρχικοποίηση παραμέτρων Ι=1 (Μετρητής επαναλήψεων) S=0 (Αθροιστής) P=1 (Πολλαπλασιαστής) PL=0 (Μετρητής πλήθους) Βήμα 3. Διάβασε δεδομένο (Χ). Βήμα 4. Επεξεργασία δεδομένων Χωρίς συνθήκη S=S+X (Άθροισμα) P=P*X (Γινόμενο) 9

Ανακύκλωση και χρήση μετρητών σε προγράμματα 3. Βήματα επίλυσης προβλημάτων με μετρητές ( συνέχεια) Βήμα 4. Επεξεργασία δεδομένων Με συνθήκη IF (συνθήκη) S=S+X IF (συνθήκη) P=P*X IF (συνθήκη) PL=PL+1 (Άθροισμα) (Γινόμενο) (Πλήθος) Βήμα 5. Αύξηση του μετρητή πλήθους κατά 1 (I=I+1) Βήμα 6. Έλεγχος αν τελείωσε η διαδικασία IF (I<=N) GOTO Βήμα 3 Βήμα 7. Εμφάνιση αποτελέσματος. ΠΡΟΣΟΧΗ. Μέσος όρος = Άθροισμα / Πλήθος 10

Παράδειγμα στο οποίο δεν απαιτείται κάποια συνθήκη Δίνονται Ν αριθμοί. Να υπολογιστεί : Α) το άθροισμά τους, Β) το γινόμενό τους. 11

Αλγόριθμος (χωρίς συνθήκη) Αρχή Δώσε N I=1 S=0 P=1 Δώσε X S=S+X P=P*X Αληθής I<=N Ψευδής Εμφάνισε S,P Τέλος 12

Πρόγραμμα (χωρίς συνθήκη) PROGRAM TEST IMPLICIT NONE INTEGER :: I,N REAL :: S,P,X PRINT*, ΔΩΣΕ ΠΛΗΘΟΣ ΑΡΙΘΜΩΝ =! BHMA 1 READ*,N I=1 ; S=0 ; P=1! ΒΗΜΑ 2 10 PRINT*, ΔΩΣΕ ΑΡΙΘΜΟ =! ΒΗΜΑ 3 READ*,X S=S+X! BHMA 4 P=P*X Ι=I+1! ΒΗΜΑ 5 IF (I<=N) GOTO 10! ΒΗΜΑ 6 PRINT*, ΑΘΡΟΙΣΜΑ ΑΡΙΘΜΩΝ =,S! ΒΗΜΑ 7 PRINT*, ΓΙΝΟΜΕΝΟ ΑΡΙΘΜΩΝ=,Ρ ΕΝD PROGRAM TEST 13

Παράδειγμα στο οποίο απαιτείται κάποια συνθήκη Δίνονται Ν ακέραιοι αριθμοί. Να υπολογιστεί α) το άθροισμα των αριθμών που είναι μέσα στο κλειστό διάστημα [-10,10], β) το γινόμενο των αριθμών που είναι εκτός του διαστήματος [- 1,1], γ) το πλήθος των αριθμών που είναι άρτιοι. 14

Αλγόριθμος (με συνθήκη) Αρχή Δώσε N I=1 S=0 P=1 PL=0 Δώσε X X>=-10 & X<=10 ΝΑΙ S=S+X ΟΧΙ X<-1 ή X>1 ΝΑΙ P=P*X ΟΧΙ X άρτιος ΝΑΙ PL=PL+1 ΟΧΙ I=I+1 I<=N Εμφάνισε S,P Τέλος 15

Πρόγραμμα (με συνθήκη) PROGRAM TEST IMPLICIT NONE INTEGER :: I,N REAL :: S,P,X PRINT*, ΔΩΣΕ ΠΛΗΘΟΣ ΑΡΙΘΜΩΝ =! BHMA 1 READ*,N I=1 ; S=0 ; P=1 ; PL=0! ΒΗΜΑ 2 10 PRINT*, ΔΩΣΕ ΑΡΙΘΜΟ =! ΒΗΜΑ 3 READ*,X IF ((X>=-10).AND.(X<=10)) S=S+X! BHMA 4 IF ((X>1).OR.(X<-1)) P=P*X IF (MOD(X,2)==0) PL=PL+1 16

Πρόγραμμα (με συνθήκη) ( συνέχεια) Ι=I+1! ΒΗΜΑ 5 IF (I<=N) GOTO 10! ΒΗΜΑ 6 PRINT*, ΑΘΡΟΙΣΜΑ ΑΡΙΘΜΩΝ ΣΤΟ [-10,10] =,S! ΒΗΜΑ 7 PRINT*, ΓΙΝΟΜΕΝΟ ΑΡΙΘΜΩΝ ΕΚΤΟΣ ΤΟΥ [-1,1] =,Ρ PRINT*, ΠΛΗΘΟΣ ΑΡΤΙΩΝ ΑΡΙΘΜΩΝ =,ΡL ΕΝD PROGRAM TEST 17

Η εντολή DO Σύνταξη Σύνταξη : [όνομα :] DO [label] δήλωση Σύνολο εντολών Δήλωση του τέλους της DO δήλωση : Κενό ή Μεταβλητή =αρχική τιμή, τελική τιμή [, βήμα] ή WHILE (λογική έκφραση) δήλωση τέλους : END DO [όνομα] ή Label εντολή (εκτός από GOTO, RETURN, STOP, EXIT, CYCLE, IF, END). 18

Η πρώτη μορφή της DO-END DO Σύνταξη : DO Σύνολο εντολών END DO Σκοπός : Η ατέρμονη εκτέλεση ενός συνόλου εντολών. Παράδειγμα. Κ=0 DO K=K+1 PRINT*,K IF (K>5) EXIT END DO 19

Παραδείγματα της DO-END DO CHARACTER (10) :: USERNAME,PASSWORD DO END DO DO END DO PRINT*, USERNAME= READ*,USERNAME PRINT*, PASSWORD= READ*,PASSWORD IF ((USERNAME== NIKOS ).AND.(PASSWORD== 12345 ) EXIT IF (I>5) EXIT PRINT*,I! ΑΤΕΡΜΟΝΗ ΑΝΑΚΥΚΛΩΣΗ 20

Άσκηση (1) Να γραφεί πρόγραμμα το οποίο θα διαβάζει ένα σύνολο ακεραίων αριθμών μεταξύ ένα και δέκα και θα υπολογίζει τον μέσο όρο αυτών έως ότου εμφανιστεί ένας αριθμός έξω από τα όρια αυτά. 21

Η δεύτερη μορφή της DO-END DO Συνθήκη Αληθής Ψευδής Σύνταξη : DO WHILE (συνθήκη) Σύνολο εντολών END DO Σκοπός : Η επανάληψη ενός συνόλου εντολών έως ότου μια συνθήκη ικανοποιηθεί. Σύνολο εντολών 22

Παρατηρήσεις (1) 1. Οι μεταβλητές που εμπλέκονται μέσα στη συνθήκη της WHILE θα πρέπει : α) να πάρουν τιμή πριν τη χρήση της WHILE και β) να αλλάξουν τιμή κατά τη διάρκεια της ανακύκλωσης (μεταξύ DO WHILE και END DO). 2. Η εντολή DO-WHILE χρησιμοποιείται όταν δε γνωρίζουμε εκ των προτέρων το πλήθος των επαναλήψεων. 23

Παράδειγμα 1 Να γραφεί πρόγραμμα το οποίο θα υπολογίζει το μέγιστο κοινό διαιρέτη δύο αριθμών α, β βάσει του αναδρομικού τύπου ΜΚΔ α β, β αν α > β ΜΚΔ α, β = ΜΚΔ α, β α αν α < β α αν α = β 24

Αλγόριθμος 1 Αρχή Δώσε α,β α<>β Ψευδής Εμφάνισε τον α Αληθής Αληθής α>β Ψευδής α=α-β β=β-α Τέλος 25

Πρόγραμμα 1 PROGRAM MKD IMPLICIT NONE INTEGER :: A,B,MKD PRINT*, DOSE DYO AKERAIOYS ARITHMOYS= READ*,A,B DO WHILE (A/=B) IF (A>B) THEN A=A-B ELSE B=B-A END IF END DO PRINT*, MKD=,A END PROGRAM MKD 26

Άσκηση «Μέγιστος Κοινός Διαιρέτης (Μ.Κ.Δ.)» Να γραφεί πρόγραμμα το οποίο θα υπολογίζει το μέγιστο κοινό διαιρέτη δύο αριθμών α, β σύμφωνα με το παρακάτω παράδειγμα π.χ. ΜΚΔ(12,15). Βήμα 1. Τοποθετώ στην πρώτη θέση τον μεγαλύτερο ΜΚΔ(15,12). Βήμα 2. 15=1*12+3 (A=Q 1 B+Y 1 ) - (Y 1 <>0 -> A<-B, B<-Y 1 ) 12=4*3+0 (B=Q 2 Y 1 +Y 2 ) - (Y 2 =0 -> Y 1 =MKD(A,B)) 27

Παράδειγμα 2 Ο υπολογισμός της τετραγωνικής ρίζας του α γίνεται από τον παρακάτω αναδρομικό τύπο : x = 1 2 x + a x Να υπολογιστεί η τετραγωνική ρίζα του α με ακρίβεια αν πάρουμε ως αρχική τιμή της προσέγγισης x = a 3. 28

Παράδειγμα 2 Επίλυση με το χέρι 29

Αρχή Αλγόριθμος 2 Δώσε α Αληθής α=0 Ψευδής xnew=0 x=α/3 xnew=(1/2)*(x+a/x) x-xnew >ε x=xnew xnew=(1/2)*(x+a/x) Εμφάνισε τον x Τέλος 30

Πρόγραμμα 2 PROGRAM SQUAREROOT IMPLICIT NONE REAL :: A,X,XNEW REAL, PARAMETER :: E=1E-06 PRINT*, A= ; READ*,A IF (A==0) THEN XNEW=0 ELSE X=A/3 XNEW=(1/2.0)*(X+A/X) DO WHILE ABS(X-XNEW)>E X=XNEW XNEW=(1/2.0)*(X+A/X) END DO END IF PRINT*, SQUARE ROOT OF,A, IS,XNEW END PROGRAM SQUAREROOT 31

Παράδειγμα 3 Η εκθετική συνάρτηση EXP(X) ορίζεται ως το άθροισμα των άπειρων όρων της παρακάτω σειράς : EXP X = 1 + X + X2 2! + X3 3! + + XI I! + Να χρησιμοποιήσετε την παραπάνω σειρά για τον υπολογισμό του EXP(X) έως ότου η απόλυτη τιμή του όρου Χ^Ι/Ι! γίνει μικρότερη ή ίση από μια επιθυμητή ακρίβεια Ε. 32

Αλγόριθμος 3 33

Πρόγραμμα 3 PROGRAM EXPONENTIAL IMPLICIT NONE REAL :: S,TERM,X,E INTEGER :: I PRINT*, X= ; READ*,X! ΕΙΣΑΓΩΓΗ ΔΕΔΟΜΕΝΩΝ PRINT*, E= ; READ*,E I=1! ΑΡΧΙΚΟΠΟΙΗΣΗ ΟΡΩΝ S=1 TERM=X DO WHILE (ABS(TERM)>=E) END DO! ΕΜΦΑΝΙΣΗ ΤΩΝ ΑΠΟΤΕΛΕΣΜΑΤΩΝ PRINT*, EXP(,X, )=,S END PROGRAM EXPONENTIAL! ΠΡΟΣΘΕΣΗ ΟΡΩΝ S=S+TERM I=I+1 TERM=TERM*(X/I) 34

Άσκηση (2) Να υπολογίσετε που συγκλίνει η σειρά : S = 1 1! + 1 2! + 1 3! + + 1 n 2 + Σύμφωνα με τον Euler (1730) η παραπάνω σειρά συγκλίνει στο π^2/6 και κατά συνέπεια μπορεί να χρησιμοποιηθεί στον υπολογισμό του π. 35

Η τρίτη μορφή της DO-END DO Σύνταξη : DO μεταβλητή(μ)=αρχική τιμή(α), τελική τιμή(τ) [,βήμα(β)] Σύνολο εντολών END DO DO label μεταβλητή(μ)=αρχική τιμή(α), τελική τιμή(τ) [,βήμα(β)] Σύνολο εντολών Label CONTINUE Μ=Α(Β)Τ Σύνολο εντολών 36

Παραδείγματα της τρίτης μορφή της DO-END DO DO I=1,5,1 PRINT*,I 1 END DO 2 DO 10 I=1,5,1 3 PRINT*,I 4 10 CONTINUE 5 Άσκηση. Να γραφεί πρόγραμμα που θα εκτυπώνει τους αριθμούς από το 1 ως το 5 ανάποδα, δηλ. 5,4,3,2,1. 37

Παρατηρήσεις (2) 1. Το βήμα θα πρέπει να είναι πάντα διαφορετικό από το μηδέν. 2. Δεν αλλάζουν οι τιμές του βήματος, αρχικής και τελικής τιμής μέσα στο loop. 3. Να μην παραλείπουμε το βήμα όταν είναι αρνητικό. 4. Η μεταβλητή θα πρέπει να είναι ακέραια όπως και οι αρχική τιμή, τελική τιμή και βήμα. 5. Είναι λάθος να χρησιμοποιείς μια GO TO για να σε μεταφέρει μέσα σε μια DO. 6. Αριθμός επαναλήψεων σε μια DO-END DO. αρχική - τελική βήμα 1 38

Παρατηρήσεις (2) ( συνέχεια) 7. Σταμάτημα της εκτέλεσης ΜΙΑΣ επανάληψης (CYCLE) IF (X>5) CYCLE 8. Έξοδος από μια DO-END DO (EXIT) IF (X>5) ΕΧΙΤ 9. Προσοχή πρέπει να δίνεται στις μεταβολές της «μεταβλητής». 39

Παράδειγμα (Πολυώνυμο) Να υπολογιστούν οι τιμές του πολυωνύμου P X = X 2 5X + 6 για Χ=0,0.5,1,,10. Χ=0(0.5)10 S=X**2-5*X+6 Εμφάνισε το X,S 40

Πρόγραμμα 1 (Πολυώνυμο) PROGRAM POLYONYMO IMPLICIT NONE REAL :: X,S DO X=0,10,0.5 S=X**2-5*X+6 WRITE(6,10) S,X 10 FORMAT(1X,F5.1,5X,F8.2) END DO END PROGRAM POLYONYMO 41

Πρόγραμμα 2 (Πολυώνυμο) PROGRAM POLYONYMO IMPLICIT NONE INTEGER :: I REAL :: X,S DO I=0,100,5 X=0.1*I S=X**2-5*X+6 WRITE(6,10) S,X 10 FORMAT(1X,F5.1,5X,F8.2) END DO END PROGRAM POLYONYMO Να υπολογιστούν οι τιμές του πολυωνύμου για Χ=0, 0.05, 0,10,,10. 42

Παράδειγμα (Άθροισμα) Να υπολογισθεί το άθροισμα S = 1 + 2 + 3 + + 100 S=0 I=1(1)100 S=S+I Εμφάνισε το S 43

Πρόγραμμα (Άθροισμα) PROGRAM SUM IMPLICIT NONE INTEGER :: S,I DO I=1,100 S=S+I END DO PRINT*, S=,S END PROGRAM SUM Όμοια για b i=a f i, step = c. 44

Άσκηση (3) Να γραφεί πρόγραμμα που θα υπολογίζει το παρακάτω άθροισμα S = 1 1 3 + 1 5 1 7 + + 1 41 1 43 = 1 N 1 N + 2, N = 1,5,9,, 41 Η παραπάνω σειρά συγκλίνει πολύ αργά προς το π=3.14. 45

A Παράδειγμα 5 Διάβασε το Ν Να υπολογιστεί το Ν! π.χ. Ν! = 1*2*3*..*Ν. N<0 N=0 Τύπωσε λάθος P=1 Εμφάνισε '0!=1' I=1(1)N P=P*I Εμφάνισε το P T 46

Πρόγραμμα 5 PROGRAM FACTORIAL IMPLICIT NONE INTEGER*4 :: I,N,P PRINT*, N= ; READ*,N IF (N<0) THEN PRINT*, ERROR, N MUST BE POSITIVE ELSE IF (N==0) THEN PRINT*, 0!=1 ELSE 47

Πρόγραμμα 5 ( συνέχεια) P=1 DO I=1,N P=P*I END DO PRINT*,N,!=,P END IF END PROGRAM FACTORIAL Όμοια για b i=a f i, step = c, P = 20 n=1 n + 1 2 n(n + 2) 48

Παράδειγμα (Ακολουθία Fibonacci) Να βρεθούν οι 20 πρώτοι όροι της ακολουθίας Fibonacci : F N = F N 1 + F N 2, N > 2 με F 1 = F 2 = 1 A F1=0 F2=1 I=3(1)20 F3=F1+F2 Εμφάνισε το F3 F1=F2 F2=F3 T 49

Πρόγραμμα (Ακολουθία Fibonacci) PROGRAM FIBONACCI IMPLICIT NONE INTEGER :: F1,F2,F3,N F1=1 ; F2=1 DO N=3,20 F3=F1+F2 PRINT*,N,F3 F1=F2 ; F2=F3 END DO END PROGRAM FIBONACCI Στο παραπάνω πρόγραμμα να εκτυπώσετε τον λόγο : F n F n 1 ο οποίος συγκλίνει στη χρυσή αναλογία φ=1.61803... 50

Παράδειγμα 6 Να διαβασθούν Ν>2 αριθμοί και, αφού υπολογισθούν, να εμφανιστούν τα εξής : α) ο μεγαλύτερος αριθμός, β) ο μικρότερος αριθμός, γ) ο μέσος όρος μ = N i=1 N X i 51

Αλγόριθμος 6 A Διάβασε το Ν (>2) Διάβασε το Χ S=Χ ΜΙΝ=Χ ΜΑΧ=Χ I=2(1)Ν Διάβασε το Χ S=S+X X>MAX MAX=X X<MIN MIN=X Εμφάνισε τα ΜΑΧ,ΜΙΝ,S/N T 52

Πρόγραμμα 6 PROGRAM MINMAXSUM IMPLICIT NONE REAL :: S,X,MIN,MAX INTEGER :: I,N PRINT*, N (N>2) = ; READ*,N PRINT*, X= ; READ*,X S=X MIN=X MAX=X 53

Πρόγραμμα 6 ( συνέχεια) DO I=2,N PRINT*, X= ; IF (X>MAX) MAX=X IF (X<MIN) MIN=X S=S+X READ*,X END DO PRINT*, MINIMUM=,MIN PRINT*, MAXIMUM=,MAX PRINT*, MEAN=,S/N END PROGRAM MINMAXSUM 54

Φωλιασμένες εντολές επανάληψης [όνομα1 :] [όνομα2 :] [όνομα2 ] DO [label1] δήλωση1 Σύνολο εντολών 1 DO [label2] δήλωση2 Σύνολο εντολών 2 Δήλωση του τέλους της DO Σύνολο εντολών 3 Δήλωση του τέλους της DO [όνομα1] 55

Παράδειγμα 1 (Φωλιασμένες εντολές επανάληψης) I=1 DO J=1,10 PRINT*,I, *,J, =,I*J END DO I=2 DO J=1,10 PRINT*,I, *,J, =,I*J END DO 1*1= 1 1*2= 2 1*3= 3 1*4= 4 1*5= 5 1*6= 6 1*7= 7 1*8= 8 1*9= 9 1*10= 10 Press any key to continue 2*1= 2 2*2= 4 2*3= 6 2*4= 8 2*5= 10 2*6= 12 2*7= 14 2*8= 16 2*9= 18 2*10= 20 Press any key to continue 56

Αλγόριθμος 1 (Φωλιασμένες εντολές επανάληψης) A I=1(1)10 J=1(1)10 Εμφάνισε το I*J T 57

Πρόγραμμα 1 (Φωλιασμένες εντολές επανάληψης) PROGRAM PROPAIDEIA IMPLICIT NONE INTEGER ::I,J DO I=1,10 DO J=1,10 PRINT*,I, *,J, =,I*J END DO PRINT*, --------------------- END DO END PROGRAM PROPAIDEIA 58

Παράδειγμα (Πυθαγόρειοι Αριθμοί) (Φωλιασμένες εντολές επανάληψης) Να βρεθούν οι ακέραιοι αριθμοί A,B,C (Πυθαγόρειοι αριθμοί) που ανήκουν στο διάστημα [1,10] και ικανοποιούν την ιδιότητα : Α 2 + Β 2 = C 2, 3 2 + 4 2 = 5 2 59

Αλγόριθμος (Πυθαγόρειοι Αριθμοί) A A=1(1)10 B=1(1)10 C=1(1)10 2 2 A + B = C 2 Aληθής Ψευδής Εμφάνισε το (Α,Β,C) T 60

Πρόγραμμα 1 (Πυθαγόρειοι Αριθμοί) PROGRAM PYTHAGORIOI IMPLICIT NONE INTEGER :: A,B,C META: DO A=1,10 METB: METC: END DO META END PROGRAM PYTHAGORIOI DO B=1,10 DO C=1,10 IF (A**2+B**2==C**2) THEN PRINT*,A,B,C END IF END DO METC END DO METB 3 4 5 4 3 5 6 8 10 8 6 10 Press any key to continue 61

Πρόγραμμα 2 (Πυθαγόρειοι Αριθμοί) PROGRAM PYTHAGORIOI IMPLICIT NONE INTEGER :: A,B,C META: DO A=1,10 METB: DO B=A+1,10 METC: DO C=B+1,10 IF (A**2+B**2==C**2) THEN PRINT*,A,B,C END IF END DO METC END DO METB END DO META END PROGRAM PYTHAGORIOI 3 4 5 6 8 10 Press any key to continue 62

Πρόγραμμα 3 (Πυθαγόρειοι Αριθμοί) PROGRAM PYTHAGORIOI IMPLICIT NONE INTEGER :: A,B,C META: DO A=1,8 METB: DO B=A+1,9 METC: DO C=B+1,10 IF (A**2+B**2==C**2) THEN PRINT*,A,B,C END IF END DO METC END DO METB END DO META END PROGRAM PYTHAGORIOI 3 4 5 6 8 10 Press any key to continue 63

Σύνολο επαναλήψεων A B C Επαναλήψεις 1 2 3,4,,N N-2 1 3 4,5,,N N-3 1 N-1 N 1 Σύνολο Επαναλήψεων 1+2+ +(N-2) 2 3 4,5,..,N N-3 2 4 5,6,,N N-2 2 N-1 N 1 Σύνολο Επαναλήψεων 1+2+ +(N-3) N-2 N-1 N 1 1 + 2 + + N 2 + 1 + 2 + + N 3 + + 1 = = 1 N 2 + 2 N 3 + 3 N 4 + + N 2 1 = N 2 i=1 = i N i 1 = 1 N N 1 N 2 6 64

Ασκήσεις Άσκηση 1 Να βρεθούν οι ακέραιοι αριθμοί X,Y που ανήκουν στο διάστημα [1,10] και ικανοποιούν την ιδιότητα : X 2 5Y 2 + 1 = 0 Άσκηση 2 Η ετήσια δόση Χ για την εξόφληση δανείου ποσού D, το οποίο πρέπει να εξοφληθεί σε N χρόνια με επιτόκιο Ε (0<Ε<1) δίνεται από τον τύπο : X = D 1 + E N E 1 + E N 1 Αν το ποσό είναι D = 1.000.000, να υπολογιστεί η ετήσια δόση για επιτόκιο Ε = 0.05, 0.055, 0.06, 0.065, 0.07, 0.075 και σε χρόνια Ν = 10, 15, 20, 25, 30. 65

Βιβλιογραφία Ν. Καραμπετάκης, Εισαγωγή στη, 2 η Έκδοση, Θεσσαλονίκη: Εκδόσεις Ζήτη, 2011. 66

Σημείωμα Αναφοράς Copyright Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης, Καραμπετάκης Νικόλαος. «Εισαγωγή στον Προγραμματισμό H/Y (). Εντολές Επανάληψης». Έκδοση: 1.0. Θεσσαλονίκη 2014. Διαθέσιμο από τη δικτυακή διεύθυνση: http://eclass.auth.gr/courses/ocrs145/.

Σημείωμα Αδειοδότησης Το παρόν υλικό διατίθεται με τους όρους της άδειας χρήσης Creative Commons Αναφορά, Παρόμοια Διανομή 4.0 [1] ή μεταγενέστερη, Διεθνής Έκδοση. Εξαιρούνται τα αυτοτελή έργα τρίτων π.χ. φωτογραφίες, διαγράμματα κ.λ.π., τα οποία εμπεριέχονται σε αυτό και τα οποία αναφέρονται μαζί με τους όρους χρήσης τους στο «Σημείωμα Χρήσης Έργων Τρίτων». [1] http://creativecommons.org/licenses/by-sa/4.0/

ΑΝΟΙΧΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Τέλος Ενότητας Επεξεργασία: Αναστασία Γ. Γρηγοριάδου Θεσσαλονίκη, Χειμερινό Εξάμηνο 2013-2014