ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΧΗΜΙΚΩΝ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΙΚΟ ΚΕΝΤΡΟ. Προγραμματισμός με FORTRAN 90/95

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΧΗΜΙΚΩΝ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΙΚΟ ΚΕΝΤΡΟ. Προγραμματισμός με FORTRAN 90/95"

Transcript

1 ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΧΗΜΙΚΩΝ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΙΚΟ ΚΕΝΤΡΟ Προγραμματισμός με FORTRAN 90/95 Aντώνης Σπυρόπουλος, ΕΔΙΠ

2 Αρχή ενός κώδικα FORTRAN program name Κάθε κώδικας FORTRAN ξεκινάει με την εντολή program ακολουθούμενη από το όνομα name του κώδικα. Ο προγραμματιστής μπορεί να επιλέξει όποιο όνομα θέλει. Πρέπει όμως να προσέξετε: να ξεκινάει με γράμμα κεφαλαίο ή μικρό επιτρέπετε η χρήση μόνο γραμμάτων (Α Ζ, a z), ψηφίων (0 9) και της κάτω παύλας (underscore) _ το μέγιστο επιτρεπόμενο μέγεθος είναι 31 χαρακτήρες

3 Τέλος ενός κώδικα FORTRAN end Κάθε κώδικας FORTRAN τερματίζεται με την εντολή end

4 Εκτύπωση μηνυμάτων στην οθόνη του υπολογιστή print *, my message Η παραπάνω εντολή εκτυπώνει στην οθόνη το μήνυμα που βρίσκεται μέσα στα εισαγωγικά Παράδειγμα program My_first_code print *, Hello World end Όταν τρέξει ο παραπάνω κώδικας FORTRAN τότε στην οθόνη εμφανίζεται: Hello World

5 Τι πρέπει να κάνουμε για να τρέξει ο κώδικας; Compile, Build, Execute Compile: Ο compiler θα ελέγξει αν ο κώδικάς μας έχει συντακτικά λάθη Build: Ο compiler θα φτιάξει το εκτελέσιμο αρχείο Execute: Τρέξιμο του εκτελέσιμου αρχείου

6 Σχόλια Είναι σκόπιμο ο προγραμματιστής να εισάγει στον κώδικά του σχόλια (μη εκτελέσιμες εντολές) για να διευκολύνει την ανάγνωση του από τον χρήστη. Για να καταλάβει ο μεταγλωττιστής ότι μια γραμμή είναι σχόλιο και όχι εντολή FORTRAN πρέπει να ξεκινάει με το σύμβολο:! Παράδειγμα program My_ second_ code! This is my second FORTRAN code print *, Hello World end Όταν τρέξει ο παραπάνω κώδικας FORTRAN τότε στην οθόνη εμφανίζεται: Hello World Ο μεταγλωττιστής δεν λαμβάνει υπόψη τη δεύτερη γραμμή του παραπάνω κώδικα γιατί ξεκινάει με!

7 Αριθμητικές Μεταβλητές (1) Για να μπορέσουμε να κάνουμε αριθμητικές πράξεις με μεταβλητές πρέπει να ορίσουμε τον τύπο τους και το όνομά τους Για να ορίσουμε μια μεταβλητή με όνομα variable_name στην οποία πρόκειται να αποθηκεύσουμε πραγματικούς (real) αριθμούς, γράφουμε: real variable_ name Ομοίως για να ορίσουμε μια μεταβλητή με όνομα variable_name στην οποία πρόκειται να αποθηκεύσουμε ακέραιους (integer) αριθμούς, γράφουμε: integer variable_name

8 Αριθμητικές Μεταβλητές (2) Σε κάθε κώδικα FORTRAN μετά την εντολή program πρέπει να μπαίνει η εντολή IMPLICIT NONE Με την εντολή IMPLICIT NONE ο προγραμματιστής υποχρεώνεται να ορίσει κάθε μεταβλητή στον κώδικά του. Αν επιλέξει να μην χρησιμοποιήσει την εντολή αυτή, τότε ο μεταγλωττιστής επιλέγει (έμμεσα) κάθε μεταβλητή που αρχίζει με τα γράμματα i, j, k, l, m, n να είναι integer και όλες τις άλλες real. O έμμεσος τρόπος υποδήλωσης των μεταβλητών κρύβει σφάλματα (bugs) που δύσκολα γιατρεύονται!

9 Προσπαθήστε να τρέξετε τον παρακάτω κώδικα program code_3 IMPLICIT NONE i = 5.2 j = 3 print *, i print *, j end

10 Αριθμητικές Μεταβλητές (3) Παράδειγμα program code_4 i = 5.2 j = 3 print *, i print *, j end Όταν τρέξει ο παραπάνω κώδικας FORTRAN τότε στην οθόνη εμφανίζεται: 5 3

11 Γενική μορφή ενός κώδικα FORTRAN program name IMPLICIT NONE Δηλώσεις μεταβλητών Εντολές π.χ. real, integer π.χ. αριθμητικές παραστάσεις, print, if, do end

12 Παράδειγμα program new_code IMPLICIT NONE real i, k integer j i = 5.2 j = 3 k = i + j print *, i print *, j print *, k Δηλώσεις μεταβλητών Εντολές end

13 Αριθμητικές παραστάσεις (1) Για να δώσουμε τιμή σε μια μεταβλητή χρησιμοποιούμε το σύμβολο = variable_name = τιμή ή variable_name = αριθμητική παράσταση Το σύμβολο = στη FORTRAN είναι στην ουσία εντολή j = 3 σημαίνει: δώσε στην αριθμητική μεταβλητή j την τιμή 3 ενώ j = j + 1 σημαίνει: δώσε στην αριθμητική μεταβλητή j την τιμή που είχε η μεταβλητή j και πρόσθεσε την τιμή 1

14 Αριθμητικές παραστάσεις (2) Οι αριθμητικοί τελεστές που χρησιμοποιούνται στις αριθμητικές παραστάσεις είναι: + Πρόσθεση - Αφαίρεση * Πολλαπλασιασμός / Διαίρεση ** Ύψωση σε δύναμη Η προτεραιότητα των τελεστών είναι: ** Υψηλή * και / Μεσαία + και - Χαμηλή Οι παρενθέσεις ( ) αλλάζουν την προκαθορισμένη σειρά (προτεραιότητα των τελεστών) που γίνονται οι πράξεις Πρώτα γίνονται οι πράξεις μέσα στις παρενθέσεις και μετά οι υπόλοιπες

15 Αριθμητικές παραστάσεις (3) Για παράδειγμα στην αριθμητική παράσταση: a = f/h**g + i η σειρά που θα γίνουν οι πράξεις είναι: Υπολογισμός του h**g και αποθήκευση του αποτελέσματος σε μια προσωρινή μεταβλητή temp_1 Υπολογισμός του f/temp_1 και αποθήκευση του αποτελέσματος σε μια προσωρινή μεταβλητή temp_2 Υπολογισμός του temp_2 + i και αποθήκευση του αποτελέσματος στη μεταβλητή a

16 Πράξεις μεταξύ μεταβλητών ή αριθμών Οι μεταβλητές και οι αριθμοί που χρησιμοποιούνται στις αριθμητικές παραστάσεις μπορεί να είναι ή μόνο real ή μόνο integer ή συνδυασμός και των δυο. Αυτό που πρέπει να έχουμε υπόψη μας είναι: : Πράξεις μεταξύ real μεταβλητών ή αριθμών έχουν real αποτέλεσμα Πράξεις μεταξύ integer μεταβλητών ή αριθμών έχουν integer αποτέλεσμα Πράξεις μεταξύ real και integer μεταβλητών ή αριθμών έχουν real αποτέλεσμα

17 Παράδειγμα Έστω ότι θέλουμε να υπολογίσουμε το αποτέλεσμα της διαίρεσης του 5 με το 2 και να το αποθηκεύσουμε σε μια μεταβλητή a Η τιμή που θα πάρει τελικά η μεταβλητή a εξαρτάται από το πώς θα την δηλώσουμε στην αρχή του κώδικα και από το πώς θα γράψουμε την διαίρεση. real a integer a Τιμή a = 5./ a = 5/ a = 5./ a = 5/

18 Εσωτερικές συναρτήσεις (intrinsic functions) Συνάρτηση Επεξήγηση Δήλωση του x Αποτέλεσμα REAL(x) Μετατροπή του x INTEGER REAL σε REAL INT(x) Μετατροπή του x REAL INTEGER σε INTEGER ABS(x) Απόλυτη τιμή του x INTEGER INTEGER REAL REAL SQRT(x) Τετραγωνική ρίζα REAL REAL του x SIN(x) Ημίτονο του x REAL REAL COS(x) Συνημίτονο του x REAL REAL TAN(x) Εφαπτομένη του x REAL REAL EXP(x) e x REAL REAL LOG(x) ln(x) REAL REAL LOG10(x) log(x) REAL REAL

19 Εισαγωγή δεδομένων από το πληκτρολόγιο read *, variable_ name Η χρήση της εντολής read *, υποχρεώνει το χρήστη να εισάγει κάποιο νούμερο ή κείμενο από το πληκτρολόγιο, το οποίο και αποθηκεύεται στην μεταβλητή variable_name

20 Παράδειγμα program test IMPLICIT NONE real x print *, 'Give a real number' read *, x print *, x end Όταν τρέξει ο παραπάνω κώδικας FORTRAN τότε στην οθόνη εμφανίζεται: Give a real number και η εκτέλεση του σταματά μέχρι ο χρήστης να εισάγει από το πληκτρολόγιο έναν αριθμό και να πατήσει το ENTER. Στη συνέχεια εκτυπώνεται ο αριθμός που πληκτρολόγησε ο χρήστης.

21 Έλεγχος της ροής του κώδικα (1) Δομή 1 if (συνθήκη) then. εντολές. endif Αν η συνθήκη μέσα στην παρένθεση ικανοποιείται, τότε εκτελούνται οι εντολές που βρίσκονται μετά το then και πριν το endif, αλλιώς η εκτέλεση κέλ του κώδικα κα συνεχίζεται με τις εντολές που βρίσκονται μετά το endif

22 Παράδειγμα program blockif IMPLICIT NONE real x print *, 'Give a real number' read *, x if (x<0) then print *, 'Negative' endif end

23 Τελεστές σύγκρισης > μεγαλύτερο < μικρότερο >= μεγαλύτερο ή ίσο <= μικρότερο ή ίσο /= διάφορο == ίσο (ΠΡΟΣΟΧΗ: ο τελεστής ισότητας συμβολίζεται με 2 = )

24 Λογικοί τελεστές.and..or. if ((συνθήκη1).and.(συνθήκη2)) then. εντολές. endif if ((συνθήκη1).or.(συνθήκη2)) then. εντολές. endif

25 Έλεγχος της ροής του κώδικα (2) Δομή 2 if (συνθήκη) then. εντολές. else. εντολές. endif

26 Παράδειγμα program blockif IMPLICIT NONE real x print *, 'Give a real number' read *, x if (x<0) then print *, 'Negative' g else print *, 'Positive' endif end

27 Έλεγχος της ροής του κώδικα (3) Δομή 3 if (συνθήκη) εντολή μόνο μια εντολή

28 Παράδειγμα program single_line_if IMPLICIT NONE real x print *, 'Give a real number' read *, x if (x<0) print *, 'Negative' if (x>=0) print *, 'Positive' end

29 Εκθετική μορφή a 10 b = aeb Αριθμητικές Εκφράσεις Εκθετική γραφή FORTRAN = = E+2 = 152.3E+1 = 1523E = = E-2 2 = 15230E-1 1 = 1523E+0

30 Επανάληψη do (1) do μετρητής = αρχική τιμή, τελική τιμή, βήμα. εντολές. enddo μετρητής : είναι το όνομα μιας αριθμητικής μεταβλητής που έχουμε ορίσει αρχική τιμή, τελική τιμή, βήμα : ορίζουν το σύνολο των τιμών που θα πάρει ο μετρητής.

31 Παράδειγμα (1) program do_loop IMPLICIT NONE integer i do i = 4, 10, 2 print *, i enddo end Όταν τρέξει ο παραπάνω κώδικας FORTRAN τότε, η εντολή print *, i εκτελείται 4 φορές και στην οθόνη εμφανίζεται:

32 Παράδειγμα (2) program do_loop IMPLICIT NONE integer i do i = 4, 10 print *, i enddo end Αν το βήμα είναι 1 τότε μπορεί να παραληφθεί. Όταν τρέξει ο παραπάνω κώδικας FORTRAN τότε, η εντολή print *, i εκτελείται 7 φορές

