You are on page 1of 24

04.

절차의 흐름 (제어문)
오늘은..

목표. 문제 해결을 위한 절차의 다양한 구조와 흐름을 순서도로 표현한다.

1 작업 중 절차의 구조와 흐름을 이해한다.

2 절차를 제어할 수 있는 조건문의 활용을 이해한다.

3 문제의 발견과 분해 과정을 이해한다.


1
절차의 기본 구조
2

3
 구조(Structure) : 한 절차의 논리적 기본 단위
4

5  3가지 기본구조 : 이 3가지 구조를 이용하면 모든 논리를 표현 가능함


6 • 순서 (sequence)

• 선택 (selection)

• 반복 (loop)

 한 구조를 다른 구조의 입구 또는 출구의 터미널 기호에 연결 가능


 한 구조를 다른 구조의 내부에 중첩하는 것이 가능
1
절차의 기본 구조 – 순서 (sequence)
2

3
 순서 구조(Sequence Structure)
4
• 각 동작이 차례대로 수행
5
• 순서를 시작하면 첫 번째 동작부터 마지막 동작까지 차례대로 수행
6
1
절차의 기본 구조
2

3  선택 구조(Selection Structure)
4 • 판단 구조 (decision structure)
5
• 질문을 하고 질문의 답에 따라 둘 중 하나의 경로를 따라감
6
• 단일 대안 (single-alternative if) / 이중 대안 (dual-alternative if)
1
절차의 기본 구조
2

3
 반복 구조(Loop Structure)
4
• 판단 구조 (decision structure)
5
• 질문을 하고 답이 동작을 요구하면 동작 수행 후 다시 질문하는 구조
6
• 답이 동작을 요구하지 않으면 루프에서 빠져 나옴
1
구조적인 순서도와 의사 코드(pseudo code)
2

pseudo code (의사 코드)


1
과제 01 등굣길 절차의 순서도
2

6
1 정보의 입출력과 처리 절차 작성해 보기
2
◉ 앵무새 인형 프로그램
3
 입력받은 문자를 그대로 말하는
4 시작
인형의 동작을 절차로 만들어 보자.
5
 사용자가
사용자가 입력한
6 문자를 기억한다.

기억해 둔 문자
를 말한다.

종료
1 정보의 입출력과 처리 절차 작성해 보기
2
◉ 앵무새 인형 프로그램 시작
3
 입력받은 문자를 그대로 말하는
4
인형의 동작을 절차로 만들어 보자.
사용자가 입력한
5 문자를 기억한다.

6
 사용자가 stop이라고 입력할 때까지
위의 동작을 계속 반복한다. 입력문자가
true Stop 인가?

false

기억해 둔 문자
를 말한다.

종료
1 문제의 이해와 분석
2

3
‘문제 (Problem)’ ??
4

6
불편해~~
좀 다르게 해보면 안될까?
세상에 없던 이런 것~?!?!
1 문제의 이해와 분석
2

3 문제 해결을 위한 핵심 절차
4

5 ❶ 편의점 직원은 가판대 품목을 분류한다.


예) 잡화, 과자류, 컵라면류, 음료, 냉장식품류, 냉동식품류로 분류한다.
6
❷ 배송 시간에 맞추어 편의점 직원이 각 품목의 분류표를 가게 앞에 거치한다.

❸ 배송 기사는 가게 앞 분류표에 앞에 맞추어 물건을 내려놓는다.

❹ 편의점 직원은 분류표 별로 주문 내역과 일치하는지 배송 기사와 확인한다.


※ 주문 내역과 배송품이 일치하지 않는 경우에 대한 처리를 보완해야 한다.

❺ 편의점 직원은 품목별로 해당 가판대에 물건을 비치한다.


※ 남은 물건은 재고품 비치 공간으로 옮겨 둔다.
1 문제의 분해
2

