ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣΗ/Υ...

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

Transcript of ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣΗ/Υ...

Page 1: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣΗ/Υ - mie.uth.gr · PDF fileοποιαδήποτε δομή επιλογής Αν ικανοποιηθεί κάποια συνθήκη ελέγχου,

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/ΥΔομή Επανάληψης

Ιωάννης ΛυχναρόπουλοςΜαθηματικός, MSc, PhD

Τμήμα Μηχανολόγων ΜηχανικώνΠανεπιστήμιο Θεσσαλίας

Page 2: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣΗ/Υ - mie.uth.gr · PDF fileοποιαδήποτε δομή επιλογής Αν ικανοποιηθεί κάποια συνθήκη ελέγχου,

Δομή Επανάληψης

• Επανάληψη με απαρίθμηση• DO <μεταβλητή> = <αρχική τιμή>, <τελική τιμή>[, <βήμα>]

• Επανάληψη υπό συνθήκη• DO WHILE

• Αέναη επανάληψη• DO – END DO

Page 3: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣΗ/Υ - mie.uth.gr · PDF fileοποιαδήποτε δομή επιλογής Αν ικανοποιηθεί κάποια συνθήκη ελέγχου,

Δομές Επανάληψης• Χρησιμοποιούνται για να επαναλάβουμε την εκτέλεση

ενός τμήματος κώδικα περισσότερες από μια φορές

• Απαρτίζονται από • Κάποιου είδους μετρητή ή έκφραση ελέγχου για τον καθορισμό

του αριθμού των επαναλήψεων• Τμήματα κώδικα που εκτελούνται κατ’ επανάληψη

• Όταν κατά την εκτέλεση του πηγαίου κώδικα βρεθεί μια τέτοια δομή ο κώδικας εκτελεί για ένα συγκεκριμένο αριθμό επαναλήψεων ένα τμήμα κώδικα.

• Μετά την ολοκλήρωση της εκτέλεσης της δομής ο κώδικας συνεχίζει να εκτελείται διαδοχικά

Page 4: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣΗ/Υ - mie.uth.gr · PDF fileοποιαδήποτε δομή επιλογής Αν ικανοποιηθεί κάποια συνθήκη ελέγχου,

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

• Ένας μετρητής επαναλήψεων καθορίζει τον αριθμό εκτελέσεων της δομής

• Υπό συνθήκη:• Η δομή εκτελείται όσο η τιμή μιας προκαθορισμένης

συνθήκης είναι αληθής.• Αέναη:

• Η δομή εκτελείται επ’ αόριστον, μέχρι να τερματιστεί από κάποια ρητώς ορισμένη εντολή

Page 5: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣΗ/Υ - mie.uth.gr · PDF fileοποιαδήποτε δομή επιλογής Αν ικανοποιηθεί κάποια συνθήκη ελέγχου,

Επανάληψη με αρίθμηση

[label:] DO μεταβλητή = αρχική_τιμή, τελική_τιμή, [βήμα]εντολές...

END DO [label]

Οι τιμές αρχική_τιμή, τελική_τιμή και βήμα πρέπει να είναι υποχρεωτικά ακέραιου τύπου (ακόμη και αν ο compiler επιτρέπει την χρήση πραγματικών)

5

Εκτέλεση συγκεκριμένου αριθμού επαναλήψεων

Page 6: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣΗ/Υ - mie.uth.gr · PDF fileοποιαδήποτε δομή επιλογής Αν ικανοποιηθεί κάποια συνθήκη ελέγχου,

Εκτέλεση της δομής «Επανάληψη με Απαρίθμηση»

• Ο υπολογιστής αναγνωρίζει το τμήμα του κώδικα που πρόκειται να επαναλάβει μέσα στα όρια DO … ENDDO

• H μεταβλητή λαμβάνει την αρχική τιμή

• Ελέγχεται η συνθήκη τερματισμού όπως παρουσιάζεται παρακάτω

• Εκτελούνται διαδοχικά οι εκφράσεις μέσα στα όρια της δομής επανάληψης

• Όταν η εκτέλεση του κώδικα φτάσει στο ENDDO

• η τιμή του βήματος προστίθεται στην μεταβλητή

• Για βήμα θετικό

• αν η νέα τιμή της μεταβλητής είναι μικρότερη ή ίση με την τελική τιμή τότε η επανάληψη συνεχίζει διαφορετικά σταματάει

