More Control over - PowerPoint PPT Presentation

1 / 30
About This Presentation
Title:

More Control over

Description:

... i integer,dimension(12)::arr arr = (/12345, 23456, 34567, 45678,& 90123, 12340, 24680, 46802,& 13579, 35791, 57913, 69649/) ! output ... – PowerPoint PPT presentation

Number of Views:61
Avg rating:3.0/5.0
Slides: 31
Provided by: tor92
Category:
Tags: control | more | over

less

Transcript and Presenter's Notes

Title: More Control over


1
  • More Control over
  • INPUT and OUTPUT (I / O)

The interface between the user and the
computer Formats and edit descriptors Input
editing Output editing read, write and print
statements More powerful formats
2
More Control over INPUT and OUTPUT (I / O)
The input and output facilities of any
programming language are extremely important,
because it is through these features of the
language that communication between the user and
the program is carried out. F, therefore,
provides facilities for input and output at two
quite different levels. As are given before,
list-directed input and output statements that
provide the capability for straightforward input
from the keyboard and also the output to the
display or printer. These list-directed i/o -
statements, however, allow the user very little
control over the source or layout of the input
data.
3
More Control over INPUT and OUTPUT (I / O)
F allows the programmer, to specify exactly
how the data will be presented and interpreted,
from which of the available input units it is to
be read how the results are to be displayed to
which of the available output units the results
are to be sent.
4
INTERFACE between the USER and the COMPUTER
  • Considering the following 9 digit input data
    there are enormous number of possible
    interpretations
  • Data 1 2 3 4 5 6 7 8 9
  • 1 2 3 4 5 6 7 8 9
  • 1, 2, 3, 4, 5, 6, 7, 8, and 9
  • - 123, 456, 789
  • 12345 . 6789
  • 1.23, 0.45, 67, 8900
  • etc.

5
FORMATS and EDIT DESCRIPTORS
  • An input statement must contain three distinct
    types of information
  • where the data is to be found
  • where it is to be stored in the computers
    memory
  • how it is to be interpreted
  • Similarly, an output statement must define
  • where the results are currently stored
  • where they are to be sent
  • in what form they are to be displayed.

6
INPUT EDITING
EXAMPLES of INPUT DATA 123456789 read (
i 3, i 3, i 3 ) , n1, n2, n3 ! n1
123, n2 456, n5 789 read ( t 5, i 2,
t 6, i 2, t 2, i 4 ) , x, y, z ! x 56,
y 67, z 2345 read ( f 9.4 ) , real_num
! real_num 12345.6789 read ( f 3.1, f
2.2, f 3.0 ) , r1, r2, r3 ! r1 12.3, r2
0.45, r3 678.0
123456789
123456789
123456789
7
EXAMPLE for formatting of real numbers using f
edit descriptor depending on the two
different INPUT DATA
read ( f 3.1, f 2.2, f 3.0 ) , s1, s2,
s3 DATA 1 DATA 2
123456789 .23.56.8
---------------------- ----------------- s1
contains 12.3 0.23 s2 contains
0.45 0.5 s3 contains 678.0 6.8
8
EXAMPLEs for formatting of an input real number
in different ways using a edit descriptor
  • real number is 361.764
  • 361.764
  • 3.617642
  • 3617643
  • 0.0361764e4
  • 3617.64d-1
  • 3.61764 E 2
  • 361.7640

9
EXAMPLEs for formatting of an input character
type using a edit descriptor
  • character ( len 10 ) ch1
  • character ( len 6 ) ch2
  • character ( len 15 ) ch3
  • Depending on the above-given declaration the
    formats may have the following forms in read
    statements
  • read ( a10, a6, a15 ) , ch1, ch2, ch3
  • or
  • read ( a, a, a ) , n1, n2, n3

10
LOGICAL DATA - INPUT EDITING
The edit descriptor is used with logical data,
and takes the following form, where upper case
L is used to avoid the potential confusion with
the digit 1 that can be caused to human
readers by using the lower-case form L
w w caharacters are used to derive either a
true value, a false value or an error.
11

