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

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

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

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

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

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

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

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

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

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

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

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

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

Τμήμα Πληροφορικής & Επικοινωνιών Δρ. Θεόδωρος Γ. Λάντζος

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

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

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

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

Δομημένος Προγραμματισμός (ΤΛ1006)

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

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

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 2 Εντολές Εισόδου/Εξόδου Τελεστές. Δρ. Γιώργος Λαμπρινίδης 23/10/2015 Η - Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ 1

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

Εισαγωγή στον Προγραµµατισµό. Διάλεξη 2 η : Βασικές Έννοιες της γλώσσας προγραµµατισµού C Χειµερινό Εξάµηνο 2011

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

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

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

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

Στοιχειώδης προγραμματισμός σε C++

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

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

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

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

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

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

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

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

3.1 Αριθμητικοί και Λογικοί Τελεστές, Μετατροπές Τύπου (Casting)

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

Προγραμματισμός Ηλεκτρονικών Υπολογιστών 2 - Εργαστήριο

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

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

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

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

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

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

Β. Εισαγωγή στον Προγραμματισμό Η/Υ με την JavaScript

Εφαρμοσμένη Πληροφορική ΙΙ (Θ) Είσοδος/Έξοδος Μεταβλητές Τύποι Μεταβλητών Τελεστές και Προτεραιότητα Μετατροπές Μεταξύ Τύπων

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

Προγραμματισμός Η/Υ. Ενότητα 2β: Εισαγωγή στη C (Μέρος Δεύτερο)

a = 10; a = k; int a,b,c; a = b = c = 10;

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

Περιεχόμενα. Κεφάλαιο 2.5: Τύποι Δεδομένων, Τελεστές και Αριθμητικές Εκφράσεις. (Διαλέξεις 5-6) Τύποι Δεδομένων. Τελεστές. Αριθμητικές εκφράσεις

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

2. ΑΡΙΘΜΗΤΙΚΗ ΤΟΥ ΥΠΟΛΟΓΙΣΤΗ. 2.1 Αριθμητικά συστήματα

Λειτουργικά. Συστήματα Ι. Φ ρ ο ν τ ι σ τ ή ρ ι ο. Αριστείδης Ηλίας. Εργαστήριο Ηλεκτρονικών Υπολογιστών

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

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

Κεφάλαιο 7 ο Βασικές Έννοιες Προγραμματισμού (σελ )

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

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

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

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

Διάλεξη 3η: Τύποι Μεταβλητών, Τελεστές, Είσοδος/Έξοδος

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

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ

- Αναπαράσταση ακέραιας τιµής : - Εύρος ακεραίων : - Ακέραιοι τύποι: - Πράξεις µε ακεραίους (DIV - MOD)

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

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

Εισαγωγή στον Προγραμματισμό Python Μάθημα 1: Μεταβλητές, τελεστές, είσοδος/έξοδος προγράμματος, συνθήκη ελέγχου if Νοέμβριος 2014 Χ. Αλεξανδράκη, Γ.

Εισαγωγή στην Γλώσσα Προγραμματισμού Python. 12/10/16 1

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

Βασικές έννοιες προγραμματισμού

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

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

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

3. Εκφράσεις και έλεγχος ροής

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

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

Προγραμματισμός Ι. Θεματική ενότητα 3: Tελεστές. εκφράσεις

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

Αριθμητικές Μέθοδοι σε Προγραμματιστικό Περιβάλλον

! Εάν ο αριθμός διαθέτει περισσότερα bits, χρησιμοποιούμε μεγαλύτερες δυνάμεις του 2. ! Προσοχή στη θέση του περισσότερο σημαντικού bit!

Διάλεξη 3: Προγραμματισμός σε JAVA I. Διδάσκων: Παναγιώτης Ανδρέου

Πράξεις με δυαδικούς αριθμούς

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

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

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

ΑΣΚΗΣΗ 3: ΠΡΟΤΑΣΕΙΣ, ΕΚΦΡΑΣΕΙΣ ΚΑΙ ΤΕΛΕΣΤΕΣ

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

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

Π. Σταθοπούλου ή Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7

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

Πληροφορική. Ενότητα 1: Α. Οργάνωση μαθήματος. Β. Στοιχεία Προγραμματισμού -Προγραμματιστικές Δομές, Πρόγραμμα, Γλώσσες.

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

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

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

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

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

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

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

