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

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

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

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

FORTRAN & Αντικειμενοστραφής Προγραμματισμός ΣΝΜΜ 2016

FORTRAN & Αντικειμενοστραφής Προγραμματισμός ΣΝΜΜ 2017

FORTRAN & Αντικειμενοστραφής Προγραμματισμός ΣΝΜΜ 2017

FORTRAN & Αντικειμενοστραφής Προγραμματισμός ΣΝΜΜ 2017

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

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

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

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

FORTRAN & Αντικειμενοστραφής Προγραμματισμός ΣΝΜΜ 2016

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

if(συνθήκη) {... // οµάδα εντολών } C: Από τη Θεωρία στην Εφαρµογή 5 ο Κεφάλαιο

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

Προβλήματα, αλγόριθμοι, ψευδοκώδικας

FORTRAN & Αντικειμενοστραφής Προγραμματισμός ΣΝΜΜ 2016

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

FORTRAN & Αντικειμενοστραφής Προγραμματισμός ΣΝΜΜ 2016

FORTRAN & Αντικειμενοστραφής Προγραμματισμός ΣΝΜΜ 2016

Προγραμματισμός I (Θ)

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

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

ΚΕΦΑΛΑΙΟ 10 ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ

Υπολογιστικά Συστήματα

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

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

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

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

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

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

Είδη εντολών. Απλές εντολές. Εντολές ελέγχου. Εκτελούν κάποια ενέργεια. Ορίζουν τον τρόπο με τον οποίο εκτελούνται άλλες εντολές

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

Ενότητα 1 Διάλεξη 3. Προγραμματισμός με Εφαρμογές στην Επιστήμη του Μηχανικού. Σιέττος Κωνσταντίνος

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

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

for for for for( . */

Χρησιμοποιείται για να αποφασίσει το πρόγραμμα αν θα κάνει κάτι σε ένα σημείο της εκτέλεσής του, εξετάζοντας αν ισχύει ή όχι μια συνθήκη.

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

TO ΥΠΟΠΡΟΓΡΑΜΜΑ ΣΥΝΑΡΤΗΣΗ

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

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

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

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

ΕΝΟΤΗΤΑ 4 Λήψη Αποφάσεων και Συναρτήσεις Ελέγχου

Διάλεξη 2η: Αλγόριθμοι και Προγράμματα

Τεχνικές σχεδίασης προγραμμάτων, Προγραμματιστικά Περιβάλλοντα

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

ΚΕΦΑΛΑΙΟ 8 Η ΓΛΩΣΣΑ PASCAL

ΕΞΕΤΑΣΤΕΑ ΥΛΗ (SYLLABUS) ADVANCED αντικειμενοστραφής προγραμματισμός ΕΚΔΟΣΗ 1.0. Σόλωνος 108,Τηλ Φαξ

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

Κεφάλαιο 10 ο Υποπρογράµµατα

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

Ανάπτυξη και Σχεδίαση Λογισμικού

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

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

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

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

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

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java

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

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

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

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

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

FORTRAN & Αντικειμενοστραφής Προγραμματισμός ΣΝΜΜ 2017

Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον. Διάρκεια 3 ώρες. Όνομα... Επώνυμο... Βαθμός...

10. Με πόσους και ποιους τρόπους μπορεί να αναπαρασταθεί ένα πρόβλημα; 11. Περιγράψτε τα τρία στάδια αντιμετώπισης ενός προβλήματος.

ΜΕΡΙΚΑ ΣΤΟΙΧΕΙΑ ΓΙΑ ΤΙΣ ΓΛΩΣΣEΣ ΠPOΓPAMMATIΣMOY

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

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

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

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

ΑΠΑΝΤΗΣΕΙΣ ΘΕΜΑ Α A1. 2-Λάθος 3-Λάθος 4-Σωστό 5-Λάθος A2. integer. real. Boolean. char. string A3.

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

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

ΚΕΦΑΛΑΙΟ 10 ΕΝΤΟΛΕΣ ΕΠΙΛΟΓΗΣ (ή εντολές Ελέγχου και Επιλογής ή εντολές Επιλογής και Απόφασης)

Διάλεξη 04: Παραδείγματα Ανάλυσης

Σημειώσεις του εργαστηριακού μαθήματος Πληροφορική ΙΙ. Εισαγωγή στην γλώσσα προγραμματισμού

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

Μέρος 2 Κατασκευή Συντακτικού Αναλυτή

Διάλεξη 04: Παραδείγματα Ανάλυσης Πολυπλοκότητας/Ανάλυση Αναδρομικών Αλγόριθμων

ΤΕΛΟΣ 1ΗΣ ΑΠΟ 5 ΣΕΛΙΔΕΣ

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

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

ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 4. Παραδείγματα Ανάλυσης Πολυπλοκότητας Ανάλυση Αναδρομικών Αλγόριθμων

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

Κεφάλαιο 4ο: Εντολές επιλογής

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

Επεξεργασία Ερωτήσεων

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

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

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

1 η ΕΝΟΤΗΤΑ ΕΙΣΑΓΩΓΗ (Προγραμματισμός & MATLAB)

Αντίρριο, 14/03/2017 Προδιαγραφές Εργαστηριακής Εργασίας για το μάθημα «Μεταγλωττιστές»

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

Εισαγωγή στην Αριθμητική Ανάλυση

επιµέλεια Θοδωρής Πιερράτος

Transcript:

FORTRAN και Αντικειμενοστραφής Προγραμματισμός Παραδόσεις Μαθήματος 2016 Δρ Γ Παπαλάμπρου Επίκουρος Καθηγητής ΕΜΠ georgepapalambrou@lmentuagr Εργαστήριο Ναυτικής Μηχανολογίας (Κτίριο Λ) Σχολή Ναυπηγών Μηχανολόγων Μηχανικών Εθνικό Μετσοβιο Πολυτεχνείο March 10, 2016 Γ Παπαλάμπρου - Μάθημα 3 (Μ3) Δομές ελέγχου, συναρτήσεις, διαδικασίες, πέρασμα παραμέτρων

Περιεχόμενα ύλης 1 Εισαγωγή στην γλώσσα FORTRAN 2 Απλοί τύποι δεδομένων, σταθερές, μεταβλητές, εκφράσεις, εντολές 3 Δομές ελέγχου, συναρτήσεις, διαδικασίες, πέρασμα παραμέτρων [Μ3] 4 Σύνθετες δομές δεδομένων: πίνακες, εγγραφές Παραχώρηση μνήμης 5 Μεταφορά δεδομένων, αρχεία εισόδου/εξόδου 6 Στοιχεία μεθοδολογίας προγραμματισμού: αλγόριθμοι, δομές δεδομένων, επανάληψη, αναδρομή, δομημένος προγραμματισμός 7 Φάσεις ανάπτυξης λογισμικού: προδιαγραφές, σχεδίαση, υλοποίηση, επαλήθευση, τεκμηρίωση, συντήρηση προγραμμάτων 8 Αντικειμενοστραφής προγραμματισμός: τύποι δεδομένων, κλάσεις, αντικείμενα, κληρονομικότητα, πολυμορφισμός 9 Διασύνδεση FORTRAN με άλλες γλώσσες (C/C++, MATLAB) Γ Παπαλάμπρου - Μάθημα 3 (Μ3) Δομές ελέγχου, συναρτήσεις, διαδικασίες, πέρασμα παραμέτρων

Δομές ελέγχου-εισαγωγή 1 Μέχρι τώρα είδαμε πώς μπορεί να δωθούν δηλώσεις μεταβλητών, εκφράσεις και εντολές και πώς αυτές μπορεί να διαταχθούν για να σχηματίσουν μια ακολουθία κώδικα που εκτελείται βήμα-βήμα 2 Στους περισσότερες υπολογισμούς ωστόσο, αυτή η απλή αλληλουχία των δηλώσεων είναι από μόνη της ανεπαρκής για την επίλυση του προβλήματος 3 Για παράδειγμα, μπορεί να επιθυμούμε να ακολουθηθεί μια δυνατή διαδρομή μέσω ενός τμήματος του κώδικα, ανάλογα με το αν μια υπολογιζόμενη τιμή είναι θετική ή αρνητική 4 Επίσης μπορεί να θέλουμε να αθροίσουμε 1500 στοιχεία ενός πίνακα, οπότε να θέσουμε 1500 εντολές άθροισης είναι παράλογο 5 Προκύπτει λοιπόν η ανάγκη να υπάρχει η δυνατότητα να επαναλαμβάνεται τμήμα εντολών, να περάσει ο έλεγχος από το ένα μέρος προγράμματος σε ένα άλλο, ή και να σταματήσει η επεξεργασία εντελώς Γ Παπαλάμπρου - Μάθημα 3 (Μ3) Δομές ελέγχου, συναρτήσεις, διαδικασίες, πέρασμα παραμέτρων

Δομές ελέγχου-εισαγωγή Για αυτούς τους λόγους, η Fortran διαθέτει διάφορες μεθόδους για να καταστεί δυνατή η λογική ροή μέσα από τις δηλώσεις του προγράμματος Η πιο σημαντική μορφή είναι εκείνη ενός τμήματος κώδικα (block), το οποίο ξεκινά με μια αρχική δήλωση λέξη-κλειδί, μπορεί να έχει ενδιάμεσες λέξεις-κλειδιά, και καταλήγει με μια κατάλληλη δήλωση Τα τμήματα αυτά μπορεί να είναι ένθετα, δηλ ένα τμήμα μπορεί να περιέχει ένα άλλο τμήμα, κοκ Η εκτέλεση ενός τέτοιου τμήματος κώδικα ξεκινάει πάντα με την πρώτη του έκφραση Γ Παπαλάμπρου - Μάθημα 3 (Μ3) Δομές ελέγχου, συναρτήσεις, διαδικασίες, πέρασμα παραμέτρων

Δημιουργία βρόχου If Ο βρόχος ελέγχου If περιέχει μία ή περισσότερες αλληλουχίες από εκφράσεις, από όπου το πολύ μια επιλέγεται για εκτέλεση Η γενική μορφή δείχνεται στο Σχήμα 41 Από εδώ και πέρα θα χρησιμοποιούμε αγκύλες για να δείχνουμε προαιρετικά στοιχεία (optional), και θα ακολουθούν τελείες, αν μπορεί να υπάρξει αριθμός από τέτοια στοιχεία Μπορεί να υπάρξει οποιοσδήποτε αριθμός (συμπεριλαμβανομένου του μηδενός ) από else if εκφράσεις και κανένα ή ένα else Η ονοματοδοσία είναι προαιρετική, αλλά ένα else ή else if μπορεί να ονομαστεί μόνο αν το αντίστοιχο if και end if έχει ονομαστεί, και πρέπει να δοθεί το ίδιο όνομα Το όνομα μπορεί να είναι οποιαδήποτε έγκυρο όνομα στην Fortran (θα το δούμε παρακάτω στις ρουτίνες) Γ Παπαλάμπρου - Μάθημα 3 (Μ3) Δομές ελέγχου, συναρτήσεις, διαδικασίες, πέρασμα παραμέτρων

Δημιουργία βρόχου If Γ Παπαλάμπρου - Μάθημα 3 (Μ3) Δομές ελέγχου, συναρτήσεις, διαδικασίες, πέρασμα παραμέτρων

Δημιουργία βρόχου If Ένα παράδειγμα με την απλούστερη μορφή ενός block με if ακολουθεί: swap: if (x < y) then temp = x x = y y = temp end if swap Γ Παπαλάμπρου - Μάθημα 3 (Μ3) Δομές ελέγχου, συναρτήσεις, διαδικασίες, πέρασμα παραμέτρων

Δημιουργία βρόχου If Η επόμενη απλή μορφή έχει ένα μπλοκ else, αλλά όχι else if Έτσι τώρα υπάρχει ένα εναλλακτικό μπλοκ για την περίπτωση όπου η κατάσταση είναι ψευδής Το πρόσημο του x αλλάζει αν το x είναι μικρότερο του y αλλιώς το πρόσημο του y αλλάζει αν το x είναι μεγαλύτερο ή ίσο με το y:! code: test_if if (x < y) then x = -x else y = -y end if Γ Παπαλάμπρου - Μάθημα 3 (Μ3) Δομές ελέγχου, συναρτήσεις, διαδικασίες, πέρασμα παραμέτρων

Δημιουργία βρόχου If: πρόγραμμα test_if Γ Παπαλάμπρου - Μάθημα 3 (Μ3) Δομές ελέγχου, συναρτήσεις, διαδικασίες, πέρασμα παραμέτρων

Δημιουργία βρόχου If: πρόγραμμα test_if Γ Παπαλάμπρου - Μάθημα 3 (Μ3) Δομές ελέγχου, συναρτήσεις, διαδικασίες, πέρασμα παραμέτρων

Δημιουργία βρόχου If-else if Ο πιο γενικός τύπος δημιουργίας if έχει το else if για να δημιουργήσει διαδοχικούς ελέγχους, όπου κάθε ένας συνδέεται με ομάδα από εκφράσεις Οι έλεγχοι γίνονται ο ένας μετά τον άλλο, μέχρι ένας να ικανοποιηθεί, οπότε οι σχετικές εκφράσεις if ή else if εκτελούνται Έπειτα ο έλεγχος περνάει στο τέλος του if, όπου αν κανένας έλεγχος δεν έχει ικανοποιηθεί τότε και κανένα τμήμα προγράμματος δεν έχει εκτελεστεί, εκτός αν υπάρχει μια τελική συνθήκη τύπου «catch -all» μέσω ένος else Γ Παπαλάμπρου - Μάθημα 3 (Μ3) Δομές ελέγχου, συναρτήσεις, διαδικασίες, πέρασμα παραμέτρων

Δημιουργία βρόχου If φωλιάς Επιτρέπεται η δημιουργία if σε μορφή φωλιάς (nested), με το ένα εντός ενός άλλου σε ένα αυθαίρετο βάθος, όπως φαίνεται στην εικόνα του Σχήμα 42 Εδώ βλέπουμε την αναγκαιότητα τοποθέτησης διαστημάτων tab στον κώδικα, προκειμένου να είναι εύκολα κατανοητή η λογική Για ακόμη πιο σύνθετη διάταξη πολλαπλών if, συνιστάται η ονοματοδοσία τους Οι δηλώσεις πρέπει να είναι ένθετες σωστά σε κάθε επίπεδο, ώστε να περιβάλλονται πλήρως απο το επόμενο εξωτερικό ifelse-end if Γ Παπαλάμπρου - Μάθημα 3 (Μ3) Δομές ελέγχου, συναρτήσεις, διαδικασίες, πέρασμα παραμέτρων

Δημιουργία Case Η Fortran παρέχει και άλλο τρόπο για την επιλογή μίας περίπτωσης ανάμεσα σε πολλές άλλες περιπτώσεις, παρόμοιο με εκείνο της δομής if, αυτόν του case Οι κύριες διαφορές μεταξύ των δύο δομών είναι ότι για την περίπτωση του case μόνο μια έκφραση αξιολογείται για έλεγχο και η έκφραση αυτή μπορεί να ανήκει σε όχι περισσότερο από μία σειρά από προκαθορισμένες τιμές Η μορφή ενός case φαίνεται παρακάτω: Γ Παπαλάμπρου - Μάθημα 3 (Μ3) Δομές ελέγχου, συναρτήσεις, διαδικασίες, πέρασμα παραμέτρων

Δημιουργία Case Η έκφραση expr πρέπει να είναι βαθμωτό μέγεθος και τύπου χαρακτήρα, λογικού, ή ακέραιου, και οι καθορισμένες τιμές σε κάθε selector πρέπει να είναι του ίδιο τύπου Στην περίπτωση χαρακτήρα, τα μήκη επιτρέπεται να διαφέρουν, αλλά όχι ο τύπος Η απλούστερη μορφή του selector είναι ένα βαθμωτό μέγεθος σε παρενθέσεις, όπως στην έκφραση case(1) Γ Παπαλάμπρου - Μάθημα 3 (Μ3) Δομές ελέγχου, συναρτήσεις, διαδικασίες, πέρασμα παραμέτρων

Δημιουργία Case Η γενική μορφή του selector είναι μία λίστα από μη επικαλυπτόμενες τιμές, όλες του ίδιου τύπου όπως η expr, μέσα σε παρενθέσεις, όπως case (1, 2, 7, 10:17, 23) Οι τιμές της λίστας προτείνεται να δίνονται με την σειρά, παρότι αυτό δεν είναι υποχρεωτικό Οι τιμές της λίστας δεν επιτρέπεται να είναι επικαλυπτόμενες Οπότε το μέγιστο είναι μόνο ένας selector να επαληθεύεται Στην περίπτωση που κανένας selector δεν επαληθεύεται, ο έλεγχος του προγράμματος περνά στην επόμενη εκτελέσιμη δήλωση μετά το end select Γ Παπαλάμπρου - Μάθημα 3 (Μ3) Δομές ελέγχου, συναρτήσεις, διαδικασίες, πέρασμα παραμέτρων

Δημιουργία Case Η μορφή case default είναι ισοδύναμη με ένα κατάλογο όλων των δυνατών τιμών expr που δεν περιλαμβάνονται στις υπόλοιπες περιπτώσεις των selector Μπορεί να υπάρχει μόνο μία περίπτωση case default σε δομή case Η μορφή case default δεν πρέπει κατ ανάγκη να είναι η τελευταία έκφραση σε μία δομή case Γ Παπαλάμπρου - Μάθημα 3 (Μ3) Δομές ελέγχου, συναρτήσεις, διαδικασίες, πέρασμα παραμέτρων

Δημιουργία βρόχου Do Πολλά προβλήματα στα μαθηματικά απαιτούν την ικανότητα επανάληψης (iteration) Για παράδειγμα αν θέλουμε να αθροίσουμε τα στοιχεία ενός πίνακα a μήκους 10, θα μπορούσαμε να γράψουμε (με κόπο!) sum = a(1) sum = sum+a(2) : sum = sum+a(10) Η Fortran παρέχει την δυνατότητα γνωστή ως δομή do, η οποία επιτρέπει να μειώσουμε τις παραπάνω δέκα γραμμές κώδικα στα εξής sum = 00 do i = 1,10! i is of type integer sum = sum+a(i) end do Γ Παπαλάμπρου - Μάθημα 3 (Μ3) Δομές ελέγχου, συναρτήσεις, διαδικασίες, πέρασμα παραμέτρων

Δημιουργία βρόχου Do Σε αυτό το κομμάτι του κώδικα θέσαμε πρώτα sum=00, και στη συνέχεια το τμήμα μεταξύ των do και end do εκτελέστηκε δέκα φορές Σε κάθε επανάληψη υπάρχει ένας σχετικός δείκτης (i), ο οποίος λαμβάνει την τιμή 1 για την πρώτη επανάληψη του βρόχου, 2 για την δεύτερη και ούτω καθ εξής μέχρι 10 Η μεταβλητή i είναι ακέραια μεταβλητή αλλά υπόκειται στον κανόνα ότι δεν πρέπει να τροποποιηθεί εντός της δομής do-end do Γ Παπαλάμπρου - Μάθημα 3 (Μ3) Δομές ελέγχου, συναρτήσεις, διαδικασίες, πέρασμα παραμέτρων

Δημιουργία βρόχου Do Αν θέλουμε να αθροίσουμε από το τέταρτο ως το ένατο στοιχείο, θα γράψουμε do i = 4, 9, προσδιορίζοντας έτσι την απαιτούμενη πρώτη και τελευταία τιμή του i Αν, εναλλακτικά, θέλουμε να αθροίσουμε τα μονά στοιχεία, θα γράψουμε do i = 1, 9, 2, όπου η τρίτη από τις τρεις παραμέτρους βρόχου, δηλαδή το 2, διευκρινίζει ότι στο i η αύξηση είναι σε βήματα των 2, και όχι στην προκαθορισμένη τιμή του 1, το οποίο υποτίθεται εάν δεν δίνεται τρίτη παράμετρος Γ Παπαλάμπρου - Μάθημα 3 (Μ3) Δομές ελέγχου, συναρτήσεις, διαδικασίες, πέρασμα παραμέτρων

Δημιουργία πολλαπλού βρόχου Do Οποιοσδήποτε αριθμός δομών do μπορεί να είναι ένθετος (nested) Έτσι μπορούμε να γράψουμε ένα πολλαπλασιασμός πινάκων όπως φαίνεται στο Σχήμα 46 Γ Παπαλάμπρου - Μάθημα 3 (Μ3) Δομές ελέγχου, συναρτήσεις, διαδικασίες, πέρασμα παραμέτρων

Η δήλωση go to Μερικές φορές, ειδικά όταν πρόκειται για συνθήκες σφάλματος, οι δομές ελέγχου που μόλις περιγράψαμε μπορεί να είναι ανεπαρκείς για τις ανάγκες του προγραμματιστή Μία λύση είναι η χρήση δήλωσης go to label, όπου label είναι ονομασία σε κάποια εκτελέσιμη εντολή Η δήλωσης go to αποτελεί μία από τις πιό κακές περιπτώσεις εντολής προγραμματισμού Για παράδειγμα έχουμε x = y + 30 go to 4 3 x = x + 20 4 z = x + y Γ Παπαλάμπρου - Μάθημα 3 (Μ3) Δομές ελέγχου, συναρτήσεις, διαδικασίες, πέρασμα παραμέτρων

Η δήλωση go to Βλέπουμε ότι μετά την εκτέλεση της πρώτης δήλωσης εντολής, το πρόγραμμα μεταφέρεται στην τελευταία δήλωση, με ονομασία 4 Η δήλωση με ονομασία 3 παραλήφθηκε και μπορεί να εκτελεστεί μόνο εάν υπάρχει ένας κλάδος προγράμματος προς σε αυτή την εντολή (με αρ 3) κάπου αλλού Εάν μάλιστα μια δήλωση μετά από ένα go to δεν έχει ονομασία (label), το πρόγραμμα δεν μπορεί ποτέ να φτάσει εκεί, δημιουργώντας την περίπτωση dead code, συνήθως ένα σημάδι κακού προγραμματισμού Γ Παπαλάμπρου - Μάθημα 3 (Μ3) Δομές ελέγχου, συναρτήσεις, διαδικασίες, πέρασμα παραμέτρων

Παράδειγμα προγράμματος μετατροπής Μελετήστε το πρόγραμμα του Σχ 47 του βιβλίου Μπορείτε να το εκτελέσετε στο περιβάλλον Plato? Γ Παπαλάμπρου - Μάθημα 3 (Μ3) Δομές ελέγχου, συναρτήσεις, διαδικασίες, πέρασμα παραμέτρων

Βιβλιογραφία M Metcalf, J Reid, M Cohen, Modern Fortran Explained, Oxford, 4th Edition, 2011 κεφάλαιο 4: control constructs Γ Παπαλάμπρου - Μάθημα 3 (Μ3) Δομές ελέγχου, συναρτήσεις, διαδικασίες, πέρασμα παραμέτρων