3 문제의 관찰
4
우진은 서둘러 아르바이트를 마무리하는 중이다. 해외 파견 갔던 삼촌이 3년 만에 귀국하는 날이라 가족이 함께
5
저녁 식사를 하기로 했다. 우진은 유난히 친했던 삼촌으로부터 해외 근무 경험이나 현지 적응기 등 그간의 얘기
6 를 들을 생각에 마음이 바쁘기만 하다. 그때 누나로부터 전화가 왔다.

누나: 우진아, 너 아직 출발 전이지? 올 때 마트 들러 심부름 좀 해주라.


우진: 그래? 뭐... (스마트폰 너머 엄마의 소리가 겹치며 뭔가 불길한 예감)
누나: 오다가 중앙마트에 들러서 딸기랑 바나나 사와. 오는 길에 할머니 댁에 들러서 할머니 모시고 와야
해! 그리고 카우빵집에 가서 내가 예약해 둔 케이크 찾아와. 아, 맞다! 카우빵집 간 김에 단팥빵 10개 사서
할머니 댁에 5개 두고 5개는 집에 가져와. 잠깐! 엄마가 샐러드 소스가 떨어졌다고 중앙마트에서 참깨 소
스도 사오라 하시네.
우진: 으응...

두서없이 쏟아지는 누나의 주문에 머릿속이 복잡해진 우진은 잠시 멈춰 서서 한숨을 쉰다.


1 문제의 분해
2

3 문제의 관찰 – 우진의 할 일을 구분하고 순서를 정해 보자


4
오다가 중앙마트에 들러서 딸기랑 바나나 사와. 오는 길에 할머니 댁에 들러서 할머니 모시고 와야 해! 그리고 카
5
우빵집에 가서 내가 예약해 둔 케이크 찾아와. 아, 맞다! 카우빵집 간 김에 단팥빵 10개 사서 할머니 댁에 5개 두
6 고 5개는 집에 가져와. 잠깐! 엄마가 샐러드 소스가 떨어졌다고 중앙마트에서 참깨 소스도 사오라 하시네.


1 문제의 분해
2

3 문제의 분석과 분해
4 우진의 할 일을 수행할 공간을 기준으로 큼직하게 나누고, 그 장소에서 할 일들을 모아 보자.

6 ❶ 중앙마트에서 할 일

우진의
❷ 할머니 댁에서 할 일
심부름

❸ 카우빵집에서 할 일
1 문제의 분해
2

3 문제의 분석과 분해
4 우진의 할 일을 수행할 공간을 기준으로 큼직하게 나누고, 그 장소에서 할 일들을 모아 보자.

5
중앙마트에 들러서 딸기랑 바나나 사와
6 ❶ 중앙마트에서 할 일
중앙마트에서 참깨 소스도 사오라 하시네.

우진의 할머니 댁에 들러서 할머니 모시고 와야 해!


❷ 할머니 댁에서 할 일
심부름 할머니 댁에 (단팥빵) 5개 두고

그리고 카우빵집에 가서 예약해 둔 케이크 찾아와.


❸ 카우빵집에서 할 일
카우빵집에 간 김에 단팥빵 10개 사서
1 문제의 분해
2

3 문제 해결을 위한 절차 수립
4 모든 일은 생각대로 풀리지 않을 수 있다.
우리가 정리한 대로 우진이 작업을 수행하는 동안 발생할 수 있는 예외 상황은 무엇이 있을까?
5

6 중앙마트에 들러서 딸기랑 바나나 사와.


≫ 만약 딸기나 바나나가 없으면 오렌지를 산다.
❶ 중앙마트에서 할 일 중앙마트에서 참깨 소스도 사 오라 하시네.

그리고 카우빵집에 가서 예약해 둔 케익 찾아와.


우진의
❷ 카우빵집에서 할 일 카우빵집에 간 김에 단팥빵 10개 사서
심부름

할머니 댁에 들러서 할머니 모시고 와야 해!

