390 likes | 881 Views
알고리즘 (Algoritm). 이 상 희. 프로그래밍의 기본 논리. 1. 순차논리 : 주어진 명령들을 순차적으로 하나씩 수행하는 논리로서 하나의 명령이 수행된 후 다음 명령을 수행하는 단순한 구조. START. X = 3. Y = 5. NUBI = X * Y. NUBI. END. 예제 1. 가로가 3 이고 세로가 5 인 사각형의 넓이를 출력하는 순서도 작성. 예제 2. 2 개의 수를 읽어서 두 수의 합과 차를 출력하는 순서도. START. READ A, B. SUM = A + B.
E N D
알고리즘(Algoritm) 이 상 희
프로그래밍의 기본 논리 1. 순차논리 : 주어진 명령들을 순차적으로 하나씩 수행하는 논리로서 하나의 명령이 수행된 후 다음 명령을 수행하는 단순한 구조
START X = 3 Y = 5 NUBI = X * Y NUBI END 예제1 • 가로가 3이고 세로가 5인 사각형의 넓이를 출력하는 순서도 작성
예제2 • 2개의 수를 읽어서 두 수의 합과 차를 출력하는 순서도 START READ A, B SUM = A + B DIF = A - B SUM, DIF END
프로그래밍의 기본 논리 2.판단논리 : 현재까지의 값을 바탕으로 상태를 판단하여 참과 거짓 2가지의 경우의 수 중에서 하나를 수행하는 논리
START READ A, B YES NO A > B MAX = A MAX = B A, B, MAX END 예제 1 • 2개의 수를 읽어 두수와 두 수 중에 최대값을 출력하는 순서도 작성
START C > MAX READ A, B, C MAX = C A > B MAX = A MAX = B MAX END 예제 2 • 3개의 수를 읽어 그 중에 최대값을 출력하는 순서도 작성 NO YES NO YES
프로그래밍의 기본 논리 3.반복논리 : 반복 수행하고자 하는 명령을 주어진 조건에 따라서 반복적으로 수행하기 위한 논리로 프로그램의 작성 과정에서 주어진 조건에 따라서 반복적으로 명령을 처리하는 경우가 빈번하다.
START YES CNT <= 100 SUM = 0 NO SUM CNT = 1 END SUM = SUM + CNT CNT = CNT + 1 예제 1 • 1부터 100까지의 합을 구하는 순서도
START YES CNT < 100 SUM = 0 NO SUM CNT = 0 END CNT = CNT + 1 SUM = SUM + CNT 예제 2 • 1부터 100까지의 합을 구하는 순서도
START SUM = 0 CNT = 0 YES CNT >= 100 NO CNT = CNT + 1 SUM SUM = SUM + CNT END 예제 3 • 1부터 100까지의 합을 구하는 순서도
변수명 잘 붙이는 법! • - 영문자, 한글, 숫자를 사용할 수 있다. • - 단, 첫 글자는 숫자와 공백을 사용할 • 수 없다. 변수란? • 상수: 하나의 고정된 값 • 변수: 값 또는 수식의 결과를 저장하기 위한 상자와 같은 기억공간(변할 수 있는 값) 예) A = 10, 기억공간 A라는 변수에 상수 10을 대입하는 것 • 변수명은 프로그램 작성을 용이하게 하기 위해 메모리에 붙인다.
변수의 종류 • 누적변수: 변수 자신에 일정한 값이 계속 가감승하는 특징을 가지며, 여러 번 누적 되어야 하기 때문에 반드시 반복문 내에 포함됨 예) A = A + 2(증가값) B = B – 2(감소값) C = C * 2(승산값)
A = 0 A = 10 A = 1 A = A + 2 A = A - 2 A = A * 2 비교 비교 비교 누적변수의 예 2씩 곱하는 누적산 (초기값이 0이면 안됨) 2씩 증가하는 누적산 2씩 감소하는 누적산
변수의 종류 • 스위치 변수: 데이터를 반복 처리하는 과정에서 일정 조건인 경우에 한해서 수행하도록 하기 위한 방법으로, 변수의 값이 0 또는 1로 계속 변경되는 것이 특징이며 두가 처리가 계속 교대로 바뀌는 경우에 사용 예) 1+2-3+4-5+6-7+8 (+, -가 교대로 처리되는 경우)
SW = 0 YES NO SW = 0 처리 1 처리 2 SW = 1 SW = 0 스위치변수의 예 조 건 : 처리1이 먼저 수행되고, 처리1과 처리2가 한번씩 반복적으로 수행될 수 있도록 프로그램을 구성
SW = 1 YES NO SW = 1 처리 1 처리 2 SW = 0 SW = 1 스위치변수의 예 조 건 : 처리1이 먼저 수행되어야 한다.
변수의 종류 • 플래그 변수: 스위치 변수와 비슷한 방식으로 처리1을 한번 처리하고 처리2만을 반복 수행해야 하는 경우나 처리1을 수행하다가 특정 조건을 만족하면 반복을 종료하는 용도로 사용하는 변수 예) 1-2+3+4+5+6+7+8 (-를 한번, +를 계속 처리하는 경우)
FLAG = 0 YES NO FLAG = 0 처리 1 처리 2 FLAG = 1 스위치변수의 예 조 건 : 처리1이 먼저 수행하고 처리2를 계속 수행
변수의 종류 • 누적변수 : 변수 자신에 일정한 값이 계속 가감승하는 특징을 가지며, 여러 번 누적 되어야 하기 때문에 반드시 반복문 내에 포함됨 예) A = A + 2(증가값) B = B – 2(감소값) C = C * 2(승산값)
연산자 A. 수치의 계산에 사용하는 산술연산자
연산자 B. 관계연산자
배열(ARRAY)의 기본개념 • 정의 : 변수는 하나의 값만을 기억하는 기억공간인데 반하여 같은 종류의 데이터에 대하여 이를 쉽게 처리하기 위해 모든 변수들을 조합해서 하나의 변수명으로 정의 • 배열명으로 여러 개의 기억공간을 설정하고 첨자를 이용하여 배열의 각 원소를 참조하도록 구성된 자료구조이다. 첨자는 ()를 사용 예) X(5)로 선언된 배열 X(1) X(2) X(3) X(4) X(5) X
1차원 배열 X(1) X(2) X(3) X(4) X(5) X • - X는 배열명이고 첨자는 1부터 5까지이다. • 첫 번째 기억장소는 X(1)이며, 마지막 기억장소는 X(5)이다. • 배열 X의 세번째 공간에 10이라는 값을 기억시키는 • 치환문은 X(3) = 10으로 표현한다.
다차원 배열 A(1,1) A(1,2) A(1,3) A(1,4) A(1,5) A(3,5) A(2,1) A(2,3) A(3,1) A(3,5) • 다차원배열은 배열의 차수를 확장한 배열로 차수가 2인 • 배열을 2차원 배열이라 한다. • A(3,5)로 선언된 2차원 배열이며, 첨자는 행이 1부터 3, • 열이 1부터 5까지로 2차원 배열은 첨자를 2개 사용하여 • 몇 번째 행의 몇 번째 열을 나타낼 수 있다. • 2행 3열에 10이라는 값을 기억시키는 치환문은 • X(2,3) = 10으로 표시한다.
함수의 기본개념 • 정의 : 함수란 특정기능을 수행하도록 일련의 처리집합 으로 함수를 사용하는 것을 ‘함수를 호출한다’라고 하며 여러 번 함수를 호출할 수 있다. • 미리 약속되어진 함수명은 변수명으로 사용할 수 없다. 예) MOD함수, INT함수 등이 있다.
Mod(A,2) = 0 Mod(A,2) = 1 NO NO YES YES 홀수 짝수 짝수 홀수 MOD 함수 • 정의 : 나머지를 구하는 함수 예) mod(3,2) = 1 or 3 mod 2 = 1 mod(6,4) = 2 or 6 mod 4 = 2 • mod함수의 활용 ① 짝수, 홀수 판별에 활용
Mod(A,N) = 0 NO YES 배수가 아니다 N의 배수 MOD 함수 • mod함수의 활용 ② 배수 판별에 활용 예) mod(A,N) = 0 or A mod N = 0
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
START YES i < 100 i = 0 NO SUM sum = 0 END i = i + 1 sum = sum + i 수열 • 1부터 100까지의 자연수의 합을 구하는 순서도 i<=99도 가능하다 선증가 후처리의 순서도
START YES i < 100 i = 1 NO SUM sum = 1 END i = i + 1 sum = sum + i 수열 • 1부터 100까지의 자연수의 합을 구하는 최적화순서도 i<=99도 가능하다 선증가 후처리의 순서도
START YES i <= 100 i = 2 NO SUM sum = 1 END sum = sum + i i = i + 1 수열 • 1부터 100까지의 자연수의 합을 구하는 최적화 순서도 I < 101도 가능하다 선처리 후증가의 순서도
START YES i <= 100 i = 1 NO SUM sum = 0 END sum = sum + i i = i + 1 수열 • 1부터 100까지의 자연수의 합을 구하는 순서도 I < 101도 가능하다 선처리 후증가의 순서도
START NO i > 100 i = 1 YES SUM sum = 0 END sum = sum + i i = i + 1 수열 • 1부터 100까지의 자연수의 합을 구하는 순서도 I < 101도 가능하다 선처리 후증가의 순서도