Περιεχόµενα Περιεχόµενα iii 1 Εισαγωγή STOP

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

Download "Περιεχόµενα Περιεχόµενα iii 1 Εισαγωγή STOP"

Transcript

1 Τµηµα Επιστηµης και Τεχνολογιας Υλικων Πανεπιστηµιο Κρητης Ηλεκτρονικοί Υπολογιστές Ι : Εισαγωγή στη γλώσσα προγραµµατισµού Fortran 95 Συνοπτικές Σηµειώσεις ιαλέξεων Σ. Σταµατιαδης Ηράκλειο Μάρτιος 2012

2 Copyright c 2006 Σ. Σταµατιάδης, (stamatis@materials.uoc.gr) Η στοιχειοθεσία έγινε από τον Σ. Σταµατιάδη µε τη χρήση του LaTEX2ε. Χρησιµοποιήθηκε η σειρά χαρακτήρων Κέρκης (c Τµήµα Μαθηµατικών, Πανεπιστήµιο Αιγαίου). Τελευταία τροποποίηση του κειµένου έγινε την 7 Μαρτίου Η πιο πρόσφατη έκδοση ϐρίσκεται στο

3 Περιεχόµενα Περιεχόµενα iii 1 Εισαγωγή Παράδειγµα οµή Προγράµµατος Σχόλια ήλωση Μεταβλητών Ανάγνωση δεδοµένων Υπολογισµοί και Ανάθεση Εκτύπωση δεδοµένων Μεταβλητές ήλωση Ονοµα Απόδοση Τιµής Εντολή ανάθεσης Αριθµητικές Σταθερές Ακέραιες Πραγµατικές Μιγαδικές Σταθερές Ποσότητες Αριθµητικοί Τελεστές Είσοδος/ Εξοδος δεδοµένων οµή Προγράµµατος Εντολή STOP Ασκήσεις Άλλοι ενσωµατωµένοι τύποι Τύπος χαρακτήρα Λογικός τύπος Μιγαδικός Τύπος Ρητή µετατροπή µεταξύ αριθµητικών τύπων Προσδιορισµός του τύπου στη Fortran Προσδιορισµός του είδους αριθµητικών σταθερών Ενσωµατωµένες αριθµητικές συναρτήσεις Σχεσιακοί και Λογικοί Τελεστές Εντολές Ελέγχου IF iii

4 iv ΠΕΡΙΕΧΟΜΕΝΑ SELECT CASE Πίνακες Εντολές επανάληψης Πίνακας Πρόσβαση Στοιχείων Απόδοση τιµής Πολυδιάστατος πίνακας Παρατηρήσεις Πίνακας άγνωστου πλήθους στοιχείων Εντολές Επανάληψης (Βρόχοι) DO για συγκεκριµένο πλήθος επαναλήψεων DO για απροσδιόριστο αριθµό επαναλήψεων EXIT CYCLE Σηµείωση Πράξεις κατά στοιχείο Τµήµα πίνακα Συναρτήσεις µε όρισµα πίνακα WHERE Παραγόµενοι Τύποι Είσοδος/ Εξοδος εδοµένων Περιεχόµενο του FORMAT FORMAT ελέγχου Αλλαγή γραµµής Αρχεία Εξωτερικά Αρχεία Εσωτερικά Αρχεία Συναρτήσεις Υπορουτίνες Εισαγωγή Η έννοια του υποπρογράµµατος Παραδείγµατα Κλήση υποπρογράµµατος ήλωση υποπρογράµµατος Παράδειγµα Εκτέλεση υποπρογράµµατος RETURN Ορισµα υποπρογράµµατος Πίνακας ως όρισµα Υποπρόγραµµα ως όρισµα Προαιρετικό όρισµα Στατικές ποσότητες Αναδροµική (recursive) κλήση συνάρτησης Υποπρογράµµατα κατά στοιχείο (ELEMENTAL) MODULE

5 ΠΕΡΙΕΧΟΜΕΝΑ v Α Σύνοψη 81 Α.1 Σειρά εκτέλεσης Α.2 ηλώσεις Α.3 Πίνακες Α.4 Ανάθεση τιµής Α.5 Εκτέλεση υπό συνθήκη Α.6 Εντολή επανάληψης Α.7 Υποπρόγραµµα

6 vi ΠΕΡΙΕΧΟΜΕΝΑ

7 ιάλεξη 1 Εισαγωγή Ενας ηλεκτρονικός υπολογιστής έχει τη δυνατότητα να προγραµµατιστεί ώστε να εκτελέσει µια συγκεκριµένη διαδικασία. Προγραµµατισµός είναι η λεπτοµε- ϱής περιγραφή, σε κάποια γλώσσα προγραµµατισµού, των ϐηµάτων που πρέπει να ακολουθήσει ώστε να ολοκληρώσει την επιθυµητή διεργασία. Το σύνολο των ϐηµάτων, το πρόγραµµα δηλαδή, συνήθως απαιτεί δεδοµένα που πρόκειται να ε- πεξεργαστεί ώστε να παράγει κάποιο αποτέλεσµα σχεδιάζεται, όµως, ανεξάρτητα από συγκεκριµένες τιµές των δεδοµένων αυτών. Οι πιο διαδεδοµένες γλώσσες προγραµµατισµού στις εφαρµοσµένες επιστήµες (Fortran, C, C++) χρησιµοποιούν σταθερές και µεταβλητές ποσότητες, δηλαδή, ϑέσεις στη µνήµη του υπολογιστή, για την αποθήκευση των ποσοτήτων (δεδο- µένων και αποτελεσµάτων) του προγράµµατος. Ο υπολογιστής επιδρά στις τιµές αυτών των ποσοτήτων ακολουθώντας διαδοχικά τις εντολές που περιλαµβάνονται στο πρόγραµµα. Υπάρχει η δυνατότητα ανάθεσης τιµής στις µεταβλητές, επιλογής της εντολής που ϑα εκτελεστεί στο επόµενο ϐήµα, ανάλογα µε κάποια συνθήκη, καθώς και η δυνατότητα επανάληψης µιας ή περισσότερων εντολών. Η ϐασική δο- µή και ο τρόπος λειτουργίας ενός προγράµµατος στις προαναφερθείσες γλώσσες δε διαφέρει ουσιαστικά από τη µία στην άλλη. Αυτό δεν σηµαίνει ότι κάποιες γλώσσες προγραµατισµού δεν είναι πιο εξελιγµένες από άλλες παρέχουν, δηλαδή, περισσότερες δυνατότητες ή είναι πιο κατάλληλες για συγκεκριµένες εφαρµογές. Στις παρούσες σηµειώσεις ϑα περιγράψουµε έννοιες της γλώσσας προγραµµατισµού Fortran 95 και ϑα αναφερθούµε στις ϐασικές δοµές που περιλαµβάνει. 1.1 Παράδειγµα Ας εξετάσουµε µία απλή εργασία που ϑέλουµε να εκτελεστεί από ένα ηλεκτρονικό υπολογιστή : να µας Ϲητά έναν ακέραιο αριθµό και να τυπώνει το διπλάσιό του. Η διαδικασία που ακολουθούµε, ο αλγόριθµος, είναι ο εξής : 1. Ανάγνωση αριθµού από το πληκτρολόγιο [εισαγωγή του στη µνήµη]. 2. [ανάκληση του αριθµού από τη µνήµη] υπολογισµός του διπλάσιου [εισαγωγή του αποτελέσµατος στη µνήµη]. 3. [ανάκληση του αποτελέσµατος από τη µνήµη] Εκτύπωση στην οθόνη. 1

8 2 ΙΆΛΕΞΗ 1. ΕΙΣΑΓΩΓ Η Η ενέργειες που περιλαµβάνονται σε αγκύλες µπορεί να µη ϕαίνονται αναγκαίες σε πρώτη ανάγνωση. Είναι όµως, καθώς ο υπολογιστής κρατά στη µνήµη RAM οποιαδήποτε πληροφορία, σε µεταβλητές ή σταθερές ποσότητες. Πολλές γλώσσες προγραµµατισµού, ανάµεσά τους και η Fortran, χρειάζονται ένα επιλέον, προκαταρτικό, ϐήµα αυτής της διαδικασίας. Προτού µεταφέρουµε τον αλγόριθµο πρέπει να κάνουµε το : 0. ήλωση µεταβλητών (δηλαδή, ϱητή δέσµευση µνήµης). Ας δούµε καταρχήν ένα πλήρες πρόγραµµα Fortran 95 που εκτελεί την παραπάνω εργασία ακολουθώντας τα ϐήµατα που περιγράψαµε. Με αυτό έχουµε την ευκαιρία να δούµε ϐασικά στοιχεία της δοµής του κώδικα : PROGRAM twice IMPLICIT NONE! step 0 INTEGER : : a, b! step 1 READ, a! step 2 b = 2 a! step 3 PRINT, " To di plasio einai " PRINT, b END PROGRAM twice Ας το αναλύσουµε : οµή Προγράµµατος Οι εντολές του κυρίως προγράµµατός µας (καλό είναι να) περιλαµβάνονται µεταξύ των PROGRAM... END PROGRAM: PROGRAM twice IMPLICIT NONE END PROGRAM twice Με την πρώτη εντολή το πρόγραµµά µας έχει ονοµαστεί twice. Καλό είναι να αποδίδουµε ονόµατα στα προγράµµατά µας που υποδηλώνουν µε κάποιον τρόπο τι κάνουν αυτά. Ολες οι εντολές/γραµµές µπορούν να ξεκινούν από οποιαδήποτε στήλη πρέπει να έχουν ολοκληρωθεί στη στήλη 132 καθώς οι χαρακτήρες που υπάρχουν µετά από αυτή αγνοούνται.

9 1.1. ΠΑΡΆ ΕΙΓΜΑ 3 Οι πρώτες γραµµές µετά το PROGRAM... συγκεντρώνουν τις δηλώσεις όλων των ποσοτήτων. Η πρώτη γραµµή από αυτές (καλό είναι να) είναι η IMPLICIT NONE. Αφού τελειώσουν οι δηλώσεις, ακολουθούν οι υπόλοιπες εντολές, µε τη σειρά που ϑέλουµε να εκτελεστούν. Η τελική εντολή είναι το END PROGRAM... Σε ένα αρχείο µε κώδικα σε Fortran 95 επιτρέπονται κενά µεταξύ λέξεων και κενές γραµµές µεταξύ εντολών Σχόλια Ο compiler αγνοεί τους χαρακτήρες που υπάρχουν µεταξύ του χαρακτήρα `! και µέχρι το τέλος της γραµµής που εµφανίζεται αυτός. Εποµένως, γραµµές ή τµήµατα γραµµών που αρχίζουν µε `! µπορούν να περιλάβουν επεξηγηµατικά µηνύµατα από τον προγραµµατιστή, για τη δική του διευκόλυνση ήλωση Μεταβλητών Οι µεταβλητές (variables) είναι ϑέσεις στη µνήµη που χρησιµοποιούνται για την αποθήκευση των ποσοτήτων (δεδοµένων, αποτελεσµάτων) του προγράµµατος. Προτού χρησιµοποιηθούν πρέπει να δηλωθούν, δηλαδή να ενηµερωθεί ο compiler για το όνοµά τους και τον τύπο τους, αλλά και να πάρουν τιµή. Η εντολή INTEGER : : a, b αποτελεί τη δήλωση των µεταβλητών του προγράµµατός µας. Παρατηρήστε ότι στον αλγόριθµό µας έχουµε δύο εισαγωγές ακεραίων στη µνήµη, οπότε ϑέλουµε δύο κατάλληλες µεταβλητές. Η συγκεκριµένη εντολή Ϲητά από τον compiler να δεσµεύσει χώρο στη µνήµη για δύο ακέραιους αριθµούς (INTEGER) µε ονόµατα a και b Ανάγνωση δεδοµένων Η εντολή READ, a διαβάζει από το πληκτρολόγιο έναν ακέραιο αριθµό και τον τοποθετεί στη µετα- ϐλητή a. Το σύµβολο υποδεικνύει στον µεταγλωττιστή ότι το πλήθος, τον τύπο και τη µορφή των δεδοµένων που ϑα δεχθεί πρέπει να τα προσδιορίσει αυτόµατα από τις µεταβλητές που παρατίθενται στην εντολή READ. Θα δούµε αργότερα πώς µπορούµε να του προσδιορίσουµε εµείς τις συγκεκριµένες πληροφορίες. Η συγκεκριµένη εντολή αποτελεί τον ένα από τους δύο τρόπους για απόδοση τιµής σε µεταβλητή. Η άλλη είναι η εντολή ανάθεσης (1.3) Υπολογισµοί και Ανάθεση Η εντολή b = 2 a

