컴퓨터에게 첫 번째 일 시키기
앞서 이야기했던 쉽게 1부터 100까지 더하는 방법을 컴퓨터에게 시킨다면 어떤 방법을 사용할까?
만일 액셀 프로그램을 가지고 있다면 아주 쉽게 연속된 숫자를 채워 넣을 수 있다.
아래의 그림과 같이 1, 2만을 입력하고 마우스로 우측 하단을 클릭하여 아래로 드래그하면 금방 100까지 숫자가 채워지고 오른쪽 아래의 그 합과 평균값까지 보여준다.
그러나 우리가 알고 싶은 것은 그 정답이 아니고 이것을 어떻게 컴퓨터 프로그램이 계산했을까 이다.
왜 고등학교 수학 문제는 정답도 중요하지만 그 과정도 중요한 것과 같은 이유이다.
일단 코딩의 가장 중요한 구성 요소 3가지를 알아보자. 내가 일방적으로 정리한 것이니, 이해에는 도움을 받아도 되지만 다른 책들에 정리된 것과 다를 수 있음을 이해하시라.
1. 대입
2. 반복
3. 조건 비교
수학 문제
X+Y= 10이고 X=3이면 Y의 값은?
를 풀 때 우리는 X, Y라는 변수를 사용하였다.
(변수는 숫자 또는 문자와 같은 데이터를 저장해 두는 방이라고 생각하자)
이때 X=3이라고 하는 것은 X가 3이라는 이야기다.
그런데 코딩에서는 X에 3이라는 값을 저장한다. 이를 대입이라고 이름 붙여 본 것이다.
X와 Y는 어떤 값이 들어갈지 모르는 변수이다.
코딩에서 X=3이라고 쓰면 우리는 X라는 숫자 또는 문자가 들어갈 수 있는 방에 3을 넣어 두었다고 생각하면 된다.
문제 : 1부터 100까지 더한 값을 구한다.
풀이 방법 :
SUM이라고 하는 변수를 만들고,
SUM=0이라고 하여
SUM의 내용을 0으로 만들고 X를 1부터 100까지 변화시키며
SUM에 더해주면 된다.
이를 코딩의 형태로 바꾸면
SUM라는 변수의 값은 0이다.
X를 1부터 시작해서 ; X가 100이 될 때까지 ; X를 1씩 더해서
{
SUM에 계속 더한다.
}
위의 작업이 끝나면 SUM이 어떤 값을 갖는지 확인한다.
이 값이 정답이다.
와 같이 표현할 수 있다.
각 사항은 각 컴퓨터 언어로 번역할 수 있고, 이를 모으면 컴퓨터 프로그램이 되는 것이다.
SUM라는 변수의 값은 0이다.
이 부분이 대입 부분이다.
X를 1부터 시작해서 ; X가 100이 될 때까지 ; X를 1씩 더해서
라고 하는 부분이 동일한 작업의 반복을 수행하는 조건이다.
앞서 이야기 한 천재 수학자의 방법이 아니라 우리 대다수의 사람들이 사용하는 방법을 사용했다.
컴퓨터는 우리가 무언가 시키지 않는다면 멍멍이만큼도 스스로 생각하지 못하기 때문이다.
만일 천재 수학자의 방법을 사용하려 한다면 이를 코딩에 반영할 수 도 있겠지만, 손쉬운 방법을 사용해도 컴퓨터는 순식간에 이를 처리한다.
내가 정의한 코딩의 3대 요소 중 하나인 반복이 위의 샘플에 나타나게 되는데, 바로 for를 사용한 부분이다.
오늘 코딩의 중요한 3가지 구성 요소 중 두 가지를 이미 배웠다.
도식화해보자면 아래와 같다.
인터넷 홈페이지의 구성시 활용할 수 있는 자바스크립트라고 하는 프로그램으로 번역한 결과도 함께 보여준다.
다른 언어도 거의 같다고 생각하면 된다. 컴퓨터 프로그램 언어는 하나만 알면 다른 걸 배우는 것은 아주 쉬운 일이다.
var sum=0;
var x;
for ( x=1; x <= 100; x++) {
sum=sum+x;
}
당장은 눈으로만 보시고 이해가 되면 하고 안되면 말면 된다.
아직은 그럴 때다.