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