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

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

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

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

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

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

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

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

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

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

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

8 FORTRAN 77/90/95/2003

Κεφάλαιο 8ο: Αρχεία. 8.1 Τι είναι αρχείο;

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

Μάθημα 3: Αρχιτεκτονική Υπολογιστών

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

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

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

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

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

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

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

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ - UNIX. Συστήματα Αρχείων. Διδάσκoντες: Καθ. Κ. Λαμπρινουδάκης Δρ. Α. Γαλάνη

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

Εναλλακτικές εντολές για ανάγνωση/εγγραφή

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

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

Είσοδος -Έξοδος. Άνοιγµα αρχείου:

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

S, (5, -3, 34, -23, 7) ( *, _

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

ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών

Κεφάλαιο 12: Είσοδος και έξοδος δεδομένων σε αρχεία

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

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

Η πρώτη παράμετρος είναι ένα αλφαριθμητικό μορφοποίησης

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

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

ΠΛΗΡΟΦΟΡΙΚΗ: ΥΠΟΛΟΓΙΣΤΕΣ & ΤΕΧΝΟΛΟΓΙΕΣ ΔΙΑΔΙΚΤΥΟΥ

Λειτουργικά Συστήματα (Λ/Σ)

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

Λειτουργικά Συστήματα Κεφάλαιο 2 Οργάνωση Συστήματος Αρχείων 2.1 Διαχείριση Αρχείων και Σύστημα Αρχείων(File System)

Προγραμματισμός Η/Υ. Χειρισμός Αρχείων. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος

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

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 1 Εισαγωγή στη C. Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr

Σκοπός. Εργαστήριο 6 Εντολές Επανάληψης Τα Εργαστηριακά Προγράμματα. Η δομή Επιλογής στη PASCAL. H δομή Επανάληψης στη PASCAL. Η εντολή επανάληψης for

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

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

Πληροφορική 2. Δομές δεδομένων και αρχείων

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

Στοιχεία από την αρχιτεκτονική των μικροϋπολογιστών

Ο πιο κάτω πίνακας περιγράφει σε ποιες περιπτώσεις χρησιμοποιούμε τους τρεις πιο πάνω τρόπους:

Κεφάλαιο 4: Λογισμικό Συστήματος

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

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

ΕΙΔΗ,ΤΕΧΝΙΚΕΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΑ ΠΡΟΓΡΑΜΜΑΤΙ- ΣΜΟΥ

Εργαστήριο 2ο. Περίγραμμα Εργαστηριακής Άσκησης

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

ΜΕΤΑΓΛΩΤΤΙΣΤΕΣ. Στις βασικές έννοιες που σχετίζονται με τη λεξική ανάλυση. Στη δήλωση ορισμό κανονικών εκφράσεων

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

(Κεφάλαιο 2.7 και 12) Αρχεία στην C. (Διάλεξη 15)

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

ΣΥΣΚΕΥΕΣ ΑΠΟΘΗΚΕΥΣΗΣ (ΜΝΗΜΗ)

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

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

- Εισαγωγή - Επίπεδα μνήμης - Ολοκληρωμένα κυκλώματα μνήμης - Συσκευασίες μνήμης προσωπικών υπολογιστών

Πως θα αποθηκεύσει τη λίστα με τα ψώνια του και θα την ανακτήσει στο Σ/Μ; και πως θα προσθέσει στη λίστα του επιπλέον προϊόντα;

Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2

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

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

ΚΕΦΑΛΑΙΟ 3 ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ

Λειτουργικά Συστήματα

Βιβλιοθήκη stdio. Προγραμματισμός II 1

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

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

ΠΡΟΒΛΗΜΑ ΕΠΕΓΕΡΓΑΣΙΑ. (Είναι οι σκέψεις και οι πράξεις που κάνουμε για να λυθεί το πρόβλημα) ΕΙΣΟΔΟΥ - ΕΞΟΔΟΥ

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

C: Από τη Θεωρία στην Εφαρµογή 2 ο Κεφάλαιο

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

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

Κεφάλαιο 4 Σύνδεση Μικροεπεξεργαστών και Μικροελεγκτών ΕΡΩΤΗΣΕΙΣ ΑΣΚΗΣΕΙΣ

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

Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2. Α1. Ο αλγόριθμος είναι απαραίτητος μόνο για την επίλυση προβλημάτων πληροφορικής

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

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

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

Εργαστήριο 10 Πίνακες. Πίνακες. Η έννοια της δόμησης δεδομένων στη PASCAL. Σκοπός

Κεφάλαιο VΙ: Προσπέλαση Αρχείων. 5.1 Αρχεία δεδομένων.

Βασικές Έννοιες της Πληροφορικής

Περιεχόμενα. Κεφάλαιο 1 Εισαγωγή στην Access Κεφάλαιο 2 Χειρισμός πινάκων... 27

ΕΦΑΡΜΟΓΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ Α ΤΑΞΗ

Υπάρχουν δύο τύποι μνήμης, η μνήμη τυχαίας προσπέλασης (Random Access Memory RAM) και η μνήμη ανάγνωσης-μόνο (Read-Only Memory ROM).

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

Σύντοµο Εγχειρίδιο Χρήσης. του Λογισµικού Στατιστικής Επεξεργασίας. SPSS for Windows v. 8.0

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

Περιεχόμενα. Κεφάλαιο 1 Εισαγωγή στην Access...9. Κεφάλαιο 2 Χειρισμός πινάκων... 25

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

ΠΕΡΙΕΧΟΜΕΝΑ. Μονοδιάστατοι πίνακες Πότε πρέπει να χρησιμοποιούνται πίνακες Πολυδιάστατοι πίνακες Τυπικές επεξεργασίες πινάκων

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

Τύποι Δεδομένων Είσοδος/Έξοδος

Transcript:

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

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

Αναφορά στο βιβλίο M Metcalf, J Reid, M Cohen, Modern Fortran Explained, Oxford, 4th Edition, 2011 κεφάλαιο 9 Data transfer, παράγραφοι: 91-95, 97, 98 κεφάλαιο 10 Operations on external files Γ Παπαλάμπρου - FORTRAN Μάθημα 5 (Μ5) Μεταφορά δεδομένων, είσοδος/έξοδος, εξωτερικά αρχεία δεδομένων

Μεταφορά δεδομένων, είσοδος/έξοδος-εισαγωγή 1 Η Fortran διαθέτει ένα ιδιαίτερα πλούσιο σύνολο δυνατοτήτων για την είσοδο/έξοδο (input/output-ι/ο) δεδομένων, όμως είναι μια περιοχή της γλώσσας στην οποία δεν δίνεται συνήθως μεγάλη έμφαση 2 Για τα περισσότερα προγράμματα μικρής κλίμακας αρκεί να ξέρετε πώς να διαβάσετε μερικά αρχεία δεδομένων που περιέχουν τις μεταβλητές εισόδου, και πώς να μεταφέρετε σε μία οθόνη ή εκτυπωτή τα αποτελέσματα ενός υπολογισμού Γ Παπαλάμπρου - FORTRAN Μάθημα 5 (Μ5) Μεταφορά δεδομένων, είσοδος/έξοδος, εξωτερικά αρχεία δεδομένων

Μεταφορά δεδομένων, είσοδος/έξοδος-εισαγωγή 1 Αντιθέτως στην επεξεργασία δεδομένων μεγάλης κλίμακας από την άλλη, τα προγράμματα έχουν συχνά να αντιμετωπίσουν μεγάλες ροές δεδομένων από και προς πολλά αρχεία 2 Στι περιπτώσεις αυτές είναι απαραίτητο να δοθεί προσοχή στον τρόπο με τον οποίο η είσοδος/έξοδος έχει σχεδιασθεί ώστε ο χρόνος εκτέλεσης του προγράμματος να μην είναι δραματικά μεγάλος Γ Παπαλάμπρου - FORTRAN Μάθημα 5 (Μ5) Μεταφορά δεδομένων, είσοδος/έξοδος, εξωτερικά αρχεία δεδομένων

Μεταφορά δεδομένων, είσοδος/έξοδος-εισαγωγή Ο όρος αρχείο (file) χρησιμοποιείται για συλλογή δεδομένων που δεν βρίσκονται στην κύρια μνήμη του Η/Υ και ένα αρχείο οργανώνεται πάντοτε σε μία ακολουθία εγγραφών (records) Αυτό το κεφάλαιο ξεκινά με τη συζήτηση διαφόρων τύπων μορφοποιημένων (formatted) I/O, δηλαδή I/O σχετικές με εγγραφές που δεν χρησιμοποιούν τον εσωτερικό τρόπο αναπαράστασης αριθμών του υπολογιστή, αλλά μία σειρά χαρακτήρων που μπορούν να εμφανιστούν σε μία μονάδα εξόδου Γ Παπαλάμπρου - FORTRAN Μάθημα 5 (Μ5) Μεταφορά δεδομένων, είσοδος/έξοδος, εξωτερικά αρχεία δεδομένων

Μεταφορά δεδομένων, είσοδος/έξοδος-εισαγωγή Είναι επίσης η μορφή που συνήθως απαιτείται για μετάδοση δεδομένων μεταξύ των διαφόρων ειδών των ηλεκτρονικών υπολογιστών Κατόπιν παρουσιάζονται οι λεγόμενες περιγραφές επεξεργασίας (edit descriptors), οι οποίες χρησιμοποιούνται για τον έλεγχο της μετάφρασης μεταξύ της εσωτερικής αναπαράστασης αριθμών και της εξωτερικής μορφής Γ Παπαλάμπρου - FORTRAN Μάθημα 5 (Μ5) Μεταφορά δεδομένων, είσοδος/έξοδος, εξωτερικά αρχεία δεδομένων

Μετατροπή αριθμών Οι τρόποι με τους οποίους οι αριθμοί αποθηκεύονται εσωτερικά σε έναν Η/Υ αποτελούν συνήθως αντικείμενο της επιστήμης των υπολογιστών Ωστόσο, αν θέλουμε να δώσουμε στην έξοδο τις τιμές - να εμφανιστουν σε μία οθόνη ή να εκτυπωθούν - τότε οι εσωτερικές αναπαραστάσεις τους πρέπει να μετατραπούν σε μία ακολουθία χαρακτήρων για να μπορούν να διαβαστούν με ένα κανονικό τρόπο Γ Παπαλάμπρου - FORTRAN Μάθημα 5 (Μ5) Μεταφορά δεδομένων, είσοδος/έξοδος, εξωτερικά αρχεία δεδομένων

Μετατροπή αριθμών Για παράδειγμα, τα περιεχόμενα μιας δεδομένης λέξης υπολογιστή μπορεί να είναι (σε δεκαεξαδικό σύστημα) be1d7dbf που αντιστοιχεί στην τιμή -0,000450 Για τον δικά μας συγκεκριμένο σκοπό, μπορεί να θέλουμε να εμφανιστεί η ποσότητα αυτή, όπως -000450, είτε ως -45E - 04, ή στρογγυλεμένη σε ένα σημαντικό ψηφίο ως -5Ε - 04 Γ Παπαλάμπρου - FORTRAN Μάθημα 5 (Μ5) Μεταφορά δεδομένων, είσοδος/έξοδος, εξωτερικά αρχεία δεδομένων

Μεταφορά δεδομένων, είσοδος/έξοδος-εισαγωγή Η μετατροπή από την εσωτερική αναπαράσταση στην εξωτερική μορφή πραγματοποιείται σύμφωνα με τις πληροφορίες που καθορίζονται από τις περιγραφές επεξεργασίας (edit descriptros) που περιέχονται στις προδιαγραφές μορφoποίησης (format specifications) Οι περιγραφές επεξεργασίας παρουσιάζονται πλήρως αργότερα σε αυτό το κεφάλαιο Προς το παρόν, ας δούμε μερικά παραδείγματα Γ Παπαλάμπρου - FORTRAN Μάθημα 5 (Μ5) Μεταφορά δεδομένων, είσοδος/έξοδος, εξωτερικά αρχεία δεδομένων

Μεταφορά δεδομένων, είσοδος/έξοδος-εισαγωγή Για να εκτυπώσετε μια μεταβλητή χαρακτήρα σε ένα πεδίο 10 χαρακτήρων, ορίζετε a10, όπου το a συμβολίζει αλφαριθμητική μετατροπή Για να εκτυπώσετε μια ακέραια τιμή σε ένα πεδίο πλάτους 10 χαρακτήρων, θα χρησιμοποιήσετε την περιγραφη επεξεργασίας i10, όπου το i συμβολίζει μετατροπή ακεραίου, και το 10 προσδιορίζει το πλάτος του πεδίου εξόδου Γ Παπαλάμπρου - FORTRAN Μάθημα 5 (Μ5) Μεταφορά δεδομένων, είσοδος/έξοδος, εξωτερικά αρχεία δεδομένων

Μεταφορά δεδομένων, είσοδος/έξοδος-εισαγωγή Για να εκτυπώσετε μία πραγματική ποσότητα σε ένα πεδίο 10 χαρακτήρων, τα 5 από τα οποία προορίζονται για το κλασματικό μέρος του αριθμού, ορίζουμε f105 Η περιγραφή επεξεργασίας f συμβολίζει πραγματική μετατροπή (floating-point), το 10 είναι το συνολικό πλάτος του πεδίου εξόδου και το 5 είναι το πλάτος του κλασματικού μέρους του πεδίου Εάν ο αριθμός που δίνεται παραπάνω ήταν να μετατραπεί σύμφωνα με αυτή την περιγραφή επεξεργασίας, θα εμφανιστεί ως bb - 0,00045, όπου b αντιπροσωπεύει ένα κενό bb 0, 00045 }{{}}{{} 5digits 5digits }{{} 10digits (1) Γ Παπαλάμπρου - FORTRAN Μάθημα 5 (Μ5) Μεταφορά δεδομένων, είσοδος/έξοδος, εξωτερικά αρχεία δεδομένων

Μεταφορά δεδομένων, είσοδος/έξοδος-εισαγωγή Μια προδιαγραφή μορφoποίησης (format specification) αποτελείται από έναν κατάλογο απο περιγραφές επεξεργασίας που περικλείονται σε παρενθέσεις, και μπορεί να κωδικοποιούνται είτε ως προεπιλεγμένη έκφραση χαρακτήρων, για παράδειγμα (i10, f103, a10) ή ως μία ξεχωριστή δήλωση μορφοποίησης με μια ετικέτα δήλωσης (statement label), για παράδειγμα, 10 format(i10, f103, a10) Γ Παπαλάμπρου - FORTRAN Μάθημα 5 (Μ5) Μεταφορά δεδομένων, είσοδος/έξοδος, εξωτερικά αρχεία δεδομένων

Μεταφορά δεδομένων, είσοδος/έξοδος-εισαγωγή Για να εκτυπώσετε τις βαθμωτές μεταβλητές j, b, και c, με τύπους ακέραιου, πραγματικού και χαρακτήρα αντίστοιχα, θα δώσετε print (i10, f103, a10), j,b,c ή print 10, j,b,c 10 format(i10, f103, a10) Η πρώτη μορφή χρησιμοποιείται συνήθως όταν υπάρχει μόνο μία αναφορά για την δεδομένη προδιαγραφή της μορφής ενώ η δεύτερη όταν υπάρχουν πολλές ή όταν η μορφή είναι περίπλοκη Το μέρος της δήλωσης προσδιορισμού των ποσοτήτων που θα εκτυπωθεί είναι γνωστή ως λίστα εξόδου (output list) και αποτελεί το αντικείμενο της επόμενης ενότητας Γ Παπαλάμπρου - FORTRAN Μάθημα 5 (Μ5) Μεταφορά δεδομένων, είσοδος/έξοδος, εξωτερικά αρχεία δεδομένων

Λίστα εξόδου Οι ποσότητες που πρέπει να διαβάσει ή να γράψει ένα πρόγραμμα διευκρινίζονται σε κατάλογο Ι/O Η έξοδος μπορεί να είναι εκφράσεις, αλλά για την είσοδο θα πρέπει να είναι μεταβλητές Και στις δύο περιπτώσεις τα στοιχεία της λίστας μπορεί να είναι λίστες με τα μεγέθη μέσω δομής do Παραδείγματα δείχνονται στο Σχήμα 91, όπου σημειώνουμε την χρήση μιας καταμέτρησης με επανάληψη μπροστά από τα εν λόγω χαρακτηριστικά επεξεργασίας που απαιτούνται κατ επανάληψη Μια καταμέτρηση με επανάληψη πρέπει να είναι θετικός ακέραιος Δηλώσεις συναρτήσεων επιτρέπονται σε ένα κατάλογο Ι/O, υπό την προϋπόθεση ότι δεν θα προκαλέσουν περαιτέρω I/O Γ Παπαλάμπρου - FORTRAN Μάθημα 5 (Μ5) Μεταφορά δεδομένων, είσοδος/έξοδος, εξωτερικά αρχεία δεδομένων

Λίστα εξόδου Γ Παπαλάμπρου - FORTRAN Μάθημα 5 (Μ5) Μεταφορά δεδομένων, είσοδος/έξοδος, εξωτερικά αρχεία δεδομένων

Λίστα εξόδου Σε όλα αυτά τα παραδείγματα, εκτός από το τελευταίο, οι εκφράσεις αποτελούνται από επιμέρους μεταβλητές και θα ήταν εξίσου έγκυρες δηλώσεις εισόδου χρησιμοποιώντας τη δήλωση ανάγνωσης (read) όπως για παράδειγμα read (i10), i Τέτοιες δηλώσεις μπορούν να χρησιμοποιηθούν για να διαβάσετε τις τιμές οι οποίες στη συνέχεια αποδίδονται στις μεταβλητές με τη λίστα εισόδου Γ Παπαλάμπρου - FORTRAN Μάθημα 5 (Μ5) Μεταφορά δεδομένων, είσοδος/έξοδος, εξωτερικά αρχεία δεδομένων

Λίστα εξόδου Αν ένας πίνακας εμφανίζεται ως ένα στοιχείο, αυτός αντιμετωπίζεται με τα στοιχεία που να προσδιορίζονται με διάταξη στοιχείων του πίνακα Για παράδειγμα, η τρίτη από τις δηλώσεις εκτύπωσης στο Σχήμα 91 μπορούσε να έχει γραφτεί print (3f103), a(1:3) Γ Παπαλάμπρου - FORTRAN Μάθημα 5 (Μ5) Μεταφορά δεδομένων, είσοδος/έξοδος, εξωτερικά αρχεία δεδομένων

Λίστα εξόδου Μια λίστα I/O μπορεί να περιλαμβάνει μια λίστα με do, όπως φαίνεται και από την πέμπτη δήλωση print του Σχ 91: print (5f103), (a(i), i=1,9,2) Η γενική μορφή είναι (do-object-list, do-var = expr, expr [, expr]) όπου κάθε do-object είναι μια μεταβλητή (για την είσοδο), μια έκφραση (για έξοδο), ή είναι η ίδια ένας κατάλογος do, do-var είναι βαθμωτή ακέραια μεταβλητή και κάθε expr είναι μια βαθμωτή ακέραια έκφραση Γ Παπαλάμπρου - FORTRAN Μάθημα 5 (Μ5) Μεταφορά δεδομένων, είσοδος/έξοδος, εξωτερικά αρχεία δεδομένων

Ορισμός μορφών Στις δηλώσεις print, read της προηγούμενης παραγράφου, η προδιαγραφή της μορφής (format specification) δόθηκε κάθε φορά ως ένας σταθερός χαρακτήρας αμέσως μετά τη λέξη-κλειδί Στην πραγματικότητα, υπάρχουν τρεις τρόποι με τους οποίους μπορεί να δοθεί μια προδιαγραφή της μορφής, ως εξής: προεπιλεγμένη έκφραση χαρακτήρα (default character expression), αστερίσκος (asterisk), ετικέτα δήλωσης (statement label) Γ Παπαλάμπρου - FORTRAN Μάθημα 5 (Μ5) Μεταφορά δεδομένων, είσοδος/έξοδος, εξωτερικά αρχεία δεδομένων

1 Προεπιλεγμένη έκφραση χαρακτήρα Προεπιλεγμένη έκφραση χαρακτήρα η τιμή της οποίας ξεκινά με μια προδιαγραφή της μορφής στην παρένθεση: : print (f103), q ή character::carray(7)=(/ (, f, 1, 0,, 3, ) /) : print carray, q! Elements of an array expression! are concatenated : ή Γ Παπαλάμπρου - FORTRAN Μάθημα 5 (Μ5) Μεταφορά δεδομένων, είσοδος/έξοδος, εξωτερικά αρχεία δεδομένων

1 Προεπιλεγμένη έκφραση χαρακτήρα Από αυτά τα παραδείγματα φαίνεται ότι είναι δυνατόν να προγραμματιστούν μορφές με ένα ευέλικτο τρόπο, και ειδικότερα ότι είναι δυνατό να χρησιμοποιηθούν εκφράσεις, πίνακες και συμβολοσειρές (substrings) κατά τρόπο που να επιτρέπει μία συγκεκριμένη μορφή να δημιουργηθεί δυναμικά κατά το χρόνο εκτέλεσης από διάφορα στοιχεία Γ Παπαλάμπρου - FORTRAN Μάθημα 5 (Μ5) Μεταφορά δεδομένων, είσοδος/έξοδος, εξωτερικά αρχεία δεδομένων

2 Αστερίσκος Ο αστερίσκος είναι ένα είδος Ι/Ο γνωστός ως κατευθυνόμενη λίστα I/O (list-directed I/O), στο οποίο ορίζεται η μορφή από το σύστημα του υπολογιστή κατά τη στιγμή που η δήλωση εκτελείται, ανάλογα με το είδος και το μέγεθος των στοιχείων που περιλαμβάνονται, ως εξής: : print *, Square-root of q =, sqrt(q) Αυτό το παράδειγμα εξάγει μία έκφραση, ακολουθούμενη από την τιμή της έκφρασης Στην οθόνη αυτό θα εμφανίζεται ως : Square-root of q = 4392246 Αυτή η δυνατότητα είναι ιδιαίτερα χρήσιμη για μικρό πλήθος των τιμών εισόδου, εξόδου, ειδικά σε προσωρινό κώδικα που χρησιμοποιείται για τους σκοπούς μιάς δοκιμής, και ο οποίος αφαιρείται από την τελική έκδοση του προγράμματος Γ Παπαλάμπρου - FORTRAN Μάθημα 5 (Μ5) Μεταφορά δεδομένων, είσοδος/έξοδος, εξωτερικά αρχεία δεδομένων

3 Ετικέτα δήλωσης Μία ετικέτα δήλωσης αναφέρεται σε μια δήλωση μορφής που περιέχει τη σχετική προδιαγραφή μεταξύ παρενθέσεων: : print 100, q : 100 format(f103) Η δήλωση μορφής πρέπει να εμφανίζεται στην ίδια μονάδα προγράμματος, πριν από δήλωση contain (εάν αυτή υπάρχει) Είναι σύνηθες, είτε να τοποθετείται κάθε δήλωση μορφής αμέσως μετά την πρώτη δήλωση στην οποία αναφέρεται, ή να υπάρχουν όλες μαζί λίγο πριν από δήλωση contain ή end Επίσης, είναι σύνηθες να υπάρχει ξεχωριστή ακολουθία αριθμών για τις ετικέτες (labels) στην δήλωση format Γ Παπαλάμπρου - FORTRAN Μάθημα 5 (Μ5) Μεταφορά δεδομένων, είσοδος/έξοδος, εξωτερικά αρχεία δεδομένων

Αριθμοί μονάδων I/O Οι λειτουργίες εισόδου/εξόδου χρησιμοποιούνται για τη μεταφορά δεδομένων μεταξύ των μεταβλητών ενός εκτελούμενου προγράμματος, όπως είναι αποθηκευμενές στον υπολογιστή ή/και σε ένα εξωτερικό μέσο Υπάρχουν πολλοί τύποι εξωτερικών μέσων: οθόνη, εκτυπωτής, σκληρός δίσκος, memory stick και CD, που είναι ίσως και τα πιο γνωστά Όποια και αν είναι η διάταξη, ένα πρόγραμμα Fortran θεωρεί το μέσο από το οποίο διαβάζει ή στο οποία γράφει ως μονάδα (unit) και κάθε μονάδα, με δύο εξαιρέσεις, σχετίζεται με έναν αριθμό μονάδας (unit number) Ο αριθμός αυτός δεν πρέπει να είναι αρνητικός Έτσι θα μπορούσαμε να συσχετίσουμε ένα CD από το οποίο διαβάζουμε με τον αριθμό μονάδας 10, και ένα σκληρό δίσκο στον οποίο γράφουμε τον αριθμό μονάδας 11 Γ Παπαλάμπρου - FORTRAN Μάθημα 5 (Μ5) Μεταφορά δεδομένων, είσοδος/έξοδος, εξωτερικά αρχεία δεδομένων

Αριθμοί μονάδων I/O Είδαμε μέχρι τώρα δύο δηλώσεις I/O, της εκτύπωσης (print) και μία παραλλαγή της ανάγνωσης (read), που δεν χρησιμοποιούν κάποιο αριθμό μονάδας, για χάρη απλότητας Μια δήλωση ανάγνωσης χωρίς αριθμό μονάδας κανονικά αναμένει να διαβάσει από το πληκτρολόγιο, εκτός εάν το πρόγραμμα λειτουργεί μη διαδραστικά αλλά σε παρτίδα (batch), στην οποία περίπτωση υπάρχει θα είναι ένα αρχείο δίσκου με ένα δεσμευμένο όνομα από το οποίο θα διαβάζει Γ Παπαλάμπρου - FORTRAN Μάθημα 5 (Μ5) Μεταφορά δεδομένων, είσοδος/έξοδος, εξωτερικά αρχεία δεδομένων

Αριθμοί μονάδων I/O Αντίστοιχα μια δήλωση εκτύπωσης κανονικά αναμένει για την έξοδο προς την οθόνη, εκτός εάν το πρόγραμμα είναι σε λειτουργία batch, στην οποία περίπτωση ένα άλλο αρχείο δίσκου με ένα δεσμευμένο όνομα θα λαμβάνει τα αποτελέσματα Τέτοια αρχεία δίσκου είναι συνήθως κατάλληλα για αποθήκευση σε μια συσκευή εξόδου Το σύστημα θέτει αριθμούς σε αυτές τις προεπιλεγμένες μονάδες (Συνήθως 5 για είσοδο και 6 για έξοδο) Γ Παπαλάμπρου - FORTRAN Μάθημα 5 (Μ5) Μεταφορά δεδομένων, είσοδος/έξοδος, εξωτερικά αρχεία δεδομένων

Αριθμοί μονάδων I/O Εκτός από αυτές τις δύο ειδικές περιπτώσεις, όλες οι δηλώσεις I/O πρέπει να αναφέρονται ρητά σε μια μονάδα, προκειμένου να αναγνωριστεί η συσκευή στην οποία / από την οποία τα δεδομένα πρόκειται να μεταφερθούν Η μονάδα μπορεί να δοθεί σε μία από τις τρεις μορφές όπως φαίνεται στα ακόλουθα παραδείγματα τα οποία χρησιμοποιούν την πλήρη μορφή του read, με μονάδα u, και προσδιορισμό μορφής fmt, σε παρένθεση και διαχωρισμένο με ένα κόμμα, όπου fmt είναι μια προδιαγραφή μορφής που περιγράφτηκε στην προηγούμενη ενότητα: : read (u, fmt) list Γ Παπαλάμπρου - FORTRAN Μάθημα 5 (Μ5) Μεταφορά δεδομένων, είσοδος/έξοδος, εξωτερικά αρχεία δεδομένων

Μονάδες I/O: Μορφές αριθμών 1 Βαθμωτή ακέραια έκφραση που δίνει τον αριθμό της μονάδας : : read (4, (f103) ) q read (nunit, (f103) ) q read (4*i+j, 100) a 2 Αστερίσκος, για παράδειγμα : : read (*, (f103) ) q 3 Μια προεπιλεγμένη μεταβλητή τύπου χαρακτήρα, για την αναγνώριση ενός εσωτερικού αρχείου (βλέπε επόμενη ενότητα) Γ Παπαλάμπρου - FORTRAN Μάθημα 5 (Μ5) Μεταφορά δεδομένων, είσοδος/έξοδος, εξωτερικά αρχεία δεδομένων

Μορφοποίηση εισόδου Στις προηγούμενες ενότητες δόθηκε πλήρης περιγραφή των τρόπων μορφοποίησης και των αριθμών μονάδων, με τη χρήση απλουστευμένων μορφών των δηλώσεων read, print Υπάρχουν στην πραγματικότητα δύο μορφές της δήλωσης μορφοποίησης read Έτσι έχουμε χωρίς μονάδα τη μορφή read fmt [,list] ενώ με μονάδα τη μορφή Γ Παπαλάμπρου - FORTRAN Μάθημα 5 (Μ5) Μεταφορά δεδομένων, είσοδος/έξοδος, εξωτερικά αρχεία δεδομένων

Μορφοποίηση εισόδου Για την περίπτωση μονάδας με τη μορφή ισχύουν: u και fmt είναι η μονάδα και οι προδιαγραφές μορφής που είδαμε, iostat =, err =, end= είναι προαιρετικά προσδιοριστικά τα οποία επιτρέπουν στο χρήστη να καθορίσει τον τρόπο ανάκτησης ελέγχου κατά τις διάφορες περιπτώσεις σφαλμάτων, και list είναι μια λίστα των μεταβλητών ή λίστα τύπου do με καταλόγους των μεταβλητών Γ Παπαλάμπρου - FORTRAN Μάθημα 5 (Μ5) Μεταφορά δεδομένων, είσοδος/έξοδος, εξωτερικά αρχεία δεδομένων

Μορφοποίηση εισόδου Για την περίπτωση σφάλματος κατά την ανάγνωση στο Σχ 94 προβλέπεται ανάκτηση: Για περισσότερες λεπτομέρειες για τις παραμέτρους iostat, err, end δείτε την παρ 97 του βιβλίου Μία καλή πρακτική περιλαμβάνει κάποιο είδος της ανάκτησης ελέγχου σε περίπτωση σφάλματος σε όλες δηλώσεις read, οι οποίες περιλαμβάνoνται μόνιμα σε ένα πρόγραμμα Εναλλακτικά, είσοδος δεδομένων για τους σκοπούς δοκιμής γίνεται επαρκώς με την απλή μορφή της εντολής ανάγνωσης χωρίς αριθμό μονάδας και χωρίς σφάλματα ανάκτησης Γ Παπαλάμπρου - FORTRAN Μάθημα 5 (Μ5) Μεταφορά δεδομένων, είσοδος/έξοδος, εξωτερικά αρχεία δεδομένων

Μορφοποίηση εξόδου Υπάρχουν δύο τύποι μορφοποίησης εξόδου, με την δήλωση print που έχει εμφανιστεί σε πολλά από τα παραδείγματα μέχρι στιγμής και η δήλωση write, της οποίας η σύνταξη είναι παρόμοια με της read: print fmt [,list] και write ([unit=]u,[fmt=]fmt [,iostat=ios][,err=error-label]) [list] όπου όλα τα στοιχεία έχουν την ίδια σημασία όπως περιγράφονται για τη δήλωση ανάγνωσης read Ένα παράδειγμα μιας δήλωσης εγγραφής write είναι η εξής: write (nout, (10f103), iostat=ios, err=110) a Γ Παπαλάμπρου - FORTRAN Μάθημα 5 (Μ5) Μεταφορά δεδομένων, είσοδος/έξοδος, εξωτερικά αρχεία δεδομένων

Μορφοποίηση εξόδου Ένα παράδειγμα δίνεται στο Σχ 95, το οποίο ενσωματώνει μια σειρά χαρακτήρων από αριθμητικά στοιχεία και στοιχεία χαρακτήρων Η τελική σειρά χαρακτήρων θα μπορούσε να περάσει σε μία άλλη υπορουτίνα για την παραγωγή, για παράδειγμα, λεζάντας σε μια οθόνη γραφικών: Μετά την εκτέλεση της δήλωσης εγγραφής, η line θα περιέχει την ακολουθία χαρακτήρων: Takings for day 3 are 432915 dollars Γ Παπαλάμπρου - FORTRAN Μάθημα 5 (Μ5) Μεταφορά δεδομένων, είσοδος/έξοδος, εξωτερικά αρχεία δεδομένων

Εξωτερικά αρχεία δεδομένων Μέχρι στιγμής έχουμε συζητήσει το θέμα των εξωτερικών αρχείων (external files) με απλό τρόπο Στα παραδείγματα των διαφόρων δηλώσεων I/O, υπήρξε πάντα έμμεση παραδοχή ότι το καθορισμένο αρχείο ήταν πράγματι διαθέσιμο, και ότι οι εγγραφές (records) θα μπορούσαν να γραφτούν σε αυτό και να διαβαστούν από αυτό Προκειμένου να καθοριστεί ρητά και να ελεγχθεί η κατάσταση του εξωτερικού αρχείου, υπάρχουν τρεις σχετικές δηλώσεις με αρχεία: άνοιγμα (open), κλείσιμο (close) και ερώτηση (inquire) Πριν από την έναρξη περιγραφής τους ωστόσο, δύο νέοι ορισμοί απαιτούνται Γ Παπαλάμπρου - FORTRAN Μάθημα 5 (Μ5) Μεταφορά δεδομένων, είσοδος/έξοδος, εξωτερικά αρχεία δεδομένων

Εξωτερικά αρχεία δεδομένων - Ορισμός 1 Στη ορολογία της Fortran, ένα αρχείο λέγεται ότι υπάρχει (exists), όταν υπάρχει ως ένα αρχείο στο οποίο το πρόγραμμα θα μπορούσε να έχει πρόσβαση (access) Με άλλα λόγια, εάν το πρόγραμμα δεν επιτρέπεται να χρησιμοποιεί το αρχείο λόγω της προστασίας με κωδικό πρόσβασης συστήματος, είτε επειδή δεν έχει γίνει κάποια άλλη αναγκαία ενέργεια, το αρχείο δεν υπάρχει Γ Παπαλάμπρου - FORTRAN Μάθημα 5 (Μ5) Μεταφορά δεδομένων, είσοδος/έξοδος, εξωτερικά αρχεία δεδομένων

Εξωτερικά αρχεία δεδομένων - Ορισμός 2 Ένα αρχείο που υπάρχει για ένα πρόγραμμα που εκτελείται μπορεί να είναι άδειο και μπορεί ή δεν μπορεί είναι συνδεμένο (connected) σε αυτό το πρόγραμμα Το αρχείο είναι συνδεδεμένο εάν σχετίζεται με έναν αριθμό μονάδας (unit number) γνωστό στο πρόγραμμα Τέτοια σύνδεση γίνεται συνήθως εκτελώντας δήλωση open για το αρχείο, αλλά πολλά συστήματα υπολογιστών θα συνδέσουν από πρίν ορισμένα αρχεία που κάποιο πρόγραμμα αναμένεται να χρησιμοποιεί, όπως τερματικό εισόδου και εξόδου Γ Παπαλάμπρου - FORTRAN Μάθημα 5 (Μ5) Μεταφορά δεδομένων, είσοδος/έξοδος, εξωτερικά αρχεία δεδομένων

Εξωτερικά αρχεία δεδομένων - Ορισμός 2 Έτσι βλέπουμε ότι ένα αρχείο μπορεί να υπάρχει αλλά δεν έχει συνδεθεί Μπορεί επίσης να έχει συνδεθεί αλλά να μην δεν υπάρχει Το αρχείο μορεί να δημιουργηθεί μόνο εάν γίνει κάποια ενέργεια προς αυτό: άνοιγμα (open), εγγραφή (write), εκτύπωση (print) ή δήλωση τέλους αρχείου (endfile) Μια μονάδα δεν πρέπει να συνδέεται με περισσότερα από ένα αρχεία κάθε φορά, και ένα αρχείο δεν πρέπει να συνδέεται με περισσότερες από μία μονάδες ταυτόχρονα Γ Παπαλάμπρου - FORTRAN Μάθημα 5 (Μ5) Μεταφορά δεδομένων, είσοδος/έξοδος, εξωτερικά αρχεία δεδομένων

Εξωτερικά αρχεία δεδομένων Υπάρχει ένας αριθμός από σημεία που πρέπει να σημειωθούν ακόμα σε σχέση με τα αρχεία: Το σύνολο των επιτρεπόμενων ονομάτων για ένα αρχείο εξαρτάται από τον επεξεργαστή Τόσο η διαδοχική/σειριακή (sequential) όσο και η άμεση (direct) προσπέλαση (access) μπορεί να είναι διαθέσιμη για ορισμένα αρχεία, αλλά συνήθως ένα αρχείο περιορίζεται στον ένα ή το άλλο τρόπο προσπέλασης Ένα αρχείο δεν μπορεί να περιέχει ταυτόχρονα διαμορφωμένες (formatted) και μη διαμορφωμένες (unformatted) εγγραφές (records) Οι δηλώσεις σε αυτό το κεφάλαιο αφορούν μόνο εξωτερικά αρχεία (external files) Γ Παπαλάμπρου - FORTRAN Μάθημα 5 (Μ5) Μεταφορά δεδομένων, είσοδος/έξοδος, εξωτερικά αρχεία δεδομένων

Tύποι προσπέλασης εξωτερικών αρχείων δεδομένων Με τον όρο προσπέλαση (file access) αρχείου, εννοούμε τον τρόπο µε τον οποίο γίνονται οι εγγραφές σε ένα αρχείο ή γίνεται ανάγνωση των εγγραφών από ένα αρχείο Υπάρχουν δύο διαφορετικοί τρόποι προσπέλασης αρχείων: η σειριακή (sequential) και η άµεση προσπέλαση (direct access) Στην σειριακή προσπέλαση κατά τη δηµιουργία του αρχείου οι εγγραφές τοποθετούνται η µία µετά την άλλη στη σειρά Κατά την ανάγνωση των εγγραφών, διαβάζεται η µια εγγραφή µετά την άλλη, ξεκινώντας από την πρώτη εγγραφή του αρχείου Στην άµεση προσπέλαση έχουµε τη δυνατότητα να προσπελάσουµε κάθε εγγραφή χωρίς απαραίτητα να προσπελάσουµε οποιαδήποτε άλλη έγγραφη Αυτό είναι εφικτό χρησιµοποιώντας ένα πεδίο που χαρακτηρίζει µοναδικά κάθε εγγραφή και ονοµάζεται πεδίο-κλειδί (key) Γ Παπαλάμπρου - FORTRAN Μάθημα 5 (Μ5) Μεταφορά δεδομένων, είσοδος/έξοδος, εξωτερικά αρχεία δεδομένων

Εξωτερικά αρχεία δεδομένων σειριακής προσπέλασης Κατά την ανάγνωση ή εγγραφή από/σε ένα εξωτερικό αρχείο που είναι συνδεδεμένο για διαδοχική/σειριακή προσπέλαση (sequential access), με διαμορφωμένες ή μη διαμορφωμένες εγγραφές, μερικές φορές είναι απαραίτητο να εκτελεστούν άλλες λειτουργίες ελέγχου για το αρχείο εκτός από την είσοδο και την έξοδο Συγκεκριμένα, κάποιος μπορεί να επιθυμεί να αλλάξει την τρέχουσα θέση που μπορεί να έχει σε μία εγγραφή/εγγραφές, πριν από την πρώτη εγγραφή ή μετά από την τελευταία εγγραφή Οι ακόλουθες τρεις δηλώσεις/εντολές παρέχονται για τους σκοπούς αυτούς: backspace, rewind, endfile Γ Παπαλάμπρου - FORTRAN Μάθημα 5 (Μ5) Μεταφορά δεδομένων, είσοδος/έξοδος, εξωτερικά αρχεία δεδομένων

Η εντολή backspace Μπορεί σε ένα πρόγραμμα μετά την εγγραφή ομάδας εγγραφών (write records), για κάποιο λόγο η τελευταία εγγραφή να πρέπει να αντικατασταθεί από μία νέα Ομοίως, κατά την ανάγνωση εγγραφών, μπορεί να είναι απαραίτητο να ξαναδιαβαστεί η τελευταία εγγραφή που μόλις γράφτηκε Για το σκοπό αυτό, η Fortran παρέχει τη δήλωση/εντολή backspace, η οποία έχει τη σύνταξη: backspace u ή backspace ([unit=]u [,iostat=ios] [,err=error-label]) όπου u είναι μια βαθμωτή ακέραια έκφραση της οποίας η τιμή είναι ο αριθμός μονάδας (unit number), και τα υπόλοιπα προαιρετικά προσδιοριστικά έχουν την ίδια έννοια όπως και στην εντολή read Γ Παπαλάμπρου - FORTRAN Μάθημα 5 (Μ5) Μεταφορά δεδομένων, είσοδος/έξοδος, εξωτερικά αρχεία δεδομένων

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

Η εντολή rewind Με έναν ανάλογο τρόπο της επανάγνωσης, επανεγγραφής ή επανελέγχου ανάγνωσης μιάς εγγραφής, μία παρόμοια λειτουργία μπορεί να διεξαχθεί σε έναν πλήρες αρχείο Για το σκοπό αυτό υπάρχει η δήλωση/εντολή που επαναφέρει το αρχείο σειριακής προσπέλασης στην πρώτη εγγραφή rewind u ή rewind ([unit=]u [,iostat=ios] [,err=error-label]) Η εντολή rewind τοποθετεί το νοητό δείκτη στην πρώτη εγγραφή του αρχείου Γ Παπαλάμπρου - FORTRAN Μάθημα 5 (Μ5) Μεταφορά δεδομένων, είσοδος/έξοδος, εξωτερικά αρχεία δεδομένων

Η εντολή endfile Το τέλος ενός αρχείου που συνδέεται για σειριακή προσπέλασης συνήθως χαρακτηρίζεται από μια ειδική εγγραφή η οποία αναγνωρίζεται ως τέτοια από τον υπολογιστή Το συστήματα ηλεκτρονικών υπολογιστών εξασφαλίζουν ότι όλα τα αρχεία που έχουν δημιουργηθεί από ένα πρόγραμμα τερματίζονται σωστά από μία εγγραφή endfile, όπως: endfile u ή endfile ([unit=]u [,iostat=ios] [,err=error-label]) Γ Παπαλάμπρου - FORTRAN Μάθημα 5 (Μ5) Μεταφορά δεδομένων, είσοδος/έξοδος, εξωτερικά αρχεία δεδομένων

Η εντολή open Η εντολή/δήλωση open χρησιμοποιείται για να συνδέσει ένα εξωτερικό αρχείο σε μια μονάδα, για να δημιουργήσει ένα αρχείο που είναι προσυνδεδεμένο, για να δημιουργήσει ένα αρχείο και να το συνδέσει σε μια μονάδα ή για να αλλάξει ορισμένες ιδιότητες μίας σύνδεσης Η σύνταξη είναι open ([unit=]u [,olist]) όπου u είναι μια βαθμωτή ακέραια έκφραση που προσδιορίζει τον αριθμό της εξωτερικής μονάδας, και olist είναι ένας κατάλογος προαιρετικών προδιαγραφών Στις προδιαγραφές, όλες οι παράμετροι είναι βαθμωτά μεγέθη και προκαθορισμένες Σε εκφράσεις χαρακτήρα, τυχόν κενά μετά (trailing) αγνοούνται και εκτός από το file=, οποιαδήποτε κεφαλαία γράμματα μετατρέπονται σε πεζά Τα προσδιοριστικά έχουν ως ακολουθως Γ Παπαλάμπρου - FORTRAN Μάθημα 5 (Μ5) Μεταφορά δεδομένων, είσοδος/έξοδος, εξωτερικά αρχεία δεδομένων

Η εντολή open-προσδιοριστικά Γ Παπαλάμπρου - FORTRAN Μάθημα 5 (Μ5) Μεταφορά δεδομένων, είσοδος/έξοδος, εξωτερικά αρχεία δεδομένων

Η εντολή open-προσδιοριστικά Γ Παπαλάμπρου - FORTRAN Μάθημα 5 (Μ5) Μεταφορά δεδομένων, είσοδος/έξοδος, εξωτερικά αρχεία δεδομένων

Η εντολή open-προσδιοριστικά Γ Παπαλάμπρου - FORTRAN Μάθημα 5 (Μ5) Μεταφορά δεδομένων, είσοδος/έξοδος, εξωτερικά αρχεία δεδομένων

Η εντολή open-προσδιοριστικά Γ Παπαλάμπρου - FORTRAN Μάθημα 5 (Μ5) Μεταφορά δεδομένων, είσοδος/έξοδος, εξωτερικά αρχεία δεδομένων

Η εντολή open-προσδιοριστικά Γ Παπαλάμπρου - FORTRAN Μάθημα 5 (Μ5) Μεταφορά δεδομένων, είσοδος/έξοδος, εξωτερικά αρχεία δεδομένων

Η εντολή open Ένα παράδειγμα της εντολής open ακολουθεί: open (2, iostat=ios, err=99, file= cities, & status= new, access= direct, recl=100) που δημιουργεί νέο αρχείο, με απευθείας πρόσβαση, χωρίς μορφοποιημένες εγγραφές (παράληψη του form=fm), αρχείο με το όνομα cities, των οποίων οι εγγραφές έχουν μήκος 100 Το αρχείο είναι συνδεδεμένο με τον αριθμό της μονάδας 2 Τυχόν αποτυχία να εκτελέσει την εντολή σωστά θα προκαλέσει τον έλεγχο/ροή προγράμματος να περάσει από την εντολή με δήλωση (label) 99, εκεί όπου η τιμή του ios μπορεί να ελεγχθεί Γ Παπαλάμπρου - FORTRAN Μάθημα 5 (Μ5) Μεταφορά δεδομένων, είσοδος/έξοδος, εξωτερικά αρχεία δεδομένων

Η εντολή open Οι εντολές open σε ένα πρόγραμμα είναι καλύτερα να τοποθετούνται όλες μαζί σε ένα μέρος του προγράμματος, έτσι ώστε κάθε αλλαγές οι οποίες θα μπορούσαν να γίνουν σε αυτές κατά τη μεταφορά του προγράμματος από ένα σύστημα σε ένα άλλο να μπορούν να πραγματοποιηθούν χωρίς να πρέπει να γίνει αναζήτηση για αυτές Ανεξάρτητα από το πού εμφανίζονται, η σύνδεση τους μπορεί να αναφέρεται σε οποιαδήποτε μονάδα του προγράμματος Γ Παπαλάμπρου - FORTRAN Μάθημα 5 (Μ5) Μεταφορά δεδομένων, είσοδος/έξοδος, εξωτερικά αρχεία δεδομένων

Η εντολή close Ο σκοπός της εντολής close είναι να αποσυνδέσει ένα αρχείο από μια μονάδα Η μορφή της είναι: close ([unit=]u [,iostat=ios] [,err=error-label]& status=st) όπου u, ios, error-label έχουν τις ίδιες έννοιες όπως περιγράφεται στην προηγούμενη ενότητα για την εντολή open Γ Παπαλάμπρου - FORTRAN Μάθημα 5 (Μ5) Μεταφορά δεδομένων, είσοδος/έξοδος, εξωτερικά αρχεία δεδομένων

Η εντολή close Η λειτουργία του προσιοριστικού status είναι να προσδιορίσει τι θα συμβεί στο αρχείο αφού αποσυνδεθεί Έτσι η τιμή του st, η οποία είναι μια έκφραση προεπιλεγμένη, μπορεί να είναι keep είτε delete Αν η τιμή είναι keep, ένα αρχείο που υπάρχει εξακολουθεί να υπάρχει και μετά την εκτέλεση της εντολής close, και μπορεί αργότερα να συνδεθεί ξανά σε μια μονάδα Αν η τιμή είναι delete, το αρχείο δεν υπάρχει πλέον μετά την εκτέλεση της δήλωσης Σε κάθε περίπτωση, η μονάδα είναι ελεύθερη να συνδεθεί πάλι σε ένα αρχείο Η δήλωση close μπορεί να εμφανιστεί οπουδήποτε στο πρόγραμμα Ένα παράδειγμα της εντολής είναι: close (2, iostat=ios, err=99, status= delete ) Γ Παπαλάμπρου - FORTRAN Μάθημα 5 (Μ5) Μεταφορά δεδομένων, είσοδος/έξοδος, εξωτερικά αρχεία δεδομένων

Η εντολή inquire Η κατάσταση ενός αρχείου μπορεί να καθοριστεί από το λειτουργικό σύστημα πριν από την εκτέλεση του προγράμματος, ή από το ίδιο το πρόγραμμα κατά την εκτέλεση, είτε από μια εντολή open ή με κάποια ενέργεια σε προσυνδεδεμένο αρχείο Σε οποιαδήποτε στιγμή κατά τη διάρκεια της εκτέλεσης ενός πρόγραμμα είναι δυνατό να γίνει ερώτηση σχετικά με την κατάσταση και τις ιδιότητες ενός αρχείου χρησιμοποιώντας την εντολή/δήλωση inquire Γ Παπαλάμπρου - FORTRAN Μάθημα 5 (Μ5) Μεταφορά δεδομένων, είσοδος/έξοδος, εξωτερικά αρχεία δεδομένων

Η εντολή inquire Χρησιμοποιώντας μια παραλλαγή της δήλωσης inquire, είναι παρομοίως δυνατόν να προσδιοριστεί η κατάσταση μιας μονάδας, για παράδειγμα αν υπάρχει ο αριθμός της μονάδας του εν λόγω συστήματος (δηλαδή, κατά πόσον είναι ένας επιτρεπτός αριθμός μονάδας), αν ο αριθμός μονάδας έχει ένα αρχείο που συνδέονται με αυτό και, αν ναι, ποιά χαρακτηριστικά έχει το αρχείο Μια άλλη παραλλαγή επιτρέπει μια ερώτηση σχετικά με το μήκος μιας λίστας εξόδου όταν χρησιμοποιείται για να δημιουργήσει μια εγγραφή Γ Παπαλάμπρου - FORTRAN Μάθημα 5 (Μ5) Μεταφορά δεδομένων, είσοδος/έξοδος, εξωτερικά αρχεία δεδομένων

Η εντολή inquire Στην ερώτηση κατάστασης για μονάδα, η μορφή εντολής είναι: inquire ([unit=]u, ilist) Στην ερώτηση κατάστασης για αρχείο, η μορφή εντολής είναι: inquire ( file=fln, ilist) Τα προσδιοριστικά, στα οποία όλες οι μεταβλητές είναι βαθμωτά μεγέθη και προεπιλεγμένα, έχουν ως εξής Γ Παπαλάμπρου - FORTRAN Μάθημα 5 (Μ5) Μεταφορά δεδομένων, είσοδος/έξοδος, εξωτερικά αρχεία δεδομένων

Η εντολή inquire-προσδιοριστικά Γ Παπαλάμπρου - FORTRAN Μάθημα 5 (Μ5) Μεταφορά δεδομένων, είσοδος/έξοδος, εξωτερικά αρχεία δεδομένων

Η εντολή inquire-προσδιοριστικά Γ Παπαλάμπρου - FORTRAN Μάθημα 5 (Μ5) Μεταφορά δεδομένων, είσοδος/έξοδος, εξωτερικά αρχεία δεδομένων

Η εντολή inquire-προσδιοριστικά Γ Παπαλάμπρου - FORTRAN Μάθημα 5 (Μ5) Μεταφορά δεδομένων, είσοδος/έξοδος, εξωτερικά αρχεία δεδομένων

Η εντολή inquire-προσδιοριστικά Γ Παπαλάμπρου - FORTRAN Μάθημα 5 (Μ5) Μεταφορά δεδομένων, είσοδος/έξοδος, εξωτερικά αρχεία δεδομένων

Η εντολή inquire-παράδειγμα χρήσης 1 Γ Παπαλάμπρου - FORTRAN Μάθημα 5 (Μ5) Μεταφορά δεδομένων, είσοδος/έξοδος, εξωτερικά αρχεία δεδομένων

Η εντολή inquire-παράδειγμα χρήσης 2 Γίνεται ερώτηση σχετικά με την ύπαρξη του αρχείου foodat Γ Παπαλάμπρου - FORTRAN Μάθημα 5 (Μ5) Μεταφορά δεδομένων, είσοδος/έξοδος, εξωτερικά αρχεία δεδομένων

Βιβλιογραφία M Metcalf, J Reid, M Cohen, Modern Fortran Explained, Oxford, 4th Edition, 2011 κεφάλαιο 9 Data transfer, κεφάλαιο 10 Operations on external files Γ Παπαλάμπρου - FORTRAN Μάθημα 5 (Μ5) Μεταφορά δεδομένων, είσοδος/έξοδος, εξωτερικά αρχεία δεδομένων