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

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

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

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

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

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

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

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

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

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

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

Εισαγωγή στη Fortran. Μάθημα 3 ο. Ελευθερία Λιούκα

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

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

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

Κεφάλαιο 7: Υπορουτίνες

Εισαγωγή στη Fortran. Μάθημα 1 ο. Ελευθερία Λιούκα

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Εισαγωγή στην FORTRAN. Δρ. Ιωάννης Λυχναρόπουλος

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

Κεφάλαιο 7: Υποπρογράμματα. Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών

Προγραμματισμός με FORTRAN Συνοπτικός Οδηγός Α. Σπυρόπουλος Α. Μπουντουβής

Υπο-προγράμματα στη Fortran

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

Εντολή Δεδομένα Περιεχόμενα μετά την εκτέλεση 1 read(x) 122 x= 2 read(a,b,c) a= b= c= 3 read(d,e)

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

ΦΥΣ-151. Ηλεκτρονικοί Υπολογιστές Ι (FORTRAN 77) (Άνοιξη 2004)

Προγραμματισμός και Χρήση Ηλεκτρονικών Υπολογιστών - Βασικά Εργαλεία Λογισμικού

ΦΥΣ-151. Ηλεκτρονικοί Υπολογιστές Ι (FORTRAN 77) (Άνοιξη 2004)

Συνάρτηση Διαδικασία

ΥΠΟΛΟΓΙΣΤΕΣ Ι. Τύποι δεδομένων ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΠΡΑΞΕΙΣ. Παράδειγμα #1. Πράξεις μεταξύ ακεραίων αριθμών

ηµιουργία νέου τύπου δεδοµένων από το χρήστη

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

0.1 Εκχειλίσεις κατά την Επίλυση Τετραγωνικής Εξίσωσης

2. β. Συνθήκη ή επιλογή. 4. δ. Υποπρόγραμμα. 5. ε. ιαδικασία εισόδου ή εξόδου

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

8 FORTRAN 77/90/95/2003

Τμήμα Φυσικής Πανεπιστημίου Κύπρου Εαρινό Εξάμηνο 2015/2016. ΦΥΣ145 Υπολογιστικές Μέθοδοι στην Φυσική

Εργαστήριο 9 Συναρτήσεις στη PASCAL. Η έννοια του κατακερματισμού. Συναρτήσεις. Σκοπός

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

Στόχοι και αντικείμενο ενότητας. Εκφράσεις. Η έννοια του τελεστή. #2.. Εισαγωγή στη C (Μέρος Δεύτερο) Η έννοια του Τελεστή

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

Δομή του προγράμματος

ΠΙΝΑΚΑΣ ΠΕΡΙΕΧΟΜΕΝΩΝ

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

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

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

Δομή Προγράμματος C++, Χειρισμός Μεταβλητών και Συναρτήσεις Εισόδου - Εξόδου

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

Pascal, απλοί τύποι, τελεστές και εκφράσεις

ΦΥΣ 145 Μαθηματικές Μέθοδοι στη Φυσική. Γράψτε το ονοματεπώνυμο και αριθμό ταυτότητάς σας στο πάνω μέρος της αυτής της σελίδας.

Λογισµικό (Software SW) Γλώσσες

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

Εισαγωγή στο Προγραμματισμό για Μηχανολόγους Οδηγός Προετοιμασίας για τη Τελική Εξέταση

Ενότητα 1: «Εισαγωγή στην Αλγοριθμική και τον Προγραμματισμό. Απλές ασκήσεις με γλώσσα Pascal»

ΠΙΝΑΚΑΣ ΠΕΡΙΕΧΟΜΕΝΩΝ

Fortran και Αντικειμενοστραφής προγραμματισμός.

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

οκιμασία και πλάνο δοκιμασίας

Εισαγωγή στον Προγραμματισμό Python Μάθημα 4: Συναρτήσεις (functions) και δομοστοιχεία (modules) στην Python

Δομή προγράμματος στη Fortran

ΑΡΧΗ 1ΗΣ ΣΕΛΙ ΑΣ ΝΕΟ ΚΑΙ ΠΑΛΑΙΟ ΣΥΣΤΗΜΑ

Πρώτη επαφή με το μαθηματικό πακέτο Mathematica

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

Δομή προγράμματος στη Fortran

Συναρτήσεις στη Visual Basic 6.0

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

Εισαγωγή στον προγραμματισμό. Τμήμα Πληροφορικής & Επικοινωνιών ΤΕΙ Σερρών Εργαστήριο 4

2. β. Συνθήκη ή επιλογή. 4. δ. Υποπρόγραμμα. 5. ε. ιαδικασία εισόδου ή εξόδου

