이미 소장하고 있다면 판매해 보세요.
|
PART 01 코드와 라이브러리
01 영문 코드와 한글 코드 1.1 ASCII 코드 1.2 한글 코드 1.2.1 조합형 한글 코드 1.2.2 확장 완성형 한글 코드 1.2.3 한자 코드와 특수 기호 코드 * 연습문제 02 라이브러리 함수와 응용 함수 2.1 문자열 처리와 관련된 함수들 2.1.1 문자열의 저장과 처리 2.1.2 문자열의 길이 2.1.3 대소문자 변환 2.1.4 문자열을 역순으로 출력 2.1.5 문자열을 역으로 변환 2.1.6 문자열을 숫자로, 숫자를 문자열로 변환 2.1.7 문자열 대체 2.1.8 문자열 삽입 2.1.9 문자열 연결 2.1.10 문자열 비교와 검색 * 연습문제 2.2 숫자 처리와 관련된 함수들 2.2.1 변수의 부호 2.2.2 나눗셈과 나머지 계산 함수 2.2.3 지수와 로그, 삼각함수 2.2.4 정수 부분과 소수 이하 부분을 분리 2.2.5 숫자와 자리수 2.2.6 round up, round down 그리고 반올림 * 연습문제 2.3 시간과 날짜와 관련된 함수들 2.3.1 현재 날짜와 시간을 출력 2.3.2 시간 차이의 계산 2.3.3 시간을 지연시키는 함수 2.3.4 날짜수와 요일 계산 * 연습문제 PART 02 기본 모듈 03 게임 기본 모듈 3.1 커서의 위치와 화면제어 3.1.1 커서의 위치 제어 3.1.2 화면 지우기 * 연습 문제 3.2 화살표 키의 사용 방법 3.2.1 아스키 코드와 스캔 코드 3.2.2 화살표 키를 이용한 문자의 이동 * 연습 문제 3.3 좌표와 직선 3.3.1 화면 좌표계에서 직선의 표시 3.3.2 화면 좌표계를 데카르트 좌표계로 변환 * 연습문제 3.4 색상변경 * 연습문제 3.5 사각형 그리기 3.5.1 정사각형의 표현 3.5.2 직사각형의 표현 3.5.3 바둑판(격자) 모양의 표현 * 연습문제 3.6 메뉴선택과 진행 3.6.1 메뉴와 선택 3.6.2 메인 메뉴와 서브 메뉴 * 연습문제 3.7 난수 생성 3.7.1 라이브러리 함수를 이용한 난수 생성 3.7.2 주어진 범위 안에서 난수 생성 3.7.3 실수형 난수의 생성 3.7.4 난수의 생성원리 * 연습문제 3.8 가변인수 * 연습문제 04 기초 수학 모듈 4.1 수의 체계 4.1.1 진수 연산 4.1.2 진법 변환 4.1.3 보수 연산 * 연습문제 4.2 집합 연산 4.2.1 합집합 4.2.2 교집합 4.2.3 차집합 * 연습문제 4.3 행렬 계산 211 4.3.1 행렬의 초기화와 출력 4.3.2 행렬의 합 4.3.3 행렬의 곱 4.3.4 행렬의 회전 4.3.5 행렬의 대칭 * 연습문제 4.4 함수와 그래프 4.4.1 함수 4.4.2 x와 f(x)의 결과 값을 2차원 좌표에 출력 4.4.3 함수 관계의 유추 4.4.4 지수함수, 로그함수, 삼각함수 4.4.5 삼각함수와 좌표 변환 * 연습문제 4.5 순열과 조합 4.5.1 계승의 표시 4.5.2 순열 4.5.3 조합 * 연습문제 4.6 암호화와 복호화 4.6.1 Caesar 암호 4.6.2 단순전치암호 4.6.3 XOR 연산과 암호 * 연습문제 PART 03 게임 모듈 05 게임 응용 모듈 5.1 카드표시와 카드섞기 5.1.1 카드 표시 5.1.2 카드 섞기 * 응용문제 5.2 애니메이션 5.2.1 대상의 연속적 이동 5.2.2 화살표 키를 이용한 문자 이동 애니메이션 5.2.3 사각형을 응용한 애니메이션 * 응용문제 5.3 키보드 응용 5.3.1 영문 자판의 표시와 자판 연습 5.3.2 숫자 키를 이용한 문자작성 5.3.3 음계와 피아노 건반 * 응용문제 5.4 숫자변환과 표현 5.4.1 숫자에 대한 자리수별 분리 5.4.2 금액에 대한 화폐 단위권별 분리와 콤마의 표시 5.4.3 주판의 표현 5.4.4 디지털 숫자의 변환과 표현 5.4.5 로마숫자의 변환과 표현 5.4.6 영문과 한글의 코드 구분과 코드 변환 * 응용문제 5.5 자료구조 5.5.1 게임과 자료구조 5.5.2 연결 리스트 5.5.3 스택 5.5.4 데이터 압축과 복원 5.5.5 데이터 검색 * 응용문제 06 게임 확장 모듈 6.1 디지털 숫자 * 응용문제 6.2 화살표 키로 제어하는 수평 수직 슬라이드 바 * 응용문제 6.3 도형의 연속적인 이동과 회전 6.3.1 도형의 출력 6.3.2 도형의 회전 6.3.3 도형의 연속적인 이동 * 응용문제 PART 04 생활 속의 프로그래밍 07 응용 프로그램 제작에 대한 전략 7.1 프로그래밍 전략 7.2 연습 프로그래밍 7.2.1 출현 빈도가 ?장 많은 숫자를 찾아라. * 개선과 확장 7.2.2 100을 넘어라 * 개선과 확장 08 게임과 스포츠 8.1 바둑판과 바둑돌 8.1.1 바둑판 표시와 바둑돌의 이동 8.1.2 바둑돌 놓기 8.1.3 번갈아 가며 바둑돌 놓기 * 개선과 확장 8.2 야구 스코어의 득점판 표시 * 개선과 확장 8.3 디지털 stopwatch * 개선과 확장 8.4 심리 테스트 * 개선과 확장 8.5 말타고 화살쏘기 * 개선과 확장 8.6 블록쌓기 * 개선과 확장 8.7 보물찾기 * 개선과 확장 8.8 슬롯머신 * 개선과 확장 8.9 주사위로 과자먹기 * 개선과 확장 8.10 줄다리기 * 개선과 확장 8.11 청기백기 * 개선과 확장 09 취미와 여가활용 9.1 디지털 피아노 9.1.1 건반표시와 음계의 출력 9.1.2 옥타브와 음의 지연 시간을 제어하는 방법 * 개선과 확장 9.2 디지털 레시피 * 개선과 확장 10 학교와 직장 10.1 디지털 시계 * 개선과 확장 10.2 휴대전화기를 이용한 문자작성 * 개선과 확장 10.3 움직이는 글자광고판 * 개선과 확장 10.4 교실 내의 자리배치 * 개선과 확장 10.5 컴퓨터를 이용한 설문조사와 데이터 파일 생성 * 개선과 확장 11 학습과 계산 11.1 디지털 주판 * 개선과 확장 11.2 바이오리듬 * 개선과 확장 11.3 같은 문자를 찾아라 * 개선과 확장 11.4 길이에 대한 도량형 환산 * 개선과 확장 11.5 금액에 대한 한글 표시 * 개선과 확장 부록 부록 1 ASCII 코드 부록 2 스캔 코드 부록 3 키워드 부록 4 완성형 코드표 4.1 완성형 한글 코드 4.2 완성형 한자 코드 4.3 완성형 특수 기호 코드 부록 5 문법 요약 5.1 데이터 형과 연산자, 기본 입출력 5.2 제어문 5.3 함수와 기억 클래스 5.4 배열과 포인터 5.5 구조체와 공용체, 비트필드 5.6 파일처리 *찾아보기 |
|
거의 모든 사람들이 휴대전화기를 사용하고 있고, 휴대전화기로 문자 메시지를 주고받으면서도 컴퓨터 자판이 아닌 숫자 버튼만으로도 문자를 작성할 수 있는 것이 프로그램을 통해 가능하다는 것을 알고 있는 사람들은 그리 많지 않을 것입니다.
노래방에서 곡을 선택할 경우에도 곡목선택 리모컨의 편리성은 알고 있지만, 어떤 방법으로 작동하는지에 대해 생각해 본 사람 또한 많지 않을 것입니다. 프로그램은 반드시 컴퓨터를 이용해야 하는 것으로 생각하는 경우가 대부분이지만 휴대전화기로 다양한 게임을 즐길 수 있듯이, 실제로 우리가 접하는 물질세계의 많은 부분들은 프로그램에 의해 처리되고 있고, 도움을 받고 있습니다. 이 책의 목적은 프로그래밍과 프로그램을 배우려는 학생들에게 실제 생활에서 접할 수 있는 문제들을 제시하고 연습하게 함으로써 컴퓨터적인 사고에서 벗어나 생각의 폭을 넓히는 동시에, 문제 해결 능력을 향상시키려는 것입니다. 이것은 마치 과학이나 물리학의 이론들을 학생들에게 설명할 때, 생활 주변에서 흔히 접할 수 있는 현상들을 예로 들어 설명한다면 이해도 빠를 뿐더러 그 분야의 관심도 증가하는 것과 같은 이치라고 생각합니다. 프로그래밍에 대해 흥미와 관심을 가질 수 있는 분야는 아마도 게임일 것이라 생각합니다. 프로그램과 프로그래밍에 대한 지식이 없는 학생들도 starcraft나 tetris와 같은 게임은 누구나 한번쯤은 해본 것이기에, 실생활과 관련된 예제 프로그램의 작성과 응용을 마치 게임 프로그램을 만들어 가듯이 전개한다면 학습의 효과는 배가될 것입니다. 그러나 그러한 형식으로 책의 내용을 전개한다는 것은 사실상 어려운 일이지만, C 언어의 특징 중의 한 가지인 함수라는 기능을 이용하여 최대한 이 책의 목적과 취지에 맞게 전개하려고 노력하였습니다. C 언어 프로그래밍에 대한 많은 책들의 개요부분에서 C 언어 프로그램은 함수들로 구성되어 있으며, 함수의 기능은 프로그램의 모듈(module)화와 재사용이라고 설명하고 있습니다. 그러나 학생들이 예제로 작성해보는 함수들은 해당 예제에만 국한되어 사용되기 때문에 다른 예제의 함수로 재사용되지 못하고, 프로그램에 대한 모듈화도 다루기 어려웠던 것이 사실입니다. 이 책의 특징은 응용 프로그램의 작성 능력을 향상시키기 위해 마치 아이들이 블록을 쌓아가며 어떤 대상을 조립해 가듯이, 프로그램 작성에 기본적으로 필요한 부분들을 함수로 만들어 모듈(module)화하는 것으로 시작하고, 이렇게 작성한 모듈(함수)들은 이어지는 응용 예제에서 재사용이 가능하도록 구성하였다는 것입니다. 이 책에서 제시하는 기본 모듈들은 모두 4가지로 게임 기본 모듈, 기초 수학 모듈, 게임 응용 모듈, 게임 확장 모듈로 구성하였습니다. 응용 프로그램을 구현하는데 있어서 수학이 절대적으로 필요한 것은 아니지만, 삼각함수와 더불어 유용하게 사용할 수 있는 내용들이 있기에 이산 수학(Discrete athematics)의 기본적인 내용을 기초 수학 모듈에 기술하였습니다. 책을 쓰면서 제일 고민하였던 것은 혹시나 이 책이 과제나 프로젝트에 대한 소스(source)를 제공하는 해답지로 오인되는 것이 아닌가 하는 점이었습니다. 사실 프로그래밍 문법에 대해 어느 정도 이해한다고 하더라도 응용 능력을 기대하기가 쉽지 않기 때문에, 문제에 대한 기본적인 프로그래밍 아이디어와 그 아이디어를 이용하여 프로그램을 작성해 나갈 수 있다는 것을 어느 정도 보여 주어야만 문제해결 능력이 향상될 수 있다고 생각합니다. 이 책에서 다루는 응용 예제들의 말미에는 학생들 스스로가 나름대로의 아이디어를 추가하여 새로운 프로그램으로 완성해 갈 수 있도록 [응용문제]와 [개선과 확장]이라는 부분을 추가하였습니다. 이 책이 나오기까지 많은 도움을 주신 생능출판사 김승기 사장님과 편집부 직원분들께 감사드리며, 항상 사랑과 믿음으로 대해주는 아내 현주와 존경하는 부모님께 머리 숙여 감사를 드립니다. 끝으로 저자 본인은 전문 프로그래머가 아니기에 이 책에서 다루는 예제에 대한 프로그래밍이 다소 미흡하지만, 이 책이 프로그램과 프로그래밍에 목말라하는 학생들에게 무한한 상상력의 나래를 펼칠 수 있는 도약의 작은 발판이 되기를 희망합니다. 이 책은 문법을 설명한 프로그래밍 입문서가 아니며, 어느 정도 C 언어 문법을 이해하고 있는, 프로그래밍에 관심과 열정을 가지고 있는 모든 학생들을 대상으로 합니다. 그러나 프로그래밍의 초보자라 하더라도 기본적인 프로그램 작성방법과 컴파일과정을 이해하고 있다면 [부록 5]의 문법 요약을 참고로 실습해가면서 프로그래밍 응용능력을 향상시킬 수 있습니다. 이 책에서 다루고 있는 예제들은 문법의 이해가 아니라, 게임을 비롯하여 실생활에서 접할 수 훀는 문제에 대한 해결 능력을 향상시키는데 초점을 두고 있으므로 정보올림피아드 대회를 준비하는 학생, 과학고와 같은 특성화고교 재학생 그리고 미래의 직업으로 프로그래머를 꿈꾸는 학생들에게 생각의 전환을 줄 수 있는 내용으로 구성하였습니다. 이 책은 게임과 실생활의 응용 프로그램을 구현하기 위해서 다음과 같이 4단계로 진행할 수 있도록 총 4부 11장과 부록으로 구성되어 있습니다. 1부 코드와 라이브러리 (모듈의 예) 1장 영문코드와 한글코드 2장 라이브러리 함수와 응용 코드의 구분과 라이브러리 함수들의 응용방법에 대해서 설명 2부 기본 모듈 (모듈화) 3장 게임 기본 모듈 4장 기초 수학 모듈 커서와 화살표 키의 제어, 좌표와 직선, 사각형 그리기, 메뉴선택과 진행, 이산수학 등 게임 프로그램의 구현에 있어 가장 기본적인 내용들을 함수로 구현 모듈화 연습→[연습문제] 3부 게임 모듈 (모듈 응용) 5장 게임 응용 모듈 6장 게임 확장 모듈 2부에서 구현한 모듈을 이용한 응용방법의 예(카드게임, 애니메이션, 키보드 응용과 자료구조 응용, 도형의 이동과 회전 등) 어떻게 응용할 것인가에 대한 논의→[응용문제] 4부 생활속의 프로그래밍 (모듈 활용과 확장) 7장 응용 프로그래밍 전략 8장 게임과 스포츠 9장 취미와 여가활동 10장 학교와 직장 11장 학습과 계산 3부에서 제시한 예제들의 모듈들을 분야별로 활용·확장해가면서 응용 프로그램을 구현 구현한 프로그램의 개선과 확장에 대한 논의 →[개선과 확장] 부록 여러 가지 코드표 문법요약 ASCII 코드, 한글 완성형 코드, 스캔코드, 문법에 대한 요약 부분 |