ηµιουργία νέου τύπου δεδοµένων από το χρήστη



Σχετικά έγγραφα
(derived data types) ...

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

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

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

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

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

Αρχές Τεχνολογίας Λογισμικού Εργαστήριο

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

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

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

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

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

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

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

(Διαφάνειες Νίκου Βιδάκη)

ΑΡΦΕ ΑΝΣΙΚΕΙΜΕΝΟΣΡΕΥΟΤ ΠΡΟΓΡΑΜΜΑΣΙΜΟΤ. Ιωάννης Φατζηλυγερούδης Αναπληρωτής Καθηγητής Τμήμα Μηχ/κών Η/Υ και Πληροφορικής Πανεπιστήμιο Πατρών

Σύνθεση και Κληρονομικότητα

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

ΚΕΦΑΛΑΙΟ 2. Περιγραφή της Κίνησης. 2.1 Κίνηση στο Επίπεδο

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

Λογισµικό (Software SW) Γλώσσες

Οντοκεντρικός Προγραμματισμός

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

ΥΠΟΛΟΓΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ ΓΙΑ ΣΥΣΤΗΜΑΤΑ ΜΕΤΑΔΟΣΗΣ ΠΛΗΡΟΦΟΡΙΑΣ

Outline. 4 Object-Oriented Programming

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

Χρήση Αντικειμενοστραφούς Προγραμματισμού στον Υπολογιστικό Ηλεκτρομαγνητισμό

Μεθοδολογία. Aνάλυσης Προβλήµατος. Τι είναι αλγόριθµος? Σχεδιάσµος Αλγορίθµου

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

Προγραμματισμός Ι. Εισαγωγή στην C++ Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Σύνθεση και Κληρονομικότητα

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

bits and bytes q Ο υπολογιστής χρησιμοποιεί τη κύρια μνήμη για αποθήκευση δεδομένων

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

Η Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language) Ιστοσελίδα του µαθήµατος. Περιεχόµενα. ηµήτριος Κατσαρός, Ph.D. Κλάσεις.

Τεχνολογία Λογισμικού

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Στατικές μέθοδοι και μεταβλητές Εσωτερικές κλάσεις

διακριτοποίηση αριθµητική παραγώγιση

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

Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 9 : ΑΦΗΡΗΜΕΝΕΣ ΚΛΑΣΕΙΣ

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

Εισαγωγή στον Αντικειμενοστρέφή Προγραμματισμό Διάλεξη #13

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

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Προγραμματισμός Η/Υ. Ι. Ψαρομήλιγκος Χ. Κυτάγιας

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

ΚΕΦΑΛΑΙΟ 20 ΕΠΑΝΑΧΡΗΣΙΜΟΠΟΙΗΣΗ ΛΟΓΙΣΜΙΚΟΥ

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 8 & 9 18/10/07

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Μέθοδοι

Εισαγωγή στην επιστήμη των υπολογιστών

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

Wrapper Classes, Abstract Classes and Interfaces

Η Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language)

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

Γλώσσες προγραµµατισµού. Ανάπτυξη Συστηµάτων Λογισµικού

Εξέλιξη: Γλώσσα μηχανής assembly Γλώσσες προγραμματισμού ανεξάρτητες από την μηχανή Διαδικασίες κ Συναρτήσεις Αντικείμενα

Η λέξη κλειδί this. Γαβαλάς Δαμιανός

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

1 ΕΙΣΑΓΩΓΗ. Πρωταρχικοί Τύποι

Αποθηκευμένες Διαδικασίες Stored Routines (Procedures & Functions)

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

ύο βασικές ιδέες Ενότητες Απόκρυψη Πληροφορίας, Αφηρηµένοι Τύποι εδοµένων 1) ιαχώρισε το πρόβληµα σεµικρότερα καλώς καθορισµένα υπο-προβλήµατα

Πληροφοριακά Συστήματα Διοίκησης Ενότητα 1: Βασικές Αρχές Αντικειμενοστραφούς Σχεδίασης Συστημάτων και Εφαρμογών (1ο Μέρος)


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

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

Σχεδίαση Κλάσεων. Γρηγόρης Τσουµάκας. Τµήµα Πληροφορικής, Αριστοτέλειο Πανεπιστήµιο Θεσσαλονίκης. Έκδοση:

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

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

Δείκτες σε συναρτήσεις. Προγραμματισμός II 1

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα

Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: ΕΠΛ 131 Αρχές Προγραµµατισµού I 4-2

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

EPL 603 TOPICS IN SOFTWARE ENGINEERING. Lab 5: Component Adaptation Environment (COPE)

Εισαγωγή σε αντικειμενοστραφή concepts. Και λίγη C#

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Μέθοδοι

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

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

Volume of a Cuboid. Volume = length x breadth x height. V = l x b x h. The formula for the volume of a cuboid is

