끄적이는 기록일지

[컴퓨팅 & 파이썬] 2. 컴퓨팅 사고 - (2)알고리즘 기술 본문

파이썬(ICDL) 정리

[컴퓨팅 & 파이썬] 2. 컴퓨팅 사고 - (2)알고리즘 기술

시시나브로 2021. 7. 24. 02:20
728x90

 

1. 순차(Sequence)

1) 알고리즘 : 컴퓨터가 수행해야 할 과정들을 차례대로 기술한 것.(문제 해결을 위한 단계적 형식의 체계적인 명령어 모음)

2) 순차 : 알고리즘이 기술되는 순서

3) 알고리즘을 순차적으로 기술하는 것은 프로그램을 읽기 편리하게 하므로 시스템 이해에 도움을 줌

 

2. 알고리즘 표현 방법

- 자연어(natural language), 플로우차트(flowcharts), 의사코드(pseudocode), 프로그래밍 언어(programming language)등을 사용하여 표현.

1) 자연어 - 일상생활에서 사용하는 언어(한국어, 영어 등)

2) 플로우차트 - 흐름도 또는 순서도와 같은의미의 용어, 그림 기호를 사용하여 알고리즘을 표현.

3) 의사코드 - 프로그래밍 언어와 유사한 형태의 코드, 특정 프로그래밍 언어를 몰라도 자연어와 유사한 형태로 알고리즘 표현이 가능.

read int x, y
a = x + y
print a

4) 프로그래밍 언어 - 특정 프로그래밍 언어를 사용하여 알고리즘을 기술. 바로 구현이 가능. 프로그래밍 언어에 대한 지식이 필요.

x = int(input("첫 번째 정수를 입력 :"))
y = int(input("두 번째 정수를 입력 :"))
a = x + y
print(a)

 

3. 플로우차트 기호(중요★)

  • 기호의 내부에는 처리해야 할 내용 들어가야 한다.
  • 순서는 위에서 아래, 왼쪽에서 오른쪽을 원칙으로 하며 그 외의 경우는 화살표 사용.
  • 연결선은 서로 교차해도 무관하며 서로 영향을 주지 않는다.
  • 연결선 여러 개가 모여 하나로 합칠 수 있다.
  • 기호의 가로, 세로 비율은 정해져 있지 않으나 잘 구분할 수 있어야 한다.

4. 플로우차트와 의사코드 만들기

5. 실습

1) 의사코드 작성해보기

사용자가 거리를 숫자로 입력하고, 1을 누르면 숫자를 마일에서 킬로미터로 변환하고, 2을 누르면 숫자를 킬로미터에서 마일로 변환한다. 변환 결과를 출력한다.

x = 숫자를 입력
1을 누르면
	x를 킬로미터로 변환
2를 누르면
	x를 마일로 변환
변환된 x값 출력

2) 플로우차트 작성해보기 (주관식으로 빈칸을 뚫고 무엇이 들어가는지 문제도 나옴)

#자동차 타이어 압력을 측정한다.
압력이 40이상이면
	‘Pressure is OK’출력
그렇지 않으면
	‘Pressure is too low’ 출력

6. 예상문제

1. 다음 중 컴퓨터에서 적절한 형태로 알고리즘을 표현한 것은?

① Program 프로그램

② Comment 주석

③ Specification 스펙

④ Description 설명

 

2. 다음 중 차례로 수행해야 할 명령과 가장 관계 있는 용어는?

① flowchart(플로우차트)

② sequence(순차)

③ logic test

④ program design

 

3. 다음 중 개발해야 할 문제를 표현(representing)하는 방법으로 가장 적절한 것은?

① procedure(절차)

② program design

③ machine code (기계코드)

④ flowchart

 

4. 다음 중 문제를 표현하는 방법으로 가장 적절한 것은?

① Comment(주석)

② Pseudocode(의사코드)

③ Logic test

④ Sequence(순차)

 

5. 다음 중 알고리즘을 가장 잘 설명한 것은?

① 일상생활에서 사용하는 언어 -> 자연어

② 복잡한 문체를 여러 개의 작은 문체로 분해한 한 부분 -> 분해

③ 문제 해결을 위한 단계적 형식의 체계적인 명령어 모음 

④ 복잡한 문제에서 핵심적인 부분만 추려 내는 것 -> 추상화

 

6. 다음 중 알고리즘의 목적에 대한 설명으로 가장 적절한 것은?