10 4 ΙΆΛΕΞΗ 1. ΕΙΣΑΓΩΓ Η εκτελείται ως εξής : Καταρχήν, υπολογίζεται το δεξί µέλος : ανακαλείται από τη µνήµη ο αριθµός που είναι αποθηκευµένος στη µεταβλητή a και εκτελείται ο πολλαπλασιασµός µε το 2. Ο πολλαπλασιασµός υποδηλώνεται µε το. Κατόπιν, το αποτέλεσµα της πράξης αποθηκεύεται στη µεταβλητή του αριστερού µέλους Εκτύπωση δεδοµένων Οι εντολές PRINT, " To di plasio einai " PRINT, b προκαλούν διαδοχική εκτύπωση στην οθόνη δύο πληροφοριών : συγκεκριµένου κειµένου (σειρά χαρακτήρων εντός εισαγωγικών) και της τιµής που αποθηκεύεται στην µεταβλητή b (και η οποία ανακαλείται από τη µνήµη). Παρακάτω, ακολουθούν πιο αναλυτικές περιγραφές όσων αναφέραµε στο πα- ϱάδειγµα. 1.2 Μεταβλητές Οι ενσωµατωµένοι τύποι των µεταβλητών στη Fortran είναι οι INTEGER, REAL και DOUBLE PRECISION, COMPLEX, LOGICAL, CHARACTER. Αντιστοιχούν µε τη σειρά, σε ποσότητες ακέραιες, πραγµατικές απλής ακρίβειας, πραγµατικές διπλής ακρίβειας, µιγαδικές, λογικές και ποσότητες χαρακτήρα ήλωση Η δήλωση µιας ακέραιας µεταβλητής µε όνοµα π.χ. abc γίνεται µε την ακόλου- ϑη εντολή : INTEGER : : abc Η δήλωση δύο πραγµατικών µεταβλητών απλής ακρίβειας µε ονόµατα π.χ. value1, value2, γίνεται µε τις ακόλουθες εντολές : REAL : : REAL : : value1 value2 ή, ισοδύναµα, µε την REAL : : value1, value2 Οι πραγµατικές µεταβλητές απλής ακρίβειας έχουν συνήθως ακρίβεια 6 ψη- ϕίων. Σε επιστηµονικούς κώδικες, η ακρίβεια των µεταβλητών τύπου REAL συχνά δεν είναι ικανοποιητική. Γι αυτό υπάρχει ενσωµατωµένος ένας πραγµατικός τύπος µε µεγαλύτερη ακρίβεια. Ο τρόπος που ορίζεται στη Fortran 90 είναι σχετικά πολύπλοκος, διευκολύνει, όµως, αρκετά την ανάπτυξη µεγάλων κωδίκων. Εδώ ϑα παρουσιάσουµε τον τρόπο που κληρονοµήθηκε από την Fortran 77. Η δήλωση πραγµατικής µεταβλητής διπλής ακρίβειας µε όνοµα π.χ. ab, γίνεται µε την ακόλουθη εντολή : DOUBLE PRECISION : : ab

11 1.2. ΜΕΤΑΒΛΗΤ ΕΣ 5 Οι πραγµατικές µεταβλητές διπλής ακρίβειας έχουν συνήθως ακρίβεια 15 ψη- ϕίων. ήλωση µιγαδικής µεταβλητής (απλής ακρίβειας) γίνεται ως εξής : COMPLEX : : z Περισσότερα για µιγαδικούς ϑα αναπτύξουµε σε επόµενο κεφάλαιο Ονοµα Τα ονόµατα των µεταβλητών, συναρτήσεων, προγράµµατος, και, γενικότερα, των οντοτήτων του κώδικα, είναι της επιλογής του προγραµµατιστή. Σχηµατίζονται µε τους λατινικούς χαρακτήρες a z, τα αριθµητικά ψηφία 0 9 και το χαρακτήρα `_. Το µέγιστο µήκος κάθε ονόµατος είναι 31 χαρακτήρες. Το όνοµα δεν µπορεί να αρχίζει µε αριθµητικό ψηφίο. Κεφαλαία και πεζά γράµµατα είναι ίδια. Καλό είναι να µην αρχίζει ούτε από `_ καθώς ονόµατα µε αυτόν για πρώτο χαρακτήρα χρησιµοποιούνται εσωτερικά από τον µεταγλωττιστή. Είναι προφανές ότι δεν µπορεί να χρησιµοποιηθεί το ίδιο όνοµα για την αναπαράσταση διαφορετικών οντοτήτων που συνυπάρχουν Απόδοση Τιµής Μια µεταβλητή παίρνει τιµή διαβάζοντάς τη από το πληκτρολόγιο, από αρχείο κλπ. µε την εντολή READ. Π.χ. για είσοδο από το πληκτρολόγιο ακέραιου αριθµού και αποθήκευση στη µεταβλητή a έχουµε INTEGER : :..... READ, a ή, ισοδύναµα, αλλά και πιο γενικά, a INTEGER : : a..... READ (, ) a µε εντολή ανάθεσης (1.3), της µορφής Π.χ. µεταβλητή = [ έκφραση µε σταθερές και µεταβλητές ] REAL : : a, b b = a κατά τη δήλωσή της (αρχική τιµή). Π.χ. INTEGER : : k = 3 Η παραπάνω εντολή δηλώνει ότι η µεταβλητή µε όνοµα k είναι ακέραια και της δίνει την αρχική τιµή 3. Μπορούµε να αλλάξουµε τιµή µιας µεταβλητής κατά τη διάρκεια του προγράµ- µατος.

12 6 ΙΆΛΕΞΗ 1. ΕΙΣΑΓΩΓ Η 1.3 Εντολή ανάθεσης Είναι της µορφής µεταβλητή = [ έκφραση µε σταθερές και µεταβλητές ] Εκτελούνται όλες οι πράξεις που πιθανόν εµφανίζονται στο δεξί µέλος και το αποτέλεσµα µετατρέπεται στον τύπο της µεταβλητής του αριστερού µέλους και η τιµή του αποδίδεται σε αυτή. 1.4 Αριθµητικές Σταθερές Ακέραιες Μία σειρά αριθµητικών ψηφίων χωρίς κενά ή άλλα σύµβολα, αποτελεί µία ακέραια σταθερά. Ο πρώτος χαρακτήρας της µπορεί να είναι το πρόσηµο `+ ή `. Π.χ., τρεις ακέραιες σταθερές είναι οι παρακάτω 3, -12, Πραγµατικές Μία σειρά αριθµητικών ψηφίων χωρίς κενά, που περιλαµβάνει τελεία (στη ϑέση της υποδιαστολής) συµβολίζει πραγµατική σταθερά απλής ακρίβειας (συνήθως 6 δεκαδικών ψηφίων). Πριν ή µετά την υποδιαστολή µπορεί να µην υπάρχουν ψηφία. Ο χαρακτήρας E, αν υπάρχει, ακολουθείται από τον ακέραιο εκθέτη του 10 µε τη δύναµη του οποίου πολλαπλασιάζεται ο αµέσως προηγούµενος του E αριθµός : 2.034, 0.23,.44, 23., 2e 4 ( ), 2.3E2 ( 230.0). Μία σειρά αριθµητικών ψηφίων χωρίς κενά, που περιλαµβάνει τελεία (στη ϑέση της υποδιαστολής) και ακολουθείται από το χαρακτήρα D και τον ακέραιο εκθέτη του 10 µε τη δύναµη του οποίου πολλαπλασιάζεται συµβολίζει πραγµατική σταθερά διπλής ακρίβειας (συνήθως 15 δεκαδικών ψηφίων). Π.χ., 2d 4 ( d0), 2.3D2 ( 230.0d0). Προσέξτε ότι ο ίδιος πραγµατικός αριθµός µπορεί να γραφεί στη Fortran ως πραγ- µατικός είτε απλής είτε διπλής ακρίβειας 1. Οι δύο µορφές είναι διαφορετικές πα- ϱόλο που αντιστοιχούν στον ίδιο αριθµό. Στην περίπτωση που εµφανίζονται στην ίδια έκφραση, π.χ. σε µια πρόσθεση, ο µεταγλωττιστής µετατρέπει την σταθερά απλής ακρίβειας σε διπλής προτού προχωρήσει. Ο συµβολισµός ενός πραγµατικού αριθµού στη µορφή που περιλαµβάνει το E ή το D είναι ο λεγόµενος επιστηµονικός. Παρατηρήστε ότι µόνο µε την ε- πιστηµονική µορφή µπορούµε να προσδιορίσουµε ότι µια πραγµατική σταθερά είναι διπλής ακρίβειας. ηλαδή, το 3.2 της αριθµητικής, πρέπει να γραφεί στη Fortran ως 3.2D0 για να αποθηκευθεί ως διπλής ακρίβειας. Επίσης, δεν έχει ση- µασία πόσα δεκαδικά ψηφία παραθέτουµε σε µία πραγµατική σταθερά. Αν είναι απλής ακρίβειας ϑα αγνοηθούν τα ψηφία πέρα απο το έκτο ή έβδοµο σηµαντικό. 1 είτε, ϐέβαια, ως µιγαδικός ή και ως ακέραιος, αν τυχαίνει να είναι ακέραιος στα µαθηµατικά.

13 1.5. ΣΤΑΘΕΡ ΕΣ ΠΟΣ ΟΤΗΤΕΣ 7 Αντίστοιχα, σε διπλή ακρίβεια τα πρώτα 15 ή 16 σηµαντικά ψηφία κρατώνται, και ϑεωρούνται 0 όσα δεκαδικά µέχρι το 15ο ή 16ο δεν προσδιορίζονται. Ετσι, η µαθηµατική σταθερά π = µπορεί να γραφεί στη Fortran ως (τα επιπλέον δεκαδικά ψηφία αγνοούνται, ακόµα και αν τα γράψουµε) ή ως D Μιγαδικές Η µιγαδική σταθερά συµβολίζεται στη Fortran µε Ϲεύγος πραγµατικών αριθµών εντός παρενθέσεων, µε (,) µεταξύ τους. Ο πρώτος αριθµός είναι το πραγµατικό µέρος ενώ ο δεύτερος είναι το ϕανταστικό. Π.χ., ο µιγαδικός αριθµός i των µαθηµατικών γράφεται ως (3.1, 2.0), ενώ ο i γράφεται ως (0.0, 1.0). 1.5 Σταθερές Ποσότητες Μια ποσότητα (οποιουδήποτε τύπου) που επιθυµούµε να πάρει τιµή και να µην µπορεί να αλλάξει κατά τη διάρκεια εκτέλεσης του προγράµµατος, δηλώνεται µε τη χρήση της λέξης PARAMETER. Είναι απαραίτητο να της δώσουµε αρχική (και µόνιµη) τιµή κατά τον ορισµό της (δεν µπορεί, εποµένως, να διαβαστεί από το πληκτρολόγιο, αρχείο, κλπ., ή να πάρει τιµή µε εντολή ανάθεσης). Π.χ. πραγµατική ποσότητα µε σταθερή, αµετάβλητη τιµή δηλώνεται ως εξής REAL, PARAMETER : : pi = Αριθµητικοί Τελεστές Οι τελεστές +,,, / µεταξύ πραγµατικών αριθµών εκτελούν τις πράξεις της πρόσθεσης, αφαίρεσης, πολλαπλασιασµού και διαίρεσης αντίστοιχα. Οι τελεστές +,, µεταξύ ακεραίων αριθµών εκτελούν τις πράξεις της πρόσθεσης, αφαίρεσης, πολλαπλασιασµού αντίστοιχα. Ο τελεστής / µεταξύ ακεραίων αριθµών εκτελεί τη διαίρεση και αποκόπτει το δεκαδικό µέρος του αποτελέσµατος, επιστρέφει, δηλαδή, το πηλίκο της διαίρεσης. Η συνάρτηση MOD( ) επιστρέφει το υπόλοιπο της διαίρεσης ως εξής INTEGER : : a, b, p, y a = 4 b = 3 p = a / b! P i l i k o y = MOD( a, b )! Ypoloipo Ο τελεστής εκτελεί την ύψωση σε δύναµη. Π.χ. το x 3 των µαθηµατικών γράφεται στη Fortran ως x 3. Οι τελεστές +, έχουν ίδια προτεραιότητα η οποία είναι χαµηλότερη από την προτεραιότητα των, / (που έχουν την ίδια), όπως και στα µαθηµατικά. Σε µια έκφραση που εµφανίζονται διαδοχικά τελεστές ίδιας προτεραιότητας, εκτελείται

14 8 ΙΆΛΕΞΗ 1. ΕΙΣΑΓΩΓ Η πρώτα αυτός που είναι στα αριστερά. Ο τελεστής έχει υψηλότερη προτεραιότητα από όλους. Π.χ. INTEGER : : i, j, k i = 2 + 3! i = 5 j = 2 3! j = 6 i = i + j! i = 11 i = 2 i + j! i = 28 i = 17 / j! i = 2 k = i j / 3! k = 4 Αλλαγή προτεραιότητας γίνεται µε τη χρήση παρενθέσεων. Π.χ. INTEGER : : i, j, k i = 2 j = 6 k = 2 i + j! k = 10 k = 2 ( i + j )! k = 16 k = j i / 3! k = 4 k = j ( i / 3)! k = 0 Παρατήρηση: Οταν οι τελεστές +,,, / εµφανίζονται µεταξύ αριθµών δια- ϕορετικού τύπου (π.χ. ενός ακεραίου και ενός πραγµατικού), γίνεται αυτόµατη µετατροπή του ενός τύπου στον άλλο (για να µην έχουµε απώλεια ακρίβειας) και εκτελούνται οι πράξεις. Π.χ. INTEGER : : i, j REAL : : x, y i = 8.3! i = 8 j = 2 y = 3.0 x = 4.0 / 3! > x = 4.0 / 3.0 > x = x = j + y! > x = > x = > x = 5.0 i = 4 / 3.0! > i = 4.0 / 3.0 > i = > i = 1 x = 4 / 3! > x = 1 > x = 1.0 x = / 3! > x = 8.0 / 3 > x = 8.0 / 3.0 > x = x = 4 / 3 2.0! > x = > x = 2.0

