Chapter 01 C 언어의시작 -...

35
Chapter 01 C 언어의 시작

Transcript of Chapter 01 C 언어의시작 -...

Page 1: Chapter 01 C 언어의시작 - Kangwoncs.kangwon.ac.kr/.../course/2019_spring_computer_programming_rs… · 1.1 c 언어의기원과역사 c 언어 1972년at&t 사의벨연구소에서유닉스개발용고급언어로개발됨.

Chapter 01 C 언어의 시작

Page 2: Chapter 01 C 언어의시작 - Kangwoncs.kangwon.ac.kr/.../course/2019_spring_computer_programming_rs… · 1.1 c 언어의기원과역사 c 언어 1972년at&t 사의벨연구소에서유닉스개발용고급언어로개발됨.

01 C 언어 소개

02 C 프로그램 개발 환경

03 프로그램 오류 수정과 환경 설정

Page 3: Chapter 01 C 언어의시작 - Kangwoncs.kangwon.ac.kr/.../course/2019_spring_computer_programming_rs… · 1.1 c 언어의기원과역사 c 언어 1972년at&t 사의벨연구소에서유닉스개발용고급언어로개발됨.

• C 언어의 역사와 특징을 알아본다.

• C 프로그램의 기본 개발 환경을 알아본다.

• C 프로그래밍에서 발생하는 간단한 오류를 해결하는 방법을

알아본다.

Page 4: Chapter 01 C 언어의시작 - Kangwoncs.kangwon.ac.kr/.../course/2019_spring_computer_programming_rs… · 1.1 c 언어의기원과역사 c 언어 1972년at&t 사의벨연구소에서유닉스개발용고급언어로개발됨.

1.1 C 언어의 기원과 역사

C 언어

1972년 AT&T 사의 벨연구소에서 유닉스 개발용 고급 언어로 개발됨.

데니스 리치가 B 언어를 C 언어로 발전시킴.

유닉스의 70%를 담당하는 고급 언어

오늘날 가장 기본적인 프로그래밍 언어

Page 4

Page 5: Chapter 01 C 언어의시작 - Kangwoncs.kangwon.ac.kr/.../course/2019_spring_computer_programming_rs… · 1.1 c 언어의기원과역사 c 언어 1972년at&t 사의벨연구소에서유닉스개발용고급언어로개발됨.

1.2 C 언어의 특징

C 언어의 특징

시스템 프로그래밍 언어

함수 언어

이식성이 강한 언어

풍부한 자료형 지원

다양한 제어문 지원

표준 라이브러리 함수 지원

Page 5

Page 6: Chapter 01 C 언어의시작 - Kangwoncs.kangwon.ac.kr/.../course/2019_spring_computer_programming_rs… · 1.1 c 언어의기원과역사 c 언어 1972년at&t 사의벨연구소에서유닉스개발용고급언어로개발됨.

1.3 프로그램 실행 과정

컴퓨터의 구성

Page 6

Page 7: Chapter 01 C 언어의시작 - Kangwoncs.kangwon.ac.kr/.../course/2019_spring_computer_programming_rs… · 1.1 c 언어의기원과역사 c 언어 1972년at&t 사의벨연구소에서유닉스개발용고급언어로개발됨.

1.3 프로그램 실행 과정

하드웨어

전자회로와 물리적인 장치로 이루어진 것

하드웨어의 5대 구성 요소

입력장치 : 문자나 기호 같은 데이터를 컴퓨터가 이해하도록 전기 신호로 변환

중앙처리장치 : 컴퓨터의 구성 요소를 제어하거나 연산을 수행

출력장치 : 중앙처리장치가 처리한 결과를 출력

주기억장치 : 컴퓨터 내에서 실행 중인 명령어와 데이터를 저장(RAM)

보조기억장치 : 주기억장치를 보조하는 장치로 데이터를 영구적으로 보존

하드디스크, 플로피디스크, CD-ROM 등

Page 7

Page 8: Chapter 01 C 언어의시작 - Kangwoncs.kangwon.ac.kr/.../course/2019_spring_computer_programming_rs… · 1.1 c 언어의기원과역사 c 언어 1972년at&t 사의벨연구소에서유닉스개발용고급언어로개발됨.

1.3 프로그램 실행 과정

소프트웨어

하드웨어에 명령을 내려 구동할 수 있도록 만들어진 프로그램(명령어들의 집합)

