34
알알알알 (Algoritm) 이 이 이

알고리즘 (Algoritm)

Embed Size (px)

DESCRIPTION

알고리즘 (Algoritm). 이 상 희. 프로그래밍의 기본 논리. 1. 순차논리 : 주어진 명령들을 순차적으로 하나씩 수행하는 논리로서 하나의 명령이 수행된 후 다음 명령을 수행하는 단순한 구조. START. X = 3. Y = 5. NUBI = X * Y. NUBI. END. 예제 1. 가로가 3 이고 세로가 5 인 사각형의 넓이를 출력하는 순서도 작성. 예제 2. 2 개의 수를 읽어서 두 수의 합과 차를 출력하는 순서도. START. READ A, B. SUM = A + B. - PowerPoint PPT Presentation

Citation preview

Page 1: 알고리즘 (Algoritm)

알고리즘 (Algoritm)

이 상 희

Page 2: 알고리즘 (Algoritm)

프로그래밍의 기본 논리

1. 순차논리 : 주어진 명령들을 순차적으로 하나씩

수행하는 논리로서 하나의 명령이 수행된 후 다음 명령을 수행하는 단순한 구조

Page 3: 알고리즘 (Algoritm)

예제 1

가로가 3 이고 세로가 5 인 사각형의 넓이를 출력하는 순서도 작성

START

Y = 5

END

NUBI

NUBI = X * Y

X = 3

Page 4: 알고리즘 (Algoritm)

예제 2

2 개의 수를 읽어서 두 수의 합과 차를 출력하는 순서도START

SUM = A + B

END

SUM, DIF

DIF = A - B

READ A, B

Page 5: 알고리즘 (Algoritm)

프로그래밍의 기본 논리

2. 판단논리 : 현재까지의 값을 바탕으로 상태를

판단하여 참과 거짓 2 가지의 경우의 수 중에서 하나를 수행하는 논리

Page 6: 알고리즘 (Algoritm)

예제 1

2 개의 수를 읽어 두수와 두 수 중에 최대값을 출력하는 순서도 작성

START

MAX = B

END

A, B, MAX

MAX = A

READ A, B

A > BYES NO

Page 7: 알고리즘 (Algoritm)

예제 2

3 개의 수를 읽어 그 중에 최대값을 출력하는 순서도 작성

START

MAX = BMAX = A

READ A, B, C

A > B

END

MAX

MAX = C

C > MAXYES

YES NO

NO

Page 8: 알고리즘 (Algoritm)

프로그래밍의 기본 논리

3. 반복논리 : 반복 수행하고자 하는 명령을 주어진

조건에 따라서 반복적으로 수행하기 위한 논리로 프로그램의 작성 과정에서 주어진 조건에 따라서 반복적으로 명령을 처리하는 경우가 빈번하다 .

Page 9: 알고리즘 (Algoritm)

예제 1

1 부터 100 까지의 합을 구하는 순서도

START

CNT = 1

SUM = SUM + CNT

SUM = 0

END

SUM

CNT = CNT + 1

CNT <= 100YES

NO

Page 10: 알고리즘 (Algoritm)

예제 2

1 부터 100 까지의 합을 구하는 순서도

START

CNT = 0

CNT = CNT + 1

SUM = 0

END

SUM

SUM = SUM + CNT

CNT < 100YES

NO

Page 11: 알고리즘 (Algoritm)

예제 3

1 부터 100 까지의 합을 구하는 순서도START

CNT = 0

CNT = CNT + 1

SUM = 0

END

SUM

SUM = SUM + CNT

CNT >= 100YES

NO

Page 12: 알고리즘 (Algoritm)

변수란 ?

상수 : 하나의 고정된 값 변수 : 값 또는 수식의 결과를 저장하기 위한

상자와 같은 기억공간 ( 변할 수 있는 값 ) 예 ) A = 10, 기억공간 A 라는 변수에 상수

10 을 대입하는 것 변수명은 프로그램 작성을 용이하게 하기 위해 메모리에 붙인다 .

변수명 잘 붙이는 법 ! - 영문자 , 한글 , 숫자를 사용할 수 있다 . - 단 , 첫 글자는 숫자와 공백을 사용할 수 없다 .

Page 13: 알고리즘 (Algoritm)

변수의 종류

누적변수 : 변수 자신에 일정한 값이 계속 가감승하는 특징을 가지며 , 여러 번 누적 되어야 하기 때문에 반드시 반복문 내에 포함됨

