Πίνακες. (i) FORTRAN και Αντικειµενοστραφής Προγραµµατισµός

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

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

Πίνακες. (i) FORTRAN και Αντικειµενοστραφής Προγραµµατισµός

ιαφάνειες παρουσίασης #6

ιαφάνειες παρουσίασης #5

ιαφάνειες παρουσίασης #7

Προχωρημένες έννοιες προγραμματισμού σε Pazcal

Ενότητα 1 Διάλεξη 3. Προγραμματισμός με Εφαρμογές στην Επιστήμη του Μηχανικού. Σιέττος Κωνσταντίνος

Μορφοποίηση της εξόδου

IMPLICIT NONE INTEGER :: a, b, c

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

8 FORTRAN 77/90/95/2003

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

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

ΥΠΟΛΟΓΙΣΤΕΣ Ι. Τι είναι μια υπορουτίνα; με υπορουτίνα ΥΠΟΡΟΥΤΙΝΕΣ. Παράδειγμα #1: η πράξη SQ. Ποια η διαφορά συναρτήσεων και υπορουτίνων;

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

Προχωρημένες έννοιες προγραμματισμού σε C

ΑΠΑΝΤΗΣΕΙΣ. H διαδικασία ανεύρεσης λογικών λαθών περιλαμβάνει : β- Σωστό. Διαπίστωση του είδους του λάθους γ- Σωστό δ- Λάθος

Μονοδιάστατοι πίνακες

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

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

ιαφάνειες παρουσίασης #4

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

Δομή προγράμματος στη Fortran

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

ιαφάνειες παρουσίασης #7

ιαφάνειες παρουσίασης #4

Το πλήθος των δεικτών και οι µεγαλύτερες τιµές που µπορούν να πάρουν ορίζεται µε µία δηλωτική εντολή που λέγεται Dimension.

Κεφάλαιο 5ο: Εντολές Επανάληψης

Μονοδιάστατοι πίνακες

Μονοδιάστατοι πίνακες (συνέχεια)

ΦΥΣ 145 Μαθηµατικές Μέθοδοι στη Φυσική. Πρόοδος 28 Μαρτίου 2009 Οµάδα 1 η

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

Εισαγωγή στη χρήση Η/Υ. Αναγνωστοπούλου Χριστίνα Λέκτορας

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

Δομές Δεδομένων & Αλγόριθμοι

Δομή προγράμματος στη Fortran

Παράλληλη Επεξεργασία Κεφάλαιο 2 Παραλληλισμός Δεδομένων

ΕΠΑΝΑΛΗΠΤΙΚΑ ΘΕΜΑΤΑ 2014

Oι εντολές COMMON και PARAMETER

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

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

Δομές ελέγχου. ομαδοποίηση εντολών εκτέλεση εντολών υπό συνθήκη επανάληψη εντολών

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

Στόχοι και αντικείμενο ενότητας. Πέρασμα Πίνακα σε Συνάρτηση (συν.) Πέρασμα Πίνακα σε Συνάρτηση. #8.. Ειδικά Θέματα Αλγορίθμων

ΕΙ ΑΓΩΓΉ ΣΗΝ FORTRAN

ιαφάνειες παρουσίασης #3

Γ7.5 Αλγόριθμοι Αναζήτησης. Γ Λυκείου Κατεύθυνσης

Άσκηση 1. O υπολογισμός να γίνει: α) με την τεχνική αθροίσματος σε μεταβλητή

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

Εντολή Δεδομένα Περιεχόμενα μετά την εκτέλεση 1 read(x) 122 x= 2 read(a,b,c) a= b= c= 3 read(d,e)

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

Ενότητα 1 Διάλεξη 4. Προγραμματισμός με Εφαρμογές στην Επιστήμη του Μηχανικού. Σιέττος Κωνσταντίνος

Άσκηση 1. Α. Υπολογίστε χωρίς να εκτελέσετε κώδικα FORTRAN τα παρακάτω: Ποιά είναι η τελική τιμή του Z στα παρακάτω κομμάτια κώδικα FORTRAN:

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

i : 0<=i<N-1 => data[i] <= data[i+1] 25/10/2009

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

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