Transcript:

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

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

Απλοί τύποι δεδομένων 1 Στην Fortran 95, τα βασικά στοιχεία ή σύνολα χαρακτήρων, είναι τα 26 γράμματα της αγγλικής αλφαβήτου, οι 10 αραβικοί αριθμοί 0-9, ο χαρακτήρας υπογράμμισης (_) και οι ειδικοί χαρακτήρες του Πίνακα 1 Figure: Πίνακας 1 Ειδικοί χαρακτήρες FORTRAN Γ Παπαλάμπρου - Μάθημα 2 (Μ2) Απλοί τύποι δεδομένων, σταθερές, μεταβλητές, εκφράσεις, εντολές

Tokens Με χρήση των παραπάνω στοιχείων μπορούμε να φτιάξουμε άλλες ομάδες στοιχείων (tokens) που έχουν νόημα για τον compiler της γλώσσας Φτιάχνονται έτσι 6 τύποι tokens, όπως παρακάτω: Οι διάφοροι τύποι tokens χωρίζονται μεταξύ τους με ένα ή περισσότερα κενά ή με το τέλος της γραμμής Γ Παπαλάμπρου - Μάθημα 2 (Μ2) Απλοί τύποι δεδομένων, σταθερές, μεταβλητές, εκφράσεις, εντολές

Κώδικας-1 1 Οι δηλώσεις (statements) σε ένα πρόγραμμα κώδικα είναι γραμμένες σε γραμμές 2 Κάθε γραμμή μπορεί να περιέχει έως και 132 χαρακτήρες και συνήθως περιέχει μία μόνο δήλωση 3 Εφόσον τα κενά στην αρχή δεν είναι σημαντικά, είναι δυνατό να αρχίσουν οι δηλώσεις στην πρώτη θέση χαρακτήρα ή σε οποιαδήποτε άλλη θέση 4 Για παράδειγμα, ένα statement είναι το x = (-y + root_of_discriminant)/(20*a) 5 Για να είναι δυνατή η χρήση κατάλληλου σχολίου με τον κώδικα στον οποίο αναφέρονται, η Fortran επιτρέπει σε κάθε γραμμή να μεταφέρει ένα πεδίο με σχόλιο, μετά από ένα θαυμαστικό (!), ως εξής: x = y/a - b! Solve the linear equation Γ Παπαλάμπρου - Μάθημα 2 (Μ2) Απλοί τύποι δεδομένων, σταθερές, μεταβλητές, εκφράσεις, εντολές

Κώδικας-2 1 Δεδομένου ότι είναι πιθανό να υπάρξουν δηλώσεις μεγαλύτερες από τις 132 θέσεις σε μια ενιαία γραμμή, υπάρχει δυνατότητα μέχρι και 39 επιπλέον γραμμές με χρήση του χαρακτήρα & στο τέλος κάθε γραμμής 2 Για παράδειγμα x = & (-y + root_of_discriminant) & /(20*a) 3 Είναι δυνατό να γραφούν σύντομες δηλώσεις η μία μετά την άλλη σε μία γραμμή, με το ερωτηματικό (;) ως διαχωριστικό δήλωσης, ως ακολούθως: a = 0 ; b = 0 ; c = 0 Δεν είναι δυνατόν να εισαχθεί σχολιασμός των δηλώσεων σε μία μόνο γραμμή Γ Παπαλάμπρου - Μάθημα 2 (Μ2) Απλοί τύποι δεδομένων, σταθερές, μεταβλητές, εκφράσεις, εντολές

Τύποι δεδομένων 1 Οι τύποι δεδομένων χωρίζονται σε δύο κατηγορίες 2 Η πρώτη κατηγορία περιλαμβάνει τρεις αριθμητικούς τύπους (numeric) που χρησιμοποιούνται κυρίως για αριθμητικούς υπολογισμούς - ακέραιους, πραγματικούς και μιγαδικούς 3 Η δεύτερη κατηγορία περιλαμβάνει δύο μη αριθμητικούς τύπους που χρησιμοποιούνται για εφαρμογές όπως επεξεργασία κειμένου (text processing) και ελέγχου χαρακτήρων και λογικής 4 Οι αριθμητικοί τύποι χρησιμοποιούνται σε συνδυασμό με αριθμητικούς τελεστές (operators), όπως οι συνήθεις πράξεις + και - Περιλαμβάνουν το μηδέν όπου το πρόσημο του δεν έχει διαφορά 5 Οι μη αριθμητικοί τύποι έχουν δικούς τους τελεστές ανά περίπτωση, για παράδειγμα στοιχεία χαρακτήρων που μπορούν να συνενωθούν (concatenation) Γ Παπαλάμπρου - Μάθημα 2 (Μ2) Απλοί τύποι δεδομένων, σταθερές, μεταβλητές, εκφράσεις, εντολές

