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

Σχετικά έγγραφα
Επαναληπτικές Διαδικασίες

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

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

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

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

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

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

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

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

Η Δομή Επανάληψης. Εισαγωγή στην δομή επανάληψης Χρονική διάρκεια: 3 διδακτικές ώρες

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

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

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

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

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

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

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

Ενδεικτικές Ερωτήσεις Θεωρίας

Μαθησιακές δυσκολίες ΙΙ. Παλαιγεωργίου Γιώργος Τμήμα Μηχανικών Ηλεκτρονικών Υπολογιστών Τηλεπικοινωνιών και Δικτύων, Πανεπιστήμιο Θεσσαλίας

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

Γ τάξη Τεχνολογικής Κατεύθυνσης Ενιαίου Λυκείου ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ. ΔΟΜΗ ΕΠΙΛΟΓΗΣ Διδάσκων: ΔΟΥΡΒΑΣ ΙΩΑΝΝΗΣ

ΠΕΡΙΕΧΟΜΕΝΑ. Εντολές επιλογής Εντολές επανάληψης

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

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

Σκοπός. Εργαστήριο 6 Εντολές Επανάληψης

ΑΡΧΗ 1ης ΣΕΛΙΔΑΣ ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ : ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΑΞΗ : Γ ΛΥΚΕΙΟΥ ΣΠΟΥΔΕΣ ΟΙΚΟΝΟΜΙΑΣ & ΠΛΗΡΟΦΟΡΙΚΗΣ

A. Να γράψετε τον αριθμό της κάθε μιας από τις παρακάτω προτάσεις και δίπλα. το γράμμα Σ, εάν είναι σωστή, ή το γράμμα Λ, εάν είναι λανθασμένη.

FORTRAN και Αντικειμενοστραφής Προγραμματισμός

ΚΕΦΑΛΑΙΑ & 8.2 (ΔΟΜΕΣ ΕΠΑΝΑΛΗΨΗΣ) ΘΕΩΡΙΑ

Ασκή σεις στή δομή επανα λήψής

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

Διδακτικά προβλήματα σχετικά με την έννοια της επανάληψης

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

Διάγραμμα Ροής. Σελίδα 1 από 10

Παρατηρήσεις για την δομή Όσο..επανάλαβε( ΣΟΣ)

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

ΑΡΧΗ 2ΗΣ ΣΕΛΙΔΑΣ Γ Α... Β

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ Ονοματεπώνυμο: Βαθμός:

Παράδειγμα 2. Λύση & Επεξηγήσεις. Τέλος_επανάληψης Εμφάνισε "Ναι" Τέλος Α2

ΘΕΜΑ Α ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ

Επιλογή και επανάληψη. Λογική έκφραση ή συνθήκη

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

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

8 FORTRAN 77/90/95/2003

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

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

Δομές Επανάληψης. Όσο μέχρις ότου για. 22/11/08 Ανάπτυξη εφαρμογών 1

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

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Προγραμματισμός Η/Υ

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

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

Α. Να χαρακτηρίσετε τις παρακάτω προτάσεις ως σωστές (Σ) η λανθασμένες (Λ).

Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2

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

ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ : ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΑΞΗ : Γ ΛΥΚΕΙΟΥ ΣΠΟΥΔΕΣ ΟΙΚΟΝΟΜΙΑΣ & ΠΛΗΡΟΦΟΡΙΚΗΣ

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

Αλγόριθμοι Αναπαράσταση αλγορίθμων Η αναπαράσταση των αλγορίθμων μπορεί να πραγματοποιηθεί με:

Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL) Βασικές αλγοριθμικές δομές

4. Επιλογή και Επανάληψη

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

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

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

ΘΕΜΑΤΑ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ Γ ΛΥΚΕΙΟΥ ΗΜΕΡΟΜΗΝΙΑ: 1/12/2013

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

Να γράψετε τους αριθμούς 1, 2, 3 από τη Στήλη Α και δίπλα το γράμμα α, β, γ, δ, ε από τη Στήλη Β που δίνει τη σωστή αντιστοιχία.

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΕΧΝΟΛΟΓΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ ΙΑΓΩΝΙΣΜΑ ΣΤΗΝ ΟΜΗ ΕΠΑΝΑΛΗΨΗΣ ΣΥΝΟΛΟ ΣΕΛΙ ΩΝ: 6