ΦΥΣ 145 Υπολογιστικές Μέθοδοι στη Φυσική. Πρόοδος 26 Μαρτίου 2007 Ομάδα 1 η

διακριτοποίηση αριθµητική παραγώγιση

Ρητή μετατροπή αριθμητικής τιμής σε άλλο τύπο. Τι θα τυπωθεί στον παρακάτω κώδικα;

Μεταγλωττιστές. Σημασιολογική Ανάλυση. Εργαστήριο 9. Διδάσκοντες: Δρ. Γεώργιος Δημητρίου Δρ. Άχμεντ Μάχντι

Σημειωματάριο Δευτέρας 9 Οκτ. 2017

Κεφάλαιο 12 : ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ

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

Pascal. 15 Νοεμβρίου 2011

Παράλληλη Επεξεργασία

ΚΕΦΑΛΑΙΟ 1ο 3ο. ΚΕΦΑΛΑΙΟ 5ο 6ο. ΚΕΦΑΛΑΙΟ 7ο. Δομημένος Προγραμματισμός - Γενικές Ασκήσεις Επανάληψης

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

ΦΥΣ 145 Μαθηµατικές Μέθοδοι στη Φυσική. Πρόοδος 28 Μαρτίου 2009 Οµάδα 1 η

Oι εντολές COMMON και PARAMETER

Εισαγωγή στον Προγραμματισμό Η/Υ για Χημικούς Μηχανικούς

Πληροφορική 2. Γλώσσες Προγραμματισμού

ΜΑΘΗΜΑ / ΤΑΞΗ : ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ / ΕΠΑΛ ΣΕΙΡΑ: ΗΜΕΡΟΜΗΝΙΑ:

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #4

3 η ΕΝΟΤΗΤΑ Συναρτήσεις στο MATLAB

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

ΑΠΑΝΤΗΣΕΙΣ. H διαδικασία ανεύρεσης λογικών λαθών περιλαμβάνει : β- Σωστό. Διαπίστωση του είδους του λάθους γ- Σωστό δ- Λάθος

Σκοπός. Αλγεβρικοί και Λογικοί Υπολογισμοί στη PASCAL

ΦΥΣ 145 Μαθηµατικές Μέθοδοι στη Φυσική. Πρόοδος 20 Μαρτίου 2011 Οµάδα

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

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

ΥΠΟΛΟΓΙΣΤΕΣ Ι. Τι χρειάζεται η εντολή DO ; ΕΠΑΝΑΛΗΨΕΙΣ ΕΝΤΟΛΗ DO. Όταν απαιτείται να εκτελεστεί πολλές φορές το ίδιο τμήμα ενός προγράμματος.

Κεφάλαιο 7ο: Συναρτήσεις και Υπορουτίνες

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

ΥΠΟΛΟΓΙΣΤΕΣ Ι. Τι είναι μια συνάρτηση; ΣΥΝΑΡΤΗΣΕΙΣ. Δήλωση συνάρτησης sq. Παράδειγμα συνάρτησης: υπολογισμός τετραγώνου

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

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ Κεφάλαιο 10 : Εντολές επιλογής και αποφάσεων

Ασκήσεις σε Επαναληπτικούς Βρόχους και Συναρτήσεις. Επανάληψη για την ενδιάμεση εξέταση. (Διάλεξη 13)

ιαφάνειες παρουσίασης #5

Transcript:

FORTRAN & Αντικειμενοστραφής Προγραμματισμός ΣΝΜΜ 2017 Μ4. Συναρτήσεις, Υπορουτίνες, Ενότητες - Ασκήσεις Γεώργιος Παπαλάμπρου Επικ. Καθηγητής ΕΜΠ Εργαστήριο Ναυτικής Μηχανολογίας george.papalambrou@lme.ntua.gr ΕΜΠ/ΣΝΜΜ Εργαστήριο Ναυτικής Μηχανολογίας