Τύποι δεδομένων-ακέραιοι 1 Ο πρώτος τύπος σταθερών είναι οι ακέραιοι σταθεροί (integer constants) 2 Η προεπιλογή του είδους είναι απλά ένας ακέραιος με πρόσημο ή χωρίς πρόσημο (signed, unsigned), πχ 1, 0, -999, 32767, +10 3 Το εύρος των προεπιλεγμένων ακεραίων δεν προσδιορίζεται στη γλώσσα, αλλά σε έναν υπολογιστή με μέγεθος λέξης των n bits, είναι συχνά από 2 n 1 ως +2 n 1 1 4 Έτσι, σε έναν ΗΥ με 32-bits, το εύρος είναι από 2147483648 έως +2147483647 Γ Παπαλάμπρου - Μάθημα 2 (Μ2) Απλοί τύποι δεδομένων, σταθερές, μεταβλητές, εκφράσεις, εντολές

Τύποι δεδομένων-πραγματικοί 1 Ο δεύτερος τύπος σταθερών είναι οι πραγματικοί σταθεροί (real constants) 2 Η προεπιλογή του είδους είναι μορφή κινητής υποδιαστολής (floating point) που την σχηματίζουν μερικά ή όλα όπως: ακέραιο με/χωρίς πρόσημο, ένα δεκαδικό σημείο, ένα κλασματικό μέρος και ένα εκθετικό μέρος, με/χωρίς πρόσημο 3 Για παράδειγμα ο αριθμός -106e-11 νοείται ως 106 10 11 και επίσης είναι αποδεκτά τα 1, -01, 1e-1, 3141592653 4 Πολλοί επεξεργαστές ΗΥ είναι σύμφωνοι με το πρότυπο IEEE για την αριθμητική κινητής υποδιαστολής και έχουν τιμές από 10 37 έως 10 +37 για το εύρος, με ακρίβεια 6 δεκαδικών ψηφίων Γ Παπαλάμπρου - Μάθημα 2 (Μ2) Απλοί τύποι δεδομένων, σταθερές, μεταβλητές, εκφράσεις, εντολές

Τύποι δεδομένων-μιγαδικοί 1 Η Fortran, ως γλώσσα που προορίζεται για υπολογισμούς επιστημόνων και μηχανικών, έχει το πλεονέκτημα τρίτου τύπου σταθερών, αυτό των μιγαδικών (complex) 2 Αυτό χαρακτηρίζεται από ένα ζευγάρι ακέραιους ή πραγματικούς, χωρισμένους με κόμμα, εντός παρενθέσεων 3 Για παράδειγμα οι (1, 32), (1, 99e-2) έχουν τον πρώτο αριθμό ως πραγματικό μέρος και τον δεύτερο ως φανταστικό Γ Παπαλάμπρου - Μάθημα 2 (Μ2) Απλοί τύποι δεδομένων, σταθερές, μεταβλητές, εκφράσεις, εντολές

Τύποι δεδομένων-χαρακτήρες 1 Ο τέταρτος τύπος σταθερών είναι οι σταθερές χαρακτήρων (character) 2 Η προεπιλογή του είδους αποτελείται από μία σειρά χαρακτήρων (string) και περικλείονται σε ένα ζευγάρι είτε αποστρόφων ή αγγλικών εισαγωγικών 3 Για παράδειγμα μπορούμε να έχουμε lambda_value ή Nuts & bolts 4 Θεωρούμε ότι το ζευγάρι αποστρόφων ή αγγλικών εισαγωγικών αποτελούν τα όρια (delimiters) και όχι μέρος της τιμής του χαρακτήρα Γ Παπαλάμπρου - Μάθημα 2 (Μ2) Απλοί τύποι δεδομένων, σταθερές, μεταβλητές, εκφράσεις, εντολές