Προβλήματα που αφορούν εντολές ελέγχου της ροής ενός προγράμματος.

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

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

ΘΕΜΑ Α. Α2. Να αναφέρετε από τι εξαρτάται η επιλογή του καλύτερου αλγορίθμου ταξινόμησης. Μονάδες 4. Σελίδα 1 από 8

Αν χ >= 0 ΚΑΙ χ <= 9 τότε Εμφάνισε Θετικός Μονοψήφιος Τέλος_αν Αν Χ <= 99 τότε

ΦΡΟΝΤΙΣΤΗΡΙΟ ΠΡΟΟΠΤΙΚΗ

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


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

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

4.4 Μετατροπή από μία μορφή δομής επανάληψης σε μία άλλη.

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

Μάριος Αγγελίδης

Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών

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

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

ΠΕΚ ΤΡΙΠΟΛΗΣ ΕΠΙΜΟΡΦΩΣΗ ΕΚΠ/ΚΩΝ ΠΕ19,20 ΗΜ/ΝΙΑ ΣΧΕΔΙΟ ΜΑΘΗΜΑΤΟΣ

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

Γ ΤΑΞΗ ΕΝΙΑΙΟΥ ΛΥΚΕΙΟΥ ΤΕΧΝΟΛΟΓΙΚΗ ΚΑΤΕΥΘΥΝΣΗ ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ

ΘΕΜΑ Α. Α1. Να γράψετε στο. 2. Τα του. τις. αριθμητικές. πρώτες. β. Να. Σελίδα 1 από 5. 2) χ 2. χ Τ_Ρ(α) ΓΡΑΨΕ. ΓΡΑΨΕ χ χ χ+2

ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ Γ ΗΜΕΡΗΣΙΩΝ

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

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

ΑΠΟΛΥΤΗΡΙΕΣ ΕΞΕΤΑΣΕΙΣ Γ ΤΑΞΗΣ ΗΜΕΡΗΣΙΟΥ ΕΝΙΑΙΟΥ ΛΥΚΕΙΟΥ ΣΑΒΒΑΤΟ 4 ΙΟΥΝΙΟΥ 2005

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

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

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

Αριθμητική Ανάλυση & Εφαρμογές

Ο αλγόριθμος πρέπει να τηρεί κάποια κριτήρια

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον Λύσεις Θεμάτων Επαναληπτικών Εξετάσεων Ενιαίου Λυκείου 2015

ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ PASCAL

Transcript:

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

Δομή Επανάληψης Επανάληψη με αρίθμηση DO <μεταβλητή> = <αρχική τιμή>, <τελική τιμή>[, <βήμα>] Επανάληψη υπό συνθήκη DO WHILE Αέναη επανάληψη DO END DO

Δομές Επανάληψης Χρησιμοποιούνται για να επαναλάβουμε την εκτέλεση ενός τμήματος κώδικα περισσότερες από μια φορές Απαρτίζονται από Κάποιου είδους μετρητή ή έκφραση ελέγχου για τον καθορισμό του αριθμού των επαναλήψεων Τμήματα κώδικα που εκτελούνται κατ επανάληψη Όταν κατά την εκτέλεση του πηγαίου κώδικα βρεθεί μια τέτοια δομή ο κώδικας εκτελεί για ένα συγκεκριμένο αριθμό επαναλήψεων ένα τμήμα κώδικα. Μετά την ολοκλήρωση της εκτέλεσης της δομής ο κώδικας συνεχίζει να εκτελείται διαδοχικά

Έλεγχος Βρόγχων Επανάληψης Υπάρχουν τρεις δομές επανάληψης που διαφέρουν ως προς τον τρόπο ελέγχου των επαναλήψεων Με αρίθμηση: Ένας μετρητής επαναλήψεων καθορίζει τον αριθμό εκτελέσεων της δομής Υπό συνθήκη: Η δομή εκτελείται όσο η τιμή μιας προκαθορισμένης συνθήκης είναι αληθής. Αέναη: Η δομή εκτελείται επ αόριστον, μέχρι να τερματιστεί από κάποια ρητώς ορισμένη εντολή

