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

Σχετικά έγγραφα
Γενικά Μαθηματικά Ι. Ενότητα 15: Ολοκληρώματα Με Ρητές Και Τριγωνομετρικές Συναρτήσεις Λουκάς Βλάχος Τμήμα Φυσικής

Λογισμός 3. Ενότητα 19: Θεώρημα Πεπλεγμένων (γενική μορφή) Μιχ. Γ. Μαριάς Τμήμα Μαθηματικών ΑΝΟΙΚΤΑ ΑΚΑ ΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

Γενικά Μαθηματικά Ι. Ενότητα 12: Κριτήρια Σύγκλισης Σειρών. Λουκάς Βλάχος Τμήμα Φυσικής ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

Ιστορία της μετάφρασης

Ηλεκτρονικοί Υπολογιστές

Γενικά Μαθηματικά Ι. Ενότητα 14: Ολοκλήρωση Κατά Παράγοντες, Ολοκλήρωση Ρητών Συναρτήσεων Λουκάς Βλάχος Τμήμα Φυσικής

Εκκλησιαστικό Δίκαιο. Ενότητα 10η: Ιερά Σύνοδος της Ιεραρχίας και Διαρκής Ιερά Σύνοδος Κυριάκος Κυριαζόπουλος Τμήμα Νομικής Α.Π.Θ.

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

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

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

Θεσμοί Ευρωπαϊκών Λαών Ι 19 ος -20 ος αιώνας

Οικονομία των ΜΜΕ. Ενότητα 7: Μορφές αγοράς και συγκέντρωση των ΜΜΕ

Εκκλησιαστικό Δίκαιο

ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ

ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ

ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ

Λογισμός 3. Ενότητα 18: Θεώρημα Πεπλεγμένων (Ειδική περίπτωση) Μιχ. Γ. Μαριάς Τμήμα Μαθηματικών ΑΝΟΙΚΤΑ ΑΚΑ ΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

Διδακτική της Πληροφορικής

Θεσμοί Ευρωπαϊκών Λαών Ι 19 ος -20 ος αιώνας

ΑΝΟΙΚΤΑ ΑΚΑ ΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ. Λογισμός 3. Ενότητα 13: Τύπος του Taylor. Μιχ. Γ. Μαριάς Τμήμα Μαθηματικών

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

Εκκλησιαστικό Δίκαιο

ΑΡΙΣΤΟΤΕΛΕΙΟ ΑΝΟΙΚΤΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΚΑΔΗΜΑΪΚΑ ΘΕΣΣΑΛΟΝΙΚΗΣ ΜΑΘΗΜΑΤΑ Γενικά Μαθηματικά Ι Ενότητα 11 : Ακολουθίες και Σειρές Λουκάς Βλάχος Τμήμα Φυσικής

Τίτλος Μαθήματος: Μαθηματική Ανάλυση Ενότητα Γ. Ολοκληρωτικός Λογισμός

1 η Διάλεξη. Ενδεικτικές λύσεις ασκήσεων

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική

Προγραμματισμός και Εφαρμογές Υπολογιστών

Οικονομετρία. Εξειδίκευση του υποδείγματος. Μορφή της συνάρτησης: Πολυωνυμική, αντίστροφη και αλληλεπίδραση μεταβλητών

Μηχανολογικό Σχέδιο Ι

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική

Οικονομία των ΜΜΕ. Ενότητα 9: Εταιρική διασπορά και στρατηγικές τιμολόγησης

Ηλεκτρονικοί Υπολογιστές

Γενικά Μαθηματικά Ι. Ενότητα 5: Παράγωγος Πεπλεγμένης Συνάρτησης, Κατασκευή Διαφορικής Εξίσωσης. Λουκάς Βλάχος Τμήμα Φυσικής

Μαθηματικά Διοικητικών & Οικονομικών Επιστημών

Μάρκετινγκ Αγροτικών Προϊόντων

Οδοποιία IΙ. Ενότητα 14: Υπόδειγμα σύνταξης τευχών θέματος Οδοποιίας. Γεώργιος Μίντσης ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ

Προγραμματισμός και Εφαρμογές Υπολογιστών

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

Ιστορία της μετάφρασης

Ενότητα 6: Ακρότατα συναρτησιακών διανυσματικών συναρτήσεων. Νίκος Καραμπετάκης Τμήμα Μαθηματικών

Κλασσική Θεωρία Ελέγχου