Τύποι δεδομένων-χαρακτήρες 1 Σε σταθερές χαρακτήρα το κενό είναι σημαντικό Για παράδειγμα η σταθερά a value είναι διαφορετική από την avalue 2 Σε περιπτώσεις που στο string περιλαμβάνεται απόστροφος ή εισαγωγικό τότε είναι απαραίτητο να τοποθετηθούν κατάλληλα όρια συνήθως από τον άλλο τύπο 3 Για παράδειγμα μπορούμε να έχουμε George typed Hello world ή εναλλακτικά This contains an Γ Παπαλάμπρου - Μάθημα 2 (Μ2) Απλοί τύποι δεδομένων, σταθερές, μεταβλητές, εκφράσεις, εντολές

Τύποι δεδομένων-χαρακτήρες 1 Κατά την χρήση χαρακτήρων, σε συνεχείς γραμμές, επιπρόσθετα της χρήσης του χαρακτήρα & στο τέλος κάθε γραμμής, η κάθε γραμμή πρέπει να αρχίζει με ένα σημάδι συνέχισης 2 Ένα παράδειγμα είναι το ακόλουθο long_string= & & Fortran is a general-purpose, programming language & & that is especially suited to numeric & & computation and scientific computing & Γ Παπαλάμπρου - Μάθημα 2 (Μ2) Απλοί τύποι δεδομένων, σταθερές, μεταβλητές, εκφράσεις, εντολές

Μεταβλητές 1 Εκτός από τις σταθερές που είδαμε μέχρι τώρα, αντίστοιχα γίνονται δηλώσεις μεταβλητών (variables) 2 Ο απλούστερος τρόπος με τον οποίο μια μεταβλητή μπορεί να δηλωθεί ως ένας συγκεκριμένος τύπος, είναι καθορίζοντας το όνομά της σε μια δήλωση τύπου όπως integer :: i real :: a complex :: current logical :: valve_on character :: letter 3 Εδώ, όλες οι μεταβλητές έχουν προεπιλογή το είδος, οπότε και η μεταβλητή letter έχει προεπιλεγμένο μήκος, το οποίο είναι 1 Γ Παπαλάμπρου - Μάθημα 2 (Μ2) Απλοί τύποι δεδομένων, σταθερές, μεταβλητές, εκφράσεις, εντολές

Μεταβλητές 1 Έτσι για να δηλωθούν με ακρίβεια οι μεταβλητές απαιτείται η δήλωση μεγέθους του κάθε τύπου, ως ακολούθως integer(4) :: i real(long) :: a character(20) :: english_word Γ Παπαλάμπρου - Μάθημα 2 (Μ2) Απλοί τύποι δεδομένων, σταθερές, μεταβλητές, εκφράσεις, εντολές

Δημιουργία τύπων δεδομένων 1 Κατά τον προγραμματισμό είναι πιθανό να απαιτηθούν τύποι δεδομένων που είναι πιο σύνθετοι από τους βασικούς τύπους που είδαμε παραπάνω 2 Η γλώσσα επιτρέπει την δημιουργία τέτοιων τύπων, όπως για παράδειγμα type person character(len=10) :: name real :: age integer :: id end type person 3 Εδώ κάθε πρόσωπο (person) έχει χαρακτηριστικά όπως όνομα (name), ηλικία (age) και κωδικό αριθμό (id) 4 Έτσι ορίζεται συγκεκριμένος τύπος δεδομένων, γνωστός και ως δομή δεδομένων (structure) Γ Παπαλάμπρου - Μάθημα 2 (Μ2) Απλοί τύποι δεδομένων, σταθερές, μεταβλητές, εκφράσεις, εντολές

Δημιουργία τύπων δεδομένων 1 Για να ορισθεί ένα νέο μέλος απαιτείται σχετική δήλωση ως εξής: type(person) :: Papalambrou 2 Αναφορά σε επιμέρους ιδιότητες της δομής γίνεται με χρήση του χαρακτήρα επιλογής στοιχείων (component selector) % 3 Έτσι η τιμή του κωδικού αριθμού για τον Papalambrou ευρίσκεται ως εξής: Papalambrou%id 4 Μεταβολή της τιμής αυτή μπορεί να δοθεί ως: Papalambrou%id + 12 5 Στο MATLAB ή στην γλώσσα C αντίστοιχα πρόσβαση στις τιμές γίνεται με το χαρακτήρα ως εξής: Papalambrouid + 12 Γ Παπαλάμπρου - Μάθημα 2 (Μ2) Απλοί τύποι δεδομένων, σταθερές, μεταβλητές, εκφράσεις, εντολές