Επανάληψη με αρίθμηση 5 Εκτέλεση συγκεκριμένου αριθμού επαναλήψεων [label:] DO μεταβλητή = αρχική_τιμή, τελική_τιμή, [βήμα] εντολές... END DO [label] Οι τιμές αρχική_τιμή, τελική_τιμή και βήμα πρέπει να είναι υποχρεωτικά ακέραιου τύπου (ακόμη και αν ο compiler επιτρέπει την χρήση πραγματικών)

Εκτέλεση της δομής «Επανάληψη με Αρίθμηση» Ο υπολογιστής αναγνωρίζει το τμήμα του κώδικα που πρόκειται να επαναλάβει μέσα στα όρια DO ENDDO H μεταβλητή λαμβάνει την αρχική τιμή Ελέγχεται η συνθήκη τερματισμού όπως παρουσιάζεται παρακάτω Εκτελούνται διαδοχικά οι εκφράσεις μέσα στα όρια της δομής επανάληψης Όταν η εκτέλεση του κώδικα φτάσει στο ENDDO η τιμή του βήματος προστίθεται στην μεταβλητή Για βήμα θετικό αν η νέα τιμή της μεταβλητής είναι μικρότερη ή ίση με την τελική τιμή τότε η επανάληψη συνεχίζει διαφορετικά σταματάει Για βήμα αρνητικό αν η νέα τιμή της μεταβλητής είναι μεγαλύτερη ή ίση με την τελική τιμή τότε η επανάληψη συνεχίζει διαφορετικά σταματάει

Σημεία που πρέπει να προσέχουμε στην «Επανάληψη με Αρίθμηση» Αν η τιμή του βήματος είναι θετική Η αρχική τιμή πρέπει να είναι μικρότερη ή ίση από την τελική Αν η τιμή του βήματος είναι αρνητική Η αρχική τιμή πρέπει να είναι μεγαλύτερη ή ίση από την τελική Το βήμα δεν μπορεί να είναι μηδέν Αν δεν υπάρχει βήμα, τότε εννοείται το +1 Οι τιμές των μεταβλητών ελέγχου του βρόγχου δεν πρέπει να αλλάζουν τιμή εντός του βρόγχου επανάληψης

Τρεις σημαντικές εφαρμογές Υπολογισμός αθροίσματος Ν όρων Υπολογισμός γινομένου Ν όρων Υπολογισμοί με μη ακέραιο βήμα (ολοκλήρωση)

Εμφωλευμένες δομές επανάληψης με μετρητή Αρκετές φορές χρειάζεται να συνδυάσουμε πολλαπλές δομές επανάληψης Για τον χειρισμό δεδομένων πινάκων με περισσότερες από μια διαστάσεις Για τον υπολογισμό μαθηματικών εκφράσεων (π.χ. σειρές) με περισσότερους από ένα δείκτες 3 2 i j 3 i 1 1 i 1 2 1 i 1 j 1 i 2 Οι βασικοί κανόνες που πρέπει να ισχύουν είναι κάθε εσωτερική δομή πρέπει να περιέχεται πλήρως στην έκταση της αμέσως επόμενης εξωτερικής δομής Δύο συνδυασμένοι βρόγχοι επανάληψης δεν μπορούν να μοιράζονται την ίδια μεταβλητή ελέγχου της επανάληψης 1 2 2 1 2 2 3 1 3

10 Επανάληψη υπό συνθήκη [label:] DO WHILE (συνθήκη ελέγχου) εντολές... END DO [label] Η συνθήκη ελέγχου είναι το αποτέλεσμα μιας λογικής έκφρασης

Εκτέλεση της δομής «Επανάληψη υπό Συνθήκη» Ο υπολογιστής αναγνωρίζει το τμήμα του κώδικα που πρόκειται να επαναλάβει μέσα στα όρια DO WHILE ENDDO Υπολογίζεται η συνθήκη ελέγχου. Αν είναι αληθής, εκτελούνται διαδοχικά οι εκφράσεις που περιέχονται στη δομή Αν είναι ψευδής, η εκτέλεση της δομής ολοκληρώνεται και η εκτέλεση του κώδικα συνεχίζεται διαδοχικά μετά το ENDDO Όταν η εκτέλεση του κώδικα φτάσει στο ENDDO η εκτέλεση επιστρέφει στην αρχή της δομής

