Πολυδιάστατοι πίνακες α) Στατικοί πίνακες Πως δηλώνονται: π.χ. INTEGER A(3,5) REAL B(1991:2000,1:12) REAL C(4,8,12:20) ή INTEGER, DIMENSION(3,5)::A REAL,

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
(READ – WRITE) ΚΑΙ ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ (INTEGER,REAL,CHAR)
Advertisements

Προγραμματισμός PASCAL
ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ ΥΠΟΡΟΥΤΙΝΕΣ
Εντολές Διακλάδωσης ή Εντολές Υπό Συνθήκη
ΗΜΥ 100 Εισαγωγή στην Τεχνολογία 4 Νοεμβρίου 2008 Στυλιανή Πετρούδη ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΠΑΝΕΠΙΣΤΗΜΙΟ.
Δομές Διακλάδωσης Μην ελπίζεις ότι θα ξεφύγεις αν κάνεις κάποιο κακό. Γιατί κι αν ξεφύγεις απ’ τη προσοχή των άλλων, θα υποπέσεις στην αντίληψη της συνείδησής.
Πίνακες.
Πολυδιάστατοι Πίνακες, Δομές, Ενώσεις
Εισαγωγή στους Η/Υ Πίνακες.
ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΤΜΗΜΑ ΜΗΧΑΝΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΒΙΟΜΗΧΑΝΙΑΣ Διάλεξη 2: Πίνακες και δυναμικά δεδομένα στη FORTRAN 90 Εαρινό εξάμηνο 2009 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ.
ΣΤΟΙΧΕΙΑ ΨΕΥΔΟΚΩΔΙΚΑ ΒΑΣΙΚΕΣ ΔΟΜΕΣ ΒΑΣΙΚΟΙ ΑΛΓΟΡΙΘΜΟΙ ΠΙΝΑΚΩΝ
Παράδειγμα 2: Κινηματογράφοι Να γραφεί πρόγραμμα το οποίο:
Αναδρομη και static Γραψετε την συναρτηση sequence_size που διαβαζει μια απροσδιοριστου μεγεθους σειρας και υπολογιζει και τυπωνει το μεγεθος της. int.
ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΤΜΗΜΑ ΜΗΧΑΝΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΒΙΟΜΗΧΑΝΙΑΣ Διάλεξη 4: Δείκτες, συναρτήσεις και διαδικασίες Εαρινό εξάμηνο 2009 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ.
HY100 : ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΥΠΟΛΟΓΙΣΤΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ, ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ, ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΥΠΟΛΟΓΙΣΤΩΝ ΔΙΔΑΣΚΟΝΤΕΣ Αντώνιος Σαββίδης, Χρήστος.
ΗΜΥ 100 Εισαγωγή στην Τεχνολογία
Φροντηστήριο Διαχείριση Περιεχομένου Παγκόσμιου Ιστού και Γλωσσικά Eργαλεία.
Προγραμματισμός PASCAL Πληροφορική Γ' Λυκείου μέρος γ
Δομές Διακλάδωσης.
Παράδειγμα 5: Θερμοκρασίες
ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΤΜΗΜΑ ΜΗΧΑΝΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΒΙΟΜΗΧΑΝΙΑΣ Διάλεξη 5: Επαναληπτικές και εξωτερικές συναρτήσεις και διαδικασίες Εαρινό εξάμηνο 2009.
ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΤΜΗΜΑ ΜΗΧΑΝΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΒΙΟΜΗΧΑΝΙΑΣ Διάλεξη 3: Δείκτες Εαρινό εξάμηνο 2009 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ι. Σαρρής, τηλ.
Γενική μορφή προγράμματος Pascal
Excel Κεφάλαιο 3.
Προγραμματισμός ΙΙ Διάλεξη #5: Εντολές Ανάθεσης Εντολές Συνθήκης Δρ. Νικ. Λιόλιος.
Διαφάνειες παρουσίασης Πίνακες (συνέχεια) Αριθμητικοί υπολογισμοί Αναδρομή.
HY100 : ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΥΠΟΛΟΓΙΣΤΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ, ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ, ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΥΠΟΛΟΓΙΣΤΩΝ ΔΙΔΑΣΚΟΝΤΕΣ Αντώνιος Σαββίδης, Χρήστος.
1 Βάσεις Δεδομένων ΙI Επιμέλεια: ΘΟΔΩΡΗΣ ΜΑΝΑΒΗΣ SQL (3 από 3) T Manavis.
ΛΟΓΙΣΜΙΚΟ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗΣ MERLIN / MCL 3.0 ΠΕΡΙΒΑΛΛΟΝ ΕΛΑΧΙΣΤΟΠΟΙΗΣΗΣ.
HY100 : ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΥΠΟΛΟΓΙΣΤΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ, ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ, ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΥΠΟΛΟΓΙΣΤΩΝ ΔΙΔΑΣΚΟΝΤΕΣ Αντώνιος Σαββίδης, Χρήστος.
Μεταγλωττιστές (Compilers) (Θ) Ενότητα 12: Παραγωγή Ενδιάμεσου Κώδικα (Σημασιολογικές ρουτίνες μετάφρασης-Μέρος Β) Κατερίνα Γεωργούλη Τμήμα Μηχανικών Πληροφορικής.
ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Διδάσκοντες:Στάθης Ζάχος Νίκος Παπασπύρου
Αλγόριθμοι - Τμήμα Πληροφορικής ΑΠΘ - 4ο εξάμηνο1 Ανάλυση Αλγορίθμων b Θέματα: Ορθότητα Χρονική αποδοτικότητα Χωρική αποδοτικότητα Βελτιστότητα b Προσεγγίσεις:
ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ Διδάσκοντες:Στάθης Ζάχος Νίκος Παπασπύρου
Διαφάνειες παρουσίασης #2
HY100 : ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΥΠΟΛΟΓΙΣΤΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ, ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ, ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΥΠΟΛΟΓΙΣΤΩΝ ΔΙΔΑΣΚΟΝΤΕΣ Αντώνιος Σαββίδης, Χρήστος.
Οι εντολές επανάληψης Σε πολλά προβλήματα απαιτείται η επανάληψη ενός συνόλου ενεργειών προκειμένου να λυθεί το πρόβλημα. Θα αναφέρουμε δύο χαρακτηριστικά.
2η άσκηση Να γραφεί πρόγραμμα που θα ζητάει τους a,b συντελεστές και τους δύο πρώτους όρους x 1, x 2 της αναγωγικής ακολουθίας x n = ax n-1 +bx n-2 και.
Ο τελεστής ανάθεσης Ο τελεστής ανάθεσης (=) χρησιμοποιείται για να τοποθετήσουμε το αποτέλεσμα μιας έκφρασης (σταθερά, μεταβλητή ή παράσταση) σε μια μεταβλητή.
Συναρτήσεις - Διαδικασίες Ν. Π. Καραμπετάκης Τμήμα Μαθηματικών, Α.Π.Θ.
Υποπίνακες 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.
Βασικά στοιχεία της Java
2) Aν δανειστούμε ένα ποσό Α με επιτόκιο Τ=Ε% και υποχρεωθούμε να το ξεχρεώσουμε σε Ν χρόνια, τότε το ποσό της μηνιαίας δόσης Μ θα δίνεται από τον τύπο.
Αναδρομικές Συναρτήσεις Σύνταξη: RECURSIVE type FUNCTION name1 (variables) RESULT (name2) IMPLICIT NONE Τμήμα δηλώσεων Εκτελέσιμες εντολές END FUNCTION.
JPEG Μια τεχνική συμπίεσης ακίνητης εικόνας. Η Τεχνική JPEG Αφορά συμπίεση ακίνητων εικόνων Είναι τεχνική συμπίεσης με απώλειες Το πρόβλημα είναι η εκάστοτε.
Προγραμματισμός ΗΥ Ενότητα 6: Δισδιάστατοι πίνακες.
Τεχνολογικό Εκπαιδευτικό Ίδρυμα Θεσσαλίας Προγραμματισμός ΗΥ Ενότητα 2: Συναρτήσεις Εισόδου ⁄ Εξόδου. Διδάσκων: Ηλίας Κ Σάββας, Αναπληρωτής Καθηγητής.
Δομές Δεδομένων και Αρχεία
Προγραμματισμός & Εφαρμογές Η/Υ (Θ) Ενότητα 4: Εισαγωγή στο Προγραμματισμό με τη FORTRAN 2003 (μέρος 4 ο ) Δρ. Β.Χ. Μούσας, Αναπληρωτής Καθηγητής Τμήμα.
ΜΥΥ105: Εισαγωγή στον Προγραμματισμό Έλεγχος Ροής - Παραδείγματα Χειμερινό Εξάμηνο 2015.
Ε ΙΣΑΓΩΓΉ Σ ΤΟΥΣ Μ ΟΝΟΔΙΑΣΤΑΤΟΥΣ Π ΊΝΑΚΕΣ Αστρινάκη Μαρία.
ΑΣΤΡΙΝΆΚΗ ΜΑΡΊΑ Δυσδιάστατοι πίνακες. Γιατί πολυδιάστατους πίνακες; Αναλόγως με τις ανάγκες του προγράμματος, μπορεί να είναι πιο εύχρηστοι Προβλήματα.
Καθηγητής Νίκος Λορέντζος Προγραμματισμός & Εφαρμογές Υπολογιστών Κωδικός Μαθήματος: 2890 Κωδικός Διαφανειών: MKT130 Γεωπονικό Πανεπιστήμιο Αθηνών Τμήμα.
Δομές Επανάληψης ΕΡΓΑΣΤΗΡΙΟ AΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΧΟΧΟΛΗΣ ΔΙΟΝΥΣΙΟΣ.
1 Προγραμματισμός Ι Ενότητα 7 : Πίνακες I Αλέξανδρος Τζάλλας Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου.
Τύποι μεταβλητών & σταθερών (1 από 2)
Βρόχος Do … Loop Σκοπός Μαθήματος Χρήση Do… Loop για την εκτέλεση μιας ομάδας εντολών μέχρι να εκπληρωθεί μια συγκεκριμένη συνθήκη. Αθήνα, 2015.
Βρόχος Do … Loop Σκοπός Μαθήματος Χρήση Do… Loop για την εκτέλεση μιας ομάδας εντολών μέχρι να εκπληρωθεί μια συγκεκριμένη συνθήκη.
Η Γλώσσα Pascal Εντολή If
Πίνακες και αλφαριθμητικά
Δείκτες Προγραμματισμός Ι
Εφαρμογές Υπολογιστών
Ενισχυτική διδασκαλία
ΓΕΜΙΣΜΑ ΜΟΝΟΔΙΑΣΤΑΤΟΥ ΠΙΝΑΚΑ (Άσκηση 1)
Η Γλώσσα Pascal Υποπρογράμματα
Κάθε ένα από τα αντικείμενα λέγεται στοιχείο του πίνακα.
Δισδιάστατοι Πίνακες 3 7 … i γ ρ α μ ή j - στήλη 1 2 M N
Εντολές και δομές αλγορίθμου
Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον ΑΕΠΠ
Μεταγλωττιστές Μεταγλωττιστής είναι το λογισμικό το οποίο πραγματοποιεί την μετάφραση ενός προγράμματος από μία γλώσσα σε μία άλλη. Γιατί ασχολούμαστε.
Μεταγράφημα παρουσίασης:

Πολυδιάστατοι πίνακες α) Στατικοί πίνακες Πως δηλώνονται: π.χ. INTEGER A(3,5) REAL B(1991:2000,1:12) REAL C(4,8,12:20) ή INTEGER, DIMENSION(3,5)::A REAL, DIMENSION(1991:2000,1:12)::B REAL, DIMENSION(4,8,12:20)::C

β) Δυναμικοί πίνακες Πως δηλώνονται: π.χ. REAL, ALLOCATABLE::A(:,:) INTEGER, ALLOCATABLE::D(:,:,:) ή REAL, DIMENSION(:,:), ALLOCATABLE::A INTEGER, DIMENSION (:,:,:), ALLOCATABLE::D ALLOCATE(A(N,M),D(K,L,P))

Πως δίνουμε τιμές σε πολυδιάστατο πίνακα α) 1ος τρόπος (Απευθείας ανάγνωση) π.χ. REAL A(5,10) READ*, A (αναμένει από το χρήστη 50 τιμές και τα τοποθετεί σε στήλες)

β) 2ος τρόπος (με χρήση της DO-END DO) π.χ. REAL A(5,10) DO I=1,5 DO J=1,10 READ*, A(I,J) END DO END DO(τοποθέτηση τιμών κατά γραμμές) DO J=1,10 DO I=1,5 READ*, A(I,J) END DO END DO(τοποθέτηση τιμών κατά στήλες)