33 Επανάληψη do (2) Μπορούμε επίσης να χρησιμοποιήσουμε δυο επαναλήψεις do τη μία μέσα στην άλλη αρκεί να μην έχουν τους ίδιους μετρητές. program do_loops IMPLICIT NONE integer i, j do i = 1, 3 do j = 1, 3 Όταν τρέξει ο κώδικας αυτός τότε, η εντολή print *, i, j εκτελείται λί 9 φορές και στην οθόνη εμφανίζεται: print *, i, j 1 1 enddo 1 2 enddo end

34 Αέναη επανάληψη do. εντολές. if (συνθήκη) exit. εντολές. enddo

35 Παράδειγμα program doloop IMPLICIT NONE integer i i = 0 do i = i + 1 print *, i if (i>5) exit enddo Όταν τρέξει ο κώδικας αυτός τότε στην οθόνη εμφανίζεται: end

36 Διατεταγμένα σύνολα τιμών (arrays) Oι arrays είναι αριθμητικές μεταβλητές που μπορούν να φιλοξενήσουν περισσότερες από μία τιμές. Διανύσματα ή Μονοδιάστατες Arrays Πίνακες ή Διδιάστατες Arrays

37 Διανύσματα ή Μονοδιάστατες Arrays real, allocatable, dimension(:) :: variable_name integer, allocatable, dimension(:) i :: variable_name allocate(variable_name(count)) deallocate(variable_name)

38 Διανύσματα ή Μονοδιάστατες Arrays integer, allocatable, dimension(:) :: x allocate(x(10)) x(2) x(6)

39 Διανύσματα ή Μονοδιάστατες Arrays integer, allocatable, dimension(:) :: x allocate(x(10)) x(2) x(6) x(2)=35 x(6)=50

40 Παράδειγμα program vector_array IMPLICIT NONE integer, allocatable, dimension(:) :: x allocate(x(5)) x(1)= 3 x(2)= 6 x(3)= 4 x(4)= 1 x(5)= 7 print *, x(1) print *, x(2) print *, x(3) print *, x(4) print *, x(5) deallocate(x) end ορίζουμε 5 ακέραιες μεταβλητές με ονόματα: x(1) x(2) x(3) x(4) x(5) Όταν τρέξει ο κώδικας αυτός τότε στην οθόνη εμφανίζεται:

41 Παράδειγμα program vector_array IMPLICIT NONE integer i integer, allocatable, dimension(:) :: x allocate(x(5)) x(1)= 3 x(2)= 6 x(3)= 4 x(4)= 1 x(5)= 7 Όταν τρέξει ο κώδικας αυτός τότε στην οθόνη do i = 1, 5 εμφανίζεται: print *, x(i) enddo 3 6 deallocate(x) 4 1 end 7

42 Πίνακες ή Διδιάστατες Arrays real, allocatable, dimension(:,:) :: variable_name integer, allocatable, dimension(:,:) i :: variable_name allocate(variable_name(count1,count2)) deallocate(variable_name)

43 Πίνακες ή Διδιάστατες Arrays integer, allocatable, dimension(:,:) :: x allocate(x(6,10)) x(1,2) x(4,5)

44 Πίνακες ή Διδιάστατες Arrays integer, allocatable, dimension(:,:) :: x allocate(x(6,10)) x(1,2) x(1,2)=45 x(4,5) x(4,5)=8

45 Παράδειγμα program matrix_array IMPLICIT NONE integer i,j integer, allocatable, dimension(:,:) :: x allocate(x(3,3)) x(1,1)= 3 ; x(1,2)= 6 ; x(1,3)= 4 x(2,1)= 1 ; x(2,2)= 9 ; x(2,3)= 7 x(3,1)= 4 ; x(3,2)= 3 ; x(3,3)= 8 do i = 1, 3 do j = 1, 3 print *, x(i,j) enddo enddo Με το σύμβολο ; μπορούμε να γράψουμε διαφορετικές εντολές στην ίδια γραμμή deallocate(x) end

46 Συνεπαγόμενο do program matrix_arrayarray IMPLICIT NONE integer i,j integer, allocatable, dimension(:,:) :: x allocate(x(3,3)) x(1,1)= 3 ; x(1,2)= 6 ; x(1,3)= 4 x(2,1)= 1 ; x(2,2)= 9 ; x(2,3)= 7 x(3,1)= 4 ; x(3,2)= 3 ; x(3,3)= 8 do i = 1, 3 print *, (x(i,j),j=1,3) enddo Όταν τρέξει ο κώδικας αυτός τότε στην οθόνη deallocate(x) εμφανίζεται: end

47 Παράμετροι real, parameter :: variable_name = value integer, parameter :: variable_name = value program matrix_array IMPLICIT NONE integer i,j integer, parameter :: N = 3 integer, allocatable, dimension(:,:) :: x allocate(x(n, N)) x(1,1)= 3 ; x(1,2)= 6 ; x(1,3)= 4 x(2,1)= 1 ; x(2,2)= 9 ; x(2,3)= 7 x(3,1)= 4 ; x(3,2)= 3 ; x(3,3)= 3) 8 do i = 1, N print *, (x(i,j),j=1,n) enddo deallocate(x) end

48 Επανάληψη do O μετρητής μιας επανάληψης do δεν μπορεί να μεταβάλλεται μέσα στο σώμα της επανάληψης. Για παράδειγμα οι παρακάτω επαναλήψεις do είναι λάθος do i=1,5.. i=32. enddo do i=1,5.. i=i+1. enddo Κάθε do πρέπει να συνδυάζεται με enddo. Για παράδειγμα: Λάθος Σωστό do i=1,5. do j=4,6.. enddo do i=1,5. do j=4,6. enddo. enddo

49 Επανάληψη do Κάθε δομή if πρέπει να αρχίζει και να τελειώνει μέσα στο σώμα μιας επανάληψης do. Για παράδειγμα: Λάθος Σωστό do i=1,5. if(x>35) then.. enddo. endif do i=1,5. if(x>35) then. endif. enddo

50 Παράδειγμα - Διδιάστατες Arrays do i=1,n do j=1,n if(i==j) then A(i,j)=1 else A(i,j)=0 0 endif enddo enddo i=1 i=2 i=3 j=1 A(1,1)=1 j=2 A(1,2)=0 j=3 A(1,3)=0 j=1 A(2,1)=0 j=2 A(2,2)=1 j=3 A(2,3)=0 j=1 A(3,1)=0 j=2 A(3,2)=0 j=3 A(3,3)=

51 Πρότυπο IEEE 754 κινητής υποδιαστολής Single precision emin realmin 2 t realmax (2 2 ) 2 eps e-07 Double precision e-38 emax e realmin 2 realmax (2 2 ) 2 e 52 eps e 16 min e 2251e 308 IEEE Standard (2 2 ) e+38 t max (2 2 ) e 308 Οι αριθμοί που εμφανίζονται στους υπολογισμούς και κατ απόλυτη τιμή είναι μεγαλύτεροι από την τιμή realmax δημιουργούν overflow. Οι αριθμοί αυτοί τίθενται ίσοι με Infinity ή -Infinity ανάλογα με το αν είναι θετικοί οι αρνητικοί αντίστοιχα. Οι αριθμοί που εμφανίζονται στους υπολογισμούς και κατ απόλυτη τιμή είναι μικρότεροι από την τιμή realmin δημιουργούν underflow. Οι αριθμοί αυτοί τίθενται ίσοι με το μηδέν. Ποσότητες που δεν μπορούν να αναπαρασταθούν (π.χ. σε ορισμένα αποτελέσματα μαθηματικών συναρτήσεων) τίθενται ίσοι με NaN (Not-a-Number).

52 Πεδίο τιμών των μεταβλητών real my_variable (single precision) real*8 my_variable (double precision) integer my_variable (single precision) Σημαντικά ψηφία my_variable 6 15 _ Πεδίο τιμών Απαίτηση σε μνήμη (1 byte = 8 bits) bytes = 32 bits (απόλυτες τιμές) (απόλυτες τιμές) integer*8 my_variable _... (double precision) bytes = 64 bits 4 bytes = 32 bits 8 bytes = 64 bits

53 Αποθήκευση των arrays Απαίτηση σε μνήμη real, allocatable, dimension (:) :: my_variable allocate(my_variable(n)) ) real*8, allocatable, dimension (:) :: my_variable allocate(my_variable(n)) real, allocatable, dimension (:,:) :: my_variable allocate(my_variable(n,n)) i (N N)) real*8, allocatable, dimension (:,:) :: my_variable allocate(my_variable(n,n)) N 4 bytes N 8 bytes N N 4 bytes N N 8 bytes Παράδειγμα Αν ορίσουμε τη μεταβλητή my_variable ως real*8, allocatable, dimension (:,:):) :: my_variable allocate(my_variable(10000,10000)) τότε η my_variable έχει απαίτηση σε μνήμη 800 ΜΒ

54 Single (32 bits) vs Double precision (64 bits) Τρέξτε τους παρακάτω κώδικες. Τι αποτέλεσμα περιμένετε για την τιμή της μεταβλητής s και τι τυπώνεται; program single_precision_s implicit none integer i real s 32 bits real x s=0. x=0.1 do i=1,1000 s=s+x enddo print *, s end program double_precision_s implicit none integer i 64 bits real*8 s real x s=0. x=0.1 do i=1,1000 s=s+x enddo print *, s end Διπλής ακρίβειας (Double precision)

55 Machine epsilon (1) program find_machine_precision IMPLICIT NONE real eps real a eps=1. do a=1.+eps if(a==1.) exit eps=eps/2. enddo print *, 2*eps end

56 Machine epsilon (2) program find_machine_precision IMPLICIT NONE Διπλής ακρίβειας (Double precision) real eps real*8 a eps=1. do a=1.+eps if(a==1.) exit eps=eps/2. enddo print *, 2*eps end

57 Ισότητα αριθμών κινητής υποδιαστολής ή how close is close a == b match bit to bit H ερώτηση της ισότητας γεννάει μια άλλη ερώτηση : Τι εννοούμε με τον όρο ισότητα ; Στον προγραμματισμό η ισότητα σημαίνει αρκετά κοντά. O έλεγχος της ισότητας γίνεται ορίζοντας κάποια μικρή απόσταση e ως αρκετά κοντά Όμως: e = είναι κατάλληλο για αριθμούς γύρω από το 1 πολύ μεγάλο για αριθμούς γύρω από το και πολύ μικρό για αριθμούς γύρω από το Equality test Όχι: if (a==b) Ναι: if (abs(a-b)< e)

58 Πράξεις μεταξύ αριθμών κινητής υποδιαστολής ΠΡΟΣΟΧΗ Αφαιρέσεις κοντινών αριθμών Προσθέσεις/Αφαιρέσεις αριθμών με μεγάλη διαφορά FORTRAN single precision

59 Μορφοποίηση (1) program format IMPLICIT NONE integer j j = 32 print *, j print '(I2)', j print '(I4)', j print '(I1)', j end Iw : τύπωσε έναν ακέραιο στις επόμενες w θέσεις

60 Μορφοποίηση (2) program format IMPLICIT NONE integer i,j i = 3 j = 5 print '(I1,I1)', i,j print '(I1,I2)', i,j print '(I1,2X,I1)', i,j print *, i, j end nx: κατά την εκτύπωση αγνόησε n θέσεις (δημιουργεί n κενά)

61 Μορφοποίηση (3) Ιw και Iw.m integer :: a=123, b=-123, c= print '(I5)', a print '(I5.2)', a print '(I5.4)', a print '(I5.5)', a print '(I5)', b print '(I5.2)', b print '(I5.4)', b print '(I5.5)', b * * * * * print '(I5)', c * * * * *

62 Μορφοποίηση (4) program format IMPLICIT NONE integer j j = 3 print *, 'The value of j is',j end print '(A,I2)', 'The value of j is',j A : τύπωσε μια σειρά από χαρακτήρες (character string)

63 Μορφοποίηση (5) rιw integer :: a=3, b=-5, c=128 print '(3I4)', a, b, c

64 Μορφοποίηση (6) rιw program xiasti IMPLICIT NONE integer, parameter :: M = 20 integer, allocatable, dimension(:,:) :: A integer i, j allocate(a(m,m)) A = 0 do i = 1, M do j = 1, M if(i==j) A(i,j) = 1 if((i+j)==(m+1)) A(i,j) = 1 enddo enddo do i = 1, M print '(50I1)',( ), (A(i,j),j=1,M)(, ) enddo deallocate(a) end

65 Μορφοποίηση (7) Fw.d program format IMPLICIT NONE real j j = print *, j print '(F7.4)', j print '(F7.2)', j print '(F7.6)', j end Fw.d : τύπωσε έναν πραγματικό στις επόμενες w θέσεις με d δεκαδικά ψηφία

66 Μορφοποίηση (8) Fw.d real :: a= , b= print '(F10.0)', a print '(F10.2)', a print '(F10.4)', a print '(F10.6)', a print '(F10.7)', a * * * * * * * * * * print '(F10.4)', b print '(F10.5)', b print '(F10.6)', b * * * * * * * * * *

67 Μορφοποίηση (9) rfw.d real :: a=12.34, b=-0.946, c=100. print '(3F6.2)', a, b, c

68 Μορφοποίηση (10) Ew.d και Ew.dEe Εκθετική μορφή Για να τυπωθεί ένας αριθμός στην εκθετική του μορφή μετατρέπεται πρώτα στην κανονικοποιημένη του μορφή s0. xxxxxx 10 sxx όπου s το πρόσημο Για παράδειγμα οι αριθμοί , , μετατρέπονται σε , , Ew.d Ew.dEe

69 Μορφοποίηση (11) real :: pi= print '(E12.5)', pi E print '(E12.3E3)', pi E print '(E12.7E1)', pi E + 1

70 Εκτύπωση σε αρχείο Χρησιμοποιείται όπως και το * της print *, δηλαδή για μορφοποίηση η των αποτελεσμάτων write(*,*), Είναι ένα νούμερο που δηλώνεται με την εντολή open open(unit=1,file='myfile')

71 Παράδειγμα program write IMPLICIT NONE integer i open(unit=1,file='myfile') do i=1,10 write(1,*) i enddo end

72 Διάβασμα από αρχείο Χρησιμοποιείται όπως και το * της read *, δηλαδή για μορφοποίηση η των αποτελεσμάτων read(*,*), Είναι ένα νούμερο που δηλώνεται με την εντολή open open(unit=1,file='myfile')

73 Παράδειγμα program write IMPLICIT NONE integer i,j open(unit=1,file='myfile') do i=1,10 read(1,*) j print *, j enddo end

74 Υποπρογράμματα Ανεξάρτητα προγράμματα Επικοινωνούν με το κυρίως πρόγραμμα μέσω των ορισμάτων τους Κατηγορίες Εσωτερικά (internal) Εξωτερικά (external) Εγγενή (intrinsic) Μπορεί να είναι είτε υπορουτίνες (subroutines) είτε συναρτήσεις (functions)

75 Υποπρογράμματα subroutine name(όρισμα1,, ) IMPLICIT NONE Ορισμοί μεταβλητών Εκτελέσιμες εντολές end subroutine π.χ. real ή real(8) ή integer τύπος function name(όρισμα1,, )) IMPLICIT NONE Ορισμοί μεταβλητών Εκτελέσιμες εντολές end function

76 Κλήση μιας υπορουτίνας (subroutine) program main IMPLICIT NONE Ορισμοί μεταβλητών Εκτελέσιμες εντολές call name(όρισμα1,, ) Εκτελέσιμες εντολές end subroutine name(όρισμα1,, ) IMPLICIT NONE Ορισμοί μεταβλητών Εκτελέσιμες εντολές end subroutine

77 Επικοινωνία μέσω ορισμάτων (1) - subroutines Το a πρέπει να έχει τον ίδιο τύπο (π.χ. real ή real(8) ή integer) με το x Το b πρέπει να έχει τον ίδιο τύπο με το y Το c πρέπει να έχει τον ίδιο τύπο με το z Κατά την είσοδο (κλήση) στην υπορουτίνα: το a θα πάρει την τιμή του x το b θα πάρει την τιμή του y το c θα πάρει την τιμή του z call name(x, y, z) subroutine name(a, b, c) Είσοδος Κατά την έξοδο από την υπορουτίνα: το x θα πάρει την τιμή του a το y θα πάρει την τιμή του b το z θα πάρει την τιμή του c call name(x, y, z) subroutine name(a, b, c) Εξοδος

78 Επικοινωνία μέσω ορισμάτων (2) - subroutines subroutine name(a, b, c) Αποδεκτές κλήσεις call name(x, y, z) call name(a, b, c) call name(a, y, z) Λάθος κλήση call name(x, y)

79 Υπολογισμός του Ν! program factorial_of_n IMPLICIT NONE integer N,i integer(8) factorial print *, 'This program computes the factorial of & &a positive integer number N' print *, 'Give the N' read *, N factorial=1 do i = 1, N factorial = factorial*i enddo print *, 'The factorial of N is' print *, factorial end

80 Υπολογισμός του Ν! με χρήση subroutine program factorial_ of_ N IMPLICIT NONE integer N integer(8) factorial print *, 'This program computes the factorial of & &a positive integer number N' print *, 'Give the N' read *, N call calculate_factorial(n,factorial) print *, 'The factorial of N is' print *, factorial end subroutine calculate_factorial(a,b) IMPLICIT NONE integer a,i integer(8) b b=1 do i = 1, a b = b*i enddo end subroutine

81 Κλήση μιας συνάρτησης (function) program main IMPLICIT NONE Ορισμοί μεταβλητών Εκτελέσιμες εντολές μεταβλητή = name(όρισμα1,, ) Εκτελέσιμες εντολές end τύπος function name(όρισμα1,, ) IMPLICIT NONE Ορισμοί μεταβλητών Εκτελέσιμες εντολές end function

82 Επικοινωνία μέσω ορισμάτων (1) - functions Το a πρέπει να έχει τον ίδιο τύπο με το x Το b πρέπει να έχει τον ίδιο τύπο με το y Το name πρέπει να έχει τον ίδιο τύπο με το z Κατά την είσοδο (κλήση) στη συνάρτηση: το a θα πάρει την τιμή του x το b θα πάρει την τιμή του y z = name(x, y) τύπος function name(a, b) Είσοδος Κατά την έξοδο από τη συνάρτηση: το x θα πάρει την τιμή του a το y θα πάρει την τιμή του b το z θα πάρει την τιμή του name z = name(x, y) τύπος function name(a, b) Εξοδος

83 Υπολογισμός του Ν! με χρήση function program factorial_ of_ N IMPLICIT NONE integer N integer(8) factorial integer(8) calculate_factorial print *, 'This program computes the factorial of & &a positive integer number N' print *, 'Give the N' read *, N factorial=calculate_factorial(n) factorial(n) print *, 'The factorial of N is' print *, factorial end integer(8) function calculate_factorial(a) IMPLICIT NONE integer a,i calculate_factorial=1 do i = 1, a calculate_factorial = calculate_factorial*i enddo end function

84 Σκοπός (ΙΝΤΕΝΤ) των ορισμάτων (1) program main IMPLICIT NONE integer a,b,c a = 5 b = 6 call add(a,b,c) print *, 'The sum of',a,b print *, 'is',c end subroutine add(x,y,z) IMPLICIT NONE integer x,y,z z = x + y end subroutine

85 Σκοπός (ΙΝΤΕΝΤ) των ορισμάτων (2) program main IMPLICIT NONE integer a,b,c a = 5 b = 6 call add(a,b,c) print *, 'The sum of',a,b print *, 'is',c end subroutine add(x,y,z) IMPLICIT NONE integer x,y,z y = x + z end subroutine

86 Σκοπός (ΙΝΤΕΝΤ) των ορισμάτων (3) program main IMPLICIT NONE integer a,b,c a = 5 b = 6 call add(a,b,c) print *, 'The sum of',a,b print *, 'is',c end subroutine add(x,y,z) IMPLICIT NONE integer x,y,z z = x + y x = 100 end subroutine

87 Σκοπός (ΙΝΤΕΝΤ) των ορισμάτων (3) program main IMPLICIT NONE integer a,b,c a = 5 b = 6 call add(a,b,c) print *, 'The sum of',a,b print *, 'is',c end subroutine add(x,y,z) IMPLICIT NONE integer, intent(in) :: x,y integer, intent(out) :: z z = x + y x = 100 end subroutine

88 Τοπικές μεταβλητές program main IMPLICIT NONE integer a,b,c a = 5 b = 6 call add(a,b,c) print *, 'The sum of',a,b print *, 'is',c end subroutine add(x,y,z) IMPLICIT NONE integer, intent(in) :: x,y integer, intent(out) :: z integer a z = x + y a = 100 end subroutine τοπική μεταβλητή

89 Arrays ως ορίσματα program main IMPLICIT NONE integer, allocatable, dimension(:,:) :: A integer N,i,j N=5 allocate(a(n,n)) call identity(n,a) do i = 1, N print *, (A(i,j),j=1,N) enddo deallocate(a) end subroutine identity(n,a) IMPLICIT NONE integer, intent(in) :: N integer, intent(out), dimension(n,n) :: A integer i,j A=0 do i = 1, N do j = 1, N if(i==j) A(i,j)= 1 enddo enddo end subroutine

90 Απλοποίηση των πράξεων με arrays(1) program simple1 IMPLICIT NONE real, allocatable, dimension(:) :: x integer N, i N=10 allocate(x(n)) do i=1,n x(i)=1. enddo... x=1. x(:)=1. x(1:10)=1. x(a:b)=value όπου a, b integers στο διάστημα [1 N] με a<b

91 Απλοποίηση των πράξεων με arrays(2) x(a:b:s)=value a: αρχική τιμή b: τελική τιμή s: βήμα program simple2 IMPLICIT NONE real, allocatable, dimension(:) :: x integer N, i N=10 allocate(x(n)) do i=2,6,2 x(i)=1. enddo x(2:6:2)=1....

92 Απλοποίηση των πράξεων με arrays(3) program simple3 IMPLICIT NONE real, allocatable, dimension(:) :: x, y, z integer N, i N=10 allocate(x(n), y(n), z(n))... z = x + y do i=1,n z(i) = x(i) + y(i) enddo... z(:) = x(:) + y(:) Η εσωτερική συνάρτηση της FORTRAN size(array) επιστρέφει ρφ το μέγεθος μγ της array z(1:size(x)) = x(1:size(x)) + y(1:size(x))

93 Απλοποίηση των πράξεων με arrays(4) Στη FORTRAN oι πράξεις + - * / ** μεταξύ των arrays γίνονται στοιχείο προς στοιχείο : * / ** x x y z x1 y1 x1 y1 x 2 y 2 x2 y 2 x 3 y 3 x3 y 3 x4 y4 x4 y4 x x 5 y5 5 y 5

94 Απλοποίηση των πράξεων με arrays(5) Χρήση εσωτερικών συναρτήσεων (intrinsic functions) Υπολογισμός του αθροίσματος των στοιχείων μιας array s = 0 do i = 1, N s = s + a(i) enddo s = SUM(a) s=0 do i = 1, N do j = 1, N s = s + a(i,j) enddo enddo

95 Απλοποίηση των πράξεων με arrays(6) Χρήση εσωτερικών συναρτήσεων (intrinsic functions) Παράδειγμα Υπολογισμός του αθροίσματος της 2 ης στήλης των στοιχείων μιας διδιάστατης array s=0 do i = 1, N s = s + a(i,2) enddo s = SUM( a(:,2) )

96 Απλοποίηση των πράξεων με arrays(7) Χρήση εσωτερικών συναρτήσεων (intrinsic functions) SIZE(array) Το πλήθος των στοιχείων MAXVAL(array) Η τιμή του μεγαλύτερου στοιχείου MINVAL(array) Η τιμή του μικρότερου στοιχείου SUM(array) Το άθροισμα των στοιχείων PRODUCT(array) Το γινόμενο των στοιχείων MAXLOC(array) Η θέση του μεγαλύτερου στοιχείου MINLOC(array) Η θέση του μικρότερου στοιχείου DOT_PRODUCT(vector_a, vector_b) Το γινόμενο δυο διανυσμάτων MATMUL(matrix_A, matrix_b) Το γινόμενο δυο πινάκων MATMUL(matrix_A, vector_a) To γινόμενο πίνακα με διάνυσμα TRANSPOSE(matrix) Ο ανάστροφος ενός πίνακα vector_a, vector_b: μονοδιάστατες (rank-one) arrays matrix_a, matrix_b, matrix: διδιάστατες arrays

97 Πολλαπλασιασμός πίνακα με πίνακα Έστω A, B, C πίνακες NxN και C=A. B N=3 c11 c12 c13 a11 a12 a13 b11 b12 b13 c21 c22 c 23 a21 a22 a 23 b21 b22 b 23 c31 c32 c 33 a31 a32 a 33 b31 b32 b 33 N c a b ij ik kj k 1 do i=1,n do j=1,n s=0. do k=1,n s=s+a(i,k)*b(k,j) enddo c(i,j)=s enddo enddo c = MATMUL(a,b)

98 Array constructor (1) (/value1,value2,.../) program smoothing IMPLICIT NONE real, allocatable, dimension(:) :: F, Fsmooth integer N,i N=10 allocate(f(n), Fsmooth(N)) F(1)=0. ;F(2)=100.;F(3)=250.;F(4)=290.; F(5)=460. F(6)=500.;F(7)=605.;F(8)=760.;F(9)=830.;F(10)=910. F=(/0.,100.,250.,290.,460.,500.,605.,760.,830.,910./)

