c언어 및 실습 c language and...
TRANSCRIPT
Algorithm Algorithm
u-Cloud Computing Lab. Dongguk University
기초프로그래밍 실습 C Language and Practice
Chap. 1 : C 언어의 개요
동국대학교 멀티미디어공학과 Young-Sik Jeong
Algorithm Algorithm
u-Cloud Computing Lab. Dongguk University u-Cloud Computing Lab. Dongguk University
2
참고 도서
쉽게 풀어 쓴 C 언어 Express, 생능출판사, 천인국저
• 초보자를 위한 C언어 300제, 정보문화사, 김은철 저
Algorithm Algorithm
u-Cloud Computing Lab. Dongguk University u-Cloud Computing Lab. Dongguk University
3
참고 도서
C 기초 플러스, 성안당, Stephen Prata 저, 김권식 역
• C Programming with a Workbook, 이한출판사, 김경창 저
Algorithm Algorithm
u-Cloud Computing Lab. Dongguk University u-Cloud Computing Lab. Dongguk University
4
이기종 컴퓨터 간의 호환성을 가질 수 있을 정도의 고급언어이면서, 기능면에서 어셈블리 언어처럼 컴퓨터의 하드웨어 기능까지 제어할 수 있는 새로운 프로그래밍 언어가 필요함
1972년 벨(Bell) 연구소의 Dennis Ritch에 의해 개발
UNIX 운영체제의 구현을 위해서 사용
유래 : ALGOL 60 CPL BCPL B C
C언어의 역사
Algorithm Algorithm
u-Cloud Computing Lab. Dongguk University u-Cloud Computing Lab. Dongguk University
5
고급 언어 및 저급언어로서 시스템 프로그래밍도 가능 중급언어 저급언어 : 컴퓨터가 실행하는 실제의 명령(기호형태)을 다룸
• 어셈블리 언어(Assembly Language)
고급언어 : 여러 가지 제어구조와 I/O명령문 등을 제공(프로그래밍이 쉽고 빠르다>)
• Pascal, Delphi. Visual Basic, Java
함수(function)의 집합으로 구성되어 구조적 프로그램에 적합함 다양한 자료구조의 표현에 적합함. 다른 시스템으로의 이식성 좋음. 입.출력 문장이 따로 존재하지 않음(library이용).
C언어의 특징
Algorithm Algorithm
u-Cloud Computing Lab. Dongguk University u-Cloud Computing Lab. Dongguk University
6
C언어의 구조
구조적 프로그래밍
큰 규모의 프로그램은 일관성을 갖는 기능에 따라 여러 개의 작은 단위프로그램으로 나누어 작성하는 것이 프로그램의 개발 및 관리 그리고 프로그램에 대한 이해를 쉽게 해줌
프로그램의 처리는 하나의 주(main) 프로그램이 필요한 시점에서 기능별(Functional) 단위 프로그램들을 호출하여 원하는 처리를 하는 방법으로 진행
구조적 프로그래밍(structured programming)은 순서구조, 조건구조 및 반복구조 만으로 프로그램을 작성
C언어의 구조
Algorithm Algorithm
u-Cloud Computing Lab. Dongguk University u-Cloud Computing Lab. Dongguk University
7
C프로그램의 구조
C언어의 구조
선행처리기 명령
전역 데이터 부분
main( )
함수 a( )
함수 b( )
명령문
명령문
명령문
프로그램이 컴파일되기 전에 프로그램에 일련의 작업을 지시 (include, define 등)
모든 함수에서 전역적으로 사용하는 변수들을 선언
가장 먼저 호출되는 함수
C의 구성 블록을 이루는 함수
명령문의 다섯가지 유형
선언 대입 함수 제어 Null
Algorithm Algorithm
u-Cloud Computing Lab. Dongguk University u-Cloud Computing Lab. Dongguk University
8
C언어의 구조
#include <stdio.h> #define BOOL int #define TRUE 1 #define FALSE 0 BOOL whitesp(char c); main() { int ch; int count =0; while( ( ch = getchar() ) != EOF ) if( whitesp(ch) ) count++; printf("There are %d whitespace character.\n", count); } BOOL whitesp(char c) { if( c==' ' || c=='\n' || c== '\t' ) return(TRUE); else return(FALSE); }
header [초기 전역 선언부 ]
전역 선언부
main 함수 시작
내부 변수선언
처리부
main 함수 끝
사용자 정의함수 시작
사용자 정의 함수 whitesp() 끝
main() 함수본체
whitesp() 함수본체
Algorithm Algorithm
u-Cloud Computing Lab. Dongguk University u-Cloud Computing Lab. Dongguk University
9
C언어의 구조
printf() 여러 가지 형식화된 내용을 표준출력(stdout, 화면) 으로 출력하는 함수
• printf() 함수의 일반 형식
• 변환문자
형 식 : printf(“형식 문자열”, 인수) 하는일 : 인수의 값을 화면에 원하는 형식으로 출력 형식 문자열 : 단순문자, 변환(서식)문자, escape문자로 구성 인 자 : 변환(서식)문자로 변환할 변수 예 : printf(" %d\n %f\n %e\n %c\n", a, b, c, d);
변환(서식)문자 의 미 변환(서식)문자 의 미
%d 부호있는 10진수 정수 %e or %E 부동 소수점형 E 또는 e표기법
%o
부호없는 8진수 정수
%g or %G
f 또는 e중에서 짧은 형태를 선택
%x or %X
부호없는 16진수 정수
%c
1개 문자 출력
%f
부동 소수점형 소수점 형태
%s
문자열
Algorithm Algorithm
u-Cloud Computing Lab. Dongguk University u-Cloud Computing Lab. Dongguk University
10
실행 파일 컴파일, 링킹 과정을 통해 생성 운영체제의 로더(loader)가 메모리에 적재 하나의 프로세스 주소 공간을 갖음
• 스택(Stack) 세그먼트 • 힙(Heap) • 데이터 세그먼트 • 텍스트
CPU가 해당 메모리 주소 공간을 읽고 수행함
프로그램의 구동
실행 가능 파일 (executable file) 로 더
세그먼트
코드
하위 메모리 구조
상위 메모리 구조
Stack
Heap
가변크기
고정크기
[ C 프로그램의 수행을 위한 메모리 구조 ]
Algorithm Algorithm
u-Cloud Computing Lab. Dongguk University u-Cloud Computing Lab. Dongguk University
11
코드 에디터 프로그램을 작성하는 과정에서 사용하는 편집기
단축키, 실행취소/재실행, 매크로, 맞춤법 검사 외에 각 에디터마다 특징이 있음
Emacs, Ultra Editor, Eclipse, Crimson Editor
통합개발환경 (Integrated Development Environment) 컴퓨터를 이용하여 Application을 개발하는 과정에서 에디터, 컴파일러, 어셈블러, 링크, 디버그 등의 각각의 단계가 모두 하나의 프로그램 안에 통합되어 있는 것
예) 터보C, Boland C, Delphi, Visual Studio, etc.
프로그램 개발환경
Algorithm Algorithm
u-Cloud Computing Lab. Dongguk University u-Cloud Computing Lab. Dongguk University
12
Visual Studio 2010 초기화면
프로그램 개발환경 사용법
[ 2010 ]
Algorithm Algorithm
u-Cloud Computing Lab. Dongguk University u-Cloud Computing Lab. Dongguk University
13
Visual Studio 2010 프로그램 개발을 위해 Project 생성
프로그램 개발환경 사용법
1. 파일 - 새로 만들기 – 프로젝트 선택
2. 대표 언어가 C++이 아닐 경우“다른 언어”선택
3. Win32 콘솔 응용 프로그램 선택
4. 이름과 솔루션 이름에 폴더로 지정될 이름 지정
5. 확인
Algorithm Algorithm
u-Cloud Computing Lab. Dongguk University u-Cloud Computing Lab. Dongguk University
14
Visual Studio 2010 프로그램 개발을 위해 Project 생성
프로그램 개발환경 사용법
1. 파일 - 새로 만들기 – 프로젝트 선택
2. 대표 언어가 C++이 아닐 경우 “다른 언어”선택
3. Win32 콘솔 응용 프로그램 선택
4. 이름과 솔루션 이름에 폴더로 지정될 이름 지정
5. 확인
Algorithm Algorithm
u-Cloud Computing Lab. Dongguk University u-Cloud Computing Lab. Dongguk University
15
Visual Studio 2010 프로그램 개발을 위해 Project 생성
프로그램 개발환경 사용법
1. 파일 - 새로 만들기 – 프로젝트 선택
2. 대표 언어가 C++이 아닐 경우“다른 언어”선택
3. Win32 콘솔 응용 프로그램 선택
4. 이름과 솔루션 이름에 폴더로 지정될 이름 지정
5. 확인
Algorithm Algorithm
u-Cloud Computing Lab. Dongguk University u-Cloud Computing Lab. Dongguk University
16
Visual Studio 2010 프로그램 개발을 위해 Project 생성
프로그램 개발환경 사용법
1. 파일 - 새로 만들기 – 프로젝트 선택
2. 대표 언어가 C++이 아닐 경우 “다른 언어”선택
3. Win32 콘솔 응용 프로그램 선택
4. 이름과 솔루션 이름에 폴더로 지정될 이름 지정
5. 확인
Algorithm Algorithm
u-Cloud Computing Lab. Dongguk University u-Cloud Computing Lab. Dongguk University
17
Visual Studio 2010 프로그램 개발을 위해 Project 생성
프로그램 개발환경 사용법
1. 파일 - 새로 만들기 – 프로젝트 선택
2. 대표 언어가 C++이 아닐 경우 “다른 언어”선택
3. Win32 콘솔 응용 프로그램 선택
4. 이름과 솔루션 이름에 폴더로 지정될 이름 지정
5. 확인
Algorithm Algorithm
u-Cloud Computing Lab. Dongguk University u-Cloud Computing Lab. Dongguk University
18
Visual Studio 2010 프로그램 개발을 위해 Project 생성
프로그램 개발환경 사용법
1. 파일 - 새로 만들기 – 프로젝트 선택
2. 대표 언어가 C++이 아닐 경우 “다른 언어”선택
3. Win32 콘솔 응용 프로그램 선택
4. 이름과 솔루션 이름에 폴더로 지정될 이름 지정
5. 확인
Algorithm Algorithm
u-Cloud Computing Lab. Dongguk University u-Cloud Computing Lab. Dongguk University
19
Visual Studio 2010 프로젝트 생성단계
프로그램 개발환경 사용법
Algorithm Algorithm
u-Cloud Computing Lab. Dongguk University u-Cloud Computing Lab. Dongguk University
20
Visual Studio 2010 프로젝트 생성단계
프로그램 개발환경 사용법
Algorithm Algorithm
u-Cloud Computing Lab. Dongguk University u-Cloud Computing Lab. Dongguk University
21
Visual Studio 2010 프로그램 개발을 위해 소스파일 생성
프로그램 개발환경 사용법
① ‘소스 파일’ 항목에 마우스 오른쪽 버튼 클릭 - 추가 – 새 항목 선택 ② ‘C++ 파일 (.cpp)’ 항목 선택 ③ File 이름 지정 - 반드시 확장자 명을 .c 로 지정 ⑤ 추가 클릭
Algorithm Algorithm
u-Cloud Computing Lab. Dongguk University u-Cloud Computing Lab. Dongguk University
22
Visual Studio 2010 프로그램 개발을 위해 소스파일 생성
프로그램 개발환경 사용법
① ‘소스 파일’ 항목에 마우스 오른쪽 버튼 클릭 - 추가 – 새 항목 선택 ② ‘C++ 파일 (.cpp)’ 항목 선택 ③ File 이름 지정 - 반드시 확장자 명을 .c 로 지정 ⑤ 추가 클릭
Algorithm Algorithm
u-Cloud Computing Lab. Dongguk University u-Cloud Computing Lab. Dongguk University
23
Visual Studio 2010 프로그램 개발을 위해 소스파일 생성
프로그램 개발환경 사용법
① ‘소스 파일’ 항목에 마우스 오른쪽 버튼 클릭 - 추가 – 새 항목 선택 ② ‘C++ 파일 (.cpp)’ 항목 선택 ③ File 이름 지정 - 반드시 확장자 명을 .c 로 지정 ⑤ 추가 클릭
Algorithm Algorithm
u-Cloud Computing Lab. Dongguk University u-Cloud Computing Lab. Dongguk University
24
Visual Studio 2010 프로그램 개발을 위해 소스파일 생성
프로그램 개발환경 사용법
① ‘소스 파일’ 항목에 마우스 오른쪽 버튼 클릭 - 추가 – 새 항목 선택 ② ‘C++ 파일 (.cpp)’ 항목 선택 ③ File 이름 지정 - 반드시 확장자 명을 .c 로 지정 ⑤ 추가 클릭
Algorithm Algorithm
u-Cloud Computing Lab. Dongguk University u-Cloud Computing Lab. Dongguk University
25
Visual Studio 2010
프로그램 개발환경 사용법
Editor영역
Output 구역
Project Workspace 구역
Algorithm Algorithm
u-Cloud Computing Lab. Dongguk University u-Cloud Computing Lab. Dongguk University
26
Visual Studio 2010 프로젝트 관리
• 워크스페이스(dsw(=Solution)) – 프로젝트를 관리하는 작업공간. – 일반적으로 하나의 워크스페이스는 하나의 프로젝트를 관리하지만, 하나의 워크스페이스가 동시에 여러 프로젝트를 관리하는 것도 가능함.
– 프로젝트(dsp) – 프로그램을 작성하는 기본 단위
프로그램 개발환경 사용법
Algorithm Algorithm
u-Cloud Computing Lab. Dongguk University u-Cloud Computing Lab. Dongguk University
27
Visual Studio 2010 프로젝트 개요
• Visual C++이 지원하는 프로젝트 유형
프로그램 개발환경 사용법
응용프로그램, 동적 라이브러리. Win32 콘솔 응용 프로그램 – Win32 콘솔 응용 프
로그램을 만드는 프로젝트 MFC 응용 프로그램 – MFC 라이브러리를 사용하는
응용 프로그램을 만드는 프로젝트 Win32 프로젝트 – Win32 응용 프로그램, 콘솔 응
용 프로그램, DLL 또는 정적 라이브러리를 만드는 프로젝트
빈 프로젝트 – 로컬 응용 프로그램을 만드는 빈 프로젝트
ATL 프로젝트 – ATL(Active Template Library)을 사용하는 프로젝트
MFC DLL - MFC 라이브러리를 사용하는 동적 연결 라이브러리를 만드는 프로젝트
Windows Forms 응용 프로그램 – Windows 사용자 인터페이스를 사용하여 응용 프로그램을 만드는 프로젝트
Algorithm Algorithm
u-Cloud Computing Lab. Dongguk University u-Cloud Computing Lab. Dongguk University
28
Visual Studio 2010 프로젝트 개요
• Visual C++이 지원하는 프로젝트 유형
프로그램 개발환경 사용법
응용프로그램, 동적 라이브러리. CLR 콘솔 응용 프로그램 – 콘솔 응용 프로그램을
만드는 프로젝트 CLR 빈 프로젝트 – 로컬 응용 프로그램을 만드는
빈 프로젝트 MFC ActiveX 컨트롤 – MFC 라이브러리를 사용하
는 ActiveX 컨트롤을 만드는 프로젝트 Windows Forms 컨트롤 라이브러리 – Windows 응
용 프로그램에서 사용할 컨트롤을 만드는 프로젝트 메이크파일 프로젝트 – 외부 빌드 시스템을 사용하
는 프로젝트 사용자 지정 마법사 – 사용자 지정 응용 프로그램
을 만드는 프로젝트 클래스 라이브러리 – 다른 응용 프로그램에서 사용
할 클래스를 만드는 프로젝트 테스트 프로젝트 – 테스트를 포함하는 프로젝트
.NET Framework 4.0
Algorithm Algorithm
u-Cloud Computing Lab. Dongguk University u-Cloud Computing Lab. Dongguk University
29
Visual Studio 2010 소스파일의 작성
• 자동 색입히기 – Visual C++는 사용된 용어의 쓰임에 따라 서로 다른 색을 자동으로 사용 – 일반적으로 주석은 녹색으로, 키워드는 파랑으로, 텍스트는 검정으로 표현 – 범주에 따라 색을 지정하려면 도구 옵션 을 선택 후 환경 글꼴 및 색 지정
프로그램 개발환경 사용법
Algorithm Algorithm
u-Cloud Computing Lab. Dongguk University u-Cloud Computing Lab. Dongguk University
30
Visual Studio 2010 소스파일의 작성
• 자동 문장 완성하기 – Visual C++은 소스 입력을 도와주기 위해 ‘IntelliSense’로 알려진 자동 문장 완성 기능을 가짐
– 다음과 같은 4가지 방법으로 도와줌 멤버나열 형 정보 인자 정보 단어 완성
– IntelliSense
프로그램 개발환경 사용법
Algorithm Algorithm
u-Cloud Computing Lab. Dongguk University u-Cloud Computing Lab. Dongguk University
31
Visual Studio 2010 개발 명령
• 컴파일(빌드 컴파일) - 소스파일을 기계어로 번역하여 오브젝트 파일 생성
• 리빌드(빌드 솔루션 다시 빌드 / <프로젝트명> 다시 빌드) – 프로젝트 내의 모든 파일을 컴파일/링크를 통해 실행파일을 만듦
• 일괄처리(빌드 일괄 빌드) – Win32 Debug 모드와 Win32 Release 모드를 위한 작업을 한번에 수행함.
• 한 단계씩 코드 실행 – 끝 문자(;) 단위로 코드 순차 실행
• 프로시저 단위 실행 – 모듈(함수) 단위로 코드 순차 실행
• 중단점 설정/해제 – 디버그 시 중단점 설정/해제
프로그램 개발환경 사용법
Algorithm Algorithm
u-Cloud Computing Lab. Dongguk University u-Cloud Computing Lab. Dongguk University
32
Visual Studio 2010 개발 모드(빌드 -> 구성 관리자)
• Win32 Debug – 디버깅 정보를 포함하는 실행파일을 만듦. • Win32 Release – 디버깅 정보를 포함하지 않는 실행파일을 만듦. • “빌드” 메뉴의 “구성 관리자” 선택
프로그램 개발환경 사용법
Algorithm Algorithm
u-Cloud Computing Lab. Dongguk University u-Cloud Computing Lab. Dongguk University
33
Visual Studio 2010 표준 출력함수를 사용하여 화면에 “Hello. Happy to Meet U”를 출력하는 프로그램을 작성
프로그램 개발환경 사용법
1. 프로그램 코딩
Algorithm Algorithm
u-Cloud Computing Lab. Dongguk University u-Cloud Computing Lab. Dongguk University
34
Visual Studio 2010
프로그램 개발환경 사용법
1. [빌드] – 컴파일 (Ctrl+F7)을 Click
2. 컴파일 한 후,
3. Error가 없으면, 빌드 (F7) Click
Algorithm Algorithm
u-Cloud Computing Lab. Dongguk University u-Cloud Computing Lab. Dongguk University
35
Visual Studio 2010 실행 결과
프로그램 개발환경 사용법
1. 디버그 – 디버깅 하지 않고 시작 (Ctrl+F5)을 Click
Algorithm Algorithm
u-Cloud Computing Lab. Dongguk University u-Cloud Computing Lab. Dongguk University
36
Q & A