12
LOGICAL DATA - INPUT EDITING
  • Any of the following are acceptable as
    representing true
  • t
  • true
  • .T
  • .true.
  • truthful
  • while the following will all be interpreted as
    false
  • F
  • False
  • .f.
  • futile

13
OUTPUT EDITING
The following figure shows the main edit
descriptor that are available for
output. EXAMPLE for i edit descriptor tom
23 dick 715 harry -12 print
, ( i 5, i 5, i 5 ), tom, dick,
harry This statement produce following line of
output (where the symbol represents a space
) 23715-12
14
OUTPUT EDITING
EXAMPLE for f edit descriptor x
3.14159 y -275.3024 z 12.9999 print ,
( f 10.3, f 10.3, f 10.3 ), x, y,
z This statement produce following line of
output (where the symbol represents a space
) 3.142-275.302-13.000
15
OUTPUT EDITING
EXAMPLE program tabular_output real,
parameter third 1.0 / 3.0 real
x integer i do i 1, 10
x i print ( f 15.4, f 15.4, f
15.4 ), x, sqrt (x), xthird end
do end program tabular_output
16
OUTPUT EDITING
In the above-given program the same edit
descriptor has been repeated several times. A
number, called a repeat count, may be placed
before the i, f, a or L edit
descriptors to indicate how many times they are
to be repeated. Depending on this, the format
could be written more succinctly and It is
possible to write it more clearly.
EXAMPLE print ( i 5, i 5, i 5, f 6.2,
f 6.2, f 6.2, f 6.2 ), x, y, z, d, e, f, g or
better print ( 3 i 5, 4 f 6.2 ), x,
y, z, d, e, f, g
17
Exercise 2
  • program test1
  • integer a,b
  • realc,d
  • print,"please enter an integer values which is
    more than 6 digit"
  • read "(i4,t1,i4,t2,f4.1,t1,f4.2)",a,b,c,d
  • print "(i4,a,i5,a,i5,a,f6.2,a,f6.2,a,f8.3)",a,
  • " minus",b," is",a-b,"",c," minus",d, "
    is",c-d
  • end program test1

18
Exercise 3
  • program test2
  • character(len6)a,b,c
  • Print,Please write your name
  • read "(a8,t1,a4,t1,a)",a,b,c
  • print "(a10,tr12,a4,tr30,a)",a,b,c
  • print "(a,t10,a,t52,a)",a,b,c
  • end program test2

19
  • program five_digit_numbers
  • integeri
  • integer,dimension(12)arr
  • arr (/12345, 23456, 34567, 45678,
  • 90123, 12340, 24680, 46802,
  • 13579, 35791, 57913, 69649/)
  • ! output for single column format example
  • print,"Single column of numbers"
  • do i 1 , 12
  • print "(t8,i2,1x,i5)",i,arr(i)
  • end do
  • ! output for four rows of three numbers
  • print "(2/t3,a/)","Four rows of three numbers "
  • print "(t8,i2,1x,3(i5,1x))", 1,arr(13)
  • print "(t8,i2,1x,3(i5,1x))", 2,arr(46)
  • print "(t8,i2,1x,3(i5,1x))", 3,arr(79)
  • print "(t8,i2,1x,3(i5,1x))", 4,arr(1012)
  • ! a single line of numbers

20
  • program multi_record_example
  • real a,b
  • a 12.25
  • b 23.50
  • write(unit6,fmt"(t10,a,3/,a,f6.2,a,f6.2,a,///,f7
    .2,2/,a,f10.3)")
  • "Multi-record example",
  • " The sum of ",a," and",b," is", ab,
  • " Their product is",ab
  • end program multi_record_example