99 Array constructor (2) (/ (variable, implied_do_control) /) program array_constructor IMPLICIT NONE real, allocatable, dimension(:) :: F integer N,i N=10 allocate(f(n)) F(1)=10. do i=2,9 F(i)=0. enddo F(N)=100. F=(/ 10.,(0.,i=2,9),100. /)

100 Writing real programs! Global variables INTEGER, PARAMETER :: real8=8 REAL(KIND=real8), PARAMETER :: zero=0.0_real8 REAL(KIND=real8), PARAMETER :: one=1.0_real8 REAL(KIND=real8), PARAMETER :: eps=epsilon(1.0_real8)! Global definitions for GMRES REAL(KIND=real8), ALLOCATABLE, DIMENSION(:,:), SAVE :: hess! Upper Hessenberg matrix REAL(KIND=real8), ALLOCATABLE, DIMENSION(:,:), SAVE :: vm! Krylov subspace basis REAL(KIND=real8), ALLOCATABLE, DIMENSION(:), SAVE :: rs! Right hand side of Hess system REAL(KIND=real8), ALLOCATABLE, DIMENSION(:), SAVE :: c,s! Rotation coefficients INTEGER, SAVE :: outer_iter! counter of GMRES outer itarations INTEGER, SAVE :: inner_iter! counter of GMRES inner iterations INTEGER, SAVE :: gmres_status! check point for the reverse commun REAL(KIND=real8), SAVE :: beta,conv! conv=tol*norm2(rhs)! tol: input user tolerance! beta: norm2(rhs-ax)! Global definitions for DEFLATION REAL(KIND=real8), ALLOCATABLE, DIMENSION(:,:), SAVE :: hess_original! original hess for deflation REAL(KIND=real8), ALLOCATABLE, DIMENSION(:,:), SAVE :: au_defl! stores AU (see Erhel 1996) REAL(KIND=real8), ALLOCATABLE, DIMENSION(:,:), SAVE :: u_defl! stores U (see Erhel 1996) REAL(KIND=real8), ALLOCATABLE, DIMENSION(:,:), SAVE :: t_defl! stores T (see Erhel 1996) LOGICAL, ALLOCATABLE, DIMENSION(:), SAVE :: inner_contris! if allocated by the user then use the! user contributions(array inner_cotris)! for the computation of the local inner products LOGICAL, SAVE :: precond! if true use the preconditioner LOGICAL, SAVE :: update! if true update the preconditioner LOGICAL, SAVE :: adapt_update d t! if true use adaptive approach of u_defl after dim_defl>maxdefld d LOGICAL, SAVE :: use_precond! is false if maxdefl=0 else is always true LOGICAL, SAVE :: harmonic! if true then (Morgan 2000) else (Erhel 1996) for the! computation of the smallest eigenvalue of Hessenberg LOGICAL, SAVE :: rcond_check! if true compute the condition number of Hessenberg LOGICAL, SAVE :: pick_second! if true pick 2 eigenvalues in each outer gmres iteration LOGICAL, SAVE :: mem_check! if true calculate the maximum required memory LOGICAL, SAVE :: print_conv! if true print the convergence history LOGICAL, SAVE :: print_eigs! if true print the approximated eigenvalues LOGICAL, SAVE :: print_cond! if true print the approximated condition number LOGICAL, SAVE :: keep_eigenpairs! if true dim_defl,u_defl,eigen_defl are available to the calling program INTEGER, SAVE :: conv_unit! the UNIT number for printing the convergence histoy INTEGER, SAVE :: eigs_unit! the UNIT number for printing the eigenvalue history INTEGER, SAVE :: cond_unit! the UNIT number for printing the condition number histoy INTEGER, SAVE :: dim_defl! the current dimension of the deflation subspace INTEGER, SAVE :: increase! the number of the new eigenvectors which added to u_defl INTEGER, SAVE :: increaset! increaset copy of increase TYPE compl REAL(KIND=real8) :: r,i INTEGER :: ind END TYPE compl REAL(KIND=real8), SAVE :: largest LOGICAL, SAVE :: was,updatet LOGICAL, SAVE :: reortho TYPE(compl), ALLOCATABLE, DIMENSION(:), SAVE :: eigen_defl! This is the array of eigenvalues returned to user! when keepeigenpairs=.true. INTEGER, SAVE :: MyID,Nprocs! The MPI process ID and number of total processes REAL(KIND=real8), SAVE :: stime_inner,etime_inner,total_inner,stime_com,total_inner_com INTEGER, SAVE :: OS_use! Orthogonalization Scheme for GS (OS_use=1)! MGS (OS_use=2) (Default)! HO (OS_use=3) (Not yet implemeted) CONTAINS SUBROUTINE pgmres(myid_user,nprocs_user,n,maxm,maxiter,maxdefl,tol,rhs,x,vec_out,vec_in,icode, & secondeig,harmoniceig,adapt,condition,reorthog,memcheck, & printconv,convunit,printeigs,eigsunit,printcond,condunit, & keepeigenpairs,os) IMPLICIT NONE INCLUDE 'mpif.h' real programs tend to be large! This subroutine solves the sparse linear system A x = rhs of order n! Dummy Arguments INTEGER, INTENT(IN) :: MyID_user! The MPI process ID

101 Συστάσεις για συγγραφή προγραμμάτων σε Η/Υ (1) Οι συστάσεις ισχύουν για κάθε γλώσσα προγραμματισμού που μπορείτε να χρησιμοποιήσετε. 1. Ψυχολογία πίσω από τον προγραμματισμό Η/Υ Μικρά λάθη (π.χ. λείπει ένα κόμμα, μεταβλητές με λάθος δήλωση) αποτρέπουν τη γρήγορη ανάπτυξη του κώδικα. Εξάσκηση, Υπομονή Είναι γεγονός ότι ο προγραμματισμός Η/Υ είναι δεύτερη φύση για ορισμένα άτομα. Αν ανήκετε σε αυτή την ομάδα, συγχαρητήρια. Αν όχι, μην ανησυχείτε γι αυτό. Απλά μη συγκρίνετε τον εαυτό σας με τους άλλους ανθρώπους. Εξάσκηση Computer Programming Anxiety. Αυτό το άγχος είναι φυσιολογικό.

102 Συστάσεις για συγγραφή προγραμμάτων σε Η/Υ (2) 2. Η σημασία του σχεδιασμού Είναι εξαιρετικά σημαντικό να κατανοήσουμε το πρόβλημα που πρέπει να επιλυθεί. Πρέπει να σκεφτούμε και να σχεδιάσουμε τον κώδικα. Στο τέλος ξεκινάμε τη συγγραφή του κώδικα. Συχνά, κάποιος μπορεί να περάσει ένα σημαντικό χρονικό διάστημα στη συγγραφή κώδικα που δε λύνει το πρόβλημα που του έχει ανατεθεί.

103 Συστάσεις για συγγραφή προγραμμάτων σε Η/Υ (3) 3. Σταδιακή ανάπτυξη κώδικα (incremental code development) Αυτός είναι ο πιο σημαντικός κανόνας του προγραμματισμού ηλεκτρονικών υπολογιστών! Το σημαντικότερο λάθος που μπορείτε να κάνετε είναι να προσπαθήσετε να γράψετε τον κώδικα με τη μία. Σταδιακή ανάπτυξη κώδικα σημαίνει ότι κάθε φορά: προσθέτουμε ένα μικρό κομμάτι κώδικα, ελέγχουμε ότι το πρόγραμμα παράγει τα αναμενόμενα μ αποτελέσματα,, και συνεχίζουμε την ίδια διαδικασία με νέο κομμάτι κώδικα. Για παράδειγμα, εάν το πρόγραμμά σας λειτουργεί, και προσθέσετε δύο γραμμές κώδικα και το πρόγραμμα ρ σταματήσει να λειτουργεί,, μπορείτε να στοιχηματίσετε ότι τα υπεύθυνα μρ μέρη είναι οι δύο γραμμές που μόλις προσθέσατε.

104 Συστάσεις για συγγραφή προγραμμάτων σε Η/Υ (3) 4. Μην κάνετε υποθέσεις Η είσοδος των δεδομένων είναι σωστή! Αυτό συνήθως οδηγεί σε ένα πρόγραμμα που χρησιμοποιεί σκουπίδια για να υπολογίσει σκουπίδια ή διαφορετικά GIGO (Garbage In, Garbage Out). Σιγουρευτείτε ότι τα δεδομένα έχουν διαβάσει σωστά. Όλες οι βιβλιοθήκες λειτουργούν σωστά! Εάν έχετε αμφιβολίες σχετικά με το τι κάνει ένα υποπρόγραμμα ή αν ξέρετε να το χρησιμοποιείτε σωστά,, σταματήσετε(!) () τη συγγραφή του κώδικα. Κοιτάξτε τις οδηγίες χρήσης, γράψετε ένα μικρό πρόγραμμα που ελέγχει τι κάνει το υποπρόγραμμα.

105 Συστάσεις για συγγραφή προγραμμάτων σε Η/Υ (4) 4. Δοκιμή, δοκιμή, δοκιμή... Η δοκιμή είναι μια διαδικασία που μπορεί να είναι κουραστική, αλλά είναι εξαιρετικά σημαντική. Θα πρέπει να ελέγχετε τον κώδικα σας όσο το δυνατόν συχνότερα. Δεν πρέπει να περιμένετε ρμ μχρ μέχρι το τέλος για να δοκιμάσετε τον κώδικά σας. Σε βάθος χρόνου θα σας εξοικονομήσει χρόνο, διότι: θα διαπιστώσετε προβλήματα νωρίς. Αυτό θα απλοποιήσει τη διαδικασία εντοπισμού σφαλμάτων,, θα έχετε εμπιστοσύνη στον κώδικά σας, θα διαπιστώσετε προβλήματα σχεδιασμού νωρίς. ρς

106 Συστάσεις για συγγραφή προγραμμάτων σε Η/Υ (5) 5. Δοκιμή με ένα απλό σύνολο δεδομένων 6. Αναπτύξτε ένα οργανωμένο σύνολο δοκιμών έτσι ώστε να καλύπτουν όσο το δυνατόν περισσότερες περιπτώσεις 7. Σωστή διαχείριση χρόνου 8. Ακολουθήστε συμβάσεις στην ονομασία μεταβλητών και υποπρογραμμάτων calulate_factorial vs sfafrewfevfww 9. Ακολουθήστε το μοντέλο του προληπτικού προγραμματισμού 10. Γράψτε τον κώδικα σαν να πρόκειται να τον ξεχάσετε αύριο! 11. Μην διστάζετε να ανακαλύπτετε λάθη (bugs) στον κώδικά σας 12. Κατανοήστε τι έχετε κάνει και γιατί λειτουργεί ο κώδικας 13. Κρατήστε αντίγραφα παλιότερων εκδόσεων του κώδικά σας

107 Συστάσεις για συγγραφή προγραμμάτων σε Η/Υ (6) Be patient! O προγραμματισμός απαιτεί χρόνο, προσπάθεια και εξάσκηση, με την πάροδο του χρόνου θα είστε σε θέση να αναπτύξετε κώδικα γρήγορα και αποδοτικά.

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

Προγραμματισμός με FORTRAN Συνοπτικός Οδηγός Α. Σπυρόπουλος Α. Μπουντουβής ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΧΗΜΙΚΩΝ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΙΚΟ ΚΕΝΤΡΟ Προγραμματισμός με FORTRAN Συνοπτικός Οδηγός Α Σπυρόπουλος Α Μπουντουβής Αθήνα, 2015 v13_061015 Στον οδηγό αυτό θα χρησιμοποιηθούν

Διαβάστε περισσότερα

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

Προγραμματισμός και Χρήση Ηλεκτρονικών Υπολογιστών - Βασικά Εργαλεία Λογισμικού ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΧΗΜΙΚΩΝ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΙΚΟ ΚΕΝΤΡΟ Προγραμματισμός και Χρήση Ηλεκτρονικών Υπολογιστών - Βασικά Εργαλεία Λογισμικού Μάθημα 2ο Aντώνης Σπυρόπουλος v2_061015 Οροι που

Διαβάστε περισσότερα

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

Προγραμματισμός και Χρήση Ηλεκτρονικών Υπολογιστών - Βασικά Εργαλεία Λογισμικού ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΧΗΜΙΚΩΝ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΙΚΟ ΚΕΝΤΡΟ Προγραμματισμός και Χρήση Ηλεκτρονικών Υπολογιστών - Βασικά Εργαλεία Λογισμικού Μάθημα 9ο Aντώνης Σπυρόπουλος Σφάλματα στρογγυλοποίησης

Διαβάστε περισσότερα

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

