4장 순서도와 프로그램 논리 1. 절차의 표현 2. 순서도(flowchart) 3. 프로그램 논리 4. 순서 논리 5. 선택 논리 6. 반복 논리
1. 절차의 표현 프로그램 작성 단계 중 2단계 : 절차(algorithm)를 정의 절차를 정의하는 다양한 방법이 존재 순서도, 의사코드 등으로 절차를 표현
1. 절차의 표현 2장에서 예제로 사용된 가감승제 문제 의사코드(pseudocode)로 절차를 표현
1. 절차의 표현 2장에서 예제로 사용된 가감승제 문제 순서도(flowchart)로 절차를 표현
2. 순서도(flowchart) 프로그램의 처리 절차를 도형으로 표시 순서도의 역할 코딩의 기초 자료가 되며, 프로그램의 수정이나 확장 시 유용한 자료 프로그램을 작성하지 않은 사람도 프로그램의 논리적인 체계를 쉽게 파악할 수 있다 프로그램의 정확성을 판가름 하는 기초자료
2. 순서도(flowchart) 순서도의 기호 국제 표준화 기구(ISO : International Standard Organization) 에서 제정(97N90) e.g., 건축 설계도, 자동차 설계도 흐름선 기호 순서도 내에서 작업의 흐름 방향을 표시
2. 순서도(flowchart) 단말 기호 순서도의 시작과 끝을 표시
2. 순서도(flowchart) 준비 기호 초기 변수나 배열을 선언
2. 순서도(flowchart) 처리 기호 여러 가지 종류의 작업(예:연산 등)을 처리하는 기호
2. 순서도(flowchart) 입출력 기호 모든 종류의 입출력 작업을 나타내는데 사용되는 기호
2. 순서도(flowchart) 판단(선택) 기호 경로 중에서 어느 것을 선택할 것인지를 판단하는 기호
2. 순서도(flowchart) 주석(comment) 기호 순서도의 각 기호에 대한 추가 설명을 할 때 사용하는 기호
2. 순서도(flowchart) 서브 프로그램(sub program) 기호 별도의 서브 프로그램이나 함수를 이용 할 때 사용하는 기호
2. 순서도(flowchart) 결합 기호 동일한 페이지 내에서 순서도나 다른 부분으로 옮겨질 때 이 기호내의 숫자나 문자를 이용하여 상호 연결하는 기호
2. 순서도(flowchart) 페이지 연결 기호 순서도를 한 페이지에 다 나타낼 수 없는 경우에 사용하는 페이지 연결 기호
2. 순서도(flowchart) 순서도에 주로 사용하는 기호
3. 프로그램 논리 프로그램을 배울 때의 어려운 점 구조적 프로그래밍(Structured Programming) 컴퓨터를 통해 해결하려는 문제를 컴퓨터가 인식할 수 있는 절차(algorithm)로 변환시키는 것이 어렵다 http://en.wikipedia.org/wiki/Greatest_common_divisor e.g., Eucilid algorithm for the G.C.D. 구조적 프로그래밍(Structured Programming) 1970년대 네덜란드 Dijkstra 교수에 의해 개발 모든 프로그램을 3가지 논리 요소만 가지고 기술 순서 논리 선택 논리 반복 논리 즉 프로그램을 작성한다는 의미는 순서/선택/반복 논리를 사용하여 문제를 해결한다는 의미이다.
4. 순서 논리 일상 생활에서도 순서 논리가 있다 “일어난다=>아침식사”는 반드시 순서에 의해 이루어져 되는 논리 프로그램에서 순서논리는 프로그램을 실행할 때 순서에 따라 차례대로 실행 해야 한다는 의미 1번이 실행된 후에 2번이 실행되어야 한다 만일 2번이 1번보다 먼저 실행된다면, 결과를 예측할 수 없다 [그림3-2] 두 개의 숫자를 더하여 출력하는 문제를 해결하기 위한 순서도
5. 선택 논리 일상 생활에서도 선택 논리가 있다 “일요일인 경우에 늦잠을 잘 수 있다”는 경우를 논리적으로 표현하려면 “오늘이 일요일 인가?”하는 선택 논리로 표현할 수 있다 선택 논리의 결과는 반드시 참(true) 또는 거짓(false) 중 하나가 되어야 한다 “잘 모르겠다”, “애매모호하다”등이 되면 선택 논리가 성립되지 않는다 http://en.wikipedia.org/wiki/Boolean_algebra e.g., ‘예쁘다’ 등 컴퓨터 회로로 연산이 가능하다 http://en.wikipedia.org/wiki/And_gate http://en.wikipedia.org/wiki/or_gate http://en.wikipedia.org/wiki/xor_gate
5. 선택 논리 프로그램에서의 선택논리는 주어진 조건의 결과에 따라 실행되는 문장이 다르다는 의미이다. 두 개의 숫자를 입력 받아 큰 수를 출력하는 프로그램의 경우 2번 문장이 선택문이다 선택문의 결과가 참이면 3번 문장을 실행하고, 거짓이면 4번 문장을 실행한다 [그림3-3] 두 개의 숫자를 입력받아 큰 수를 출력하는 문제를 해결하기 위한 순서도
6. 반복 논리 일상 생활에서도 반복 논리가 있다 학생이 아침 6시에 기상하는 경우, 일어나서 시계를 보고 6시 이전이면 잠을 자게 된다. 잠시 후에 다시 일어나 다시 시계를 보고 아직도 6시 이전이면 다시 잠을 자게 된다. 특정 조건에 따라 반복적으로 이루어지는 경우가 반복 논리이다 반복 논리에는 반드시 선택 논리가 포함되어 있다. 선택 논리가 없는 반복 논리는 무한 반복(infinite loop)이 되어 프로그램이 영원히 끝나지 않는다 http://en.wikipedia.org/wiki/Loop_(computing)#Loops http://en.wikipedia.org/wiki/Fibonacci_number
6. 반복 논리 프로그램에서의 반복논리는 주어진 조건의 결과에 따라 반복 실행된다는 의미이다. 1부터 100까지의 정수의 합을 구하는 프로그램 2번 문장이 반복되는 부분이다 즉 1번 선택문의 결과가 참인 경우에는 2번 반복부분이 계속해서 실행된다 언젠가는 1번 선택문의 결과가 거짓이 되어야 프로그램이 종료될 수 있다 [그림3-4] 1부터 100까지의 합을 구하는 문제를 해결하기 위한 순서도
감사합니다