












































이번
장에서
학습핝
내용
.프로그램의
이해
.프로그래밍
언어
.알고리즘
.프로그램
개발
과정
프로그램을작성하기에앞서서중요한개념들을살펴봅니다..
컴퓨터란?
Q) 컴퓨터(computer) 는
무엇인가
?
A) 컴퓨터는
기본적으로
계산
(compute) 하는
기계
Q) 컴퓨터를
이용하여
데이터를
처리하려면
반드시
데이터가
숫자
형태이어야
한다
. 왜?
A) 컴퓨터는
숫자
계산을
하기
때문에
데이터는
숫자로
표시되어야
한다
.
컴퓨터의
정의
Q) 그렇다면
계산만
빠르게
할
수
있으면
컴퓨터인가
?
A) 현대적인
의미에서의
컴퓨터는
명령어들의
리스트에
따라
데이터를
처리하는
기계라고
할
수
있다
컴퓨터의
장.
Q) 컴퓨터의
가장
큰
장점은
무엇일까
?
A) 컴퓨터는
범용적인
기계이다
. 프로그램만
바꿔주면
다양한
작업이
가능하다
.
스마트폰도
컴퓨터의
일종
.
피처폰과
다르게
애플리케이션만
변경하면
다양한
용도로
사용
가능
컴퓨터의
구성
요소
Q) 컴퓨터의
구성
요소를
크게
2가지로
분류하면
?
A) 컴퓨터는
기본적으로
하드웨어와
소프트웨어로
구분
하드웨어와
소프트웨어의
분리
.
최초의
컴퓨터에서는
분리되지
않았음
.
1950년대에
폰노이만이
제시한
아이디어
.
프로그램읁
메모리에
저장
.
메모리에서
프로그램의
문장읁
꺼내와서
하나씩
실행
프로그램의
역핝
Q) 컴퓨터에서
프로그램이
하는
일은
무엇인가
?
A) 프로그램이란
우리가
하고자
하는
작업을
컴퓨터에게
전달하여
주는
역할을
한다
.
작업읁
지시하는
방법
Q) 컴퓨터에게
적당히
작업을
시킬
수
있을까
?
A) 상식이나
지능이
없기
때문에
아주
자세하고
구체적으로
일을
지시하여야
한다
.
프로그램
안에
들어있는
것
.
컴퓨터에게
무엇읁
어떻게
시킬
지를
기록해놓은
문서가
프로그램
(program)이다.
.
프로그램의
각
문장은
컴퓨터에게
작업읁
지시하는
명령
(instruction)
으로
되어
있다
.
이번
장에서
학습핝
내용
.프로그램의이해.프로그래밍언어.알고리즘.프로그램개발과정프로그램을작성하기에앞서서중요한개념들을살펴봅니다..
컴퓨터가
이해하는
언어
.
컴퓨터는
인간의
언어를
이해핝
수
없다
.
.
컴퓨터는
이진수로
됙
기계어만읁
이해한다
.
프로그래밍
언어의
역핝
프로그래밍
언어의
분류
.
기계어(machine language)
.
어셈블리어(assembly language)
.
고급
언어
(high-level language)
기계어어셈블리어고급언어인간
컴퓨터
컴퓨터에
이진수가
사용되는
이유
.
이진수는
전자회로로
구현하기가
쉽다
.
C
.
1970년대
초
AT&T 의
Dennis Ritchie 에
의하여
개발
.
B언어->C 언어
.
UNIX 운영
체제
개발에
필요해서
만들어짐
.
처음부터
전문가용
언어로
출발
Ken Thomson 과
Dennis
Ritchie 가
클린턴
대통령으로부터
National
Medal of Technology 상을
받는
장면
C언어의
버전
.
K&R C
.
1978년“
C Programming Language“
책
출간
.
비공식적인
명세서
역핝
.
ANSI C
.
1983년
ANSI(American National Standards Institute) 는
X3J11이
라는
위원회에
의한
표준
.
C99
.
1999년에
ISO에
의한
표준
.
C++에서
사용되는
특징
추가
.
아직
마이크로소프트는
지원하지
않음
(이유: C++ 에
집중
)
C언어의
특징
.
간결하다.
.
효율적이다.
.
C 언어는
하드웨어를
직.
제어하는
하는
저수준의
프로그래밍도
가능하고
고수준의
프로그래밍도
가능하다
.
.
C언어는
이식성이
뛰어나다
.
.
초보자가
배우기가
어렵다
.
C언어의
특징
C언어의
미래
Q) 앞으로도
C언어는
사용될
것인가
?
.
C언어는
C++ 와
JAVA, C#, Objective-C 의
공통적인
부분이다
.
.
엠베디드
시스템
: 엠베디드
시스템이란
특수
목적의
시스템으로
컴퓨터가
장치
엠베디드시스템에서는C언어가많이사용된다.
안에
MP3 플레이어,
스마트폰등이
여기에
속한다
.
이번
장에서
학습핝
내용
.프로그램의이해.프로그래밍언어.알고리즘.프로그램개발과정프로그램을작성하기에앞서서중요한개념들을살펴봅니다..
알고리즘
Q) 오븐의
사용법만
배우고
음식
재료만
있으면
누구나
요리가
가능한가
?
A) 요리법을
알아야
한다
.
.
프로그램이
요리와
같다면
앋
고리즘은
요리법에
해당한다
.
.
알고리즘(algorithm): 문제를
해결하는
절차
(방법)
빵읁
만드는
알고리즘
①
빈
그릇을
준비한다
.
②
이스트를
밀가루
, 우유에
넣고
저어준다
.
③
버터
, 설탕, 계란을
추가로
넣고
섞는다
.
④
따뜻한
곳에
놓아두어
발효시킨다
⑤
170~180 도의
오븐에서
굽는다
1부터
10까지의
합읁
구하는
알고리즘
알고리즘의
기술
.
순서도(flow chart): 프로그램에서의
논리
순서
또는
작업
순서를
그
림으로
표현하는
방법
알고리즘의
예
중간
점검
1. 친구에게
전화를
거는
알고리즘읁
만들어보라
.
2. 세탁기를
이용하여서
세탁읁
하는
알고리즘읁
만들어보라
.
이번
장에서
학습핝
내용
.프로그램의이해.프로그래밍언어.알고리즘.프로그램개발과정프로그램을작성하기에앞서서중요한개념들을살펴봅니다..
프로그램
작성
과정
프로그램
작성
단계
.
편집
(edit)
.
에디터를
이용하여
원하는
작업의
내용읁
기술하여
소스
코드
작성
.
소스
파읹
(source file): 소스
코드가
들어
있는
텍스트
파읹
.
(예) test.c
.
컴파읹
(compile)
.
소스
파읹
-> 기계어로
변환
.
오브젝트
파읹
(object file) : 기계어로
변환됙
파읹
.
(예) test.obj
.
링크(link)
.
오브젝트
파일들읁
라이브러리
파일들과
연결하여
하나의
실행
파읹
생
성
.
실행
파읹
(executable file): 실행이
가능한
파읹
.
(예) test.exe
Q & A
.
(Q)소스
파일과
오브젝트
파읹
, 실행
파읹
중에서
반드시
보관하여
야
하는
파일은
무엇일까
?
.
(A) 정답은
소스
파일이다
. 소스
파일만
있으면
컴파일러를
수행시
켜서
오브젝트
파읹
, 실행
파일은
만들
수
있다
. 하지만
소스
파일읁
삭제하면
컴파일이
불가능하다
.
통합
개발
환경
.
통합
개발
환경
(IDE: integrated development environment):
.
에디터
+ 컴파일러
+ 디버거
통합
개발
환경의
종류
.
비주얼
C++(Visual C++)
.
마이크로소프트사의
제품
.
윈도욪
기반의
거의
모든
형태의
응용
프로그램
제작
가능
.
우리가
사용핝
버전
: 비주얼
스튜디오
2008
.
http://www.microsoft.com/express/vc/
비주얼
C++ 의
실행
솔루션과
프로젝트
.
솔루션(solution); 하나의
애플리케이션읁
만들기
위한
프로젝트의
그룹.
.
프로젝트(project): 하나의
실행
파일읁
만들기
위하여
필요한
파읹
들의
그룹
프로젝트프로젝트프로젝트솔루션
소스
코드
입력
한글자도틀리면안됨!
우리가 작성한 프로그램
/* 첫번째프로그램*/
#include
int main(void)
{
printf("Hello World!");
return 0;
}
Hello World!
다음장에서자세히설명할것입니다.
가
작성한
프로그램
/* 첫번째프로그램*/
#include
int main(void)
{
printf("Hello World!");
return 0;
}
다음장에서자세히설명할것입니다.
Hello World!
중간
점검
1. 새로운
프로젝트를
생성하고
프로젝트에
소스
파일읁
추가하는
메뉴
는
무엇인가
?
2. 프로젝트에
속하는
소스
파일읁
컴파일하여
실행하는
메뉴는
무엇인
가?
3. C 언어에서는
대문자와
소문자를
구별하는가
?