Άσκηση 1. Α. Υπολογίστε χωρίς να εκτελέσετε κώδικα FORTRAN τα παρακάτω: Ποιά είναι η τελική τιμή του Z στα παρακάτω κομμάτια κώδικα FORTRAN: Άσκηση 1 Α. Υπολογίστε χωρίς να εκτελέσετε κώδικα FORTRAN τα παρακάτω: Ποιά είναι η τελική τιμή του J στα παρακάτω κομμάτια κώδικα FORTRAN: INTEGER J J = 5 J = J + 1 J = J + 1 INTEGER X, Y, J X = 2 Y =

Διαβάστε περισσότερα

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

Προγραμματισμός και Χρήση Ηλεκτρονικών Υπολογιστών - Βασικά Εργαλεία Λογισμικού ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΧΗΜΙΚΩΝ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΙΚΟ ΚΕΝΤΡΟ Προγραμματισμός και Χρήση Ηλεκτρονικών Υπολογιστών - Βασικά Εργαλεία Λογισμικού Μάθημα 2ο Μεταβλητές Μεταβλητή ονομάζεται ένα μέγεθος

Διαβάστε περισσότερα

Δύο είναι οι κύριες αιτίες που μπορούμε να πάρουμε από τον υπολογιστή λανθασμένα αποτελέσματα εξαιτίας των σφαλμάτων στρογγυλοποίησης:

Δύο είναι οι κύριες αιτίες που μπορούμε να πάρουμε από τον υπολογιστή λανθασμένα αποτελέσματα εξαιτίας των σφαλμάτων στρογγυλοποίησης: Ορολογία bit (binary digit): δυαδικό ψηφίο. Τα δυαδικά ψηφία είναι το 0 και το 1 1 byte = 8 bits word: η θεμελιώδης μονάδα σύμφωνα με την οποία εκπροσωπούνται οι πληροφορίες στον υπολογιστή. Αποτελείται

Διαβάστε περισσότερα

Pascal, απλοί τύποι, τελεστές και εκφράσεις

Pascal, απλοί τύποι, τελεστές και εκφράσεις Pascal, απλοί τύποι, τελεστές και εκφράσεις 15 Νοεμβρίου 2011 1 Γενικά Στην standard Pascal ορίζονται τέσσερις βασικοί τύποι μεταβλητών: integer: Παριστάνει ακέραιους αριθμούς από το -32768 μέχρι και το

Διαβάστε περισσότερα

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

Δομή προγράμματος στη Fortran Δομή προγράμματος στη Fortran Ένα πρόγραμμα γραμμένο σε Fortran αποτελείται από: Την επικεφαλίδα του προγράμματος. Το τμήμα των δηλώσεων. Το τμήμα των προτάσεων (εντολών). Το τμήμα των υποπρογραμμάτων.

Διαβάστε περισσότερα

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

Άσκηση 1. O υπολογισμός να γίνει: α) με την τεχνική αθροίσματος σε μεταβλητή Άσκηση 1 Να γραφεί κώδικας FORTRAN που θα υπολογίζει το άθροισμα όλων των στοιχείων ενός διανύσματος a (μονοδιάστατη array) διάστασης Ν. Τα στοιχεία του διανύσματος a δίνονται από τη σχέση: a(i) = 2*i

Διαβάστε περισσότερα

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

Εισαγωγή στη Fortran. Μάθημα 1 ο. Ελευθερία Λιούκα Εισαγωγή στη Fortran Μάθημα 1 ο Ελευθερία Λιούκα liouka.eleftheria@gmail.com Περιεχόμενα Ιστορία της Fortran Βασικές γνώσεις Fortran Επιτρεπτοί χαρακτήρες Μορφή προγράμματος Τύποι μεταβλητών Πράξεις και

Διαβάστε περισσότερα

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

FORTRAN & Αντικειμενοστραφής Προγραμματισμός ΣΝΜΜ 2017 FORTRAN & Αντικειμενοστραφής Προγραμματισμός ΣΝΜΜ 2017 Μ4. Συναρτήσεις, Υπορουτίνες, Ενότητες - Ασκήσεις Γεώργιος Παπαλάμπρου Επικ. Καθηγητής ΕΜΠ Εργαστήριο Ναυτικής Μηχανολογίας george.papalambrou@lme.ntua.gr

Διαβάστε περισσότερα

ΠΑΝΕΠΙΣΤΗΜΙΟ AΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ. Εισαγωγή στη Python

ΠΑΝΕΠΙΣΤΗΜΙΟ AΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ. Εισαγωγή στη Python ΠΑΝΕΠΙΣΤΗΜΙΟ AΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ ΠΛΗΡΟΦΟΡΙΚΗ ΤΕΧΝΟΛΟΓΙΑ ΚΑΙ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Εισαγωγή στη Python Νικόλαος Ζ. Ζάχαρης Αναπληρωτής

Διαβάστε περισσότερα

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

Δομή προγράμματος στη Fortran Δομή προγράμματος στη Fortran Ένα πρόγραμμα γραμμένο σε Fortran αποτελείται από: Την επικεφαλίδα του προγράμματος. Το τμήμα των δηλώσεων. Το τμήμα των προτάσεων (εντολών). Το τμήμα των υποπρογραμμάτων.

Διαβάστε περισσότερα

Υπο-προγράμματα στη Fortran

Υπο-προγράμματα στη Fortran ΦΥΣ 145 - Διαλ.05 1 Υπο-προγράμματα στη Fortran q Mέχρι τώρα τα προβλήματα και τα προγράμματα που έχουμε δεί ήταν αρκετά απλά και επομένως ένα και μόνο πρόγραμμα ήταν αρκετό για να τα λύσουμε q Όταν τα

Διαβάστε περισσότερα

8 FORTRAN 77/90/95/2003

8 FORTRAN 77/90/95/2003 ΠΕΡΙΕΧΟΜΕΝΑ ΚΕΦΑΛΑΙΟ 1: Εισαγωγή... 17 1.1. Ανασκόπηση της ιστορίας των υπολογιστών... 18 1.2. Πληροφορία και δεδομένα... 24 1.3. Ο Υπολογιστής... 26 1.4. Δομή και λειτουργία του υπολογιστή... 28 1.5.

Διαβάστε περισσότερα

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

Εισαγωγή στη Fortran. Μάθημα 3 ο. Ελευθερία Λιούκα Εισαγωγή στη Fortran Μάθημα 3 ο Ελευθερία Λιούκα liouka.eleftheria@gmail.com Περιεχόμενα Loops External Functions Subroutines Arrays Common mistakes Loops Ανάγκη να εκτελέσουμε τις ίδιες εντολές πολλές

Διαβάστε περισσότερα

Εισαγωγή στην Αριθμητική Ανάλυση

Εισαγωγή στην Αριθμητική Ανάλυση Εισαγωγή στην Αριθμητική Ανάλυση Εισαγωγή στη MATLAB ΔΙΔΑΣΚΩΝ: ΓΕΩΡΓΙΟΣ ΑΚΡΙΒΗΣ ΒΟΗΘΟΙ: ΔΗΜΗΤΡΙΑΔΗΣ ΣΩΚΡΑΤΗΣ, ΣΚΟΡΔΑ ΕΛΕΝΗ E-MAIL: SDIMITRIADIS@CS.UOI.GR, ESKORDA@CS.UOI.GR Τι είναι Matlab Είναι ένα περιβάλλον

Διαβάστε περισσότερα

ΥΠΟΛΟΓΙΣΤΕΣ Ι. Τύποι δεδομένων ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΠΡΑΞΕΙΣ. Παράδειγμα #1. Πράξεις μεταξύ ακεραίων αριθμών

ΥΠΟΛΟΓΙΣΤΕΣ Ι. Τύποι δεδομένων ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΠΡΑΞΕΙΣ. Παράδειγμα #1. Πράξεις μεταξύ ακεραίων αριθμών ΥΠΟΛΟΓΙΣΤΕΣ Ι ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΠΡΑΞΕΙΣ Τύποι δεδομένων Οι παρακάτω τύποι δεδομένων υποστηρίζονται από τη γλώσσα προγραμματισμού Fortran: 1) Ακέραιοι αριθμοί (INTEGER). 2) Πραγματικοί αριθμοί απλής ακρίβειας

Διαβάστε περισσότερα

Στόχοι και αντικείμενο ενότητας. Εκφράσεις. Η έννοια του τελεστή. #2.. Εισαγωγή στη C (Μέρος Δεύτερο) Η έννοια του Τελεστή

Στόχοι και αντικείμενο ενότητας. Εκφράσεις. Η έννοια του τελεστή. #2.. Εισαγωγή στη C (Μέρος Δεύτερο) Η έννοια του Τελεστή Στόχοι και αντικείμενο ενότητας Η έννοια του Τελεστή #2.. Εισαγωγή στη C (Μέρος Δεύτερο) Εκφράσεις Προτεραιότητα Προσεταιριστικότητα Χρήση παρενθέσεων Μετατροπές Τύπων Υπονοούμενες και ρητές μετατροπές

Διαβάστε περισσότερα

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

ΦΥΣ-151. Ηλεκτρονικοί Υπολογιστές Ι (FORTRAN 77) (Άνοιξη 2004) 1 ΦΥΣ-151. Ηλεκτρονικοί Υπολογιστές Ι (FORTRAN 77) (Άνοιξη 2004) ιάλεξη 1 1.1 ΕΙΣΑΓΩΓΗ ΣΤΗ FORTRAN 77 Ένα πρόγραµµα σε οποιαδήποτε γλώσσα προγραµµατισµού δεν τίποτα άλλο από µια σειρά εντολών που πρέπει

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Πίνακες. FORTRAN και Αντικειμενοστραφής Προγραμματισμός Πίνακες (i) Δομημένη μεταβλητή: αποθηκεύει μια συλλογή από τιμές δεδομένων Πίνακας (array): δομημένη μεταβλητή που αποθηκεύει πολλές τιμές του ίδιου τύπου INTEGER:: pinakas(100)ή INTEGER, DIMENSION(100)::pinakas

Διαβάστε περισσότερα

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

ΦΥΣ-151. Ηλεκτρονικοί Υπολογιστές Ι (FORTRAN 77) (Άνοιξη 2004) 8 ΦΥΣ-151. Ηλεκτρονικοί Υπολογιστές Ι (FORTRAN 77) (Άνοιξη 2004) ιάλεξη 2 2.1 ΜΕΤΑΒΛΗΤΕΣ (ΜΕΡΟΣ Β) Στην προηγούµενη διάλεξη µάθαµε ότι µπορούµε να χρησιµοποιούµε τη ρητή ή την αυτονόητη δήλωση µεταβλητών

Διαβάστε περισσότερα

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ 23 ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Μάθημα 2ο Τμήμα Διοίκησης Επιχειρήσεων α εξάμηνο Β. Φερεντίνος I/O 24 Βασική βιβλιοθήκη συναρτήσεων εισόδου/εξόδου #include Η συνάρτηση εξόδου printf printf("συμβολοσειρά

Διαβάστε περισσότερα

ΒΑΣΙΚΟΙ ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ

ΒΑΣΙΚΟΙ ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ Η ΓΛΩΣΣΑ PASCAL ΒΑΣΙΚΟΙ ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ Απλοί ή στοιχειώδης Τ.Δ. Ακέραιος τύπος Πραγματικός τύπος Λογικός τύπος Χαρακτήρας Σύνθετοι Τ.Δ. Αλφαριθμητικός 1. Ακέραιος (integer) Εύρος: -32768 έως 32767 Δήλωση

Διαβάστε περισσότερα

Σύντομες εισαγωγικές σημειώσεις για την. Matlab

Σύντομες εισαγωγικές σημειώσεις για την. Matlab Σύντομες εισαγωγικές σημειώσεις για την Matlab Δήλωση Μεταβλητών Για να εισάγει κανείς δεδομένα στη Matlab υπάρχουν πολλοί τρόποι. Ο πιο απλός είναι στη γραμμή εντολών να εισάγουμε αυτό που θέλουμε και

Διαβάστε περισσότερα

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

FORTRAN και Αντικειμενοστραφής Προγραμματισμός FORTRAN και Αντικειμενοστραφής Προγραμματισμός Παραδόσεις Μαθήματος 2016 Δρ Γ Παπαλάμπρου Επίκουρος Καθηγητής ΕΜΠ georgepapalambrou@lmentuagr Εργαστήριο Ναυτικής Μηχανολογίας (Κτίριο Λ) Σχολή Ναυπηγών

Διαβάστε περισσότερα

ΥΠΟΛΟΓΙΣΤΕΣ Ι. Τι χρειάζεται η εντολή DO ; ΕΠΑΝΑΛΗΨΕΙΣ ΕΝΤΟΛΗ DO. Όταν απαιτείται να εκτελεστεί πολλές φορές το ίδιο τμήμα ενός προγράμματος.