Τρεις σημαντικές εφαρμογές Έλεγχος εγκυρότητας δεδομένων Έλεγχος σύγκλισης ακολουθιών Ν όρων Υπολογισμοί με επαναληπτικές μεθόδους

Αέναη δομή επανάληψης [label:] DO εντολές1 IF ( ) exit εντολές2 END DO [label] Η αέναη επανάληψη εκτελείται επ αόριστον μέχρι να ικανοποιηθεί κάποια συνθήκη τερματισμού, η οποία πρέπει να οριστεί ρητά από τον προγραμματιστή

Εντολές Παράκαμψης Οι εντολές αυτές χρησιμοποιούνται για την παράκαμψη της συνήθους ροής εκτέλεσης των δομών επανάληψης (και όχι μόνο) Cycle : ενδιάμεση συνθήκη επανάληψης Exit : ενδιάμεση συνθήκη εξόδου Stop : τερματισμός του προγράμματος Τοποθετούνται μέσα στα όρια της δομής DO. (H stop μπορεί να εμφανισθεί σε οποιοδήποτε σημείο του προγράμματος) Συνδυάζονται συνήθως με το λογικό IF, αλλά και με οποιαδήποτε δομή επιλογής Αν ικανοποιηθεί κάποια συνθήκη ελέγχου, ρητά ορισμένη από τον προγραμματιστή, εκτρέπουν τη κανονική ροή εκτέλεσης

Εκτέλεση της εντολής exit ΛΕΙΤΟΥΡΓΙΑ: Τερματίζει την εκτέλεση ενός επαναληπτικού βρόγχου DO Η τρέχουσα εκτέλεση του DO τερματίζεται Αν έχουμε εμφωλευμένα DO τότε η exit τερματίζει μόνον το DO μέσα στο οποίο βρίσκεται. Αν όμως χρησιμοποιηθεί με την μορφή exit <label> μπορεί να τερματίσει οποιοδήποτε DO στην ιεραρχία της εμφώλευσης. Ο μετρητής του DO (αν υπάρχει) διατηρεί την τελευταία του τιμή Όλες οι μεταβλητές μέσα στο βρόγχο επανάληψης διατηρούν την τελευταία τιμή που είχαν κατά την ικανοποίηση της συνθήκης

Εκτέλεση της εντολής cycle ΛΕΙΤΟΥΡΓΙΑ: Διακόπτει την τρέχουσα εκτέλεση επανάληψης ενός επαναληπτικού βρόγχου DO Η τρέχουσα εκτέλεση του DO τερματίζεται H μεταβλητή ελέγχου του DO (αν υπάρχει) αυξάνεται κατά τη τιμή του βήματος Αρχίζει νέα επανάληψη της δομής DO Μπορεί να χρησιμοποιηθεί και ως cycle <label> do i=1,5 print*, i if (i>3) cycle print*, i end do print*, 'done!'

Εκτέλεση της εντολής stop ΛΕΙΤΟΥΡΓΙΑ: Τερματίζει άμεσα την εκτέλεση του προγράμματος (χωρίς να φτάσουμε ως το end program) Η τρέχουσα εκτέλεση του DO τερματίζεται και μαζί και η εκτέλεση του προγράμματος Μπορεί να συνοδευτεί από κάποια μήνυμα που να δίνει πληροφορίες Do read*,x if (x<0) stop End do 'Error!'

Σημεία που πρέπει να προσέχουμε στις δομές επανάληψης χωρίς μετρητή Η συνθήκη ελέγχου για την είσοδο/έξοδο από τον βρόγχο δεν ικανοποιείται ποτέ. Ο βρόγχος εκτελείται επ άπειρον Η μεταβλητή ελέγχου δεν έχει πάρει αρχική τιμή Η μεταβλητή ελέγχου υπολογίζεται σε λάθος σημείο εντός του βρόγχου

