C포자를 위한 본격 C 언어 프로그래밍
해외주문/바로드림/제휴사주문/업체배송건의 경우 1+1 증정상품이 발송되지 않습니다.
패키지
북카드
키워드 Pick
키워드 Pick 안내
관심 키워드를 주제로 다른 연관 도서를 다양하게 찾아 볼 수 있는 서비스로, 클릭 시 관심 키워드를 주제로 한 다양한 책으로 이동할 수 있습니다.
키워드는 최근 많이 찾는 순으로 정렬됩니다.

작가정보
저자 허경용은 연세대학교 전자공학과 학사와 동(同)대학원 석사를 취득하였다. 이후 플로리다대학교(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
책 속으로
C 언어가 가장 널리 사용되는 프로그래밍 언어 중 하나인 것은 사실이지만, 프로그래밍 언어는 컴퓨터가 이해할 수 있는 적은 수의 단어들을 몇 개의 규칙으로 조합하여 문장으로 나타낼 수 있을 뿐입니다. 가장 대표적인 예로는 “Hello, World!”를 출력하는 것을 들 수 있습니다. 프로그래밍 언어를 배우려는 목적은 “Hello, World!”를 출력하는 데 있지 않습니다. C 언어는 도구일 뿐입니다. C 언어를 배우는 목적은 인공위성을 움직이거나 프로 바둑 기사와의 대국에서 승리하기 위해서이지, C 언어 자체를 배우는 것이어서는 안 됩니다. 프로그램을 작성하는 것을 단순한 코딩이 아닌 그 이상의 것으로 생각하는 것에서부터 시작한다면, C 언어가 좀 더 흥미로울 수 있을 것입니다.
_3쪽
프로그램은 알고리즘과 프로그래밍 언어로 이루어져 있습니다. 무엇을 먼저 배워야 할까요? 이상적인 학습 방법은 하향식으로 배우는 것입니다. 여기서 하향식이란, 큰 문제를 여러 개의 작은 문제로 나눈 후 작은 문제들을 해결함으로써 결국 큰 문제를 해결하는 방식을 말합니다. 프로그램을 작성하는 과정에서는 문장들을 조합하여 주어진 문제를 해결할 수 있는 알고리즘 작성 방법을 먼저 배우고, 개별 문장을 프로그래밍 언어를 사용하여 나타내는 방법을 나중에 배우는 것이 하향식에 해당합니다. 하지만 프로그래밍 언어를 처음 배우는 사람은 알고리즘을 전혀 알지 못합니다. 알고리즘을 먼저 배우면 될 것이라 생각할 수 있지만, 알고리즘은 컴퓨터가 이해하는 단어와 문장으로 나타내야만 합니다.
_27쪽
알고리즘을 작성할 때 또 한 가지 주의해야 할 점은 좋은 알고리즘은 프로그래밍 언어와 무관하지 않다는 것입니다. 알고리즘은 문제를 푸는 과정을 기술한 것으로, 프로그래밍 언어와 무관하다고 여러 번 이야기했습니다. 하지만 알고리즘은 결국 프로그래밍 언어로 구현해야 합니다. 프로그래밍 언어에서 문제를 푸는 과정에 이용할 수 있는 편리한 기능을 제공한다면, 이를 이용하지 않을 이유가 없습니다. 예를 들어 사인 30°를 계산한다고 가정해 보겠습니다. 사인 값을 계산하는 데에는 여러 가지 방법이 있습니다. 그중 어떤 알고리즘을 사용해야 할지 고민이 되겠지만, 답은 간단합니다. C 언어에는 각도만 입력하면 해당 각도의 사인 값을 알려 주는 함수를 제공합니다. 사인 값을 계산하는 방법 자체를 궁금해하는 사람은 많지 않을 것이고, 대부분의 사람들은 사인 값을 계산하여 삼각형의 높이를 구하는 등 문제를 푸는 데 관심이 있습니다. 알고리즘은 프로그래밍 언어와 무관합니다. 하지만 좋은 프로그램을 만들기 위해서는 프로그래밍 언어가 기본적으로 제공해 주는 기능들을 알고, 이를 충분히 활용할 수 있어야 합니다.
_53쪽
소스 파일을 컴파일하면 기계어 파일인 목적 파일(object file)이 만들어집니다. 만들어진 목적 파일에 자주 사용되는 함수의 집합인 라이브러리를 연결하면 독립적으로 실행할 수 있는 실행파일이 만들어집니다. 이처럼 컴파일 과정은 몇 개의 단계로 이루어지지만, 실제 프로그래밍 과정에서는 한 번의 클릭만으로도 실행 파일이 만들어집니다. 프로그래밍에서 일반적으로 컴파일러라는 이름으로 불리는 프로그램은 실제로는 통합 개발 환경(IDE, Integrated Development Environment)이라는 프로그램입니다. IDE에는 기본적으로 컴파일러와 링커가 포함되어 있습니다. 이 밖에도 코드를 입력하고 편집할 수 있는 편집기, 프로그램에 숨은 벌레를 찾아내는 일을 도와주는 디버거, 소스 코드를 프로젝트 단위로 관리하는 일을 도와주는 프로젝트 매니저 등을 직관적인 사용자 인터페이스(User Interface, UI)를 통해 제공하고 있으므로 프로그래머는 IDE의 뒷면에서 일어나는 일에 신경 쓰지 않고 알고리즘을 구현하는 데 집중할 수 있습니다.
_69쪽
컴퓨터에서는 명령어와 데이터를 구별하기 위해 쉽고도 간단한 방법을 사용합니다. 명령어와 데이터는 메모리 내에서 저장되는 위치가 다릅니다. 즉, 명령어와 데이터는 표현 방법에서 차이가 나는 것이 아니라 메모리에 저장되는 위치에 의해 의미가 결정되며, 메모리에 저장되는 위치를 ‘세그먼트(segment)’라고 합니다. 명령어가 위치하는 곳은 코드 세그먼트(code segment), 데이터가 위치하는 곳은 데이터 세그먼트(data segment)라고 합니다. 컴퓨터는 코드 세그먼트에 있는 명령어들을 하나씩 CPU로 옮겨 실행하고, 필요한 경우 데이터 세그먼트에서 데이터를 가져와 사용합니다. 데이터 세그먼트에 저장되는 데이터는 프로그램이 종료될 때까지 메모리에 저장되는 반면, C 언어에서 변수 값은 잠깐 동안만 사용되다가 더 이상 사용되지 않는 경우에 자동으로 사라지며, 이러한 값들은 스택 세그먼트(stack segment)라는 또 다른 메모리 영역에 저장됩니다.
_94쪽
출판사 서평
프로그래밍의 기초 골격을 탄탄하게 해주는 다시 배우는 C 언어!
기존의 ‘프로그래밍’ 책들은 프로그래밍에 대한 기초 내용만, ‘C 언어’ 책들은 C 언어 문법 위주의 내용만 다루고 있어서 그 둘을 연관 짓기 어려워하는 독자가 많았습니다. 이 책은 그 둘을 함께 다루어 C 언어를 배우면서 프로그래밍의 기본기를 탄탄히 다지도록 집필되었습니다.
이 책은 크게 세 부분으로 구성되어 있는데, 1부는 프로그램이 필요한 이유와 프로그램이 어떤 과정으로 만들어지는지를 다룹니다. 2부에서는 C 언어에 관해 설명합니다. 다른 C 언어 책들과 비슷하게 보일 수도 있지만, 1부에서 설명한 내용과 연관 지어 C 언어를 사용하여 컴퓨터에서 동작하는 프로그램을 만드는 내용을 다룹니다. 마지막 3부에서는 1부와 2부에서 설명한 방법과 도구를 사용하여 실제 주어진 문제를 풀어나가는 과정을 보여줍니다.
이 책의 대상 독자
● 프로그래밍에 대한 개념을 재정립하고 싶은 분
● 프로그래밍을 배우다가 한번쯤 포기했던 분
● C 언어를 다시 배우려는 분
● C 언어의 기본 문법은 알지만 프로그래밍이 어려운 분
기본정보
ISBN | 9791185890883 ( 1185890882 ) |
---|---|
발행(출시)일자 | 2017년 07월 31일 |
쪽수 | 336쪽 |
크기 |
192 * 246
* 17
mm
/ 677 g
|
총권수 | 1권 |
Klover
e교환권은 적립 일로부터 180일 동안 사용 가능합니다.
리워드는 작성 후 다음 날 제공되며, 발송 전 작성 시 발송 완료 후 익일 제공됩니다.
리워드는 리뷰 종류별로 구매한 아이디당 한 상품에 최초 1회 작성 건들에 대해서만 제공됩니다.
판매가 1,000원 미만 도서의 경우 리워드 지급 대상에서 제외됩니다.
일부 타인의 권리를 침해하거나 불편을 끼치는 것을 방지하기 위해 아래에 해당하는 Klover 리뷰는 별도의 통보 없이 삭제될 수 있습니다.
- 도서나 타인에 대해 근거 없이 비방을 하거나 타인의 명예를 훼손할 수 있는 리뷰
- 도서와 무관한 내용의 리뷰
- 인신공격이나 욕설, 비속어, 혐오발언이 개재된 리뷰
- 의성어나 의태어 등 내용의 의미가 없는 리뷰
리뷰는 1인이 중복으로 작성하실 수는 있지만, 평점계산은 가장 최근에 남긴 1건의 리뷰만 반영됩니다.
구매 후 리뷰 작성 시, e교환권 200원 적립
문장수집
e교환권은 적립 일로부터 180일 동안 사용 가능합니다. 리워드는 작성 후 다음 날 제공되며, 발송 전 작성 시 발송 완료 후 익일 제공됩니다.
리워드는 한 상품에 최초 1회만 제공됩니다.
주문취소/반품/절판/품절 시 리워드 대상에서 제외됩니다.
구매 후 리뷰 작성 시, e교환권 100원 적립