일반적으로 시스템 소프트웨어와 응용 소프트웨어로 나뉨.

시스템 소프트웨어 : 컴퓨터를 효율적으로 운영하고 제어하기 위한 프로그램

도스나 윈도우 같은 운영체제, 파일을 압축 ∙ 정렬하는 유틸리티 등

응용 소프트웨어 : 특정 분야의 업무를 처리하기 위한 프로그램

문서 편집을 위한 한글이나 워드, 그림 편집을 위한 포토샵, 엑셀 등

Page 8

Page 9: Chapter 01 C 언어의시작 - Kangwoncs.kangwon.ac.kr/.../course/2019_spring_computer_programming_rs… · 1.1 c 언어의기원과역사 c 언어 1972년at&t 사의벨연구소에서유닉스개발용고급언어로개발됨.

1.3 프로그램 실행 과정

프로그래밍 실행 절차

원시 파일 : 사용자가 편집기를 이용하여 만든 파일

목적 파일 : 사용자가 만든 원시 파일을 기계어로 바꿈(확장자는 .obj)

링커(linker) : 소스코드와 시스템 라이브러리를 연결(linking)

목적 파일 여러 개를 연결하여 실행 파일 생성

Page 9

Page 10: Chapter 01 C 언어의시작 - Kangwoncs.kangwon.ac.kr/.../course/2019_spring_computer_programming_rs… · 1.1 c 언어의기원과역사 c 언어 1972년at&t 사의벨연구소에서유닉스개발용고급언어로개발됨.

1.4 C 프로그램의 구조

C 프로그램의 구조

1개 이상의 함수로 구성

Main( ) 함수는 반드시 존재해야 함.

그 외의 함수는 사용자가 임의로 작성해서 사용

Page 10

/* 주석 내용 */ ❶// 전처리기#include <stdio.h> ❷

