책 소개
프로그래밍의 기초 골격을 탄탄하게 해주는 다시 배우는 C 언어!
기존의 ‘프로그래밍’ 책들은 프로그래밍에 대한 기초 내용만, ‘C 언어’ 책들은 C 언어 문법 위주의 내용만 다루고 있어서 그 둘을 연관 짓기 어려워하는 독자가 많았습니다. 이 책은 그 둘을 함께 다루어 C 언어를 배우면서 프로그래밍의 기본기를 탄탄히 다지도록 집필되었습니다.
이 책은 크게 세 부분으로 구성되어 있는데, 1부는 프로그램이 필요한 이유와 프로그램이 어떤 과정으로 만들어지는지를 다룹니다. 2부에서는 C 언어에 관해 설명합니다. 다른 C 언어 책들과 비슷하게 보일 수도 있지만, 1부에서 설명한 내용과 연관 지어 C 언어를 사용하여 컴퓨터에서 동작하는 프로그램을 만드는 내용을 다룹니다. 마지막 3부에서는 1부와 2부에서 설명한 방법과 도구를 사용하여 실제 주어진 문제를 풀어나가는 과정을 보여줍니다.
이 책의 대상 독자
● 프로그래밍에 대한 개념을 재정립하고 싶은 분
● 프로그래밍을 배우다가 한번쯤 포기했던 분
● C 언어를 다시 배우려는 분
● C 언어의 기본 문법은 알지만 프로그래밍이 어려운 분
작가 소개
저자 : 허경용
연세대학교 전자공학과 학사와 동(同)대학원 석사를 취득하였다. 이후 플로리다대학교(University of Florida)에서 컴퓨터공학 박사를 취득하였으며, 현재 동의대학교 전자공학과 교수로 재직 중이다. 저서로는 『ATmega128로 배우는 마이크로컨트롤러 프로그래밍』(2016), 『따라 하면서 배우는 아두이노』(2016), 『사물인터넷을 품은 아두이노』(2016), 『아트멜 스튜디오와 아두이노로 배우는 ATmega328 프로그래밍』(2015), 『핵심 예제로 배우는 아두이노 프로그래밍』(2015), 『아두이노 상상을 스케치하다』(2014) 등이 있다.
목 차
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
- 단순 변심인 경우 : 상품 수령 후 7일 이내 신청
- 상품 불량/오배송인 경우 : 상품 수령 후 3개월 이내, 혹은 그 사실을 알게 된 이후 30일 이내 반품 신청 가능
| 반품사유 | 반품 배송비 부담자 |
|---|---|
| 단순변심 | 고객 부담이며, 최초 배송비를 포함해 왕복 배송비가 발생합니다. 또한, 도서/산간지역이거나 설치 상품을 반품하는 경우에는 배송비가 추가될 수 있습니다. |
| 고객 부담이 아닙니다. |
| 진행 상태 | 결제완료 | 상품준비중 | 배송지시/배송중/배송완료 |
|---|---|---|---|
| 어떤 상태 | 주문 내역 확인 전 | 상품 발송 준비 중 | 상품이 택배사로 이미 발송 됨 |
| 환불 | 즉시환불 | 구매취소 의사전달 → 발송중지 → 환불 | 반품회수 → 반품상품 확인 → 환불 |
- 결제완료 또는 배송상품은 1:1 문의에 취소신청해 주셔야 합니다.
- 특정 상품의 경우 취소 수수료가 부과될 수 있습니다.
| 결제수단 | 환불시점 | 환불방법 |
|---|---|---|
| 신용카드 | 취소완료 후, 3~5일 내 카드사 승인취소(영업일 기준) | 신용카드 승인취소 |
| 계좌이체 |
실시간 계좌이체 또는 무통장입금 취소완료 후, 입력하신 환불계좌로 1~2일 내 환불금액 입금(영업일 기준) |
계좌입금 |
| 휴대폰 결제 |
당일 구매내역 취소시 취소 완료 후, 6시간 이내 승인취소 전월 구매내역 취소시 취소 완료 후, 1~2일 내 환불계좌로 입금(영업일 기준) |
당일취소 : 휴대폰 결제 승인취소 익월취소 : 계좌입금 |
| 포인트 | 취소 완료 후, 당일 포인트 적립 | 환불 포인트 적립 |
- 단순변심으로 인한 반품 시, 배송 완료 후 7일이 지나면 취소/반품 신청이 접수되지 않습니다.
- 주문/제작 상품의 경우, 상품의 제작이 이미 진행된 경우에는 취소가 불가합니다.
- 구성품을 분실하였거나 취급 부주의로 인한 파손/고장/오염된 경우에는 취소/반품이 제한됩니다.
- 제조사의 사정 (신모델 출시 등) 및 부품 가격변동 등에 의해 가격이 변동될 수 있으며, 이로 인한 반품 및 가격보상은 불가합니다.
- 뷰티 상품 이용 시 트러블(알러지, 붉은 반점, 가려움, 따가움)이 발생하는 경우 진료 확인서 및 소견서 등을 증빙하면 환불이 가능하지만 이 경우, 제반 비용은 고객님께서 부담하셔야 합니다.
- 각 상품별로 아래와 같은 사유로 취소/반품이 제한 될 수 있습니다.
| 상품군 | 취소/반품 불가사유 |
|---|---|
| 의류/잡화/수입명품 | 상품의 택(TAG) 제거/라벨 및 상품 훼손으로 상품의 가치가 현저히 감소된 경우 |
| 계절상품/식품/화장품 | 고객님의 사용, 시간경과, 일부 소비에 의하여 상품의 가치가 현저히 감소한 경우 |
| 가전/설치상품 | 전자제품 특성 상, 정품 스티커가 제거되었거나 설치 또는 사용 이후에 단순변심인 경우, 액정화면이 부착된 상품의 전원을 켠 경우 (상품불량으로 인한 교환/반품은 AS센터의 불량 판정을 받아야 합니다.) |
| 자동차용품 | 상품을 개봉하여 장착한 이후 단순변심의 경우 |
| CD/DVD/GAME/BOOK등 | 복제가 가능한 상품의 포장 등을 훼손한 경우 |
| 상품의 시리얼 넘버 유출로 내장된 소프트웨어의 가치가 감소한 경우 | |
| 노트북, 테스크탑 PC 등 | 홀로그램 등을 분리, 분실, 훼손하여 상품의 가치가 현저히 감소하여 재판매가 불가할 경우 |










