ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΤΜΗΜΑ ΜΗΧΑΝΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΒΙΟΜΗΧΑΝΙΑΣ Διάλεξη 2: Πίνακες και δυναμικά δεδομένα στη FORTRAN 90 Εαρινό εξάμηνο 2009 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ.

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
Βασικές Έννοιες Προγραμματισμού
Advertisements

(READ – WRITE) ΚΑΙ ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ (INTEGER,REAL,CHAR)
7.3.8 Μεταφραστές Ελληνογαλλική Σχολή Καλαμαρί - Τίκβα Χριστίνα.
ΠΙΝΑΚΕΣ ΜΑΘΗΜΑ 6.
ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ ΥΠΟΡΟΥΤΙΝΕΣ
Στοιχειώδεις Δομές Δεδομένων TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Τύποι δεδομένων στη Java • Ακέραιοι.
Το πρόγραμμα Turbo Pascal TPW1.5
Δομές Διακλάδωσης Μην ελπίζεις ότι θα ξεφύγεις αν κάνεις κάποιο κακό. Γιατί κι αν ξεφύγεις απ’ τη προσοχή των άλλων, θα υποπέσεις στην αντίληψη της συνείδησής.
Προγραμματισμός PASCAL
Πίνακες.
1 Α. Βαφειάδης Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ.Ε.Ι Θεσσαλονίκης Μάθημα Προηγμένες Αρχιτεκτονικές Υπολογιστών Κεφαλαίο Πρώτο Αρχιτεκτονική.
ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ ΤΜΗΜΑΤΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ
Σημειώσεις : Χρήστος Μουρατίδης
Πίνακες-Αλφαριθμητικά
Εισαγωγή στους Η/Υ Πίνακες.
ΣΤΟΙΧΕΙΑ ΨΕΥΔΟΚΩΔΙΚΑ ΒΑΣΙΚΕΣ ΔΟΜΕΣ ΒΑΣΙΚΟΙ ΑΛΓΟΡΙΘΜΟΙ ΠΙΝΑΚΩΝ
ΜΑΘ3122/106 Γλώσσα Προγραμματισμού
Προγραμματισμός Ι Πίνακες •Ο πίνακας είναι μία συλλογή μεταβλητών ίδιου τύπου, οι οποίες είναι αποθηκευμένες σε διαδοχικές θέσεις μνήμης. Χρησιμοποιείται.
Μάθημα : Βασικά Στοιχεία της Γλώσσας Java
ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΤΜΗΜΑ ΜΗΧΑΝΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΒΙΟΜΗΧΑΝΙΑΣ Διάλεξη 4: Δείκτες, συναρτήσεις και διαδικασίες Εαρινό εξάμηνο 2009 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ.
ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Διδάσκοντες:Στάθης Ζάχος Νίκος Παπασπύρου
Προγραμματισμός PASCAL Πληροφορική Γ' Λυκείου μέρος γ
Παράδειγμα 5: Θερμοκρασίες
ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΤΜΗΜΑ ΜΗΧΑΝΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΒΙΟΜΗΧΑΝΙΑΣ Διάλεξη 5: Επαναληπτικές και εξωτερικές συναρτήσεις και διαδικασίες Εαρινό εξάμηνο 2009.
ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΤΜΗΜΑ ΜΗΧΑΝΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΒΙΟΜΗΧΑΝΙΑΣ Διάλεξη 3: Δείκτες Εαρινό εξάμηνο 2009 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ι. Σαρρής, τηλ.
Γενική μορφή προγράμματος Pascal
1 ΕΝΤΟΛΕΣ ΠΛΗΡΟΦΟΡΙΩΝ ΓΕΝΙΚΕΣ ΠΛΗΡΟΦΟΡΙΕΣΓΕΝΙΚΕΣ ΠΛΗΡΟΦΟΡΙΕΣ ΘΕΣΗ ΣΗΜΕΙΟΥΘΕΣΗ ΣΗΜΕΙΟΥ ΑΠΟΣΤΑΣΗΑΠΟΣΤΑΣΗ ΕΜΒΑΔΟΝΕΜΒΑΔΟΝ.
Προγραμματισμός ΙΙ Διάλεξη #6: Απλές Δομές Ελέγχου Δρ. Νικ. Λιόλιος.
ΔΕΞΙΟΤΗΤΕΣ ΕΠΙΚΟΙΝΩΝΙΑΣ 1 ΠΕΡΙΓΡΑΦΗ ΤΩΝ ΜΝΗΜΩΝ ΕΝΟΣ Η/Υ ΤΜΗΜΑ: Τ6 ΟΝΟΜΑΤΑ: ΣΕΛΑΛΜΑΖΙΔΗΣ ΤΑΣΟΣ ΦΙΛΙΑΣ ΑΝΤΩΝΗΣ ΦΙΛΙΑΣ ΑΝΤΩΝΗΣ ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ.
ΗΥ302 Διδακτική της Πληροφορικής Η γλώσσα προγραμματισμού LOGO Writer Ομάδα Εργασία: Αλεβίζου Βασιλική (Α.Μ.:1029) Κοφφινά Ιωάννα (Α.Μ.:1035) Τριανταφυλλίδου.
Προγραμματισμός ΙΙ Διάλεξη #5: Εντολές Ανάθεσης Εντολές Συνθήκης Δρ. Νικ. Λιόλιος.
Μεταβλητές – εντολές εκχώρησης- δομή ακολουθίας
ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Διδάσκοντες:Στάθης Ζάχος Νίκος Παπασπύρου
ΘΕΜΑΤΙΚΗ ΕΝΟΤΗΤΑ 2: ΘΕΜΑΤΑ ΘΕΩΡΗΤΙΚΗΣ ΕΠΙΣΤΗΜΗΣ Η/Υ
ΗΥ 150 – ΠρογραμματισμόςΞενοφών Ζαμ π ούλης ΗΥ-150 Προγραμματισμός Δυναμική Διαχείριση Μνήμης (1/2)
Δείκτες (Pointers) – Δομές (Structs)
ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΤΜΗΜΑ ΜΗΧΑΝΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΒΙΟΜΗΧΑΝΙΑΣ Ι. Σαρρής, τηλ. Διάλεξη 2: Αντικείμενα.
Διαφάνειες παρουσίασης Πίνακες (συνέχεια) Αριθμητικοί υπολογισμοί Αναδρομή.
National Technical University of Athens (NTUA), GreeceInstitute of Structural Analysis & Seismic Research (ISASR) Προχωρημένες υπολογιστικές τεχνικές και.
Επικοινωνία Ανθρώπου Μηχανής HTML CGI JAVASCRIPT Κουμπούλης Χρήστος Α.Μ. 921 Χαλαβαζής Βασίλης Α.Μ. 988.
ΘΕΜΑΤΙΚΗ ΕΝΟΤΗΤΑ 2: ΘΕΜΑΤΑ ΘΕΩΡΗΤΙΚΗΣ ΕΠΙΣΤΗΜΗΣ Η/Υ
HY100 : ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΥΠΟΛΟΓΙΣΤΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ, ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ, ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΥΠΟΛΟΓΙΣΤΩΝ ΔΙΔΑΣΚΟΝΤΕΣ Αντώνιος Σαββίδης, Χρήστος.
ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Διδάσκοντες:Στάθης Ζάχος Νίκος Παπασπύρου
ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ Διδάσκοντες:Στάθης Ζάχος Νίκος Παπασπύρου
ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Διδάσκοντες:Στάθης Ζάχος Νίκος Παπασπύρου
1 Τμήμα Μηχανικών Ηλεκτρονικών Υπολογιστών και Πληροφορικής Πανεπιστήμιο Πατρών ΟΝΤΟΚΕΝΤΡΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΙΙ (C++) Πίνακες.
HY100 : ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΥΠΟΛΟΓΙΣΤΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ, ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ, ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΥΠΟΛΟΓΙΣΤΩΝ ΔΙΔΑΣΚΟΝΤΕΣ Αντώνιος Σαββίδης, Χρήστος.
ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΤΜΗΜΑ ΜΗΧΑΝΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΒΙΟΜΗΧΑΝΙΑΣ Ι. Σαρρής, τηλ. Εαρινό εξάμηνο.
Κατηγορίες δεδομένων Σταθερές. Αυτά που έχουν σταθερή τιμή κατά τη διάρκεια εκτέλεσης του προγράμματος. Οι σταθερές χωρίζονται σε δύο κατηγορίες : α) στις.
Οι εντολές επανάληψης Σε πολλά προβλήματα απαιτείται η επανάληψη ενός συνόλου ενεργειών προκειμένου να λυθεί το πρόβλημα. Θα αναφέρουμε δύο χαρακτηριστικά.
2η άσκηση Να γραφεί πρόγραμμα που θα ζητάει τους a,b συντελεστές και τους δύο πρώτους όρους x 1, x 2 της αναγωγικής ακολουθίας x n = ax n-1 +bx n-2 και.
Πολυδιάστατοι πίνακες α) Στατικοί πίνακες Πως δηλώνονται: π.χ. INTEGER A(3,5) REAL B(1991:2000,1:12) REAL C(4,8,12:20) ή INTEGER, DIMENSION(3,5)::A REAL,
Ο τελεστής ανάθεσης Ο τελεστής ανάθεσης (=) χρησιμοποιείται για να τοποθετήσουμε το αποτέλεσμα μιας έκφρασης (σταθερά, μεταβλητή ή παράσταση) σε μια μεταβλητή.
Υποπίνακες REAL A(10) A(1:9:2)=7 τότε θα έχουμε A(1)=A(3)=A(5)=A(7)=A(9)=7 A(3:)=7 τότε θα έχουμε A(3)=…=A(10)=7 A(:5)=7 τότε θα έχουμε A(1)=A(2)=A(3)=A(4)=A(5)=7.
2) Aν δανειστούμε ένα ποσό Α με επιτόκιο Τ=Ε% και υποχρεωθούμε να το ξεχρεώσουμε σε Ν χρόνια, τότε το ποσό της μηνιαίας δόσης Μ θα δίνεται από τον τύπο.
ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ Διδάσκοντες:Στάθης Ζάχος Νίκος Παπασπύρου
Αναδρομικές Συναρτήσεις Σύνταξη: RECURSIVE type FUNCTION name1 (variables) RESULT (name2) IMPLICIT NONE Τμήμα δηλώσεων Εκτελέσιμες εντολές END FUNCTION.
Προγραμματισμός & Εφαρμογές Η/Υ (Θ) Ενότητα 4: Εισαγωγή στο Προγραμματισμό με τη FORTRAN 2003 (μέρος 4 ο ) Δρ. Β.Χ. Μούσας, Αναπληρωτής Καθηγητής Τμήμα.
Γλώσσες Προγραμματισμού Μεταγλωττιστές Πίνακας Συμβόλων Πανεπιστήμιο Μακεδονίας Τμήμα Εφαρμοσμένης Πληροφορικής Ηλίας Σακελλαρίου.
Δομές δεδομένων και Αλγόριθμοι Κεφάλαιο 3. Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον Δεδομένα Δεδομένα (data) Δεδομένα (data) –αφαιρετική αναπαράσταση.
Ε ΙΣΑΓΩΓΉ Σ ΤΟΥΣ Μ ΟΝΟΔΙΑΣΤΑΤΟΥΣ Π ΊΝΑΚΕΣ Αστρινάκη Μαρία.
ΑΣΤΡΙΝΆΚΗ ΜΑΡΊΑ Δυσδιάστατοι πίνακες. Γιατί πολυδιάστατους πίνακες; Αναλόγως με τις ανάγκες του προγράμματος, μπορεί να είναι πιο εύχρηστοι Προβλήματα.
Τύποι μεταβλητών & σταθερών (1 από 2)
ΑΛΓΟΡΙΘΜΟΣ ΠΡΟΒΛΗΜΑ ΑΛΓΟΡΙΘΜΟΣ ΛΥΣΗ
Ειδικές διαλέξεις 1: Εισαγωγή στο tecplot
Ενισχυτική διδασκαλία
Αρχεσ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Η/Υ ΤΑξη Β΄
Η Γλώσσα Pascal Υποπρογράμματα
Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον ΑΕΠΠ
UNIT 1 Τα Πρώτα Προγράμματα.
Μεταγράφημα παρουσίασης:

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΤΜΗΜΑ ΜΗΧΑΝΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΒΙΟΜΗΧΑΝΙΑΣ Διάλεξη 2: Πίνακες και δυναμικά δεδομένα στη FORTRAN 90 Εαρινό εξάμηνο 2009 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ι. Σαρρής, τηλ.

