Post on 16-Sep-2020
transcript
전자전기 프로그래밍 실습
Flowchart 작성법
전자전기 프로그래밍 실습
2
Flowchart 란?
Algorithm
어떤 문제를 해결하기 위해 수행할 작업을 순서대로 파악해서, 그순서에 따라 해결 방법을 결정하는 방법
수학의 문제 해결 방법으로 사용할 뿐만이 아니라 일상 생활과 일의경우에도 무의식적으로 사용
Flowchart
Algorithm을 정해진 기호를 이용한 그림으로 표시하여 시각적으로표현한 것
전자전기 프로그래밍 실습
3
Flowchart 란?
Program Flowchart
프로그램의 작성 단계를 표현하여 그것에 대한 이론을 나타냄
프로그램의 기능과 처리 순서를 검토하는데 사용
Program Flowchart 사용 목적
문제 해결을 위한 논리적인 순서의 검토와 구성
프로그램의 서류형태로 기록 및 전달
( 사양 변경 등에서 보조 수단으로 사용 )
전자전기 프로그래밍 실습
4
Flowchart 기호
Data 기호
데이터 ( data )
데이터는 매체를 지정하지 않는 데이터를나타낸다.
모든 기억 매체의 입출력 기능을 나타냄
라인 프린터 ( line printer)
출력을 나타내는 기호
문서를 화면에 출력시키는 것을 의미
전자전기 프로그래밍 실습
5
Flowchart 기호
처리기호
처리 ( process )
판단 ( decision )
임의 종류의 처리기 등을 나타냄
정의된 연산의실행을 표현
연속하는 몇 개의 흐름 방향 중 1개를결정하는
연산을 표현
주어진 조건에 따라 비교하여 해당 되는 조건에
따라흐름을결정
기호 내의 판단 또는 스위치 형의 기능을 나타냄
판정된 평과 결과는 경로를 나타내는 선 가까이에
기술
전자전기 프로그래밍 실습
6
Flowchart 기호
특수기호
연결자 ( connector )
예 시
같은 Flowchart 내에서 다른 부분으로의 입구 또는 출구를
표현
선을 끊어서 다른 장소에서 계속하기 위해 사용하기도 함
대응하는 연결자에는 같은 이름을 붙여야 함
2
1
21
전자전기 프로그래밍 실습
7
Flowchart 기호
특수기호
단자 ( terminator )
주석 ( annotation )
외부 환경으로부터의 입,출구
프로그램 흐름의 시작 또는종료를표현
외부 참조 또는 데이터의 전이를 나타내기도함
작업 내용을 명확하게 하기 위한 도구
주석의 연결선은 관련기호에 붙임
평균 점수를
계산 평균점수 = 총합계 / 인원수
전자전기 프로그래밍 실습
8
Flowchart 기호의사용법
자주사용되는기본적인기호
: 흐름선
Flowchart 기호 연결, 실행 순서표시
: 판단기호
조건 판단 후 흐름을 바꿈
: 처리기호
모든 종류의 처리와 행동 표시
: 단자기호
Flowchart의 시작과 종료 표시
전자전기 프로그래밍 실습
9
Flowchart 기호의사용법
Flowchart 흐름의방향
처리의 흐름 방향
위 => 아래
왼쪽 => 오른쪽
원칙에 맞추지 않을 때
흐름의 방향에 따라 화살표를 붙여야 함
원칙에 따르는 경우
화살표를 붙이지 않아도 된다.
화살표를 붙인 것이 알기 쉬우면 화살표를 붙여도 좋음
전자전기 프로그래밍 실습
10
Flowchart 기호의사용법
흐름의방향 예시
Ex 1 Ex 2
전자전기 프로그래밍 실습
11
Flowchart 기호의사용법
Flowchart의교차 흐름선( flow line)의 교차는 보기 쉽게 하기 위해 피하는 편이 좋음
흐름선의 교차 해결흐름선의 교차
전자전기 프로그래밍 실습
12
Flowchart 기호의사용법
두 개 이상의출구 한 개의 Flowchart 기호에 두 개 이상의 출구를 나타내는 경우
A, B를 비교조건식
1 2 3 4 5
A > B
A < B
A = B
전자전기 프로그래밍 실습
13
Flowchart 기호의표현
설명 ( statement )
기호 내에서는 처리에 나타내는 최소한의 Statement 사용
기술 방법은 무조건 [왼쪽 => 오른쪽], [위 => 아래] 방향
기호 내에 글을 써 넣지 못할 때는 주석에 의해 기술
합계 점수를 인원수로
나누어 평균 점수를
구한다.
계산식
평균 = 합계 ?인원수
Ex .
전자전기 프로그래밍 실습
14
Flowchart의구조단위
직선형
몇 개의 명령 또는 처리를 위에서부터 순서대로 실행하는 형식
처리 2
처리 1
처리 3
전자전기 프로그래밍 실습
15
Flowchart의구조단위
선택형 ( 분기형 )
조건의 판단에 따라서 실행하는 처리가 달라지는 형식
조건 판단의 뒤에 두 가지 방향으로 흐름을 분기
각각의 흐름에 별개의 처리를 수행
조건
처리 A 처리 B
조건
처리 A
조건
처리 Ayes
no
yes
no
yes
no
전자전기 프로그래밍 실습
16
Flowchart의구조단위
루프형 ( 반복형 )
일련의 처리를 반복하여실행하는 형태
판단 기호에서 반복의 실행 유무를 결정
종료 조건
처리처리 종료 조건
처리
yes
no
yes
no
전자전기 프로그래밍 실습
17
Flowchart의구조단위
선택형
If 문을 여러 개 조합하면 세 종류 이상의 방향으로 분기 가능
Case 형식 을 사용하면 편리
조건
처리 처리 처리
전자전기 프로그래밍 실습
18
Program Flowchart
좋은 Program Flowchart의조건
논리의전개가바르다
요구된 처리를 오류 없이 실행할 수 있는 것
보기쉽고, 알기 쉽고, 간결하다.
기술이 통일되어 있어야 함
논리가 정리되어 있어야 함
조건이 명확하게 되어 있어야 함
Flowchart가 복잡하지 않아야 함
Flowchart의추적과
개선필요
전자전기 프로그래밍 실습
19
Program Flowchart의추적
Program Flowchart의추적
추적 ( trace )
실제로 값을 적용시켜서 Flowchart의 옳고 그름을 판단하는 것
추적의 방법
추적 결과 = 계산 결과 : 프로그램의 논리가 바르다는 것을 입증
추적 결과 ≠ 계산 결과 : 논리가 바르지 않기 때문에 한 번 더 처리의 흐
름을 확인
전자전기 프로그래밍 실습
20
Program Flowchart의개선
보통논리가존재 하는 경우의개선
흐름선의 합류점 직전의 처리와 판단 기호에 의한 분기 직후의 처리에 중복된 것이 없는지 조사
중복된 장소를 없애는 것이 모도 좋은 프로그램이 된다고 할 수는없으므로 주의
A > B
C = A - B
F = C X D
C = B - A
F = C X D
A > B
C = A - B
F = C X D
C = B - A
yes ye
s
nono
전자전기 프로그래밍 실습
21
Program Flowchart의개선
연결자를사용한개선 (1) 예시
흐름선이교차된경우
=> 연결자 ( O ) 를 사용
전자전기 프로그래밍 실습
22
Program Flowchart의개선
연결자를이용한개선 (2)
1
1
연결자 내의 기호의 대응에 따라 처리 수행
Flowchart가 다른 페이지에계속하는 경우
주석 기호 사용하여 페이지를참조
전자전기 프로그래밍 실습
23
Flowchart 작성예제
#include <stdio.h>
void CalculateSum(int n, int *sum_array);
void main(void){
int n, i;int sum_array[10];
for(n=1; n <= 10; n++){CalculateSum(n, sum_array);
}
for(i=1; i <= 10; i++){printf("Sum(1 ~ %d): %d\n", i,
sum_array[i-1]);}
}
void CalculateSum(int n, int *sum_array)
{int j=1, sum=0;
while(j <= n){sum = sum + j;j++;
}*(sum_array+n-1) = sum;
}
C code
전자전기 프로그래밍 실습
24
Flowchart 작성예제
시 작
n = 1
j = 1
sum = 0
n ≤ 10
sum_array[n-1]
<= sum
sum
<= sum + j
j ≤ n
i = 1
i ≤ 10
Sum(1 ~ i) :
sum_array[i-1]
끝
i <= i + 1
n <= n + 1
j <= j + 1
Flowchart
yes
no
yes
no
yes
no