예 ) A = A + 2( 증가값 ) B = B – 2( 감소값 ) C = C * 2( 승산값 )

Page 14: 알고리즘 (Algoritm)

누적변수의 예

A = 0

A = A + 2

비교

A = 10

A = A - 2

비교

A = 1

A = A * 2

비교

2 씩 증가하는 누적산 2 씩 감소하는 누적산 2 씩 곱하는 누적산( 초기값이 0 이면 안됨 )

Page 15: 알고리즘 (Algoritm)

변수의 종류

스위치 변수 : 데이터를 반복 처리하는 과정에서 일정 조건인 경우에 한해서 수행하도록 하기 위한 방법으로 , 변수의 값이 0 또는 1 로 계속 변경되는 것이 특징이며 두가 처리가 계속 교대로 바뀌는 경우에 사용

예 ) 1+2-3+4-5+6-7+8 (+, - 가 교대로 처리되는 경우 )

Page 16: 알고리즘 (Algoritm)

스위치변수의 예

조 건 : 처리 1 이 먼저 수행되고 , 처리 1 과 처리 2 가 한번씩 반복적으로 수행될 수 있도록 프로그램을 구성

처리 2처리 1

SW = 0

SW = 0SW = 1

SW = 0

YES NO

Page 17: 알고리즘 (Algoritm)

스위치변수의 예

조 건 : 처리 1 이 먼저 수행되어야 한다 .

처리 2처리 1

SW = 1

SW = 1SW = 0

SW = 1

YES NO

Page 18: 알고리즘 (Algoritm)

변수의 종류

플래그 변수 : 스위치 변수와 비슷한 방식으로 처리 1 을 한번 처리하고 처리 2만을 반복 수행해야 하는 경우나 처리 1 을 수행하다가 특정 조건을 만족하면 반복을 종료하는 용도로 사용하는 변수

예 ) 1-2+3+4+5+6+7+8 (- 를 한번 , + 를 계속 처리하는 경우 )

Page 19: 알고리즘 (Algoritm)

스위치변수의 예

조 건 : 처리 1 이 먼저 수행하고 처리 2 를 계속 수행

처리 2처리 1

FLAG = 0

FLAG = 1

FLAG = 0

YES NO

Page 20: 알고리즘 (Algoritm)

변수의 종류

누적변수 : 변수 자신에 일정한 값이 계속 가감승하는 특징을 가지며 , 여러 번 누적 되어야 하기 때문에 반드시 반복문 내에 포함됨

예 ) A = A + 2( 증가값 ) B = B – 2( 감소값 ) C = C * 2( 승산값 )

Page 21: 알고리즘 (Algoritm)

연산자

A. 수치의 계산에 사용하는 산술연산자

연산자 기능 사용법 의미

+ 덧셈 a = b + c b 와 c 를 더한 값은 a 에 대입한다 .

- 뺄셈 a = b - c b 에서 c 를 뺀 값을 a 에 대입한다

/ 나눗셈 a = b / c b 를 c 로 나눈 값을 a 에 대입한다

X , * 곱셈 a = b * c b 와 c 를 곱한 값을 a 에 대입한다

^, ** 거듭제곱 a = b ^ cb 를 c 만큼 거듭제곱 값을 a 에

대입한다

Page 22: 알고리즘 (Algoritm)

연산자

B. 관계연산자

연산자 기능 사용법 의미

= 같다 a = b a 와 b 는 같다 .

<> 같지않다 a <> b a 와 b 는 같지 않다 .

> 크다 a > b a 는 b 보다 크다 .

>= 크거나 같다 a >= b a 는 b 보다 크거나 같다 .

< 작다 a < b a 는 b 보다 작다 .

<= 작거나 같다 a <=b a 는 b 보다 작거나 같다 .

Page 23: 알고리즘 (Algoritm)

배열 (ARRAY) 의 기본개념

정의 : 변수는 하나의 값만을 기억하는 기억공간인데 반하여 같은 종류의 데이터에 대하여 이를 쉽게 처리하기 위해 모든 변수들을 조합해서 하나의 변수명으로 정의

배열명으로 여러 개의 기억공간을 설정하고 첨자를 이용하여 배열의 각 원소를 참조하도록 구성된 자료구조이다 . 첨자는 () 를 사용

예 ) X(5) 로 선언된 배열

X

X(1) X(2) X(3) X(4) X(5)

Page 24: 알고리즘 (Algoritm)

1 차원 배열

X

