728x90
반응형

1. 1251/3 승수 구하기

program ex
    implicit none
    
    real :: x, y1, y2, y3, y4,  y5
    x = 125    
    
    y1 = x ** (1.0/3.0)
    y2 = x ** (1./3.)
    y3 = x ** (1/3.0)
    y4 = x ** (1.0/3)
    y5 = x ** (1/3)
    print *, '12345678901234567890123456789012'
    print *, 'Remind 1.0 x 3.0 = ', 1.0 * 3.0
    print *, 'Remind   1 x   3 = ', 1 * 3
    print *
    
    print *, y1
    print *, y2
    print *, y3
    print *, y4
    print *, y5
    
    print *
pause
end program ex

결과해설

사칙 연산에서 아래와 같은 사실을 알 수 있다. 

실수 ÷ 실수 = 실수

실수 ÷ 정수 = 실수

정수 ÷ 실수 = 실수

정수 ÷ 정수 = 정수

 

y5의 경우 1/3 = 0.333 인데, 정수/정수=정수형이 되므로, 소수점 이하자리는 버림되고 1/3은 0이 된다. 따라서, 결과값이 1이다. 1은 정수가 아니라 1.00000으로 실수형으로 표현되는 이유는 y5가 실수형으로 선언되었기 때문이다. 

 

 

3. e3 구하기

입력설계

키보드로 입력값을 받아들인다. 

내장함수 EXP( )를 사용하여 지수값을 구한다. 

 

의사코드

   read x

   p = EXP(x)

   print p

 

프로그램

program ex
    implicit none
    
    real :: x, p
    
    print *, 'Enter value :'
    read *, x
    
    p = exp(x)
    print *, 'Exponential value is', p
    
    print *
pause
end program ex

결과 해석

원하는 값을 입력받아 프로그램을 실행하고자 할 때, read 문을 사용한다. 

 

 

4. loge2.7 와log102.7구하기

 

처리조건

자연로그 값을 구하기 위해 log( )와 alog( )함수를 사용해서 비교한다. 

상용로그 값을 구하기 위해 log10( )함수를 사용한다. 

 

프로그램

program ex
    implicit none
    
    real :: x, a, b, c
    
    print *, 'Enter value :'
    read *, x
    
    a = log(x)
    b = alog(x)
    c = log10(x)
    print *, ' LOG(x) is ', a
    print *, 'ALOG(x) is ', b
    print *, 'LOG10(x) is ', c
    print *
pause
    end program ex

5. 삼각함수 값 구하기

처리조건

  삼각함수 입력값은 radian 이다. degree를 radian 으로 변환해야 한다. 

program ex
    implicit none
    
    real :: degree, radian
    real :: x, L, M, N, P
    
    print *, 'Enter the angle in degree :'
    read *, degree
    
    radian = 3.141592/180.0
    x = radian * degree
    L = sin(x)
    M = cos(x)
    N = tan(x)
    P = sin(x)/cos(x)
        
    print *, "SIN(X) is ", L
    print *, "COS(X) is ", M
    print *, "TAN(X) is ", N
    print *, "SIN(X)/COS(X) is ", P
        
    
    print *
pause
    end program ex

결과 해설

마지막에 TAN(x)와 SIN(x)/COS(x) 값을 비교해 보면, 맨 마지막 소수자리 숫자가 다르다. 이는 truncation 문제로 인해 발생하는 것이다. 

 

 

 

과제

아래 열거된 내장함수를 모두 사용하여 코딩하여 결과를 발표한다.

처리조건:

입력값은 화면에서 임의로 입력받도록 한다. 

출력은 소수점 3째자리까지 출력되도록 한다. 

발표내용:

코딩 설계 및 구성을 설명한다. 

코딩을 line-by-line 으로 설명한다. 

 

 

 

여러가지 내장함수

Function Meaning Arg. Type Return Type
ABS(x) absolute value of x INTEGER INTEGER
REAL REAL
SQRT(x) square root of x REAL REAL
SIN(x) sine of x radian REAL REAL
COS(x) cosine of x radian REAL REAL
TAN(x) tangent of x radian REAL REAL
ASIN(x) arc sine of x REAL REAL
ACOS(x) arc cosine of x REAL REAL
ATAN(x) arc tangent of x REAL REAL
EXP(x) exp(x) REAL REAL
LOG(x) natural logarithm of x REAL REAL

 

Function Meaning Arg. Type Return Type
INT(x) integer part x REAL INTEGER
NINT(x) nearest integer to x REAL INTEGER
FLOOR(x) greatest integer less than or equal to x REAL INTEGER
FRACTION(x) the fractional part of x REAL REAL
REAL(x) convert x to REAL INTEGER REAL

 

Function Meaning Arg. Type Return Type
MAX(x1, x2, ..., xn) maximum of x1, x2, ... xn INTEGER INTEGER
REAL REAL
MIN(x1, x2, ..., xn) minimum of x1, x2, ... xn INTEGER INTEGER
REAL REAL
MOD(x,y) remainder x - INT(x/y)*y INTEGER INTEGER
REAL REAL
728x90
반응형

+ Recent posts