Τμήμα Φυσικής Πανεπιστημίου Κύπρου Εαρινό Εξάμηνο 2015/2016. ΦΥΣ145 Υπολογιστικές Μέθοδοι στην Φυσική

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΤΜΗΜΑ ΒΙΟΜΗΧΑΝΙΚΗΣ ΙΟΙΚΗΣΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ

Εξωτερική Ταξινόμηση. Μ.Χατζόπουλος 1

Ορθότητα Χωρική αποδοτικότητα. Βελτιστότητα. Θεωρητική ανάλυση Εμπειρική ανάλυση. Αλγόριθμοι - Τμήμα Πληροφορικής ΑΠΘ -4ο εξάμηνο 1

Συναρτήσεις και Πίνακες

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ - ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΑΡΙΘΜΗΤΙΚΗ ΑΝΑΛΥΣΗ, 3 Ο ΕΞΑΜΗΝΟ, ΔΙΔΑΣΚΩΝ: Δρ Ιωάννης Αθ.

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

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ Κεφάλαιο 10 : Εντολές επιλογής και αποφάσεων

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

ΚΕΦΑΛΑΙΟ 4ο. Α. Το περιβάλλον της Microsoft Fortran Powerstation

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Προγραμματισμός Ι. Ενότητα 8 : Πίνακες IΙ. Αλέξανδρος Τζάλλας

Εξωτερική Ταξινόμηση. Μ.Χατζόπουλος 1

Δομές Δεδομένων & Αλγόριθμοι

1o Φροντιστήριο ΗΥ240

ΜΑΗΣ ΕΞΕΤΑΣΤΙΚΟ ΔΟΚΙΜΙΟ

ιαφάνειες παρουσίασης #5

Στοιχεία Αλγορίθµων και Πολυπλοκότητας

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

Αλγόριθµοι και Πολυπλοκότητα

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

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

ΤΜΗΜΑ ΜΗΧΑΝΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΒΙΟΜΗΧΑΝΙΑΣ ΑΡΙΘΜΗΤΙΚΗ ΑΝΑΛΥΣΗ, 3 Ο ΕΞΑΜΗΝΟ, ΔΙΔΑΣΚΩΝ: Δρ Ιωάννης Αθ. Σταυράκης

Μεταγλωττιστές Βελτιστοποίηση

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

Μαζέρας Αχιλλέας. Οι εντολές επανάληψης στην Pascal (While) Φυσικός Αυτοματιστής M.Sc. Νοέµβριος 2009

Προγραμματισμός με FORTRAN Συνοπτικός Οδηγός Α. Σπυρόπουλος Α. Μπουντουβής

Αλγόριθµοι Τύπου Μείωσης Προβλήµατος

Κεφάλαιο 7ο: Συναρτήσεις και Υπορουτίνες

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

Παράδειγμα #5 EΠΙΛΥΣΗ ΜΗ ΓΡΑΜΜΙΚΩΝ ΑΛΓΕΒΡΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΜΕ ΜΕΘΟΔΟ NEWTON ΕΠΙΜΕΛΕΙΑ: Ν. Βασιλειάδης. ( k ) ( k)

Αποτελέσματα προόδου

Προγραμματισμός Η/Υ. Ενότητα 8: Ειδικά Θέματα Αλγορίθμων

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

242 -ΕισαγωγήστουςΗ/Υ

auth Αλγόριθμοι - Τμήμα Πληροφορικής ΑΠΘ -4ο εξάμηνο 1

ΦΥΣ 145 Μαθηµατικές Μέθοδοι στη Φυσική. Πρόοδος 20 Μαρτίου 2011 Οµάδα

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

ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ PASCAL

ΦΥΣ 145 Υπολογιστικές Μέθοδοι στη Φυσική. Πρόοδος 26 Μαρτίου 2007 Ομάδα 1 η

Transcript:

Πίνακες (i) οµηµένη µεταβλητή: αποθηκεύει µια συλλογή από τιµές δεδοµένων Πίνακας (array): δοµηµένη µεταβλητή που αποθηκεύει πολλές τιµές του ίδιου τύπου INTEGER:: pinakas(100)ή INTEGER, DIMENSION(100)::pinakas ορίζει έναν πίνακα εκατό ακεραίων, τα στοιχεία του οποίου είναι: pinakas(1), pinakas(2), pinakas(3)... pinakas(100) και έχουν τύπο integer 1

