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

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

ΒΑΣΙΚΟΙ ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ

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

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

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

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

Ενότητα 1 Διάλεξη 2β

Βασικοί τύποι δεδομένων (Pascal) ΕΠΑ.Λ Αλίμου Γ Πληροφορική Δομημένος Προγραμματισμός (Ε) Σχολ. Ετος Κων/νος Φλώρος

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

ΕΙ ΑΓΩΓΉ ΣΗΝ FORTRAN

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

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Κεφάλαιο 8 : H γλώσσα προγραµµατισµού Pascal 1 ο Μέρος σηµειώσεων (Ενότητες 8.1 & 8.2 σχολικού βιβλίου)

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

Σχολικό Βιβλίο - Κεφάλαιο 7 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕ PASCAL ΠΑΡΟΥΣΙΑΣΗ 13

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

ΕισαγωγήστουςΗ/Υ. PHP Hypertext Preprocessor

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

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

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

ΦΥΛΛΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ 1

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 25/10/07

Δύο είναι οι κύριες αιτίες που μπορούμε να πάρουμε από τον υπολογιστή λανθασμένα αποτελέσματα εξαιτίας των σφαλμάτων στρογγυλοποίησης:

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

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

Χρονικές σειρές 1 ο μάθημα: Εισαγωγή στη MATLAB

Εισαγωγή στο προγραμματισμό Η/Υ

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

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

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

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

8 FORTRAN 77/90/95/2003

ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΑΛΓΟΡΙΘΜΟΥΣ ΚΑΙ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΤΜΗΜΑ ΠΟΛΙΤΙΣΜΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΣ. Διδάσκουσα Δρ Β.

Προγραμματισμός Ι (ΗΥ120)

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

Τυπικές χρήσεις της Matlab

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

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

ΚΕΦΑΛΑΙΟ 4ο. Α. Το περιβάλλον της Microsoft Fortran Powerstation

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

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

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

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

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

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

Προγραμματισμός PASCAL

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

ΚΕΦΑΛΑΙΟ 3. Εκφράσεις, τελεστές, σχόλια. 3.1 Εισαγωγή

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

Δεδομένα, τελεστές, είσοδος/έξοδος

Ο τελεστής ανάθεσης και οι εντολές εισόδουεξόδου

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

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

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

Visual Basic Βασικές Έννοιες

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

5 &6. Τύποι δεδομένων, τελεστές και

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

3 ο Εργαστήριο Μεταβλητές, Τελεστές

Κεφάλαιο 2.5: Τύποι εδοµένων, Τελεστές και Αριθµητικές Εκφράσεις. ( ιαλέξεις 5-6) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

Εισαγωγή στη χρήση Η/Υ. Αναγνωστοπούλου Χριστίνα Λέκτορας

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

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

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

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

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

Εντολές εισόδου - εξόδου. Εισαγωγή στη C++

ΚΕΦΑΛΑΙΟ 9 ΒΑΣΙΚΕΣ ΕΝΤΟΛΕΣ

Προγραμματισμός Ι (ΗΥ120)

Γλώσσα Προγραμματισμού C

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

Δυναμικές Ιστοσελίδες Εισαγωγή στην Javascript για προγραμματισμό στην πλευρά του client

- program p_name(output); - uses crt;

A ΜΕΡΟΣ. 1 program Puppy_Dog; 2 3 begin 4 end. 5 6 { Result of execution 7 8 (There is no output from this program ) 9 10 }

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

Αναπαράσταση Δεδομένων. ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική

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

Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 2 : ΜΕΤΑΒΛΗΤΕΣ ΤΕΛΕΣΤΕΣ & ΕΚΦΡΑΣΕΙΣ ΕΛΕΓΧΟΣ ΡΟΗΣ

Γλώσσα Προγραμματισμού C++ Εισαγωγή - Μια πρώτη ματιά

Αντικειμενοστρεφής Προγραμματισμός -Python. Κ.Π. Γιαλούρης

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

Εισαγωγή στην Επιστήμη Υπολογιστών. Εισαγωγή στην Python

