Ει αγωγή η Fortran άθ α ο θ ία ιού α liouka.eleftheria@gmail.com
Περιεχό ε α Derived Data Types Intrinsic Functions Input, Output Character Operator Branches
Derived Data Types ιο ία ι ώ ας ύ ο φή: TYPE name declaration 1 declaration 2.. declaration n END TYPE name άθ declaration ο ί ι ια ο ό σ ισ ώσα ο α ο ί αι α ό έ α ύ ο αι έ α ό ο α
Derived Data Types Πα ά ι α TYPE cource_list CHARACTER(15) :: First_name,Last_name INTEGER :: Student_ID REAL :: Average Character(1) :: Grade END TYPE cource_list
Derived Data Types ιο ία αβ ής TYPE (cource_list) cl1,cl2 Α άθ σ ι ώ Case 1: l = our e_list Θoh, ith,,., Case 2: cl %First_ a e = Θoh l %Κast_ a e = ith cl2%student_id = 2378 cl2%average = 6.7 cl2%grade = 8
Intrinsic Functions Μαθηματικές o cos(x) : ί ο ο x o cosh(x) : βο ι ό σ ί ο ο x o acos(x) : Α ίσ οφο σ ί ο ο x o sin(x) : Η ί ο ο x o sinh(x) : βο ι ό ί ο ο x o asin(x) : Α ίσ οφο ί ο ο x o tan(x) : φα ο έ x o tanh(x) : βο ι ή φα ο έ x o atan(x) : Α ίσ οφ φα ο έ x o atan2(x) : Α ίσ οφ φα ο έ ια ι α ι ούς o sqrt(x) : α ι ή ί α x o exp(x) : θ ι ή σ ά σ x o log(x) : σι ός ο ά ιθ ος x
Intrinsic Functions Ά ς σ α ήσ ις: o abs(x) : Α ό ι ή x o complx(x,y) : α ο ή σ ι α ι ό o floor(x) : Ο α ύ ος α έ αιος, ι ό ος ή ίσος ο x floor(3.4)=3 floor(-3.4)=-4 o int(x) : Ο α ύ ος α έ αιος ο βαί ι ο x ίς ο όσ ο int(3.4)=3 int(-3.4)=-3
Intrinsic Functions o nint(x [,kind]) : ο ύ σ σ ο σιέσ ο α έ αιο o real(x [,kind]) : α ο ή σ REAL o mod(a,p) : ό οι ο o modulo(a,p) : ό οι ο
Input - Output ιαθέσι ς ο ές: OPEN CLOSE READ WRITE PRINT
OPEN OPEN(open specifiers) Unit number = int: Α ιθ ός ο ώ ι οιο α ίο α οί ο α σι ο οι θ ί αι σ ις READ,WRITE Filename = name: To ό ο α ο α ίο ο θέ ο α α οί ο Status = status expression: OLD: α ίο ο ά ι ή NEW: έο ό α ίο REPLACE: έο ό α ίο ο α ι αθισ ά ο α ιό
OPEN Action = action expression: Π ι άφ ι ις έ ι ς ο ι έ ο αι σ ο α ίο READ: ο ού α ιαβάσο α ά ό ι α ο ο οιήσο WRITE: ο ού ό ο α ά ο READWRITE: ο ού α ιαβάσο αι α ο ο οιήσο ΟSTAT = var: «ί οσ ασίας» ς ο α ίο ά οι σ σ ά var = 0 : ά οι σ σ ά var = error number : ί ι ο α ιθ ό ο error ο α ο σιάσ
ΟPEN Παρά ι μα OPEN UNIT=,FIΚE= i put.txt, TATU = OΚD,& ACTION= EADW ITE,IO TAT=Ope _status IF(Open_status>0) STOP & --- ERROR, File not opened properly ---
CLOSE α α ία ί ο σ ις ο ές END,STOP ί ο α α ία ό ο θέ ο : CLOSE (close_list) Π.. CLOSE(15)
READ ο φή: READ (control specifiers) input list READ(*,*) hour,sec Π ώ ο * : unit specifier ύ ο *: format specifier READ*, hour,sec Ό οια σ ο ο αφία * : default value
READ Control specifiers: Unit specifier: ώ ι σ σ ή ισό ο default keyboard) ώ ι ο unit number ο αφο ά έ α α οι ό α ίο Format specifier: αθ ά CHARACTER ή ια αβ ή CHARACTER ο οί ι ή αθο ί ι ο φή ς ι έ α ός format statement
READ ια α ιαβάσ n αβ ές έ ι α ις έ ώσ ι ο ο έ ς Η σ ι ά ο ί ις ι ές αβ ώ έ ι α αι ιά ι σ ι ά ισα ής σ READ Η READ ιαβά ι άθ φο ά α ό έα α ή ια α ιαβάσ ο ές αβ ές σ ί ια σ ι ά, ο ο ώ ι ια αφή ο ας ιά σα έ α ό
Παρά ι μα INTEGER :: Age REAL :: Weight,Height CHARACTER(10) :: Name READ READ(*,*) Name,Age,Weight,Height I put: Θoh,,.,. Wro g:,., Θoh,.
READ άθ READ ιαβά ι α ό έα α ή INTEGER :: I,J,K,L,M,N READ(*,*) I,J READ(*,*) K,L,M READ(*,*) N Input 100 200 300 400 500 600 700 800 900 1000 1100 1200
WRITE σι ο οι ί αι ια α ώσ ι οφο ί ς σ οθό ή α ά ι σ α ίο ο φή: W ITE *,* exp,exp, WRITE(*,*) άθ φο ά άφ ι σ έα α ή
WRITE Παρά ι μα INTEGER :: target REAL :: angle,distance CHA ACTE *,PA AMETE :: Ti e = The ti e to hit target, Is = is, U it = se. Target = 10 Angle = 20.0 Distance = 1350.0 W ITE *,* A gle =,a gle W ITE *,* Dista e =,dista e WRITE(*,*) WRITE(*,*) Time,target,Is,angle*distance,Unit Output: Angle = 20.0 Distance = 1350.0 The time to hit target 10 is 27000.0 sec.
PRINT ο φή: PRINT format specifier, print list Format specifier: ό ι α α αί ο ήσ * default format) Print list : ία ή ισσό ς αβ ές ισ έ ς ό α P INT*, The u er pi =, pi Η ο ή PRINT ώ ι άθ φο ά σ έα α ή
Character Operator // σι ο οι ί αι ια α ώ ι strings Α Α, ύο strings ή ος n,m α ίσ οι α ό Α// έ ι ή ος n+m Παρά ι μα CHA ACTE :: Θoh = "Θoh ", a = " a CHARACTER(6) :: Lori = "Lori", Reagan = "Reagan" CHARACTER(10) :: Ans1, Ans2, Ans3, Ans4 Ans1 = John // Lori Ans2 = Sam // Reagan Ans3 = Reagan // Sam Ans4 = Lori // Sam! A s = Θoh Κori! A s = a eaga! A s = eaga a! A s = Κori a
Character Operator // CHA ACTE :: Θoh = "Θoh ", a = " a CHARACTER(6) :: Lori = "Lori", Reagan = "Reagan" CHARACTER(10) :: Ans1, Ans2, Ans3, Ans4 Ans1 = John // Lori Ans2 = Sam // Reagan Ans3 = Reagan // Sam Ans4 = Lori // Sam J O H N L O R I S A M R E A G A N R E A G A N S A M L O R I S A M
Branches IF (IF-THEN) ο φή: IF (logical-criteria) execution statement Α logical-criteria = TRUE ί αι Α logical-criteria = FALSE α α ά αι IF (2.0 < x.and x < 3.0) PRINT *, x Α έ α α ά έσι ς ο ές: IF (x >= 0) THEN z = x * y PRINT *, "x is a positive number." END IF
Branches IF-ELSE ο φή: IF (logical -criteria) THEN execution statements for true result ELSE execution statements for false result END IF Α logical criteria = TRUE ί αι ο ώ ο έ ος αι ο ύ ο α α ά αι Α logical criteria = FALSE ί αι ο ύ ο έ ος αι ο ώ ο α α ά αι Π.. IF (x > 0) THEN PRINT *, "The value is greater than zero." ELSE PRINT *, "The value is not greater than zero." END IF
Branches IF-ELSE IF φ έ α if statements ο φή: IF (logical -criteria1) THEN execution statements 1 ELSE IF (logical -criteria2) THEN execution statements 2 ELSE IF (logical -criteria3) THEN execution statements 3... ELSE execution statements n END IF ο αίο ELSE ί αι α α αί ο.
Branches Παρά ι μα IF (x > 0) THEN PRINT *, "Value is greater than zero." ELSE IF (x < 0) THEN PRINT *, "Value is less than zero." ELSE IF (x == 1) THEN PRINT *, "Value is one." ELSE PRINT *, "Value is zero." END IF Α ο x=1 ο output θα ί αι Value is greater than zero. Π οσο ή ς φ ιά ο α ELSE IF.
Branches SELECT CASE ο φή: SELECT CASE (selector) CASE (list1) execution statements 1 CASE (list2) execution statements 2... CASE (listn) execution statements n END SELECT Ο selector ο ί α ί αι INTEGER, CHARACTER, LOGICAL ο ί α ί αι REAL.
Παρά ι μα Branches SELECT CASE (INT(grade))! The real value grade is converted to an integer. CASE (90:)! 90: indicates values of 90 or above. PRINT *, "Your grade is an A." CASE (80:89)! 80:89 means 80 to 89. PRINT *, "Your grade is a B." CASE (70:79)! 70:79 means 70 to 79. PRINT *, "Your grade is a C." CASE (60:69)! 60:69 means 60 to 69. PRINT *, "Your grade is a D." CASE (:59)! 59: indicates 59 or below. PRINT *, "Your grade is an F." END SELECT
Naming Branches ο ού α ο ο άσο α branches ας ο ι έ ο α β ι θ ί α α σι ό α ο ώ ι α ας positive: IF (x >= 1) THEN PRINT *, "The value is greater than or equal to one." ELSE negative: IF (x > 0) THEN PRINT *, "The value is between zero and one." ELSE PRINT *, "The value is less than or equal to zero." END IF negative END IF positive
Naming Branches name: SELECT CASE (selector) CASE (list1) execution statements 1 CASE (list2) execution statements 2... CASE (listn) execution statements n END SELECT name
Τέλος