Κατέβασμα παρουσίασης
Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε
ΔημοσίευσεΔεσποίνη Βαρουξής Τροποποιήθηκε πριν 9 χρόνια
1
Ο τελεστής ανάθεσης Ο τελεστής ανάθεσης (=) χρησιμοποιείται για να τοποθετήσουμε το αποτέλεσμα μιας έκφρασης (σταθερά, μεταβλητή ή παράσταση) σε μια μεταβλητή. Η σύνταξή του έχει ως εξής : Μεταβλητή=Έκφραση Παράδειγμα Α=1 Β=Α+3 Α=Α+5 Β=Β+Α
2
Οι εντολές εισόδου - εξόδου Η εντολή εισόδου READ READ*, λίστα μεταβλητών Παρατηρήσεις Θα πρέπει να υπάρχει αντιστοίχηση των μεταβλητών με τους τύπους δεδομένων που θα δίνει ο χρήστης, δηλ. αν η μεταβλητή στην READ είναι ακέραια, θα πρέπει να δώσει και ακέραια τιμή ο χρήστης (ο χρήστης θα πρέπει μέσο του προγράμματος να ενημερώνεται για τους τύπους δεδομένων που θα δίνει).
3
Όταν ο χρήστης δίνει τα δεδομένα, θα πρέπει να τα διαχωρίζει με κενό ή κόμμα (συνιστάται) και τις αλυσίδες χαρακτήρων (strings) να τις τοποθετεί ανάμεσα σε αποστρόφους ή εισαγωγικά. Υπάρχουν τρεις πιθανές περιπτώσεις κατά την εισαγωγή δεδομένων : –η READ απαιτεί Ν τιμές και ο χρήστης τοποθετεί Κ<Ν τιμές κατά την εισαγωγή δεδομένων. Τότε το πρόγραμμα δε συνεχίζεται και η READ περιμένει για την εισαγωγή των υπολοίπων τιμών. –η READ απαιτεί Ν τιμές και ο χρήστης τοποθετεί Κ=Ν τιμές κατά την εισαγωγή δεδομένων. Τότε το πρόγραμμα συνεχίζει με την επόμενη εντολή.
4
–η READ απαιτεί Ν τιμές και ο χρήστης τοποθετεί Κ>Ν τιμές κατά την εισαγωγή δεδομένων. Τότε το πρόγραμμα συνεχίζει αγνοώντας τις επιπλέον Κ-Ν τιμές. Κάθε φορά που εκτελείται η READ διαβάζει από καινούρια γραμμή π.χ. –READ*,A –READ*,Β Αν εμείς τοποθετούσαμε κατά την αναζήτηση των δεδομένων τις τιμές : -1,3 4 τότε το Α θα έπαιρνε την τιμή –1 και η επόμενη READ θα διάβαζε από καινούρια γραμμή και συνεπώς θα έπαιρνε την τιμή 4 και όχι 3.
5
Παράδειγμα PROGRAM TEST IMPLICIT NONE INTEGER A,B,Y READ*,A,B Y=MOD(A,B) END PROGRAM TEST
6
Η εντολή εισόδου READ με FORMAT READ f, λίστα μεταβλητών όπου f=ετικέτα (label) (θετικός ακέραιος αριθμός) που δηλώνει τη θέση της FORMAT που αντιστοιχεί στην συγκεκριμένη READ Η μορφή της FORMAT που θα συνοδεύει την READ θα είναι η εξής : f FORMAT(λίστα από περιγραφές) Οι περιγραφές που αναφέρονται μέσα στη FORMAT προσδιορίζουν τον τρόπο με τον οποίο θα εισάγει τα δεδομένα ο χρήστης.
7
Παρακάτω αναφέρονται στις πιθανές μορφές που μπορεί να έχουν οι περιγραφές αυτές. ΧαρακτηριστικόΠεριγραφή nXΔηλώνει ότι θα πρέπει να μείνουν κενές οι θέσεις αυτές. IwΧρησιμοποιείται για ακέραιες μεταβλητές και δηλώνει ότι ο ακέραιος αριθμός που θέλουμε να δώσουμε, θα πρέπει να τοποθετηθεί σε w θέσεις.
8
Fw.dΧρησιμοποιείται για πραγματικές μεταβλητές και δηλώνει ότι ο πραγματικός αριθμός που θέλουμε να δώσουμε θα πρέπει να τοποθετηθεί σε w θέσεις, από τις οποίες οι d θέσεις θα πρέπει να χρησιμοποιηθούν για τα δεκαδικά ψηφία. ±xx.xxxx
9
Ew.dΧρησιμοποιείται για πραγματικές μεταβλητές κινητής υποδιαστολής (εκθετική μορφή) και δηλώνει ότι ο πραγματικός αριθμός που θέλουμε να δώσουμε, θα πρέπει να τοποθετηθεί σε w θέσεις, από τις οποίες οι d θέσεις θα πρέπει να χρησιμοποιηθούν για τα δεκαδικά ψηφία ±xx.xxxE ± xx
10
Dw.dΧρησιμοποιείται για πραγματικές μεταβλητές κινητής υποδιαστολής διπλής ακρίβειας (εκθετική μορφή) και δηλώνει ότι ο πραγματικός αριθμός που θέλουμε να δώσουμε, θα πρέπει να τοποθετηθεί σε w θέσεις, από τις οποίες οι d θέσεις θα πρέπει να χρησιμοποιηθούν για τα δεκαδικά ψηφία ±xx.xxxD ± xx
11
A[w]Χρησιμοποιείται για μεταβλητές χαρακτήρων ή αλυσίδων χαρακτήρων και δηλώνει ότι θα πρέπει να τοποθετήσουμε τους χαρακτήρες που θέλουμε σε w θέσεις ή σε 1 θέση, αν το w απουσιάζει.
12
Παραδείγματα PROGRAM TEST IMPLICIT NONE REAL X READ 10, X 10 FORMAT(F9.1) PRINT*,X END PROGRAM TEST
13
Έστω ότι θέλουμε να γράψουμε ένα πρόγραμμα, σύμφωνα με το οποίο θέλουμε ο χρήστης να τοποθετεί την ημερομηνία γέννησής του με τον εξής τρόπο ddmmyyyy δηλ. 19121975 σημαίνει 19/12/1975, και εμείς να καταχωρούμε την ημέρα, το μήνα και το χρόνο σε τρεις μεταβλητές D,M,Y. Τότε θα είχαμε το παρακάτω πρόγραμμα : PROGRAM BIRTHDAY IMPLICIT NONE INTEGER D,M,Y READ(5,10) D,M,Y 10 FORMAT(I2,I2,I4) PRINT*,D,M,Y END PROGRAM BIRTHDAY
14
Οι εντολές εξόδου PRINT και WRITE Οι εντολές PRINT-WRITE χωρίς FORMAT Σύνταξη : PRINT*, λίστα σταθερών, μεταβλητών ή εκφράσεων ή WRITE(n,*) λίστα σταθερών, μεταβλητών ή εκφράσεων όπου n=*,0 ή 6 που δηλώνει ως μονάδα εξόδου την οθόνη.
15
Η εκτύπωση γίνεται σύμφωνα με τους εξής κανόνες: 1)οι ακέραιοι αριθμοί θα καταλαμβάνουν 11 θέσεις 2)οι πραγματικοί αριθμοί θα καταλαμβάνουν 16 θέσεις, από τις οποίες οι 6 θέσεις θα είναι για τα δεκαδικά ψηφία. 3)οι πραγματικοί αριθμοί διπλής ακρίβειας θα καταλαμβάνουν 24 θέσεις, από τις οποίες οι 15 θέσεις θα είναι για τα δεκαδικά ψηφία. 4)Μεταξύ των αριθμών που θα εκτυπώνονται θα υπάρχει ένα κενό, ενώ μεταξύ αριθμών και χαρακτήρων δεν υπάρχει κενό. 5)Οι αριθμοί θα στοιχίζονται προς τα δεξιά, σε αντίθεση με τις αλυσίδες χαρακτήρων που θα έχουν αριστερή στοίχιση. 6)Η κάθε WRITE-PRINT εκτυπώνει σε διαφορετική γραμμή.
16
Παράδειγμα Η εκτέλεση του παρακάτω προγράμματος PROGRAM TEST IMPLICIT NONE INTEGER A REAL B REAL (8) C CHARACTER (10) NAME A=3 B=45.2 C=23.56 NAME=’NIKOS’ PRINT*,A,B,C,NAME END PROGRAM TEST θα έχει σαν αποτέλεσμα 3 45.200000 23.559999465942380NIKOS
17
Οι εντολές PRINT-WRITE με FORMAT Σύνταξη : PRINT f, λίστα σταθερών, μεταβλητών ή εκφράσεων ή WRITE(n,f) λίστα σταθερών, μεταβλητών ή εκφράσεων όπου n=*,0 ή 6 που δηλώνει ως μονάδα εξόδου την οθόνη και f=το label (ετικέτα) της FORMAT που συνδέεται με την αντίστοιχη WRITE-PRINT.
18
Η μορφή της FORMAT είναι: f FORMAT(λίστα από περιγραφές) Οι περιγραφές που αναφέρονται μέσα στη FORMAT και αφορούν τον τρόπο που θα εκτυπωθούν οι εκφράσεις της WRITE-PRINT, είναι ίδιες με τις αντίστοιχες περιγραφές της FORMAT για την εντολή READ. Θα πρέπει όμως, να επισημάνουμε επιπλέον χαρακτηριστικά που συναντούμε στην παραπάνω FORMAT.
19
Ο πρώτος χαρακτήρας της FORMAT προσδιορίζει την κάθετη θέση της γραμμής που θα εκτυπωθεί. Συγκεκριμένα, ο πρώτος χαρακτήρας μπορεί να έχει τις παρακάτω μορφές : Πρώτος χαρ. Περιγραφή ‘1’Η εκτύπωση της γραμμής θα γίνει σε νέα σελίδα. Κενό (ή 1Χ)Η εκτύπωση της γραμμής θα γίνει στην αμέσως επόμενη γραμμή. ‘0’Η εκτύπωση της γραμμής θα γίνει στη μεθεπόμενη γραμμή. ‘+’Η εκτύπωση της γραμμής θα γίνει στην ίδια γραμμή.
20
Παραδείγματα PRINT 10 10 FORMAT(‘1’,’RESULTS’) Στην επόμενη σελίδα θα εκτυπώσει στην πρώτη γραμμή τη λέξη RESULTS. WRITE(6,10) 10 FORMAT(‘0’,’123’) Στη μεθεπόμενη γραμμή θα εκτυπώσει τον αριθμό 123. Σε περίπτωση όμως, που είχαμε FORMAT(’123’), τότε ο πρώτος χαρακτήρας δηλ. το ‘1’, θα δήλωνε ότι πρέπει στην επόμενη σελίδα να εκτυπωθεί το 23.
21
Μερικοί επιπλέον χαρακτήρες που συναντούμε στη FORMAT όταν πρόκειται να εκτυπώσουμε είναι οι εξής : ΧαρακτήραςΠεριγραφή StringΕμφανίζει το αντίστοιχο string στην οθόνη. Tc, TLc, TRcΠροσδιορίζει τη στήλη στην οποία θα εκτυπωθεί αυτό που θέλουμε : θα εκτυπωθεί στη c στήλη, θα εκτυπωθεί στη c στήλη προς τα αριστερά σε σχέση με αυτήν που βρισκόμαστε τώρα, θα εκτυπωθεί στην c στήλη προς τα δεξιά σε σχέση με αυτήν που βρισκόμαστε τώρα.
22
/Αλλάζει γραμμή. Πρέπει να ακολουθεί ο πρώτος χαρακτήρας που προσδιορίζει την κάθετη θέση της επόμενης γραμμής. \Συνεχίζει στην ίδια γραμμή.
23
Παράδειγμα Το πρόγραμμα WRITE(6,10) 10FORMAT(1X,TR20,’MAIN RESULTS’/1X,TR10,’X’,TR5,Y(Χ) θα εκτυπώσει στην επόμενη γραμμή (1Χ) και, πιο συγκεκριμένα, στην 20 η στήλη την έκφραση MAIN RESULTS, μετά θα πάει στην αμέσως επόμενη γραμμή (/1Χ) και στη 10 η στήλη θα τοποθετήσει τον χαρακτήρα Χ και, στη συνέχεια, θα μεταφερθεί 5 θέσεις δεξιά (TR5) και θα τυπώσει την έκφραση Y(X).
24
Μερικές παρατηρήσεις -Πολλές READ/WRITE/PRINT μπορούν να χρησιμοποιούν την ίδια FORMAT. READ(5,10) A READ(5,10) B 10 FORMAT(1X,F5.2) -Μεταξύ READ/WRITE/PRINT και FORMAT ισχυρότερη είναι η πρώτη π.χ. WRITE(6,10) A,B,C 10FORMAT(1Χ,F8.2,F4.1) Σύμφωνα με τις παραπάνω εντολές, στην επόμενη γραμμή από αυτή που είμαστε θα εκτυπωθούν οι τιμές των Α,Β και στην μεθεπόμενη γραμμή θα εκτυπωθεί το C με FORMAT (F8.2).
25
-Θα πρέπει να κάνουμε φανερό τον πρώτο χαρακτήρα σε μια FORMAT, ο οποίος δηλώνει την κάθετη τοποθέτηση της γραμμής που θέλουμε να εκτυπώσουμε, π.χ. FORMAT(1X,I5) αντί FORMAT(I6). Θα πρέπει επίσης να παρατηρούμε την έξοδο για έλλειψη των πρώτων χαρακτήρων, που πιθανώς προκλήθηκαν από την έλλειψη του πρώτου χαρακτήρα στη FORMAT π.χ. WRITE(6,10) 10FORMAT(‘FORTRAN’) Το παραπάνω κομμάτι προγράμματος θα εκτυπώσει ORTRAN αντί για FORTRAN που περιμέναμε. Ο λόγος είναι ότι ο πρώτος χαρακτήρας της FORMAT χρησιμοποιείται για κάθετη τοποθέτηση της γραμμής που θέλουμε να εκτυπώσουμε.
26
Ασκήσεις 1) Θεωρούμε ότι ο κορμός ενός δέντρου είναι κυλινδρικός. Συνεπώς, ο όγκος του δέντρου V αν γνωρίζουμε την περίμετρό της βάσης του P, και το ύψος του H, θα δίνεται από τον τύπο : όπου π=3.14. Να γράψετε το κατάλληλο πρόγραμμα
27
PROGRAM EXERCISE1 IMPLICIT NONE REAL, PARAMETER :: PI=3.14159 REAL H,P,V PRINT*,'PERIMETER=' READ*,P PRINT*,'HEIGHT=' READ*,H V=P**2*H/(4*PI) WRITE(6,10) P,H,V 10FORMAT(1X,'PERIMETER=',F7.2,5X,& 'HEIGHT=',F7.2 /1X, & 'VOLUME=',F7.2) END PROGRAM EXERCISE1
Παρόμοιες παρουσιάσεις
© 2024 SlidePlayer.gr Inc.
All rights reserved.