Οργάνωση παρουσίασης •Θα δούμε την σύνταξη και την χρήση των δυναμικών πινάκων •Την εισαγωγή των δυναμικών πινάκων στις διαδικασίες •Τους παράγωγους τύπους δεδομένων •Τους δείκτες και την χρήση τους

Πίνακες Πίνακας είναι μια σύνθετη μεταβλητή που καταλαμβάνει παραπάνω από μια θέση στην μνήμη του Η/Υ, έχει ένα συγκεκριμένο όνομα και δέχεται ένα συγκεκριμένο τύπο δεδομένων. Λόγοι χρήσης των πινάκων είναι οι : •Η χρησιμοποίηση των δεδομένων παραπάνω από μια φορά. •Η αποθήκευση των δεδομένων πριν τη χρησιμοποίηση τους.

Πίνακες •Στατικοί πίνακες (static arrays) Ένας πίνακας που καταλαμβάνει έναν συγκεκριμένο χώρο μνήμης σε όλη την εκτέλεση του προγράμματος ονομάζεται στατικός πίνακας. Η διάσταση των στατικών πινάκων ορίζεται στην αρχή του προγράμματος και καταλαμβάνει συγκεκριμένο ποσό μνήμης σε όλη τη διάρκεια του προγράμματος. Αυτό έχει ως αποτέλεσμα τη δέσμευση μεγάλου μέρους της μνήμης του Η/Υ. •Δυναμικοί πίνακες (dynamic arrays) Οι δυναμικοί πίνακες δηλώνονται όπως και οι στατικοί πίνακες στην αρχή του προγράμματος, αλλά η διάστασή τους ορίζεται στη διάρκεια εκτέλεσης του προγράμματος, οπότε και την συγκεκριμένη στιγμή καταλαμβάνουν κομμάτι της μνήμης του Η/Υ. Στη συνέχεια, αν δεν χρειάζονται, μπορούμε να τους καταργήσουμε αποδεσμεύοντας το συγκεκριμένο κομμάτι της μνήμης του Η/Υ για άλλες λειτουργίες.

