Kasimov C언어 세미나

Download Report

Transcript Kasimov C언어 세미나

Kasimov C언어 세미나
1st
차례
 컴퓨터의 자료 표현





- 숫자 표기법 (이진수, 십육진수)
프로그래밍 언어
컴파일러와 인터프리터
자료형 맛보기
오류의 종류와 디버깅
컴파일 하기
컴퓨터의 자료 표현
 이진수
 컴퓨터는 이진 값으로
표현된 정보만 저장하고
다룰 수 있다.
 컴퓨터에서는 한 비트가
0과 1을 나타낼 수 있다.
 N 비트는 최대 2N개의 경
우들을 표현할 수 있다.
4
1 비트
2 비트
3 비트
4 비트
0
1
00
01
10
11
000
001
010
011
100
101
110
111
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111
표 1.2 이진수
이진수와 십진수
 십진수
 열 개의 숫자(0에서 9)를 이용하여 값을 표현한다.
 십진수의 각 자리에는 자릿값이 있다.
 182
= 1 x 102 + 8 x 101 + 2 x 100
= 1 x 100 + 8 x 10 + 2 x 1
 이진수
 두 개의 숫자(0과 1)를 이용하여 값을 표현한다.
 이진수의 각 자리에는 자릿값이 있다.
= 1 x 2 3 + 1 x 22 + 0 x 2 1 + 1 x 20
=1x8+ 1x4 + 0x2 +1x1
= 13
 11012
5
십진수를 이진수로 변환
 예 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
6
프로그래밍 언어
 프로그램을 작성하기 위한 언어
 사람이 컴퓨터에게 시키고 싶은 내용을 표현하기 위한 표기법
 그 발전 단계에 따라 기계어, 어셈블리어, 고급언어로 분류
 기계어
 이진수 코드로 CPU 종류마다 고유의 기계어
1001 0001 0001 위치의 값을 누산기에 저장하라.
1100 0010 누산기에 0010 위치의 값을 더하라
1010 0011 누산기의 값을 0011위치에 저장하라.
 어셈블리어
 기계어의 이진수 코드를 기호화 코드(mnemonics)로 대치한 것
LOAD Y
ADD Z
STORE X
 고급 언어
Y의 값을 누산기에 저장한다.
누산기에 Z의 값을 더하라
누산기의 값을 X에 저장하라.
 영어와 비슷한 구문으로 표현되며, 읽고 쓰기가 보다 쉽다
 고급언어는 프로그래머가 기계의 세부사항을 알 필요가 없게 해
준다
X=Y+Z
8
주요 고급 언어
 FORTRAN(FORmula TRANslation)
 1957년에 IBM의 John Backus가 개발한 최초의 성공적인 고
급 프로그래밍 언어
 주로 과학계산용 언어로 프로그램을 단순화된 영어 단어
와 수학 공식으로 표현
 COBOL(COmmon Business Oriented Language)
 1960년초에 개발된 사무용 프로그램을 개발을 위한 프로
그래밍 언어
 COBOL로 작성된 많은 급여, 회계 및 기타 업무용 S/W는 지