ΥΠΟΛΟΓΙΣΤΕΣ Ι. Τι χρειάζεται η εντολή DO ; ΕΠΑΝΑΛΗΨΕΙΣ ΕΝΤΟΛΗ DO. Όταν απαιτείται να εκτελεστεί πολλές φορές το ίδιο τμήμα ενός προγράμματος. ΥΠΟΛΟΓΙΣΤΕΣ Ι Τι χρειάζεται η εντολή DO ; ΕΠΑΝΑΛΗΨΕΙΣ ΕΝΤΟΛΗ DO Όταν απαιτείται να εκτελεστεί πολλές φορές το ίδιο τμήμα ενός προγράμματος. Τετριμμένο παράδειγμα: Κατασκευάστε πρόγραμμα που θα εμφανίζει

Διαβάστε περισσότερα

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

ΕΠΛ031 - Εισαγωγή στον Προγραμματισμό Επικοινωνία Προγράμματος Περιβάλλοντος ΕΠΛ031 Εισαγωγή στον Προγραμματισμό Επικοινωνία Προγράμματος Περιβάλλοντος Λογικές Μονάδες Μεταφορά εδομένων Μορφοποίηση εδομένων Νέαρχος Πασπαλλής Επισκέπτης Ακαδημαϊκός

Διαβάστε περισσότερα

ΥΠΟΛΟΓΙΣΤΕΣ ΙΙ. Τύποι δεδομένων ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ ΠΡΑΞΕΙΣ ΜΕΤΑΒΛΗΤΕΣ. Ακέραιοι αριθμοί (int) Πράξεις μεταξύ ακεραίων αριθμών

ΥΠΟΛΟΓΙΣΤΕΣ ΙΙ. Τύποι δεδομένων ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ ΠΡΑΞΕΙΣ ΜΕΤΑΒΛΗΤΕΣ. Ακέραιοι αριθμοί (int) Πράξεις μεταξύ ακεραίων αριθμών ΥΠΟΛΟΓΙΣΤΕΣ ΙΙ ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ ΠΡΑΞΕΙΣ ΜΕΤΑΒΛΗΤΕΣ 1 Τύποι δεδομένων Η γλώσσα προγραμματισμού C++ υποστηρίζει τους παρακάτω τύπους δεδομένων: 1) Ακέραιοι αριθμοί (int). 2) Πραγματικοί αριθμοί διπλής ακρίβειας

Διαβάστε περισσότερα

Δυναμικές Ιστοσελίδες Εισαγωγή στην Javascript για προγραμματισμό στην πλευρά του client

Δυναμικές Ιστοσελίδες Εισαγωγή στην Javascript για προγραμματισμό στην πλευρά του client ΕΣΔ 516 Τεχνολογίες Διαδικτύου Δυναμικές Ιστοσελίδες Εισαγωγή στην Javascript για προγραμματισμό στην πλευρά του client Περιεχόμενα Περιεχόμενα Javascript και HTML Βασική σύνταξη Μεταβλητές Τελεστές Συναρτήσεις

Διαβάστε περισσότερα

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

Υπολογιστές Ι. Άδειες Χρήσης. Τύποι δεδομένων. Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Άδειες Χρήσης Υπολογιστές Ι Τύποι δεδομένων Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες

Διαβάστε περισσότερα

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

ΦΥΣ-151. Ηλεκτρονικοί Υπολογιστές Ι (FORTRAN 77) (Άνοιξη 2004) 32 ΦΥΣ-151. Ηλεκτρονικοί Υπολογιστές Ι (FORTRAN 77) (Άνοιξη 2004) ιάλεξη 5 5.1 Ι ΙΑΣΤΑΤΟΙ ΠΙΝΑΚΕΣ Εκτός από τους µονοδιάστατους πίνακες ή διανυσµατα που συζητήσαµε στην παράγραφο 4.1, µπορούµε να αποθηκεύσουµε

Διαβάστε περισσότερα

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

Εισαγωγή στη χρήση Η/Υ. Αναγνωστοπούλου Χριστίνα Λέκτορας Αναγνωστοπούλου Χριστίνα Λέκτορας FORmulaTRANslation Εγκατάσταση της Fortran g95 http://www.g95.org http://ftp.g95.org/g95-mingw.exe Save file as C:\fortran-g95 Κειμενογράφοι Notepad (Windows) Programmer

Διαβάστε περισσότερα

4. Επιλογή και Επανάληψη

4. Επιλογή και Επανάληψη Σελίδα 53 4. Επιλογή και Επανάληψη 4.1 Η Εντολή Επιλογής if.. then Η εντολή If.. Then.. χρησιμοποιείται για την λήψη λογικών αποφάσεων σε ένα πρόγραμμα. Η εντολή αυτή έχει διάφορες μορφές σύνταξης οι οποίες

Διαβάστε περισσότερα

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

Εισαγωγή στον Προγραμματισμό Η/Υ για Χημικούς Μηχανικούς για Χημικούς Μηχανικούς Παρουσίαση Διαλέξεων: 6. Πίνακες Καθηγητής Δημήτρης Ματαράς Copyright 2014 by Prof. D. S. Mataras (mataras@upatras.gr). This work is made available under the terms of the Creative

Διαβάστε περισσότερα

Παρακάτω δίνεται o σκελετός προγράμματος σε γλώσσα C. Σχολιάστε κάθε γραμμή του κώδικα.

Παρακάτω δίνεται o σκελετός προγράμματος σε γλώσσα C. Σχολιάστε κάθε γραμμή του κώδικα. Ερωτήσεις προόδου C Παρακάτω δίνεται o σκελετός προγράμματος σε γλώσσα C. Σχολιάστε κάθε γραμμή του κώδικα. #include // δίνει οδηγία στον compiler να // συμπεριλάβει την βιβλιοθήκη stdio int

Διαβάστε περισσότερα

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

FORTRAN & Αντικειμενοστραφής Προγραμματισμός ΣΝΜΜ 2017 FORTRAN & Αντικειμενοστραφής Προγραμματισμός ΣΝΜΜ 2017 M7 Δομές δεδομένων: Πίνακες - Ασκήσεις Γεώργιος Παπαλάμπρου Επικ. Καθηγητής ΕΜΠ Εργαστήριο Ναυτικής Μηχανολογίας george.papalambrou@lme.ntua.gr ΕΜΠ/ΣΝΜΜ

Διαβάστε περισσότερα

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

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό Πίνακες Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2012-2013 Πίνακες Πολλές φορές θέλουμε να κρατήσουμε στην μνήμη πολλά αντικείμενα

Διαβάστε περισσότερα

Αναφορά (1/2) Μπορούμε να ορίσουμε μια άλλη, ισοδύναμη αλλά ίσως πιο σύντομη, ονομασία για ποσότητα (μεταβλητή, σταθερή, συνάρτηση, κλπ.

Αναφορά (1/2) Μπορούμε να ορίσουμε μια άλλη, ισοδύναμη αλλά ίσως πιο σύντομη, ονομασία για ποσότητα (μεταβλητή, σταθερή, συνάρτηση, κλπ. ΤΡΙΤΗ ΔΙΑΛΕΞΗ Αναφορά (1/2) Μπορούμε να ορίσουμε μια άλλη, ισοδύναμη αλλά ίσως πιο σύντομη, ονομασία για ποσότητα (μεταβλητή, σταθερή, συνάρτηση, κλπ.): Σύνταξη τύπος όνομαα; τύπος όνομαβ{όνομαα}; όνομαβ

Διαβάστε περισσότερα

Δύο είναι οι κύριες αιτίες που μπορούμε να πάρουμε από τον υπολογιστή λανθασμένα αποτελέσματα εξαιτίας των σφαλμάτων στρογγυλοποίησης:

Δύο είναι οι κύριες αιτίες που μπορούμε να πάρουμε από τον υπολογιστή λανθασμένα αποτελέσματα εξαιτίας των σφαλμάτων στρογγυλοποίησης: Ορολογία bit (binary digit): δυαδικό ψηφίο. Τα δυαδικά ψηφία είναι το 0 και το 1 1 byte = 8 bits word: η θεμελιώδης μονάδα σύμφωνα με την οποία εκπροσωπούνται οι πληροφορίες στον υπολογιστή. Αποτελείται

Διαβάστε περισσότερα

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

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό Συναρτήσεις Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2012-2013 Συναρτήσεις Ως τώρα γράφαμε όλα τα προγράμματα μας μέσα στην main..1

Διαβάστε περισσότερα

Διαδικασιακός Προγραμματισμός

Διαδικασιακός Προγραμματισμός Τμήμα ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ Διαδικασιακός Προγραμματισμός Διάλεξη 2 η Τύποι Δεδομένων Δήλωση Μεταβλητών Έξοδος Δεδομένων Οι διαλέξεις βασίζονται στο βιβλίο των Τσελίκη και Τσελίκα

Διαβάστε περισσότερα

Διάλεξη 3η: Τύποι Μεταβλητών, Τελεστές, Είσοδος/Έξοδος

Διάλεξη 3η: Τύποι Μεταβλητών, Τελεστές, Είσοδος/Έξοδος Διάλεξη 3η: Τύποι Μεταβλητών, Τελεστές, Είσοδος/Έξοδος Τμήμα Επιστήμης Υπολογιστών, Πανεπιστήμιο Κρήτης Εισαγωγή στην Επιστήμη Υπολογιστών Βασίζεται σε διαφάνειες του Κ Παναγιωτάκη Πρατικάκης (CSD) Μεταβλητές,

Διαβάστε περισσότερα

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

Oι εντολές COMMON και PARAMETER ΦΥΣ 145 - Διαλ.06 1 Oι εντολές COMMON και PARAMETER q Oι εντολές αυτές είναι μή εκτελέσιμες και δεν είναι απαραίτητες σε διάφορα προγράμματα. q Η ανάγκη τους όμως παρουσιάζεται σε μεγάλα και πολύπλοκα

Διαβάστε περισσότερα

ΕΙΣΑΓΩΓΗ ΣΤΗΝ FORTRAN 77

ΕΙΣΑΓΩΓΗ ΣΤΗΝ FORTRAN 77 ΣΗΜΕIΩΣΕΙΣ ΕΙΣΑΓΩΓΗ ΣΤΗΝ FORTRAN 77 Ν. ΣΤΕΡΓΙΟΥΛΑΣ ΤΜΗΜΑ ΦΥΣΙΚΗΣ Α.Π.Θ. Μάρτιος 2012 ΕΓΚΑΤΑΣΤΑΣΗ Εγκαθιστούμε τον μεταγλωττιστή από το αρχείο http://www.lepsch.com/downloads/force209g77setup.exe Δημιουργούμε

Διαβάστε περισσότερα

Χρησιμοποιείται για να αποφασίσει το πρόγραμμα αν θα κάνει κάτι σε ένα σημείο της εκτέλεσής του, εξετάζοντας αν ισχύει ή όχι μια συνθήκη.

Χρησιμοποιείται για να αποφασίσει το πρόγραμμα αν θα κάνει κάτι σε ένα σημείο της εκτέλεσής του, εξετάζοντας αν ισχύει ή όχι μια συνθήκη. Εργαστήριο 4: 4.1 Η Δομή Ελέγχου if Χρησιμοποιείται για να αποφασίσει το πρόγραμμα αν θα κάνει κάτι σε ένα σημείο της εκτέλεσής του, εξετάζοντας αν ισχύει ή όχι μια συνθήκη. Γενική Μορφή: Παρατηρήσεις:

Διαβάστε περισσότερα

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

FORTRAN & Αντικειμενοστραφής Προγραμματισμός ΣΝΜΜ 2016 FORTRAN & Αντικειμενοστραφής Προγραμματισμός ΣΝΜΜ 2016 M7 Δομές δεδομένων: Πίνακες Δρ. Γεώργιος Παπαλάμπρου Επικ. Καθηγητής ΕΜΠ Εργαστήριο Ναυτικής Μηχανολογίας george.papalambrou@lme.ntua.gr ΕΜΠ/ΣΝΜΜ

Διαβάστε περισσότερα

Σκοπός. Αλγεβρικοί και Λογικοί Υπολογισμοί στη PASCAL

Σκοπός. Αλγεβρικοί και Λογικοί Υπολογισμοί στη PASCAL Αλγεβρικοί και Λογικοί Υπολογισμοί στη PASCAL Δυνατότητα ανάπτυξης, μεταγλώττισης και εκτέλεσης προγραμμάτων στη PASCAL. Κατανόηση της σύνταξης των προτάσεων της PASCAL. Κατανόηση της εντολής εξόδου για

Διαβάστε περισσότερα

Γραφικά υπολογιστών Εργαστήριο 1 Εισαγωγή στην Python

Γραφικά υπολογιστών Εργαστήριο 1 Εισαγωγή στην Python Γραφικά υπολογιστών Εργαστήριο 1 Εισαγωγή στην Python Σκοπός της 1ης άσκησης είναι η εξοικείωση με τη γλώσσα προγραμματισμού Python, την οποία και θα χρησιμοποιήσουμε και στις υπόλοιπες εργαστηριακές ασκήσεις.

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ 8 Η ΓΛΩΣΣΑ PASCAL

ΚΕΦΑΛΑΙΟ 8 Η ΓΛΩΣΣΑ PASCAL 8.1. Εισαγωγή ΚΕΦΑΛΑΙΟ 8 Η ΓΛΩΣΣΑ PACAL Πως προέκυψε η γλώσσα προγραμματισμού Pascal και ποια είναι τα γενικά της χαρακτηριστικά; Σχεδιάστηκε από τον Ελβετό επιστήμονα της Πληροφορικής Nicklaus Wirth to

Διαβάστε περισσότερα

Λειτουργικά. Συστήματα Ι. Φ ρ ο ν τ ι σ τ ή ρ ι ο. Αριστείδης Ηλίας. Εργαστήριο Ηλεκτρονικών Υπολογιστών

Λειτουργικά. Συστήματα Ι. Φ ρ ο ν τ ι σ τ ή ρ ι ο. Αριστείδης Ηλίας. Εργαστήριο Ηλεκτρονικών Υπολογιστών Λειτουργικά Αριστείδης Ηλίας Συστήματα Ι Φ ρ ο ν τ ι σ τ ή ρ ι ο Shell Scripting Εισαγωγή Ένα shell script είναι μια λίστα εντολών που εκτελούνται ακολουθιακά Εκτελούνται ανάλογα με το κέλυφος και για

Διαβάστε περισσότερα

Προγραμματισμός Η/Υ. Ενότητα 2β: Εισαγωγή στη C (Μέρος Δεύτερο)

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

Διαβάστε περισσότερα

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

Προγραμματισμός και Χρήση Ηλεκτρονικών Υπολογιστών - Βασικά Εργαλεία Λογισμικού ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΧΗΜΙΚΩΝ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΙΚΟ ΚΕΝΤΡΟ Προγραμματισμός και Χρήση Ηλεκτρονικών Υπολογιστών - Βασικά Εργαλεία Λογισμικού Μάθημα 5ο Aντώνης Σπυρόπουλος Πράξεις μεταξύ των

Διαβάστε περισσότερα

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

ΥΠΟΛΟΓΙΣΤΕΣ ΙI. Άδειες Χρήσης. Τύποι δεδομένων, μεταβλητές, πράξεις. Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Άδειες Χρήσης ΥΠΟΛΟΓΙΣΤΕΣ ΙI Τύποι δεδομένων, μεταβλητές, πράξεις Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης Το παρόν εκπαιδευτικό

Διαβάστε περισσότερα

Εισαγωγή στη γλώσσα προγραμματισμού C++

Εισαγωγή στη γλώσσα προγραμματισμού C++ Εισαγωγή στη γλώσσα προγραμματισμού C++ Περιβάλλον Εργασίας 2 Περιβάλλον Εργασίας 1. Χρήση απλού κειμενογράφου και Μεταγλωττιστή 2. Ολοκληρωμένα Περιβάλλοντα Εργασίας (Integrated Development Environments)

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Είδη εντολών. Απλές εντολές. Εντολές ελέγχου. Εκτελούν κάποια ενέργεια. Ορίζουν τον τρόπο με τον οποίο εκτελούνται άλλες εντολές

Είδη εντολών. Απλές εντολές. Εντολές ελέγχου. Εκτελούν κάποια ενέργεια. Ορίζουν τον τρόπο με τον οποίο εκτελούνται άλλες εντολές Μορφές Εντολών Είδη εντολών Απλές εντολές Εκτελούν κάποια ενέργεια Εντολές ελέγχου Ορίζουν τον τρόπο με τον οποίο εκτελούνται άλλες εντολές Εντολές και παραστάσεις Μιαεντολήείναιμιαπαράστασηπου ακολουθείται

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Σημειώσεις του εργαστηριακού μαθήματος Πληροφορική ΙΙ. Εισαγωγή στην γλώσσα προγραμματισμού

Σημειώσεις του εργαστηριακού μαθήματος Πληροφορική ΙΙ. Εισαγωγή στην γλώσσα προγραμματισμού Σημειώσεις του εργαστηριακού μαθήματος Πληροφορική ΙΙ Εισαγωγή στην γλώσσα προγραμματισμού Ακαδημαϊκό έτος 2016-2017, Εαρινό εξάμηνο Οι σημειώσεις βασίζονται στα συγγράμματα: A byte of Python (ελληνική

Διαβάστε περισσότερα

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

Κεφάλαιο 5ο: Εντολές Επανάληψης Χρήστος Τσαγγάρης ΕΕ ΙΠ Τµήµατος Μαθηµατικών, Πανεπιστηµίου Αιγαίου Κεφάλαιο 5ο: Εντολές Επανάληψης Η διαδικασία της επανάληψης είναι ιδιαίτερη συχνή, αφού πλήθος προβληµάτων µπορούν να επιλυθούν µε κατάλληλες

Διαβάστε περισσότερα

Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL)

Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL) Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL) (PASCAL )Βασικά στοιχεία Αναγνωριστικά (Identifiers) Τα αναγνωριστικά είναι ονόματα με τα οποία μπορούμε να αναφερόμαστε σε αποθηκευμένες

