목차
머리말
CHAPTER 01 컴퓨터와 논리의 개요 ... 21
   1.1 컴퓨터의 구성 요소와 연산 과정 ... 22
   1.2 프로그래밍 과정의 단계 ... 26
      1.2.1 문제의 이해 ... 26
      1.2.2 논리의 설계 ... 27
      1.2.3 프로그램의 코딩 ... 27
      1.2.4 프로그램의 번역 ... 28
      1.2.5 프로그램의 테스트 ... 29
      1.2.6 프로그램의 활용 ... 30
   1.3 데이터의 계층구조 ... 31
   1.4 순서도 기호와 의사코드의 사용 ... 33
   1.5 변수의 사용 ... 37
   1.6 프로그램의 종료 ... 39
   1.7 연결자의 사용 ... 42
   1.8 변수에 값을 대입 ... 43
   1.9 데이터의 타입 ... 45
   1.10 프로그래밍 기법들의 발전 ... 47
   요약 ... 48
   주요 용어 ... 48
   복습 문제 ... 51
   연습 문제 ... 53
CHAPTER 02 프로그램의 구조화 ... 57
   2.1 컴퓨터의 구성 요소와 연산과정 ... 58
   2.2 프로그램의 기본 구조 ... 60
   2.3 Priming Read의 사용 ... 66
   2.4 구조화의 필요성 ... 72
   2.5 구조화의 확인 ... 75
   2.6 case와 do until 구조 ... 81
   요약 ... 86
   주요 용어 ... 86
   복습 문제 ... 87
   연습 문제 ... 89
CHAPTER 03 프로그램의 모듈화와 문서 ... 95
   3.1 모듈화의 장점 ... 96
      3.1.1 프로그램의 추상화 ... 96
      3.1.2 다수 프로그래머의 공동 작업 ... 97
      3.1.3 모듈의 재사용 ... 97
      3.1.4 프로그램 구조의 인식 ... 98
   3.2 프로그램의 모듈화 ... 100
   3.3 모듈의 호출 ... 103
   3.4 변수의 선언 ... 104
   3.5 계층도 ... 106
   3.6 프로그램의 문서 ... 108
   3.7 출력 문서 ... 109
   3.8 입력 문서 ... 116
   3.9 사용자 문서 ... 121
   요약 ... 123
   주요 용어 ... 123
   복습 문제 ... 125
   연습 문제 ... 128
CHAPTER 04 프로그램의 작성 및 설계 ... 133
   4.1 프로그램의 메인 논리 ... 134
   4.2 초기화 작업 ... 138
      4.2.1 변수 선언 ... 138
      4.2.2 파일 열기 ... 143
      4.2.3 제목 출력 ... 144
      4.2.4 첫 번째 입력 ... 144
   4.3 메인 루프 ... 149
   4.4 마무리 작업 ... 152
   4.5 프로그램 설계의 중요성 ... 154
   4.6 모듈의 포함 ... 154
   4.7 변수와 모듈의 이름 ... 157
   4.8 명확한 명령문의 작성 ... 158
      4.8.1 적절한 줄 바꾸기 ... 158
      4.8.2 임시 변수의 사용 ... 159
      4.8.3 상수의 사용 ... 160
   4.9 좋은 프로그래밍 습관 ... 160
   요약 ... 161
   주요 용어 ... 161
   복습 문제 ... 162
   연습 문제 ... 165
CHAPTER 05 판단 ... 169
   5.1 불리언 식 ... 170
   5.2 비교 연산자 ... 172
   5.3 AND 논리 ... 176
      5.3.1 효율적인 AND 판단 ... 180
      5.3.2 1개의 AND로 판단들을 결합 ... 182
      5.3.3 AND 사용의 흔한 실수 ... 183
   5.4 OR 논리 ... 185
      5.4.1 OR 사용의 흔한 실수 ... 186
      5.4.2 효율적인 OR 판단 ... 189
      5.4.3 1개의 OR로 판단들을 결합 ... 191
   5.5 범위 검사 ... 192
      5.5.1 범위 검사의 흔한 실수 ... 195
   5.6 AND와 OR의 우선순위 ... 196
   5.7 case 구조 ... 199
   5.8 의사결정 테이블 ... 200
   요약 ... 208
   주요 용어 ... 208
   복습 문제 ... 209
   연습 문제 ... 213
CHAPTER 06 루프 ... 219
   6.1 루프의 장점 ... 220
   6.2 while 루프 ... 220
   6.3 루프의 제어 ... 223
   6.4 센티넬 변수의 사용 ... 227
   6.5 루프 제어 변수의 감소 ... 229
   6.6 루프 사용의 흔한 실수 ... 230
      6.6.1 루프 제어 변수의 초기화 ... 230
      6.6.2 루프 제어 변수의 변경 ... 230
      6.6.3 루프 제어 변수의 비교 ... 231
      6.6.4 루프에 포함하는 명령문 ... 231
      6.6.5 초기화 필요가 없는 변수 ... 232
   6.7 for 루프 ... 233
   6.8 do until 루프 ... 235
   6.9 루프의 공통된 특징 ... 239
   6.10 중첩 루프 ... 240
   6.11 루프를 이용한 총합 ... 245
   요약 ... 248
   주요 용어 ... 248
   복습 문제 ... 249
   연습 문제 ... 253