Πίνακες (ii) Παραδείγµατα INTEGER:: a(12), Y(5) REAL:: b(5) CHARACTER(LEN=10):: NAMES(12) Εντολές εκχώρησης a(1) = 4; a(2)=5; a(12)=8 b=(/2.3, 4.6, 5.8, 9.1, 10.0/) Y=(/(i, i=1,22,5)/) READ(*.*) (NAMES(k), k=1,12) αρχή, τέλος, βήµα 2

Πίνακες (iii) ιάβασµαενόςπίνακα REAL:: a(12) READ(*,*) (a(k), k=1,12) ή DO i=1,12 READ (*,*) a(i) Εκτύπωσηενόςπίνακα WRITE (*,*) a(:)ή DO i=1,12 WRITE (*,*) a(i) 3

Πράξειςµεπίνακες Απλές πράξεις, π.χ. a(k) = a(k)+1; a(k) = a(1)+a(n); DO i=1,10 WRITE(*,*) a(i) IF (a(k) > a(k+1)) THEN... Αρχικοποίηση (µε µηδενικά) DO i=1,10; a(i)=0; Εύρεση ελάχιστου στοιχείου x = a(1) DO i=2,10 IF (a(i) < x) THEN x = a(i) END IF 4

Γραµµικήαναζήτηση (i) Πρόβληµα (αναζήτησης): δίνεται ένας πίνακας ακεραίων a και ζητείται να βρεθεί ανυπάρχειοακέραιοςxσταστοιχείατου IMPLICIT NONE INTEGER:: x,a(10) άλλες δηλώσεις; διάβασµα του πίνακα a; διάβασµα του ακεραίου x; ψάξιµοστονπίνακαγιατονx; παρουσίαση αποτελεσµάτων END 5

Γραµµικήαναζήτηση (ii) Μια δυνατή συγκεκριµενοποίηση READ(*,*) (a(i) i=1,10,1) j=1 DO WHILE ((j<11).and. (a(j)/=x)) j=j+1 IF (a(j)==x) THEN WRITE(*,*) 'To βρήκα στη θέση ', j ELSE WRITE(*,*) ' εν το βρήκα' END IF Στη χειρότερη περίπτωση θα ελεγχθούν όλα τα στοιχεία του πίνακα Απαιτούνται a n + b βήµατα γραµµική (a, bσταθερές, nτοµέγεθοςτουπίνακα) 6

Γραµµικήαναζήτηση (iii) Εναλλακτική συγκεκριµενοποίηση #1 i=1; found=.false. DO WHILE ((i<11).and. (.NOT. found)) IF a(i)==x THEN found=.true. ELSE found =.FALSE. END IF i=i+1 IF (found) THEN WRITE(*,*)'Toβρήκαστηθέση ', (i-1) ELSE WRITE (*,*) ' εντοβρήκα' END IF 7

Γραµµικήαναζήτηση (iv) Εναλλακτική συγκεκριµενοποίηση #2 i=1; found=.false. DO WHILE ((i<11).and. (.NOT. found)) IF a(i)==x THEN found=.true. END IF i=i+1 IF (found) THEN WRITE(*,*)'Toβρήκαστηθέση ', (i-1) ELSE WRITE (*,*) ' εντοβρήκα' END IF 8

Γραµµικήαναζήτηση (v) Εναλλακτική συγκεκριµενοποίηση #3 i=1; found=.false. DO WHILE ((i<11).and. (.NOT. found)) found=(a(i)==x) i=i+1 IF (found) THEN WRITE(*,*)'To βρήκαστηθέση ', (i-1) ELSE WRITE' εν το βρήκα' END IF 9

υαδικήαναζήτηση (i) Προϋπόθεση: ο πίνακας να είναι ταξινοµηµένος, π.χ. σεαύξουσαδιάταξη Είναι πολύ πιο αποδοτική από τη γραµµική αναζήτηση Στη χειρότερη περίπτωση απαιτούνται a log 2 n + bβήµατα (a, bσταθερές, nτοµέγεθοςτουπίνακα) 10