Βασικές μεθοδολογίες σχετικές με τη δομή επανάληψης Έλεγχος εγκυρότητας δεδομένων Παραγωγή όρων αριθμητικής και γεωμετρικής προόδου Άθροιση Γινόμενο υπό συνθήκη Καταμέτρηση Με γνωστό και με άγνωστο πλήθος δεδομένων Εκλογή (min, max)

Έλεγχος Εγκυρότητας Δεδομένων Έστω ότι θέλουμε να διαβάσουμε έναν ακέραιο αριθμό x, ο οποίος πρέπει να ανήκει στο διάστημα [5,10] Απλή μορφή κώδικα Σωστή μορφή κώδικα (με έλεγχο τύπου δεδομένων και μήνυμα σφάλματος προς τον χρήστη)

Παραγωγή όρων αριθμητικής προόδου Έστω ότι θέλουμε να εμφανίσουμε τους αριθμούς: 5, 8, 11, 14, 17, 20 Πρόκειται τους 6 όρους της αριθμητικής πρόοδου με πρώτο όρο α 0 =5, και διαφορά ω=3 1 ος τρόπος: DO με βήμα 2 ος τρόπος: τύπος ν-οστου όρου α ν =α 0 + (ν-1)ω 3 ος τρόπος: Προσθήκη διαφοράς επαναληπτικά

Παραγωγή όρων γεωμετρικής προόδου Έστω ότι θέλουμε να εμφανίσουμε τους αριθμούς: 3, 6, 12, 24, 48, 96 Πρόκειται τους 6 όρους της γεωμετρικής πρόοδου με πρώτο όρο α 0 =3, και λόγο λ=2 1 ος τρόπος: τύπος ν-οστου όρου α ν =α 0 λ (ν-1) 2 ος τρόπος: Πολ/μός λόγου επαναληπτικά

Άθροιση Με γνωστό πλήθος π.χ. Δίνονται 100 αριθμοί. Να βρεθεί το άθροισμά τους Με άγνωστο πλήθος Τιμή φρουρός π.χ. Δίνονται συνεχώς αριθμοί μέχρι να δοθεί το -9999. Να βρεθεί το άθροισμα τους. Αθροιστής π.χ. Να υπολογισθεί το άθροισμα: S= 1+1/2+1/3+ +1/100 Επίσης: Επίσης:

Άθροιση υπό συνθήκη Με γνωστό πλήθος π.χ. Δίνονται 100 αριθμοί. Να βρεθεί το άθροισμα των άρτιων. Με άγνωστο πλήθος π.χ. Δίνονται συνεχώς αριθμοί μέχρι να δοθεί το -9999. Να βρεθεί το άθροισμα των θετικών.

Γινόμενο Με γνωστό πλήθος π.χ. Δίνονται 100 αριθμοί. Να βρεθεί το γινόμενό τους Με άγνωστο πλήθος π.χ. Δίνονται συνεχώς αριθμοί μέχρι να δοθεί το -9999. Να βρεθεί το γινόμενό τους. π.χ. Να υπολογισθεί το παραγοντικό: n!= 1 2 3 n, (με 0!=1) Σε περίπτωση που έχουμε Γινόμενο υπό Συνθήκη, απλώς η εντολή p=p*x μπαίνει μέσα ένα IF, αντίστοιχα με την Άθροιση υπό Συνθήκη.

Καταμέτρηση Με γνωστό πλήθος π.χ. Δίνονται 100 αριθμοί. Να βρεθεί το πλήθος των άρτιων. Μετρητής Με άγνωστο πλήθος π.χ. Δίνονται συνεχώς αριθμοί μέχρι να δοθεί το -9999. Να βρεθεί το πλήθος όλων καθώς και το πλήθος μόνο των θετικών. Χωρίς συνθήκη Η καταμέτρηση με γνωστό πλήθος είναι πάντοτε υπό συνθήκη. Παρατήρηση: Οι μεταβλητές που παίζουν το ρόλο του μετρητή δηλώνονται πάντοτε ως INTEGER Υπό συνθήκη

