Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Ε ΙΣΑΓΩΓΉ Σ ΤΟΥΣ Μ ΟΝΟΔΙΑΣΤΑΤΟΥΣ Π ΊΝΑΚΕΣ Αστρινάκη Μαρία.

Παρόμοιες παρουσιάσεις


Παρουσίαση με θέμα: "Ε ΙΣΑΓΩΓΉ Σ ΤΟΥΣ Μ ΟΝΟΔΙΑΣΤΑΤΟΥΣ Π ΊΝΑΚΕΣ Αστρινάκη Μαρία."— Μεταγράφημα παρουσίασης:

1 Ε ΙΣΑΓΩΓΉ Σ ΤΟΥΣ Μ ΟΝΟΔΙΑΣΤΑΤΟΥΣ Π ΊΝΑΚΕΣ Αστρινάκη Μαρία

2 ΓΙΑΤΙ ΧΡΕΙΑΖΟΜΑΣΤΕ ΠΙΝΑΚΕΣ Χρησιμοποιούμε πίνακες όταν χρειάζεται να καταχωρήσουμε διαδοχικά, δεδομένα ίδιου τύπου στην μνήμη του υπολογιστή Αντί να δηλώσουμε Ν διαφορετικές μεταβλητές ίδιου τύπου, δηλώνουμε μία μεταβλητή με Ν δείκτες, πίνακας Απλή μεταβλητή περιέχει:ένα όνομα μία θέση στην μνήμη Πίνακας περιέχει:ένα όνομα, πολλές διαδοχικές θέσεις στην μνήμη

3 ΧΑΡΑΚΤΗΡΙΣΤΙΚΑ ΕΝΟΣ ΠΙΝΑΚΑ Κάθε πίνακας έχει τρία χαρακτηριστικά Τάξη: ο αριθμός των διαστάσεων (μέχρι 7 διαστάσεις) Μέγεθος: το πλήθος των στοιχείων Μορφή: ο τρόπος διάταξης των στοιχείων π.χ Α(20) τάξης 1, μεγέθους 20, μορφής 1x20 Β(2,3) 2, 6, 2x3 C(10,3,2) 3, 60, 10x3x2