Ελληνικό Ανοικτό Πανεπιστήµιο. Βασικές έννοιες αντικειµενοστρεφούς τεχνολογίας. ρ. Πάνος Φιτσιλής

Εισαγωγή στην επιστήμη των υπολογιστών. Λογισμικό Υπολογιστών Κεφάλαιο 9ο Γλώσσες Προγραμματισμού

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

ΜΑΘΗΜΑΤΑ PYTHON. Καθηγητής Ι. Δημητρίου.

ΕΙ ΑΓΩΓΉ ΣΗΝ FORTRAN

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

Κεφάλαιο 2.6: Είσοδος / Έξοδος εδοµένων, Μορφοποίηση εδοµένων Εξόδου. ( ιάλεξη 7) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 8 : ΚΛΗΡΟΝΟΜΙΚΟΤΗΤΑ & ΠΟΛΥΜΟΡΦΙΣΜΟΣ

ΚΑΤΑΝΟΗΣΗ ΑΝΑΛΥΣΗ ΕΠΙΛΥΣΗ. Ο προγραμματισμός ασχολείται με το σύνολο των εντολών που δίνονται στον υπολογιστή ώστε να υλοποιείται ο αλγόριθμος.

Αρχές Τεχνολογίας Λογισμικού

Pascal. 26 Οκτωβρίου 2011

Ενότητες στην C Τεχνική Υλοποίησης Αφαιρετικών Τύπων Δεδομένων στην C

Στο πρόγραμμα θα πρέπει να γίνει υποχρεωτικά χρήση κλάσεων. Για την υλοποίηση του προγράμματος χρειάζονται 3 βασικές κλάσεις.

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

04 Αντικειμενοστραφής ανάλυση και σχεδιασμός

Κεφάλαιο 2.6: Είσοδος / Έξοδος Δεδομένων, Μορφοποίηση Δεδομένων Εξόδου. (Διάλεξη 7) Είσοδος/ Έξοδος

Κεφάλαιο 2.6: Είσοδος / Έξοδος Δεδομένων, Μορφοποίηση Δεδομένων Εξόδου. (Διάλεξη 7)

ΑΠΛΗ ΚΛΗΡΟΝΟΜΙΚΟΤΗΤΑ

Πρόβλημα 1: Αναζήτηση Ελάχιστης/Μέγιστης Τιμής

Εργαστήριο 02: Προγραμματισμός με Γενικούς Τύπους (JAVA Generics) ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι

8 FORTRAN 77/90/95/2003

Καλές επιτυχίες παιδιά στα υπόλοιπα μαθήματά σας και καλές γιορτές!!!!

Transcript:

ηµιουργία νέου τύπου δεδοµένων από το χρήστη program create_a_type type chemical_element character (len=2) integer end type type (chemical_element) type (chemical_element) :: argon,carbon,neon :: Periodic_Table(109) :: mass carbon%atomic_mass =12.010 carbon%atomic_number=6 carbon%symbol="ca" argon=chemical_element("ar",18,26.98) write(*,*)"dwse onoma stoixeiou me 2 & grammata, atomiko arithmo, maza" read(*,*) neon :: symbol :: atomic_number Periodic_Table(5)=argon :: atomic_mass Periodic_Table(17)=carbon Periodic_Table(55)=neon mass=periodic_table(5)%atomic_mass write(*,*) mass write(*,*) neon write(*,*) Periodic_Table(17) end program create_a_type Αν ο χρήστης δώσει: Ne 23 56.87 Το πρόγραµµα θα τυπώσει: 26.98!Η ατοµική µάζα του argon Ne 23 56.87!Τα στοιχεία του neon Ca FORTRAN 6 12.01 και Αντικειµενοστραφής!Τα στοιχείαπρογραµµατισµός του carbon

ηµιουργία σύνθετου τύπου δεδοµένων program create_composite_type type chemical_element character (len=2) :: symbol integer :: atomic_number write(*,*)"dwse onoma me 2 grammata, & atomiko arithmo, maza" read(*,*) neon :: atomic_mass Periodic_Table(5)=argon end type type history character (len=31) Periodic_Table(17)=carbon Periodic_Table(55)=neon :: scientist_namemass=periodic_table(5)%atomic_mass integer :: year_found type (chemical_element) :: chemelement write(*,*) mass end type history type (chemical_element) :: argon,carbon,neon write(*,*) neon write(*,*) Periodic_Table(17) type (chemical_element) :: Periodic_Table(109) :: mass oxygen=chemical_element("o", 76, 190.2) type (chemical_element) :: oxygen oxygen_hist=history ("Joseph Pristley", & type (history) Αν ο χρήστης :: oxygen_history δώσει: Ne 23 56.871774, Το πρόγραµµα oxygen) θα τυπώσει: carbon%atomic_mass 26.98=12.010 write(*,*) oxygen_hist carbon%atomic_number=6 Ne 23 56.87 carbon%symbol="ca" 6 12.01 end program create_composite_type argon=chemical_element("ar",18,26.98) Joseph Pristley 1774 O 76 190.2