Πίνακες, Δείκτες 1 Τους τύπους δεδομένων Πίνακες (arrays) και Δείκτες (pointers) που και οι δύο αποτελούν ισχυρά στοιχεία της γλώσσας θα τους μελετήσουμε σε ξεχωριστά κεφάλαια παρακάτω 2 Οι πίνακες δίνουν τη δυνατότητα αποθήκευσης ομάδων στοιχείων του ίδιου τύπου Για παράδειγμα έχουμε την δήλωση του πίνακα a ως real, dimension(10) :: a όπου τα διαδοχικά στοιχεία του είναι τα a(1), a(2), a(10) 3 Οι δείκτες επιτρέπουν την αναφορά διαφόρων στοιχείων σε άλλα στοιχεία, ως εξής real, pointer, dimension(:) :: x, y real, pointer, dimension(:,:) :: a Γ Παπαλάμπρου - Μάθημα 2 (Μ2) Απλοί τύποι δεδομένων, σταθερές, μεταβλητές, εκφράσεις, εντολές

Παραδείγματα - 1 Γ Παπαλάμπρου - Μάθημα 2 (Μ2) Απλοί τύποι δεδομένων, σταθερές, μεταβλητές, εκφράσεις, εντολές

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

Εκφράσεις 1 Μια έκφραση στην Fortran σχηματίζεται από τελεστές και operators, σε συνδυασμό που ακολουθεί τους κανόνες της γλώσσας 2 Μια απλή έκφραση που περιλαμβάνει μια δυαδική operator έχει τη μορφή δεδομένα τελεστής δεδομένα (operand operator operand) 3 Ένα παράδειγμα είναι x + y 4 Ο τύπος και το είδος του αποτελέσματος καθορίζεται από τον τύπο και το είδος των δεδομένων και δεν εξαρτώνται από τις τιμές τους 5 Τα δεδομένα μπορεί να είναι σταθερές, μεταβλητές ή functions και μία έκφραση μπορεί η ίδια να χρησιμοποιηθεί ως δεδομένο Γ Παπαλάμπρου - Μάθημα 2 (Μ2) Απλοί τύποι δεδομένων, σταθερές, μεταβλητές, εκφράσεις, εντολές

Εκφράσεις 1 Οι κανόνες της Fortran όριζουν ότι τα μέρη της έκφρασης χωρίς παρενθέσεις υπολογίζονται διαδοχικά από αριστερά προς τα δεξιά για τελεστές ίσης προτεραιότητας, με την εξαίρεση των ** (ύψωση σε δύναμη) 2 Εάν είναι απαραίτητο να υπολογιστεί μέρος μιας έκφρασης πριν από άλλη έκφραση, τότε χρήση παρενθέσεων μπορεί να υποδείξει ποιές εκφράσεις θα πρέπει να υπολογιστούν πρώτα 3 Αν μια έκφραση δεν έχει παρενθέσεις, τότε ο επεξεργαστής επιτρέπεται να υπολογίσει μια ισοδύναμη έκφραση, δηλ μια έκφραση που έχει πάντα την ίδια τιμή, εκτός από τις περιπτώσεις στρογγυλοποίησης 4 Παράδειγμα: εάν τα a,b,c είναι πραγματικές μεταβλητές, η έκφραση a/b/c μπορεί να υπολογισθεί ώς a/(b*c) σε έναν επεξεργαστή που μπορεί να πολλαπλασιάσει πιο γρήγορα από ό, τι μπορεί να διαιρέσει Γ Παπαλάμπρου - Μάθημα 2 (Μ2) Απλοί τύποι δεδομένων, σταθερές, μεταβλητές, εκφράσεις, εντολές

