본문 바로가기
학부 강의 노트/포트란 프로그래밍 (보충예제)

포트란 강좌 :: 입력과 출력 (I/O)

by Dr. STEAM 2022. 6. 16.
반응형
입력문 : 변수값들을 입력 - read
  • 표준입력문 : 키보드로 입력
출력문 : 변수값들을 출력 – print / write
  • 표준출력문 : 화면으로 출력

입력(input)과 출력(output) - 자동서식 입출력문

1. 입력문

형식

read *, input-list    
또는
read(* , *)  input-list

  input-list에는 변수 등이 올 수 있고,  input값들은 키보드를 통해서 입력되고 input-list에 할당된다.

  프로그램이 실행 중 read문을 만나면, input-list의 모든 변수값의 입력이 될 때까지, 프로그램 실행은 일시 중지되고, 입력이 완료되면 다음 실행지점으로 자동 이동한다. 

input 값을 입력할 때의 규칙

1. read문이 실행될 때 마다, 입력대기 줄(line)에 데이터를 입력할 수 있다.

2. 입력목록의 변수 갯수 보다 입력된 데이터 수가 적으면, input-list의 모든 변수에 값이 입력될 때까지 새로운 줄을 만들고 입력을 대기한다. 

3. 입력목록의 변수 갯수 보다 입력된 데이터 수가 많으면, 먼저 입력된 데이터 순서로 입력되고 나머지 데이터는 무시된다. 

4. 입력될 자료는 input-list에 있는 변수들과 갯수 및 데이터형이 일치해야 한다.단, 정수와 실수 형을 따르지 않으면 형선언에 따라 자동 변환된다.

5. 입력 대기 줄에서 연속되는 데이터 입력은 콤마( , )나 하나 이상의 공백으로 구분해야 한다. 

 

수치형 자료 입력

read*, x, y, z  
!   => 입력창에서 10., 20., 30.  을 입력하면
!   => x=10. y=20. z=30.                        
read*, velocity, distance 
!   => 입력창에서 20.5, 500., 40.  을 입력하면
    => velocity =20.5 distance=500. (40은 무시)
character(8) :: unit_1, unit_2
read*, unit_1, unit_2
!   => 입력창에서 meter, centimeter 입력
!   => unit_1 = “meter   “
!   => unit_2 = “centimeter”

  

문자형 자료 입력

문자열도 자동서식 입력을 이용할 수 있다. 그러나, 다음의 경우 따옴표(' ') 나 쌍따옴표(" ")로 묶어야 한다. 

1. 문자열의 길이가 한 줄을 넘는 경우

2. 문자열이 빈칸, 콤마( , ), 사선( / )을 포함하고 있는 경우

3. 문자열이 생략부호, 쌍따옴표, period( . ) 로 시작하고 asterisk(*) 가 이어 나오는 경우

 

   character(7) :: chr_1, chr_2

   read *, chr_1, chr_2

 

   입력창에 다음과 같이 입력하면 

    meter, kilometer 

 

    chr_1에는 "meter฿฿", chr_2에는 "kilomet"이 입력(할당)된다.

 

2. 출력문

output 형식

   print *, output-list, ...     
   또는
   write (*,*) output-list, ...

   output-list 에는 변수, 문자형 상수, 수식 등이 올 수 있다.  output-list 없이 사용하면 빈 줄이 출력된다. 

 

예문1

distance=500
print*,distance
print*, “distance is”, distance
print*, “distance  is”, distance, “meters.”

예문2

   print *, "The speed of sound is ", velocity, " m/sec."
   print *, "The distance of travel is ", distance, " m."

 출력 

   The speed of sound is 340.0 m/sec.
   The distance of travel is 1000.0 m.

 

 

 

>>>>> 연습문제 p47

 

728x90
반응형