티스토리 뷰

 포트란에서는 출력문인 PRINT문과 WRITE문을 이용하여 형식이 정해지지 않은 형태로 출력을 할 수 있습니다. 이런 형태를 비정형 출력문이라고 하는데요, 물론 정해진 형태로 출력할 수도 있습니다. 정해진 형태로 출력하는 FORMAT문도 따로 있습니다.


 정형 출력이라는 것은 아무래도 모양을 맞춰서 출력해 주게 되니 좀 더 복잡하고 많은 자료들을 출력할 때는 유리합니다. 비정형 출력은 프로그래머가 별도의 양식을 정해주지 않아도 컴파일러가 알아서 일정한 형식으로 출력시켜 주니 간단히 결과를 볼 수 있다는 장점이 있습니다.



 비정형으로 출력하게 되면 어떻게 되는지 살펴보겠습니다. 화면의 한줄에는 12열씩 구성된 6개의 밴드가 있어서 숫자 데이터는 각 밴드의 뒷부분부터 채워서 출력됩니다. 그러나 문자 데이터의 경우 밴드와는 상관없이 출력됩니다.


[예제]

PRINT *, 1, 12, 123, 1234, 12345, 123456, 2, 23, 234


[결과]

출력요소가 6개를 넘어가면 한줄에는 6개까지만 출력되고 나머지는 그 다음 행에 출력되게 됩니다.


WRITE(*, *) 수 또는 수식

PRINT *, 수 또는 수식


[예제]

1
2
PRINT *100200100+200
END
cs


[결과]

100     200     300


여기서 END문에 대해 설명하고 넘어가겠습니다. 포트란 컴파일러는 프로그램을 컴파일하다가 END 문을 만나면 프로그램의 끝으로 인식하고 작업을 종료하게 됩니다. 하나의 프로그램을 종료할 때는 반드시 END문을 작성해 주어야 합니다. 서브루틴(부 프로그램)의 경우에도 END문을 사용하여야 합니다.



WRITE(*, *) 변수 또는 변수식

PRINT *, 변수 또는 변수식


[예제]

1
2
3
4
5
= 100
= 200
= I + J
PRINT *, I, J, K, I+J
END
cs


[결과]

100     200     300     300


PRINT '(nH문자열)' : H 뒤에 있는 문자열 n개를 출력시킵니다. 이 때 문자열 길이와 n값을 같아야 합니다


[예제]

1
2
PRINT '(5HKOREA)'
END
cs


[결과]

KOREA



 마지막으로 위에서 언급된 WRITE문을 설명하도록 할게요. WRITE(*, *) 명령문은 PRINT * 명령문과 같은 내용입니다. 원래 WRITE 문에 있는 첫번째 *는 장치번호를 의미하고 두번째 *는 FORMAT문의 명령문번호를 의미합니다.


 그러나 비정형 출력문에는 FORMAT문이 없으므로 뒤에는 항상 *로 표시를 하게 되고 출력할 장치는 보통 모니터이므로 화면에 해당하는 6을 앞의 * 대신 사용해도 됩니다. 즉, WRITE(*, *)와 WRITE(6, *)는 같은 의미입니다.


[예제]

1
2
3
4
5
IA = 6
IB = 4
IC = IA * IB
WRITE(**) IC
END
cs


[결과]

24


 다음 포스팅에서는 포트란에서 사용하는 연산자에 대해서 알아보도록 하겠습니다.


'포트란' 카테고리의 다른 글

[FORTRAN] 변수명 규칙과 대입문  (0) 2018.10.19
댓글
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday