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