Πως δηλώνουμε τους Πίνακες •Στατικοί πίνακες Μέχρι και τη Fortran 77, η γενική μορφή της εντολής DΙΜEΝSΙΟΝ είναι: Dimension "όνομα πίνακα" (Χ : Υ) Το Χ εκφράζει την κατώτερη τιμή που μπορεί να πάρει ο δείκτης και όταν λείπει εννοείται η μονάδα. Το Υ εκφράζει την ανώτερη τιμή και πρέπει να υπάρχει υποχρεωτικά. Ο τύπος των πινάκων ακολουθεί τους ίδιους κανόνες με μία απλή μεταβλητή. Π.χ Dimension Α(15), Β(10, 10), C(-5 : 5), Κ(3, 2, 2) Για τον πίνακα Α(15) κρατάμε 15 διαδοχικές θέσεις μνήμης. Για τον πίνακα Β(10,10) κρατάμε 10*10 = 100 διαδοχικές θέσεις μνήμης. Για τον πίνακα C(-5:5) κρατάμε συνολικά 11 θέσεις μνήμης. Για τον πίνακα Κ(3, 2, 2) κρατάμε συνολικά 3*2*2 = 12 θέσεις μνήμης.

Πως δηλώνουμε τους Πίνακες •Στατικοί πίνακες Με τη Fortran 90/95 η γενική μορφή της εντολής Dimension γίνεται : Τύπος, Dimension (Χ : Υ) :: "όνομα πίνακα" Ο Τύπος, είναι ένας από τους γνωστούς και αποδεκτούς τύπους των μεταβλητών. Μπορούμε να δηλώσουμε ταυτόχρονα και περισσότερα ονόματα πινάκων χωρισμένα με υποδιαστολή. Π.χ. μπορούμε να γράψουμε : Real, Dimension (15) :: Α, Β, C(-5 : 5), Κ(3, 2, 2) ή Integer, Dimension (10, 10) :: Α, Β, C

