• 검색 결과가 없습니다.

4차시: C의 개요, 어휘 원소, 연산자, C 시스템

N/A
N/A
Protected

Academic year: 2022

Share "4차시: C의 개요, 어휘 원소, 연산자, C 시스템"

Copied!
20
0
0

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

전체 글

(1)

4차시:

C의 개요,

어휘 원소, 연산자, C 시스템

프로그래밍 및 실험

제 4주

동국대학교 조영석

이 문서는 나눔글꼴로 작성되었습니다. 설치하기

(2)

2

- while문

while (expr) statement

(예) /* 1부터 5까지의 합을 구하는 program */

int i = 1, sum = 0; /* 초기화에 주의! 곱을 구하려면 i=1; */

while (i <= 5) { sum += i;

++i;

}

/* 'sum = sum + i;'와 동일, -=, *=, /=, %= */

/* 'i = i + 1;'과 동일, 'i++;'를 쓸 수도 있음. */

/* ++i 와 i++는 차이가 있음 */

/* 반드시 manual execution (수동 실행)을 통해 확인할 것 */

(3)

3

- do-while문

do

statement while (expr);

(예)

int sum = 0, i = 1;

do {

sum = sum + i;

i = i + 1;

} while (i <= 5);

(4)

4

- while v.s. do-while: 같은 목적의 program의 작성이 가능 int i = 1, sum = 0;

while (i <= 5) { sum += i;

++i;

}

int sum = 0, i = 1;

do {

sum = sum + i;

i = i + 1;

} while (i <= 5);

(5)

5

- for문

for (expr1; expr2; expr3) statement

(예)

int i, sum = 0;

for (i=1; i<=5; ++i) sum += i;

실행순서:

expr1, expr2, {statement, expr3, expr2}*

(6)

6

- while 문 v.s. for 문: 같은 목적의 program의 작성이 가능

int i, sum = 0;

for (i=1; i<=5; ++i) sum += i;

int i = 1, sum = 0;

while (i <= 5) { sum += i;

++i;

}

(7)

7

강조

- for 문: 반복횟수가 분명할 경우 사용하는 것을 권장함.

- while 문: 반복횟수가 불분명할 경우 사용 반복조건을 처리 전에 확인

처리가 skip될 경우도 있음.

- do - while 문: 반복횟수가 불분명할 경우 사용 반복조건을 처리 후에 확인

최소한 1회 처리됨.

(8)

8

1.7 함수: chapter 5에서 상세히 강의함.

1.8 배열, 문자, 포인터: chapter 6에서 상세히 강의함.

1.9 파일: chapter 11에서 상세히 강의함.

(9)

9

1.10 운영체제의 고찰 - C Program의 작성

vi sea.c gcc sea.c a.out

move a.out sea

gcc -o sea sea.c /*compile 결과를 sea에 저장 */

- 입출력 재지정

sea > outfile sea < infile

sea < infile > outfile

(10)

10

Chapter 2: 어휘 원소, 연산자, C 시스템

구문: 알파벳, 단어, 구두점을 사용 하는 규칙 컴파일러(compiler):

preprocessor가 작동 C 코드가 올바른지 검사 if syntax error가 있으면,

then error message를 출력하고 실행을 멈춤 else object code를 생성

loader: object code를 실행화일로 변환

(11)

11

2.1 문자와 어휘원소

- C program에서 사용할 수 있는 문자 소문자: a b c … z

대문자: A B C … Z 숫자: 0 1 2 … 9

특수문자: + - * / = ( ) { } [ ] < > ' " ! @ # $ % & _ | \ . , ; : ?

여백문자: 공백, 탭, newline

- 토큰: 위의 문자들의 조합으로 된 기본 단어에 해당 - 토큰의 종류: 키워드(keywords), 식별자(identifiers),

상수(constants), 문자열 상수(string constants), 연산자(operators), 구두점(punctuators)

(12)

12

/* in file sum.c */ 주석문

#include <stdio.h> a preprocessor directive int main ()

{

int a, b, sum;

printf ("Input two integers: ");

scanf ("%d%d", &a, &b);

sum = a + b;

printf ("%d + %d = %d\n", a, b, sum);

return 0; }

키워드, 연산자, 식별자, 구두점, 문자열상수, 상수

(13)

13

2.2 구문규칙

digit ::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 letter_or_digit ::= letter | digit

letter ::= lowercase_letter | uppercase_letter lowercase_letter ::= a | b | c | … | z

uppercase_letter ::= A | B | C | … | Z alphanumeric_string ::= {letter_or_digit}0+

conditional_statement ::= if (expression) statement {else statement}opt

(14)

14

2.3 주석

- /* 임의의 문자열 */

- 토큰이 아님

- compiler는 주석을 하나의 공백문자로 대치함

(15)

15

2.4 키워드(keywords)

- C언어에서 고유한 의미를 가지는 토큰 (token), 예약어 (reserved words)

- 키워드 auto break case char const

continue default

do

double else enum extern float for

goto if

int long

register return short

signed sizeof static struct switch typedef union

unsigned void

volatile while

(16)

16

2.5 식별자(identifiers)

- 문자, 숫자, _(underscore)

- 소문자와 대문자를 구별 ('a' != 'A')

- 식별자의 정의 : 의미가 쉽게 파악될 수 있게 정의할 것 - identifier ::= {letter | underscore}1

- identifier ::= {letter | underscore | digit}0+

underscore ::= _

(17)

17

- (예) 사용가능 k

_id

iamanidetifire2 → IamAnIdetifire_2 so_am_I

- (예) 사용불가능 not#me 101_south -Plus

- (주의) underscore(_)로 시작하는 식별자는 시스템 이름과 충돌 가능

(18)

18

2.6 상수

- 정수 상수 : 0, 17

- 실수 상수 : 0.0, 3.14159

- 문자상수 : 'A', 'b', '+', '3', '\n'

- 열거상수 : enum day {sun, mon, tue, wed, thu, fri, sat};

- 열거상수 : enum day d1 = fri;

- 10진 상수 : 17

- 8진 상수 : 017 (== 15)

- 16진 상수 : 0x17 (== 23), 0X10 (== 16) - 상수 수식 : -33, -9.0

(19)

19

2.7 문자열 상수

- "abc", "I am a student."

- 'a' != "a"

- "\"" → "를 출력 -"\\" → \를 출력

(20)

이 문서는 나눔글꼴로 작성되었습니다. 설치하기

감사합니다.

참조

관련 문서

통계기법의

입출력 연산자 오버로딩을 이용한 cin, cout의 구현 friend 함수를 사용한 입출력 연산자 오버로딩.

 피연산자의 값이 참이면 연산의 결과값을 거짓으로 만들고, 피연산 자의 값이 거짓이면 연산의 결과값을 참으로 만든다... 다음의

• 정수형끼리의 나눗셈에서는 결과가 정수형으로 생성하고 부동소수 점형끼리는 부동소수점 값을 생성된다.. •

변화과정의 개요.. 동·서양 유아교육사상 변화과정의 개요.. 동·서양 유아교육사상의 흐름과 교류.. 서양 현대

부록 경제활동인구조사 개요... 부록

네 개의 띠폭에서 환원된 cytochrome c의 스펙... 봉우리 파장에

[r]