C 언어 기초 1 위덕대학교 에너지전기공학부 이 수 형 2009년 1학기
과목 개요 교과목명 : C언어 기초 1 대상 : 에너지전기공학부 1학년 구분 : 학부 기초 담당교수 : 이 수 형 soohyong@uu.ac.kr 054-760-1664, 016-521-3227 갈마관 405호
과목 개요 (계속) 수업 목표 세계적으로 가장 많이 사용하고 있는 프로그래밍 언어인 C언어를 익힘으로써 프로그래밍의 기초를 다진다. 모든 공학분야에 필수적인 프로그래밍 능력의 기초를 다짐으로써 C 언어의 활용 능력을 배양하며 다른 프로그래밍 언어를 익히는 것에 도움이 되는 것을 목표로 한다. 수업개요 실습을 병행하여 C 언어를 이용한 프로그램 개발 방법 및 프로그래밍 기술의 기초를 익힌다. 컴퓨터가 프로그램을 수행하는 기본적인 구조 및 원리를 익히며 프로그래밍 언어가 하는 역할에 대하여 이해한다. 이 후 간단한 예제들을 통해서 C 언어의 이해와 프로그램을 작성하는 방법을 익힘으로써 문제해결 능력을 배양하여 실무에 적용할 수 있도록 한다.
과목 개요 (계속) 수업 진행방법 교재 및 참고문헌, 추천도서 성적평가 방법 및 기준 실기 위주의 수업을 진행한다. 학생들이 스스로 프로그램을 작성하고 수행되는 결과가 나오는 과정을 생각해 봄으로써 프로그램이 수행되는 원리를 이해할 수 있도록 유도한다. 교재 및 참고문헌, 추천도서 교재 : 개념을 콕콕 잡아주는 C 프로그래밍, 천정아 지음, 이한출판사, 2009년 참고도서 : 열혈강의 C 프로그래밍, 윤성우 지음, 이한디지털리, 2003년 성적평가 방법 및 기준 중간고사 (25%), 기말고사 (25%), 과제물 (20%), 실기시험 (20%), 출석 (10%)
1장. C 언어 개요
학습 목표 프로그래밍의 기본 개념을 알아보고, 프로그래밍 언어에 대해 생각해본다. C 언어의 특징 및 활용 분야에 대해 알아본다. 일반적인 C 프로그램 개발 과정에 대해 알아본다. Visual C++ 6.0을 이용한 C 프로그램 개발 과정에 대해 알아본다.
목차 C 언어 소개 C 프로그램 개발 프로그래밍 언어란? C 언어의 특징 일반적인 C 프로그램의 개발 과정 Visual C++ 6.0을 이용한 C 프로그램 개발 과정 그 밖의 C 컴파일러
프로그래밍 언어란? (1/2) 프로그래밍 언어란 사람과 컴퓨터 사이에 존재하는 일종의 커뮤니케이션 수단이다.
프로그래밍 언어란? (2/2) 사람이 기계어로 프로그램을 작성하는 대신 어셈블리어나 고급 언어를 이용해서 프로그램을 작성하고, 어셈블러나 컴파일러를 이용해서 기계어로 번역한다. 고급 언어의 장점 특정 CPU의 동작에 대하여 자세히 알 필요가 없다. CPU에 대하여 독립적인 프로그램을 작성할 수 있다. 프로그램을 개발하기 쉽고, 유지 보수하기 쉽다.
C 언어의 특징 (1/2) C 언어는 1972년에 데니스 리치와 켄 톰슨에 의해서 처음 만들어졌다. C 언어의 장점 구문이 간결하고, 프로그램 개발에 꼭 필요한 핵심적인 기능들을 제공한다. 간결성 어셈블리어 수준의 로-레벨 지원 기능을 제공하면서도 기계-독립적인프로그램을 개발할 수 있다. 이식성 C로 만든 프로그램은 프로그램 크기도 작고, 프로그램의 실행 속도도 빠르다. 효율성 C 언어의 단점 배우기도 어렵고, 사용하기도 어렵다. 다른 언어에 비해 사용 시 주의 사항이 많다.
C 언어의 특징 (2/2) C 언어가 많이 사용되는 이유 C 언어의 활용 분야 C를 배우면 C++, java, C#같은 언어를 이해하는데도 도움이 된다. C 언어는 프로그래밍의 기본 개념을 이해하는데도 도움이 된다. C 언어의 활용 분야 라이브러리나 응용 프로그램 개발 시스템 프로그램, 서버 어플리케이션, 게임 등의 성능 위주의 프로그램 개발 임베디드 프로그램 개발
일반적인 C 프로그램 개발 과정 1단계 : 프로그램의 소스 코드 작성 2단계 : 전처리기 3단계 : 컴파일 및 링크 소스 코드 편집기 이용 2단계 : 전처리기 3단계 : 컴파일 및 링크 컴파일러와 링커 이용 컴파일러는 .c 확장자를 갖는 소스 코드를 컴파일해서 .obj(또는 .o) 확장자를 갖는 오브젝트 코드를 생성한다. 링커는 오브젝트 코드를 연결해서 실행 파일을 생성한다. 4단계 : 실행 5단계 : 디버깅
C/C++ 컴파일러 대부분 C++ 컴파일러가 C 컴파일러 역할을 동시에 제공한다. C/C++ 컴파일러 C/C++ 컴파일러는 소스 파일의 확장자가 .c일 때는 C 컴파일을 수행하고, .cpp일 때는 C++ 컴파일을 수행한다.
C/C++ 컴파일러 Visual C++ Visual C++의 프로젝트 윈도 플랫폼에서 가장 많이 사용되는 C 개발 환경 Visual C++ 6.0과 Visual Studio.NET 버전이 있다. Visual C++의 프로젝트 프로그램을 만들기 위해서 사용되는 소스 파일이나 헤더 파일에 대한 정보, 소스 파일을 컴파일할 때 사용되는 컴파일 옵션, 오브젝트 파일이나 라이브러리를 링크할 때 사용되는 링크 옵션 등의 정보 포함 Visual C++에서는 프로젝트를 먼저 생성하고 프로젝트 내에서 사용될 소스 파일을 생성하는 방식으로 프로그램을 개발한다. 14
VC++6.0을 이용한 C 프로그램 개발 (2/8) 1단계 : 프로젝트 생성 2단계 : 소스 파일 생성 3단계 : 소스 파일 작성 4단계 : 빌드 전처리기 처리 후 컴파일 및 링크 수행 5단계 : 실행 6단계 : 디버깅
VC++6.0을 이용한 C 프로그램 개발 (3/8) 1단계 : 프로젝트 생성 ◈ 워크스페이스 - 서로 관련된 프로젝트를 하나로 묶어서 관리 - 디폴트로 모든 프로젝트는 하나의 워크스페이스에 속한다.
VC++6.0을 이용한 C 프로그램 개발 (4/8) 2단계 : 소스 파일 생성 ※ Visual C++을 C 컴파일러로 사용하려면 반드시 소스 파일의 확장자로 .c를 지정해야 한다
VC++6.0을 이용한 C 프로그램 개발 (5/8) 3단계 : 소스 파일 작성
VC++6.0을 이용한 C 프로그램 개발 (6/8) 4단계 : 빌드
VC++6.0을 이용한 C 프로그램 개발 (7/8) 5단계 : 실행
VC++6.0을 이용한 C 프로그램 개발 (8/8) 6단계 : 디버깅
프로젝트 폴더의 파일 구조 프로젝트 파일의 위치 : C:\WORK\프로젝트이름 예] 프로젝트 이름 : EX1 저장된 파일 및 폴더 EX1.dsw : 워크스페이스 파일 EX1.dsp : 프로젝트 파일 EX1.c : 소스 파일 EX1.ncb : 임시 파일 (불필요) EX1.plg : 임시 파일 (불필요) Debug 폴더 (또는 Release 폴더) EX1.exe : 실행 파일 (최종 컴파일 결과) EX1.ilk EX1.obj : 목적 파일 (EX1.c의 컴파일 결과) EX1.pch 및 기타
프로젝트 파일의 저장 및 보관 다른 곳에서 컴파일하기 위한 저장 필요한 파일만 압축하여 저장 (꼭 압축할 필요는 없다) 필수 파일 프로젝트 파일 : *.dsw, *.dsp 소스 파일 : *.c 및 *.h 예: 프로젝트 이름이 EX1인 경우 EX1.dsw : 워크스페이스 파일 EX1.dsp : 프로젝트 파일 EX1.c : 소스 파일 다른 곳으로 복사/보관에는 압축이 편리. Alzip 등으로 압축 폴더를 통째로 압축/저장하여도 되나 각 폴더당 1M 바이트가 넘음.
그 밖의 C 컴파일러 (1/2) 그 밖의 C/C++ 컴파일러 Visual Studio.NET (Microsoft) C++ Builder (Borland) Visual Studio 2005 express 또는 Visual Studio 2008 express version (무료) Gcc (GNU C Compiler) Dev―C++ (gcc 포함) Code::Block (gcc 포함) …
학습 정리 (1/2) 프로그래밍 언어 C 언어의 특징 사람과 컴퓨터 사이에 존재하는 일종의 커뮤니케이션 수단이다. 사람은 기계어나 어셈블리어 대신 고급 언어를 이용해서 프로그램을 작성하고, 컴파일러가 이 프로그램을 기계어로 번역한다. C, C++, java, C#과 같은 고급 언어를 이용하면 프로그램을 개발하기도 쉽고, 유지 보수하기도 쉬워진다. C 언어의 특징 C 언어는 1972년에 데니스 리치(Dennis Ritchie)와 켄 톰슨(Ken Thomson)에 의해서 처음 만들어졌다. C 언어의 특징은 간결성, 이식성, 효율성이다. C 언어는 배우기나 사용하기는 어렵지만 프로그래머에게 최대한의 자유를 보장한다.
학습 정리 (2/2) C 프로그램 개발 일반적인 C 프로그램의 개발 과정 Visual C++을 이용한 C 프로그램 개발 과정