Διαβάστε περισσότερα

Υπολογισμός - Εντολές Επανάληψης

Υπολογισμός - Εντολές Επανάληψης Προγραμματισμός Η/Υ Ι Υπολογισμός - Εντολές Επανάληψης ΕΛΕΥΘΕΡΙΟΣ ΚΟΣΜΑΣ ΕΑΡΙΝΟ ΕΞΑΜΗΝΟ 2018-2019 ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ Τ.Ε. 1 Περίληψη Σήμερα... θα συνεχίσουμε τη συζήτησή μας για τα βασικά στοιχεία

Διαβάστε περισσότερα

Εργαστήρια Αριθμητικής Ανάλυσης Ι. 1 ο Εργαστήριο. Εισαγωγή στο Matlab

Εργαστήρια Αριθμητικής Ανάλυσης Ι. 1 ο Εργαστήριο. Εισαγωγή στο Matlab Εργαστήρια Αριθμητικής Ανάλυσης Ι 1 ο Εργαστήριο Εισαγωγή στο Matlab 2017 Εισαγωγή Στα εργαστήρια θα ασχοληθούμε με την υλοποίηση των αριθμητικών μεθόδων που βλέπουμε στο θεωρητικό μέρος του μαθήματος,

Διαβάστε περισσότερα

1. Κατασκευάστε ένα διάνυσμα με στοιχεία τους ζυγούς αριθμούς μεταξύ του 31 και 75

1. Κατασκευάστε ένα διάνυσμα με στοιχεία τους ζυγούς αριθμούς μεταξύ του 31 και 75 1. Κατασκευάστε ένα διάνυσμα με στοιχεία τους ζυγούς αριθμούς μεταξύ του 31 και 75 2. Έστω x = [2 5 1 6] α. Προσθέστε το 16 σε κάθε στοιχείο β. Προσθέστε το 3 σε κάθε στοιχείο που βρίσκεται σε μονή θέση.

Διαβάστε περισσότερα

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

Fortran και Αντικειμενοστραφής προγραμματισμός. Fortran και Αντικειμενοστραφής προγραμματισμός www.corelab.ntua.gr/courses/fortran_naval/naval Διδάσκοντες: Άρης Παγουρτζής (pagour@cs.ntua.gr) (Επίκουρος Καθηγητής ΣΗΜΜΥ ) Δώρα Σούλιου (dsouliou@mail.ntua.gr)

Διαβάστε περισσότερα

Η γλώσσα προγραμματισμού C

Η γλώσσα προγραμματισμού C Η γλώσσα προγραμματισμού C Εισαγωγή στη C Λίγα λόγια για την C Γλώσσα προγραμματισμού υψηλού επιπέδου. Σχεδιάστηκε και υλοποιήθηκε από τον Dennis Richie στις αρχές της δεκαετίας του 1970 (Bell Labs). Η

Διαβάστε περισσότερα

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

bits and bytes q Ο υπολογιστής χρησιμοποιεί τη κύρια μνήμη για αποθήκευση δεδομένων bits and bytes ΦΥΣ 145 - Διαλ.02 1 q Ο υπολογιστής χρησιμοποιεί τη κύρια μνήμη για αποθήκευση δεδομένων q Η μνήμη χωρίζεται σε words και κάθε word περιέχει τμήμα πληροφορίας q Ο αριθμός των words σε μια

Διαβάστε περισσότερα

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

Σχολικό Βιβλίο - Κεφάλαιο 7 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕ PASCAL ΠΑΡΟΥΣΙΑΣΗ 13 Σχολικό Βιβλίο - Κεφάλαιο 7 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕ PASCAL ΠΑΡΟΥΣΙΑΣΗ 13 ΙΣΤΟΡΙΚΑ Παρουσιάστηκε το 1970 από το Niklaus Wirth Προγενέστερη γλώσσα ήταν η Algol 60 Είναι δομημένη γλώσσα προγραμματισμού υψηλού

Διαβάστε περισσότερα

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

ΦΥΣ 145 Μαθηµατικές Μέθοδοι στη Φυσική. Πρόοδος 28 Μαρτίου 2009 Οµάδα 1 η ΦΥΣ 145 Μαθηµατικές Μέθοδοι στη Φυσική Πρόοδος 28 Μαρτίου 2009 Οµάδα 1 η Γράψτε το ονοµατεπώνυµο και αριθµό ταυτότητάς σας στο πάνω µέρος της αυτής της σελίδας. Πρέπει να απαντήσετε σε όλα τα προβλήµατα

Διαβάστε περισσότερα

Εναλλακτικές εντολές για ανάγνωση/εγγραφή

Εναλλακτικές εντολές για ανάγνωση/εγγραφή Εναλλακτικές εντολές για ανάγνωση/εγγραφή Ανάγνωση από το πληκτρολόγιο και εγγραφή στην οθόνη γίνεται με τις εντολές Εναλλακτικές μορφές είναι οι Οι τελευταίες μπορούν να επεκταθούν για ανάγνωση και εγγραφή

Διαβάστε περισσότερα

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

ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ PASCAL ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ PASCAL ΓΕΝΙΚΗ ΔΟΜΗ ΠΡΟΓΡΑΜΜΑΤΟΣ Program Ονομα_προγραμματος; «πρόγραμμα» Πρόγραμμα 1 Program Lesson1_Program1; Write('Hello World!!!'); {σχόλια} Επεξήγηση Προγράμματος Program Lesson1_Program1;

Διαβάστε περισσότερα

Βασικοί τύποι δεδομένων (Pascal) ΕΠΑ.Λ Αλίμου Γ Πληροφορική Δομημένος Προγραμματισμός (Ε) Σχολ. Ετος Κων/νος Φλώρος

Βασικοί τύποι δεδομένων (Pascal) ΕΠΑ.Λ Αλίμου Γ Πληροφορική Δομημένος Προγραμματισμός (Ε) Σχολ. Ετος Κων/νος Φλώρος Βασικοί τύποι δεδομένων (Pascal) ΕΠΑ.Λ Αλίμου Γ Πληροφορική Δομημένος Προγραμματισμός (Ε) Σχολ. Ετος 2012-13 Κων/νος Φλώρος Απλοί τύποι δεδομένων Οι τύποι δεδομένων προσδιορίζουν τον τρόπο παράστασης των

Διαβάστε περισσότερα

Εισαγωγή στο Περιβάλλον Επιστημονικού Προγραμματισμού MATLAB-Simulink. Δημήτριος Τζεράνης Λεωνίδας Αλεξόπουλος

Εισαγωγή στο Περιβάλλον Επιστημονικού Προγραμματισμού MATLAB-Simulink. Δημήτριος Τζεράνης Λεωνίδας Αλεξόπουλος Εισαγωγή στο Περιβάλλον Επιστημονικού Προγραμματισμού MATLAB-Simulink Δημήτριος Τζεράνης Λεωνίδας Αλεξόπουλος 1 Τι είναι τα Matlab και Simulink? Το Matlab (MATrix LABoratory) είναι ένα περιβάλλον επιστημονικού

Διαβάστε περισσότερα

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

Τμήμα Φυσικής Πανεπιστημίου Κύπρου Εαρινό Εξάμηνο 2015/2016. ΦΥΣ145 Υπολογιστικές Μέθοδοι στην Φυσική Τμήμα Φυσικής Πανεπιστημίου Κύπρου Εαρινό Εξάμηνο 2015/2016 Διδάσκoντες: Χαράλαμπος Παναγόπουλος, Μάριος Κώστα Βαθμός: Όνομα: Α.Δ.Τ.:... ΕΝΔΙΑΜΕΣΗ ΕΞΕΤΑΣΗ 24/03/2016 Άσκηση 1 (1 μονάδα) Ποιο είναι το αποτέλεσμα

Διαβάστε περισσότερα

ΗΥ-150. Προγραμματισμός