금도 많이 사용됨
 BASIC(Beginner's All-purpose Symbolic Instruction Code)
 초보자가 배우기 쉬운 프로그래밍 언어로 개발
 원래 학생들에게 프로그래밍 언어를 가르치기 위해 개발
 그 후 컴퓨터 업계에 소개되면서 비중 있는 프로그래밍 언
어가 됨.
9
주요 고급 언어
 C 언어
 AT&T 벨 연구소의 Dennis Ritchie가 개발한 시스템 프로그
래밍 용 언어
 1970년대 UNIX라는 운영 체제 개발을 위하여 개발된 언어
 고급 언어이면서도 저급 언어(하드웨어에 가까운 언어)의
특성을 가지고 있음.
 C++
 AT&T 벨 연구소의 B. Stroustrup에 의해 개발
 C 언어의 기능을 확장하여 만든 객체 지향 프로그래밍 언
어
 Java
 1990년대에 선 마이크로시스템 사의 James Gosling이 개발
 인터넷 환경을 위해 개발된 객체지향 언어로 이동 코드실
행 지원
 Java 프로그램은 한번 작성되면 어느 플랫폼에서나 실행
가능
10
C++ , C#, BASIC 의 차이
 C++은 C언어를 확장하여 객체지향 프로그래밍 개념을
추가한 것.
 C#은 비주얼 언어가 가진 사용자 친화성, C++의 객체지
향성, 자바의 분산환경처리에 적합한 다중성 등을 모두
지니는 컴포넌트 기반의 소프트웨어 개발 패러다임을
반영함
 BASIC은 MS의 빌게이츠가 만들었던 교육용 언어
 VISUAL STUDIO : Visual C, C++, C#, BASIC 이 사용되는 툴
컴파일러 및 인터프리터
 컴파일러
소스 프로그램
 고급 언어로 작성된
코드를 동등한 의미
의 저급 언어로 된 코
드로 번역하는 소프
트웨어이다.
입력
인터프리터
출력
소스 프로그램
 인터프리터
 별개의 컴파일 단계
없이 한 번에 한 문장
씩 번역(혹은 해석)하
여 실행한다.
13
컴파일러
입력
목적
프로그램
출력
C 컴파일러
 컴파일러란?
 통역사(사람과 컴퓨터 사이의 통역 담당)
 C 프로그램을 컴퓨터가 수행할 수 있도록 번역해 주는 놈
 CPU는 C 프로그램을 모른다
 CPU는 이진코드 형태의 기계어(machine language)만 안다
C 프로그램
int main…
컴파일러
기계어
프로그램
010101…
 컴파일러 종류
 상용 컴파일러: Microsoft Visual C/C++, Borland C/C++
14
API / MFC
 API
- MS Windows에서 사용할 수 있는 프로그램을 만들기 위한 함
수의 라이브러리( printf와 같은 미리 정의된 함수의 집합)
- API에서 사용하는 함수들을 리눅스용 프로그램 제작시에는
사용하지 못한다
- API는 C언어를 기반으로 한 함수들로 이루어져 있다.
 MFC : MS의 Visual Studio만을 위한 API
- Visual C++ 을 이용하여 개발할때 사용
- API는 C언어 기반으로 만든 함수이기에 규모가 큰 프로그램
개발시에는 상당히 많은 시간과 노력이 들게 됨. Visual C++에
서 API 대신에 좀더 적은 노력으로 동일한 작업을 수행할 수
있도록 클래스 로 묶어 놓은 것
자료형이란 무엇인가?
 자료형(data type)
 프로그램에서 표현 혹은 저장하는 데이터의 종류 혹은 유형
 C 언어의 자료형
 C 언어는 크게 1개의 문자형, 3개의 정수형, 3개의 부동소수
형을 제공한다.
자료형
크기에 따라
문자형
char
정수형
short
int
long
부동소수형
float
double
long double
17
표 3.1 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 컴파일러의 예
우리가 사용하게 될 Visual Basic
 Microsoft Visual C++ 통합개발환경(IDE)
 프로젝트 구성 창
 편집 창
 메시지 창
20
오류의 종류 및 디버깅
 컴파일시간 오류(compile-time error)
 컴파일 과정에서 생긴 오류
 컴파일러는 프로그램의 구문, 데이터, 의미 없는 문장 등을 검사
 이런 경우 편집기로 돌아가서 오류를 수정한 후 다시 컴파일 해야 함
 논리 오류(logical error)
 성공적인 컴파일 후 프로그램을 실행하면서 잘못된 결과를 내는 경우
 원하는 결과를 내도록 프로그램 수정 후 다시 컴파일해서 실행해야 함
 실행시간 오류(run-time error)
 프로그램실행 중에 예상치 못한 이유로 비정상적으로
종료
오류를 알려준다.
 예: 어떤 값을 0으로 나누려고 하면 프로그램은 실행을 멈추고 종료
 좋은 프로그램은 실행시간 오류가 가능한 한 발생하지 않아야 함
 디버깅(debugging)
 프로그램의 결함을 찾고 수정하는 이러한 과정을 디버깅이라고 함
21
MSVC IDE: 프로젝트 만들기(1/5)
1. File  New
Projects 탭에서
Win32 Console Application 선택
2. Location 선택
3. 프로젝트 이름 입력
4. OK
5. Finish & OK
23
MSVC IDE: 프로젝트 만들기(2/5)
1. File  New
2. Location 선택
프로젝트를 저장할 폴더 선택
3. 프로젝트 이름 입력
4. OK
5. Finish & OK
24
MSVC IDE: 프로젝트 만들기(3/5)
1. File  New
2. Location 선택
3. 프로젝트 이름 입력
Hello
4. OK
5. Finish & OK
25
MSVC IDE: 프로젝트 만들기(4/5)
1. File  New
Win32 Console Application 선택
2. Location 선택
3. 프로젝트 이름 입력
4. OK
5. Finish
& OK
26
MSVC IDE: 프로젝트 만들기(5/5)

27
Hello 프로젝트가 생성된 화면
간단한 C 프로그램(hello.c)
실행결과:
Hello, World !
29
재미있으셨나요??
첫시간이라 좀 안드로메다 였나요??
……이 아니라 ^^
다음 이시간에는 뭘 하냐면요 …!!!!!!!!
To be continue…
 빌드와 디버깅
 hello.C 의 분석
 입/ 출력 함수
 자료형에 관한 세부사항