• 검색 결과가 없습니다.

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)

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

감사합니다.

참조

관련 문서

사용자 정의 이벤트인 경우에는 명시적으로 델리게이트 객체를 호출함 으로써 이벤트 처리기를 작동.. 스레드의

[r]

Multi V Super III (고효율 VRF 에어컨) 고효율 빌딩용 시스템 에어컨인 Multi V Super III 에서는 제품 자체의 에너지 효율 향상을 위해 서 압축기의 회전수를

프로그래밍 언어에 사용되는 문법이 자연어에 조금 더 가깝게 설계되어 있기 때문에 순차적인 언어를 벗어난 비절차적 언어. 과정보다는 결과를 도출하는

break의 활용 : 메뉴 처리 • 무한 루프와 break를 이용하면 원하는 위치에서 루프 탈출 조건을 검사해서 루프를 빠져나올 수 있다... continue의 수행 순서 • for문 안에서 continue를 for의 시작 부분으로 이동해서 루프를 반

동기식 전송방식  동기식 전송방식은 데이터를 전송하고자 할 때 전송 측과 수신 측 사이에 클록을 일치시켜 동기화를 수행하여 전송하는 방식  이때 비트정보는 정해진 규칙에 따라 그룹화하여 처리 -> 데이터 프레임frame  프레임 단위로 전송  데이터 프레임  예 SONETSynchronous

SSL과 TLS 비교 4  암호도구 키교환Key Exchange: TLS는 Fortezza만 제외하고 SSLv3의 모든 키교환 기술을 지원 대칭 암호 알고리즘Symmetric Encryption Algorithm: TLS는 Fortezza만 제외하고 SSLv3에서 사용하는 모든 대칭 암호 알고리즘을 포함

3D 프린팅 기술을 3D 구강 스캐닝, CAD/CAM 및 디자인 소프트웨어 등과 함께 결합해 치과용 경석고 모델은 물론 치과 교정기, 실제 치아와 유사한 베니어 프로토타입