공부할 시간이 얼마나 남았는지 계산하는 짧은 프로그램을 읽어 보세요. 출력이 어디서 나오는지 살펴보고, 입력값을 바꿨을 때 결과를 예상할 수 있습니다.
프로그래밍 경험이나 설치한 도구 없이도 읽을 수 있습니다. 이미 프로그램을 작성해 봤다면 다른 언어에서 오셨다면이나 첫 프로그램으로 이동하세요.
시간을 계산하는 프로그램
프로그램은 컴퓨터가 실행할 수 있도록 작성한 코드입니다. 다음 프로그램은 계획한 공부 시간에서 이미 쓴 시간을 뺍니다.
function 남은분(전체: int, 사용: int) -> int {
전체 - 사용
}
let 계획 = "study plan"
let 전체 = 45
let 사용 = 20
print("{계획}: {남은분(전체, 사용)} minutes left")이 프로그램을 실행하면 다음 줄이 화면에 나옵니다.
study plan: 25 minutes left45에서 20을 빼서 25를 구합니다. 영어로 된 출력은 학습 계획에서 25분이 남았다는 뜻입니다.
값과 이름 찾기
45, 20, "study plan"은 프로그램이 쓰는 데이터인 값입니다. 숫자는 계산에 쓸 수 있습니다. 글자는 따옴표 안에 적습니다.
이름을 붙이면 나중에 그 값을 다시 쓸 수 있습니다. let 전체 = 45는 45에 전체라는 이름을 붙입니다. 다음 줄은 20에 사용이라는 이름을 붙입니다. 계획에는 "study plan"이라는 글자가 들어 있습니다.
마지막 줄의 print는 글자를 화면에 표시합니다. 따옴표 안의 {계획} 자리에는 계획의 값이 들어갑니다. 다른 중괄호 안에는 계산한 결과가 들어갑니다.
함수를 따라 계산하기
함수로 코드를 묶으면 이름으로 불러 쓸 수 있습니다. 처음 세 줄은 남은분 함수를 만듭니다. 마지막 줄의 남은분(전체, 사용)은 이 함수에 45와 20을 전달해 계산을 요청합니다. 이를 함수를 호출한다고 합니다.
함수 안의 전체 - 사용은 첫 번째 수에서 두 번째 수를 뺍니다. 함수의 마지막 계산이므로 이 값이 함수의 결과가 됩니다. 여기서는 25를 돌려줍니다. 같은 함수에 다른 값을 전달하면 다른 결과를 계산할 수 있습니다.
첫 줄의 int는 소수 부분이 없는 수인 정수를 뜻합니다. 타입은 프로그램이 받을 값의 종류를 나타냅니다. 전체: int와 사용: int는 정수를 입력받는다는 표시입니다. -> int는 함수가 정수를 돌려준다는 표시입니다.
이 함수는 전달받은 두 수로 결과를 계산합니다. 입력한 수와 뺄셈을 읽으면 계산 과정을 따라갈 수 있습니다.
파일 검사하고 실행하기
실행하면 컴퓨터가 코드에 적힌 일을 수행합니다. 직접 해 보려면 첫 프로그램의 안내대로 토파즈를 설치하고 코드를 what-a-program-is.tpz로 저장하세요. 파일이 있는 폴더에서 터미널을 열고 아래 명령을 차례로 입력하세요.
topaz check what-a-program-is.tpz
topaz run what-a-program-is.tpz이 파일을 검사하면 check가 types-ok와 resolve-ok를 표시합니다. run은 위에서 본 study plan: 25 minutes left를 출력합니다.
함수에 전달하는 값을 인수라고 합니다. 남은분(전체, 사용)에서 전체는 첫 번째 인수이고 사용은 두 번째 인수입니다.
topaz check는 실행 전에 타입 불일치, 정의하지 않은 이름, 빠뜨린 인수를 찾습니다. 남은분(전체)처럼 두 번째 인수를 빼고 호출하면 그 위치에 오류를 표시합니다. 검사는 프로그램이 의도한 논리를 구현했는지 판단하지 못합니다. 답을 알고 있는 입력으로 결과를 테스트하세요.
인수를 하나만 넣어 호출했다가 이 오류가 나면 두 번째 인수로 사용을 다시 넣으세요. 실행하기 전에 파일을 다시 검사하세요.
직접 해 보기
let 사용 = 20을 let 사용 = 50으로 바꾸고 다른 줄은 그대로 두세요. 파일을 다시 실행하기 전에 출력을 예상해 보세요.
정답
45 - 50은 -5이므로 study plan: -5 minutes left가 나옵니다. 이 프로그램은 음수 결과를 허용합니다. 시간이 다 지났을 때 다르게 반응하도록 만들려면 그 규칙을 코드에 적어야 합니다.
다음 단계로 넘어갈 준비
값 45와 20이 남은분으로 전달되는 과정을 찾고, 결과가 25인 이유를 설명할 수 있으면 됩니다. 파일을 검사하는 명령과 실행하는 명령도 구분해 보세요.
첫 프로그램에서 직접 파일을 만들고 실행해 보세요.