Γενικά Μαθηματικά Ι. Ενότητα 1: Συναρτήσεις και Γραφικές Παραστάσεις. Λουκάς Βλάχος Τμήμα Φυσικής ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

Μαθηματικά Διοικητικών & Οικονομικών Επιστημών

Εισαγωγή στους Αλγορίθμους

Μοντέρνα Θεωρία Ελέγχου

Παράκτια Τεχνικά Έργα

Μοντέρνα Θεωρία Ελέγχου

Διοίκηση Επιχειρήσεων

Τεχνικές Προγραμματισμού και Χρήση Λογισμικού Η/Υ στις Κατασκευές

Λογισμός 3. Ενότητα 1: Τοπολογία των Ευκλείδειων χώρων. Μιχ. Γ. Μαριάς Τμήμα Μαθηματικών ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

Κλασσική Θεωρία Ελέγχου

Προγραμματισμός και Εφαρμογές Υπολογιστών

Θεσμοί Ευρωπαϊκών Λαών Ι 19 ος -20 ος αιώνας

Μάθηση σε νέα τεχνολογικά περιβάλλοντα

Πληροφορική II. Ενότητα 5 : Δομές Δεδομένων και αφηρημένοι. τύποι δεδομένων. Δρ. Γκόγκος Χρήστος

Διπλωματική Ιστορία Ενότητα 2η:

Φ 619 Προβλήματα Βιοηθικής

Στατιστική. 6 ο Μάθημα: Διαστήματα Εμπιστοσύνης και Έλεγχοι Υποθέσεων. Γεώργιος Μενεξές Τμήμα Γεωπονίας ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ

Εισαγωγή στους Αλγορίθμους

Εκκλησιαστικό Δίκαιο

ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ. Λογισμός 4. Ενότητα 3: Το Θεώρημα του Lebesgue. Μιχ. Γ. Μαριάς Τμήμα Μαθηματικών

Λογιστική Κόστους Ενότητα 12: Λογισμός Κόστους (2)

Μαθηματικά Διοικητικών & Οικονομικών Επιστημών

Οικονομετρία. Πολλαπλή Παλινδρόμηση. Στατιστικός έλεγχος γραμμικού συνδυασμού συντελεστών. Τμήμα: Αγροτικής Οικονομίας & Ανάπτυξης

Γενικά Μαθηματικά Ι. Ενότητα 16: Ολοκλήρωση Τριγωνομετρικών Συναρτήσεων, Γενικευμένα Ολοκληρώματα Λουκάς Βλάχος Τμήμα Φυσικής

Στρατηγικό Μάρκετινγκ

Εισαγωγή στους Η/Υ. Ενότητα 2β: Αντίστροφο Πρόβλημα. Δημήτρης Σαραβάνος, Καθηγητής Πολυτεχνική Σχολή Τμήμα Μηχανολόγων & Αεροναυπηγών Μηχανικών

Διεθνείς Οικονομικές Σχέσεις και Ανάπτυξη

Κλασσική Θεωρία Ελέγχου

Συμπεριφορά Καταναλωτή

Αγροτικός Τουρισμός. Ενότητα 9 η : Εκπαιδευτικές τεχνικές στον τουρισμό. Όλγα Ιακωβίδου Τμήμα Γεωπονίας ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ

Αξιολόγηση μεταφράσεων ιταλικής ελληνικής γλώσσας

Γεωργική Εκπαίδευση Ενότητα 9

Υπόγεια Υδραυλική και Υδρολογία

Γενικά Μαθηματικά Ι. Ενότητα 13: Ακτίνα Σύγκλισης, Αριθμητική Ολοκλήρωση, Ολοκλήρωση Κατά Παράγοντες. Λουκάς Βλάχος Τμήμα Φυσικής

Κλασσική Θεωρία Ελέγχου

Διδακτική της Φυσικής Αγωγής στην πρωτοβάθμια εκπαίδευση

ΓΕΝΙΚΗ ΚΑΙ ΑΝΟΡΓΑΝΗ ΧΗΜΕΙΑ

Εκκλησιαστικό Δίκαιο

Λογισμός 3. Ενότητα 12:Οι κλασικοί μετασχηματισμοί και ο κανόνας της αλυσίδας. Μιχ. Γ. Μαριάς Τμήμα Μαθηματικών ΑΝΟΙΚΤΑ ΑΚΑ ΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Γενικά Μαθηματικά Ι. Ενότητα 9: Κίνηση Σε Πολικές Συντεταγμένες. Λουκάς Βλάχος Τμήμα Φυσικής ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