γ) 3ος τρόπος (με χρήση της implied-DO) π.χ. REAL A(5,10) READ*, ((A(I,J), J=1,5),I=1,10) (τοποθέτηση τιμών κατά γραμμές) REAL A(5,10) READ*, ((A(I,J), I=1,10),J=1,5) (τοποθέτηση τιμών κατά στήλες)

Εκτύπωση πίνακα τάξης 2 α) 1ος τρόπος (Απευθείας εκτύπωση) π.χ. REAL A(5,10) PRINT*, A Θα τυπώσει κατά στήλες το ένα στοιχείο δίπλα στο άλλο, δηλαδή A(1,1), A(2,1), A(3,1), A(4,1), A(5,1), A(1,2), A(2,2), κλπ.

β) 2ος τρόπος (με χρήση της implied-DO) π.χ. REAL A(5,10) PRINT*, ((A(I,J), J=1,5),I=1,10) (εκτύπωση τιμών κατά γραμμές) REAL A(5,10) PRINT *, ((A(I,J), I=1,10),J=1,5) (εκτύπωση τιμών κατά στήλες) Και στις δύο περιπτώσεις εκτυπώνονται τα στοιχεία του πίνακα το ένα δίπλα στο άλλο.

γ) 3ος τρόπος (με χρήση της DO-END DO) π.χ. REAL A(5,10) DO I=1,5 DO J=1,10 PRINT*, A(I,J) END DO END DO(τοποθέτηση τιμών κατά γραμμές) DO J=1,10 DO I=1,5 PRINT *, A(I,J) END DO END DO(τοποθέτηση τιμών κατά στήλες) Στην περίπτωση αυτή εκτυπώνεται κάθε στοιχείο σε διαφορετική σειρά

Για να έχουμε εκτύπωση σε μορφή πίνακα χρησιμοποιούμε την εξής δομή: π.χ. REAL A(5,10) DO I=1,5 DO J=1,10 WRITE(*,10) A(I,J) 10 FORMAT(F7.2\) END DO PRINT* END DO

Πράξεις σε πίνακες PROGRAM SUM_MATRIX IMPLICIT NONE INTEGER N,M,I,J REAL, ALLOCATABLE::A(:,:),B(:,:),C(:,:) PRINT*, “GIVE DIMENSIONS” READ*, N,M ALLOCATE (A(N,M),B(N,M),C(N,M)) DO I=1,N DO J=1,M READ*, A(I,J) END DO

READ*, ((B(I,J),J=1,M),I=1,N) DO I=1,N DO J=1,M C(I,J)=A(I,J)+B(I,J) END DO PRINT*, ‘THE SUM OF A AND B IS” DO I=1,N DO J=1,M WRITE(*,10) C(I,J) 10 FORMAT(F7.2\) END DO PRINT* END DO END PROGRAM SUM_MATRIX C=A+B

PROGRAM MATRIX_MULTIPLICATION IMPLICIT NONE INTEGER N,L,M,I,J,P REAL, ALLOCATABLE::A(:,:),B(:,:),C(:,:) PRINT*, “GIVE DIMENSIONS OF A” READ*, N,L PRINT*, “GIVE DIMENSIONS OF B” READ*, L,M ALLOCATE (A(N,L),B(L,M),C(N,M)) PRINT*, “GIVE MATRIX A” READ*, ((A(I,J),J=1,L),I=1,N) PRINT*, “GIVE MATRIX B” READ*, ((B(I,J),J=1,M),I=1,L)

DO I=1,N DO J=1,M C(I,J)=0 DO P=1,L C(I,J)= C(I,J)+A(I,P)*B(P,J) END DO PRINT*, ‘THE SUM OF A AND B IS” DO I=1,N DO J=1,M WRITE(*,10) C(I,J) 10 FORMAT(F7.2\) END DO PRINT* END DO END PROGRAM MATRIX_MULTIPLICATION C=MATMUL(A,B)