υαδικήαναζήτηση (ii) Τοπρόγραµµα PROGRAM binsearch INTEGER, PARAMETER:: n=100; INTEGER:: i,howmany,mid,first,last INTEGER:: a(n), x LOGICAL:: found Μήνυµα επικεφαλίδα και οδηγίες χρήσης read(howmany) (* κατά αύξουσα σειρά *) DO i=1,howmany READ(*,*) (a(i)) READ(*,*) x Αναζήτηση και εµφάνιση αποτελέσµατος END 11

υαδικήαναζήτηση (iii) Αναζήτηση και εµφάνιση αποτελέσµατος first=1; last=howmany found = false DO WHILE ((.NOT.found).AND.(first<=last)) mid = (first+last) / 2 found = (x==a(mid)) IF (x<a(mid)) THEN last=mid-1 ELSE first=mid+1 END IF IF (found) THEN WRITE(*,*) mid ELSE WRITE(*,*) 'not found' END IF 12

Ταξινόµηση (i) Πρόβληµα: να αναδιαταχθούν τα στοιχεία ενός πίνακα ακεραίων σε αύξουσα σειρά Μια από τις σηµαντικότερες εφαρµογές των ηλεκτρονικών υπολογιστών Βασική διαδικασία: εναλλαγή τιµών (swap) SUBROUTINE SWAP (x,y) IMPLICIT NONE INTEGER:: x,y,save save=x x=y y=save END 13

Ταξινόµηση (ii) Μέθοδος της φυσαλίδας DO i=1,(n-1) DO j=(n-1),i,-1 IF (a(j)>a(j+1)) THEN CALL swap (a(j),a(j+1)) END IF Πλήθος συγκρίσεων (n 1) + (n 2) +... + 2 + 1 = n (n 1) / 2 τηςτάξηςτου n 2 O(n 2 ) 14

Ταξινόµηση (iii) Παράδειγµα εκτέλεσης 15

Πολυδιάστατοιπίνακες (i) Παράδειγµα INTEGER:: a(77,99)ή INTEGER, DIMENSION (77,99):: a DO i=1,10 DO j=1,5 READ(*,*) a(i,j) Πίνακεςπερισσοτέρων ιαστάσεων Η Fortran επιτρέπει µέχρι επτά διαστάσεις µε οποιοδήποτε αριθµό στοιχείων ανά διάσταση. 16

Πολλαπλασιασµόςπινάκων (i) ίνονταιοιπίνακες: a (m n), b (n q) Ζητείταιοπίνακας: c = a b (m q) όπου: c i, j = n k= 1 a i, k b k, j 17

Πολλαπλασιασµόςπινάκων (ii) To πρόγραµµα INTEGER:: a(m,n), b(n,q), c(m,q) DO i=1,m DO j=1,q c(i,j)=0 DO k=1,n c(i,j)=c(i,j)+a(i,k)*b(k,j) 18

Μαγικάτετράγωνα (i) ιδιάστατοι πίνακες (n n) που περιέχουν όλουςτουςφυσικούςµεταξύ 0 και n 2 1 τοάθροισµατωνστοιχείωνκάθεστήλης, γραµµής και διαγωνίου είναι σταθερό Πρόβληµα: κατασκευή µαγικού τετραγώνου (n n) για περιττό n 10 9 3 22 16 17 11 5 4 23 24 18 12 6 0 1 20 19 13 7 8 2 21 15 14 19

Μαγικάτετράγωνα (ii) 20

Μαγικάτετράγωνα IMPLICIT NONE INTEGER, PARAMETER:: n=5 INTEGER::h,i,j,k,m,a(n,n) i=n/2 j=n k=0 DO i=1,n DO j=1,n WRITE(*,10) a(i,j) 10 FORMAT (I4,1X\) WRITE(*,*) END ηλώσεις, Αρχικοποιήσεις Εκτύπωση των στοιχείων (iii) DO h=1,n Υπολογισµός j=j-1 των στοιχείων a(i+1,j+1)=k k=k+1 DO m=2,n j=mod((j+1),n) i=mod((i+1),n) a(i+1,j+1)=k k=k+1 21