• 검색 결과가 없습니다.

제 1 장 C 언어의 개요

N/A
N/A
Protected

Academic year: 2021

Share "제 1 장 C 언어의 개요"

Copied!
20
0
0

로드 중.... (전체 텍스트 보기)

전체 글

(1)

제 1 장 C 언어의 개요

Google 공동 창업자 , 래리 페이지와 세르게이 브린

(2)

목 차

 제 0 장 . 선행학습

 C 언어의 역사

 C 언어의 특징

 C 언어 컴파일러

 C 프로그램 구조

(3)

선행학습

-1

Terminologies

1. 프로그램 (program) 정의 : set of sequence instructions

▷ 함수 (function) 정의 : like Program

▷ 기타 : routine, module, package, (program) 등의 의미

▷ 프로그램과 함수의 차이점 비교 .

▷ script 언어 , visual 언어의 특징과 해당 제품 조사 . 2. instruction( 명령어 ) 과 command( 코맨드 ) 차이 이해

3. 매개변수 (parameter, argument) 와 변수 ( 變數 , variable) 의 의미와 사용사례 조사

① 형식 매개변수 (formal parameter) : called program ② 실 매개변수 (actual parameter) : calling program

(4)

선행학습

-2

5. 폰 노이만 (Von Neumann) 의 저장 프로그 램구조 ( 방법

)(stored program

architecture (method))

란 ?

- stored program architecture - Serial Processing( 직렬처리 )

- stored Program method( 저장 프로그램 방식 )

6. 레코드지향 개념 (Record-oriented Concepts) 과 객체지향 개념 (Object- oriented Concepts) 비교 조사하기

[ 개념 ]- variable( 변수 ), data type, parameter

- program, routine, software, module, cluster, macro, micro- program

- system(H/W, S/W, firm-ware[F/W])

(5)

선행학습

-3

4. 언어 변환기 (language translator)

:

비교 조사 및 이해하기

① 컴파일러 (compiler) : HLL ⇒ object program ⇒ LLL

② 해석기 (interpreter) : HLL ⇒ not OM ⇒ HLL

③ 어셈블러 (assembler): assembly 어 ⇒ OM ⇒ LLL(ML)

④ pre-processor( 전 - 처리기 ) : HLL ⇒ HLL : C 언어

⑤ pre-compiler : HLL ⇒ HLL : Fortran-77

cf. object program = OM(object module),

HLL(high level lang.) LLL(low level lang.),

ML(machine lang. /code)

(6)

선행학습

-4

부 - 프로그램 (sub-program)

 ⓞ why subprogram?( 필요성 )

 - frequency used routine.( 고 빈도 )

 - frequency modified routine.( 수정 빈 도 )

 ① 개방 부프로그램 (open subprogram)

- 매크로 (macro) 프로그램 : 확장

(expansion)

 ② 폐쇄 부프로그램 (closed subprogram)

 - 일반 부프로그램 (sub-routine 포함 ) :

control 이동

(7)

선행학습

-5

1. macro Processing 2. subprogram processsing

Program

call macro

end

macro

end

Program

call Sub-P

end

Sub-P

return

(8)

선행학습

-6

프로그램 기술 (description) 방법 : 제어구조 (4 장 ) 참조

[1] 종래의 방법 ( 초기방법 )

- 비구조화 방법 (un-structuring method)

- program : like "

art

'

[2] 현대 방법

- 구조화 기법 (structured techniques)

- Dijkstra 원칙 : “ 프로그램의 질 ( 質 ) 은 GOTO 문의 사용 빈도에 반비례한다” ,<‘61>

- program : "science( 科學 )"

[3] 프로그램 제어구조 (control structure)

① 순차구조 (sequence structure)

- 단순 구조 (simple structure)

처리1

처리2

처리n

(9)

선행학습

-7

 ② 선택구조 (selective structure)

- 의사결정 구조

 ③ 반복구조 (iterative structure)

ⓐ 사후평가 구조 ⓑ 사전평가 구조

(post-evaluation structure) (pre-evaluation structure)

- 최소 1 회 회전 - X

처리1

처리2 처리3 처리n 조건?

처리1

처리n

조건?

처리1

조건? 처리2

처리n

(10)

C 언어의 역사

P15

Algol60(Algorithmic Language, 1960)

CPL(Combined Programming Language, 1963)

↓ Cambridge & London 대학

BCPL(basic CPL) (1967)

↓ Martin Richards(London 대학 )

B (1970)

↓ Ken Thomson(Bell 연구소 )

C

(1972)

↓ Dennis Ritchie(Bell 연구소 )

☞ C++(1980) : Bjarne Stroustrup(Bell 연구소 )

☞ Java

ANSI C(1989) (ANSI Committee)

ANSI/ISO C(1990) (ISO Committee)

(11)

C 언어의 특징

범용 프로그램 언어 : 고수준 언어 (HLL)

호환성 (portable) 이 강한 언어 : 이식성 (Portability)

컴파일러 언어 : 구조화 프로그래밍언어 (Structured )

모듈화 언어 (modularity)

고급 언어 / 중급언어 / 저급언어

다양한 내장 함수연산자 (operator)

변수 적용범위 설정 가능 : storage class

자료 주소 직접 사용 : 포인터 ⇒ 중간언어적 성격

현대적인 제어 구조 제공 : 프로그램 개발 도구

간결한 (terse) 언어 - 풍부한 연산자 제공

전처리기 (preprocessor) 의 기능 지원

입출력 기능 무 : 함수 < 함수 정의형 프로그램 >

(12)

C 언어 컴파일러

(1) P16

 컴파일러

(13)

C 언어 컴파일러

(2)

 다양한 C 언어 컴파일러

터보 C++3.1

Borland 사에서 제공하는 컴파일러

(14)

C 언어 컴파일러

(3)

 다양한 C 언어 컴파일러

Visual C++6.0

MS 사에서 배포하는 Windows 전용 유료 컴파일러

Visual C++ 6.0 기본 구성 화면

(15)

C 언어 컴파일러

(4)

 다양한 C 언어 컴파일러

Visual C++6.0

(16)

C 언어 컴파일러

(5)

 다양한 C 언어 컴파일러

GCC

GNU 프로젝트에서 제공하는 컴파일러

주로 UNIX 와 LINUX OS 에서 사용

(17)

C 프로그램의 구조

(1) P29

[ 기본 구조 ]

# 헤더 (header) // 선행처리기 (pre-processor)명령어

void main() { /* 함수 명 ( 메인 함수

) */

/* 함수 ( 프로그램 ) 의 시작 */

... /* 함수 ( 프로그램 ) 의

... 몸체 (body, 내용 ) */

a() ... 또 다른 함수

n() ...

} /* 함수의 종료 */

(18)

C 프로그램의 구조

(2)

주석문 (Comments)

프로그램의 작성과 운영에 관한 정보를 기입 .

/* 내용 */

// 이 후 주석

○ 프로그램의 문서화에 도움을 주는 기능 (Documentation).

○ 주석문의 사용은 프로그램의 독해성 (readability) 을 높여 주며 , 결국엔 프로그램의 사후 유지보수에 필요한 주요 정보를 제공 .

○ 주석문은 중요한 기능에 비하여 컴파일은 되지 않음 .

(19)

C 프로그램의 구조

(3)

 기본 입출력 함수와 제어문자

출력함수 : printf()

기본형식 : printf(“ 제어문”, arg1, arg2, ... );

( 예 ) printf("%d + %d = %d/n", a, b, c);

제어문자 (P32)

제어문자 의 미

/b backspace : 역으로 한 줄 이동한다 . /' single quote

/" double quote // backslash /r carriable return

/t tab : 줄 위에서 커서 위치를 일정한 값만큼 이동한다 . /n 한 줄을 개행 한다.

%d 뒤에 있는 정수형 값을 출력한다.

%c 뒤에 있는 문자형 값을 출력한다.

%s 뒤에 있는 문자열 값을 출력한다.

%f 뒤에 있는 소수형 값을 출력한다.

(20)

C 프로그램의 구조

(4)

 기본 입출력 함수와 제어문자

입력함수 : scanf()

기본형식 : scanf(“ 제어문”, arg1, arg2, ... );

( 예 ) scanf("%d %f %c", &a, &b, &c);

소스 예

(P33) 1. // 입출력 함수 사용 예 2.  

3. #include <stdio.h>

4. void main() 5. { 

6.   int data;

7.   printf(" 숫자를 입력하세요 /n");

8.   scanf("%d", &data);

9.   printf(" 입력한 값은 %d 이다 ./n", data);

10. }

참조

관련 문서

태어나면서부터 관찰되는 정서,운동,자극에 대한 반응성, 혹은 자기 통제에 대한 안정적인 개인차 또한 인간 행동에 무의식적으로 영향을 주는 천성적인

 객체지향 분석 설계에서는 일단 시스템에서 취급해야 될 객체를 추 출하게 되면 그것을 가지고 객체를 구조, 기능, 동작의 3가지 측면으 로

인간 운동을 분석하기 위한 운동학적 개념.. Kinematics Concepts for Analyzing

• 원가(cost)란, 특정 목적을 달성하기 위하여 정상적인 상태에서 소비된 재화나 용역과 같은 경제적 자원을 화폐단위로 측정한

지각운동발달의 개념 감각별 발달. 신라대

트리(일반 트리) 중에서 자식 노드의 수가 2개 이하인 것을 이진 트리(binary tree)라고 한다.. 일반 트리는 앞에서 보았듯이 컴퓨터에

Physical fitness and activity as separate heart disease risk factors: a meta–analysis. Med Sci

- 개념과 내용에 대하여 다양한 관점과 시각이 자유스럽게 제시되고 받아들여진다 - 학습자들 간의 토론/대화/상호작용을