[기초-출력] 출력하기03 && 프로그래밍 역사1
1940~1950년 대의 컴퓨터는 프로그래밍이 무척 어려웠다고 한다. 그것들에게 프로그래밍은 기판에서 전선들을 조작해 연결된 곳을 1 아닌곳을 0 으로 하여 시간도 많이 걸렸다. 또, 문제가 생겼을 때 전선이 수천개가 넘기 때문에 에러를 찾는것이 무척 힘들었다고 한다. 여담으로 버그(bug)라는 단어가 이때 생겼는데 벌레가 전선 사이로 들어가 에러를 일으켰다고하여 붙여진 단어다. 사실 버그라는 단어는 컴퓨터가 있기 한참 전부터 기계류 톱니바퀴 따위에 추락하면서 문제를 일으켜 생겨났는데 컴퓨터에도 이와 같은 문제가 일어나 '컴퓨터버그'로 붙여졌다.
시간이 흘러 메모리를 이용해 프로그래밍을 하게 된다. 코딩도 무척 빨라지고 빠른 수정이 가능하였지만 0과 1로 되어있기 때문에 이 또한 고된 작업이었다고 한다. 그리하여 사람들은 보다 쉽게 이해하기 위해 어셈플리어라는 약어를 사용하기 시작했다. 하지만 이것도 그리 효율적이지 못하였는데 그 이유는 컴퓨터에게 너무 세세히 명령해야 하기 때문이다. 예를 들자면, 만약 '먹어라'라는 말을 어셈블리어로 표현하자면
'오른팔(혹은 왼팔)에 붙어있는 손을 뻗어라. 그 손에 붙어있는 손가락을 이용해 숟가락을 움켜쥐어라. 음식물을 넘쳐 떨어뜨리지 않게 숟가락을 사용해 들어올려라. 입을 벌리고 숟가락을 들고 있는 팔을 구부려 입에 가져가라. 입에 음식물이 완전히 들어갈때까지 계속 입에다가 가져가라. 숟가락을 씹지않게 입을 다물고 숟가락을 입에서 빼내어라. 턱관절과 이빨을 사용해 음식을 잘게 부서라. 침과함께 삼켜라. 음식을 다 먹을때까지 반복하라..'
이것도 세세하게 표현한게 아닐정도로 어셈블리어는 명령을 세세히 해야 하였고 이로 인해 만들 수 있는 프로그램은 제한적이었다.
계속..
이번에는 줄을 바꿔 문장을 출력하는 출력을 연습해보자.
다음과 같이 줄을 바꿔 출력 해야한다.
Hello
World
두 줄에 걸쳐서 줄을 바꿔 출력
Hello
World
Hello World
백슬래시(back slash) 문자 '\'는 문자 'W'와 비슷한 원화표시(won sign)로 보이기도 하지만, 같은 문자이다. 글꼴 설정에 따라 다르게 나타난다.
printf( ) 함수를 이용해 문장을 출력할 때, 줄을 바꾸기 위해서는 문장 중간에
'\n'(newline을 의미)을 줄을 바꿀 위치에 넣어야 한다.
'\a' 경보(비프음)
'\b' 백스페이스
'\f' 폼피드(다음 페이지의 시작으로 옮김)
'\r' 캐리지리턴(carrage return, 그 줄의 맨 앞으로 커서를 보냄)
'\t' 탭(tab)
'\t' 수평 탭
'\v' 수직 탭
.. 등이 있다. (특수기호는 다음장에 다루겠다.)
이러한 문자를 이스케이프(escape) 문자라고 하고,
형식에 맞추어 출력하는 문장 안에서 줄을 바꾸는 등의 특별한 의미들을 나타내기 위해 사용한다.
파이썬도 거의 동일하게 쓰인다. 헌데 파이썬에서
print("""문장
문장""")
하게되면 큰따옴표 3개안에 묶인 문장이 그대로 출력된다.
예시
printf("hello\nworld");
** 주의 : 본 화면에서 복사하여 붙여넣기하면 제대로 되지 않을 수 있으니 직접 소스코드를 작성해 넣어야한다.