Εκλογή Με γνωστό πλήθος π.χ. Δίνονται 100 αριθμοί. Να βρεθεί ο μέγιστος και ο ελάχιστος. Με άγνωστο πλήθος π.χ. Δίνονται συνεχώς αριθμοί μέχρι να δοθεί το -9999. Να βρεθεί ο μέγιστος και ο ελάχιστος. Επίσης: Πολύ μεγάλη τιμή Πολύ μικρή τιμή

Αναπτύγματα Taylor και Maclaurin Αν μία συνάρτηση είναι απείρως παραγωγίσιμη στο σημείο α και είναι γνωστές όλες οι τιμές των παραγώγων της σε αυτό το σημείο τότε ισχύει το ακόλουθο ανάπτυγμα Taylor για x κοντά στο α ( n) f ( a) f( x) ( x a) n! n 0 Αν α=0 τότε το ανάπτυγμα ονομάζεται Maclaurin ( n) f (0) f( x) ( x) n! n 0 n n Παραδείγματα αναπτυγμάτων Maclaurin: cos x n ( 1) 2n x n 0 (2 n)! 1 1 x n 0 x n e x n 0 1 n! x n ln(1 x) n 0 ( 1) n! n 1 x n

Μεθοδολογία αντιμετώπισης αθροισμάτων απείρων Σειρών 1 ος Τρόπος: Επιλέγουμε αυθαίρετα να κρατήσουμε Ν όρους της Σειράς και χρησιμοποιούμε Do με αρίθμηση για να παράγουμε κάθε έναν από αυτούς 2 ος Τρόπος: Αν οι όροι της Σειράς είναι φθίνοντες, μπορούμε να χρησιμοποιήσουμε Do με συνθήκη (ή χωρίς) για την παραγωγή τους και σταματούμε την επανάληψη όταν η απόλυτη τιμή του τρέχοντος όρου γίνει μικρότερη από μία προκαθορισμένη μικρή τιμή π.χ. 1e-6 3 ος Τρόπος: Χρησιμοποιούμε Do με συνθήκη (ή χωρίς) για την παραγωγή των όρων και για τον τερματισμό της επανάληψης ελέγχουμε το απόλυτο (ή το απόλυτο σχετικό) σφάλμα μεταξύ του αποτελέσματος δύο διαδοχικών επαναλήψεων. Το σφάλμα αυτό θα πρέπει να γίνει μικρότερο από μία προκαθορισμένη μικρή τιμή

Χρονομέτρηση Προγράμματος Πολλές φορές επιθυμούμαι να γνωρίζουμε πόσο χρόνο διαρκεί η εκτέλεση κάποιας δομής επανάληψης. Μπορούν να χρησιμοποιηθούν 2 σχετικές εγγενείς υπορουτίνες η CPU_TIME και η SYSTEM_CLOCK CPU_TIME H CPU_TIME μετρά το χρόνο που απασχολείται ο επεξεργαστής (ενδέχεται να είναι μικρότερος από τον πραγματικό χρόνο εκτέλεσης του προγράμματος) και είναι αυτή που χρησιμοποιούμε συνήθως. Η χρήση της είναι ως εξής: Καλούμε την CPU_TIME 2 φορές, μία πριν την εκτέλεση του κώδικα που χρονομετρούμε και μία μετά. Στη συνέχεια αφαιρούμε τις δύο τιμές. Το αποτέλεσμα είναι η διάρκεια σε δευτερόλεπτα. (H CPU_TIME δέχεται μία μόνο παράμετρο, τύπου real) SYSTEM_CLOCK H SYSTEM_CLOCK μετράει τον πραγματικό χρόνο εκτέλεσης. Η χρήση της είναι ίδια με αυτή της CPU_TIME, αλλά απαιτεί κάποια αρχικοποίηση. (Η SYSTEM_CLOCK δέχεται ακέραιες παραμέτρους)

Χρονομέτρηση Προγράμματος (Παράδειγμα) CPU_TIME real::t1,t2 call cpu_time (t1) <κώδικας που χρονομετρούμε> call cpu_time(t2) print*, t2-t1, seconds SYSTEM_CLOCK integer::cr,c1,c2 call system_clock(count_rate=cr) call system_clock (c1) <κώδικας που χρονομετρούμε> call system_clock (c2) print*, (c2-c1)/real(cr), seconds