4 Ε ΠΕΞΗΓΗΣΗ A ή Β είναι το όνομα των πινάκων 1ος όρος: (έκταση του πίνακα στην πρώτη διάσταση (αριθμός των γραμμών), 2ος όρος: έκταση του πίνακα στην δεύτερη διάσταση (αριθμός στηλών), 3ος όρος: έκταση του πίνακα στην τρίτη διάσταση κτλ...μέγιστο 7 διαστάσεις Ίδιος πινάκας (ίδια μορφή)=τάξη και μέγεθος είναιτο ίδιο. Δεν ισχύει πάντα το αντίστροφο Χ(2,3)=τάξη 2, μέγεθος 6, μορφής 2Χ3 Υ(3,2)=τάξη 2, μέγεθος 6 και μορφής 3Χ2

5 ΕΙΔΟΙ ΠΙΝΑΚΩΝ Στατικοί Οι ιδιότητες τους δηλώνονται ρητά Δεν μπορούν να αλλάξουν στην έκταση του προγράμματος Δυναμικοί Είναι δυνατό να αλλάξει το μέγεθος και η μορφή σε οποιοσδήποτε σημείο του προγράμματος η τάξη τους δεν μπορεί να αλλάξει

6 Δ ΉΛΩΣΗ Δ ΥΝΑΜΙΚΟΎ Π ΊΝΑΚΑ δήλωση τύπου, ALLOCATABLE:: όνομα (: ή [:…:]) π.χ. REAL, ALLOCATABLE:: array(:) INTEGER, ALLOCATABLE:: A(:), B(:,:) CHARACTER, ALLOCATABLE:: NAME(:) [ ή με DIMENSIOΝ: REAL, ALLOCATABLE, DIMENSION (:) A1, A2]

7 Π ΑΡΑΔΕΙΓΜΑ ΔΥΝΑΜΙΚΟΥ ΠΙΝΑΚΑ #1

8 Π ΑΡΑΔΕΙΓΜΑ ΔΥΝΑΜΙΚΟΥ ΠΙΝΑΚΑ #2

9

10 Δ ΗΛΩΣΗ ΣΤΑΤΙΚΟΥ ΠΙΝΑΚΑ INTEGER:: pinakas(100) ή INTEGER, DIMENSION(100)::pinakas Ορίζει έναν πίνακα ακεραίων 100 θέσεων τα στοιχεία του οποίου είναι pinakas(1),pinakas(2),pinakas(3) και έχουν τύπο ακέραιο

11 Π ΑΡΑΔΕΙΓΜΑ #1 ΧΩΡΙΣ ΤΗΝ ΧΡΗΣΗ ΠΙΝΑΚΩΝ Κατασκευάστε πρόγραμμα που θα δέχεται 5 αριθμούς και θα τους υψώνει στην 3 η δύναμη και θα τυπώνει το αποτέλεσμα PROGRAM SQUARE_1A IMPLICIT NONE DOUBLE PRECISION A1, A2, A3, A4, A5 WRITE(*,*) ‘ΔΩΣΤΕ 5 ΑΡΙΘΜΟΥΣ’ READ(*,*) A1, A2, A3, A4, A5 WRITE(*,*) ‘ΤΟ ΤΕΤΡΑΓΩΝΟ ΤΟΥ’, Α1, ’ΕΙΝΑΙ’, Α1**3 WRITE(*,*) ‘ΤΟ ΤΕΤΡΑΓΩΝΟ ΤΟΥ’, Α2, ’ΕΙΝΑΙ’, Α2**3 WRITE(*,*) ‘ΤΟ ΤΕΤΡΑΓΩΝΟ ΤΟΥ’, Α3, ’ΕΙΝΑΙ’, Α3**3 WRITE(*,*) ‘ΤΟ ΤΕΤΡΑΓΩΝΟ ΤΟΥ’, Α4, ’ΕΙΝΑΙ’, Α4**3 WRITE(*,*) ‘ΤΟ ΤΕΤΡΑΓΩΝΟ ΤΟΥ’, Α5, ’ΕΙΝΑΙ’, Α5**3 END

12 Π ΑΡΑΔΕΙΓΜΑ #1 ΜΕ ΤΗΝ ΧΡΗΣΗ ΠΙΝΑΚΑ PROGRAM SQUARE_1B IMPLICIT NONE DOUBLE PRECISION A(5) INTEGER I WRITE(*,*) ‘ΔΩΣΤΕ 5 ΑΡΙΘΜΟΥΣ’ READ(*,*) A(1), A(2), A(3), A(4), A(5) DO I = 1, 5 WRITE(*,*) ‘Η ΤΡΙΤΗ ΔΥΝΑΜΗ ΤΟΥ’,Α(I),’ΕΙΝΑΙ’, Α(I)**3 END DO END

13 Τ IPS ΓΙΑ ΔΗΛΩΣΗ ΠΙΝΑΚΩΝ Η δήλωση των πινάκων είναι υποχρεωτική και χωρίς τη παρουσία της εντολής IMPLICT NONE Η σύνταξη των δηλώσεων είναι παρόμοια με των απλών μεταβλητών και επωνύμων σταθερών αλλά με μέγεθος Το μέγεθος αυτομάτως επισημαίνει ότι είναι πίνακας Αν δεν είμαστε σίγουροι για το μέγεθος του πίνακα: Κάνουμε μια πρόβλεψη του μεγέθους της διάστασης που πιθανόν να χρειαστούμε Δηλώνουμε το πίνακα με πιο μεγάλο μέγεθος από την πρόβλεψη μας (ή χρησιμοποιούμε δυναμικό πίνακα) Όλα τα στοιχεία ενός πίνακα είναι υποχρεωτικά του ίδιου τύπου

14 Π ΑΡΆΔΕΙΓΜΑ : ΔΗΛΏΣΤΕ ΣΕ ΠΡΌΓΡΑΜΜΑ ΈΝΑΝ ΑΚΈΡΑΙΟ ΠΊΝΑΚΑ 50 ΣΤΟΙΧΕΊΩΝ ΚΑΙ ΈΝΑΝ REAL 100 ΣΤΟΙΧΕΊΩΝ PROGRAM MATRIX IMPLICIT NONE INTEGER K(50) REAL A(100) εντολές… END

15 Δ ΗΛΩΣΗ ΠΙΝΑΚΩΝ INTEGER ::count=1 REAL ::PIN(5) DO count = 1, 5 PIN(count) = count +1 END DO

16 Α ΝΑΘΕΣΗ ΤΙΜΩΝ ΣΕ ΠΙΝΑΚΑ Υπάρχουν 3 τρόποι για γρήγορη ανάθεση τιμών Με απεύθειας ανάθεση Με εντολή Data Me την εντολή εισόδου read Προσοχή !!! Μην ξεπερνάτε τα όρια του πίνακα

17 Α ΠΕΥΘΕΊΑΣ ΑΝΑΘΕΣΗ Δηλώστε πίνακα ακεραίων με 5 στοιχεία, και αναθέσετε τους τις τιμές 10, 20,..., 50 αντίστοιχα PROGRAM MATRIX3Α IMPLICIT NONE INTEGER Α(5) Α(1) = 10 Α(2) = 20 Α(3) = 30 Α(4) = 40 Α(5) = 50 END PROGRAM MATRIX3Α IMPLICIT NONE INTEGER Α(5), I DO I = 1, 5 Α(I) = 10 * I END DO END

18 Ε ΝΤΟΛΉ DATA Δηλώστε πίνακα ακεραίων με 5 στοιχεία, και αναθέσετε τους τις τιμές 10, 20,..., 50 αντίστοιχα PROGRAM MATRIX3B IMPLICIT NONE INTEGER Α(5) DATA A / 10, 20, 30, 40, 50/ END Όταν χρησιμοποιούμε αυτόν τον τρόπο ανάθεσης τιμών υποχρεωτικά αναθέτουμε όλες τις τιμές του πίνακα

19 Ε ΝΤΟΛΉ READ (1/2) Δηλώστε πίνακα ακεραίων με 5 στοιχεία, και αναθέσετε τους τις τιμές 10, 20,..., 50 αντίστοιχα PROGRAM MATRIX3C IMPLICIT NONE INTEGER Α(5) WRITE(*,*) ‘ΕΙΣΑΓΕΤΕ 5 ΤΙΜΕΣ’ READ(*,*) A(1), A(2), A(3), A(4), A(5) END PROGRAM MATRIX3C IMPLICIT NONE INTEGER Α(5) WRITE(*,*) ‘ΕΙΣΑΓΕΤΕ 5 ΤΙΜΕΣ’ READ(*,*) A END

20 Ε ΝΤΟΛΉ READ (2/2) Δηλώστε πίνακα ακεραίων με 5 στοιχεία, και αναθέσετε τους τις τιμές 10, 20,..., 50 αντίστοιχα PROGRAM MATRIX3C IMPLICIT NONE INTEGER Α(5), I WRITE(*,*) ‘ΕΙΣΑΓΕΤΕ 5 ΤΙΜΕΣ’ READ(*,*) (A(I), I = 1, 5) END Έμμεσο do

21 Β ΡΌΓΧΟΙ DO ΚΑΙ ΕΝΤΟΛΉ READ

22 Ε ΞΑΣΚΗΣΗ Δηλώστε πίνακα ακεραίων με 5 στοιχεία, και εισάγετε 5 τιμές. Κατόπιν εξάγετε το τετράγωνα της κάθε τιμής PROGRAM MATRIX3C IMPLICIT NONE INTEGER Α(5), I WRITE(*,*) ‘ΕΙΣΑΓΕΤΕ 5 ΤΙΜΕΣ’ READ(*,*) (A(I), I = 1, 5) WRITE(*,*) ‘TΑ ΤΕΤΡΑΓΩΝΑ ΤΩΝ ΑΡΙΘΜΩΝ ΕΙΝΑΙ:’ WRITE(*,*) A(1)**2, A(2)**2, A(3)**2, A(4)**2, A(5)**2 END

23 Π ΑΡΑΔΕΙΓΜΑ ΜΕ ΕΜΜΕΣΟ ΒΡΟΓΧΟ Δηλώστε πίνακα ακεραίων με 5 στοιχεία, και εισάγετε 5 τιμές. Κατόπιν εξάγετε το τετράγωνα της κάθε τιμής. PROGRAM MATRIX3C IMPLICIT NONE INTEGER Α(5), I WRITE(*,*) ‘ΕΙΣΑΓΕΤΕ 5 ΤΙΜΕΣ’ READ(*,*) (A(I), I = 1, 5) WRITE(*,*) ‘TΑ ΤΕΤΡΑΓΩΝΑ ΤΩΝ ΑΡΙΘΜΩΝ ΕΙΝΑΙ:’ WRITE(*,*) (A(I)**2, I = 1, 5) END

24 Β ΡΌΓΧΟΙ DO ΚΑΙ ΕΝΤΟΛΉ WRITE Ποια η διαφορά στα δύο παρακάτω παραδείγματα; WRITE(*,*) (A(I)**2, I = 1, 5) DO I = 1, 5 WRITE(*,*) A(I)**2 END DO Έμμεσο Do Άμμεσο Do

25 Ε ΞΑΣΚΗΣΗ Βρείτε αν υπάρχει αρνητική τιμή μέσα στον πίνακα Α(10). Ο πίνακας είναι ήδη συμπληρωμένος Program test Integer::A(10),I, Do i=1,10 If (A(i).lt.0) then Write(*,*) ‘to stoixeio sthn thesi A(i) einai arnitikos’ End do End

26 Ε ΞΑΣΚΗΣΗ Δημιουργήστε έναν πίνακα ακεραίων 10 θέσεων περνώντας τιμές από το πληκτρολόγιο έπειτα ελέγξτε αν το στοιχείο Α(ι+1) είναι μεγαλύτερο από το στοιχείο Α(ι) αν ισχύει η συνθήκη προσθέστε το στοιχείο Α(ι+1) Integer::A(10),i,sum=0 WRITE(*,*) ‘ΕΙΣΑΓΕΤΕ 5 ΤΙΜΕΣ’ READ(*,*) A Do i=1,10 IF (a(i).lt. a(i+1)) THEN Sum-sum+a(i+1) End if End do End

27


Κατέβασμα ppt "Ε ΙΣΑΓΩΓΉ Σ ΤΟΥΣ Μ ΟΝΟΔΙΑΣΤΑΤΟΥΣ Π ΊΝΑΚΕΣ Αστρινάκη Μαρία."

Παρόμοιες παρουσιάσεις


Διαφημίσεις Google