Συμπεριφορά Καταναλωτή

Λογισμός 3. Ενότητα 4:Συνέχεια διανυσματικών συναρτήσεων-ιδιότητες της συνέχειας. Μιχ. Γ. Μαριάς Τμήμα Μαθηματικών ΑΝΟΙΚΤΑ ΑΚΑ ΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

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

ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ. Λογισμός 4. Ενότητα 5: Το Θεώρημα του Fubini. Μιχ. Γ. Μαριάς Τμήμα Μαθηματικών

Μοντέρνα Θεωρία Ελέγχου

Λογισμός 4 Ενότητα 10

Γενικά Μαθηματικά Ι. Ενότητα 17: Αριθμητική Ολοκλήρωση, Υπολογισμός Μήκους Καμπύλης Λουκάς Βλάχος Τμήμα Φυσικής ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ

Μάρκετινγκ Αγροτικών Προϊόντων

Ιστορία των Μαθηματικών

Γενικά Μαθηματικά Ι. Ενότητα 7: Σειρές Taylor, Maclaurin. Λουκάς Βλάχος Τμήμα Φυσικής ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

ΑΝΟΙΚΤΑ ΑΚΑ ΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ. Λογισμός 3. Ενότητα 6: Μερικές παράγωγοι. Μιχ. Γ. Μαριάς Τμήμα Μαθηματικών

Μαθηματικά Διοικητικών & Οικονομικών Επιστημών

Φ 619 Προβλήματα Βιοηθικής

Θερμοδυναμική. Ανοικτά Ακαδημαϊκά Μαθήματα. Πίνακες Νερού σε κατάσταση Κορεσμού. Γεώργιος Κ. Χατζηκωνσταντής Επίκουρος Καθηγητής

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική

Θεσμοί Ευρωπαϊκών Λαών Ι 19 ος -20 ος αιώνας

Εισαγωγή στους Αλγορίθμους Φροντιστήριο 1

Εργαστήριο Χημείας Ενώσεων Συναρμογής

Transcript:

ΑΝΟΙΧΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ () Ενότητα 7: Πολυδιάστατοι Πίνακες Νίκος Καραμπετάκης Τμήμα Μαθηματικών

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύπου άδειας χρήσης, η άδεια χρήσης αναφέρεται ρητώς. 2

Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα στο Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης» έχει χρηματοδοτήσει μόνο την αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους. 3

Περιεχόμενα Ενότητας 1. Χαρακτηριστικά στοιχεία πολυδιάστατων πινάκων. 2. Πως ορίζουμε ένα πολυδιάστατο πίνακα και έναν υποπίνακα. 3. Πως τοποθετούμε τιμές σε ένα πολυδιάστατο πίνακα. 4. Οι εντολές WHERE, FORALL. 5. Επεξεργασία και εμφάνιση τιμών ενός πίνακα. 6. Πράξεις πινάκων. 7. Συναρτήσεις πινάκων. 4

Σκοποί Ενότητας 1. Η παρουσίαση των πολυδιάστατων πινάκων. 2. Η παρουσίαση των τρόπων εισαγωγής τιμών/ εμφάνισης τιμών σε πολυδιάστατο πίνακα. 3. Η παρουσίαση των πράξεων και συναρτήσεων πολυδιάστατων πινάκων. 4. Η παρουσίαση των μεθόδων επεξεργασίας των στοιχείων ενός πολυδιάστατου πίνακα. 5

Χαρακτηριστικά στοιχεία πολυδιάστατων πινάκων τάξη: το πλήθος των διαστάσεων του πίνακα. έκταση: το πλήθος των στοιχείων τους σε κάθε διάσταση. μορφή: η τάξη και η έκτασή τους. μέγεθoς: το συνολικό πλήθος των στοιχείων τους. 6

Με ποιο τρόπο αποθηκεύεται στην μνήμη του Η/Υ ένας πολυδιάστατος πίνακας ;..κατά στήλες. C 11 C 21 C 12 C 11 C 12 C 13 C 21 C 22 C 23 C 22 C 13 C 23. 7