Ει αγωγή η Fortran.

ΕΡΩΤΗΣΕΙΣ ΔΙΑΦΟΡΩΝ ΤΥΠΩΝ ΣΤΟ ΚΕΦΑΛΑΙΟ 2.2

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

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

ΥΠΟΛΟΓΙΣΤΕΣ Ι. Ένα πρώτο πρόγραμμα ΔΟΜΗ TOY ΠΡΟΓΡΑΜΜΑΤΟΣ. Τι σημαίνουν οι εντολές. Από τι αποτελείται ένα πρόγραμμα

Οικονόμου Βαγγέλησ Διάλεξη Νο 2. Δομημένοσ Προγραμματιςμόσ - Διάλεξη 2

Γραφικά υπολογιστών Εργαστήριο 1 Εισαγωγή στην Python

Προγραμματισμός Ι (HY120)

Διάλεξη 2. Μεταβλητές - Δομές Δεδομένων - Eίσοδος δεδομένων - Έξοδος: Μορφοποίηση - Συναρτήσεις. Διοργάνωση : ΚΕΛ ΣΑΤΜ

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

ΚΕΦΑΛΑΙΟ 2. Τιμές, τύποι, μεταβλητές, λέξεις-κλειδιά, εντολές. 2.1 Εισαγωγή

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

PROGRAM example Η αρχή και το όνοµα του προγράµµατος IMPLICIT NONE REAL:: moires, aktinia moires = 180. aktinia = moires * / 180.

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

Εισαγωγή στο MATLAB. Κολοβού Αθανασία, ΕΔΙΠ,

Διάλεξη 1. Πράξεις Τελεστές Έλεγχος Ροής

Γιάννης Σαμωνάκης. 1 ο ΣΧΟΛΕΙΟ ΚΩΔΙΚΑ «Βασικά Θέματα Προγραμματισμού στην Ανάπτυξη Δυναμικών Διαδικτυακών Εφαρμογών» (Part 4 - PHP)

2.1. Εντολές Σχόλια Τύποι Δεδομένων

Transcript:

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

Περιεχόμενα Ιστορία της Fortran Βασικές γνώσεις Fortran Επιτρεπτοί χαρακτήρες Μορφή προγράμματος Τύποι μεταβλητών Πράξεις και λογικές εκφράσεις Ακρίβεια δεκαδικών ψηφίων

Ιστορία της Fortran Ονομασία : FORmula TRANslation Ανάπτυξη ανάμεσα στο 1954 και 1957 από την IBM Σκοπός : Επίλυση μαθηματικών προβλημάτων Εκδόσεις : FORTRAN-66 FORTRAN-77 FORTRAN-90 FORTRAN-95 FORTRAN 2000 FORTRAN 2003 FORTRAN 2008

Γιατί FORTRAN? Πιο ισχυρή από matlab, C++ Η ανώτερη γλώσσα ως σήμερα για αριθμητικές, επιστημονικές,τεχνολογικές εφαρμογές FORTRAN vs C++ Παρραληλισμός δεδομένων Εξαγωγή δεδομένων Συναρτησιακός προγραμματισμός Αριθμητική αξιοπιστία C++ : Αντικειμενοστραφής προγραμματισμός

Coding in UNIX Οποιοδήποτε πρόγραμμα επεξεργασίας κειμένου Αποθήκευση με κατάληξη.f90 mycode.f90 Compile program Πληκτρολόγηση f90 ακολουθούμενο από το όνομα του προγράμματος f90 mycode.f90 Δημιουργία εκτελέσιμου αρχείου a.out