21
  • program railway_time_table
  • integer,parametern5
  • integeri
  • real,dimension(n)arrival,departure
  • integer,dimension(n)platform
  • character(len10),dimension(n)destination
  • arrival(/9.23, 9.28, 10.41, 10.48, 11.15/)
  • departure(/9.25, 9.32, 10.53, 10.53, 11.18/)
  • platform(/2, 1, 3, 2, 1/)
  • destination(/"Edinburgh"," London","Sheffield",
  • "Newcastle"," London"/)
  • write(unit6,fmt"(/a/2x,7(''),3x,9(''),3x,8(''
    ),3x,11(''))")
  • " Arrival Departure Platform
    Destination"
  • do i 1 , n
  • write(unit6,fmt"(3x,f5.2,6x,f5.2,8x,i1,8x,a10)")
  • arrival(i),departure(i),platform(i),desti
    nation(i)
  • end do
  • end program railway_time_table

22
  • program test2
  • character(len6)a,b,c
  • print , "........................ STEPPER...
    Entering PROGRAM. Press Enter"
  • print,"program test2"
  • read
  • print , "........................ STEPPER...
    Before READ. Press Enter"
  • print,"read ""(a8,t1,a4,t1,a)"",a,b,c"
  • read
  • read "(a8,t1,a4,t1,a)",a,b,c
  • print , "........................ STEPPER...
    After READ. Press Enter"
  • read
  • print "(a8,tr2,a4,tr3,a)",a,b,c
  • print,"print ""(a8,tr2,a4,tr3,a)"",a,b,c"
  • print , "........................ STEPPER...
    After PRINT. Press Enter"
  • read
  • print "(a,t10,a,tr2,a)",a,b,c
  • print,"print ""(a,t10,a,tr2,a)"",a,b,c"
  • print , "........................ STEPPER...
    After PRINT. Press Enter"
  • read

23
  • program tabular_output
  • real, parameter third 1.0 / 3.0
  • real x
  • integer i
  • do i 1 , 10
  • x i
  • ! print "(f15.4, f15.4, f15.4)",
    x,sqrt(x),xthird
  • print "(3f15.4)", x,sqrt(x),xthird
  • end do
  • end program tabular_output

24
  • program aa
  • character (len50) a, b, c, d, e
  • integer i, j
  • a "aaa bbbb ccccc dddddd eeeeeee"
  • print , a
  • i index(a," ")1
  • b a(i-2)
  • print , b
  • c a(i)
  • print , c
  • j index (c," ") 1
  • d c(j-2)
  • print , d
  • e d(j)
  • print , e
  • end program aa

