Introductory Programming Examples
A
Simple Welcome Program
Program greet
!every program has a name
!execution of this program results in the
display of
!of the welcome message
implicit none
!compiler directives or declarations
!this is legacy; ALWAYS include this line
in your program
print * , "Hi! Welcome to the session“
!body with just one statement
end program greet
Execution of the Program
•
To execute the program
– First compile the program
f90 –o greet greet.f90
– This results in an executable greet
– Run greet (invoke in the command line)
•
When greet is run, it
prints
Hi! Welcome to the session
A
More interesting program
Program
greet1
implicit
none
character(len
= 20):: name
!name
- variable that stores character string of length less than or equal to 20
print
*, "Hi! Welcome to the session“
print
*, "PL. tell me your name“
read
*, name
!waits
for the user to give a character string
!this
string is then stored in "name“
print
*, "Hi,",name
print
*, "How are you“
end
greet1
Some Observations
•
Print and Read
statements
•
Variables high level
abstractions of memory
•
Variables store values
input by you
•
Stored values can be
read back and printed
•
Values are character
strings
Behavior of greet1
• Compile
and execute the object file
• It
first prints
Hi! Welcome to the session
PL. tell me your name
•
It
then waits for you to input the name
•
The
input string(Hari), is read into name
•
Finally
it prints
Hi! Hari
How are you?
Another
variation
program
greet2
!asks
for first and surname
implicit
none
character(len
= 10):: first_name, sur_name
!
two variables are declared
character(len
= 20):: full_name
!another
variable of length 20
print
*, "Hi! Welcome to the session“
print
*, "PL. tell me your first name“
Program Continued
!waits
for the user to give a character string
read
*, first_name
read
*, sur_name
full_name
= first_name//" "//sur_name
!assignment
statement
!rhs
is an expression which is evaluated
!resulting
value is stored in lhs variable
!//
is string concatenation operator
print
*, "Hi,",full_name," How are you“
end
greet2
A
Problem
•
Examine the output of the above
program, when the input is given as
Dinesh Mongia
•
the program will outputs
Dinesh Mongia
•
There are 4 blank spaces after `Dinesh'
(why?)
•
How do we remove the blanks?
• Here
is the program
A Solution
program
greet3
implicit
none
character(len
= 10):: first_name,sur_name
character(len
= 20):: full_name
print
*, "Hi! Welcome to the session“
print
*, "PL. tell me your first name“
read
*, first_name
read
*, sur_name
full_name
= trim(first_name)//" "//trim(sur_name)
!trim
is an intrinsic function that removes trailing blanks
print
*, "Hi,",full_name," How are you“
end
greet3
A
simple arithmetic function
Program
sum_and_multiply
implicit
none
integer
:: x,y,sum,prod
!declaration
of integer variables
read
*, x,y
sum
= x + y
!value
in x and y are added and stored in sum
prod
= x * y
print
*, "Sum of ", x, " and
", y, " is = ",sum
print
*, "Product of ", x, "
and ", y, " is = ",prod
end
program sum_and_multiply
Another
Simple Program
Program
convert_to_seconds
implicit none
integer :: hour, minute, in_second,
out_second
read *, hour, minute, in_second
out_second = in_second
out_second = out_second + (minute * 60)
out_second = out_second + (hour * 60 * 60)
print *, out_second
end program convert_to_seconds
Observation
•
Complex algebraic
expressions allowed on the right hand side of assignment statement
•
Same variable can
appear both in the right hand and left hand sides
•
Rhs occurrence refers
to the current content
•
Lhs occurrence refers
to the location
Interest
Calculation
Program
interest
implicit
none
real::
principle, year, rate, inter, total
!declaration
of real variable
read
*, principle, year, rate
inter
= (principle*year*rate)/100
total
= principle + inter
print
*, inter, total
end
program interest
How
to compute compound interest?
Distance
Calculation
program
pt_distance !computes distance between two pts.
implicit
none
real
:: a,b,c,d,distance !Two points are (a,b)
and (c,d)
print
* , "type values of a, b, c, d“
read
* , a, b, c, d
distance
= sqrt((a - c) ** 2+(b - d) ** 2)
!sqrt intrinsic function on real values;
argument an expn.
print
* , "distance between points (", a, &
",", b, ") and (", c,
",", d, ") is", distance
!note & at the end of first line – denotes Continuation
!length of a line can not exceed 132
characters
end
program point_distance