Πως δηλώνουμε τους Πίνακες Εναλλακτικά, μπορούμε να δηλώσουμε τους πίνακες χωρίς την χρήση της εντολής Dimension, μέσω των, γνωστών από τις μεταβλητές, δηλωτικών εντολών. Π.χ. μπορούμε να γράψουμε τις ακόλουθες εντολές: Real X(5, 5), Y(5, 5) Integer Tab(100), Pin(10, 20)

Τοποθέτηση Τιμών σε Πίνακα α) Από το χρήστη Μπορούμε να χρησιμοποιήσουμε την εντολή Do – End Do: Integer A Dimension A(5) Write(*, *) "Πληκτρολογείστε πέντε τιμές" Do i =1, 5 Read(*, *) A(i) End Do Να έχουμε απευθείας ανάγνωση του πίνακα Α Integer A Dimension A(5) Write(*, *) "Πληκτρολογείστε πέντε τιμές" Read(*, *) Α

Τοποθέτηση Τιμών σε Πίνακα α) Από το χρήστη Να χρησιμοποιήσουμε την υπονοούμενη (implied) εντολή Do: Integer A Dimension A(5) Write(*, *) "Πληκτρολογείστε πέντε τιμές" Read(*, *) (A(i), i = 1, 5) Η γενική μορφή της εντολής για το υπονοούμενο Do είναι: ("μεταβλητή", "μεταβλητή ελέγχου" = "κατώτερο όριο", "ανώτερο όριο", "βήμα") Π.χ. Read(*, *) (A(i), i = 1, 10, 2)