ΗΥ-150. Προγραμματισμός ΗΥ-150 Εντολές Ελέγχου Ροής Σειριακή εκτέλεση εντολών Όλα τα προγράμματα «γράφονται» χρησιμοποιώντας 3 είδη εντολών: Σειριακές εντολές (sequential built in C) Εντολές απόφασης (if, if/else, switch) Περιλαμβάνει

Διαβάστε περισσότερα

Εισαγωγή στην Επιστήμη Υπολογιστών. Εισαγωγή στην Python

Εισαγωγή στην Επιστήμη Υπολογιστών. Εισαγωγή στην Python Εισαγωγή στην Επιστήμη Υπολογιστών Εισαγωγή στην Python Python scripts Ένα πρόγραμμα στην Python (συχνά αποκαλείται script) αποτελείται από μία ακολουθία ορισμών και εντολών. H ακολουθία των ορισμών και

Διαβάστε περισσότερα

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

TO ΥΠΟΠΡΟΓΡΑΜΜΑ ΣΥΝΑΡΤΗΣΗ Μάθημα 7 - Υποπρογράμματα Εργαστήριο 11 Ο TO ΥΠΟΠΡΟΓΡΑΜΜΑ ΣΥΝΑΡΤΗΣΗ Βασικές Έννοιες: Υποπρόγραμμα, Ανάλυση προβλήματος, top down σχεδίαση, Συνάρτηση, Διαδικασία, Παράμετρος, Κλήση συνάρτησης, Μετάβαση

Διαβάστε περισσότερα

Εισαγωγή στην Tcl. Τί είναι η Tcl;

Εισαγωγή στην Tcl. Τί είναι η Tcl; 1 Εισαγωγή στην Tcl Τί είναι η Tcl; Το αρκτικόλεξο Tcl προέρχεται από τις λέξεις «Tool Control Language». Η Tcl είναι μια γλώσσα προγραμματισμού για scripts γενικής χρήσεως, τα οποία επίσης μπορούν να

Διαβάστε περισσότερα

ΗΥ-150. Προγραμματισμός

ΗΥ-150. Προγραμματισμός ΗΥ-150 Εντολές Ελέγχου Ροής Σειριακή εκτέλεση εντολών Όλα τα προγράμματα «γράφονται» χρησιμοποιώντας 3 είδη εντολών: Σειριακές εντολές (sequential built in C) Εντολές απόφασης (if, if/else, switch) Περιλαμβάνει

Διαβάστε περισσότερα

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

Μορφοποίηση της εξόδου Μορφοποίηση της εξόδου (i) Όταν θέλουμε τα αποτελέσματα μιάς εντολής WRITE(*, *) να εμφανίζονται με συγκεκριμένο τρόπο τροποποιούμε τον δεύτερο αστερίσκο. 2 τρόποι μορφοποίησης WRITE(*, '(format εξόδου)')

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Εισαγωγή στην FORTRAN. Δρ. Ιωάννης Λυχναρόπουλος 2014-2015

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Εισαγωγή στην FORTRAN. Δρ. Ιωάννης Λυχναρόπουλος 2014-2015 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Εισαγωγή στην FORTRAN Δρ. Ιωάννης Λυχναρόπουλος 2014-2015 Fortran FORmula TRANslation: (Μία από τις πρώτες γλώσσες τρίτης γενιάς) Εκδόσεις FORTRAN (1957) FORTRAN II (1958) FORTRAN III

Διαβάστε περισσότερα

Γ7.1 Επανάληψη ύλης Β Λυκείου. Γ Λυκείου Κατεύθυνσης

Γ7.1 Επανάληψη ύλης Β Λυκείου. Γ Λυκείου Κατεύθυνσης Γ7.1 Επανάληψη ύλης Β Λυκείου Γ Λυκείου Κατεύθυνσης Απλά προγράμματα Ένα πρόγραμμα στη C++ που υπολογίζει το άθροισμα 2 ακέραιων αριθμών. // simple program #include using namespace std; int main(){

Διαβάστε περισσότερα

Εισαγωγή στον Προγραµµατισµό. Διάλεξη 2 η : Βασικές Έννοιες της γλώσσας προγραµµατισµού C Χειµερινό Εξάµηνο 2011

Εισαγωγή στον Προγραµµατισµό. Διάλεξη 2 η : Βασικές Έννοιες της γλώσσας προγραµµατισµού C Χειµερινό Εξάµηνο 2011 Εισαγωγή στον Προγραµµατισµό Διάλεξη 2 η : Βασικές Έννοιες της γλώσσας προγραµµατισµού C Χειµερινό Εξάµηνο 2011 Hello World /* Αρχείο hello.c * Εµφανίζει στην οθόνη το * µήνυµα hello world */ #include

Διαβάστε περισσότερα

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Κεφάλαιο 8 : H γλώσσα προγραµµατισµού Pascal 1 ο Μέρος σηµειώσεων (Ενότητες 8.1 & 8.2 σχολικού βιβλίου)

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Κεφάλαιο 8 : H γλώσσα προγραµµατισµού Pascal 1 ο Μέρος σηµειώσεων (Ενότητες 8.1 & 8.2 σχολικού βιβλίου) ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Κεφάλαιο 8 : H γλώσσα προγραµµατισµού Pascal 1 ο Μέρος σηµειώσεων (Ενότητες 8.1 & 8.2 σχολικού βιβλίου) 1. Εισαγωγή Χαρακτηριστικά της γλώσσας Τύποι δεδοµένων Γλώσσα προγραµµατισµού

Διαβάστε περισσότερα

Δομημένος Προγραμματισμός. Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων

Δομημένος Προγραμματισμός. Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων Δομημένος Προγραμματισμός Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr 2 Νέο Πρόγραμμα

Διαβάστε περισσότερα

ΕΙ ΑΓΩΓΉ ΣΗΝ FORTRAN

ΕΙ ΑΓΩΓΉ ΣΗΝ FORTRAN ΕΙΑΓΩΓΉ ΣΗΝ FORTRAN ΕΙΑΓΩΓΙΚΑ ΣΟΙΧΕΙΑ FORTRAN (FORmula TRANslator) -είναι από τις πρώτες γλώσσες υψηλού επιπέδου -σχεδιάστηκε αρχικά για μαθηματικούς σκοπούς -κάνει δυνατή την υπολογιστική επίλυση προβλημάτων

Διαβάστε περισσότερα

Συναρτήσεις στη Visual Basic 6.0

Συναρτήσεις στη Visual Basic 6.0 Προγραμματισμός & Εφαρμογές Υπολογιστών Μάθημα 4ο Συναρτήσεις στη Visual Basic 6.0 Κ. Κωστοπούλου Σειρά εκτέλεσης των πράξεων Όταν ορίζετε μια ακολουθία αριθμητικών πράξεων είναι δυνατόν να προκύψει αμφισημία.

Διαβάστε περισσότερα

Λογικός τύπος Τελεστές σύγκρισης Λογικοί τελεστές Εντολές επιλογής Εμβέλεια Μαθηματικές συναρτήσεις Μιγαδικός τύπος ΔΕΥΤΕΡΗ ΔΙΑΛΕΞΗ

Λογικός τύπος Τελεστές σύγκρισης Λογικοί τελεστές Εντολές επιλογής Εμβέλεια Μαθηματικές συναρτήσεις Μιγαδικός τύπος ΔΕΥΤΕΡΗ ΔΙΑΛΕΞΗ ΔΕΥΤΕΡΗ ΔΙΑΛΕΞΗ Λογικός τύπος ( ) Ο τύπος είναι κατάλληλoς για την αναπαράσταση ποσοτήτων που μπορούν να πάρουν δύο μόνο τιμές (π.χ. ναι/όχι, αληθές/ψευδές, ). Τιμές ή Δήλωση Εκχώρηση Ισοδυναμία με ακέραιους

Διαβάστε περισσότερα

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

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό Αριθμητική Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2012-2013 Δεύτερο Πρόγραμμα 1 / * Second Simple Program : add 2 numbers * / 2

Διαβάστε περισσότερα

Κεφάλαιο : Επαναλήψεις (o βρόγχος While) (Διάλεξη 9) Δομές Έλεγχου Προγράμματος

Κεφάλαιο : Επαναλήψεις (o βρόγχος While) (Διάλεξη 9) Δομές Έλεγχου Προγράμματος Κεφάλαιο 5.1-5.3: Επαναλήψεις (o βρόγχος While) (Διάλεξη 9) 9-1 Δομές Έλεγχου Προγράμματος Μέχρι τώρα είδαμε τις ακόλουθες δομές έλεγχου (program control structure) ενός προγράμματος Α) Sequence π.χ. int

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Εισαγωγή στην PHP. ΕΣΔ 516 Τεχνολογίες Διαδικτύου. Περιεχόμενα. Περιεχόμενα. ΕΣ 516: Τεχνολογίες ιαδικτύου. ΕΣ 516: Τεχνολογίες ιαδικτύου

Εισαγωγή στην PHP. ΕΣΔ 516 Τεχνολογίες Διαδικτύου. Περιεχόμενα. Περιεχόμενα. ΕΣ 516: Τεχνολογίες ιαδικτύου. ΕΣ 516: Τεχνολογίες ιαδικτύου ΕΣΔ 516 Τεχνολογίες Διαδικτύου Εισαγωγή στην PHP Περιεχόμενα Περιεχόμενα PHP και HTML Βασική σύνταξη Μεταβλητές Τελεστές Συναρτήσεις Παράδειγματα 1 Βιβλιογραφία Ενότητας Βιβλιογραφία [Lane 2004]: Chapter

Διαβάστε περισσότερα

Εισαγωγή στο MATLAB. Κολοβού Αθανασία, ΕΔΙΠ,

Εισαγωγή στο MATLAB. Κολοβού Αθανασία, ΕΔΙΠ, Εισαγωγή στο MATLAB Κολοβού Αθανασία, ΕΔΙΠ, akolovou@di.uoa.gr Εγκατάσταση του Matlab Διανέμεται ελεύθερα στα μέλη του ΕΚΠΑ το λογισμικό MATLAB με 75 ταυτόχρονες (concurrent) άδειες χρήσης. Μπορείτε να

Διαβάστε περισσότερα

Η πρώτη παράμετρος είναι ένα αλφαριθμητικό μορφοποίησης

Η πρώτη παράμετρος είναι ένα αλφαριθμητικό μορφοποίησης Η συνάρτηση printf() Η συνάρτηση printf() χρησιμοποιείται για την εμφάνιση δεδομένων στο αρχείο εξόδου stdout (standard output stream), το οποίο εξ ορισμού συνδέεται με την οθόνη Η συνάρτηση printf() δέχεται

Διαβάστε περισσότερα

Γλώσσα Προγραμματισμού C++ Εισαγωγή - Μια πρώτη ματιά

Γλώσσα Προγραμματισμού C++ Εισαγωγή - Μια πρώτη ματιά Γλώσσα Προγραμματισμού C++ Εισαγωγή - Μια πρώτη ματιά Βασικά χαρακτηριστικά αναπτύχθηκε ως επέκταση της C το 1979 υπερσύνολο της C γλώσσα γενικού σκοπού, γρήγορη, Αντικειμενοστραφής προγραμματισμός (Object

Διαβάστε περισσότερα

Δεδομένα, τελεστές, είσοδος/έξοδος

Δεδομένα, τελεστές, είσοδος/έξοδος 2 Δεδομένα, τελεστές, είσοδος/έξοδος Τι θα δούμε σε αυτό το μάθημα 1. βασικοί τύποι δεδομένων 2. ακέραιοι 3. κινητής υποδιαστολής 4. ο τύπος decimal 5. χαρακτήρες 6. bool 7. string 8. χρήση μεταβλητών

Διαβάστε περισσότερα

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

FORTRAN και Αντικειμενοστραφής Προγραμματισμός FORTRAN και Αντικειμενοστραφής Προγραμματισμός Παραδόσεις Μαθήματος 2016 Δρ Γ Παπαλάμπρου Επίκουρος Καθηγητής ΕΜΠ georgepapalambrou@lmentuagr Εργαστήριο Ναυτικής Μηχανολογίας (Κτίριο Λ) Σχολή Ναυπηγών

Διαβάστε περισσότερα

Ενότητα 1: «Εισαγωγή στην Αλγοριθμική και τον Προγραμματισμό. Απλές ασκήσεις με γλώσσα Pascal»

Ενότητα 1: «Εισαγωγή στην Αλγοριθμική και τον Προγραμματισμό. Απλές ασκήσεις με γλώσσα Pascal» Ενισχυτική διδασκαλία διδακτικές ενότητες αλγοριθμικής και εισαγωγής στον προγραμματισμό Ενότητα 1: «Εισαγωγή στην Αλγοριθμική και τον Προγραμματισμό. Απλές ασκήσεις με γλώσσα Pascal» διδάσκων: χρήστος

Διαβάστε περισσότερα