int main(void) ❸{ ❹

// 일반 명령문 ❺⋮

return 0; // main() 함수의 반환 ❻}

Page 11: Chapter 01 C 언어의시작 - Kangwoncs.kangwon.ac.kr/.../course/2019_spring_computer_programming_rs… · 1.1 c 언어의기원과역사 c 언어 1972년at&t 사의벨연구소에서유닉스개발용고급언어로개발됨.

1.4 C 프로그램의 구조

① 주석

프로그램의 내용을 설명하기 위해 사용

컴파일러는 주석을 만나면 기계어로 바꾸지 않고 그냥 넘어감.

② 전처리기 지시자

항상 #으로 시작하고 한 줄에 지시자 1개만 쓸 수 있음.

헤더파일을 포함하거나 상수 및 간단한 매크로를 정의할 때 사용

문장의 마지막에 세미콜론(;)을 넣지 않음.

Page 11

Page 12: Chapter 01 C 언어의시작 - Kangwoncs.kangwon.ac.kr/.../course/2019_spring_computer_programming_rs… · 1.1 c 언어의기원과역사 c 언어 1972년at&t 사의벨연구소에서유닉스개발용고급언어로개발됨.

1.4 C 프로그램의 구조

③ main(void) 함수

프로그램의 시작을 알리는 함수

하위 함수 없이 main( ) 함수 1개만으로도 사용 가능

④ 중괄호

명령문들의 블록을 의미하는 것으로 main( ) 함수의 시작과 끝을 나타냄.

⑤ 일반 명령문

실제로 프로그램이 실행할 기능을 작성

실행 순서는 위에서 아래, 왼쪽에서 오른쪽이 기본(경우에 따라서 변동 가능)

⑥ 함수의 반환

return문으로 함수의 실행 결과를 반환

Page 12

Page 13: Chapter 01 C 언어의시작 - Kangwoncs.kangwon.ac.kr/.../course/2019_spring_computer_programming_rs… · 1.1 c 언어의기원과역사 c 언어 1972년at&t 사의벨연구소에서유닉스개발용고급언어로개발됨.

2.1 Visual C++를 이용한 프로그램 작성 방법

프로그램의 개발 과정

편집-컴파일/링크-실행 단계로 구분

통합 개발 환경 : 프로그램의 개발 과정을 하나의 프로그램 내에서 제공하는 것

(도스 : Turbo-C나 Borland-C, 윈도우 : Visual C++, C-Builder)

Page 13

Page 14: Chapter 01 C 언어의시작 - Kangwoncs.kangwon.ac.kr/.../course/2019_spring_computer_programming_rs… · 1.1 c 언어의기원과역사 c 언어 1972년at&t 사의벨연구소에서유닉스개발용고급언어로개발됨.

2.1 Visual C++를 이용한 프로그램 작성 방법

① Visual Studio 2015 실행 후 <New Project> 클릭

Page 14

Page 15: Chapter 01 C 언어의시작 - Kangwoncs.kangwon.ac.kr/.../course/2019_spring_computer_programming_rs… · 1.1 c 언어의기원과역사 c 언어 1972년at&t 사의벨연구소에서유닉스개발용고급언어로개발됨.

2.1 Visual C++를 이용한 프로그램 작성 방법

② [New Project]-[Win32]-[Win32 Console Application] 선택

Name에 ‘Test’ 입력 후 Location에 파일을 만들 위치를 선택하고 <OK> 클릭

Page 15

Page 16: Chapter 01 C 언어의시작 - Kangwoncs.kangwon.ac.kr/.../course/2019_spring_computer_programming_rs… · 1.1 c 언어의기원과역사 c 언어 1972년at&t 사의벨연구소에서유닉스개발용고급언어로개발됨.

2.1 Visual C++를 이용한 프로그램 작성 방법

③ [Win32 Application Wizard] 대화상자가 나타나면 <Next> 클릭

④ [Win32 Application Wizard - Test] 대화상자가 나타나면 Application type 항

목의 [Console application]에 체크

Additional options 항목의 [Empty project]에 체크한 후 <Finish> 클릭

Page 16

Page 17: Chapter 01 C 언어의시작 - Kangwoncs.kangwon.ac.kr/.../course/2019_spring_computer_programming_rs… · 1.1 c 언어의기원과역사 c 언어 1972년at&t 사의벨연구소에서유닉스개발용고급언어로개발됨.

2.1 Visual C++를 이용한 프로그램 작성 방법

⑤ 프로그램 편집 창 확인

• 소스 작성 창 : C 언어 문법에 맞게 사용자가 프로그램을 작성하는 창

• 프로젝트 창 : 사용자가 만든 프로젝트가 표시되는 창

• 결과 창 : 소스파일을 컴파일하고 빌드한 결과를 보여주는 창

Page 17

Page 18: Chapter 01 C 언어의시작 - Kangwoncs.kangwon.ac.kr/.../course/2019_spring_computer_programming_rs… · 1.1 c 언어의기원과역사 c 언어 1972년at&t 사의벨연구소에서유닉스개발용고급언어로개발됨.

2.1 Visual C++를 이용한 프로그램 작성 방법

⑥ 프로젝트 창의 Source Files 항목에서 오른쪽 파일을 클릭하여 [Add]-[New

Item…]을 차례로 선택

Page 18

Page 19: Chapter 01 C 언어의시작 - Kangwoncs.kangwon.ac.kr/.../course/2019_spring_computer_programming_rs… · 1.1 c 언어의기원과역사 c 언어 1972년at&t 사의벨연구소에서유닉스개발용고급언어로개발됨.

2.1 Visual C++를 이용한 프로그램 작성 방법

⑦ [Add New Item - Test] 대화상자의 [C++ File(.cpp)]를 선택한 후 Name에

‘main.c’를 입력하고 <Add> 클릭

Page 19

Page 20: Chapter 01 C 언어의시작 - Kangwoncs.kangwon.ac.kr/.../course/2019_spring_computer_programming_rs… · 1.1 c 언어의기원과역사 c 언어 1972년at&t 사의벨연구소에서유닉스개발용고급언어로개발됨.

2.1 Visual C++를 이용한 프로그램 작성 방법

⑧ 소스 작성 창에 소스코드 입력

Page 20

01 #include <stdio.h>0203 int main(void)04 {05 printf("저는 경영과 김경영입니다. \n");06 return 0;07 }

Page 21: Chapter 01 C 언어의시작 - Kangwoncs.kangwon.ac.kr/.../course/2019_spring_computer_programming_rs… · 1.1 c 언어의기원과역사 c 언어 1972년at&t 사의벨연구소에서유닉스개발용고급언어로개발됨.

2.1 Visual C++를 이용한 프로그램 작성 방법

⑨ 소스코드를 실행하기 위해 C 언어 컴파일러 설정

Test에서 마우스 오른쪽 버튼을 클릭하여 [Properties] 선택

Page 21

Page 22: Chapter 01 C 언어의시작 - Kangwoncs.kangwon.ac.kr/.../course/2019_spring_computer_programming_rs… · 1.1 c 언어의기원과역사 c 언어 1972년at&t 사의벨연구소에서유닉스개발용고급언어로개발됨.

2.1 Visual C++를 이용한 프로그램 작성 방법

⑩ [Test Property Pages] 대화상자의 [C/C++]–[Advanced] 선택

[Compile As]-[Compile as C Code(/TC)]를 선택한 후 <적용>과 <확인>을

차례로 클릭

Page 22

Page 23: Chapter 01 C 언어의시작 - Kangwoncs.kangwon.ac.kr/.../course/2019_spring_computer_programming_rs… · 1.1 c 언어의기원과역사 c 언어 1972년at&t 사의벨연구소에서유닉스개발용고급언어로개발됨.

2.1 Visual C++를 이용한 프로그램 작성 방법

⑪ 프로그램 편집 창에서 [Build]-[Build Solution](또는 Ctrl+Shift+B)을 선택하여

컴파일 및 빌드를 실행

Page 23

Page 24: Chapter 01 C 언어의시작 - Kangwoncs.kangwon.ac.kr/.../course/2019_spring_computer_programming_rs… · 1.1 c 언어의기원과역사 c 언어 1972년at&t 사의벨연구소에서유닉스개발용고급언어로개발됨.

2.1 Visual C++를 이용한 프로그램 작성 방법

⑫ 프로젝트 편집 창의 메뉴에서 [Debug]-[Start Without Debugging](또는

Ctrl+F5)을 선택해서 실행

• [Start Debugging] : 프로그램을 한 줄씩 확인하며 실행하는 방법

• [Start Without Debugging] : 확인 과정 없이 프로그램 전체를 한 번에 실행하는 방법

Page 24

Page 25: Chapter 01 C 언어의시작 - Kangwoncs.kangwon.ac.kr/.../course/2019_spring_computer_programming_rs… · 1.1 c 언어의기원과역사 c 언어 1972년at&t 사의벨연구소에서유닉스개발용고급언어로개발됨.

2.1 Visual C++를 이용한 프로그램 작성 방법

#include <stdio.h>

전처리기 지시자인 #을 사용하여 include 명령을 실행

include 명령 다음에 반드시 Space Bar를 눌러 한 칸을 띄우고 헤더파일명 입력

헤더파일은 확장자가 .h

시스템(컴파일러)에 있는 헤더파일은 다음 형태로 사용(반드시 < > 사용)

사용자가 만든 헤더파일을 사용할 경우 “ ” 사용

int main(void)

main 다음에 ( ) 사용

main 함수 아래에는 { }를 사용

Page 25

#include <헤더파일명> // 시스템 헤더파일 사용

#include "헤더파일명" // 사용자가 만든 헤더파일 사용

Page 26: Chapter 01 C 언어의시작 - Kangwoncs.kangwon.ac.kr/.../course/2019_spring_computer_programming_rs… · 1.1 c 언어의기원과역사 c 언어 1972년at&t 사의벨연구소에서유닉스개발용고급언어로개발됨.

2.1 Visual C++를 이용한 프로그램 작성 방법

printf(“저는 경영과 김경영입니다. \n”)

printf( ) : 괄호 안의 큰따옴표(“ ”) 사이에 있는 내용을 도스 창에 출력하는 함수

\n은 도스 창에 출력할 때 한 줄을 띄우라는 명령(Enter와 동일한 역할)

return 0

숫자 0을 반환하라는 의미

int main( ) 함수에서 int는 정수형을 나타내는 자료형으로, main 함수가 정숫값

을 반환한다는 의미(0 이외의 다른 정숫값 사용 가능)

Page 26

Page 27: Chapter 01 C 언어의시작 - Kangwoncs.kangwon.ac.kr/.../course/2019_spring_computer_programming_rs… · 1.1 c 언어의기원과역사 c 언어 1972년at&t 사의벨연구소에서유닉스개발용고급언어로개발됨.

3.1 프로그램 오류 수정 방법

디버깅(debugging)

문법적인 오류나 논리적인 오류를 찾아 프로그램을 수정하는 것

디버깅으로 오류를 제거하는 방법

[실습 1-1]의 소스코드를 수정

Page 27

#inculde <stdio.h> // include의 철자가 틀렸다.int main(void){

printf("저는 경영과 김경영입니다. \n") // 마지막에 세미콜론이 없다.return 0;

}