CHAPTER 07 제어 탈출 ... 257
   7.1 제어 탈출의 논리 ... 258
   7.2 단일 단계 제어 탈출 ... 259
   7.3 제목에서 제어 데이터의 사용 ... 264
   7.4 꼬리말에서 제어 데이터의 사용 ... 266
   7.5 합계에서 제어 탈출 ... 268
   7.6 다단계 제어 탈출 ... 273
   7.7 페이지 탈출 ... 279
   요약 ... 285
   주요 용어 ... 285
   복습 문제 ... 286
   연습 문제 ... 289
CHAPTER 08 배열 ... 293
   8.1 배열의 사용 ... 294
   8.2 컴퓨터 메모리에서의 위치 ... 294
   8.3 중첩된 판단을 대체하는 배열 ... 295
   8.4 배열의 선언과 초기화 ... 305
   8.5 수행할 때와 컴파일할 때의 배열 ... 307
   8.6 배열의 값을 적재 ... 310
   8.7 배열의 탐색 ... 312
   8.8 병렬 배열의 사용 ... 314
   8.9 배열의 경계 ... 318
   8.10 조기 탈출 ... 320
   8.11 범위의 비교 ... 322
   요약 ... 326
   주요 용어 ... 326
   복습 문제 ... 327
   연습 문제 ... 330
CHAPTER 09 배열의 응용 ... 337
   9.1 데이터 정렬의 필요성 ... 338
   9.2 두 값의 교환 ... 339
   9.3 버블 정렬 ... 340
      9.3.1 배열의 크기 변수 사용 ... 347
      9.3.2 가변 크기의 리스트 ... 350
      9.3.3 불필요한 비교의 감소 ... 353
      9.3.4 불필요한 패스의 제거 ... 355
   9.4 삽입 정렬 ... 357
   9.5 선택 정렬 ... 359
   9.6 인덱스 파일 ... 361
   9.7 연결 리스트 ... 362
   9.8 다차원 배열 ... 364
   요약 ... 370
   주요 용어 ... 370
   복습 문제 ... 371
   연습 문제 ... 374
CHAPTER 10 메뉴와 입력의 확인 ... 377
   10.1 대화식 프로그램의 필요성 ... 378
   10.2 1단계 메뉴의 사용 ... 379
   10.3 블랙박스 같은 모듈 ... 383
   10.4 메뉴 프로그램의 개선 ... 388
   10.5 CASE 구조의 사용 ... 393
   10.6 다단계 메뉴의 사용 ... 396
   10.7 입력의 확인 ... 403
   10.8 데이터 확인의 종류 ... 405
      10.8.1 데이터 타입의 확인 ... 405
      10.8.2 데이터 범위의 확인 ... 406
      10.8.3 데이터의 합리성과 일관성 확인 ... 406
      10.8.4 데이터 존재의 확인 ... 407
   요약 ... 408
   주요 용어 ... 408
   복습 문제 ... 409
   연습 문제 ... 412
CHAPTER 11 파일의 처리 ... 417
   11.1 파일 병합의 필요성 ... 418
   11.2 병합 프로그램의 메인 논리와 초기화 ... 419
   11.3 병합 프로그램의 메인 루프와 마무리 ... 427
   11.4 초기화에서 EOF의 검사 ... 427
   11.5 마스터 파일과 트랜잭션 파일 ... 429
   11.6 트랜잭션의 반영 ... 430
   11.7 다수의 트랜잭션 허용 ... 436
   11.8 순차 파일의 갱신 ... 437
   요약 ... 448
   주요 용어 ... 448
   복습 문제 ... 449
   연습문제 ... 452
CHAPTER 12 고급 모듈화 기술 ... 457
   12.1 지역변수와 전역변수 ... 458
   12.2 모듈로 값을 전달 ... 464
   12.3 모듈로 여러 값을 전달 ... 470
   12.4 모듈로부터 값의 반환 ... 493
   12.5 내장 함수 ... 475
   12.6 IPO 차트 ... 477
   12.7 캡슐화의 장점 ... 478
   12.8 결합력의 감소와 응집력의 증가 ... 480
      12.8.1 결합력의 감소 ... 480
      12.8.2 응집력의 증가 ... 483
   요약 ... 486
   주요 용어 ... 486
   복습 문제 ... 488
   연습 문제 ... 491
CHAPTER 13 객체지향 프로그래밍 ... 493
   13.1 객체지향 프로그래밍의 개요 ... 494
   13.2 클래스 ... 496
   13.3 객체의 사용 ... 499
   13.4 상속 ... 500
   13.5 다형성 ... 505
   13.6 생성자와 소멸자 ... 506
   13.7 GUI 객체의 클래스 ... 510
   13.8 객체지향 프로그래밍의 장점 ... 511
   요약 ... 513
   주요 용어 ... 513
   복습 문제 ... 514
   연습 문제 ... 517
부록 A 어려운 구조화 문제의 해결 ... 519
부록 B 수 체계와 컴퓨터 코드의 이해 ... 529
부록 C 큰 의사결정 테이블의 사용 ... 535
부록 D 프로그램 소스 ... 543
찾아보기 ... 585
닫기