• Για βήμα αρνητικό

• αν η νέα τιμή της μεταβλητής είναι μεγαλύτερη ή ίση με την τελική τιμή τότε η επανάληψη συνεχίζει διαφορετικά σταματάει

Page 7: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣΗ/Υ - mie.uth.gr · PDF fileοποιαδήποτε δομή επιλογής Αν ικανοποιηθεί κάποια συνθήκη ελέγχου,

Σημεία που πρέπει να προσέχουμε στην «Επανάληψη με Απαρίθμηση»

• Αν η τιμή του βήματος είναι θετική• Η αρχική τιμή πρέπει να είναι μικρότερη ή ίση από την τελική

• Αν η τιμή του βήματος είναι αρνητική • Η αρχική τιμή πρέπει να είναι μεγαλύτερη ή ίση από την τελική

• Το βήμα δεν μπορεί να είναι μηδέν

• Αν δεν υπάρχει βήμα, τότε εννοείται το +1

• Οι τιμές των μεταβλητών ελέγχου του βρόγχου δεν πρέπει να αλλάζουν τιμή εντός του βρόγχου επανάληψης

Page 8: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣΗ/Υ - mie.uth.gr · PDF fileοποιαδήποτε δομή επιλογής Αν ικανοποιηθεί κάποια συνθήκη ελέγχου,

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

• Υπολογισμός γινομένου Ν όρων

• Κόμβοι πλέγματος με σταθερό βήμα

Page 9: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣΗ/Υ - mie.uth.gr · PDF fileοποιαδήποτε δομή επιλογής Αν ικανοποιηθεί κάποια συνθήκη ελέγχου,

Εμφωλευμένες δομές επανάληψης με μετρητή• Αρκετές φορές χρειάζεται να συνδυάσουμε πολλαπλές δομές

επανάληψης• Για τον χειρισμό δεδομένων πινάκων με περισσότερες από μια διαστάσεις• Για τον υπολογισμό μαθηματικών εκφράσεων (π.χ. σειρές) με

περισσότερους από ένα δείκτες

• Οι βασικοί κανόνες που πρέπει να ισχύουν είναι• κάθε εσωτερική δομή πρέπει να περιέχεται πλήρως στην έκταση της

αμέσως επόμενης εξωτερικής δομής• Δύο συνδυασμένοι βρόγχοι επανάληψης δεν μπορούν να μοιράζονται την

ίδια μεταβλητή ελέγχου της επανάληψης

++

++

+=

+=∑∑∑

== = 23

13

22

12

21

11

21

3

1

3

1

2

1 ii j

iiji

Page 10: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣΗ/Υ - mie.uth.gr · PDF fileοποιαδήποτε δομή επιλογής Αν ικανοποιηθεί κάποια συνθήκη ελέγχου,

Επανάληψη υπό συνθήκη

[label:] DO WHILE (συνθήκη ελέγχου)εντολές...

END DO [label]

Η συνθήκη ελέγχου είναι το αποτέλεσμα μιας λογικής έκφρασης

10

Page 11: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣΗ/Υ - mie.uth.gr · PDF fileοποιαδήποτε δομή επιλογής Αν ικανοποιηθεί κάποια συνθήκη ελέγχου,

Εκτέλεση της δομής «Επανάληψη υπό Συνθήκη»

• Ο υπολογιστής αναγνωρίζει το τμήμα του κώδικα που πρόκειται να επαναλάβει μέσα στα όρια DO WHILE … ENDDO

• Υπολογίζεται η συνθήκη ελέγχου.

• Αν είναι αληθής, εκτελούνται διαδοχικά οι εκφράσεις που περιέχονται στη δομή

• Αν είναι ψευδής, η εκτέλεση της δομής ολοκληρώνεται και η εκτέλεση του κώδικα συνεχίζεται διαδοχικά μετά το ENDDO

• Όταν η εκτέλεση του κώδικα φτάσει στο ENDDO η εκτέλεση επιστρέφει στην αρχή της δομής

Page 12: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣΗ/Υ - mie.uth.gr · PDF fileοποιαδήποτε δομή επιλογής Αν ικανοποιηθεί κάποια συνθήκη ελέγχου,

Τρεις σημαντικές εφαρμογές• Έλεγχος εγκυρότητας δεδομένων

• Υπολογισμός Σειρών