Page 28: Chapter 01 C 언어의시작 - Kangwoncs.kangwon.ac.kr/.../course/2019_spring_computer_programming_rs… · 1.1 c 언어의기원과역사 c 언어 1972년at&t 사의벨연구소에서유닉스개발용고급언어로개발됨.

3.1 프로그램 오류 수정 방법

디버깅으로 오류를 제거하는 방법

Page 28

Invalid preprocessor command

‘inculde’ : inculde가 유효하지 않은

전처리기 명령어라는 뜻

missing ‘;’ before ‘return’ : return

명령어 앞에 ;이 없다는 뜻

Page 29: Chapter 01 C 언어의시작 - Kangwoncs.kangwon.ac.kr/.../course/2019_spring_computer_programming_rs… · 1.1 c 언어의기원과역사 c 언어 1972년at&t 사의벨연구소에서유닉스개발용고급언어로개발됨.

3.2 Visual Studio 2015의 Visual C++ 환경 설정

① 프로그램 편집 창에서 [Tools]-[Options]를 선택하면 [Options] 대화상자 나타

남.

[Options] 대화상자에서 [Environment]-[Fonts and Colors]를 선택하면 Visual

C++ 통합 개발 환경에서 사용하는 글자의 형태나 색상을 바꿀 수 있음.