Τοποθέτηση Τιμών σε Πίνακα β) Με εντολές ανάθεσης Integer, Dimension (5) :: A Α(1) = 10 Α(2) = 20 Α(3) = 30 Α(4) = 40 Α(5) = 50 γ) Από το πρόγραμμα με τη χρήση της εντολής Data που επιτρέπει τη μαζική απόδοση τιμών σε απλές μεταβλητές και σε πίνακες Με τη σύνταξη: Όνομα μεταβλητές ή πίνακας=(/τιμές/) π.χ. REAL A(4) DATA A=(/2.4,4.0,8,5.9/)

Τοποθέτηση Τιμών σε Δυσδιάστατο Πίνακα Α’ τρόπος. Με Εντολές Εισόδου Διάβασμα τιμών ενός δυσδιάστατου πίνακα κατά γραμμές: Integer A Dimension A(3, 2) Do i =1, 3 Do j =1, 2 Read(*, *) A(i, j) End Do

Τοποθέτηση Τιμών σε Δυσδιάστατο Πίνακα Α’ τρόπος. Με Εντολές Εισόδου Διάβασμα τιμών ενός δυσδιάστατου πίνακα κατά στήλες: Integer A Dimension A(3, 2) Do j =1, 2 Do i =1, 3 Read(*, *) A(i, j) End Do

Τοποθέτηση Τιμών σε Δυσδιάστατο Πίνακα Να έχουμε απευθείας ανάγνωση του πίνακα Α Integer A Dimension A(3, 2) Read(*, *) Α Οι έξι πρώτες τιμές που θα πληκτρολογηθούν, θα τοποθετηθούν στις 6 θέσεις του πίνακα Α. Επειδή η Fortran αποθηκεύει τις τιμές ενός δυσδιάστατου πίνακα κατά στήλες θα πρέπει να δίνουμε τις τιμές του πίνακα Α κατά στήλες.

Τοποθέτηση Τιμών σε Δυσδιάστατο Πίνακα Ή να χρησιμοποιήσουμε την υπονοούμενη (implied) εντολή Do. Όπως μπορούμε να χρησιμοποιήσουμε πολλές ανακυκλώσεις τη μία μέσα στην άλλη, σε μια εντολή Do, έτσι και σε μια υπονοούμενη Do μπορούμε να γράφουμε: Integer A Dimension A(3, 2) Read(*, *) ((A(i,j), j = 1, 2), i = 1, 3) αν θέλουμε να διαβάσουμε τις τιμές του πίνακα κατά γραμμές. Από τους δύο δείκτες i και j, πρώτα μεταβάλλεται εκείνος που είναι εσωτερικά δηλαδή ο j και κατόπιν ο i.

Τοποθέτηση Τιμών σε Δυσδιάστατο Πίνακα Ανάθεση με την εντολή Data Αν έχουμε τον πίνακα Α(3, 2) και θέλουμε να δώσουμε τις τιμές μπορούμε να γράψουμε: Data A / 1, 2, 3, 2, 4, 6 /

Εκτύπωση μονοδιάστατου πίνακα Α’ τρόπος. Με χρήση της εντολής Do – End Do Integer A Dimension A(5) Do i =1, 5 Write(*, *) A(i) End Do Β’ τρόπος. Με χρήση της υπονοούμενης εντολής Do Integer A Dimension A(5) Write(*, *) (A(i), i = 1, 5) Γ’ τρόπος. Με απευθείας εκτύπωση Integer A Dimension A(5) Write(*, *) Α

Γενικά για τους πίνακες

Γιατί δυναμικοί πίνακες;

Δυναμικοί πίνακες

Παράδειγμα

Δυναμικοί πίνακες (συνέχεια)

Επίσης, IF(.NOT.ALLOCATED(B))ALLOCATE(B(-10:10,3))