① 여러 관련된 문제들 안에서 공통적으로 나타나는 패턴을 얻는다. -> 패턴 인식

② 크고 복잡한 문제들 작고 이해하기 쉬운 부분으로 나눈다. -> 분해

③ 문제를 해결하기 위한 단계별 명령을 제공한다.

④ 간단한 도형을 사용하여 문제를 표현한다. -> 플로우차트

 

7. 다음 중 순차(Sequence)를 가장 잘 설명한 것은?

① 논리 연산의 결과 실행되는 다음 순서의 명령

차례대로 수행해야 할 여러 개의 명령

③ 연산자 우선순위에 따른 연산의 순서

순서도에 있는 도형의 한 종류

 

8. 다음 중 알고리즘을 설계할 때 순차(Sequence)의 목적으로 가장 옳은 것은?

① 복잡한 표현식에서 연산자가 적용되는 순서를 결정한다.

② 인간이 소스 코드를 쉽게 이해할 수 있도록 보장한다.

③ 복잡한 문제나 관련된 문제 간의 패턴을 찾는다. -> 패턴인식

④ 모든 명령이 올바른 순서로 수행되는지 확인한다.

 

9. 다음 중 의사코드에 대한 설명과 가장 관계 있는 것은?

① 프로그래밍 언어의 한 종류이다.

② 텍스트 기반의 문제 표현 방법이다.

③ 프로그램의 목적을 텍스트 형태로 기술한 것이다. -> 명세서

④ 컴퓨터가 이해할 수 있는 언어로 번역하여야 한다. -> 컴파일러

 

10. 다음 중 잘 구조화되고 문서화 된 코드의 특징은 무엇인가?

① 프로그램에 오류가 없다.

반복문이 많다.

조건문이 많다.

④ 설명적 명명을 사용한다.

 

11. 다음 중 플로우차트를 가장 잘 설명한 것은?

① 프로그램의 구조를 나타내는 조직의 한 종류

② 프로그램의 목적을 기술(description)한 것

③ 도형을 사용하여 문제를 표현(representing)하는 방법

④ 텍스트 기반으로 프로그램을 설명한 것

 

12. 다음 중 플로우차트에 사용되는 기호를 연결한 것은?

ABCDEF

Input or Output(서류)   Decision(판단)   Process(처리)

④ Start or Stop(터미널)   Connector(연결자)   Arrow(흐름선)

 

13. 아래 의사코드가 나타내는 작업 순서를 가장 잘 설명한 것은 무엇인가?

덧셈 함수()
  첫 번째 숫자 + 두 번째 숫자 반환
뺄셈 함수()
  첫 번째 숫자 - 두 번째 숫자 반환
곱셈 함수()
  첫 번째 숫자 * 두 번째 숫자 반환
나눗셈 함수()
  첫 번째 숫자 / 두 번째 숫자 반환
첫 번째 숫자를 입력한다
두 번째 숫자를 입력한다
만약 ‘+’ 버튼이 눌려지면
  덧셈 함수()를 호출한다
그렇지않고 ‘-’ 버튼이 눌려지면
  뺄셈 함수()를 호출한다
그렇지않고 ‘*’ 버튼이 눌려지면
  곱셈 함수()를 호출한다
그렇지않고 ‘/’ 버튼이 눌려지면
  나눗셈 함수()를 호출한다
결과를 출력한다.

① 4개의 숫자를 입력하고, 2개의 버튼을 눌러 그에 따라 계산하여 결과를 출력한다.

② 2개의 숫자를 입력하고, 4개의 연산을 차례로 수행한 다음 결과를 출력한다.

③ 2개의 숫자를 입력하고, 1개의 버튼을 눌러 그에 따라 계산하여 결과를 출력한다.

④ 2개의 숫자를 입력하고, 4개의 버튼을 눌러 그에 따라 계산하여 결과를 출력한다

 

14. 다음은 욕실 온수기의 가열 여부를 판단하는 의사코드이다. 동일한 표현의 플로우차트를 그리시오.

온수기의 온도를 측정한다
온도가 40도 이상이면
   ‘히터를 OFF’ 출력
 그렇지 않으면
      ‘히터를 ON’ 출력

 

정답 : 1/2/4/2/3/3/2/4/2/4/3/A-2, B-1, C-4, D-3, E-6, F-5/3/위 그림 참고

728x90
Comments