• Υπολογισμοί με επαναληπτικές μεθόδους

11

12n n

n

bx xx−

= +

2 1

0

( 1)sin(2 1)!

i i

i

xxi

+∞

=

−=

+∑

Page 13: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣΗ/Υ - mie.uth.gr · PDF fileοποιαδήποτε δομή επιλογής Αν ικανοποιηθεί κάποια συνθήκη ελέγχου,

Αέναη δομή επανάληψης[label:] DO

εντολές1IF (…) exitεντολές2

END DO [label]

Η αέναη επανάληψη εκτελείται επ’ αόριστον μέχρι να ικανοποιηθεί κάποια συνθήκη τερματισμού, η οποία πρέπει να οριστεί ρητά από τον προγραμματιστή

Page 14: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣΗ/Υ - mie.uth.gr · PDF fileοποιαδήποτε δομή επιλογής Αν ικανοποιηθεί κάποια συνθήκη ελέγχου,

Εντολές Παράκαμψης

• Cycle : ενδιάμεση συνθήκη επανάληψης• Exit : ενδιάμεση συνθήκη εξόδου• Stop : τερματισμός του προγράμματος

Οι εντολές αυτές χρησιμοποιούνται για την παράκαμψη της συνήθους ροής εκτέλεσης των δομών επανάληψης (και όχι μόνο)

Τοποθετούνται μέσα στα όρια της δομής DO. (H stop μπορεί να εμφανισθεί σε οποιοδήποτε σημείο του προγράμματος)

Συνδυάζονται συνήθως με το λογικό IF, αλλά και με οποιαδήποτε δομή επιλογής

Αν ικανοποιηθεί κάποια συνθήκη ελέγχου, ρητά ορισμένη από τον προγραμματιστή, εκτρέπουν τη κανονική ροή εκτέλεσης

Page 15: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣΗ/Υ - mie.uth.gr · PDF fileοποιαδήποτε δομή επιλογής Αν ικανοποιηθεί κάποια συνθήκη ελέγχου,

Εκτέλεση της εντολής exit ΛΕΙΤΟΥΡΓΙΑ: Τερματίζει την εκτέλεση ενός επαναληπτικού βρόγχου DO

• Η τρέχουσα εκτέλεση του DO τερματίζεται• Αν έχουμε εμφωλευμένα DO τότε η exit τερματίζει μόνον το DO

μέσα στο οποίο βρίσκεται. Αν όμως χρησιμοποιηθεί με την μορφή exit <label> μπορεί να τερματίσει οποιοδήποτε DO στην ιεραρχία της εμφώλευσης.

• Ο μετρητής του DO (αν υπάρχει) διατηρεί την τελευταία του τιμή• Όλες οι μεταβλητές μέσα στο βρόγχο επανάληψης διατηρούν την

τελευταία τιμή που είχαν κατά την ικανοποίηση της συνθήκης

π.χ. Οθόνη:5

Page 16: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣΗ/Υ - mie.uth.gr · PDF fileοποιαδήποτε δομή επιλογής Αν ικανοποιηθεί κάποια συνθήκη ελέγχου,

Εκτέλεση της εντολής cycle ΛΕΙΤΟΥΡΓΙΑ: Διακόπτει την τρέχουσα εκτέλεση επανάληψης ενός επαναληπτικού βρόγχου DO

• Η τρέχουσα εκτέλεση του DO τερματίζεται• H μεταβλητή ελέγχου του DO (αν υπάρχει) αυξάνεται κατά

τη τιμή του βήματος• Αρχίζει νέα επανάληψη της δομής DO• Μπορεί να χρησιμοποιηθεί και ως cycle <label>

π.χ. Οθόνη:11223345

done!

Page 17: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣΗ/Υ - mie.uth.gr · PDF fileοποιαδήποτε δομή επιλογής Αν ικανοποιηθεί κάποια συνθήκη ελέγχου,

Εκτέλεση της εντολής stop ΛΕΙΤΟΥΡΓΙΑ: Τερματίζει άμεσα την εκτέλεση του προγράμματος (χωρίς να φτάσουμε ως το end program)

• Η τρέχουσα εκτέλεση του DO τερματίζεται και μαζί και η εκτέλεση του προγράμματος

• Μπορεί να συνοδευτεί από κάποια μήνυμα που να δίνει πληροφορίες