Πως ορίζουμε έναν πολυδιάστατο πίνακα; Στατικοί πίνακες ΙNTEGER, DIMENSION(3,2) :: Α INTEGER, DIMENSION(1980:1982,1:2) :: Β (ή INTEGER A(3,2), B(1980:1982,2) Δυναμικοί πίνακες REAL, DIMENSION(:,:), ALLOCATABLE :: C (ή REAL, ALLOCATABLE :: C(:,:) ) READ*,N,M ALLOCATE( C(N,M) ) DEALLOCATE(C) (ή REAL C(:,:)) 8

Πως ορίζουμε υποπίνακες; Α(1:5:2)! A(1),A(3),A(5) A(1:5)! A(1) έως το A(5) A(3:)! Από το Α(3) έως το τέλος Α(:)! Από το A(1) έως το Α(10) Α(:5)! Από το Α(1) έως το Α(5) Β(1:3,1:3)! Οι πρώτες 3 γραμμές και 3 πρώτες στήλες του πίνακα Β B(:,:) Β(3,:)! Όλος ο πίνακας B! Η τρίτη γραμμή του πίνακα Β 9

Πως τοποθετούμε τιμές σε έναν πίνακα; (1ος τρόπος) REAL, DIMENSION(3,2) :: A Ανάγνωση κατά γραμμές READ(*,*) ((A(I,J),J=1,2),I=1,3) Ανάγνωση κατά στήλες READ(*,*) ((A(I,J),I=1,3),J=1,2) 10

Πως τοποθετούμε τιμές σε έναν πίνακα; (2ος τρόπος) Ανάγνωση κατά γραμμές DO I=1,3 DO J=1,2 READ*,A(I,J) END DO END DO Ανάγνωση κατά στήλες DO J=1,2 DO I=1,3 READ*,A(I,J) END DO END DO 11

Πως τοποθετούμε τιμές σε έναν πίνακα; (3ος τρόπος) READ(u2,f) Α όπου u2=* ή 0 ή 5 f=είναι ο αριθμός της format (αν f=* δεν έχουμε δική μας format) 12

Πως τοποθετούμε τιμές σε έναν πίνακα; (Αν γνωρίζουμε τα στοιχεία του πίνακα) DATA A/1,3,5,2,4,6/ ή A=RESHAPE(SOURCE = (/ 1, 3, 5, 2, 4, 6 /), SHAPE = (/ 3, 2 /) ) 13

Πως τοποθετούμε τιμές σε έναν πίνακα; (Αν τα στοιχεία του πίνακα ικανοποιούν κάποια ιδιότητα) INTEGER, DIMENSION(4,4) :: A DO I=1,4 DO J=1,4 IF (I==J) THEN A(I,J)=1 ELSE A(I,J)=0 END IF END DO END DO 14

Άσκηση 1 Να δημιουργήσετε τον παρακάτω πίνακα. 15

Η εντολή WHERE Fortran 90 [όνομα :] WHERE (λογική έκφραση 1) Εντολή ανάθεσης 11 Εντολή ανάθεσης 12 [ELSEWHERE Εντολή ανάθεσης 01 Εντολή ανάθεσης 02 ] END WHERE [όνομα] 16

Παράδειγμα (Where Fortran 90) Να γραφεί μέρος προγράμματος που θα τοποθετεί 1 στα θετικά στοιχεία, -1 στα αρνητικά στοιχεία και 0 στα μηδενικά στοιχεία ενός πίνακα Α. WHERE (A>0) Α=1 WHERE (A==0) Α=0 WHERE (A<0) Α=-1 17

Η εντολή WHERE Fortran 95/2003 [όνομα :] WHERE (λογική έκφραση 1) Εντολή ανάθεσης 11 Εντολή ανάθεσης 12 [ELSEWHERE (λογική έκφραση 2) Εντολή ανάθεσης 21 Εντολή ανάθεσης 22 [ELSEWHERE Εντολή ανάθεσης 01 Εντολή ανάθεσης 02 ] END WHERE [όνομα] 18

Παράδειγμα (Where Fortran 95/2003) Να γραφεί μέρος προγράμματος που θα τοποθετεί 1 στα θετικά στοιχεία, -1 στα αρνητικά στοιχεία και 0 στα μηδενικά στοιχεία ενός πίνακα A. WHERE (A>0) A=1 ELSEWHERE WHERE (A==0) A=0 ELSEWHERE A=-1 END WHERE END WHERE ή WHERE (A>0) A=1 ELSEWHERE (A==0) A=0 ELSEWHERE A=-1 END WHERE 19

Η εντολή FORALL FORALL (μεταβλητή = αρχική τιμή : τελική τιμή : βήμα [,μεταβλητή = αρχική τιμή : τελική τιμή : βήμα] ) εντολή αντικατάστασης [όνομα:]forall (μεταβλητή = αρχική τιμή : τελική τιμή : βήμα [,μεταβλητή = αρχική τιμή : τελική τιμή : βήμα] ) Εντολές αντικατάστασης ή Εντολές WHERE ή εντολές FORALL Παράδειγμα END FORALL [όνομα] FORALL (I=1:N,J=1:N) A(I,J)=1/REAL(I+J) 20

Αν υπάρχουν πάνω από μια δηλώσεις, ο επεξεργαστής θα τελειώσει με την πρώτη ανάθεση πριν ξεκινήσει με την δεύτερη! Α=[1,2,3,4,5] FORALL (I=1:N) Α(Ι)=0.5*(Α(Ι)+Α(Ι+1) Β(Ι)=Α(Ι+1) END FORALL PRINT*,A PRINT*B Έξοδος 1.500000 2.500000 3.500000 4.500000 5.000000 2.500000 3.500000 4.500000 5.500000 0.000000 21

Πως εμφανίζουμε τις τιμές ενός πίνακα; REAL, DIMENSION(3,2) :: A Εκτύπωση κατά γραμμές DO I=1,3 DO J=1,2 PRINT*,A(I,J) END DO END DO Εκτύπωση κατά στήλες DO J=1,2 DO I=1,3 PRINT*,A(I,J) END DO END DO (1ος τρόπος) 22

Πως εμφανίζουμε τις τιμές ενός πίνακα; REAL, DIMENSION(3,2) :: A Εκτύπωση κατά γραμμές WRITE(*,*) ((A(I,J),J=1,2),I=1,3) Εκτύπωση κατά στήλες WRITE(*,*) ((A(I,J),I=1,3),J=1,2) (2ος τρόπος) 23

Πως εμφανίζουμε τις τιμές ενός πίνακα; REAL, DIMENSION(3,2) :: A (3ος τρόπος) WRITE(u2,f) Α όπου u2=* ή 6 f=είναι ο αριθμός της format (αν f=* δεν έχουμε δική μας format) 24

Πράξεις πινάκων Πρόσθεση, Αφαίρεση INTEGER, DIMENSION(:,:), ALLOCATABLE :: A,B,C READ*,N,M ALLOCATE ( A(N,M), B(N,M) ) READ*,A,B DO I=1,N DO J=1,M C(I,J)=A(I,J)+B(I,J)! C(I,J)=A(I,J)-B(I,J) για αφαίρεση πινάκων END DO END DO ή C=A+B! C=Α-Β για αφαίρεση πινάκων 25

Πράξεις πινάκων Πολλαπλασιασμός INTEGER, DIMENSION(:,:), ALLOCATABLE :: A,B,C READ*,N,M,L ALLOCATE ( A(N,M), B(M,L), C(N,L) ) READ*,A,B DO I=1,N DO J=1,M C(I,J)=0 DO K=1,L C(I,J)=C(I,J)+A(I,K)+B(K,J) END DO END DO END DO ή C=MATMUL(A,B) 26

Συναρτήσεις πινάκων ALL (λογική έκφραση) Προσδιορίζει αν όλα τα στοιχεία του πίνακα ικανοποιούν τη συγκεκριμένη ιδιότητα που περιγράφεται από τη λογική έκφραση, π.χ. ALL(A>0) θα έχει ως αποτέλεσμα TRUE, αν όλα τα στοιχεία του πίνακα είναι θετικά και FALSE διαφορετικά. ΑΝΥ (λογική έκφραση) Προσδιορίζει αν κάποιο από όλα τα στοιχεία του πίνακα ικανοποιεί τη συγκεκριμένη ιδιότητα που περιγράφεται από τη λογική έκφραση, π.χ. AΝΥ(A>0) θα έχει ως αποτέλεσμα TRUE, αν κάποιο από τα στοιχεία του πίνακα είναι θετικά και FALSE διαφορετικά. 27

Συναρτήσεις πινάκων (...συνέχεια) COUNT (λογική έκφραση) Υπολογίζει το πλήθος των στοιχείων που ικανοποιούν κάποια ιδιότητα που περιγράφεται από την λογική έκφραση, π.χ. COUNT(A>0) θα υπολογίσει το πλήθος των θετικών στοιχείων του πίνακα Α. TRANSPOSE (όνομα πίνακα) Υπολογίζει τον ανάστροφο πίνακα. 28

Συναρτήσεις πινάκων (Πράξεις) DOT_PRODUCT (ΠίνακαςA, ΠίνακαςB) SUM(όνομα πίνακα) PRODUCT(όνομα πίνακα) Υπολογίζει το εσωτερικό γινόμενο δύο διανυσμάτων ιδίων διαστάσεων, π.χ. DOT_PRODUCT(A,B) υπολογίζει το εσωτερικό γινόμενο των διανυσμάτων A και B. Υπολογίζει το άθροισμα των στοιχείων του πίνακα π.χ. SUM(A) υπολογίζει το άθροισμα των στοιχείων του πίνακα A. Υπολογίζει το γινόμενο όλων των στοιχείων του πίνακα π.χ. PRODUCT(A) υπολογίζει το γινόμενο όλων των στοιχείων του πίνακα A. 29

Συναρτήσεις πινάκων (Πράξεις) (...συνέχεια) SUM(A,A>0) PRODUCT(A,A/=0) SUM(A, dim=1) SUM(A, dim=2) Υπολογίζει το άθροισμα των θετικών στοιχείων του πίνακα A. Υπολογίζει το γινόμενο των μη μηδενικών στοιχείων του πίνακα A. Υπολογίζει το άθροισμα των στοιχείων του πίνακα A σε κάθε στήλη. Υπολογίζει το άθροισμα των στοιχείων του πίνακα A σε κάθε γραμμή. 30

Παρατηρήσεις 1. Για λόγους οικονομίας μνήμης, πριν από κάθε χρήση ενός πίνακα, θα ρωτάς τον εαυτό σου: α) Χρειάζομαι τα δεδομένα παραπάνω από μια φορά ; β) Πρέπει τα δεδομένα αυτά να αποθηκευτούν πριν τα χρησιμοποιήσω; Αν η απάντηση είναι «Όχι» και στις δύο ερωτήσεις, θα πρέπει να αντικαταστήσεις τον πίνακα με απλές μεταβλητές. 2. Ως διάσταση του πίνακα θα πρέπει να ορίζεις το μέγιστο αριθμό στοιχείων που μπορείς να χρησιμοποιήσεις. 3. Έλεγξε το δείκτη του πίνακα αν είναι ακέραιος και αν έχει ξεπεράσει τα όρια της διάστασης του πίνακα. 4. Έλεγξε αν συμφωνεί ο δείκτης της DO-END DO με το δείκτη του πίνακα κατά τη διάρκεια της ανακύκλωσης. 31

Άσκηση 2 Να διαβαστούν τα ονοματεπώνυμα N μαθητών καθώς και οι βαθμοί που είχαν σε M μαθήματα και στη συνέχεια να υπολογιστούν τα εξής: α) ο μέσος όρος που είχε κάθε μαθητής, β) ο μέσος όρος της τάξης σε κάθε μάθημα, γ) ο μέσος όρος της τάξης, δ) ο μαθητής(ες) με το μεγαλύτερο μέσο όρο καθώς και ο μαθητής(ες) με το μικρότερο μέσο όρο, ε) να ταξινομηθούν οι μαθητές ως προς το μέσο όρο σε φθίνουσα σειρά. 32