Αριθμητικές Εκφράσεις 1 Μια βαθμωτή αριθμητική έκφραση (scalar numeric expression) είναι μια έκφραση της οποίας δεδομένα είναι ένας από τους τρεις τύπους αριθμητικών - ακέραιος, πραγματικός και μιγαδικός - και των οποίων οι τελεστές είναι ** Ύψωση σε δύναμη * / Πολλαπλασιασμός, διαίρεση + - Πρόσθεση, αφαίρεση 2 Το πρόσημο +/- για να ακολουθεί έναν τελεστή πρέπει να μπει σε παρένθεση μαζί με τα δεδομένα Έτσι για την έκφραση x y έχουμε xx**(-y) 3 Γ Παπαλάμπρου - Μάθημα 2 (Μ2) Απλοί τύποι δεδομένων, σταθερές, μεταβλητές, εκφράσεις, εντολές

Εκφράσεις 1 Στην περίπτωση χρήσης σε εκφράσεις δεδομένων διαφορετικών τύπων, ισχύουν οι Πίνακες 31, 32 Γ Παπαλάμπρου - Μάθημα 2 (Μ2) Απλοί τύποι δεδομένων, σταθερές, μεταβλητές, εκφράσεις, εντολές

Εκφράσεις Γ Παπαλάμπρου - Μάθημα 2 (Μ2) Απλοί τύποι δεδομένων, σταθερές, μεταβλητές, εκφράσεις, εντολές

Αριθμητικές Δηλώσεις 1 Μια βαθμωτή αριθμητική δήλωση (scalar numeric assignment) είναι της μορφής variable = expr, όπου η μεταβλητή είναι μια βαθμωτή αριθμητική μεταβλητή και παράσταση είναι μια βαθμωτή αριθμητική έκφραση 2 Αν η έκφραση είναι διαφορετικού τύπου από την μεταβλητή, τότε θα γίνει μετατροπή στον τύπο της μεταβλητής πριν από την εκχώρηση, σύμφωνα με τους κανόνες του Πίνακα 33 Γ Παπαλάμπρου - Μάθημα 2 (Μ2) Απλοί τύποι δεδομένων, σταθερές, μεταβλητές, εκφράσεις, εντολές

Τελεστές Σχέσεων 1 Είναι δυνατόν στην Fortran να ελέγξετε αν η τιμή μιας αριθμητικής έκφρασης έχει ορισμένη σχέση με την τιμή μιας άλλης έκφρασης 2 Οι τελεστές ελέγχου σχέσων (scalar relational operators) είναι οι ακόλουθοι: < or lt less than <= or le less than or equal == or eq equal /= or ne not equal > or gt greater than >= or ge greater than or equal Γ Παπαλάμπρου - Μάθημα 2 (Μ2) Απλοί τύποι δεδομένων, σταθερές, μεταβλητές, εκφράσεις, εντολές

Τελεστές Σχέσεων 1 Το αποτέλεσμα μιας τέτοιας σύγκρισης είναι μία από τις προεπιλεγμένες λογικές τιμές true ή false 2 Ο έλεγχος σχέσεων όπως θα δούμε στο επόμενο κεφάλαιο είναι σημαντικός για τον έλεγχο της ροής του προγράμματος 3 Παραδείγματα με σχεσιακές εκφράσεις (i και j είναι ακέραιοι, a, b είναι πραγματικοί και char1 είναι χαρακτήρες): i < 0!integer relational expression a < b!real relational expression a+b > i-j!mixed-mode relational expression char1 == Z!character relational expression Γ Παπαλάμπρου - Μάθημα 2 (Μ2) Απλοί τύποι δεδομένων, σταθερές, μεταβλητές, εκφράσεις, εντολές

Τελεστές Σχέσεων 1 Στην τρίτη έκφραση παραπάνω, παρατηρούμε ότι τα δύο στοιχεία είναι διαφορετικών αριθμητικών τύπων 2 Στην περίπτωση αυτή, οι κανόνες ορίζουν ότι τα στοιχεία πρέπει να υπολογισθούν ξεχωριστά και να μετατραπούν στον τύπο του αθροίσματος τους προτού γίνει η σύγκριση 3 Έτσι μια σχεσιακή έκφραση όπως η a + b < = i -j θα υπολογισθεί αφού πρώτα γίνει μετατροπή του αποτελέσματος της (i- j) σε πραγματικό Γ Παπαλάμπρου - Μάθημα 2 (Μ2) Απλοί τύποι δεδομένων, σταθερές, μεταβλητές, εκφράσεις, εντολές

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