❸ 할머니 댁에서 할 일
할머니 댁에 (단팥빵) 5개 두고
1 문제의 분해
2

3 문제 해결을 위한 절차 수립
4 모든 일은 생각대로 풀리지 않을 수 있다.
우리가 정리한 대로 우진이 작업을 수행하는 동안 발생할 수 있는 예외 상황은 무엇이 있을까?
5

6 중앙마트에 들러서 딸기랑 바나나 사와.


≫ 만약 딸기나 바나나가 없으면 오렌지를 산다.
❶ 중앙마트에서 할 일 중앙마트에서 참깨 소스도 사 오라 하시네.
≫ 만약 참깨 소스가 없으면 사지 않는다. (오렌지 드레싱을 산다)

그리고 카우빵집에 가서 예약해 둔 케익 찾아와.


우진의 ≫ 만약 케이크가 없으면 환불받거나 다른 케익을 받는다.
❷ 카우빵집에서 할 일 카우빵집에 간 김에 단팥빵 10개 사서
심부름
≫ 만약 단팥빵이 없거나 돈이 부족하면 사지 않는다.

할머니 댁에 들러서 할머니 모시고 와야 해!


≫ 만약 할머니가 안 계시면 집으로 간다.
❸ 할머니 댁에서 할 일 할머니 댁에 (단팥빵) 5개 두고
≫ 만약 단팥빵을 사지 않았다면 하지 않는다.
1 문제의 분해
2

3
문제 해결을 위한 절차 수립
4

5
해결해야 할 문제를 잘 관찰하고 해석한다.
6
문제를 해결하기 위해 필요한 정보와 핵심 문제들을 추출한다.

문제를 해결하기 위해 수행해야 할 작업들을 공간과 시간 순서로 나열해 본다. (절차를 잡는다)

모든 일은 생각대로 풀리지 않을 수 있다. 예외 상황이 발생할 수 있는지 살펴보고 보강해 준다.


1
실습 – 369 게임
2
◉ 게임에 참여하는 사람들이 3, 6, 9 게임의 규칙에 맞게 1부터 99까지 숫자 혹은 구호를 말하는 동안,
3
컴퓨터가 오류가 있는지 판단하고 심판을 보는 절차를 순서도로 표현해 보자.
4
 게임 참가자들은 미리 말할 순서를 정하고 1부터 차례로 숫자를 말한다.
5
 숫자에 자릿수에 상관없이 3, 6, 9이 포함될 경우, 포함된 3, 6, 9의 개수만큼 ‘박수’를 말한다.
6
예) 3, 23, 46, 19의 순서에는 ‘박수’를 말한다.
예) 30, 35, 39 – ‘박수’, 33, 36, 69, 93 – ‘박수박수’

 컴퓨터는 게임 참여자가 차례로 말해야 할 숫자 혹은 구호를 미리 예상하였다가


참여자가 틀린 답을 말한 경우 '틀렸습니다. __를 말해야 합니다’라고 출력한다.

 모든 참여자가 1부터 99까지 성공적으로 숫자 혹은 구호를 말했다면


‘성공했습니다’라고 출력한다.
1
실습 – 369 게임
2
◉ 게임에 참여하는 사람들이 3, 6, 9 게임의 규칙에 맞게 1부터 99까지 숫자 혹은 구호를 말하는 동안,
3
컴퓨터가 오류가 있는지 판단하고 심판을 보는 절차를 순서도로 표현해 보자.
4
지금부터 369 게임을 시작합니다. 지금부터 369 게임을 시작합니다.
5 1 1
2 2
6
박수 박수
4 4
5 5
박수 6
7 틀렸습니다. ‘박수’를 말해야 합니다.

박수 (98)
박수박수(99)

성공했습니다.

※ 검은색은 컴퓨터의 출력, 파란색은 게임 참여자의 입력


1
실습 – 369 게임
2

출처: 나무위키 https://namu.wiki/w/369

You might also like