Chap.3 새로운 정보 - 연산/계산

연산/계산 (operation)

• 정보의 표현(저장)

- 언어(language): '말/문장'으로 표현

"한 가족이 있다. 아버지는 adam이고, 어머니는 dotty이다. 자녀의 이름은 각각 edward와 fran이다. 옆집에는 betty가 사는데 자녀는 david이다.“

- 숫자, 멀티미디어로 표현

e.g, 수학(math), 예술(arts)

• 정보의 연산(계산)

- 아래의 ‘물음/질문’에 어떻게 답할 것인가?

Q1: edward의 아버지와 어머니의 이름은?

Q2: edward 가족은 몇 명인가?

Q3: edward의 형제의 이름은?

데이타

연산

숫자

(정수/실수)

+

*

-

/

문자

문자열

멀티미디어

(그림/음성/영상)

- Why 연산? 법칙/규칙을 사용하여 새로운 정보를 산출

e.g., 숫자 - 4칙 연산

문자열 - 정렬(sorting)

그래프 - the shortest path

멀티미디어 - 편집(editing)

- Algorithm: 연산들의 순서적인 절차

• 컴퓨터의 기능

- 데이터: 대량으로 저장 (Database)

- 연산 : 빠르게 (FLOPS)

e.g. 수퍼컴퓨터

https://en.wikipedia.org/wiki/Supercomputer

http://ko.wikipedia.org/wiki/%ED%94%8C%EB%A1%AD%EC%8A%A4

- 컴퓨터의 한계: Algorithm의 한계

e.g. 지능적 사고 (A.I.) + Big Data

http://comedudb6.knue.ac.kr/tykim/Myhome/note.html GTC(2017)

http://comedudb6.knue.ac.kr/tykim/Myhome/note.html Big Data

• 컴퓨터 프로그래밍의 기본

주어진 문제(입력데이터/출력 데이터)를 처리하기 위하여;   // User Interface

1. 데이터: 어떠한 ‘변수/자료구조’를 사용할 것인가?        // Data & Data                                                                          Structure

2. 계산: 어떠한 ‘알고리듬’으로 변수/자료구조의 데이터를 처리할 것인가?

// Processing

3. 구조화: 어떠한 ‘함수(객체)’를 사용할 것인가?

- 사용자 정의 함수(객체)

- 시스템(컴파일러/인터프리터/OS) 제공 함수/객체

User Interface (I/O)	Processing (Operations, Algorithm, Functions)
Data & Data Structures

연산자

• 연산자(operator)

- [부록 5] p.681 - p.690

- [C 콘서트] Chap. 04

685.c: 논리연산자

#include <stdio.h>

int main(void)

{   int a=3, b=7, c=1, d=0;

int i=0;

printf("a&&b: %d\n", a&&b);

printf("a||b: %d\n", a||b);

printf("!a: %d\n", !a);

printf("!b: %d\n", !b);

printf("c&&d: %d\n", c&&d);

printf("c||d: %d\n", c||d);

printf("!c: %d\n", !c);

printf("!d: %d\n", !d);

while(0){     // false

printf("0\n");

++i;

if (i==10) break

}

i=0;

while(1){    // true

printf("1\n");

++i;

if (i==10) break

}

return 0;

}

686.c: 비트 연산자

#include <stdio.h>

int main(void)

{

unsigned char a=0, b=2, c=4, d=8, e=6;

printf("~a: %d\n", ~a);

printf("b&c: %d\n", b&c);

printf("b|c: %d\n", b|c);

printf("b^c: %d\n", b^c);

printf("b^e: %d\n", b^e);

printf("~d: %d\n", ~d);

printf("b<<2: %d\n", b<<2);

printf("d>>1: %d\n", d>>1);

return 0;

}

숫자처리와 관련된 함수들

• [본문] p.69 - p.84: Chap 02 PPT

집합 연산

• [본문] p.203 - p.210: Chap 04 PPT