PART I 프로그램, 프로그래밍 1
CHAPTER 1 프로그램이란 무엇일까? 5
1.1 시스템이란 무엇일까? 5
1.2 블랙박스 시스템과 화이트박스 시스템 7
1.3 하드웨어 및 소프트웨어로 만들어지는 프로그램 9
1.4 아날로그와 디지털의 차이는 무엇일까? 11
1.5 아날로그 신호를 디지털 신호로 변환하기 14
1.6 프로그램으로서 역할 22
CHAPTER 2 프로그램의 핵심: 알고리즘 26
2.1 프로그램 = 알고리즘 + 프로그래밍 언어 26
2.2 흐름도: 알고리즘을 표현하기 위한 도구 37
2.3 알고리즘의 종류 43
2.4 모로 가도 서울만 가면 된다? 48
2.5 좋은 알고리즘, 나쁜 알고리즘 50
CHAPTER 3 프로그램의 구현 도구: 프로그래밍 언어 55
3.1 프로그래밍 언어는 외계어가 아니다 55
3.2 기계어: 컴퓨터가 이해하는 유일한 언어 56
3.3 컴파일러와 인터프리터 64
3.4 컴퓨터를 위한 수학 69
3.5 진법 71
3.6 비트, 바이트, 워드 74
CHAPTER 4 명령어와 데이터의 표현 78
4.1 문자는 어떻게 표현될까? 79
4.2 숫자는 어떻게 표현될까? 85
4.3 명령어는 어떻게 표현되고 처리될까? 94
CHAPTER 5 알고리즘은 어떻게 만들어질까? 99
5.1 알고리즘은 어떻게 작성해야 할까? 99
5.2 C, 함수 중심의 언어 103
5.3 C ? C++ ? 108
5.4 프로그래밍은 어떻게 공부해야 할까? 111
PART II C 언어 113
CHAPTER 6 함수의 구조 117
6.1 함수의 구조 117
6.2 주석 126
6.3 정리 127
CHAPTER 7 데이터 유형 129
7.1 데이터 유형: 메모리 크기 결정과 값 해석의 기준 129
7.2 변수 값 읽기와 쓰기 133
7.3 문자 데이터 137
7.4 printf: 데이터 출력을 위한 함수 143
7.5 변수의 유효 범위 147
7.6 정리 150
CHAPTER 8 연산자 152
8.1 연산자: 데이터를 가공하는 방법 152
8.2 연산자와 함수 153
8.3 연산자 우선순위와 결합 순서 155
8.4 피연산자 개수 158
8.5 산술 연산자 163
8.6 비교 연산자 165
8.7 논리 연산자 166
8.8 비트 연산자 170
8.9 형 변환 172
8.10 정리 176
CHAPTER 9 조건문 178
9.1 알고리즘의 종류 178
9.2 if-else문 179
9.3 조건 연산자: 작은 if-else문 184
9.4 switch-case문 186
9.5 정리 191
CHAPTER 10 반복문 193
10.1 알고리즘의 종류 193
10.2 while문 194
10.3 do-while문 197
10.4 for문 198
10.5 continue와 break 201
10.6 반복문이 꼭 필요한가? 205
10.7 중첩된 루프 209
10.8 정리 212
CHAPTER 11 배열 214
11.1 배열이 필요한가? 214
11.2 배열 선언 215
11.3 배열 초기화 및 값의 대입 219
11.4 문자열 222
11.5 2차원 배열 226
11.6 정리 229
CHAPTER 12 포인터 230
12.1 포인터란 무엇인가? 230
12.2 포인터 변수 232
12.3 배열과 포인터 236
12.4 함수에서 포인터의 전달 238
12.5 2차원 포인터 244
12.6 동적 할당 249
12.7 정리 256
CHAPTER 13 함수 257
13.1 함수 257
13.2 함수의 선언, 정의, 호출 262
13.3 함수의 입력과 출력 263
13.4 정리 265
PART III 카르노맵 267
CHAPTER 14 논리식의 간략화 271
CHAPTER 15 카르노맵 입출력 277
CHAPTER 16 1, 2셀 그룹 찾기 285
CHAPTER 17 4, 8, 16셀 그룹 찾기 294
CHAPTER 18 간략화된 그룹 집합 선택 305
CHAPTER 19 카르노맵 알고리즘의 개선 315
찾아보기 320