100 likes | 210 Views
LAB-05 Function. I Putu Danu Raharja raharja @kfupm.edu.sa Information & Computer Science Department CCSE - King Fahd University of Petroleum & Minerals. Rationale. If you work on a program to solve a bigger problem, your program will become larger (more lines of code).
E N D
LAB-05Function I Putu Danu Raharja raharja @kfupm.edu.sa Information & Computer Science Department CCSE - King Fahd University of Petroleum & Minerals
Rationale • If you work on a program to solve a bigger problem, your program will become larger (more lines of code). • A large program is harder to debug (so far we have written programs < 100 lines but we still make mistakes) • Some of the code may be used several times.
Subprogram • A big problem can be solved by dividing it into smaller sub-problems and conquering the sub-problems • A large program can be divided into simpler sub-programs that can be implemented and tested independently • Sub-programs can be reused
Terminologies • Main program • Sub-program • Call & return • Function • Subroutine
Function • A function consists of: • Function header • Function body • Function header type FUNCTION fname (list of arguments) • Function body • Declaration statements • Executable statements • Must have at least one RETURN statement • Must be ended with an END statement
Example: Area of a triangle REAL FUNCTION TRAREA (A, B) REAL A, B TRAREA = A * B / 2 RETURN END REAL X, Y, AREA READ*, X, Y AREA = TRAREA(X, Y) PRINT*, 'Area = ', AREA END
Intrinsic Functions • Functions which are available from the FORTRAN language (p. 63)
Statement Function • Expressed as: fname (list of arguments) = expression • Example: TRA (BASE, HEIGHT) = BASE * HEIGHT * 0.5
Exercises • Write a function to calculate the area of a circle; a function to calculate the circumference of a circle and the main program to test both of them. • Write a function to calculate the area of a rectangle. • Write a function called ISODD that checks if an integer X is odd or even. If X is odd, it returns .TRUE. Otherwise, it returns .FALSE.