Λογικοί Τελεστές 1 Λογικές σταθερές, μεταβλητές και συναρτήσεις ενδέχεται να εμφανίζονται ως δεδομένα (operands) σε λογικές εκφράσεις (logical expressions) 2 Οι λογικοί τελεστές, κατά φθίνουσα σειρά προτεραιότητας, είναι οι εξής: unary operator: not! logical negation binary operators: and! logical intersection or! logical union eqv and neqv! logical equivalence and non-equivalence Γ Παπαλάμπρου - Μάθημα 2 (Μ2) Απλοί τύποι δεδομένων, σταθερές, μεταβλητές, εκφράσεις, εντολές

Λογικοί Τελεστές 1 Αν υποθέσουμε μια δήλωση μεταβλητών τύπου λογικής, της μορφής logical :: i,j,k,l 2 τότε ισχύουν οι παρακάτω λογικές εκφράσεις: notj j and k i or l and notj ( notk and j neqv notl) or i 3 Το αποτέλεσμα κάθε λογικής έκφρασης είναι η τιμή αληθής ή ψευδής και αυτή η τιμή μπορεί τότε να εκχωρηθεί σε μια λογική μεταβλητή, όπως στο στοιχείο 3 του πίνακα flag, τύπου λογικής, στο παράδειγμα: flag(3) = ( not k eqv l) or j Γ Παπαλάμπρου - Μάθημα 2 (Μ2) Απλοί τύποι δεδομένων, σταθερές, μεταβλητές, εκφράσεις, εντολές

Εκφράσεις και Δηλώσεις Χαρακτήρων 1 Ο μοναδικός τελεστής για εκφράσεις με χαρακτήρες είναι ο ο τελεστής συνένωσης (concatenation), //, ο οποίος έχει ως αποτέλεσμα την συνένωση δύο ομάδων στοιχείων με δεδομένα τύπου χαρακτήρα, δίνοντας ως τελικό αποτέλεσμα ένα ενιαίο χαρακτήρα 2 Για παράδειγμα, το αποτέλεσμα συνένωσης των δύο σταθερών, τύπου χαρακτήρα, ΑΒ και CD, ως AB // CD είναι η σειρά χαρακτήρων ABCD Τα δεδομένα πρέπει να είναι του ίδιου τύπου, αλλά μπορεί είναι μεταβλητές τύπου χαρακτήρα, σταθερές 3 Για παράδειγμα, αν word1 και word2 είναι και τα δύο του ίδιου τύπου, με μήκος 4, και περιέχουν τα LOOP και HOLE αντίστοιχα, το αποτέλεσμα της έκφρασης word1(4:4)//word2(2:4) είναι το string POLE Γ Παπαλάμπρου - Μάθημα 2 (Μ2) Απλοί τύποι δεδομένων, σταθερές, μεταβλητές, εκφράσεις, εντολές

Εκφράσεις και Δηλώσεις Χαρακτήρων 1 Το μήκος στο αποτέλεσμα μιας συνένωσης είναι το άθροισμα του μήκους κάθε ομάδας δεδομένων 2 Έτσι, το μήκος του αποτελέσματος της έκφρασης word1//word2// S είναι 9, δηλ έχει το μήκος του string LOOPHOLES Γ Παπαλάμπρου - Μάθημα 2 (Μ2) Απλοί τύποι δεδομένων, σταθερές, μεταβλητές, εκφράσεις, εντολές

Εκφράσεις με Πίνακες, Δείκτες 1 Μέχρι τώρα είδαμε εκφράσεις για τύπους βαθμωτών δεδομένων (scalar) 2 Αντίστοιχες εκφράσεις για τύπους δεδομένων Πίνακες (arrays) και Δείκτες (pointers) θα τις μελετήσουμε σε ξεχωριστά κεφάλαια παρακάτω Γ Παπαλάμπρου - Μάθημα 2 (Μ2) Απλοί τύποι δεδομένων, σταθερές, μεταβλητές, εκφράσεις, εντολές

Βιβλιογραφία M Metcalf, J Reid, M Cohen, Modern Fortran Explained, Oxford, 4th Edition, 2011 κεφάλαιο 2: Language elements κεφάλαιο 3: Expressions and assignments Γ Παπαλάμπρου - Μάθημα 2 (Μ2) Απλοί τύποι δεδομένων, σταθερές, μεταβλητές, εκφράσεις, εντολές