kasimov c 언어 세미나

31
1st Kasimov C 언언 언언언

Upload: sissy

Post on 15-Jan-2016

93 views

Category:

Documents


0 download

DESCRIPTION

Kasimov C 언어 세미나. 1st. 차례. 컴퓨터의 자료 표현 - 숫자 표기법 ( 이진수 , 십육진수 ) 프로그래밍 언어 컴파일러와 인터프리터 자료형 맛보기 오류의 종류와 디버깅 컴파일 하기. 컴퓨터의 자료 표현. 컴퓨터의 자료 표현. 이진수 컴퓨터는 이진 값으로 표현된 정보만 저장하고 다룰 수 있다 . 컴퓨터에서는 한 비트가 0 과 1 을 나타낼 수 있다 . N 비트는 최대 2 N 개의 경우들을 표현할 수 있다. 표 1.2 이진수. 이진수와 십진수. 십진수 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Kasimov  C 언어 세미나

1st

Kasimov C 언어 세미나

Page 2: Kasimov  C 언어 세미나

차례컴퓨터의 자료 표현 - 숫자 표기법 ( 이진수 , 십육진수 )프로그래밍 언어컴파일러와 인터프리터자료형 맛보기오류의 종류와 디버깅컴파일 하기

Page 3: Kasimov  C 언어 세미나
Page 4: Kasimov  C 언어 세미나

컴퓨터의 자료 표현

4

이진수컴퓨터는 이진 값으로

표현된 정보만 저장하고 다룰 수 있다 .

컴퓨터에서는 한 비트가 0 과 1 을 나타낼 수 있다 .

N 비트는 최대 2N 개의 경우들을 표현할 수 있다 .

표 1.2 이진수

1 비트  2 비트 3 비트 4 비트

01

00011011

000001010011100101110111

0000000100100011010001010110011110001001101010111100110111101111

Page 5: Kasimov  C 언어 세미나

이진수와 십진수

5

십진수열 개의 숫자 (0 에서 9) 를 이용하여 값을 표현한다 . 십진수의 각 자리에는 자릿값이 있다 . 182 = 1 x 102 + 8 x 101 + 2 x 100

= 1 x 100 + 8 x 10 + 2 x 1 이진수

두 개의 숫자 (0 과 1) 를 이용하여 값을 표현한다 . 이진수의 각 자리에는 자릿값이 있다 .11012 = 1 x 23 + 1 x 22 + 0 x 21 + 1 x 20

= 1 x 8 + 1 x 4 + 0 x 2 + 1 x 1 = 13

Page 6: Kasimov  C 언어 세미나

십진수를 이진수로 변환

6

예 24(=16) < 27 < 25(=32)27 = 1 x 16 + 1 x 8 + 0 x 4 + 1 x 2 + 1 x 1

= 1 x 24 + 1 x 23 + 0 x 22 + 1 x 21 + 1 x 20 = 110112

Page 7: Kasimov  C 언어 세미나
Page 8: Kasimov  C 언어 세미나

프로그래밍 언어

8

프로그램을 작성하기 위한 언어 사람이 컴퓨터에게 시키고 싶은 내용을 표현하기 위한 표기법 그 발전 단계에 따라 기계어 , 어셈블리어 , 고급언어로 분류

기계어 이진수 코드로 CPU 종류마다 고유의 기계어

1001 0001 0001 위치의 값을 누산기에 저장하라 . 1100 0010 누산기에 0010 위치의 값을 더하라 1010 0011 누산기의 값을 0011 위치에 저장하라 . 어셈블리어

기계어의 이진수 코드를 기호화 코드 (mnemonics) 로 대치한 것 LOAD Y Y 의 값을 누산기에 저장한다 . ADD Z 누산기에 Z 의 값을 더하라 STORE X 누산기의 값을 X 에 저장하라 . 고급 언어

영어와 비슷한 구문으로 표현되며 , 읽고 쓰기가 보다 쉽다 고급언어는 프로그래머가 기계의 세부사항을 알 필요가 없게

해준다X = Y + Z

Page 9: Kasimov  C 언어 세미나

주요 고급 언어

9

FORTRAN(FORmula TRANslation) 1957 년에 IBM 의 John Backus 가 개발한 최초의