X(1) X(2) X(3) X(4) X(5)

- X 는 배열명이고 첨자는 1 부터 5 까지이다 . 첫 번째 기억장소는 X(1) 이며 , 마지막 기억장소는 X(5) 이다 .- 배열 X 의 세번째 공간에 10 이라는 값을 기억시키는 치환문은 X(3) = 10 으로 표현한다 .

Page 25: 알고리즘 (Algoritm)

다차원 배열

A(3,5)

A(1,1) A(1,2) A(1,3) A(1,4) A(1,5)

- 다차원배열은 배열의 차수를 확장한 배열로 차수가 2 인 배열을 2 차원 배열이라 한다 .- A(3,5) 로 선언된 2 차원 배열이며 , 첨자는 행이 1 부터 3, 열이 1 부터 5 까지로 2 차원 배열은 첨자를 2 개 사용하여 몇 번째 행의 몇 번째 열을 나타낼 수 있다 .- 2 행 3 열에 10 이라는 값을 기억시키는 치환문은 X(2,3) = 10 으로 표시한다 .

A(2,1)

A(3,1) A(3,5)

A(2,3)

Page 26: 알고리즘 (Algoritm)

함수의 기본개념

정의 : 함수란 특정기능을 수행하도록 일련의 처리집합 으로 함수를 사용하는 것을 ‘함수를 호출한다’라고 하며 여러 번 함수를 호출할 수 있다 . 미리 약속되어진 함수명은 변수명으로 사용할 수 없다 .

예 ) MOD 함수 , INT 함수 등이 있다 .

Page 27: 알고리즘 (Algoritm)

MOD 함수

정의 : 나머지를 구하는 함수 예 ) mod(3,2) = 1 or 3 mod 2 = 1 mod(6,4) = 2 or 6 mod 4 = 2

mod 함수의 활용 ① 짝수 , 홀수 판별에 활용

Mod(A,2) = 0

짝수홀수YES

NOMod(A,2) = 1

홀수짝수YES

NO

Page 28: 알고리즘 (Algoritm)

MOD 함수

mod 함수의 활용 ② 배수 판별에 활용 예 ) mod(A,N) = 0 or A mod N = 0

Mod(A,N) = 0

N 의 배수배수가 아니다YES

NO

Page 29: 알고리즘 (Algoritm)

int 함수

정의 : 정수를 구하는 함수 예 ) int(4.3) =4, int(9.99) = 9, int(12.48) = 12 int 함수의 활용 ① 짝수 , 홀수 판별에 활용 예 ) int(n/2) = n/2 이면 짝수 , int(2/2) = 2/2 int(n/2) <> n/2 이면 홀수 , int(3/2) = 3/2 ② 소수점 첫째자리에서 반올림 예 ) int(3.4 + 0.5) = 3, int(3.5 + 0.5) = 4 - 평균값을 구해 반올림하는 경우 int(74.4 + 0.5) = 74, int(74.5 + 0.5) = 75

Page 30: 알고리즘 (Algoritm)

수열

1 부터 100 까지의 자연수의 합을 구하는 순서도

START

sum = 0

i = i + 1

i = 0

END

SUM

sum = sum + i

i < 100YES

NO

선증가 후처리의 순서도

i<=99도

가능하다

Page 31: 알고리즘 (Algoritm)

수열

1 부터 100 까지의 자연수의 합을 구하는 최적화순서도

START

sum = 1

i = i + 1

i = 1

END

SUM

sum = sum + i

i < 100YES

NO

선증가 후처리의 순서도

i<=99도

가능하다

Page 32: 알고리즘 (Algoritm)

수열

1 부터 100 까지의 자연수의 합을 구하는 최적화 순서도

START

sum = 1

sum = sum + i

i = 2

END

SUM

i = i + 1

i <= 100YES

NO

선처리 후증가의 순서도

I < 101도

가능하다

Page 33: 알고리즘 (Algoritm)

수열

1 부터 100 까지의 자연수의 합을 구하는 순서도

START

sum = 0

sum = sum + i

i = 1

END

SUM

i = i + 1

i <= 100YES

NO

선처리 후증가의 순서도

I < 101도

가능하다

Page 34: 알고리즘 (Algoritm)

수열

1 부터 100 까지의 자연수의 합을 구하는 순서도

START

sum = 0

sum = sum + i

i = 1

END

SUM

i = i + 1

i > 100NO

YES

선처리 후증가의 순서도

I < 101도

가능하다