25
program character_searc_function !examle for
index, you can olso try scan and verify
character (len50) a, b, c, d, e integer
i, j a "bbb cccc ddddd eeeeee"
print , a i index(a,"d") !Calculates how
many chracter before and including "c"
print,"i",i b a(i-2) print , b
c a(i) print , c j index (c," ")
1 d c(j-2) print , d e
d(j) print , e end program
character_searc_function
26
! Assignment statements with constant
expressions. program C01 implicit none
integer, parameter NAME_LENGTH 21 real
Avogadros_Number integer Many
complex Z logical Flag character
(len NAME_LENGTH) Name ! start program C01
Many 346021 ! Integer type
Avogadros_Number 6.0221367e23 ! Real type
Z (0.0, 1.75e8) ! Complex type Flag
.true. Name " Mustafa " ! Character type,
length 21 write (unit , fmt ) Many,
Avogadros_Number, Z, Flag, Name stop end
program C01
27
! Assignment statements with variable
expressions. module C02M implicit none
public Assign_2 contains subroutine
Assign_2( ) ! Type declarations with
initialization real, save Y 1.23, Pi
3.141592 integer, save Counts 173
character (len 8), save I " Optics "
logical, save Flag .true. ! Type
declarations without initialization real
X, Theta integer Many character
(len 8) K logical Done ! start
subroutine Assign_2 X Y ! Real type
Y X Theta Pi Many Counts !
Integer type K I ! Character type,
length 8 Done Flag ! Logical type
write (unit , fmt ) Y, Pi, X, Theta,
Counts, Many, I, K, Flag, Done return
end subroutine Assign_2 end module C02M
program C02 use C02M implicit none !
start program C02 call Assign_2( ) stop
end program C02
28
! Assignment statements with arithmetic
expressions. program C03 implicit none
real, parameter GRAVITY 9.8 real
Old_Vol, Old_Press, Old_Temp, New_Vol, New_Press,
New_Temp real Mass, Velocity,
Kinetic_Energy, Pressure, Density, Height,
Bernoulli integer, parameter J 6
integer I ! start program C03 I J 1
write (unit , fmt ) I read (unit ,
fmt ) Old_Vol, Old_Press, Old_Temp, New_Press,
New_Temp New_Vol Old_Vol (Old_Press /
New_Press) (New_Temp / Old_Temp) write
(unit , fmt ) Old_Vol, Old_Press, Old_Temp,
New_Vol, New_Press, New_Temp read (unit ,
fmt ) Mass, Velocity Kinetic_Energy 0.5
Mass Velocity 2 write (unit , fmt
) Mass, Velocity, Kinetic_Energy read (unit
, fmt ) Pressure, Density, Velocity,
Height Bernoulli Pressure Density (0.5
Velocity 2 GRAVITY Height) write
(unit , fmt ) Pressure, Density, Velocity,
Height, Bernoulli stop end program C03
29
program aa character (len50) a, b, c, d, e
integer i, j a "aaa bbbb ccccc dddddd
eeeeeee" print , a i index(a," ")1 b
a(i-2) print , b c a(i) print , c j index
(c," ") 1 d c(j-2) print , d e d(j) print
, e end program aa program 0206 ! Asks the
hour and the minute values of the ! present time
and displays it as a sentence. integer hh,mm
print , " Input the hour, in the 24 hours
format." read , hh print , " Input the minute."
read , mm print , "" print , " THE TIME IS
",mm," MINUTES AFTER ",hh end program 0206 !
Assignment statements with constant expressions.
program C01 implicit none integer, parameter
NAME_LENGTH 21 real Avogadros_Number integer
Many complex Z logical Flag character
(len NAME_LENGTH) Name ! start program C01
Many 346021 ! Integer type Avogadros_Number
6.0221367e23 ! Real type Z (0.0, 1.75e8) !
Complex type Flag .true. Name " Mustafa
Sezer" ! Character type, length 21 write (unit
, fmt ) Many, Avogadros_Number, Z, Flag, Name
stop end program C01
30
program C02 use C02M implicit none ! start
program C02 call Assign_2( ) stop end program C02
! Assignment statements with variable
expressions. module C02M implicit none public
Assign_2 contains subroutine Assign_2( ) ! Type
declarations with initialization real, save Y
1.23, Pi 3.141592 integer, save Counts
173 character (len 8), save I " Optics "
logical, save Flag .true. ! Type
declarations without initialization real X,
Theta integer Many character (len 8) K
logical Done ! start subroutine Assign_2 X Y
! Real type Y X Theta Pi Many Counts !
Integer type K I ! Character type, length 8
Done Flag ! Logical type write (unit , fmt
) Y, Pi, X, Theta, Counts, Many, I, K, Flag,
Done return end subroutine Assign_2 end module
C02M ! Assignment statements with arithmetic
expressions. program C03 implicit none real,
parameter GRAVITY 9.8 real Old_Vol,
Old_Press, Old_Temp, New_Vol, New_Press, New_Temp
real Mass, Velocity, Kinetic_Energy, Pressure,
Density, Height, Bernoulli integer, parameter
J 6 integer I ! start program C03 I J 1
write (unit , fmt ) I read (unit , fmt
) Old_Vol, Old_Press, Old_Temp, New_Press,
New_Temp New_Vol Old_Vol (Old_Press /
New_Press) (New_Temp / Old_Temp) write (unit
, fmt ) Old_Vol, Old_Press, Old_Temp,
New_Vol, New_Press, New_Temp read (unit , fmt
) Mass, Velocity Kinetic_Energy 0.5 Mass
Velocity 2 write (unit , fmt ) Mass,
Velocity, Kinetic_Energy read (unit , fmt )
Pressure, Density, Velocity, Height Bernoulli
Pressure Density (0.5 Velocity 2
GRAVITY Height) write (unit , fmt )
Pressure, Density, Velocity, Height, Bernoulli
stop end program C03
Write a Comment
User Comments (0)
About PowerShow.com