Page 18: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣΗ/Υ - mie.uth.gr · PDF fileοποιαδήποτε δομή επιλογής Αν ικανοποιηθεί κάποια συνθήκη ελέγχου,

Σημεία που πρέπει να προσέχουμε στις δομές επανάληψης χωρίς μετρητή

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

• Η μεταβλητή ελέγχου δεν έχει πάρει αρχική τιμή

• Η μεταβλητή ελέγχου υπολογίζεται σε λάθος σημείο εντός του βρόγχου

Page 19: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣΗ/Υ - mie.uth.gr · PDF fileοποιαδήποτε δομή επιλογής Αν ικανοποιηθεί κάποια συνθήκη ελέγχου,

Βασικές μεθοδολογίες σχετικές με τη δομή επανάληψης

• Έλεγχος εγκυρότητας δεδομένων

• Παραγωγή όρων αριθμητικής και γεωμετρικής προόδου

• Άθροιση – Γινόμενο

• υπό συνθήκη

• Καταμέτρηση

• Εκλογή (min, max)

Με γνωστό και με άγνωστο πλήθος δεδομένων

Page 20: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣΗ/Υ - mie.uth.gr · PDF fileοποιαδήποτε δομή επιλογής Αν ικανοποιηθεί κάποια συνθήκη ελέγχου,

Έλεγχος Εγκυρότητας Δεδομένων• Έστω ότι θέλουμε να διαβάσουμε έναν ακέραιο αριθμό x, ο οποίος

πρέπει να ανήκει στο διάστημα [5,10]• Απλή μορφή κώδικα

• Σωστή μορφή κώδικα (με έλεγχο τύπου δεδομένων και μήνυμα σφάλματος προς τον χρήστη)

Page 21: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣΗ/Υ - mie.uth.gr · PDF fileοποιαδήποτε δομή επιλογής Αν ικανοποιηθεί κάποια συνθήκη ελέγχου,

Παραγωγή όρων αριθμητικής προόδου• Έστω ότι θέλουμε να

εμφανίσουμε τους αριθμούς:5, 8, 11, 14, 17, 20

Πρόκειται τους 6 όρους της αριθμητικής πρόοδου με πρώτο όρο α0=5, και διαφορά ω=3• 1ος τρόπος: DO με βήμα• 2ος τρόπος: τύπος ν-οστου

όρου• 3ος τρόπος: Προσθήκη

διαφοράς επαναληπτικά

αν=α0 + (ν-1)ω

Page 22: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣΗ/Υ - mie.uth.gr · PDF fileοποιαδήποτε δομή επιλογής Αν ικανοποιηθεί κάποια συνθήκη ελέγχου,

Παραγωγή όρων γεωμετρικής προόδου• Έστω ότι θέλουμε να

εμφανίσουμε τους αριθμούς:3, 6, 12, 24, 48, 96

Πρόκειται τους 6 όρους της γεωμετρικής πρόοδου με πρώτο όρο α0=3, και λόγο λ=2• 1ος τρόπος: τύπος ν-οστου

όρου• 2ος τρόπος: Πολ/μός λόγου

επαναληπτικά

αν=α0 λ (ν-1)

Page 23: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣΗ/Υ - mie.uth.gr · PDF fileοποιαδήποτε δομή επιλογής Αν ικανοποιηθεί κάποια συνθήκη ελέγχου,

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

π.χ. Να υπολογισθεί το άθροισμα:S= 1+1/2+1/3+…+1/100

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

Επίσης:

Τιμή φρουρός

Επίσης:

Αθροιστής

Page 24: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣΗ/Υ - mie.uth.gr · PDF fileοποιαδήποτε δομή επιλογής Αν ικανοποιηθεί κάποια συνθήκη ελέγχου,

Άθροιση υπό συνθήκη

• Με γνωστό πλήθοςπ.χ. Δίνονται 100 αριθμοί. Να βρεθεί το άθροισμα των άρτιων.

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

Page 25: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣΗ/Υ - mie.uth.gr · PDF fileοποιαδήποτε δομή επιλογής Αν ικανοποιηθεί κάποια συνθήκη ελέγχου,

Γινόμενο• Με γνωστό πλήθοςπ.χ. Δίνονται 100 αριθμοί. Να βρεθεί το γινόμενό τους

π.χ. Να υπολογισθεί το παραγοντικό:n!= 1 2 3 … n, (με 0!=1)

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