성공적인 고급 프로그래밍 언어주로 과학계산용 언어로 프로그램을 단순화된 영어

단어와 수학 공식으로 표현 COBOL(COmmon Business Oriented Language)

1960 년초에 개발된 사무용 프로그램을 개발을 위한 프로그래밍 언어

COBOL 로 작성된 많은 급여 , 회계 및 기타 업무용 S/W는 지금도 많이 사용됨

BASIC(Beginner's All-purpose Symbolic Instruction Code) 초보자가 배우기 쉬운 프로그래밍 언어로 개발원래 학생들에게 프로그래밍 언어를 가르치기 위해 개발 그 후 컴퓨터 업계에 소개되면서 비중 있는 프로그래밍

언어가 됨 .

Page 10: Kasimov  C 언어 세미나

주요 고급 언어

10

C 언어AT&T 벨 연구소의 Dennis Ritchie 가 개발한 시스템

프로그래밍 용 언어1970 년대 UNIX 라는 운영 체제 개발을 위하여 개발된 언어고급 언어이면서도 저급 언어 ( 하드웨어에 가까운 언어 ) 의

특성을 가지고 있음 .C++

AT&T 벨 연구소의 B. Stroustrup 에 의해 개발C 언어의 기능을 확장하여 만든 객체 지향 프로그래밍 언어

Java 1990 년대에 선 마이크로시스템 사의 James Gosling 이 개발인터넷 환경을 위해 개발된 객체지향 언어로 이동 코드실행

지원 Java 프로그램은 한번 작성되면 어느 플랫폼에서나 실행

가능

Page 11: Kasimov  C 언어 세미나

C++ , C#, BASIC 의 차이

C++ 은 C 언어를 확장하여 객체지향 프로그래밍 개념을 추가한 것 .

C# 은 비주얼 언어가 가진 사용자 친화성 , C++ 의 객체지향성 , 자바의 분산환경처리에 적합한 다중성 등을 모두 지니는 컴포넌트 기반의 소프트웨어 개발 패러다임을 반영함

BASIC 은 MS 의 빌게이츠가 만들었던 교육용 언어VISUAL STUDIO : Visual C, C++, C#, BASIC 이 사용되는 툴

Page 12: Kasimov  C 언어 세미나
Page 13: Kasimov  C 언어 세미나

컴파일러 및 인터프리터

13

컴파일러고급 언어로 작성된

코드를 동등한 의미의 저급 언어로 된 코드로 번역하는 소프트웨어이다 .

인터프리터별개의 컴파일 단계

없이 한 번에 한 문장씩 번역 ( 혹은 해석 ) 하여 실행한다 .

소스 프로그램

입력 출력인터프리터

입력 출력목적 프로그램

소스 프로그램

컴파일러

Page 14: Kasimov  C 언어 세미나

14

C 컴파일러컴파일러란 ?

통역사 ( 사람과 컴퓨터 사이의 통역 담당 )C 프로그램을 컴퓨터가 수행할 수 있도록 번역해 주는 놈CPU 는 C 프로그램을 모른다CPU 는 이진코드 형태의 기계어 (machine language) 만

안다

컴파일러 종류상용 컴파일러 : Microsoft Visual C/C++, Borland C/C++

컴파일러C 프로그램

int main…

기계어프로그램

010101…

Page 15: Kasimov  C 언어 세미나

API / MFC API - MS Windows 에서 사용할 수 있는 프로그램을 만들기 위한

함수의 라이브러리 ( printf 와 같은 미리 정의된 함수의 집합 )- API 에서 사용하는 함수들을 리눅스용 프로그램 제작시에는

사용하지 못한다- API 는 C 언어를 기반으로 한 함수들로 이루어져 있다 .

MFC : MS 의 Visual Studio 만을 위한 API- Visual C++ 을 이용하여 개발할때 사용 - API 는 C 언어 기반으로 만든 함수이기에 규모가 큰 프로그램

개발시에는 상당히 많은 시간과 노력이 들게 됨 . Visual C++에서 API 대신에 좀더 적은 노력으로 동일한 작업을 수행할 수 있도록 클래스 로 묶어 놓은 것

Page 16: Kasimov  C 언어 세미나
Page 17: Kasimov  C 언어 세미나

17

자료형이란 무엇인가 ? 자료형 (data type)

프로그램에서 표현 혹은 저장하는 데이터의 종류 혹은 유형

C 언어의 자료형C 언어는 크게 1 개의 문자형 , 3 개의 정수형 , 3 개의

부동소수형을 제공한다 .

표 3.1 C 언어의 자료형 분류

자료형 크기에 따라 

문자형 char  

정수형 short int long

부동소수형 float double long double

Page 18: Kasimov  C 언어 세미나

자료형 기억장소 최소값 최대값

char 8 비트 -27 = -128 27-1 = 127

short 16 비트 -215 = -32,768 215-1 = 32,767

int 32 비트 -231 = -2,147,483,648 231-1 = 2,147,483,647

long 32 비트 -231 = -2,147,483,648 231-1 = 2,147,483,647

long long*

64 비트 -264 = -9,223,372,036,854,775,808 263-1 = 9,223,372,036,854,775,807

* long long 은 MS Visual C/C++ 6.0 에서는 지원되지 않음 . 여기서 long long 은 gcc 컴파일러의 예

Page 19: Kasimov  C 언어 세미나
Page 20: Kasimov  C 언어 세미나

20

Microsoft Visual C++ 통합개발환경 (IDE)프로젝트 구성 창편집 창메시지 창

우리가 사용하게 될 Visual Basic

Page 21: Kasimov  C 언어 세미나

오류의 종류 및 디버깅

21

오류를 알려준다 .

컴파일시간 오류 (compile-time error)컴파일 과정에서 생긴 오류컴파일러는 프로그램의 구문 , 데이터 , 의미 없는 문장 등을 검사이런 경우 편집기로 돌아가서 오류를 수정한 후 다시 컴파일 해야 함

논리 오류 (logical error) 성공적인 컴파일 후 프로그램을 실행하면서 잘못된 결과를 내는 경우 원하는 결과를 내도록 프로그램 수정 후 다시 컴파일해서 실행해야 함

실행시간 오류 (run-time error) 프로그램실행 중에 예상치 못한 이유로 비정상적으로 종료예 : 어떤 값을 0 으로 나누려고 하면 프로그램은 실행을 멈추고 종료좋은 프로그램은 실행시간 오류가 가능한 한 발생하지 않아야 함

디버깅 (debugging) 프로그램의 결함을 찾고 수정하는 이러한 과정을 디버깅이라고 함

Page 22: Kasimov  C 언어 세미나
Page 23: Kasimov  C 언어 세미나

23

MSVC IDE: 프로젝트 만들기(1/5)1. File New

Projects 탭에서Win32 Console Application 선택

2. Location 선택3. 프로젝트 이름 입력4. OK5. Finish & OK

Page 24: Kasimov  C 언어 세미나

24

MSVC IDE: 프로젝트 만들기(2/5)1. File New2. Location 선택

프로젝트를 저장할 폴더 선택3. 프로젝트 이름 입력4. OK5. Finish & OK

Page 25: Kasimov  C 언어 세미나

25

MSVC IDE: 프로젝트 만들기(3/5)1. File New2. Location 선택3. 프로젝트 이름 입력

Hello4. OK5. Finish & OK

Page 26: Kasimov  C 언어 세미나

26

MSVC IDE: 프로젝트 만들기(4/5)1. File New

Win32 Console Application 선택2. Location 선택3. 프로젝트 이름 입력4. OK5. Finish

& OK

Page 27: Kasimov  C 언어 세미나

27

MSVC IDE: 프로젝트 만들기(5/5) Hello 프로젝트가 생성된 화면

Page 28: Kasimov  C 언어 세미나
Page 29: Kasimov  C 언어 세미나

29

간단한 C 프로그램 (hello.c)

실행결과 :Hello, World !

Page 30: Kasimov  C 언어 세미나

재미있으셨나요 ??

첫시간이라 좀 안드로메다 였나요 ??

…… 이 아니라 ^^

다음 이시간에는 뭘 하냐면요 … !!!!!!!!

Page 31: Kasimov  C 언어 세미나

To be continue…빌드와 디버깅hello.C 의 분석입 / 출력 함수자료형에 관한 세부사항