15 1.7. Ε ΙΣΟ ΟΣ/ ΕΞΟ ΟΣ Ε ΟΜ ΕΝΩΝ Είσοδος/ Εξοδος δεδοµένων Η ανάθεση τιµής σε κάποια µεταβλητή a από το πληκτρολόγιο γίνεται, όπως είδαµε, µε την εντολή READ: READ, a ή, ισοδύναµα, µε την READ (, ) a Η εκτύπωση στην οθόνη της τιµής µιας ποσότητας γίνεται µε την εντολή PRINT PRINT, a ή, ισοδύναµα και πιο γενικά, µε την εντολή WRITE: WRITE (, ) a Οι παραπάνω εντολές µπορούν να χρησιµοποιηθούν για πολλά δεδοµένα ταυτόχρονα, ακόµα και διαφορετικού τύπου. Π.χ. INTEGER : : REAL : : b a = 4 b = 4.5 a PRINT, " Oi times einai ", a, b Το πρώτο * στα READ(, )/WRITE(, ) προσδιορίζει το πληκτρολόγιο ή την οθόνη ως πηγή ή αποδέκτη δεδοµένων αντίστοιχα. Σε επόµενο κεφάλαιο ϑα δούµε πώς συνδέουµε αρχεία για την είσοδο και έξοδο δεδοµένων. Το δεύτερο * καθορίζει ότι η µορφή των δεδοµένων ϑα αποφασιστεί από τον µεταγλωττιστή µε ϐάση τις ποσότητες που περιλαµβάνονται στις αντίστοιχες εντολές. Στη µορφή READ / PRINT η µεταφορά των δεδοµένων γίνεται µόνο από το πληκτρολόγιο και την οθόνη αντίστοιχα, χωρίς δυνατότητα αλλαγής, ενώ το * καθορίζει τη διαµόρφωση (και υποδηλώνει ότι αυτή ϑα αποφασιστεί από το µεταγλωττιστή). 1.8 οµή Προγράµµατος Οπως αναφέραµε, οι εντολές του κυρίως προγράµµατός µας περιλαµβάνονται µεταξύ των PROGRAM... END PROGRAM: PROGRAM onoma IMPLICIT NONE END PROGRAM onoma Το όνοµα του προγράµµατος (εδώ onoma ) πρέπει να εµφανίζεται, είναι της ε- πιλογής του προγραµµατιστή και σχηµατίζεται µε τους κανόνες που ισχύουν για τα ονόµατα των µεταβλητών. Ολες οι γραµµές µπορούν να ξεκινούν από οποιαδήποτε στήλη. Σε ένα αρχείο µε κώδικα σε Fortran 90, επιτρέπονται κενά µεταξύ

16 10 ΙΆΛΕΞΗ 1. ΕΙΣΑΓΩΓ Η λέξεων και κενές γραµµές µεταξύ εντολών. Στην περίπτωση που κάποια γραµ- µή είναι πολύ µεγάλη, πάνω από 132 χαρακτήρες ή από το πλάτος της οθόνης µας, µπορούµε να την σπάσουµε σε οποιοδήποτε σηµείο και να συνεχιστεί στην επόµενη γραµµή του αρχείου, αρκεί στο σηµείο του σπασίµατος στην πρώτη γραµµή να τοποθετήσουµε τον χαρακτήρα `&. Π.χ. η ακόλουθη εντολή INTEGER : : a, b µπορεί να γίνει, αν το επιθυµούµε, INTEGER : : b a, & Με άλλα λόγια, ο χαρακτήρας `& στο τέλος µιας γραµµής υποδηλώνει ότι αυτή συνεχίζεται στην επόµενη (και αποτελούν µία εντολή). Οι πρώτες γραµµές µετά το PROGRAM onoma συγκεντρώνουν τις δηλώσεις όλων των ποσοτήτων. Η πρώτη γραµµή από αυτές (καλό είναι να) είναι η IMPLICIT NONE. Αφού τελειώσουν οι δηλώσεις, ακολουθούν οι υπόλοιπες εντολές, µε τη σειρά που ϑέλουµε να εκτελεστούν. Πριν ή µετά το κυρίως πρόγραµµα µπορούµε να έχουµε ορισµούς συναρτήσεων, υπορουτινών και modules. Αυτοί εκτελούνται µόνο αν χρησιµοποιηθούν από το κυρίως πρόγραµµα Εντολή STOP Το πρόγραµµα τελειώνει την εκτέλεσή του κανονικά όταν συναντήσει το END PROGRAM. Εναλλακτικά, µπορούµε να δώσουµε την εντολή STOP σε οποιοδήποτε σηµείο του. Η εκτέλεσή της προκαλεί την διακοπή του προγράµµατος και εκτύπωνεται σχετικό µήνυµα. Το STOP µπορεί να ακολουθείται από ένα σύνολο χαρακτήρων εντός εισαγωγικών, απλών ή διπλών, ή ένα ακέραιο αριθµό µε έως 5 ψηφία. Σε τέτοια περίπτωση, το πρόγραµµα κατά τη διακοπή µπορεί να εκτυπώσει ό,τι ακολουθεί το STOP. Με αυτόν τον τρόπο µπορούµε να διακρίνουµε ποιο STOP (αν έχουµε πολλά) προκάλεσε τη διακοπή. 1.9 Ασκήσεις 1. Ο αλγόριθµος του Gauss για τον υπολογισµό της ηµεροµηνίας του Πάσχα των Ορθοδόξων σε συγκεκριµένο έτος (µέχρι το 2099) είναι ο εξής : Θεωρούµε ως δεδοµένο εισόδου το έτος που µας ενδιαφέρει. Ορίζουµε κάποιες ακέραιες ποσότητες σύµφωνα µε τους ακόλουθους τύπους : (α ) r1 = υπόλοιπο διαίρεσης του έτους µε το 19. (ϐ ) r2 = υπόλοιπο διαίρεσης του έτους µε το 4. (γ ) r3 = υπόλοιπο διαίρεσης του έτους µε το 7. (δ ) ra = 19 r (ε ) r4 = υπόλοιπο διαίρεσης του ra µε το 30. (ϝ ) rb = 2(r2 + 2r3 + 3r4). (Ϲ ) r5 = υπόλοιπο διαίρεσης του rb µε το 7. (η ) rc = r4 + r5 + 3.

17 1.9. ΑΣΚ ΗΣΕΙΣ 11 Το rc είναι οι ηµέρες µετά την πρώτη Απριλίου του συγκεκριµένου έτους, που µεσολαβούν µέχρι το Πάσχα. [Αν το rc είναι µεγαλύτερο από 30, τότε το Πάσχα είναι (rc-30) Μαΐου.] Γράψτε σε κώδικα Φορτραν 90 τον παραπάνω αλγόριθµο. Φροντίστε να τυπώνει κατάλληλο µήνυµα και τον αριθµό rc αφού τον υπολογίσει.

18 12 ΙΆΛΕΞΗ 1. ΕΙΣΑΓΩΓ Η