Ενότητες Μαθήματος 1. Εισαγωγή στην γλώσσα προγραμματισμού FORTRAN. 2. Απλοί τύποι δεδομένων, σταθερές και μεταβλητές, εκφράσεις, απλές εντολές. 3. Δομές ελέγχου. 4. Διαδικασίες {=Συναρτήσεις (functions), υπορουτίνες (subroutines)}, Ενότητες/μονάδες (modules). 5. Μεταφορά δεδομένων, είσοδος-έξοδος, εξωτερικά αρχεία δεδομένων 6. Φάσεις ανάπτυξης λογισμικού: προδιαγραφές, σχεδίαση, υλοποίηση, επαλήθευση, τεκμηρίωση, συντήρηση προγραμμάτων. 7. Σύνθετες δομές δεδομένων: πίνακες, εγγραφές, συνδεδεμένες λίστες. Δυναμική παραχώρηση μνήμης. 8. Βασικές έννοιες αντικειμενοστραφούς προγραμματισμού: αφηρημένοι τύποι δεδομένων, κλάσεις, αντικείμενα, μεταβλητές, μέθοδοι, ενθυλάκωση, κληρονομικότητα, πολυμορφισμός. 9. Διασύνδεση της FORTRAN με άλλες γλώσσες προγραμματισμού. 10. Υλοποίηση παραδειγμάτων και επίλυση προβλημάτων με τη γλώσσα προγραμματισμού FORTRAN.

Περιεχόμενα Ασκήσεων M3 M4 M7 M5 Selective Execution (IF-THEN-ELSE and SELECT CASE) Repetitive Execution (DO Loops) Functions and Modules Subroutines One-Dimensional Arrays Multi-Dimensional Arrays Formated Input and Output Σήμερα: 4 προγράμματα ασκήσεων M4 (και στην ιστοσελίδα μαθήματος: Dropbox/m4_codes/)

Υλικό Ασκήσεων Κατεβάστε από την ιστοσελίδα μαθήματος τα προγράμματα ασκήσεων και τρέξτε τα. slides παραδείγματα ασκήσεις Κώδικες f95 ασκήσεις

Functions 1. Υπολογισμός δύναμης Το πρόβλημα Γράψτε ένα πρόγραμμα για τον υπολογισμό της 3 ης δύναμης του 1, 2, 3,... 10 στις περιπτώσεις INTEGER και REAL. Απαιτείται να υπάρχει ένα function για τον υπολογισμό του κύβου του ακεραίου και ένα function για τον υπολογισμό του κύβου του πραγματικού. Cubes.f95 5

Functions 1. Υπολογισμός δύναμης 6

Functions 1. Υπολογισμός δύναμης 1. Tα Functions ακολουθούν το keyword CONTAINS PARAMETER για δήλωση σταθερών, δηλ. μεταβλητών που παίρνουν μια μοναδική τιμή, η οποία δεν αλλάζει ποτέ (πχ φυσικές σταθερές) 2. Function name = όνομα μεταβλητής με το αποτέλεσμα 3. Το Function επιστρέφει μόνον 1 αποτέλεσμα! 4. Functions ορίζονται μεταξύ CONTAINS END PROGRAM 7

Functions 1. Υπολογισμός δύναμης 8

Functions 1. Υπολογισμός δύναμης Η έξοδος του προγράμματος δίνει τα παρακάτω αποτελέσματα 9

Subroutines 1. Μετατροπή ημερομηνίας Το πρόβλημα Στην επεξεργασία δεδομένων, το έτος, ο μήνας και η ημέρα συνήθως γράφονται ως YYYYMMDD, όπου τα πρώτα τέσσερα ψηφία είναι έτος, τo πέμπτο και έκτο ψηφίο είναι μήνας και τα δύο τελευταία ψηφία είναι ημέρα. Για παράδειγμα το 19710428 υποννοεί 28 Απριλίου 1971. Γράψτε ένα πρόγραμμα που διαβάζει έναν ακέραιο με τη μορφή YYYYMMDD και εξάγει τις τιμές του έτους, μήνα και ημέρας, με χρήση υπορουτίνας. YYYYMMDD2.f95 10

Subroutines 1. Μετατροπή ημερομηνίας 5. Δεν απαιτείται σε FRTN95! 1. To Subroutine καλείται με το keyword CALL 2. INTENT(IN): είσοδος, INTENT(OUT): έξοδος 3. Το Subroutine επιστρέφει >= αποτελέσματα! 4. Subroutines ορίζονται μετά το END PROGRAM mod(19960602,10000)=602 mod(19960602,100)=2 11

Subroutines 1. Μετατροπή ημερομηνίας Δεν απαιτείται σε FRTN95! 12

Subroutines 1. Μετατροπή ημερομηνίας Η έξοδος του προγράμματος δίνει τα παρακάτω αποτελέσματα 13

Subroutines M4_ex22.f95 2. Πολυώνυμο Το πρόβλημα Επίλυση πολυωνύμου 2 ου βαθμού με χρήση υπορουτίνας Χρήση SELECT CASE για διαχωρισμό περιπτώσεων ριζών 14

Subroutines 2. Πολυώνυμο 2. Call Subroutine Solver() 1. SELECT CASE 15

Subroutines 2. Πολυώνυμο 16

