때는 바야흐로 정보 이용시대. 무엇보다 먼저 해야될 일은 컴퓨터를 이용, 주면의 생활부터 전산화시켜 나가는 일일 것이다. 퍼스널컴퓨터의 활용방법을 이달부터 연재한다.
현대 산업의 형태가 공업화로 부터 정보화사회로 변천해 가면서 선진국으로부터 정보화에 대한 인식이 밀려오고 있다. 이에 대처하려는 시대적 요구에 부응하기 위해서는 먼저 컴퓨터에 접근하는 일이 필요하다. 그리고 컴퓨터를 이용하여 내가 원하는 일을 스스로 자동화해서 처리할 수 있는 능력을 길러야 한다. 여기에서는 개인용 컴퓨터를 이용하여 컴퓨터를 배우고 프로그래밍 능력을 키우고자 하는 사람들을 위해서 BASIC 언어를 사용하여 프로그래밍하는 방법을 함께 공부하고자 한다.
PC를 활용하자
컴퓨터는 정보를 표현하고 처리하는 도구이다. 크기면에서 손안에 쥘 수 있는 계산기로부터 여러개의 방 또는 건물 전체를 차지할 만큼 크고 복잡한 여러가지 종류의 컴퓨터가 있다. 과거 얼마동안에는 컴퓨터의 가격이 매우 비쌌기 때문에 사업이나 과학계산 등 특정 분야에만 이용되어 왔으나 최근들어 그 가격이 현저히 낮아져서 가정에서 사용하기에도 적합한 개인용 컴퓨터까지 등장하게 되었다.
일반적으로 컴퓨터의 크기와 비용은 주어진 시간 내에 컴퓨터가 수행할 수 있는 작업의 양에 의해서 좌우된다. 크고 비싼 컴퓨터라면 많은 기능을 동시에 수행하여 작업처리 능력을 향상시킬 수 있는 능력을 갖고 있다. 또한 특별한 기능을 수행하기 위하여 많은 장치를 덧붙일 수도 있기 때문에 컴퓨터의 성능과 비용을 증가시키는 것이다.
그러나 현재의 컴퓨터는 비용, 크기, 기능이 매우 다양함에도 불구하고 여러가지 면에서 서로 비슷한 특성을 갖고 있다. 즉 대부분의 컴퓨터는 기본적으로 (그림1)과 같은 4가지 요소로 구성되어 있다.
그러면 우리가 컴퓨터를 이용하여 자료를 처리하고 원하는 결과를 얻기 위하여서는 어떤 준비가 필요하고, 컴퓨터 내부에서는 자료가 어떤 절차로 처리되는 것일까? 컴퓨터에 의하여 처리될 모든 정보는 먼저 입력 장치를 통하여 컴퓨터 내의 기억장치(memory)안으로 들어와야 한다. 기억장치에 들어온 정보는 중앙처리장치(CPU)에 의하여 처리되고 그 결과도 역시 컴퓨터의 기억장치 안에 저장된다. 여기에 저장된 정보는 바로 우리가 처음에 원시자료 (source data)를 컴퓨터 내에 입력시켜 처리를 의뢰한후 얻기를 바랬던 새로운 형태의 자료인 것이다. 이 정보는 단말기(terminal)의 화면으로 나타나고 프린터로 인쇄되어 우리에게 제공되거나 최근 발달된 정보통신의 매체를 통하여 우리가 보내고자 하는 국내 또는 해외로 전송시킬 수도 있다.
이와같은 컴퓨터의 구성요소와 그들 상호간에 작용하는 관련성을 보다 상세히 살펴보자.
수백만개의 방으로 구성
컴퓨터의 기억장치는 기억장치 방(memory cells)이라고 하는 기억장소가 순서대로 무수히 배열되어 있는 곳이다. 각각의 방은 고유한 주소를 갖고 있는데 이 주소는 전체의 기억장치 내에서 그것이 몇번째 방인가를 나타낸다. (그림2)는 0에서 9백 99까지 연속적으로 순서가 정해져 있는 1천개의 방으로 구성된 컴퓨터 기억장치를 보여주고 있다. 규모가 큰 컴퓨터는 수백만 개의 방으로 구성된 기억장치를 갖기도 한다.
컴퓨터의 기억장치는 정보를 표시하기 위하여 사용되는데 모든 종류의 정보(숫자, 문자, 목록, 그림 등)가 이 곳에 표현될 수 있다. 기억장치 방은 모두 정보를 갖고 있지만 한 가지 이상의 정보는 갖고 있을 수가 없다. 어떤 정보가 기억장치 방에 들어 올때마다 그곳에 있었던 이전의 정보는 모두 부서져 버리고 다시 재생시킬 수가 없게 된다. 물론 그 방은 새로 들어온 정보가 차지하게 되는 것이다.
(그림2)에서 기억장치 방3의 내용은 숫자26, 기억장치 방4의 내용은 숫자 12.5이다.
CPU는 사람의 두뇌
컴퓨터는 컴퓨터를 사용하지 않으면 불가능한 문제들을 해결하며 결정을 하는데에 유용한 자료를 제공할 뿐 아니라 오래된 정보로부터 대량의 새로운 정보를 생산해 낼 수가 있다. 더우기 매우 짧은 시간내에 그것들을 처리해 내는 것이다.
컴퓨터가 이와같은 능력으로 일을 할 수 있는 힘은 어디에서 나오는 것일까? 그 처리능력의 심장부는 중앙처리장치이다. 이것은 기억장치로부터 정보를 빼낼 수가 있고 처리한 결과를 나중에 사용하기 위하여 다시 기억장치 내에 저장시키기도 한다. (이 정보는 자료이거나 자료를 처리하게 하는 명령어일 수도 있다)
또 중앙처리장치는 컴퓨터의 다른 구성요소의 모든 작동을 조정하며 무슨 일을 어떤 순서로 할 것인지 결정하는 등 사람의 두뇌와 같은 기능을 하는 곳이다. 이 곳에 있는 제어부는 조정 및 제어신호와 명령어를 전송하는 일을 맡아서 한다. 또한 산술논리 처리부가 있는데 산술셈을 맡아서 하는 부분은 덧셈 뺄셈 곱셈 나눗셈 등을 수행할 수 있도록 설계된 전자 회로로서, 셈을 하는 속도는 1백만분의 1초에 해당한다. 논리를 판단하는 부분은 정보를 비교하고 그 결과에 따라서 판단을 하는 전자회로로 구성되어 있다.
컴퓨터의 처리능력이 아무리 훌륭하다고 하더라도 우리가 컴퓨터와 의사를 소통할 수 없다면 우리에게 유용하다고 할 수 없을 것이다. 우리가 컴퓨터와 의사소통을 하기 위해서는 컴퓨터의 기억장치에 정보를 넣고 또 그곳에 있는 정보(보통 처리된 결과)를 꺼내어 볼 수 있어야 한다. 이와같이 컴퓨터의 기억장치에다 정보를 집어넣기 위해 사용하는 기구를 입력장치라 하며, 처리되어 기억장치에 들어있는 결과를 읽을 수 있는 형태로 보여주는 기구를 출력장치라고 한다.
입력장치는 컴퓨터가 필요로 하는 자료를 입력해 넣을 수 있는 타이프 모양의 자판기로 구성되어 있고 출력장치로는 화면(screen)이나 프린터(printer)를 많이 사용한다.
무엇부터 해야 할까?
앞에서 말한 것처럼 우리에게 매우 유용한 도구인 컴퓨터를 사용하기 위하여 우리가 준비해야 하는 것은 무엇일까?
무엇보다 컴퓨터가 처리해야 할 일들을 명령어 목록으로 작성하여 컴퓨터에게 알려 주어야 한다. 이와같이 작성한 일련의 명령어를 프로그램이라고 하며 프로그램을 작성하는 활동을 프로그래밍이라고 한다. 프로그램을 작성하는 일은 게임을 한번도 해본적이 없는 사람에게 어떤 게임의 규칙을 설명해 주는 일과 매우 흡사하다. 이 두가지 경우 관련되는 사람이 모두 이해하도록 설명할 수 있는 언어가 필요할 것이다. 예를들어 게임의 규칙은 어떤 언어로 설명되고 읽혀지며 실행될 것이다. 게임을 처음 만든 사람이나 그 게임을 하려고 하는 사람은 모두 게임을 설명하는 언어를 잘 알지 않으면 안된다.
이와 마찬가지로 사람과 컴퓨터 사이에도 의사소통을 할 수 있는 언어가 필요하며 이 언어를 프로그래밍 언어라고 한다. 컴퓨터에게 전달되는 모든 명령어는 프로그래밍 언어의 문장규칙에 맞게 표현되어야 한다.
컴퓨터는 사람이 작성한 프로그램을 직접으로 실행하지 못하므로 먼저 컴퓨터가 이해할 수 있는 언어로 번역되어야 하는데 이와 같이 컴퓨터가 이해할 수 있는 언어를 기계어(machine language)라고 한다. 또 기계어로 번역하는 일은 컴파일러(compiler)나 인터프리터(interpreter)라고 하는 일종의 프로그램으로 된 도구를 사용하는데 BASIC은 대개 인터프리터를 이용해서 처리한다.(그림3)
프로그래밍하기 위해서 BASIC과 같은 고급언어(high-level language)를 사용하는데에 두 가지의 중요한 장점이 있다. 첫째 기계어보다 BASIC은 우리가 일상 사용하는 언어에 훨씬 가깝기 때문에 프로그래밍하기가 쉽다는 것이다. 둘째 BASIC은 매우 호환성이 높다. 즉 어느 한 컴퓨터에서 작성한 BASIC 프로그램은 여러가지 다른 컴퓨터에서도 실행될 수가 있다는 말이다.
이제 BASIC언어의 기초적인 특성을 살펴본 후 다음에 계속하여 BASIC의 상세한 내용과 응용프로그램 작성 방법들을 공부하기로 하자.
프로그램을 실행하기 위해서 컴퓨터의 제어부는 기억장치에 있는 프로그램 명령어를 처음부터 읽고 필요한 신호를 내보내어 하나씩 수행한다. 일반적으로 명령어는 순서적으로 실행되지만 제어부는 일부 명령어를 건너 뛰거나 어느 특정 명령어를 여러 번 되풀이하여 실행시키기도 한다.
실행하는 동안 자료는 컴퓨터의 기억장치에 저장되기도 하고 그 자료로써 처리한 결과가 컴퓨터 외부로 나타나기도 한다.
(그림4)는 급여를 계산하는 프로그램과 그것의 입력 및 출력 사이의 관계, 프로그램을 수행하는 동안의 자료의 흐름을 설명하고 있다. 프로그램에 의해 처리될 자료(직원 시간카드)는 먼저 컴퓨터의 기억장치에 들어와야 한다(1단계). 프로그램의 명령어에 의하여 지시를 받으면 중앙처리장치는기억장치에 있던 자료를 꺼내서 처리를 하고 그 결과를 다시 기억장치에 저장한다(2단계). 계산처리가 끝나면 결과는 기억장치로부터 원하는 양식(급여보고서)으로 컴퓨터의 외부로 출력된다(3단계).
베이직을 배우자
◎ 변수란?
우리가 기억장치 내에 저장되어 있는 자료를 꺼내서 참고하려고 할 때에 BASIC에서도 기억장치 방의 주소 대신 상징적인 이름을 사용하는데 이것을 변수명 또는 간단히 변수라고 한다. 인터프리터와 같은 번역기는 프로그램에서 사용되는 모든 변수에 대해서 기억장치 방을 한 개씩 할당해준다. 그러므로 프로그래밍을 하는 사람은 이 기억장치 방의 주소를 알아야 할 필요가 조금도 없는 것이다. 다만 사용하고자 하는 변수명만 정해주면 된다.
BASIC에서는 변수를 정할때 대개 한 개의 문자(A~Z), 또는 연속된 두개의 문자를 사용하거나 문자 한 개와 숫자 (0~9) 한 개를 조합하여 사용한다. (예 : AA, A2, W, R 등) 또 첫자리는 변수를 설명하는 이름의 처음 문자를 사용하면 편리하다.
컴퓨터는 자기가 실행할 수 있는 연산 (operation)의 내용을 정하여 기억하고 있다. 위와같은 연산은 입력 및 출력연산, 자료처리와 비교, 제어연산으로 나눌 수가 있다. 위의 연산들이 BASIC에서 어떻게 작성되는지 간단한 급여처리 문제를 가지고 살표보자.
◎ 간단한 자료처리ㅡ할당문(assignment statements)
일한 시간과 시간당 임금을 나타내는 변수를 각각 H와 R, 계산한 총급여액과 순급여액을 G와 N, 공제해야할 세금총액을 T라고 하자. 세금총액은 직원의 총급여액에 상관없이 2만5천원이라고 정하자. 우리가 풀려고 하는 문제는 다음과 같이 요약할 수 있다.
가) 일한 시간과 시간당 임금의 곱으로 총급여액을 계산한다.
나) 총급여액에서 세금총액을 공제하여 순급여액을 계산한다.
이 계산을 컴퓨터로 하여금 실행하게 하는 명령문을 BASIC으로 어떻게 표현할 수 있을까? 이 경우는 BASIC의 할당문을 사용하여 작성한다.
LET G= H*R
LET N= G-T
(LET은 생략해도 같다.)
이와같이 어느 한 변수에 특정한 값을 할당하는 것을 나타내는 자료처리문을 할당문이라고 한다. 총급여액과 순급여액을 계산하는 두개의 할당문이 갖고 있는 효과는 (그림5)와 같다.
즉 위의 첫 번째 문의 효과는 H와 R의 값을 곱하여 얻은 값(135000)을 G에 넣으라는 것이다. 두 번째의 것은 G와 T의 값의 차이를 구하여 N에 넣으라는 것이다. 만약 변수 H와 R, T에 어떤 수가 이미 존재하고 있다고 생각하자. 이 계산을 한 후에 값이 변하는 변수는 G와 N뿐이고, 변수 H와 R, T는 처음 갖고 있던 값을 그대로 갖고 있게 된다.
할당문(assignment statements)
BASIC 형식 :
LET결과=피연산자(1) 산술연산자 피연산자(2)
설명 : ●피연산자(1), 피연산자(2)는 처리될 수량을 나타낸다.
●산술연산자는 실행될 처리내용을 나타낸다.
●피연산자는 변수명이나 숫자가 될 수 있다.
●산술연산자는 (표1)에 있는 기호중 어느 하나이다.
●'결과'는 '='의 우측 결과가 할당될 변수명이다. (비교 : 수학에서 '='는 좌우 변의 값이 서로 같다는 등호 표시)
●'결과'에 새로운 값이 저장될 때 이전에 있었던 값은 없어진다. 그러나 피연산자의 값은 변경되지 않는다.
앞에서 설명한 바와 같이 모든 자료는 먼저 기억장치에 저장되지 않으면 컴퓨터로 처리할 수가 없다. 그러면 처리할 자료를 처음에 어떤 방법으로 컴퓨터의 기억장치로 저장시킬 것인가?
먼저 할당문을 사용하는 방법이 있다. 프로그램 상수로서 프로그램을 사용할 때마다 값이 변경되지 않는 자료에 대하여 보통 사용하는 방법이다. 예를들면 앞의 급여계산 문제에서 순급여액을 계산할 모든 직원의 세금총액은 항상 25000원이다. 이 값은 할당문을 통하여 변수 T에 저장된다.
이때 이 문장은 T를 사용하는 다른 문장보다 앞에 위치해야 한다.
프로그램을 수행하는 때마다 자주 변경하는 자료에 대하여 사용하는데 이런 자료를 기억장치에 저장하는 방법은 무엇일까?
◎READ문과 DATA문
회사의 각 사원은 서로 시간당 임금이 다를 수 있고 매주 일한 시간이 다를 수 있기 때문에 변수 H와 R은 프로그램 상수를 의미하는 것은 아니다. 그러므로 이 값들은 프로그램을 실행하는 도중에 기억장치로 읽어 들여야 한다. 이 연산은 또한 H와 R을 사용하는 계산을 하기 이전에 실행되어야 한다. 아래 문장은 컴퓨터로 하여금 변수 H와 R에 자료를 읽어 들이라는 명령문이다.
READ H, R
물론 이 경우에도 이 변수들이 전에 갖고 있었던 값은 없어진다. READ문에 의하여 읽혀질 모든 자료값은 대응되는 DATA문에 명시되어야 한다. READ문과 DATA문의 효과는 아래와 같다.
READ문
BASIC 형식 :
READ 변수 목록
설명 : ●자료를 변수 목록에 표시한 각각의 변수로 읽어들인다.
●변수 목록의 각 변수를 구분하기 위해서 컴머를 사용한다.
●읽어들일 자료는 DATA문으로 표시한다.
DATA문
BASIC 형식 :
DATA 자료 목록
설명 : ●자료목록에 있는 각각의 숫자는 READ문이 실행될 때에 기억장치로 읽혀 들어온다.
●자료 목록의 각 자료를 구분하기 위해서 컴머를 사용한다.
DATA문은 프로그램내의 어느 곳에서도 위치할 수 있으나 READ문 바로 뒤에 오면 좋다.
1) 100 READ H, R
110 DATA 30, 4500
120 READ X, Y
130 DATA 6.8, 1.5
2) 100 READ H, R
110 READ X, Y
120 DATA 30, 4500, 6.8, 1.5
위의 두가지 방법은 똑같은 효과를 갖지만 1)의 방법을 권장한다. 또 DATA문의 자료의 순서는 대응하는 READ문에 표시한 변수의 순서와 일치해야 한다. 프로그램을 작성하는 도중 자료목록의 자료 순서를 바꾼다면 H, R으로 읽혀져야 할 값은 다른 것이 될것이다.
이러한 오류 또는 이와 비슷한 입력의 오류를 줄이기 위하여는 입력 자료를 저장하기 위해 사용된 각각의 변수의 값을 화면에 출력(display)시키거나 용지에 인쇄해 보는 것이 바람직하다.
◎ PRINT문
지금까지 우리는 직원의 근무시간당 임금을 입력해서 총급여액과 순급여액을 계산하기 위한 BASIC명령어를 공부하였다. 계산한 결과는 변수 G와 N에 각각 저장되었으나 우리는 기억장치 방에 무엇이 들어 있는지 실제로 볼 수가 없으므로 컴퓨터가 내부적으로 처리하는 일 자체는 우리에게 별로 중요하지가 않다. 그렇지만 우리는 변수가 갖고 있는 값을 컴퓨터가 외부로 출력하도록 명령하는 방법을 쓰면 편리할 것이다.
PRINT G, H
이 명령문의 효과는 (그림7)과 같고 출력 후 G와 N의 값은 변경되지 않는다.
PRINT문
BASIC형식 :
PRINT 출력 목록
설명 : ●출력 목록에 표시한 각 변수의 값이 출력 상에 순서대로 인쇄된다.
●출력 목록의 각 변수를 구분하기 위하여는 컴머를 사용한다.
◎END문
원하는 계산이 끝나서 결과를 출력시킨 후에는 컴퓨터에게 프로그램 실행을 정지시켜야 한다.
END문
BASIC형식 :
END
설명 : ●END문은 항상 BASIC프로그램의 맨 끝에 위치한다.
●프로그램의 실행을 종료시키고 더 이상 처리할 프로그램 명령문이 없음을 뜻한다.
프로그램을 직접 작성해보자
그럼 지금까지 배운 명령어들을 모두 모아서 다음 문제를 처리할 수 있는 프로그램을 작성해보자.
<;문제 1.1>;
직원의 시간당 임금과 근무한 시간, 세금공제 총액이 주어질 때 회사 직원의 총급여액과 순급여액을 계산하라.
급여처리 프로그램
110 LET T=25000
120 READ H, R
130 DATA 30, 45000
140 PRINT H ,R
150 LET G=H*R
160 LET N=G-T
170 PRINT G, N
180 END
위 프로그램의 각 문장 맨앞에는 문장번호가 있다. 이 문장번호는 오름차 순서의 숫자이어야 하는데 나중에 필요할 떄 프로그램문장을 추가시켜야 할 경우 충분히 여유를 주기 위해 100부터 시작하여 10씩 증가하게 하는 것이 좋다.
BASIC문에서는 번역기가 공란(blanks)을 무시하기 때문에 프로그램을 읽고 이해하기 쉽게 하기 위해서는 공란을 사용하면 좋다. 그러나 규칙성있게 사용해야 한다. 앞으로 우리는 컴머 다음에 공란을 두고 *나 -등과 같은 연산자와 LET, READ, DATA, PRINT등과 같은 BASIC의 약정어(key words) 앞과 뒤에는 공란을 두기로 하겠다.
위 프로그램을 설명하면 문장번호 110번 부터 140번까지는 프로그램 상수T의 값을 정의하고 변수 H와 R의 값을 읽어 들여서 화면에 출력시킨다. 150번부터 170번까지는 G와 N의 값을 계산하여 출력한다. 프로그램의 맨 끝에는 END문이 있는데 프로그램의 실행을 종료시키는 것 외에 컴퓨터내의 번역기에게 번역할 문장이 더 없음을 알리는 역할을 하고 있다.
이 프로그램이 실행되어서 출력하는 내용은
30 4500
135000 110000
만약 35시간 근무하고 시간당 임금이 3800원인 다른 직원에 대해 프로그램을 다시 실행시키려고 한다면 DATA문을 아래와 같이 수정하기만 하면 된다.
130 DATA 35, 3800
이번에는 출력된 값이 어떤 의미를 갖는지 쉽게 알아볼 수 있도록 주석(comment)을 함께 출력하는 방법을 생각해 보자. 이 경우는 인용한 문자열을 사용하는데 문자열(string)이란 인용부호 안에 연속으로 표시한 문자를 말한다. 이 문자열을 BASIC의 PRINT 문에 직접 기록하면 출력내용의 설명문도 함께 출력시킬 수가 있다. 즉 문자열은 인용부호만 벗겨진 채 PRINT문에 적힌 그대로 출력된다. 예를 들면
140 PRINT "시간=", H, "시간당 임금=", R
170 PRINT "총급여=", G, "순급여=", N
은 다음과 같이 출력시킨다.
시간=30 시간당 임금=4500
총급여=135000 순급여=110000
반복해서 해보자
문자열을 사용하는 간단한 프로그램 예를 하나 더 해보자. 여행거리(D), 평균속도(S), 기름 1갤론으로 여행한 마일수(M), 갤론당 가격(C)등 4개의 자료가 주어질때, 여행시간(T)과 여행비용(E)를 계산하는 프로그램을 작성해 보자.
●공식 : 1) 시간=거리/속도
2) 사용한 갤론(gallon)=거리/갤론당 간 거리
3) 여행비용= 사용한 갤론×갤론당 가격
여행시간과 비용계산 프로그램
100 PRINT "여행시간과 비용계산"
105 READ D, S
110 DATA 320, 50
120 PRINT "거리=" ; D ; "마일"
130 PRINT "평균속도=" ; S ; "마일/시간"
140 LET T=D/S
150 PRINT "여행시간=" ; T ; "시간"
160 PRINT
170 READ M, C
180 DATA 19.5, 600
190 PRINT "1갤론으로 여행한 거리=" ; M ; "마일"
200 PRINT "갤론당 가격=" ; C ; "원"
210 LET G=D/M
220 LET E=G*C
230 PRINT "예상 여행비용=" ; E ; "원"
240 END
RUN
출력내용
여행시간과 비용계산 (문번호 100)
거리= 320마일 평균속도=50마일/시간 (문번호 120, 130)
여행시간=6.4시간 (문번호 150)
(문번호 160)
1갤론으로 여행한 거리=19.5마일 (문번호 190)
갤론당 가격=600원 (문번호200)
예상 여행비용=9846.15원 (문번호 230)
프로그램 설명
문번호 140은 공식 1)을 사용하여 여행시간을 계산한다.
문번호 210은 공식 2)을 사용하여 사용한 기름의 갤론수를 계산한다.
문번호 220은 공식3)을 사용하여 여행비용을 계산한다.
출력줄에는 해당 내용을 출력시킨 프로그램 문번호가 오른편의 괄호 안에 표시되어 있다.
위 프로그램에서 나타난 PRINT문의 중요한 특성은 다음과 같다.
가) 각 PRINT문은 출력할 때 새로운 줄에 인쇄한다. 단, 바로 앞의 PRINT문이 컴머(,)나 세미콜론(;)으로 끝나는 경우에는 앞의 PRINT문이 인쇄한 같은 줄에 인쇄한다.
나) PRINT라고만 쓴 문은 한줄을 공란으로 남긴다.
다) PRINT문 뒤의 출력목록 자료들을 구분하기 위하여는 컴머나 세미콜론을 사용한다. 컴머를 사용할 경우에는 서로 간격을 유지아며 미리 정해진 위치에 인쇄되고 세미콜론을 사용할 경우에는 앞의 자료가 인쇄된 바로 뒤에 인쇄된다.
대화식(interactive) 자료입력
컴퓨터 내로 자료를 입력시키는 또 다른 방법은 INPUT문을 사용하는 것이다. INPUT문을 사용하면 프로그램이 실행될 때 우리는 컴퓨터와 보다 쉽게 대화를 나눌 수 있다. 이 경우에는 프로그램에서 필요한 자료를 미리 입력할 필요가 없고 프로그램이 실행되고 있는 도중에 필요한 자료를 입력하면 된다.
다음 예에서처럼 INPUT문은 DATA문과 함께 사용하는 READ문과 똑같다.
대화식 자료입력 프로그램
10 CLS
20 PRINT : PRINT : PRINT :
100 PRINT TAB (15) "안녕하세요. 나이가 몇 세입니까" ;
110 INPUT A
120 PRINT TAB(15) A ; "세는 좋은 나이입니다."
125 PRINT
130 PRINT TAB(15) "남자형제와 여자형제는 몇 분입니까?"
140 PRINT TAB(15) "남자형제 수, 컴머, 여자형제 수를 입력하세요" ;
150 INPUT B, S
160 LET T=B+S+1
165 PRINT
170 PRINT TAB(15) "그렇다면 모두" ; T ; "형제이시군요."
175 PRINT
180 PRINT TAB(15) "고맙습니다!"
190 PRINT
200 END
RUN
출력내용
안녕하세요. 나이가 몇 세입니까? 25
25세는 좋은 나이입니다.
남자형제와 여자형제는 몇 분입니까?
남자형제 수, 컴머, 여자형제 수를 입력하세요? 1, 1
그렇다면 모두 3형제이시군요.
고맙습니다!
INPUT문
BASIC형식 :
INPUT 변수 목록
설명 : ●물음표가 출력되며 프로그램의 실행이 잠시동안 중단된다.
●입력될 변수목록에 있는 변수의 수만큼 자료를 입력해 넣어야 한다.
●자료를 모두 입력한 후에는 프로그램이 다시 실행되도록 실행키(RETURN key)를 쳐야 한다.
주의 : ●사용자에게 알리는 문장을 출력하는 PRINT문은 INPUT문의 앞에 있어야 한다.
INPUT문을 사용하는 다른 예로 공의 부피와 표면적을 구하는 프로그램을 작성해보자.
프로그램
5 CLS
7 PRINT : PRINT : PRINT : PRINT : PRINT : PRINT :
9 PRINT TAB(20) "공의 부피와 표면적을 계산해 드리겠어요!" : PRINT : PRINT
10 PRINT TAB(20) "알고 싶으신 공의 반지름은 (센티미터)" ;
20 INPUT R
30 P=3.14159
40 V=4/3*P*R∧3
50 S=4*P*R∧2
60 CLS
80 PRINT : PRINT : PRINT : PRINT : PRINT :
100 PRINT TAB(15) "반지름이" ; R ; "센티미터인"
110 PRINT
120 PRINT TAB(20) "공의 부피=" ; V ; "세제곱 센티미터"
125 PRINT
130 PRINT TAB(20) "공의 표면적=" ; S ; "제곱 센티미터 입니다."
135 PRINT
140 PRINT TAB(40) "감사합니다!" :PRINT : PRINT : PRINT : PRINT :
150 PRINT TAB(20) "계산을 계속 하시겠어요?"
155 PRINT TAB(20) "그렇다면 1, 아니면 2를 입력하세요" ;
160 INPUT Q
170 IF Q=1 THEN 5
180 CLS 1
RUN
출력 내용
공의 부피와 표면적을 계산해 드리겠어요!
알고 싶으신 공의 반지름은 (센티미터)?
반지름이 1센티미터라고 입력하면 다시 아래와 같은 내용이 화면에 나타난다.
반지름이 1센티미터인
공의 부피=4.188787 세제곱 센티미터
공의 표면적=12.56636 제곱 센티미터입니다.
감사합니다!
계산을 계속 하시겠어요?
그렇다면 1, 아니면 2를 입력하세요.
이제 또 다른 공에 대하여 계산하고 싶으면 1을 , 그렇지 않으면 2를 입력하면 된다.
지금까지 컴퓨터의 일반적인 구성과 컴퓨터 내부에서 어떤 절차로 작업이 실행되는가에 관하여 살펴본 후 개인용 컴퓨터에서 처리하기에 적합한 BASIC언어의 기초적인 명령문을 공부하였다. 여기에서 배운 내용을 잘 활용한다면 처음 프로그램 언어를 공부하여 연습하는 사람에게 유익한 도움이 될 것이다. 다음 회에는 계속하여 BASIC 언어의 구체적인 명령어와 그것을 사용하여 원하는 프로그램을 작성하는 방법에 대해 공부하기로 하자.