19 ιάλεξη Αλλοι ενσωµατωµένοι τύποι Παρακάτω ϑα παρουσιάσουµε τους υπόλοιπους ενσωµατωµένους τύπους που παρέχει η Fortran, πέρα από τους INTEGER, REAL, DOUBLE PRECISION Τύπος χαρακτήρα Για την αναπαράσταση ποσοτήτων που οι δυνατές τιµές τους είναι χαρακτήρες ή σειρές χαρακτήρων, η Fortran παρέχει τον τύπο CHARACTER. ήλωση µιας µεταβλητής χαρακτήρα µε όνοµα π.χ. ch γίνεται µε την ακόλουθη εντολή : CHARACTER : : ch Οι τιµές που µπορεί να πάρει είναι µονοί χαρακτήρες εντός απλών ( ) ή διπλών (") εισαγωγικών : ch = a ch = D ch = "R" Για την περιγραφή σειράς χαρακτήρων, η δήλωση περιλαµβάνει το µέγιστο δυνατό µήκος των σειρών που πρόκειται να αναπαραστήσουµε. Για παράδειγµα, η σειρά "This is a message" αποτελείται από 17 χαρακτήρες και, εποµένως, µπορεί να ανατεθεί σε µεταβλητή τύπου CHARACTER µε τουλάχιστον αυτό το µήκος. Η κατάλληλη δήλωση είναι CHARACTER (17) : : ch ch = " This i s a message" Λογικός τύπος Μεταβλητή λογικού τύπου (LOGICAL) είναι κατάλληλη για την αναπαράσταση ποσοτήτων που µπορούν να πάρουν δύο τιµές (π.χ. ναι/όχι, αληθές/ψευδές,... ). Η δήλωση τέτοιας µεταβλητής, µε όνοµα π.χ. a, γίνεται ως εξής : LOGICAL : : a Οι τιµές που µπορεί να πάρει είναι.true. ή.false.. σταθερής τιµής.true. στην a γίνεται ως εξής a =.TRUE. Η ανάθεση π.χ. της 13

20 14 ΙΆΛΕΞΗ Μιγαδικός Τύπος Η Fortran υποστηρίζει µε τον ενσωµατωµένο τύπο COMPLEX την περιγραφή µιγαδικών µεταβλητών και σταθερών. Η δήλωση είναι ως εξής COMPLEX : : z Εσωτερικά, για τον compiler, αποτελείται από δύο πραγµατικούς αριθµούς, α- πλής ακρίβειας, που αντιστοιχούν στο πραγµατικό και ϕανταστικό µέρος. Στη Fortran 77 δεν υποστηρίζεται µιγαδικός τύπος διπλής ακρίβειας. Αυτός έχει εισαχθεί στη Fortran 90 αλλά πρέπει να χρησιµοποιηθεί ο δικός της τρόπος (2.2) για τον προσδιορισµό του. ηµιουργία µιγαδικής ποσότητας Ενας αριθµός µιγαδικού τύπου στη Fortran µπορεί να πάρει τιµή µε ανάθεση µιγαδικής σταθεράς, δηλαδή, δύο πραγµατικών αριθµών σε ένα Ϲεύγος παρενθέσεων, µε (,) µεταξύ τους. Ο πρώτος αριθµός είναι το πραγ- µατικό µέρος ενώ ο δεύτερος είναι το ϕανταστικό : COMPLEX : : z z = (1.2, 4.56)! z = i 4.56 Αν ανατεθεί πραγµατική ή ακέραια ποσότητα ϑα γίνει µετατροπή συµπλη- ϱώνοντας µε το 0 το ϕανταστικό µέρος COMPLEX : : z z = 2! z = i 0.0 z = 2.3! z = i 0.0 Με ανάθεση έκφρασης που έχει συνολικά µιγαδική τιµή (ή πραγµατική ή ακέραια, για τις οποίες ϑα προηγηθεί µετατροπή): COMPLEX : : z, z1, z2 z1 = 3! z1 = i 0.0 z2 = (4.6, 4.2)! z2 = 4.6 i 4.2 z = z1 + z ! z = 12.7 i 4.2 Στην επόµενη παράγραφο ϑα δούµε περισσότερα για τις εκφράσεις. Με ανάγνωση µιγαδικής σταθεράς από το πληκτρολόγιο ή από αρχείο. Π.χ. ο κώδικας COMPLEX : : z READ, z αναµένει να του δώσουµε (1.6, -3.8)

21 2.1. ΆΛΛΟΙ ΕΝΣΩΜΑΤΩΜ ΕΝΟΙ Τ ΥΠΟΙ 15 (περιλαµβάνονται το κόµµα και οι παρενθέσεις). Με τη χρήση της ενσωµατωµένης συνάρτησης CMPLX( ). Αυτή δέχεται δύο πραγµατικές ποσότητες και δηµιουργεί µιγαδικό αριθµό µε πραγµατικό µέρος την πρώτη ποσότητα και ϕανταστικό τη δεύτερη COMPLEX : : z REAL : : x, y x = 3.4 y = 9.1 z = CMPLX( x, y )! z = 3.4 i 9.1 Προσέξτε ότι η έκφραση z = ( x, y ) που ίσως να περίµενε κανείς ότι ϑα έκανε σωστά τη δηµιουργία είναι λάθος. Εκφράσεις µε µιγαδικές ποσότητες Οι αριθµητικοί τελεστές +,,, /, εκτελούν τις αναµενόµενες πράξεις από τα µαθηµατικά ο τελευταίος συµβολίζει την ύψωση σε δύναµη. Υπενθυµίζουµε ότι αν z1 = α + iβ, z2 = γ + iδ, τότε z1 z2 = (αγ βδ) + i(αδ + βγ). Αυτήν ακριβώς την πράξη εκτελεί ο τελεστής µεταξύ µιγαδικών ποσοτήτων στη Fortran. Αντίστοιχα ισχύουν και για τον τελεστή /. Κατ επέκταση όσων είπαµε στις 1.3, 1.6, ένας µιγαδικός που συµµετέχει σε µία πράξη (δεξιά ή αριστερά ενός τελεστή), προκαλεί τη µετατροπή σε µιγαδικό και του άλλου µέρους της πράξης, προτού αυτή εκτελεστεί. Επίσης, ανάθεση του µιγαδικού αποτελέσµατος µιας έκφρασης προκαλεί µετατροπή της τιµής στον τύπο της µεταβλητής στην οποία ανατίθεται. Οταν η µεταβλητή στην οποία ανατίθεται είναι πραγµατική, η µετατροπή συνίσταται στην αποκοπή του ϕανταστικού τµήµατος : COMPLEX : : z REAL : : x z = (2.3,4.5)! z = i 4.5 x = z! x = 2.3 Οταν η µεταβλητή στην οποία ανατίθεται είναι ακέραια, η µετατροπή που γίνεται είναι η αποκοπή του ϕανταστικού τµήµατος και η αποκοπή του δεκαδικού τµήµατος του πραγµατικού µέρους : COMPLEX : : INTEGER : : z i

22 16 ΙΆΛΕΞΗ 2. z = (2.3,4.5)! z = i 4.5 i = z! i = 2 Ολες οι ενσωµατωµένες συναρτήσεις που ϑα δούµε παρακάτω ισχύουν και για µιγαδικούς µε την αναµενόµενη από τα µαθηµατικά συµπεριφορά. Εξαγωγή πραγµατικού/φανταστικού µέρους Συζυγής Μέτρο Το πραγµατικό µέρος ενός µιγαδικού αριθµού υπολογίζεται µε τη δράση της ενσωµατωµένης συνάρτησης REAL( ) ϐάζοντας ως όρισµα (ποσότητα µεταξύ των παρενθέσεων) τον µιγαδικό αριθµό : COMPLEX : : REAL : : x z z = (1.2, 8.7)! z = 1.2 i 8.7 x = REAL( z )! x = 1.2 Το ϕανταστικό µέρος εξάγεται µε τη δράση της συνάρτησης AIMAG( ): COMPLEX : : REAL : : x z z = (1.2, 8.7)! z = 1.2 i 8.7 x = AIMAG( z )! x = 8.7 Ο µιγαδικός συζυγής ενός αριθµού παράγεται µε τη δράση της συνάρτησης CONJG( ): COMPLEX : : z1, z2 z1 = (1.2, 8.7)! z1 = 1.2 i 8.7 z2 = CONJG( z1 )! z2 = i 8.7 Το (πραγµατικό) µέτρο z ενός µιγαδικού υπολογίζεται µε τη συνάρτηση ABS( ): COMPLEX : : z REAL : : norm z = (1.2, 8.7)! z = 1.2 i 8.7 norm = ABS( z )! norm = ( ) Ρητή µετατροπή µεταξύ αριθµητικών τύπων Υπάρχουν περιπτώσεις που χρειάζεται να κάνουµε ϱητά µετατροπή ποσότητας από ένα τύπο σε άλλον και να µη ϐασιζόµαστε στη µετατροπή που γίνεται κατά την ανάθεση. Π.χ. προσέξτε τον παρακάτω κώδικα REAL : : x INTEGER : : i, j i = 3 j = 2

23 2.2. ΠΡΟΣ ΙΟΡΙΣΜ ΟΣ ΤΟΥ Τ ΥΠΟΥ ΣΤΗ FORTRAN x = i / j! x = 1.0 Η µεταβλητή x δεν αποκτά την επιθυµητή τιµή (1.5) καθώς της ανατίθεται το πηλίκο της διαίρεσης των δύο ακεραίων αριθµών. Η διαίρεση ϑα γίνει σωστά αν µετατρέψουµε τους ακεραίους που συµµετέχουν σε πραγµατικούς µε κλήση της κατάλληλης συνάρτησης REAL : : x INTEGER : : i, j i = 3 j = 2 x = REAL( i ) /REAL( j )! x = 1.5 Η ϱητή µετατροπή αρκεί να γίνει στον ένα από τους δύο ο άλλος ϑα µετατραπεί αυτόµατα στον τύπο του έτερου µέλους. Οι συναρτήσεις ϱητής µετατροπής της Fortran είναι οι εξής : REAL( ), DBLE( ), INT( ), CMPLX( ). έχονται µεταξύ των παρενθέσεων µία ποσότητα οποιουδήποτε αριθµητικού τύπου (INTEGER, REAL, DOUBLE PRECISION, COMPLEX) και επιστρέφουν αντίστοιχα : REAL, DOUBLE PRECISION, INTEGER, COMPLEX. Η µετατροπή γίνεται σύµφωνα µε όσα έχουµε αναφέρει για την ανάθεση στους οµώνυµους τύπους. 2.2 Προσδιορισµός του τύπου στη Fortran 90 Στα προηγούµενα έχουµε παρουσιάσει όλους τους στοιχειώδεις τύπους της Fortran για την αναπαράσταση ακεραίων, πραγµατικών, µιγαδικών, χαρακτήρων και λογικών ποσοτήτων. Η Fortran 90 παρέχει τουλάχιστον δύο τύπους για πραγ- µατικές ποσότητες, αυτούς που συνήθως χαρακτηρίζουµε ως απλής και διπλής ακρίβειας. Στη Fortran 77 αυτοί είναι οι REAL και DOUBLE PRECISION αντίστοιχα. Η Fortran 90 τους διατήρησε, εισήγαγε όµως ένα πιο γενικό µηχανισµό για την επιλογή του επιθυµητού τύπου. Αυτόν ϑα παρουσιάσουµε παρακάτω. Η επιλογή του πραγµατικού τύπου στη Fortran 90 γίνεται κατά τη δήλωση ως εξής : REAL ( prc ) : : a Με την παραπάνω εντολή, το a ορίζεται ως πραγµατική µεταβλητή µε είδος (kind) prc. Η ποσότητα εντός των παρενθέσεων είναι µια ακέραια σταθερή ποσότητα, µε όνοµα της επιλογής µας. Προφανώς, προτού τη χρησιµοποιήσουµε πρέπει να την έχουµε ορίσει και να της έχουµε αποδώσει τιµή. Η επιλογή του είδους του πραγµατικού τύπου, η τιµή δηλαδή της ποσότητας prc στο συγκεκριµένο παράδειγµα, γίνεται µε έναν από τους ακόλουθους τρόπους : µε τη χρήση της ενσωµατωµένης συνάρτησης SELECTED_REAL_KIND(). Ως όρισµα τής δίνουµε το πόσα ψηφία (στο δεκαδικό σύστηµα) επιθυµούµε να έχουµε σωστά. Π.χ. INTEGER, PARAMETER : : prc = SELECTED_REAL_KIND( 1 2)

24 18 ΙΆΛΕΞΗ 2. Στην παραπάνω δήλωση ορίσαµε µια ακέραια σταθερά µε όνοµα prc και της δώσαµε την κατάλληλη τιµή για να έχουµε πραγµατικούς µε τουλάχιστον 12 ψηφία σωστά (όταν τη χρησιµοποιήσουµε σε δήλωση πραγµατικού για τον προσδιορισµό του είδους του). µε τη χρήση της ενσωµατωµένης συνάρτησης KIND(). Ως όρισµα τής δίνουµε έναν πραγµατικό αριθµό ή πραγµατική ποσότητα και µας επιστρέφει το είδος του. Εποµένως η δήλωση INTEGER, PARAMETER : : prc = KIND( 1. 0D0) αποδίδει στη σταθερά prc το είδος των πραγµατικών αριθµών διπλής α- κρίβειας. Συνοψίζοντας : επιλέγουµε πρώτα το είδος του πραγµατικού αριθµού που ϑέλουµε, είτε µε το πόσα σωστά ψηφία επιθυµούµε ή δίνοντας το είδος άλλου πραγµατικού αριθµού. Κατόπιν, ορίζουµε τους δικούς µας πραγµατικούς αριθ- µούς συµπληρώνοντας στη δήλωση το REAL µε το επιθυµητό είδος σε παρένθεση. Συνήθης εφαρµογή των παραπάνω είναι η εξής : INTEGER, PARAMETER : : prc = SELECTED_REAL_KIND( 1 2) REAL ( prc ) : : c ή INTEGER, PARAMETER : : prc = KIND( 1. 0D0) REAL ( prc ) : : b Οι παραπάνω εντολές ορίζουν τη µεταβλητή b ως πραγµατική ποσότητα µε είδος ίδιο µε αυτό του αριθµού 1.0D0, δηλαδή γίνεται διπλής ακρίβειας. Ανάλογα, η µεταβλητή c είναι πραγµατική µε είδος κατάλληλο για να έχουµε τουλάχιστον 12 σωστά ψηφία. Προσέξτε ότι αν Ϲητήσουµε πολύ µεγάλη ακρίβεια, η τιµή που ϑα πάρει το prc δε ϑα αντιστοιχεί σε κανένα είδος, οπότε ϑα προκύψει λάθος κατά τη µεταγλώττιση. Τα παραπάνω ισχύουν και για τους υπόλοιπους ενσωµατωµένους τύπους. Ουσιαστική χρησιµότητα έχει µόνο η δυνατότητα να ορίσουµε µιγαδικούς αριθµούς διπλής ακρίβειας : INTEGER, PARAMETER : : prc = KIND( 1. 0D0) COMPLEX ( prc ) : : z Με τις παραπάνω εντολές ο z είναι µιγαδική µεταβλητή που αποτελείται από δύο πραγµατικούς διπλής ακρίβειας Προσδιορισµός του είδους αριθµητικών σταθερών Στη Fortran 90 ισχύουν όσα αναφέραµε στην 1.4 για τις πραγµατικές σταθε- ϱές. Ετσι, ο αριθµός 340 γράφεται ως 3.4E2 ή αν ϑέλουµε να είναι απλής ακρίβειας ενώ γράφεται ως 3.4D2 ώστε να είναι διπλής ακρίβειας. Γενικότερα, αν επιθυµούµε να έχουµε τον αριθµό ως πραγµατικό µε είδος prc, τον γράφουµε ως εξής

25 2.3. ΕΝΣΩΜΑΤΩΜ ΕΝΕΣ ΑΡΙΘΜΗΤΙΚ ΕΣ ΣΥΝΑΡΤ ΗΣΕΙΣ _prc ή, ισοδύναµα, 3.4E2_prc Συνήθης εφαρµογή των παραπάνω είναι η εξής : INTEGER, PARAMETER : : prc = KIND( 1. 0D0) REAL ( prc ) : : a, b REAL ( prc ), PARAMETER : : pi = _prc a = 2.4_prc b = a + 5.6E2_prc Ενα πολύ σηµαντικό πλεονέκτηµα του νέου τρόπου επιλογής του είδους, αν εφαρµοστεί συστηµατικά, είναι ότι η αλλαγή της τιµής µιας ποσότητας, της στα- ϑεράς που αντιστοιχεί στο είδος, αλλάζει σε όλο τον κώδικά µας την ακρίβεια των υπολογισµών. 2.3 Ενσωµατωµένες αριθµητικές συναρτήσεις Εκτός από αυτές (AIMAG( ), CONJG( ), CMPLX( )) που παρουσιάσαµε στην 2.1.3, η Fortran παρέχει µια πληθώρα αριθµητικών συναρτήσεων. Οι πιο χρήσι- µες παρουσιάζονται στον Πίνακα 2.1. Προσέξτε ότι υπάρχουν συναρτήσεις που δέχονται πραγµατικό όρισµα και επιστρέφουν αριθµό µε τον ίδιο τύπο µε το όρισµα (πραγµατικό) και ίδιας ακρίβειας. Αν, εποµένως, δεχθούν όρισµα τύπου DOUBLE PRECISION επιστρέφουν DOUBLE PRECISION. Παραδείγµατα : Ενα πρόγραµµα Fortran που υπολογίζει και τυπώνει την τετραγωνική ϱίζα ενός πραγµατικού αριθµού που εισάγεται από τον χρήστη είναι το ακόλου- ϑο : PROGRAM riza IMPLICIT NONE DOUBLE PRECISION : : x PRINT, "Dwse ena pragmatiko " READ (, ) x PRINT, "H t e t. riza einai " WRITE (, ) SQRT( x ) END PROGRAM riza Ο υπολογισµός του ηµιτόνου της γωνίας που δίνει ο χρήστης µπορεί να γίνει µε το εξής πρόγραµµα

26 20 ΙΆΛΕΞΗ 2. Συνάρτηση Επιστρεφόµενη τιµή Παρατηρήσεις abs(x) Απόλυτη τιµή του ορίσµατος. ceiling(x) Ο µικρότερος ακέραιος που δεν είναι µικρότερος από το όρισµα. floor(x) Ο µεγαλύτερος ακέραιος που δεν είναι µεγαλύτερος από το όρισµα. int(x) Το ακέραιο µέρος του ορίσµατος ως ακέραιος. nint(x) Η πλησιέστερη στο όρισµα ακέραια τιµή ως ακέραιος. aint(x) Το ακέραιο µέρος του ορίσµατος ως πραγµατικός. anint(x) Η πλησιέστερη στο όρισµα ακέραια τιµή ως πραγµατικός. real(x) Το όρισµα ως πραγµατικός απλής ακρίβειας. Αν το όρισµα είνα µιγαδικός επιστρέφεται το πραγµατικό του µέρος. dble(x) Το όρισµα ως πραγµατικός διπλής ακρίβειας. conjg(x) Ο µιγαδικός συζυγής του ορίσµατος. aimag(x) Το ϕανταστικό µέρος του (µιγαδικού) ορίσµατος. sqrt(x) Η τετραγωνική ϱίζα του ορίσµατος. Το όρισµα πρέπει να είναι µη αρνητικό. cos(x) Συνηµίτονο. Το όρισµα σε rad. sin(x) Ηµίτονο. Το όρισµα σε rad. tan(x) Εφαπτοµένη. Το όρισµα σε rad. acos(x) Τόξο συνηµιτόνου. Το όρισµα στο [ 1 : 1], το αποτέλεσµα στο [0 : π] σε rad. asin(x) Τόξο ηµιτόνου. Το όρισµα στο [ 1 : 1], το αποτέλεσµα στο [ π/2 : π/2] σε rad. atan(x) Τόξο εφαπτοµένης. Το αποτέλεσµα στο [ π/2 : π/2] σε rad. atan2(y, x) Τόξο εφαπτοµένης arctan(y/x). Τα πρόσηµα των ορισµάτων καθορίζουν το τεταρτηµόριο. Το αποτέλεσµα στο ( π : π] σε rad. cosh(x) Υπερβολικό συνηµίτονο. sinh(x) Υπερβολικό ηµίτονο. tanh(x) Υπερβολική εφαπτοµένη. exp(x) Εκθετικό. log(x) Φυσικός λογάριθµος (ln). Πρέπει το όρισµα να είναι ϑετικό. log10(x) εκαδικός λογάριθµος (log). Πρέπει το όρισµα να είναι ϑετικό. mod(x,y) Το υπόλοιπο της διαίρεσης x/y. Επιστρέφει το a int(a/p) p. Τα a,p ίδιου τύπου, ακέραιου ή πραγµατικού. max(x1,x2,...) Ο µεγαλύτερος από τα δύο ή περισσότερα ορίσµατα. Τα ορίσµατα πρέπει να είναι ίδιου τύπου. min(x1,x2,...) Ο µικρότερος από τα δύο ή περισσότερα ορίσµατα. Τα ορίσµατα πρέπει να είναι ίδιου τύπου. dim(x,y) max(x y,0.0). Τα ορίσµατα πρέπει να είναι ίδιου τύπου, ακέραιου ή πραγµατικού. Πίνακας 2.1: Ενσωµατωµένες συναρτήσεις της Fortran.

27 2.4. ΣΧΕΣΙΑΚΟ Ι ΚΑΙ ΛΟΓΙΚΟ Ι ΤΕΛΕΣΤ ΕΣ 21 PROGRAM imitono IMPLICIT NONE DOUBLE PRECISION : : theta, x PRINT, "Dwse ena pragmatiko " READ (, ) theta x = SIN ( theta ) PRINT, " To imitono einai " WRITE (, ) x END PROGRAM imitono Εντός των παρενθέσεων που ακολουθούν το όνοµα της συνάρτησης µπορεί να εµφανίζεται µία σταθερά ή µεταβλητή ή οποιαδήποτε πολύπλοκη έκφραση (που µπορεί να περιλαµβάνει άλλες συναρτήσεις), αρκεί να µπορεί να µετατραπεί στον κατάλληλο τύπο για το όρισµα, όπως αυτός προσδιορίζεται στον Πίνακα 2.1. Προσέξτε ότι οι τριγωνοµετρικές συναρτήσεις δέχονται ως όρισµα ή επιστρέφουν γωνία εκφρασµένη σε ακτίνια ( rad). 2.4 Σχεσιακοί και Λογικοί Τελεστές Η Fortran υποστηρίζει τη σύγκριση αριθµητικών ποσοτήτων (ή ποσοτήτων τύπου χαρακτήρα) µε τη ϐοήθεια των σχεσιακών τελεστών (Πίνακας 2.2). Το απο- == ίσο /= άνισο > µεγαλύτερο < µικρότερο >= µεγαλύτερο ή ίσο <= µικρότερο ή ίσο Πίνακας 2.2: Σχεσιακοί τελεστές στη Fortran. τέλεσµα της σύγκρισης είναι λογική ποσότητα και εποµένως έχει τιµή.true. ή.false.. Π.χ. το 3.0>2.0 είναι.true. ενώ το 2/=1+1 είναι.false.. Οι αριθµητικοί τελεστές έχουν µεγαλύτερη προτεραιότητα από τους σχεσιακούς. Προσέξτε ότι, όπως και στα µαθηµατικά, µόνο οι τελεστές ==,/= έχουν νόηµα για µιγαδικές ποσότητες. Για τη σύνδεση λογικών εκφράσεων η Fortran παρέχει τους λογικούς τελεστές.not.,.and.,.or.,.eqv.,.neqv.. Ολοι εκτός από τον πρώτο, δρουν µεταξύ δύο λογικών ποσοτήτων ή εκφράσεων και σχηµατίζουν µια νέα λογική ποσότητα : Ο τελεστής.not. δρα στη λογική έκφραση που τον ακολουθεί και της αλλάζει την τιµή : Το.NOT. (4 > 3) είναι.false. Το.NOT. (4 < 3) είναι.true. Η λογική έκφραση που σχηµατίζεται συνδέοντας δύο άλλες εκφράσεις µε τον τελεστή.and. έχει τιµή.true. µόνο αν και οι δύο ποσότητες είναι.true.. Σε άλλη περίπτωση είναι.false.:

28 22 ΙΆΛΕΞΗ 2. Το (4 > 3).AND. (3.0 > 2.0) είναι.true. Το (4 < 3).AND. (3.0 > 2.0) είναι.false. Ο τελεστής.or. µεταξύ δύο λογικών εκφράσεων σχηµατίζει µια νέα ποσότητα µε τιµή.true. αν έστω και µία από τις δύο ποσότητες είναι.true., αλλιώς είναι.false.: Το (4 > 3).OR. (3.0 < 2.0) είναι.true. Το (4 < 3).OR. (3.0 < 2.0) είναι.false. Η λογική έκφραση που σχηµατίζεται συνδέοντας δύο άλλες εκφράσεις µε τον τελεστή.eqv. έχει τιµή.true. αν οι δύο ποσότητες έχουν την ίδια τιµή σε άλλη περίπτωση είναι.false.: Το (4 < 3).EQV. (3.0 < 2.0) είναι.true. Το (4 < 3).EQV. (3.0 > 2.0) είναι.false. Ο τελεστής.neqv. µεταξύ λογικών εκφράσεων σχηµατίζει ποσότητα µε τιµή.true. αν οι δύο ποσότητες έχουν διαφορετική τιµή αλλιώς είναι.false.: Το (4 < 3).NEQV. (3.0 < 2.0) είναι.false. Το (4 < 3).NEQV. (3.0 > 2.0) είναι.true. Παρατηρείστε ότι οι δύο τελευταίοι τελεστές,.eqv. και.neqv., ουσιαστικά ελέγχουν την ισότητα ή ανισότητα λογικών ποσοτήτων. Μια έκφραση µε σχεσιακούς ή λογικούς τελεστές της Fortran µπορεί να ανατεθεί σε µεταβλητές τύπου LOGICAL: LOGICAL : : INTEGER : : a, b i, max... a = 3==2 b = ( ( i > 0).AND. ( i < max) ) 2.5 Εντολές Ελέγχου IF Η εντολή IF είναι µία από τις ϐασικές δοµές διακλάδωσης κάθε γλώσσας προγραµµατισµού. Ελέγχει τη ϱοή του κώδικα ανάλογα µε τη (λογική) τιµή µιας συνθήκης, δηλαδή µιας ποσότητας ή έκφρασης λογικού τύπου. Στη Fortran συντάσσεται ως εξής : IF ( condition ) THEN // block A ELSE // block B END IF

29 2.5. ΕΝΤΟΛ ΕΣ ΕΛ ΕΓΧΟΥ 23 Εάν η συνθήκη (condition), είναι αληθής, εκτελούνται οι εντολές του τµήµατος Α. Αν η συνθήκη είναι ψευδής, τότε εκτελείται το block των εντολών µεταξύ του ELSE και του END IF (τµήµα Β). Το κάθε τµήµα µπορεί να αποτελείται από καµία, µία, ή περισσότερες εντολές. Π.χ. IF ( val > 0.0d0 ) THEN PRINT, "The number i s positive " max = val ELSE PRINT, "The number i s not positive " END IF Το κάθε τµήµα µπορεί να περιλαµβάνει οποιεσδήποτε άλλες εντολές και ϐέβαια άλλο IF. Παρατηρήστε ότι η στοίχιση των εντολών υποδηλώνει ότι ϐρίσκονται στο εσωτερικό µιας (σύνθετης) εντολής. εν είναι υποχρεωτική αλλά διευκολύνει τον προγραµµατιστή στην κατανόηση του κώδικα. Στην περίπτωση που το τµήµα µετά το ELSE είναι κενό, η λέξη ELSE µπορεί να παραληφθεί : IF ( condition ) THEN END IF Εναλλακτική σύνταξη της περίπτωσης χωρίς τµήµα ELSE και µε µία µόνο εντολή στο σώµα του IF, δηλαδή της IF ( condition ) THEN "command" END IF είναι η ακόλουθη : IF ( condition ) "command" Παρατηρήστε ότι παραλείπονται τα THEN, END IF. Αναφέραµε ότι στο σώµα ενός IF µπορεί να περιέχεται άλλο IF, π.χ. IF ( cond1 ) THEN... ELSE IF ( cond2 ) THEN... ELSE... END IF END IF Συντετµηµένη µορφή της παραπάνω δοµής είναι η IF ( cond1 ) THEN... ELSE IF ( cond2 ) THEN...

30 24 ΙΆΛΕΞΗ 2. ELSE... END IF Γενικότερα, µπορούµε να έχουµε µια ακολουθία από ELSE IF: IF ( cond1 ) THEN... ELSE IF ( cond2 ) THEN... ELSE IF ( cond3 ) THEN... ELSE IF ( cond4 ) THEN... ELSE... END IF Στη συγκεκριµένη µορφή του IF, γίνεται έλεγχος των συνθηκών cond1, cond2,... διαδοχικά. Αν κάποια ικανοποιείται, εκτελούνται οι εντολές που συνδέονται µε τη συγκεκριµένη συνθήκη. Αν δεν ικανοποιείται καµµία, εκτελούνται οι εντολές µετά το ELSE. Η δοµή αυτή, µε τα πολλαπλά ELSE IF, δυσκολεύει την κατανόηση του κώδικα και γι αυτό είναι καλό να αποφεύγεται. Σε κάποιες περιπτώσεις η χρήση της δοµής SELECT CASE ( 2.5.2) είναι προτιµότερη SELECT CASE Η δοµή SELECT CASE αποτελεί κάποιες ϕορές, µια πιο κοµψή και κατανοητή εκδοχή πολλαπλών εσωκλειόµενων ή διαδοχικών IF. Η σύνταξή της είναι : SELECT CASE ( i ) CASE ( value1 )... CASE ( value2 ) CASE ( valuen )... CASE default... END SELECT Η τιµή ελέγχου i πρέπει να είναι ακέραιου τύπου (ή λογικού ή χαρακτήρα). Οι τιµές value1, value2,...,valuen πρέπει να είναι σταθερές αντίστοιχου τύπου και διακριτές µεταξύ τους (να µην επαναλαµβάνονται). Κατά την εκτέλεση, η τιµή ελέγχου i συγκρίνεται µε κάθε µία από τις value1, value2,...,valuen. Αν η τιµή της περιλαµβάνεται σε αυτές, τότε εκτελούνται οι εντολές που ακολουθούν το αντίστοιχο CASE. Οταν αυτές εξαντληθούν, η εκτέλεση συνεχίζει µε την πρώτη εντολή µετά το END SELECT. Αν δεν ϐρεθεί η τιµή της στις value1, value2,...,valuen εκτελείται το τµήµα των εντολών του default, αν υπάρχει. Αλλιώς, η εκτέλεση συνεχίζει µετά το END SELECT.

31 2.5. ΕΝΤΟΛ ΕΣ ΕΛ ΕΓΧΟΥ 25 Οι σχετικές ϑέσεις των CASE µπορούν να είναι οποιεσδήποτε. Παράδειγµα : Εστω ότι σε ένα παιχνίδι ϑέλουµε να αντιστοιχήσουµε ένα αριθµό που ϑα πληκτρολογεί ο χρήστης µε την κατεύθυνση στην οποία ϑα κινηθεί ο ήρωας του παιχνιδιού. Εστω ακόµη ότι η συσχέτιση είναι 0 επάνω, 1 κάτω, 2 αριστερά, 3 δεξιά, ενώ για άλλη τιµή να µένει ακίνητος. Μπορούµε να γράψουµε τον εξής κώδικα INTEGER : : i CHARACTER ( 5 ) : : direction READ, i SELECT CASE ( i ) CASE ( 0 ) direction = "up" CASE ( 1 ) direction = "down" CASE ( 2 ) direction = " l e f t " CASE ( 3 ) direction = " right " CASE default direction = " none" END SELECT PRINT, " The direction i s ", direction Οταν επιθυµούµε να εκτελεστούν οι ίδιες εντολές για πολλές τιµές του i, µπο- ϱούµε να τις οµαδοποιήσουµε. Π.χ. έστω ότι οι αριθµοί (0, 4, 8) είναι ισοδύναµοι και αντίστοιχα οι (1, 5, 9), (2, 6) και (3, 7). Ο κώδικας δεν επαναλαµβάνεται αν τον τροποποιήσουµε ως εξής SELECT CASE ( i ) CASE (0,4,8) direction = "up" CASE (1,5,9) direction = "down" CASE (2,6) direction = " l e f t " CASE (3,7) direction = " right " CASE default direction = " none" END SELECT Τέλος, στην περίπτωση που έχουµε συνεχόµενες επιθυµητές τιµές, µπορούµε να τις δώσουµε µε τη µορφή χαµηλή τιµή : υψηλή τιµή Ετσι, ένα CASE µε τη µορφή

32 26 ΙΆΛΕΞΗ 2. CASE ( 0 : 9 )... εκτελείται όταν η τιµή ελέγχου είναι στο διάστηµα [0, 9]. Αν παραληφθεί το ένα από τα δύο όρια ϑεωρείται ότι έχουµε ϐάλει το µικρότερο ή µεγαλύτερο (ανάλογα) αριθµό της Fortran. Π.χ. SELECT CASE ( i ) CASE (: 1)...! commands f o r i < 0 CASE ( 0 )...! commands f o r i == 0 CASE ( 1 : )...! commands f o r i > 0 END SELECT

33 ιάλεξη 3 Πίνακες Εντολές επανάληψης Χρησιµοποιώντας τους ϑεµελιώδεις, ενσωµατωµένους τύπους που είδαµε ως τώρα, µπορούµε να ορίσουµε άλλους, σύνθετους, µε κατάλληλο τρόπο ώστε να αναπαριστούν έννοιες του προβλήµατός µας. Ετσι για οµάδα σχετιζόµενων ποσοτήτων ίδιου τύπου χρησιµοποιούµε πίνακα ( array) ενώ για σύνολο µεταβλητών διαφορετικού (ή και ίδιου) τύπου κατάλληλη είναι η δοµή TYPE που ϑα περιγράψουµε σε επόµενο κεφάλαιο. 3.1 Πίνακας Συχνά υπάρχει η ανάγκη να χρησιµοποιήσουµε ένα σύνολο σχετιζόµενων ποσοτήτων µε ίδιο τύπο. Για παράδειγµα, η ϑερµοκρασία ενός τόπου σε µια συγκεκριµένη ηµέρα µπορεί να αναπαρασταθεί µε µια πραγµατική µεταβλητή τι κάνουµε όµως αν επιθυµούµε να αποθηκεύσουµε τις ϑερµοκρασίες ενός µήνα ή ενός έτους; Θα µπορούσαµε να δηλώσουµε και να χρησιµοποιήσουµε 30 ή 365 µεταβλητές, αντιλαµβανόµαστε όµως ότι είναι επίπονη διαδικασία και υπάρχει µεγάλη πιθανότητα για λάθη. Η Fortran, όπως και όλες οι γλώσσες προγραµµατισµού, µας δίνει τη δυνατότητα να τις ορίσουµε όλες µαζί µε µία εντολή. Ετσι, ένα σύνολο 30 πραγµατικών µεταβλητών το αναπαριστούµε µε έναν πραγµατικό πίνακα, µονοδιάστατο, 30 ϑέσεων. Η δήλωση τέτοιου πίνακα µε όνοµα π.χ. temperature γίνεται ως εξής REAL : : temperature (30) ή, ισοδύναµα, REAL, DIMENSION ( 3 0) : : temperature Η δήλωση ενός πίνακα µπορεί να γίνει ταυτόχρονα µε άλλες, απλές, µεταβλητές ή και άλλους πίνακες. Π.χ. η εντολή REAL : : a, b ( 3 ), c (10) δηµιουργεί µια απλή µεταβλητή µε όνοµα a, ένα πίνακα 3 στοιχείων, τον b, και έναν άλλο πίνακα 10 ϑέσεων, τον c, όλα πραγµατικά. Προσέξτε όµως, στον α- κόλουθο κώδικα, την εφαρµογή του δεύτερου τρόπου δήλωσης που είδαµε πιο πάνω : 27

34 28 ΙΆΛΕΞΗ 3. Π ΙΝΑΚΕΣ ΕΝΤΟΛ ΕΣ ΕΠΑΝΆΛΗΨΗΣ INTEGER, DIMENSION (10) : : a, b, c, d ( 4 ) Με την παραπάνω εντολή δηµιουργούµε 4 µονοδιάστατους πίνακες ακεραίων, τους τρεις (a, b, c) µε 10 στοιχεία και τον τέταρτο (d) µε 4. Στις δηλώσεις πινάκων το πλήθος των στοιχείων πρέπει να είναι ακέραια σταθερή ποσότητα, γνωστή κατά τη µεταγλώττιση. Αυτό σηµαίνει ότι εκτός από ακέραιο αριθµό για τη διάσταση, µπορούµε να χρησιµοποιήσουµε ποσότητα που έχει την ιδιότητα PARAMETER, Πρόσβαση Στοιχείων Η πρόσβαση σε κάθε στοιχείο του µονοδιάστατου πίνακα γίνεται χρησιµοποιώντας το όνοµα του πίνακα ακολουθούµενο από ένα ακέραιο αριθµό (ή έκφραση που δίνει ακέραιο) µέσα σε παρενθέσεις, από 1 έως το πλήθος των στοιχείων του πίνακα 1. Ετσι, το πρώτο στοιχείο είναι το temperature(1), το δεύτερο είναι το temperature(2), ενώ το τελευταίο είναι το temperature(30). Με αυτά τα ονόµατα συµµετέχουν σε εκφράσεις. Π.χ., ο µέσος όρος των 3 πρώτων στοιχείων του temperature είναι ο REAL : : mo3 mo3 = ( temperature ( 1 ) + temperature ( 2 ) + temperature ( 3 ) ) / Απόδοση τιµής Απόδοση τιµής σε στοιχείο πίνακα γίνεται µε τους δύο γνωστούς τρόπους : της εντολής ανάθεσης και της εντολής ανάγνωσης από το πληκτρολόγιο (ή αρχείο). Π.χ. DOUBLE PRECISION : : a ( 5 ) a ( 1 ) = 3.4d0 READ (, ) a ( 2 ) Ενας πίνακας µπορεί να πάρει τιµή ως σύνολο µε τους ακόλουθους τρόπους : δίνοντας µεταξύ (/ και /), ποσότητες κατάλληλου τύπου για όλα τα στοιχεία του. Ετσι, ο πραγµατικός µονοδιάστατος πίνακας, 5 στοιχείων, µε όνοµα c, αποκτά τις τιµές 3.0, 4.5, 2.0, 100.0, 0.99 για κάθε στοιχείο του αντίστοιχα, µε την ακόλουθη εντολή ανάθεσης DOUBLE PRECISION : : c ( 5 ) c = (/ 3.0d0, 4.5d0, 2.0d0, 1.0d2, 0.99d0 /) µε ανάθεση άλλου πίνακα της ίδιας διάστασης και πλήθους στοιχείων (ή τµήµατος πίνακα µε αυτά τα χαρακτηριστικά, όπως ϑα δούµε παρακάτω). Π.χ. DOUBLE PRECISION, DIMENSION ( 5 ) : : c, d 1 στις περιπτώσεις που οι δηλώσεις γίνονται µε τον τρόπο που είδαµε.

35 3.1. Π ΙΝΑΚΑΣ 29 c = (/ 3.0d0, 4.5d0, 2.0d0, 1.0d2, 0.99d0 /) d = c µε ανάγνωση από το πληκτρολόγιο ή από αρχείο, ποσοτήτων κατάλληλου πλήθους και τύπου όταν εκτελεστεί η εντολή READ για ολόκληρο τον πίνακα : DOUBLE PRECISION, DIMENSION ( 5 ) : : c READ, c! needs 5 reals µε µετατροπή άλλου πίνακα ίδιας ή διαφορετικής διάστασης χρησιµοποιώντας ενσωµατωµένες συναρτήσεις (RESHAPE( ), SPREAD( ), CSHIFT( )/ EOSHIFT( ), κ.λ.π.). εν ϑα επεκταθούµε περισσότερο σε αυτές Πολυδιάστατος πίνακας Πολύ συχνά σε επιστηµονικούς κώδικες, εµφανίζεται η ανάγκη να αναπαραστήσουµε ποσότητες σε 2 ή 3 διαστάσεις, π.χ. σε ένα καρτεσιανό πλέγµα. Η Fortran παρέχει τη δυνατότητα να ορίσουµε διδιάστατους και, γενικότερα, πολυδιάστατους πίνακες (µέχρι 7 διαστάσεων). Η εντολή δήλωσης ενός πραγµατικού διδιάστατου πίνακα είναι η εξής DOUBLE PRECISION : : a(10,20) ή, ισοδύναµα, DOUBLE PRECISION, DIMENSION (10,20) : : a Το στοιχείο της γραµµής i και στήλης j είναι το a(i, j ). Ο,τι ισχύει για µονοδιάστατους πίνακες µπορεί να γενικευτεί και για τους πολυδιάστατους. 2 Παράδειγµα : Εστω ότι έχουµε τις ϑερµοκρασίες ενός τόπου για κάθε ηµέρα συγκεκριµένου έτους. Αυτές µπορούν να µας δίνονται µε την παρακάτω µορφή Ηµέρα Θερµοκρασία ( C) Οι ηµέρες αριθµούνται από το 1 έως το Για την ακρίβεια, ένας πολυδιάστατος πίνακας αποθηκεύεται εσωτερικά ως µονοδιάστατος ξεκινώντας από τα στοιχεία για τα οποία ο πρώτος δείκτης αλλάζει πιο γρήγορα, κατόπιν ο δεύτερος, κλπ. Ετσι, ένας πίνακας a, 2 3, αποθηκεύεται ως µονοδιάστατος µε διαδοχικά στοιχεία τα a(1,1), a(2,1), a(1,2), a(2,2), a(3,1), a(3,2).

36 30 ΙΆΛΕΞΗ 3. Π ΙΝΑΚΕΣ ΕΝΤΟΛ ΕΣ ΕΠΑΝΆΛΗΨΗΣ Παρατηρήστε ότι για να προσδιορίσουµε µια συγκεκριµένη ϑερµοκρασία πρέπει να γνωρίζουµε σε ποιά γραµµή είναι, δηλ. σε ποιά ηµέρα αναφερόµαστε. Με άλλα λόγια, η πληροφορία µας (οι ϑερµοκρασίες) παραµετροποιείται µε ένα ακέραιο αριθµό. Είναι ϕυσιολογικό, σε πρόγραµµά µας, να αποθηκεύσουµε τις ϑερµοκρασίες σε ένα µονοδιάστατο πίνακα : REAL : : tempr(365) Εναλλακτικά, οι ϑερµοκρασίες µπορεί να µας δίνονται στην ακόλουθη µορφή Η πρώτη γραµµή παραθέτει τις ηµέρες ενός µήνα ενώ η πρώτη στήλη παραθέτει τους µήνες. Παρατηρήστε ότι για να προσδιορίσουµε µια συγκεκριµένη ϑερµοκρασία πρέπει να καθορίσουµε δύο ακέραιους αριθµούς : τον µήνα (γραµµή) και την ηµέρα (στήλη). Εποµένως, σε ένα προγραµµά µας είναι ϕυσιολογικό να χρησιµοποιήσουµε για τις ϑερµοκρασίες ένα διδιάστατο πίνακα 12 31, REAL : : tempr(12,31) που ϑα αποθηκεύει ουσιαστικά την ίδια πληροφορία µε την προηγούµενη πε- ϱίπτωση. Ετσι, η ϑερµοκρασία στις 14 Απριλίου είναι στη ϑέση tempr(4,14) Παρατηρήσεις Ενας πίνακας µπορεί, όπως και κάθε άλλη ποσότητα, να οριστεί ως σταθερή περιλαµβάνοντας στη δήλωση την ιδιότητα PARAMETER, 1.5, µε ταυτόχρονη απόδοση αρχικής (και µόνιµης) τιµής : DOUBLE PRECISION, DIMENSION( 3 ), PARAMETER : : c o e f f i c i e n t s = (/2.0d0, 2.5d0, 4.0d0/) Υπάρχουν περιπτώσεις που το σύνολο των ποσοτήτων που αναπαριστά ο πίνακας έχει καταλληλότερη αρίθµηση, πιο φυσική, που ξεκινά από άλλο αριθµό και όχι το 1. Π.χ. ένας πίνακας που αποθηκεύει τις πρώτες 6 δυνάµεις του 2 (2 0, 2 1, 2 2,...,2 5 ) είναι πολύ πιο ϐολικό να αριθµεί τα στοιχεία του από 0 έως 5. Η κατάλληλη δήλωση αυτού του µονοδιάστατου πίνακα περιλαµβάνει τους αριθµούς ϑέσης του πρώτου και του τελευταίου στοιχείου. Π.χ. INTEGER, PARAMETER : : powersof2 ( 0 : 5 ) = (/1,2,4,8,16,32/) Με την παραπάνω δήλωση, ο πίνακας έχει πάλι 6 στοιχεία, στις ϑέσεις powersof2 (0), powersof2(1),..., powersof2(5). Γενικότερα, η δήλωση 3 Θα πρέπει να προσέχουµε ϐέβαια να µην δώσουµε για δείκτες συνδυασµούς που δεν έχουν νόηµα, π.χ. (2,30) ή (6,31)....

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

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

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

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

Εισαγωγή στη γλώσσα προγραμματισμού Fortran 95 Τ Ε Τ Υ Π Κ Εισαγωγή στη γλώσσα προγραμματισμού Fortran 95 Σημειώσεις Διαλέξεων Σ Σ Copyright 2004 2017 Σταμάτης Σταματιάδης, stamatis@uoc.gr Το έργο αυτό αδειοδοτείται από την άδεια Creative Commons Αναφορά

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

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

Εισαγωγή στη γλώσσα προγραμματισμού Fortran 95 Τ Ε Τ Υ Π Κ Εισαγωγή στη γλώσσα προγραμματισμού Fortran 95 Σημειώσεις Διαλέξεων Σ Σ Copyright 2004 2019 Σταμάτης Σταματιάδης, stamatis@uoc.gr Το έργο αυτό αδειοδοτείται από την άδεια Creative Commons Αναφορά

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

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

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

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

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

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

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

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

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

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

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

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

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

Ρητή μετατροπή αριθμητικής τιμής σε άλλο τύπο. Τι θα τυπωθεί στον παρακάτω κώδικα;

Ρητή μετατροπή αριθμητικής τιμής σε άλλο τύπο. Τι θα τυπωθεί στον παρακάτω κώδικα; Ρητή μετατροπή αριθμητικής τιμής σε άλλο τύπο Τι θα τυπωθεί στον παρακάτω κώδικα; Ρητή μετατροπή αριθμητικής τιμής σε άλλο τύπο Τι θα τυπωθεί στον παρακάτω κώδικα; Χωρίς να αλλάξουμε τον τύπο των a,b,

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

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

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

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

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

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

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

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Κεφάλαιο 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. Εισαγωγή Χαρακτηριστικά της γλώσσας Τύποι δεδοµένων Γλώσσα προγραµµατισµού

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

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

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

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

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

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

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

επιµέλεια Θοδωρής Πιερράτος

επιµέλεια Θοδωρής Πιερράτος Βασικές έννοιες προγραµµατισµού Η ύλη που αναπτύσσεται σε αυτό το κεφάλαιο είναι συναφής µε την ύλη που αναπτύσσεται στο 2 ο κεφάλαιο. Όπου υπάρχουν διαφορές αναφέρονται ρητά. Προσέξτε ιδιαίτερα, πάντως,

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

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

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

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

Εισαγωγή στην C. Μορφή Προγράµµατος σε γλώσσα C

Εισαγωγή στην C. Μορφή Προγράµµατος σε γλώσσα C Εισαγωγή στην C Μορφή Προγράµµατος σε γλώσσα C Τµήµα Α Με την εντολή include συµπεριλαµβάνω στο πρόγραµµα τα πρότυπα των συναρτήσεων εισόδου/εξόδου της C.Το αρχείο κεφαλίδας stdio.h είναι ένας κατάλογος

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

Κεφάλαιο 3ο: Βασικά στοιχεία ενός προγράµµατος της γλώσσας Fortran

Κεφάλαιο 3ο: Βασικά στοιχεία ενός προγράµµατος της γλώσσας Fortran Χρήστος Τσαγγάρης ΕΕ ΙΠ Τµήµατος Μαθηµατικών, Πανεπιστηµίου Αιγαίου Κεφάλαιο 3ο: Βασικά στοιχεία ενός προγράµµατος της γλώσσας Fortran 3.1 Μορφή Προγράµµατος Τα προγράµµατα Fortran γράφονται σε αρχείο

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

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

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

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

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

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

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

ΗΥ-150. Προγραµµατισµός. Εντολές Ελέγχου Ροής

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

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

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

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

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

a = 10; a = k; int a,b,c; a = b = c = 10;

a = 10; a = k; int a,b,c; a = b = c = 10; C: Από τη Θεωρία στην Εφαρµογή Κεφάλαιο 4 ο Τελεστές Γ. Σ. Τσελίκης Ν. Δ. Τσελίκας Ο τελεστής εκχώρησης = Ο τελεστής = χρησιµοποιείται για την απόδοση τιµής (ή αλλιώς ανάθεση τιµής) σε µία µεταβλητή Π.χ.

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

C: Από τη Θεωρία στην Εφαρµογή 2 ο Κεφάλαιο

C: Από τη Θεωρία στην Εφαρµογή 2 ο Κεφάλαιο C: Από τη Θεωρία στην Εφαρµογή Κεφάλαιο 2 ο Τύποι Δεδοµένων Δήλωση Μεταβλητών Έξοδος Δεδοµένων Γ. Σ. Τσελίκης Ν. Δ. Τσελίκας Μνήµη και Μεταβλητές Σχέση Μνήµης Υπολογιστή και Μεταβλητών Η µνήµη (RAM) ενός

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

ΚΕΦΑΛΑΙΟ 7 ο. Έτσι ο προγραµµατισµός µε τη ΓΛΩΣΣΑ εστιάζεται στην ανάπτυξη του αλγορίθµου και τη µετατροπή του σε σωστό πρόγραµµα.

ΚΕΦΑΛΑΙΟ 7 ο. Έτσι ο προγραµµατισµός µε τη ΓΛΩΣΣΑ εστιάζεται στην ανάπτυξη του αλγορίθµου και τη µετατροπή του σε σωστό πρόγραµµα. ΚΕΦΑΛΑΙΟ 7 ο 1. Επιλογή της κατάλληλης γλώσσας προγραµµατισµού Εκατοντάδες γλώσσες προγραµµατισµού χρησιµοποιούνται όπως αναφέρθηκε σήµερα για την επίλυση των προβληµάτων µε τον υπολογιστή, τη δηµιουργία

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

int array[10]; double arr[5]; char pin[20]; Προγραµµατισµός Ι

int array[10]; double arr[5]; char pin[20]; Προγραµµατισµός Ι Εισαγωγή Στον Προγραµµατισµό «C» Πίνακες Πανεπιστήµιο Πελοποννήσου Τµήµα Πληροφορικής & Τηλεπικοινωνιών Νικόλαος Δ. Τσελίκας Νικόλαος Προγραµµατισµός Δ. Τσελίκας Ι Πίνακες στη C Ένας πίνακας στη C είναι

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

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

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

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

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

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

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

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

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

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

3.1 Αριθμητικοί και Λογικοί Τελεστές, Μετατροπές Τύπου (Casting)

3.1 Αριθμητικοί και Λογικοί Τελεστές, Μετατροπές Τύπου (Casting) Εργαστήριο 3: 3.1 Αριθμητικοί και Λογικοί Τελεστές, Μετατροπές Τύπου (Casting) Η C++, όπως όλες οι γλώσσες προγραμματισμού, χρησιμοποιεί τελεστές για να εκτελέσει τις αριθμητικές και λογικές λειτουργίες.

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΑΝΑΠΤΥΞΗ ΚΑΙ ΣΧΕΔΙΑΣΗ ΛΟΓΙΣΜΙΚΟΥ Η γλώσσα προγραμματισμού C ΕΡΓΑΣΤΗΡΙΟ 2: Εκφράσεις, πίνακες και βρόχοι 14 Απριλίου 2016 Το σημερινό εργαστήριο

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

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 95

Εισαγωγή στη γλώσσα προγραμματισμού Fortran 95 Εισαγωγή στη γλώσσα προγραμματισμού Fortran 95 Σταμάτης Σταματιάδης Τμήμα Επιστήμης και Τεχνολογίας Υλικών, Πανεπιστήμιο Κρήτης Διεξαγωγή μαθήματος Διαλέξεις Πέμπτη 14:00-16:00 στο αμφιθέατρο A του Τμήματος

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

Επιλογή και επανάληψη. Λογική έκφραση ή συνθήκη

Επιλογή και επανάληψη. Λογική έκφραση ή συνθήκη Επιλογή και επανάληψη Η ύλη που αναπτύσσεται σε αυτό το κεφάλαιο είναι συναφής µε την ύλη που αναπτύσσεται στο 2 ο κεφάλαιο. Όπου υπάρχουν διαφορές αναφέρονται ρητά. Προσέξτε ιδιαίτερα, πάντως, ότι στο

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

Κεφάλαιο 4ο: Εντολές επιλογής

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

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

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Κεφάλαιο 8 : H γλώσσα προγραµµατισµού Pascal

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Κεφάλαιο 8 : H γλώσσα προγραµµατισµού Pascal ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Κεφάλαιο 8 : H γλώσσα προγραµµατισµού Pascal Δοµή προγράµµατος 1. Δοµή προγράµµατος program όνοµα_προγράµµατος(αρχείο_1, αρχείο_2,...αρχείο_ν); ΕΠΙΚΕΦΑΛΙΔΑ ΒΙΒΛΙΟΘΗΚΕΣ uses όνοµα_βιβλιοθήκης,όνοµα_βιβλιοθήκης;

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

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

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

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

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

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

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

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

Το πλήθος των δεικτών και οι µεγαλύτερες τιµές που µπορούν να πάρουν ορίζεται µε µία δηλωτική εντολή που λέγεται Dimension. Χρήστος Τσαγγάρης ΕΕ ΙΠ Τµήµατος Μαθηµατικών, Πανεπιστηµίου Αιγαίου Κεφάλαιο 6ο: Πίνακες Στο κεφάλαιο αυτό θα ασχοληθούµε µε µια από πιο ενδιαφέρουσες δοµές δεδοµένων, τους πίνακες. Οι πίνακες είναι σύνθετες

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

Άσκηση 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 =

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

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ. Δρ. Π. Νικολαΐδου

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ. Δρ. Π. Νικολαΐδου ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ Δρ. Π. Νικολαΐδου Προγραμματίζοντας στη γλώσσα R Εισαγωγή ( 1 ο Μάθημα ) Βασικές εντολές - λειτουργίες Μπορούμε να διαγράψουμε το περιεχόμενο της R κονσόλας επιλέγοντας Edit>Clear

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

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

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

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

if(συνθήκη) {... // οµάδα εντολών } C: Από τη Θεωρία στην Εφαρµογή 5 ο Κεφάλαιο

if(συνθήκη) {... // οµάδα εντολών } C: Από τη Θεωρία στην Εφαρµογή 5 ο Κεφάλαιο C: Από τη Θεωρία στην Εφαρµογή Κεφάλαιο 5 ο Έλεγχος Προγράµµατος Γ. Σ. Τσελίκης Ν. Δ. Τσελίκας Η εντολή if (Ι) Η εντολή if είναι µία από τις βασικότερες δοµές ελέγχου ροής στη C, αλλά και στις περισσότερες

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

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

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

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

Εισαγωγή στη Matlab Βασικές Συναρτήσεις

Εισαγωγή στη Matlab Βασικές Συναρτήσεις Πανεπιστήμιο Θεσσαλίας Σχολή Θετικών Επιστημών Τμήμα Πληροφορικής με Εφαρμογές στη Βιοϊατρική Εργαστήριο Γραμμικής Άλγεβρας Εισαγωγή στη Matlab Βασικές Συναρτήσεις 2016-2017 Εισαγωγή στη Matlab Matlab

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

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

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

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

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

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

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

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι κ. ΠΕΤΑΛΙΔΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ 1 Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται

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

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

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

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

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

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

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

Ορισµοί κεφαλαίου. Σηµαντικά σηµεία κεφαλαίου

Ορισµοί κεφαλαίου. Σηµαντικά σηµεία κεφαλαίου Ορισµοί κεφαλαίου Αλγόριθµος είναι µια πεπερασµένη σειρά ενεργειών, αυστηρά καθορισµένων και εκτελέσιµων σε πεπερασµένο χρόνο, που στοχεύουν στην επίλυση ενός προβλήµατος. Σηµαντικά σηµεία κεφαλαίου Κριτήρια

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

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

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

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

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

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

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

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

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

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

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

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

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

Π. Σταθοπούλου ή Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7

Π. Σταθοπούλου ή Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7 Π. Σταθοπούλου pstath@ece.upatras.gr ή pstath@upatras.gr Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7 Φροντιστήριο : ευτέρα 11πµ-12πµ ΗΛ4 Προηγούµενη ιάλεξη Προτάσεις,

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

Προγραµµατισµός στην Basic

Προγραµµατισµός στην Basic Προγραµµατισµός στην Basic 1. εντολή εισόδου Χρησιµοποιείται η εντολή INPUT, η οποία µπορεί να συνταχθεί : α. INPUT X, αν το δεδοµένο που ζητάει είναι αριθµητικό ή β. INPUT X$, αν το δεδοµένο που ζητάει

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

Επαναληπτικές δοµές. µτ α.τ. Όχι. ! απαγορεύεται µέσα σε µία ΓΙΑ να µεταβάλλουµε τον µετρητή! διότι δεν θα ξέρουµε µετά πόσες επαναλήψεις θα γίνουν

Επαναληπτικές δοµές. µτ α.τ. Όχι. ! απαγορεύεται µέσα σε µία ΓΙΑ να µεταβάλλουµε τον µετρητή! διότι δεν θα ξέρουµε µετά πόσες επαναλήψεις θα γίνουν Επαναληπτικές δοµές Η λογική των επαναληπτικών διαδικασιών εφαρµόζεται όπου µία ακολουθία εντολών εφαρµόζεται σε ένα σύνολο περιπτώσεων που έχουν κάτι κοινό. Όταν ψάχνουµε θέση για να παρκάρουµε κοντά

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

Κεφάλαιο 12 : ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ

Κεφάλαιο 12 : ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Κεφάλαιο 12 : ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ 1. Συναρτήσεις ΣΥΝΑΡΤΗΣΕΙΣ 1.1. Ο λόγος ύπαρξης των συναρτήσεων Όπως είδαµε µία διαδικασία µπορεί να υπολογίζει περισσότερα από ένα αποτελέσµατα τα

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

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

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

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

for for for for( . */

for for for for( . */ Εισαγωγή Στον Προγραµµατισµό «C» Βρόχοι Επανάληψης Πανεπιστήµιο Πελοποννήσου Τµήµα Πληροφορικής & Τηλεπικοινωνιών Νικόλαος Δ. Τσελίκας Νικόλαος Προγραµµατισµός Δ. Τσελίκας Ι Ο βρόχος for Η εντολή for χρησιµοποιείται

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

o AND o IF o SUMPRODUCT

o AND o IF o SUMPRODUCT Πληροφοριακά Εργαστήριο Management 1 Information Συστήματα Systems Διοίκησης ΤΕΙ Τμήμα Ελεγκτικής Ηπείρου Χρηματοοικονομικής (Παράρτημα Πρέβεζας) και Αντικείµενο: Μοντελοποίηση προβλήµατος Θέµατα που καλύπτονται:

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

Σχήµα 5.1: Εισαγωγή της δοµής formula node στο Block Diagram.

Σχήµα 5.1: Εισαγωγή της δοµής formula node στο Block Diagram. Η δοµή Formula Node 1. Η δοµή Formula Node επιτρέπει την εισαγωγή αναλυτικών σχέσεων στο Block Diagram µε πληκτρολόγηση, αποφεύγοντας έτσι την εισαγωγή των εικονίδιων συναρτήσεων απλών αλγεβρικών πράξεων

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

Ψευδοκώδικας. November 7, 2011

Ψευδοκώδικας. November 7, 2011 Ψευδοκώδικας November 7, 2011 Οι γλώσσες τύπου ψευδοκώδικα είναι ένας τρόπος περιγραφής αλγορίθμων. Δεν υπάρχει κανένας τυπικός ορισμός της έννοιας του ψευδοκώδικα όμως είναι κοινός τόπος ότι οποιαδήποτε

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

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

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

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

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

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

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

Σύντοµος Οδηγός της Qbasic. Πέρδος Αθανάσιος Καθηγητής Πληροφορικής

Σύντοµος Οδηγός της Qbasic. Πέρδος Αθανάσιος Καθηγητής Πληροφορικής Σύντοµος Οδηγός της Qbasic Πέρδος Αθανάσιος Καθηγητής Πληροφορικής ηλώσεις Η γλώσσα Qbasic δεν απαιτεί υποχρεωτικά τη δήλωση των µεταβλητών στο τµήµα δηλώσεων, πριν το κύριο µέρος του προγράµµατος. Η δήλωση

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

Προγραμματισμός Ι (ΗΥ120)

Προγραμματισμός Ι (ΗΥ120) Προγραμματισμός Ι (ΗΥ120) Διάλεξη 4: Τελεστές Τελεστές: Τελεστής Ανάθεσης 2 Το σύμβολο της ανάθεσης είναι το = Προσοχή: το σύμβολο ελέγχου ισότητας είναι το ==. Η μορφή των προτάσεων ανάθεσης είναι:

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

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

ΠΛΗΡΟΦΟΡΙΚΗ ΣΤΟ ΕΝΙΑΙΟ ΛΥΚΕΙΟ ΥΠΟΥΡΓΕΙΟ ΠΑΙ ΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΠΛΗΡΟΦΟΡΙΚΗ ΣΤΟ ΕΝΙΑΙΟ ΛΥΚΕΙΟ ΑΝΑΛΥΤΙΚΟ ΠΡΟΓΡΑΜΜΑ Μάθηµα Κατεύθυνσης Πληροφορική Επιστήµη Η.Υ. Γ Ενιαίου Λυκείου ΟΚΤΩΒΡΙΟΣ 2005 1 Αναλυτικό Πρόγραµµα Μάθηµα Κατεύθυνσης:

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

2 ΟΥ και 7 ΟΥ ΚΕΦΑΛΑΙΟΥ

2 ΟΥ και 7 ΟΥ ΚΕΦΑΛΑΙΟΥ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ 2 ΟΥ και 7 ΟΥ ΚΕΦΑΛΑΙΟΥ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΛΓΟΡΙΘΜΩΝ και ΔΟΜΗ ΑΚΟΛΟΥΘΙΑΣ 2.1 Να δοθεί ο ορισμός

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

ΓΛΩΣΣΑ ΑΛΦΑΒΗΤΟ ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ ΣΤΑΘΕΡΕΣ ΜΕΤΑΒΛΗΤΕΣ

ΓΛΩΣΣΑ ΑΛΦΑΒΗΤΟ ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ ΣΤΑΘΕΡΕΣ ΜΕΤΑΒΛΗΤΕΣ ΓΛΩΣΣΑ ΑΛΦΑΒΗΤΟ Κεφαλαία και μικρά γράμματα ελληνικού αλφαβήτου: Α Ω και α ω Κεφαλαία και μικρά γράμματα λατινικού αλφαβήτου: A Z και a z Αριθμητικά ψηφία: 0 9 Ειδικοί χαρακτήρες: + - * / =. ( ),! & κενός

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

Βασικά στοιχεία της Java

Βασικά στοιχεία της Java Βασικά στοιχεία της Java προτάσεις, εκφράσεις, µεταβλητές, σταθερές, τελεστές Ορισµοί Πρόταση (statement) είναι µία απλή εντολή σε µία γλώσσα προγραµµατισµού. Γιαπαράδειγµα: int x=12; Έκφραση (expression)

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

Αλγόριθμοι Αναπαράσταση αλγορίθμων Η αναπαράσταση των αλγορίθμων μπορεί να πραγματοποιηθεί με:

Αλγόριθμοι Αναπαράσταση αλγορίθμων Η αναπαράσταση των αλγορίθμων μπορεί να πραγματοποιηθεί με: Αλγόριθμοι 2.2.1. Ορισμός: Αλγόριθμος είναι μια πεπερασμένη σειρά εντολών, αυστηρά καθορισμένων και εκτελέσιμων σε πεπερασμένο χρόνο, που στοχεύουν στην επίλυση ενός προβλήματος. Τα κυριότερα χρησιμοποιούμενα

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

ΕΙ ΑΓΩΓΉ ΣΗΝ FORTRAN

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

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

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

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

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

Κεφάλαιο 7 ο Βασικές Έννοιες Προγραμματισμού (σελ )

Κεφάλαιο 7 ο Βασικές Έννοιες Προγραμματισμού (σελ ) Κεφάλαιο 7 ο Βασικές Έννοιες Προγραμματισμού (σελ. 147 159) Για τις γλώσσες προγραμματισμού πρέπει να έχουμε υπόψη ότι: Κάθε γλώσσα προγραμματισμού σχεδιάζεται για συγκεκριμένο σκοπό, δίνοντας ιδιαίτερη

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

Προβλήματα, αλγόριθμοι, ψευδοκώδικας

Προβλήματα, αλγόριθμοι, ψευδοκώδικας Προβλήματα, αλγόριθμοι, ψευδοκώδικας October 11, 2011 Στο μάθημα Αλγοριθμική και Δομές Δεδομένων θα ασχοληθούμε με ένα μέρος της διαδικασίας επίλυσης υπολογιστικών προβλημάτων. Συγκεκριμένα θα δούμε τι

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

- Αναπαράσταση ακέραιας τιµής : - Εύρος ακεραίων : - Ακέραιοι τύποι: - Πράξεις µε ακεραίους (DIV - MOD)

- Αναπαράσταση ακέραιας τιµής : - Εύρος ακεραίων : - Ακέραιοι τύποι: - Πράξεις µε ακεραίους (DIV - MOD) Η Γλώσσα Pascal Χαρακτηριστικά Τύποι Δεδοµένων Δοµή προγράµµατος 1. Βασικές έννοιες Χαρακτηριστικά της γλώσσας Pascal Γλώσσα προγραµµατισµού Συντακτικό Σηµασιολογία Αλφάβητο της γλώσσας Pascal (Σύνολο

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

Πρόβλημα 29 / σελίδα 28

Πρόβλημα 29 / σελίδα 28 Πρόβλημα 29 / σελίδα 28 Πρόβλημα 30 / σελίδα 28 Αντιμετάθεση / σελίδα 10 Να γράψετε αλγόριθμο, οποίος θα διαβάζει τα περιεχόμενα δύο μεταβλητών Α και Β, στη συνέχεια να αντιμεταθέτει τα περιεχόμενά τους

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

Τμήμα Πληροφορικής & Επικοινωνιών Δρ. Θεόδωρος Γ. Λάντζος

Τμήμα Πληροφορικής & Επικοινωνιών Δρ. Θεόδωρος Γ. Λάντζος Τμήμα Πληροφορικής & Επικοινωνιών Δρ. Θεόδωρος Γ. Λάντζος http://www.teiser.gr/icd/staff/lantzos lantzos@teiser.gr 1 Πώς δημιουργούμε πρόγραμμα Η/Υ; 1. Ανάλυση του προβλήματος 2. Επινόηση & Σχεδιασμός

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

ΚΕΦΑΛΑΙΟ 9 ΒΑΣΙΚΕΣ ΕΝΤΟΛΕΣ

ΚΕΦΑΛΑΙΟ 9 ΒΑΣΙΚΕΣ ΕΝΤΟΛΕΣ ΚΕΦΑΛΑΙΟ 9 ΒΑΣΙΚΕΣ ΕΝΤΟΛΕΣ 9.1 Εντολές Εισόδου/εξόδου Στην Pascal, 1. Tα δεδομένα των προγραμμάτων λαμβάνονται: είτε από το πληκτρολόγιο είτε από ένα αρχείο με τη χρήση των διαδικασιών read και readln,

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

H ΓΛΩΣΣΑ C. Μάθηµα 7: Πίνακες. ηµήτρης Ψούνης

H ΓΛΩΣΣΑ C. Μάθηµα 7: Πίνακες. ηµήτρης Ψούνης H ΓΛΩΣΣΑ C Μάθηµα 7: Πίνακες ηµήτρης Ψούνης 2 Περιεχόµενα Μαθήµατος Α. Πίνακες 1. Μονοδιάστατοι Πίνακες 1. ήλωση Πίνακα 2. Παράδειγµα Χρήσης Πίνακα 3. Αρχικοποίηση πίνακα κατά τη δήλωση 4. Στατική έσµευση

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΤΜΗΜΑ ΒΙΟΜΗΧΑΝΙΚΗΣ ΙΟΙΚΗΣΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΤΜΗΜΑ ΒΙΟΜΗΧΑΝΙΚΗΣ ΙΟΙΚΗΣΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ ΙΑΧΕΙΡΙΣΗ Ε ΟΜΕΝΩΝ ΚΑΙ ΓΛΩΣΣΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ (Β ΕΞΑΜΗΝΟ) ιδάσκων: Επ. Καθηγητής Γρηγόρης Χονδροκούκης ΣΗΜΕΙΩΣΕΙΣ ΜΑΘΗΜΑΤΟΣ Η ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ

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

Ο τελεστής ανάθεσης και οι εντολές εισόδουεξόδου

Ο τελεστής ανάθεσης και οι εντολές εισόδουεξόδου Ο τελεστής ανάθεσης και οι εντολές εισόδουεξόδου Ο τελεστής ανάθεσης = και η βασική του διαφορά από το σύµβολο ισότητας. Η εντολή ανάγνωσης µεταβλητών READ. Η εντολή εκτύπωσης µεταβλητών WRITE. οµή προβληµάτων

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

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

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

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

Ενότητα 1 Διάλεξη 2β

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

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

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

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

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

3 ο Εργαστήριο Μεταβλητές, Τελεστές

3 ο Εργαστήριο Μεταβλητές, Τελεστές 3 ο Εργαστήριο Μεταβλητές, Τελεστές Μια μεταβλητή έχει ένα όνομα και ουσιαστικά είναι ένας δείκτης σε μια συγκεκριμένη θέση στη μνήμη του υπολογιστή. Στη θέση μνήμης στην οποία δείχνει μια μεταβλητή αποθηκεύονται

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

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

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

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

ΑΣΚΗΣΗ 3: ΠΡΟΤΑΣΕΙΣ, ΕΚΦΡΑΣΕΙΣ ΚΑΙ ΤΕΛΕΣΤΕΣ

ΑΣΚΗΣΗ 3: ΠΡΟΤΑΣΕΙΣ, ΕΚΦΡΑΣΕΙΣ ΚΑΙ ΤΕΛΕΣΤΕΣ ΑΣΚΗΣΗ 3: ΠΡΟΤΑΣΕΙΣ, ΕΚΦΡΑΣΕΙΣ ΚΑΙ ΤΕΛΕΣΤΕΣ Σκοπός της Άσκησης Ο σκοπός αυτής της εργαστηριακής άσκησης είναι η χρήση των βασικών τελεστών της Γλώσσας Προγραµµατισµού C : αριθµητικοί τελεστές, τελεστές

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

2.2.3 Η εντολή Εκτύπωσε

2.2.3 Η εντολή Εκτύπωσε 2.2.3 Η εντολή Εκτύπωσε Η εντολή Εκτύπωσε χρησιµοποιείται προκειµένου να εµφανίσουµε κάτι στην οθόνη του υπολογιστή. Για τον λόγο αυτό ονοµάζεται και εντολή εξόδου. Ισοδύναµα µπορεί να χρησιµοποιηθεί και

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

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

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

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

2ο ΓΕΛ ΑΓ.ΔΗΜΗΤΡΙΟΥ ΑΕΠΠ ΘΕΟΔΟΣΙΟΥ ΔΙΟΝ ΠΡΟΣΟΧΗ ΣΤΑ ΠΑΡΑΚΑΤΩ

2ο ΓΕΛ ΑΓ.ΔΗΜΗΤΡΙΟΥ ΑΕΠΠ ΘΕΟΔΟΣΙΟΥ ΔΙΟΝ ΠΡΟΣΟΧΗ ΣΤΑ ΠΑΡΑΚΑΤΩ ΠΡΟΣΟΧΗ ΣΤΑ ΠΑΡΑΚΑΤΩ ΣΤΑΘΕΡΕΣ είναι τα μεγέθη που δεν μεταβάλλονται κατά την εκτέλεση ενός αλγόριθμου. Εκτός από τις αριθμητικές σταθερές (7, 4, 3.5, 100 κλπ), τις λογικές σταθερές (αληθής και ψευδής)

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

ΑΣΚΗΣΗ 2: ΔΟΜΗ ΠΡΟΓΡΑΜΜΑΤΟΣ C, ΧΕΙΡΙΣΜΟΣ ΜΕΤΑΒΛΗΤΩΝ ΚΑΙ ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥ ΚΑΙ ΕΞΟΔΟΥ

ΑΣΚΗΣΗ 2: ΔΟΜΗ ΠΡΟΓΡΑΜΜΑΤΟΣ C, ΧΕΙΡΙΣΜΟΣ ΜΕΤΑΒΛΗΤΩΝ ΚΑΙ ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥ ΚΑΙ ΕΞΟΔΟΥ ΑΣΚΗΣΗ 2: ΔΟΜΗ ΠΡΟΓΡΑΜΜΑΤΟΣ C, ΧΕΙΡΙΣΜΟΣ ΜΕΤΑΒΛΗΤΩΝ ΚΑΙ ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥ ΚΑΙ ΕΞΟΔΟΥ Σκοπός της Άσκησης Ο σκοπός αυτής της εργαστηριακής άσκησης είναι η ανάλυση των βασικών χαρακτηριστικών της Γλώσσας

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

Επιµέλεια Θοδωρής Πιερράτος

Επιµέλεια Θοδωρής Πιερράτος Ερωτήσεις Σωστό - Λάθος 1. Ο αλγόριθµος πρέπει να τερµατίζεται µετά από εκτέλεση πεπερασµένου αριθµού εντολών. 2. Η είσοδος σε έναν αλγόριθµο µπορεί να είναι έξοδος σε έναν άλλο αλγόριθµο. 3. Ένας αλγόριθµος

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

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

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

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

Σχήµα 6.1: Εισαγωγή της εντολής Read From Spreadsheet File στο Block Diagram.

Σχήµα 6.1: Εισαγωγή της εντολής Read From Spreadsheet File στο Block Diagram. Εισαγωγή αρχείων δεδοµένων 1. Η εισαγωγή αρχείων δεδοµένων στο LaVIEW γίνεται στο Block Diagram µε την εντολή Read From Spreadsheet File. 2. Εισάγουµε την εντολή Read From Spreadsheet File στο Block Diagram

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

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

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

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

Οι εντολές ελέγχου της ροής ενός προγράμματος.

Οι εντολές ελέγχου της ροής ενός προγράμματος. Κεφάλαιο ΙΙI: Οι εντολές ελέγχου της ροής ενός προγράμματος 31 Εντολές ελέγχου της ροής Στο παρόν κεφάλαιο ασχολούμαστε με την σύνταξη των εντολών της C οι οποίες εισάγουν λογική και ελέγχουν την ροή εκτέλεσης

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

! Δεν μπορούν να λυθούν όλα τα προβλήματα κάνοντας χρήση του παρ/λου προγ/σμου ΑΡΧΗ ΝΑΙ Διάβα σε a Εκτύπ ωσε a > a 0 ΟΧΙ ΤΕΛΟΣ Σύμβολα διαγράμματος ροής 1 Ακέραιος τύπος 14 0-67 2 Πραγματικός τύπος

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

Θέματα Προγραμματισμού Η/Υ

Θέματα Προγραμματισμού Η/Υ Πρόγραμμα Μεταπτυχιακών Σπουδών Πληροφορική και Υπολογιστική Βιοϊατρική Θέματα Προγραμματισμού Η/Υ Ενότητα 8: Θεματική Ενότητα: Συναρτήσεις ΘΕΜΑΤΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Η/Υ Θεματική Ενότητα 8 Συναρτήσεις Πληροφορική

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