Άσκηση Να γράψετε πρόγραμμα που θα δέχεται σαν είσοδο ένα δυναμικό πίνακα τάξης 2, διαστάσεων ΝxΝκαι θα ελέγχει αν είναι συμμετρικός ή όχι.

PROGRAM MATRIX IMPLICIT NONE INTEGER N,I,J REAL, ALLOCATABLE::A(:,:) READ*, N ALLOCATE (A(N,N)) READ*, ((A(I,J), J=1,N),I=1,N) DO I=1,N DO J=1,N IF (A(I,J)/=A(I,J)) GOTO 10 END DO GOTO PRINT*, ‘O PINAKAS DEN EINAI & SYMMETRIKOS’ GOTO PRINT*, ‘O PINAKAS EINAI & SYMMETRIKOS’ 30 END PROGRAM MATRIX

Συναρτήσεις σε πίνακες ALL (λογική έκφραση) επιστρέφει τιμή TRUE αν όλα τα στοιχεία του πίνακα ικανοποιούν την λογική έκφραση π.χ. ALL (A>0) ΠΡΟΣΟΧΗ δεν χρησιμοποιούνται δείκτες ANY (λογική έκφραση) π.χ. ANY (A>2) COUNT (λογική έκφραση) επιστρέφει το πλήθος των στοιχείων του πίνακα που ικανοποιούν την λογική έκφραση π.χ. COUNT (A==0)

Οι συναρτήσεις: MAXVAL(A), MINVAL(A), MAXLOC(A), MINLOC(A) Άσκηση Να γράψετε πρόγραμμα που να βρίσκει το μέγιστο και ελάχιστο στοιχείο ενός διδιάστατου πίνακα καθώς και όλες τις θέσεις τους.

Η εντολή WHERE WHERE (λογική έκφραση 1) εντολή ανάθεσης 11 εντολή ανάθεσης 12 …………………….. ELSEWHERE (λογική έκφραση 2) εντολή ανάθεσης 21 εντολή ανάθεσης 22 …………………….. ELSEWHERE εντολή ανάθεσης 01 εντολή ανάθεσης 02 …………………….. END WHERE

Παράδειγμα Να γράψετε πρόγραμμα που θα διαβάζει ένα δυναμικό πίνακα Α και θα ορίζει τον πίνακα Β από τις σχέσεις 1/A(I,J), A(I,J)  0 B(I,J)= 3,A(I,J)=0 WHERE (A/=0) B=1/A ELSEWHERE B=3 END WHERE

Η εντολή FORALL FORALL (μεταβλητή=αρχική τιμή:τελική τιμή:βήμα, μεταβλητή=αρχική τιμή:τελική τιμή:βήμα, …) εντολές αντικατάστασης, ή εντολές WHERE ή εντολές FORALL) END FORALL Παράδειγμα Δίνεται πίνακας Α, NxM και θέλουμε να ορίσουμε πίνακα Β, NxM από τη σχέση B(I,J)=1/(A(I,J)**2+5) FORALL (I=1:N,J=1:M) B(I,J)=1/(A(I,J)**2+5) END FORALL

Το πρόβλημα της ταξινόμησης των γραμμών (ή στηλών) ενός διδιάστατου πίνακα Θέλουμε να αναδιατάξουμε τα στοιχεία ενός ΝxM πίνακα Α έτσι ώστε μετά την αναδιάταξη να ισχύει A(I,1)  A(I,2)  …….  A(I,M), 1  I  N

PROGRAM MATRIX_ORDER IMPLICIT NONE INTEGER N,M,I,J,K REAL, ALLOCATABLE::A(:,:) REAL B READ*, N,M ALLOCATE (A(N,M)) READ*, ((A(I,J), J=1,M), I=1,N)

DO I=1,N DO J=1,M-1 DO K=J+1,M IF (A(I,J)>A(I,K)) THEN B= A(I,J) A(I,J)= A(I,K) A(I,K)=B END IF END DO

DO I=1,N DO J=1,M WRITE(*,10) C(I,J) 10 FORMAT(F7.2\) END DO PRINT* END DO END PROGRAM MATRIX_ORDER