Παράδειγμα REAL,ALLOCATABLE::X(:,:)... ALLOCATE(X(10,2),STAT=IERR) IF(IERR).GT.0) CALL HANDLER X= DEALLOCATE(X)... ALLOCATE(X(-10:10),5),STAT=JERR)

Διαδικασίες και πίνακες

Διαδικασίες και πίνακες (συνέχεια)

Παράδειγμα PROGRAM automat IMPLICIT NONE REAL, ALLOCATABLE ::A(:,:) INTEGER ::i,n,m READ*,n,m ALLOCATE(A(n,m),STAT=IERR) IF(IERR).GT.0) CALL HANDLER A = 1. CALL auto(A,n,m) DEALLOCATE(A) CONTAINS SUBROUTINE auto(c,n,m) INTEGER, INTENT(IN) ::n, m REAL, INTENT(IN) ::c(n,m) !εικονικός INTEGER ::i,j REAL::b(n,m) !αυτόματος FORALL(i=1:n,j=1,m) b(i,j)=c(i,j)*c(i,j) END FORALL END SUBROUTINE auto END PROGRAM automat

Αυτόματοι πίνακες

Παράδειγμα INTEGER, ALLOCATABLE, DIMENSION(:)::X ALLOCATE(X(3),STAT=IERR) IF(IERR).GT.0) CALL HANDLER X=(/1,2,3/); PRINT *, X ! Τυπώνει: n = SIZE(X) X=test(x,n); PRINT *, X ! Τυπώνει: IF (ALLOCATED(X)) DEALLOCATED (X) CONTAINS FUNCTION test(x,n) RESULT(y) INTEGER, INTENT(IN) ::n, x(:) !υποθετικής μορφής INTEGER, DIMENSION(n) ::y !αυτόματος y=x*x END FUNCTION test END

Πίνακες υποθετικού μεγέθους και μορφής

Παράγωγοι τύποι δεδομένων

Παράγωγοι τύποι δεδομένων (συνέχεια)

Παράγωγοι τύποι δεδομένων TYPE (Όνομα νέου τύπου δεδομένων) Τύπος δεδομένων :: Όνομα πεδίου1 Τύπος δεδομένων :: Όνομα πεδίου2 ………………… END TYPE (Όνομα νέου τύπου δεδομένων) [PROGRAM όνομα προγράμματος] Implicit None Περιοχή σταθερών Τμήμα μεταβλητών Περιοχή τύπων …….. END [PROGRAM [όνομα προγράμματος]]

Παράγωγοι τύποι δεδομένων Παράδειγμα. TYPE STUDENTS CHARACTER (LEN=20) :: SURNAME ! ΕΠΩΝΥΜΟ CHARACTER (LEN=10) :: NAME ! ΟΝΟΜΑ INTEGER (KIND=2) :: AEM INTEGER (KIND=1) :: GRADE END TYPE STUDENTS TYPE (STUDENTS) :: STUDENT TYPE (Νέος τύπος δεδομένων) :: Λίστα μεταβλητών

Παράδειγμα. STUDENT=STUDENTS(‘Αναστασιάδης’, ‘Λάζαρος’,1234,9) ή STUDENT.SURNAME=’Αναστασιάδης’ STUDENT.NAME=’Λάζαρος’ STUDENT.AEM=1234 STUDENT.GRADE=9 Παράγωγοι τύποι δεδομένων

Παράγωγοι τύποι δεδομένων (συνέχεια)

Παράδειγμα IMPLICIT NONE TYPE IDEAL REAL ::VOLUME,PRESSURE,T CHARACTER(11)::HEADER END TYPE IDEAL TYPE (IDEAL):: C(5) ! Ο πίνακας C είναι τύπου IDEAL REAL::CONSTANT INTEGER::I REAL,PARAMETER::R= C%HEADER=(/’PRESSURE’,’VOLUME’,’TEMPERATURE’,’’,’’/) C(1)%PRESSURE=15; C%T=298 C%VOLUME =(/100,80,60,40,20/) CONTANT = C(1)%PRESSURE*C(1)%VOLUME C(:)%PRESSURE=CONSTANT/C(:)%VOLUME ! Τυπώνουμε την επικεφαλίδα: WRITE(*,’(X,3A11,)’) (C(I)%HEADER,I=1,3) ! Τυπώνουμε τις τιμές: DO I=1,5 WRITE(*,’(F6.2,6X,F5.1,8X,F5.1)’) C(I)%PRESSURE, C(I)%VOLUME, C(I)%T END DO END