목차 일부
PART 01 프로그램을 시작하기 전에
01장 컴퓨터와 프로그램
1.1 프로그램이 필요한 이유는? ... 24
1.2 프로그램은 무엇으로 만드는가? ... 25
1.3 프로그램은 어떻게 시작되었나? ... 27
1.4 프로그래밍은 요리를 만들어가는 과정과 같다 ... 28
1.5 컴퓨터는 프로그램을...
더보기
목차 전체
PART 01 프로그램을 시작하기 전에
01장 컴퓨터와 프로그램
1.1 프로그램이 필요한 이유는? ... 24
1.2 프로그램은 무엇으로 만드는가? ... 25
1.3 프로그램은 어떻게 시작되었나? ... 27
1.4 프로그래밍은 요리를 만들어가는 과정과 같다 ... 28
1.5 컴퓨터는 프로그램을 이해하는가? ... 30
1.6 실행 가능한 프로그램이 만들어지기까지의 과정 ... 31
1.7 프로그램을 어디에서 어떻게 작성하는가? ... 33
단원정리 ... 35
연습문제 ... 36
PART 02 프로그램의 작성과 실행
02장 프로그램 작성에 필요한 기초 지식들
2.1 프로그램은 문제 해결을 위한 계산 과정의 연속 ... 40
2.1.1 상수와 연산자 그리고 명령 ... 40
2.1.2 데이터를 보관하는 장소, 변수 ... 41
2.2 인질을 담보로 하여 돈과 교환? ... 43
2.3 C 언어 맛보기 ... 45
단원정리 ... 48
연습문제 ... 50
03장 처음으로 작성하는 C 프로그램
3.1 변수를 이용한 프로그램의 작성과 실행 ... 52
3.1.1 Visual C++의 실행 ... 53
3.1.2 새 프로그램의 작성 ... 54
3.1.3 프로그램 저장과 컴파일 ... 57
3.1.4 컴파일 과정에서 나타나는 오류와 해결 방법 ... 59
3.1.5 실행 프로그램의 생성과 실행 ... 62
3.1.6 프로그램 작업 종료 ... 64
3.1.7 프로그램 불러오기, 수정과 재실행 ... 65
단원정리 ... 72
연습문제 ... 73
PART 03 데이터와 연산
04장 데이터의 표현과 종류
4.1 숫자 데이터의 차이 ... 76
4.2 숫자 데이터 형의 구분 ... 78
4.3 문자 데이터와 사용방법 ... 81
4.4 모든 데이터 형 ... 83
단원정리 ... 84
연습문제 ... 85
05장 계산을 위해 필요한 연산자와 연산식
5.1 산술 연산자(+, -, *, /, %) ... 88
5.2 증가, 감소 연산자(++, --) ... 91
5.3 대입 연산(=, +=, *=, …) ... 92
5.4 수식을 연산식으로 표현하는 방법 ... 94
5.5 연산 순서 ... 96
5.6 그 밖의 연산자 ... 102
5.6.1 관계 연산자(〈, 〉, ==, !=, …) ... 102
5.6.2 조건 연산자(?:) ... 103
5.6.3 논리 연산자(&&, ∥, !) ... 104
5.6.4 비트 연산자(《, 》, ^, …) ... 105
5.6.5 콤마 연산자(,) ... 106
5.6.7 형 변환과 캐스트 연산자 ... 107
5.6.8 sizeof 연산자 ... 108
5.6.9 연산자 우선순위 ... 109
단원정리 ... 110
연습문제 ... 112
PART 04 기본적인 출력과 입력
06장 printf( )와 scanf( )
6.1 printf()의 사용방법 ... 116
6.2 출력할 데이터의 자릿수 맞추기 ... 119
6.3 여러 데이터를 한 줄에 출력하는 방법 ... 121
6.4 scanf()의 사용방법 ... 122
6.5 여러 데이터를 한 줄로 입력하는 방법 ... 125
6.6 여러 가지 확장 문자들 ... 128
6.7 형식 지정자의 종류 ... 129
6.8 출력할 데이터의 자릿수 맞추기 ... 130
6.9 입력할 데이터의 자릿수 맞추기 ... 132
6.10 여러 데이터를 한 줄로 입력하는 방법 ... 133
단원정리 ... 135
연습문제 ... 136
PART 05 제어문
07장 조건에 대한 판단과 선택
7.1 조건에 대해 참인 경우만 처리, if 문 ... 141
7.2 조건에 대해 참 또는 거짓을 구분하여 선택, if else 문 ... 143
7.3 2개 이상의 조건에 대해 참 또는 거짓을 구분하여 선택, if ∼ else if 문 ... 146
7.4 특정한 사례를 선택, switch case 문 ... 148
7.5 한번에 여러 조건을 판단 ... 151
7.6 범위(구간)로 표시되는 조건의 판단 ... 153
7.7 switch case 문의 응용 ... 154
단원정리 ... 156
연습문제 ... 157
08장 반복문
8.1 횟수가 정해진 반복, for 문 ... 161
8.2 횟수가 정해지지 않은 반복, while 문 ... 167
8.2.1 먼저 조건식을 판단하여 반복여부를 결정, while 문 ... 168
8.2.2 먼저 반복한 후에 조건식을 판단하여 반복, do while 문 ... 169
8.3 for 문의 응용 ... 171
8.3.1 1부터 n까지의 정수 합을 계산 ... 171
8.3.2 n!의 계산 ... 174
8.3.3 중첩된 반복문과 구구단 ... 175
8.3.4 for 문의 축소와 확장 ... 182
단원정리 ... 184
연습문제 ... 185
09장 처리의 흐름을 조절
9.1 처리 순서의 흐름을 중단하는 break 문 ... 189
9.2 처리 순서의 흐름을 계속 이어주는 continue 문 ... 190
9.3 처리 순서를 이동시키는 goto 문 ... 191
단원정리 ... 193
연습문제 ... 194
PART 06 함수
10장 특별한 기능을 처리하도록 만들어진 프로그램 단위, 함수
10.1 사용자가 정의하는 함수(user defined function) ... 200
10.2 함수를 사용하는 프로그램의 구성과 형식 ... 201
10.3 결과 값(반환 값)이 있는 함수 ... 203
10.4 함수 main()과 여러 개의 사용자 정의 함수 ... 205
10.5 void main()과 int main(void) ... 206
10.6 인자가 3개 이상인 함수 ... 207
10.7 함수 원형과 사용자 정의 함수의 위치 ... 209
10.8 매크로 상수와 함수 ... 211
10.9 재귀 함수와 호출 ... 212
단원정리 ... 218
연습문제 ... 219
11장 변수에 대한 또 다른 속성, 기억 클래스
11.1 지역(local) 변수와 전역(global) 변수 ... 223
11.2 자동(auto) 변수 ... 226
11.3 정적(static) 변수 ... 226
11.4 외부(extern) 변수 ... 230
11.5 레지스터(register) 변수 ... 231
단원정리 ... 233
연습문제 ... 234
12장 라이브러리 함수와 응용
12.1 출력 함수 printf() ... 237
12.2 입력 함수 scanf() ... 239
12.3 문자와 문자열 관련 함수 ... 244
12.3.1 문자 분류 함수 (헤더 파일 〈ctype.h〉) ... 244
12.3.2 변환 함수(헤더파일 〈stdlib.h〉) ... 245
12.3.3 문자열 처리와 검색 함수(헤더 파일 〈string.h〉) ... 249
12.4 수학 계산 함수 (헤더 파일 〈math.h〉) ... 256
12.5 화면과 커서의 제어 ... 264
12.5.1 화면 지우기 ... 265
12.5.2 커서의 위치 제어 ... 267
12.6 날짜와 시간 관련 함수(헤더 파일 〈time.h〉) ... 270
12.6.1 현재의 날짜와 시간을 출력 ... 271
12.6.2 시간 차이의 계산 ... 273
12.6.3 시간을 지연시키는 함수 ... 275
12.7 임의의 숫자 난수(헤더 파일 〈stdlib.h〉) ... 278
12.7.1 난수 생성 ... 278
12.7.2 매 실행마다 다른 난수를 생성하는 방법(난수 초기화) ... 280
12.7.3 중복되지 않는 난수의 생성 ... 282
단원정리 ... 284
연습문제 ... 285
PART 07 배열(array)과 포인터(pointer)
13장 번호가 붙은 변수, 배열
13.1 여러 개의 변수가 필요한 경우 ... 291
13.2 배열과 변수의 차이 ... 291
13.3 배열의 출력과 입력 ... 293
13.4 1차원 배열의 선언과 사용 ... 294
13.5 배열과 문자열 ... 296
13.5.1 문자열을 배열에 저장하는 방법 ... 296
13.5.2 문자열의 입력과 출력 ... 297
13.6 2차원 배열의 초기화와 출력 ... 299
13.7 함수와 배열 ... 301
13.7.1 함수의 인자로 배열을 사용하는 방법 ... 302
13.7.2 함수의 결과로 배열을 반환하는 방법 ... 304
단원정리 ... 306
연습문제 ... 307
14장 포인터
14.1 데이터와 메모리 주소 ... 311
14.2 메모리 주소를 저장하는 포인터 변수 ... 313
14.3 포인터와 배열 ... 318
14.4 포인터와 문자열 ... 319
14.5 포인터에 대한 연산 ... 322
14.6 포인터를 인자로 사용하는 함수 호출 ... 326
14.7 포인터 배열 ... 327
14.8 포인터와 함수 ... 330
14.8.1 함수 포인터 ... 330
14.8.2 함수의 결과 값으로 포인터를 반환하는 함수 ... 331
14.9 키워드 const ... 333
14.10 main()함수의 인자로 사용하는 포인터 ... 334
단원정리 ... 339
연습문제 ... 340
PART 08 사용자가 정의하는 데이터 형
15장 여러 데이터를 하나로 묶는 구조체
15.1 구조체가 필요한 경우 ... 345
15.2 구조체 만들기 ... 346
15.3 구조체와 데이터 ... 348
15.3.1 구조체 변수의 초기화와 멤버별 데이터 출력 ... 348
15.3.2 구조체 변수에 데이터 저장 ... 350
15.3.3 입력 데이터를 구조체 변수에 저장 ... 351
15.4 구조체 변수, 구조체 멤버 간의 데이터 저장 ... 352
15.5 구조체 배열 ... 354
15.6 구조체 포인터 ... 355
15.7 구조체 멤버가 배열 또는 포인터인 경우의 데이터 처리 ... 356
15.8 구조체 형의 크기와 멤버의 위치 ... 358
15.9 구조체와 함수 ... 360
15.9.1 함수의 인자로 구조체 변수를 사용 ... 360
15.9.2 함수의 인자로 구조체 포인터를 사용 ... 361
15.9.3 함수의 인자로 구조체 배열을 사용 ... 362
15.9.4 함수의 결과값으로 구조체를 반환하는 함수 ... 363
15.10 구조체를 헤더파일로 저장하여 사용하는 방법 ... 364
15.11 구조체 속의 구조체(중첩된 구조체) ... 366
15.12 자기 참조 구조체 ... 370
단원정리 ... 375
연습문제 ... 376
16장 그 외의 사용자 정의 데이터 형
16.1 구조체와 비슷하지만 차이가 있는 공용체, union ... 381
16.2 상수들의 집합을 정수로 대신하는 열거형, enum ... 383
16.3 비트 필드(bit field) ... 384
단원정리 ... 386
연습문제 ... 387
PART 09 파일을 이용한 데이터의 입력과 출력
17장 파일 출력과 파일 입력
17.1 파일처리를 위한 기초 지식 ... 391
17.1.1 파일 열기와 파일 닫기 ... 391
17.1.2 파일 저장 방식 ... 393
17.1.3 파일 데이터와 파일 포인터 ... 394
17.2 텍스트 방식의 파일 다루기 ... 395
17.2.1 텍스트 방식의 파일 입출력 함수 ... 399
17.2.2 문자 단위의 파일처리 ... 400
17.2.3 문자열 단위의 파일처리 ... 406
17.2.4 입출력 형식을 지정하는 파일 처리 ... 410
17.2.5 키보드(콘솔)입력과 파일 출력 ... 414
17.3 이진 방식의 파일 다루기 ... 417
17.3.1 이진 방식의 파일 출력 ... 418
17.3.2 이진 방식의 파일 입력 ... 422
17.4 원하는 블록의 위치에서 파일 읽기와 쓰기가 가능한 랜덤 처리 방식 ... 424
17.4.1 파일 포인터의 위치를 이동하는 파일 입력 ... 427
단원정리 ... 430
연습문제 ... 432
PART 10 고급 프로그래밍 기술
18장 응용 프로그램 개발을 위해 필요한 방법과 문법들
18.1 프로젝트와 분할 컴파일 ... 437
18.1.1 프로젝트 만들기 ... 437
18.1.2 분할 컴파일 ... 443
18.1.3 프로젝트 불러오기 ... 446
18.1.4 Turbo C++에서의 분할 컴파일 ... 448
18.2 프로그램 실행 중에 기억공간을 확보하는 동적 할당 ... 454
18.2.1 동적 기억장소 할당과 해제 ... 454
18.2.2 구조체와 동적 할당 ... 456
18.3 전처리기 ... 457
18.3.1 include와 헤더 파일 ... 458
18.3.2 define과 매크로 ... 461
18.3.3 미리 정의된 매크로 ... 465
18.3.4 조건 컴파일 ... 466
18.4 컴파일과 실행에서 발생되는 오류와 해결 ... 469
18.5 배포 프로그램 ... 472
단원정리 ... 478
연습문제 ... 479
PART 11 응용 프로그래밍
19장 응용 프로그래밍 part Ⅰ
19.1 진법 변환 ... 484
19.1.1 10진수를 2진수로 변환 ... 484
19.1.2 10진수를 8진수로 변환 ... 493
19.2 반복문과 수열 ... 495
19.2.1 등차수열 ... 495
19.2.2 등비수열 ... 497
19.2.3 계차수열 ... 499
19.3 비트 연산과 응용 ... 500
19.3.1 비트 와이즈 연산 ... 501
19.3.2 비트 시프트 연산 ... 504
19.4 난수를 이용한 게임 ... 505
19.4.1 컴퓨터가 생성한 정수 난수 맞추기 ... 506
19.4.2 컴퓨터와 하는 가위바위보 게임 ... 508
19.4.3 구구단 문제풀기 ... 510
19.5 날짜수의 응용 ... 516
19.6 기초 통계 계산 ... 519
19.6.1 대표값 ... 519
19.6.2 산포도 ... 523
19.6.3 통계 그래프 ... 526
19.7 메뉴 선택으로 진행하는 프로그램 ... 532
19.7.1 메뉴로 진행하는 구구단 프로그램 ... 534
19.7.2 서브(sub)메뉴가 있는 프로그램 ... 538
19.8 텍스트 파일처리 응용 프로그램 ... 540
19.8.1 한 줄씩 데이터를 구분하여 파일 출력 ... 540
19.8.2 파일 입력 데이터에 대한 기초 통계 계산 ... 541
19.9 이진 파일처리 응용 프로그램 ... 542
19.9.1 block 단위 데이터의 파일 출력 ... 542
19.9.2 block 단위 데이터의 파일 입력 ... 546
19.9.3 전체 block을 한 번에 파일 입력 ... 549
19.9.4 파일 입력 데이터에 대한 검색 ... 551
19.9.5 block 데이터의 삭제 ... 555
19.9.6 block 데이터의 수정 ... 558
20장 응용 프로그래밍 part Ⅱ
20.1 자료 구조 ... 562
20.1.1 단순 연결 리스트 ... 562
20.1.2 이중 연결 리스트와 트리 ... 571
20.1.3 트리의 운행 ... 573
20.2 데이터 검색(Search) ... 578
20.2.1 이진(binary) 검색 ... 579
20.2.2 피보나치(Fibonacci)검색 ... 582
20.3 데이터 정렬(sort) ... 585
20.3.1 삽입(insertion) 정렬 ... 586
20.3.2 bubble 정렬 ... 587
20.3.3 선택 정렬 ... 591
PART 12 과제와 프로젝트 프로그램(CD)
21장 과제 프로그램
[과제 01] 최대 공약수와 최소 공배수 ... 594
[과제 02] 소수 이하 임의의 자릿수에서 반올림 ... 596
[과제 03] 비만도 측정과 판정 ... 598
[과제 04] 고속도로 통행요금 계산 ... 600
[과제 05] 당구장 이용 요금 계산 ... 601
[과제 06] 사원 봉급 계산 ... 602
[과제 07] 승용차 세금 계산 ... 604
[과제 08] 전력 요금 청구서 ... 605
[과제 09] 수도 요금 청구서 ... 607
[과제 10] 행렬의 합, 차 그리고 곱의 계산 ... 609
[과제 11] 파스칼의 삼각형 ... 610
[과제 12] 사칙연산 계산기 ... 612
[과제 13] 숫자 야구게임 ... 613
[과제 14] 사용자가 생각한 숫자를 컴퓨터가 맞추는 게임 ... 615
[과제 15] 한자리 디지털 숫자 출력 ... 617
[과제 16] 주유기 메타 출력 ... 618
[과제 17] 정수형 숫자의 카운트 ... 619
[과제 18] 실수형 숫자의 카운트 ... 621
[과제 19] 문장에 사용된 알파벳, 숫자, 기타문자의 카운트 ... 622
[과제 20] 서기를 간지로 변환 ... 624
[과제 21] 특정일로부터 며칠 후 계산 ... 625
[과제 22] 특정일의 요일 계산 ... 626
[과제 23] 세계 주요 도시의 현재 시간 ... 627
[과제 24] stopwatch ... 629
[과제 25] 동전 던지기 모의실험 ... 632
[과제 26] 주사위 던지기 모의실험과 막대그래프 출력 ... 633
[과제 27] 주택복권 당첨 번호 발생기 ... 634
[과제 28] sine과 cosine 그래프를 동시에 출력 ... 636
[과제 29] 발 크기에 대한 통계 조사 ... 637
[과제 30] 파일에 포함된 알파벳 문자 카운트 ... 638
[과제 31] 파일크기의 계산과 파일내용을 거꾸로 출력 ... 640
[과제 32] 이용자가 1명인 엘리베이터 운행 제어 ... 642
22장 프로젝트 프로그램
[프로젝트 01] 주민등록번호를 이용한 생년월일, 성별, 띠 그리고 만 나이 계산 ... 644
[프로젝트 02] 도량형 환산 ... 646
[프로젝트 03] 자동판매기 제어 ... 648
[프로젝트 04] 임의의 정수형 숫자에 대한 디지털 숫자 출력 ... 650
[프로젝트 05] 임의의 아라비아 숫자를 로마 숫자로 변환 ... 652
[프로젝트 06] 2, 8, 10, 16진법 변환 ... 654
[프로젝트 07] 스택을 이용한 후위 표기법 ... 656
[프로젝트 08] 스택(stack)을 이용한 계산기 ... 660
[프로젝트 09] 특정한 월의 바이오리듬(Biorhythm) ... 662
[프로젝트 10] 로또 추첨과 같은 방식의 로또 번호 생성 ... 665
[프로젝트 11] 로또당첨에 대한 모의실험 ... 668
[프로젝트 12] 구구단 학습 프로그램 ... 669
[프로젝트 13] 정규난수 생성 ... 672
[프로젝트 14] 대기 행렬 모형 ... 674
[프로젝트 15] 이용자가 2명인 엘리베이터의 운행제어 ... 676
[프로젝트 16] 하노이 탑 ... 649
[프로젝트 17] 랜덤 접근에 의한 파일 데이터의 추가와 변경 ... 681
[프로젝트 18] 텍스트 파일에 대한 정렬 ... 683
[프로젝트 19] 이진 파일에 대한 정렬 ... 684
[프로젝트 20] 학생 성적 파일 관리 ... 686
[프로젝트 21] 고객 파일 관리 ... 689
[프로젝트 22] 보간(interploation) 검색 ... 691
[프로젝트 23] heap 정렬 ... 695
[프로젝트 24] shell 정렬 후 파일 출력 ... 698
[프로젝트 25] quick 정렬 후 파일 출력 ... 701
부록
부록 1 ASCII 코드표 ... 706(
부록 2 키워드(keyword)와 예약어(reserved word) ... 709(
부록 3 [여러 종류의 데이터 표] ... 709(
찾아보기 ... 712(
더보기 닫기