Βιβλιογραφία Ν. Καραμπετάκης, Εισαγωγή στη, 2 η Έκδοση, Θεσσαλονίκη: Εκδόσεις Ζήτη, 2011. 33

Σημείωμα Αναφοράς Copyright Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης, Καραμπετάκης Νικόλαος. «Εισαγωγή στον Προγραμματισμό H/Y (). Πολυδιάστατοι Πίνακες». Έκδοση: 1.0. Θεσσαλονίκη 2014. Διαθέσιμο από τη δικτυακή διεύθυνση: http://eclass.auth.gr/courses/ocrs145/.

Σημείωμα Αδειοδότησης Το παρόν υλικό διατίθεται με τους όρους της άδειας χρήσης Creative Commons Αναφορά, Παρόμοια Διανομή 4.0 [1] ή μεταγενέστερη, Διεθνής Έκδοση. Εξαιρούνται τα αυτοτελή έργα τρίτων π.χ. φωτογραφίες, διαγράμματα κ.λ.π., τα οποία εμπεριέχονται σε αυτό και τα οποία αναφέρονται μαζί με τους όρους χρήσης τους στο «Σημείωμα Χρήσης Έργων Τρίτων». [1] http://creativecommons.org/licenses/by-sa/4.0/

ΑΝΟΙΧΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Τέλος Ενότητας Επεξεργασία: Αναστασία Γ. Γρηγοριάδου Θεσσαλονίκη, Χειμερινό Εξάμηνο 2013-2014