Διαφορές FORTRAN 77 FORTRAN 90 FORTRAN 77 Fixed source form Γραφή σε στήλες 1-5 statement labels 6 continuation indicator 7-72 statements Χρήση συγκεκριμένων χαρακτήρων Α-Ζ, 0-9 + - * / = ( )., $ : blank FORTRAN 90 Free source form Ελεύθερη γραφή Eπιπλέον χαρακτήρες a-z! & ; < >? Έκδοση 2003 ~ \ [ ] ` ^ { } # @

Χρήσιμοι χαρακτήρες! : Ονομασία bang & Χρήση : Εισαγωγή πριν το σχόλιο (αγνόηση από τον compiler) Χρήση : Συνέχιση εντολής σε επόμενη γραμμή Μέγιστη επέκταση : 39 συνεχόμενες γραμμές (Μήκος γραμμής : 132 χαρακτήρες)

Παράδειγμα 1 PROGRAM test 2!This line is a comment 3!Ignored by the compiler 4 a=3.0+4.0+& 5 13.0 6!After execution variable a will have the value 20.0 7 PRINT*a 8 END

Ιδιότητες Case insensitive A ίδιο με a Write, write, WRITE, Write, Λέξεις κλειδιά με κεφαλαία PROGRAM, END, PRINT, READ,

Μορφή Προγράμματος 1) Heading 2) Implicit None 3) Specification Section 4) Execution Section 5) Internal Subprograms 6) End Program

HEADING Έχει τη μορφή PROGRAM name, όπου το όνομα αποτελείται μόνο από επιτρεπτούς χαρακτήρες χωρίς κενά Πρέπει να ξεκινάει με γράμμα Μέγιστο μήκος 30 χαρακτήρες Tip: Να είναι σχετικό με το πρόγραμμα που φτιάχνω

Implicit None Εντολή όχι απαραίτητη για να κάνει compile και να τρέξει το πρόγραμμα Αποτρέπει τυχόν errors που σχετίζονται με τους τύπους μεταβλητών Ακυρώνει τη σύμβαση ονομασίας

Specification Section Το τμήμα στο οποίο δηλώνονται απαραίτητα όλες οι μεταβλητές και οι σταθερές που θα χρησιμοποιηθούν Execution Section Το τμήμα στο οποίο προσδιορίζονται οι ενέργειες του προγράμματος

Internal Subprograms Αν χρειαστεί να χρησιμοποιηθούν υπορουτίνες τοποθετούνται σε αυτό το τμήμα (μέσα στο κυρίως πρόγραμμα) End Program Δείχνει στον compiler που τελειώνει το πρόγραμμα και σταματά την εκτέλεση (μπορούμε να χρησιμοποιήσουμε και ετικέτα)

Παράδειγμα 1 PROGRAM introduction 2 IMPLICIT NONE 3!Σε αυτό το τμήμα ορίζω τις σταθερές και τις 4!μεταβλητές που χρειάζομαι 5 INTEGER :: age=26 6 CHARACTER(4) :: name= ERIC 7!Τμήμα εκτέλεσης ενεργειών 8 PRINT*, My name is,name, and I am,age, years old. 9!Τμήμα που θα βάζαμε τις υπορουτίνες αν είχαμε 10 END PROGRAM introduction

Τύποι μεταβλητών Πέντε βασικοί τύποι Real Integer Complex Character Logical Δήλωση μεταβλητών/σταθερών TYPE :: var Όπου TYPE : τύπος δεδομένων π.χ. Real, Integer κτλ var : το όνομα της μεταβλητής

Παραδείγματα REAL :: temp INTEGER :: A=4 CHARACTER :: name,answer REAL :: A,B,C=2.0

REAL Οι πραγματικοί αριθμοί αναπαριστώνται σε δεκαδική μορφή Το 3 δεν ειναι πραγματικός, το 3.0 ειναι Οι δυνάμεις έχουν τη μορφή: 4.56E2 INTEGER Θετικοί ή αρνητικοί αριθμοί (και το 0) Χωρίς κόμμα, τελεία κτλ

COMPLEX Δυνατότητα ορισμού μιγαδικών (φανταστικών) αριθμών Το πρώτο όρισμα αναπαριστά το πραγματικό μέρος και το δεύτερο το φανταστικό μέρος Π.χ. Αν θέλω να γράψω τον αριθμό 4.2 + 2.3i : COMPLEX :: A A = (4.2,2.3)

CHARACTER Μια ακολουθία επιτρεπτών χαρακτήρων/ συμβόλων της FORTRAN που περικλείεται από εισαγωγικά ή απόστροφους Καλό είναι να ορίζουμε το μήκος του CHARACTER που θα χρησιμοποιήσουμε CHARACTER (LEN = n) :: name CHARACTER (n) :: name word = "can't" word = 'can''t'

LOGICAL Παίρνουν την τιμή.true ή.false Αν ζητηθεί από το χρήστη να εισάγει κάποια από τις δύο τιμές: LOGICAL :: A, B PRINT *, "What are the values of A and B?" READ (*,*) A, B Εισαγωγή.TRUE,.Turtle κτλ σημαίνει TRUE

PARAMETER Συγκεκριμένη σταθερά εμφανίζεται συχνά, την ορίζουμε ως παράμετρο Π.χ. INTEGER, PARAMETER :: N = 10 REAL, PARAMETER :: pi = 3.141593 Δεν μπορούμε να αλλάξουμε την τιμή ξανά

Αριθμητικές Πράξεις Είναι οι: +,-,*,/,** Σειρά πράξεων: Οι δυνάμεις πρώτα από δεξιά προς αριστερά Πολλαπλασιασμοί και διαιρέσεις Προσθέσεις και αφαιρέσεις Χρήση παρενθέσεων αν χρειάζεται

Λογικές Εκφράσεις Εκφράσεις που δίνουν σαν αποτέλεσμα μια λογική σταθερά ( TRUE, FALSE) A.NE. 6 C * A >= 3 Σύμβολο Ερμηνεία < ή.lt. Μικρότερο από > ή.gt. Μεγαλύτερο από == ή.eq. Ίσο με <= ή.le. Μικρότερο ή ίσο από >= ή.ge. Μεγαλύτερο ή ίσο από /= ή.νε. Διάφορο από

Λογικές Εκφράσεις Οι χαρακτήρες μπορούν να συγκριθούν ως προς αλφαβητική σειρά A > B better > between good year > goodyear Όλα τα παραπάνω είναι TRUE

Σύνθετες Λογικές Εκφράσεις Χρήση των:.not.,.and.,.or.,.eqv.,.neqv..νοτ. : Επιστρέφει την αντίθετη τιμή.ανd. : TRUE αν και οι δύο εκφράσεις είναι TRUE FALSE διαφορετικά.or. : FALSE αν και οι δύο εκφράσεις είναι FALSE TRUE διαφορετικά.eqv. : TRUE αν οι δυο εκφράσεις έχουν την ίδια τιμή FALSE διαφορετικά.νeqv. : To ανάποδο από την.eqv.

Ακρίβεια Πραγματικών Αριθμών Απλή ή διπλή ακρίβεια Ε : Απλή ακρίβεια Π.χ. 3.0Ε1 D : Διπλή ακρίβεια Π.χ. 3.0D1 Δήλωση πραγματικού αριθμού με απλή/διπλή ακρίβεια: REAL(KIND = kind_number) :: vars kind_number = 1 : απλή kind_number = 2 : διπλή

Ακρίβεια Πραγματικών Αριθμών Σε άλλους compiler kind_number = 4 : απλή kind_number = 8 : διπλή Γενική εντολή: SELECTED REAL KIND (p, r) Όπου p: πλήθος ψηφίων ακρίβειας r: εύρος ακρίβειας (-10 r to 10 r ) Είτε ξέρω το p είτε το r ο compiler καταλαβαίνει τι είδους ακρίβεια χρειάζομαι

Ακρίβεια Πραγματικών Αριθμών Χρήση μέσω παραμέτρου: INTEGER, PARAMETER :: double = SELECTED_REAL_KIND (13) REAL (KIND = double) :: A, B Παράδειγμα PROGRAM accuracy IMPLICIT NONE INTEGER, PARAMETER :: double = SELECTED_REAL_KIND (13) REAL (KIND = double) :: A, B, C A = 2.0_double B = 0.1 * A C = 0.1_double * A PRINT *, B PRINT *, C END PROGRAM

Τέλος