430 likes | 733 Views
C 언어의 특징 쉽다 연습이다 . 자전거를 배우려면 안장에 올라가 페달을 밟아라 . C 프로그래밍을 배우려면 컴퓨터 앞에 앉아 프로그래밍하라 . 넘어지면 피나고 자전거 망가진다 . 에러 나도 피 안나고 컴퓨터 멀쩡하다 . 친절하게도 컴파일러가 에러 교정을 가이드한다 . 더욱 친절하게도 교수님이 지도해 준다. 컴퓨터 프로그래밍 공부의 왕도 예제에 의한 학습 연습에 의한 학습 연습 , 또 연습 , 또 연습하고 … 그러다 보면 어느새 고수 .. 이 책은
E N D
C 언어의 특징 • 쉽다 • 연습이다. • 자전거를 배우려면 안장에 올라가 페달을 밟아라. • C 프로그래밍을 배우려면 컴퓨터 앞에 앉아 프로그래밍하라. • 넘어지면 피나고 자전거 망가진다. • 에러 나도 피 안나고 컴퓨터 멀쩡하다. • 친절하게도 컴파일러가 에러 교정을 가이드한다. • 더욱 친절하게도 교수님이 지도해 준다.
컴퓨터 프로그래밍 공부의 왕도 • 예제에 의한 학습 • 연습에 의한 학습 • 연습, 또 연습, 또 연습하고… 그러다 보면 어느새 고수.. • 이 책은 • 절 끝에서 예제 프로그램의 다양한 변신을 해 봄 • 3~7장 뒤에는 스스로해 보는 프로젝트 문제
스타일 • 프로그래밍 목표 = 옳게 작동 + 좋은 스타일 • 이 책은 스타일링 요소를 중요하게 다룬다. • 좋은 스타일은 어디서나 각광받는다. • http://tvpot.daum.net/clip/ClipViewByVid.do?vid=JTJf238z1wA$ 나쁜 스타일 좋은 스타일
1.1 나도 C 프로그래머이다. • 구문과 의미를 이해하면 나도 C 프로그래머이다. • #include • main()함수 • printf() • retrun 0와 반환형 int • 주석문 /* … */
1.1.1 명령문 • 모든 명령문의 끝은 ;로 끝남 • C 언어의 명령문 종류는 많지 않다. • 여러 문을 하나의 묶음으로 만들려면 복합문 { … } • 주석문 • 여러 줄 /* ... */ • 한 줄 // ... • C의 예약어
컴파일러 (부록 E) • C 언어를 기계어로 번역 명령어 라인 인터페이스 통합 개발 환경 (IDE)
오류 메시지를 주의깊게 살피는 습관을 가져라.
1.2 입출력을 해 보자. • 라인 5: 변수 선언 • 라인 10의 scanf(): 키보드에서 데이터를 입력 • 라인 12: 연산을 수행하고 결과를 celsius라는 변수에 저장
입력문 scanf() • 입력 리스트에는 단일 변수 • 변수 앞에 주소 연산자 &
1.3 메뉴를 제공하자. • 여러 기능을 가진 프로그램이 가치가 더 높다. • 두 가지 기능의 프로그램으로 확장해 보자. • if문으로 ‘선택’ • 라인 5-7: 변수 선언 • 라인 9-13: 메뉴 디스플레이
1.3 메뉴를 제공하자. • 변수 choice의 값에 따라 세 가지 경우 중의 하나를 실행 • 라인 15-20: 인치 센티미터 • 라인 21-26: 화씨 섭씨 • 라인 27-30: 틀린 메뉴
1.3.1 변수 • 변수: 어떤 값을 저장하는 곳 • 사용되기 전에 반드시 정의 • 모든 변수는 형을 가짐 (3장에서 자세히 공부) • celsius,fahrenheit, centimeter, inch는 float형 (실수) • choice는 int형 (정수) • 정의할 때 초기화 가능 • 언제 어떻게 초기화 할지 판단은 프로그래머의 몫
변수 이름을 잘 지어라. • 만일 choice를 kkk로 바꾸면 기능은 같지만 스타일이 망가진다. • 하얀 양복에 빨간 구두를 신은 우스운 스타일 • menu는 여전히 멋진 스타일 • ‘데이터의 의미를 뜻하는’ 이름은 붙여 주어라. • 작명법 • i, I, start, v12, _init등은 허용 • 8i, start*는 허용 안됨 • 때로 두 단어 붙여 작명 • 예) initial_condition이나 InitialCondition
대입문 • expression을 계산하여 얻은 값을 변수 a에 저장
1.3.2 if문 • 제어문은 프로그램의 실행 순서를 제어함 • if문: 조건에 따라 실행할 문을 선택
if문의 일반적 구문 • 조건식 ci는 관계 연산자로 만듦 • exp는 단일 변수 또는 수식
1.3.3 중첩 선택 • 주 메뉴와 부 메뉴를 가지도록 기능 확장해 보자.
1.4 반복하자. • 서비스를 반복하도록 기능 확장 (while 문 이용) …… …… ……
1.5 함수를 만들자. • 함수: 특정한 작업을 전문적으로 해 주는 프로그램 모듈 • 함수 호출: 라인 16과 37 • 함수의 원형: 라인 8 …… …… ……
함수의 정의 • 함수의 일반적 구문
1.5.2 매개 변수와 반환 값을 가진 함수 • 함수의 정보 교환 • 매개 변수: 라인 20의 fahr • return 문: 라인 25
1.6 또 다른 반복 • 온도 변환 표를 만드는 문제 • START에서 END까지 DELTA 만큼씩 증가 • #define 문은 기호 상수 정의 • #define symbolconstant ……
아래 while을 for로 바꿔 쓰면, 보다 간략하게 고쳐 쓰면,
1.7 프로그래밍 스타일: 가독성 • 프로그래머의 개성 • 프로그래밍은 과학이 아니라 예술이라 말하기도 함 • 프로그램 스타일은 프로그래머의 개성에 많은 영향을 받음 • 프로그램의 모양에 관한 스타일 하나:가독성을readability높여라. • 들여 쓰기 • 의미 있는 변수 이름 • 기능별로 구분하기 위한 빈 줄 • 아래는 나쁜 스타일이다. • 소프트웨어의 유지보수와 재사용 측면에서 매우 중요
1.8 C 언어의 특징 • 1972년 Dennis Ritchie와 Ken Thompson이 개발, 현재 가장 널리 쓰이는 언어임 • 학생이 가져야 할 마음 자세 • 중요하다. C를 잘 하면 C++와 Java도 잘 한다. • 재미있다. 나의 개성을 발산하자. • 다른 언어와 차별성 • Unix와 밀접한 관련이 있다. (Linux 기반 임베디드에 적합) • 간결하다. • 기계에 가깝다. • C++는 C의 객체 지향 버전이다.