Page 29

Page 30: Chapter 01 C 언어의시작 - Kangwoncs.kangwon.ac.kr/.../course/2019_spring_computer_programming_rs… · 1.1 c 언어의기원과역사 c 언어 1972년at&t 사의벨연구소에서유닉스개발용고급언어로개발됨.

3.2 Visual Studio 2015의 Visual C++ 환경 설정

② [Plain Text]의 Item background 항목에서 소스 작성 창의 배경색 변경 가능

Page 30

Page 31: Chapter 01 C 언어의시작 - Kangwoncs.kangwon.ac.kr/.../course/2019_spring_computer_programming_rs… · 1.1 c 언어의기원과역사 c 언어 1972년at&t 사의벨연구소에서유닉스개발용고급언어로개발됨.

3.2 Visual Studio 2015의 Visual C++ 환경 설정

③ [Keyword]의 Item foreground 항목에서 소스 작성 창에 나타나는 키워드 색

상 변경 가능

Page 31

Page 32: Chapter 01 C 언어의시작 - Kangwoncs.kangwon.ac.kr/.../course/2019_spring_computer_programming_rs… · 1.1 c 언어의기원과역사 c 언어 1972년at&t 사의벨연구소에서유닉스개발용고급언어로개발됨.

3.3 도스 창 환경 설정

① 도스 창의 제목 표시줄에 마우스 포인터를 놓고 마우스 오른쪽 버튼 클릭

Page 32

Page 33: Chapter 01 C 언어의시작 - Kangwoncs.kangwon.ac.kr/.../course/2019_spring_computer_programming_rs… · 1.1 c 언어의기원과역사 c 언어 1972년at&t 사의벨연구소에서유닉스개발용고급언어로개발됨.

3.3 도스 창 환경 설정

② 도스 창의 메뉴에서 [속성] 선택 후 화면 텍스트는 검은색을, 화면 배경은 흰

색을 선택한 후 <확인> 클릭

Page 33

Page 34: Chapter 01 C 언어의시작 - Kangwoncs.kangwon.ac.kr/.../course/2019_spring_computer_programming_rs… · 1.1 c 언어의기원과역사 c 언어 1972년at&t 사의벨연구소에서유닉스개발용고급언어로개발됨.

3.3 도스 창 환경 설정

③ 도스 창의 화면 배경이 흰색으로, 화면 텍스트가 검은색으로 바뀐 것 확인

Page 34

Page 35: Chapter 01 C 언어의시작 - Kangwoncs.kangwon.ac.kr/.../course/2019_spring_computer_programming_rs… · 1.1 c 언어의기원과역사 c 언어 1972년at&t 사의벨연구소에서유닉스개발용고급언어로개발됨.

C로 시작하는컴퓨터 프로그래밍 개정3판

감사합니다.