Σε περίπτωση που έχουμε Γινόμενο υπό Συνθήκη, απλώς η εντολή p=p*x μπαίνει μέσα ένα IF, αντίστοιχα με την Άθροιση υπό Συνθήκη.

Page 26: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣΗ/Υ - mie.uth.gr · PDF fileοποιαδήποτε δομή επιλογής Αν ικανοποιηθεί κάποια συνθήκη ελέγχου,

Καταμέτρηση• Με γνωστό πλήθοςπ.χ. Δίνονται 100 αριθμοί. Να βρεθεί το πλήθος των άρτιων.

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

Η καταμέτρηση με γνωστό πλήθος είναι πάντοτε υπό συνθήκη.

Χωρίς συνθήκη

Υπό συνθήκη

Παρατήρηση: Οι μεταβλητές που παίζουν το ρόλο του μετρητή δηλώνονται πάντοτε ως INTEGER

Μετρητής

Page 27: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣΗ/Υ - mie.uth.gr · PDF fileοποιαδήποτε δομή επιλογής Αν ικανοποιηθεί κάποια συνθήκη ελέγχου,

Εκλογή• Με γνωστό πλήθοςπ.χ. Δίνονται 100 αριθμοί. Να βρεθεί ο μέγιστος και ο ελάχιστος.

Επίσης:

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

Πολύ μεγάλη τιμή

Πολύ μικρή τιμή

Page 28: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣΗ/Υ - mie.uth.gr · PDF fileοποιαδήποτε δομή επιλογής Αν ικανοποιηθεί κάποια συνθήκη ελέγχου,

Αναπτύγματα Taylor και Maclaurin

( )

0

( )( ) ( )!

nn

n

f af x x an

=

= −∑

Αν μία συνάρτηση είναι απείρως παραγωγίσιμη στο σημείο α και είναι γνωστές όλες οι τιμές των παραγώγων της σε αυτό το σημείο τότε ισχύει το ακόλουθο ανάπτυγμα Taylor για x κοντά στο α

Αν α=0 τότε το ανάπτυγμα ονομάζεται Maclaurin( )

0

(0)( ) ( )!

nn

n

ff x xn

=

=∑Παραδείγματα αναπτυγμάτων Maclaurin:

0

1!

x n

ne x

n

=

=∑

0

11

n

nx

x

=

=− ∑

2

0

( 1)cos(2 )!

nn

nx x

n

=

−=∑

1

0

( 1)ln(1 )!

nn

nx x

n

+∞

=

−+ =∑

Page 29: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣΗ/Υ - mie.uth.gr · PDF fileοποιαδήποτε δομή επιλογής Αν ικανοποιηθεί κάποια συνθήκη ελέγχου,

Μεθοδολογία αντιμετώπισης αθροισμάτων απείρων Σειρών • 1ος Τρόπος: Επιλέγουμε αυθαίρετα να κρατήσουμε Ν όρους της

Σειράς και χρησιμοποιούμε Do με απαρίθμηση για να παράγουμε κάθε έναν από αυτούς

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

• 3ος Τρόπος: Χρησιμοποιούμε Do με συνθήκη (ή χωρίς) για την παραγωγή των όρων και για τον τερματισμό της επανάληψης ελέγχουμε το απόλυτο (ή το απόλυτο σχετικό) σφάλμα μεταξύ του αποτελέσματος δύο διαδοχικών επαναλήψεων. Το σφάλμα αυτό θα πρέπει να γίνει μικρότερο από μία προκαθορισμένη μικρή τιμή

Page 30: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣΗ/Υ - mie.uth.gr · PDF fileοποιαδήποτε δομή επιλογής Αν ικανοποιηθεί κάποια συνθήκη ελέγχου,

Χρονομέτρηση Προγράμματος• Πολλές φορές επιθυμούμαι να γνωρίζουμε πόσο χρόνο

διαρκεί η εκτέλεση κάποιας δομής επανάληψης.• Μπορούν να χρησιμοποιηθούν 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 δέχεται ακέραιες παραμέτρους)

Page 31: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣΗ/Υ - mie.uth.gr · PDF fileοποιαδήποτε δομή επιλογής Αν ικανοποιηθεί κάποια συνθήκη ελέγχου,

Χρονομέτρηση Προγράμματος

• CPU_TIME

• SYSTEM_CLOCK