Subroutines 2. Πολυώνυμο 17

Subroutines 2. Πολυώνυμο 18

Subroutines 3. Subroutines + Functions 19

Modules Γενικά Σε προηγούμενα παραδείγματα υπάρχουν πολλές εσωτερικές λειτουργίες που φτιάχνονται ως υπορουτίνες στο τέλος του κύριου προγράμματος. Στην πραγματικότητα, πολλές από αυτές είναι γενικές λειτουργίες που μπορούν επίσης να χρησιμοποιηθούν σε άλλα προγράμματα. Η γλώσσα Fortran > 90 παρέχει έναν τρόπο «συσκευασίας» των συχνότερα χρησιμοποιούμενων λειτουργιών σε ενότητες που ονομάζονται ενότητες (modules). Έχουν μια συντακτική μορφή παρόμοια με ένα κύριο πρόγραμμα, εκτός από ορισμένα ειδικά χαρακτηριστικά. 20

Modules Γενικά-Σύνταξη MODULE module-name IMPLICIT NONE [specification part] CONTAINS [internal-functions] END MODULE module-name 21

Modules Γενικά-Σύνταξη MODULE module-name IMPLICIT NONE [specification part] CONTAINS [internal-functions] END MODULE module-name Μία χρήση μιας ενότητας/μονάδας είναι να συμπεριλάβει τον ορισμό σταθερών που θα μπορούσαν να είναι χρήσιμα σε άλλα προγράμματα. Το module math_module περιέχει τιμές του π, e, και γ (θα μπορούσε να περιέχει πολλές άλλες). Κάθε πρόγραμμα που χρειάζεται αυτές τις σταθερές μπορεί απλά να χρησιμοποιήσει την μονάδα 22

Modules Γενικά-Σύνταξη MODULE module-name IMPLICIT NONE [specification part] CONTAINS [internal-functions] END MODULE module-name 1. Το module SumAverage δεν έχει specification part (οπότε δεν υπάρχει IMPLICIT NONE). 2. Περιέχει τα functions Sum() και Average(). 3. Προσοχή: το function Average() κάνει χρήση του Sum() για τον υπολογισμό αθροίσματος 3 REAL αριθμών. 23

Modules Γενικά-Σύνταξη 1. module DegreeRadianConversion: περιέχει PARAMETERs, PI και Degree180 και δύο functions DegreeToRadian() και RadianToDegree(). 2. Οι PARAMETERs χρησιμοπ. από τα functions. 3. Οι parameters είναι global για τα δύο functions. 24

Modules 1. Τριγωνομετρικές πράξεις με μοίρες Το πρόβλημα Οι τριγωνομετρικές συναρτήσεις sin(x) και cos(x) χρησιμοποιούν ακτίνια (rad) ως όρισμα. Χρησιμοποιώντας module, να σχεδιάσετε τριγωνομετρικές πράξεις που χρησιμοποιούν μοίρες (deg). Γράψτε ένα module που περιέχει functions για τη μετατροπή rad σε deg και το ανάποδο και sin(x) και cos(x) με ορίσματα deg αντί rad. TrigonFuncTest.f95 MyTrigonometricFunctions.f95 25

Modules 1. Τριγωνομετρικές πράξεις με μοίρες 1. To Module καλείται με το keyword USE 2. Ο γενικός κώδικας υπάρχει μόνο στο main program 26

Modules 1. Τριγωνομετρικές πράξεις με μοίρες 1. Tα Functions ακολουθούν το keyword CONTAINS 2. Υπάρχουν μόνον Functions και όχι άλλος γενικός κώδικας 1. To Module τελειώνει με το keyword END MODULE <Name> 27

Modules 1. Τριγωνομετρικές πράξεις με μοίρες Σε περίπτωση ύπαρξης ενός module, πρώτα γίνεται Toolbar Build Compile, -> Build το αρχείο του module και κατόπιν κατά τα γνωστά συνεχίζουμε με το κυρίως πρόγραμμα. ΑΛΛΙΩΣ εμφανίζεται το μήνυμα σφάλματος 28

Modules 1. Τριγωνομετρικές πράξεις με μοίρες Σε περίπτωση ύπαρξης ενός module, πρώτα γίνεται Toolbar Build Compile, -> Build το αρχείο του module και κατόπιν κατά τα γνωστά συνεχίζουμε με το κυρίως πρόγραμμα. 29

Modules 1. Τριγωνομετρικές πράξεις με μοίρες Η έξοδος του προγράμματος δίνει τα παρακάτω αποτελέσματα 30

Subroutines vs Functions Subroutine Functions 31