module klasi_rectangle type Rectangle end type Rectangle contains :: base, height Program geometry use klasi_circle use klasi_rectangle function rectangle_area(r) result(area) type (Rectangle), intent(in)::r :: area area=r%base * r%height end function rectangle_area end module klasi_rectangle module klasi_circle :: pi=3.141592653589931 type Circle :: radius end type Circle contains function circle_area(c) result(area) type (Circle), intent (in) ::c area=pi*((c%radius)*(c%radius)) end function circle_area end module klasi_circle interface compute_area module procedure rectangle_area, circle_area end interface type (Rectangle) type (Circle) Fortran 90/95 :: tetragwno :: kyklos :: emvado tetragwno=rectangle(2.1,4.3) emvado = compute_area(tetragwno) write(6,100) tetragwno, emvado 100 format("area of ", f3.1," by ", f3.1," rectangle is ", f5.2) kyklos=circle(5.4) emvado=compute_area(kyklos) write(6,200) kyklos, emvado ::area 200 format("area of circle with ",f3.1," radius is ",f9.5) end program geometry Το πρόγραµµα τυπώνει Area of 2.1 by 4.3 rectangle is 9.03 Area of circle with 5.4 radius is 91.60885

Ψευδο-OOP στην Fortran 90/95: παράδειγµα module class_circle private public :: Circle, circle_area, circle_print :: pi = 3.1415926535897931d0! Class-wide private constant type Circle :: radius end type Circle contains function circle_area(this) result(area) type(circle), intent(in) :: this :: area area = pi * this%radius**2 end function circle_area

subroutine circle_print(this) type(circle), intent(in) :: this :: area area = circle_area(this)! Call the circle_area function print *, 'Circle: r = ', this%radius, ' area = ', area end subroutine circle_print end module class_circle program circle_test use class_circle type(circle) :: c! Declare a variable of type Circle. c = Circle(1.5)! Use the implicit constructor, radius = 1.5. call circle_print(c)! Call a class subroutine end program circle_test

module class_circle private :: pi = 3.1415926535897931d0! Class-wide private constant type, public :: Circle :: radius contains procedure :: area => circle_area procedure :: print => circle_print end type Circle OOP στην Fortran 2003 (i) contains function circle_area(this) result(area) class(circle), intent(in) :: this :: area area = pi * this%radius**2 end function circle_area subroutine circle_print(this) class(circle), intent(in) :: this :: area area = this%area()! Call the typebound function print *, 'Circle: r = ', this%radius, ' area = ', area end subroutine circle_print end module class_circle

OOP στην Fortran 2003 (ii) program circle_test use class_circle type(circle) :: c! Declare a variable of type Circle. c = Circle(1.5)! Use the implicit constructor, radius = 1.5. call c%print! Call the type-bound subroutine end program circle_test

Αντικειµενοστραφής προγραµµατισµός(i) Αντικειµενοστραφές (object-oriented) µοντέλο ανάπτυξης λογισµικού Το πρόγραµµα είναι οργανωµένο ως ένα σύνολο από αλληλεπιδρώντα αντικείµενα Κάθε αντικείµενο περιέχει: δεδοµένα (data), που χαρακτηρίζουν την κατάστασή του µεθόδους (methods), δηλαδή κώδικα που υλοποιεί τη συµπεριφορά του ενθυλάκωση (encapsulation)

Βασικές αρχές Αντικειµενοστραφής προγραµµατισµός(ii) Κατά την ανάλυση και τη σχεδίαση, δείτε τα αντικείµεναβάσειτηςδιεπαφήςτους (interface) και όχι βάσει της υλοποίησής τους Προσπαθήστε να κρύψετε όσο το δυνατόν µεγαλύτερο µέρος της υλοποίησης Προσπαθήστε να επαναχρησιµοποιήσετε αντικείµενα Προσπαθήστε να ελαχιστοποιήσετε τις διασυνδέσεις µεταξύ αντικειµένων

Αντικειµενοστραφής προγραµµατισµός(iii) Κύρια χαρακτηριστικά Κληρονοµικότητα (inheritance) Πολυµορφισµός (polymorphism) Απόκρυψη πληροφορίας (information hiding) 10

Αντικειµενοστραφής προγραµµατισµός(iv) Πλεονεκτήµατα Φυσική περιγραφή, τουλάχιστον για ορισµένες περιοχές εφαρµογών Αφαίρεση, δόµηση, επαναχρησιµοποίηση Ιδιαίτερα διαδεδοµένος σήµερα, πληθώρα γλωσσών και εργαλείων τον υποστηρίζουν Μειονεκτήµατα Υπερτιµηµένος... ιόγκωση κώδικα 11