ch. 5 실행제어ssjarng.chosun.ac.kr/matlab/chapter05.pdf · 2017-05-29 · 3)...

45
CH. 5 실행 제어

Upload: others

Post on 20-Jun-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: CH. 5 실행제어ssjarng.chosun.ac.kr/matlab/chapter05.pdf · 2017-05-29 · 3) 관계연산식의경우 A=[2 5 -20]이고B=[9 1 7]일때, 4) 매매랩트랩명령어any와all-any

CH. 5 실행 제어실행 제어

Page 2: CH. 5 실행제어ssjarng.chosun.ac.kr/matlab/chapter05.pdf · 2017-05-29 · 3) 관계연산식의경우 A=[2 5 -20]이고B=[9 1 7]일때, 4) 매매랩트랩명령어any와all-any

학습 목표학습 목표

실행 제어의 개념을 이해한다.1

선택문을 이해하고 이를 이용한 스크립트를2 작성한다.2반복문을 이해하고 이를 이용한 스크립트를 작

성한다.3

MATLAB PROGRAMMING CH. 5 2

Page 3: CH. 5 실행제어ssjarng.chosun.ac.kr/matlab/chapter05.pdf · 2017-05-29 · 3) 관계연산식의경우 A=[2 5 -20]이고B=[9 1 7]일때, 4) 매매랩트랩명령어any와all-any

MATLAB PROGRAMMING CH. 5 3

Page 4: CH. 5 실행제어ssjarng.chosun.ac.kr/matlab/chapter05.pdf · 2017-05-29 · 3) 관계연산식의경우 A=[2 5 -20]이고B=[9 1 7]일때, 4) 매매랩트랩명령어any와all-any

실행 제어

MATLAB PROGRAMMING CH. 5 4

Page 5: CH. 5 실행제어ssjarng.chosun.ac.kr/matlab/chapter05.pdf · 2017-05-29 · 3) 관계연산식의경우 A=[2 5 -20]이고B=[9 1 7]일때, 4) 매매랩트랩명령어any와all-any

5.1 선택문5.1.1 if 문

(1) if d 문(1) if-end 문

MATLAB PROGRAMMING CH. 5 5

Page 6: CH. 5 실행제어ssjarng.chosun.ac.kr/matlab/chapter05.pdf · 2017-05-29 · 3) 관계연산식의경우 A=[2 5 -20]이고B=[9 1 7]일때, 4) 매매랩트랩명령어any와all-any

조건식으로 쓸 수 있는 표현 참 또는 거짓의 논리 값을 가지는 수식참 는 거짓의 논리 값을 가지는 수식

1) 논리값(true 또는 false), 스칼라 변수 또는 배열, 2) 논리 연산자를 포함하는 논리 연산식3) 관계 연산자를 포함하는 관계 연산식4) 매트랩 명령어 any 또는 all

1), 논리값, 스칼라 변수, 배열의 경우

0이 아닌 값 = True

0 = False

MATLAB PROGRAMMING CH. 5 6

Page 7: CH. 5 실행제어ssjarng.chosun.ac.kr/matlab/chapter05.pdf · 2017-05-29 · 3) 관계연산식의경우 A=[2 5 -20]이고B=[9 1 7]일때, 4) 매매랩트랩명령어any와all-any

2) 논리 연산식의 경우2). 논리 연산식의 경우

A=[1 -9 6]이고 B=[0 8 4]일 때,

MATLAB PROGRAMMING CH. 5 7

Page 8: CH. 5 실행제어ssjarng.chosun.ac.kr/matlab/chapter05.pdf · 2017-05-29 · 3) 관계연산식의경우 A=[2 5 -20]이고B=[9 1 7]일때, 4) 매매랩트랩명령어any와all-any

3) 관계 연산식의 경우

A=[2 5 -20]이고 B=[9 1 7]일 때,

4) 매트랩 명령어 any와 all) 매 랩 명령어 y와

- any매트랩 명령어 any는 입력으로 주어진 벡터 또는 배열의 원소 중 하나 이상매 랩 명령어 y 입력 주어진 벡터 배열의 원 중 하나 이상의 0이 아닌 값을 포함하면 참을 나타내는 1을, 그렇지 않으면 거짓을 나타내는 0을 리턴

A=[1 2 0] 에 대해

MATLAB PROGRAMMING CH. 5 8

Page 9: CH. 5 실행제어ssjarng.chosun.ac.kr/matlab/chapter05.pdf · 2017-05-29 · 3) 관계연산식의경우 A=[2 5 -20]이고B=[9 1 7]일때, 4) 매매랩트랩명령어any와all-any

- all매트랩 명령어 all은 입력으로 주어진 벡터 또는 배열의 모든 원소가 0이 아닌 값이면 참을 나타내는 1을, 그렇지 않으면 거짓을 나타내는 0을 리턴

A=[1 2 0] 에 대해

MATLAB PROGRAMMING CH. 5 9

Page 10: CH. 5 실행제어ssjarng.chosun.ac.kr/matlab/chapter05.pdf · 2017-05-29 · 3) 관계연산식의경우 A=[2 5 -20]이고B=[9 1 7]일때, 4) 매매랩트랩명령어any와all-any

(예제 5-1)다음의 스크립트를 ex_5_1.m으로 저장한 후, 커맨드 창에서 실행해보라.

MATLAB PROGRAMMING CH. 5 10

Page 11: CH. 5 실행제어ssjarng.chosun.ac.kr/matlab/chapter05.pdf · 2017-05-29 · 3) 관계연산식의경우 A=[2 5 -20]이고B=[9 1 7]일때, 4) 매매랩트랩명령어any와all-any

실행 결과(실행 결과)

MATLAB PROGRAMMING CH. 5 11

Page 12: CH. 5 실행제어ssjarng.chosun.ac.kr/matlab/chapter05.pdf · 2017-05-29 · 3) 관계연산식의경우 A=[2 5 -20]이고B=[9 1 7]일때, 4) 매매랩트랩명령어any와all-any

(2) if-else-end 문

MATLAB PROGRAMMING CH. 5 12

Page 13: CH. 5 실행제어ssjarng.chosun.ac.kr/matlab/chapter05.pdf · 2017-05-29 · 3) 관계연산식의경우 A=[2 5 -20]이고B=[9 1 7]일때, 4) 매매랩트랩명령어any와all-any

(예제 5-2)프로그래밍 개요 과목의 시험에서 받은 점수를 입력하여 80 점 이상이면“Your result is Pass.” "Congratulation! Roll up the advanced course." 를 출력하고 그렇지 않으면 “Your result is Fail.” "You must take the course again!"을출력하는 스크립트를 작성하시오.

MATLAB PROGRAMMING CH. 5 13

Page 14: CH. 5 실행제어ssjarng.chosun.ac.kr/matlab/chapter05.pdf · 2017-05-29 · 3) 관계연산식의경우 A=[2 5 -20]이고B=[9 1 7]일때, 4) 매매랩트랩명령어any와all-any

(실행 결과)

MATLAB PROGRAMMING CH. 5 14

Page 15: CH. 5 실행제어ssjarng.chosun.ac.kr/matlab/chapter05.pdf · 2017-05-29 · 3) 관계연산식의경우 A=[2 5 -20]이고B=[9 1 7]일때, 4) 매매랩트랩명령어any와all-any

(3) if-elseif-else-end

MATLAB PROGRAMMING CH. 5 15

Page 16: CH. 5 실행제어ssjarng.chosun.ac.kr/matlab/chapter05.pdf · 2017-05-29 · 3) 관계연산식의경우 A=[2 5 -20]이고B=[9 1 7]일때, 4) 매매랩트랩명령어any와all-any

(예제 5-3)프로그래밍 과목 성적을 입력받아 90점 이상이면 A, 80점 이상이면 B, 70점 이상이면 점 이상이면 점 미만이면 등급을 나 결과를 출력하이면 C, 60점 이상이면 D, 60점 미만이면 F로 등급을 나누고 그 결과를 출력하는스크립트를 작성하시오.

MATLAB PROGRAMMING CH. 5 16

Page 17: CH. 5 실행제어ssjarng.chosun.ac.kr/matlab/chapter05.pdf · 2017-05-29 · 3) 관계연산식의경우 A=[2 5 -20]이고B=[9 1 7]일때, 4) 매매랩트랩명령어any와all-any

(실행 결과)

MATLAB PROGRAMMING CH. 5 17

Page 18: CH. 5 실행제어ssjarng.chosun.ac.kr/matlab/chapter05.pdf · 2017-05-29 · 3) 관계연산식의경우 A=[2 5 -20]이고B=[9 1 7]일때, 4) 매매랩트랩명령어any와all-any

5.1.2 switch 문하나의 변수에 대해서 그 변수가 가질 수 있는 다양한 값에 따라 명령어들을 선택적하나의 변수에 대해서 변수가 가질 수 있는 다양한 값에 따라 명령어들을 선택적으로 실행할 수 있게 해주는 선택문

case 상수 또는 문자 또는 문자열 또는 집합

MATLAB PROGRAMMING CH. 5 18

Page 19: CH. 5 실행제어ssjarng.chosun.ac.kr/matlab/chapter05.pdf · 2017-05-29 · 3) 관계연산식의경우 A=[2 5 -20]이고B=[9 1 7]일때, 4) 매매랩트랩명령어any와all-any

(예제 5-4)앞의 예제 5-3의 스크립트를 switch 문으로 재작성하시오.앞의 예제 의 립 를 문 재작성하시

MATLAB PROGRAMMING CH. 5 19

Page 20: CH. 5 실행제어ssjarng.chosun.ac.kr/matlab/chapter05.pdf · 2017-05-29 · 3) 관계연산식의경우 A=[2 5 -20]이고B=[9 1 7]일때, 4) 매매랩트랩명령어any와all-any

(실행 결과)(실행 결과)

MATLAB PROGRAMMING CH. 5 20

Page 21: CH. 5 실행제어ssjarng.chosun.ac.kr/matlab/chapter05.pdf · 2017-05-29 · 3) 관계연산식의경우 A=[2 5 -20]이고B=[9 1 7]일때, 4) 매매랩트랩명령어any와all-any

5.2 반복문

5.2.1 for 문지정된 반복 횟수만큼 어진 명령어들을 반복지정된 반복 횟수만큼 주어진 명령어들을 반복

MATLAB PROGRAMMING CH. 5 21

Page 22: CH. 5 실행제어ssjarng.chosun.ac.kr/matlab/chapter05.pdf · 2017-05-29 · 3) 관계연산식의경우 A=[2 5 -20]이고B=[9 1 7]일때, 4) 매매랩트랩명령어any와all-any

for x=1: 2: 5

증가값이 2이므로 x=1, 3, 5 에 대해서 반복하게 됨으로 반복횟수는 3회가 됨

for x=1:5

증가값이 디폴트로 1이 됨으로 x=1 2 3 4 5 에 대해서 반복하게 됨으로 반복증가값이 디폴트로 1이 됨으로 x=1, 2, 3, 4, 5 에 대해서 반복하게 됨으로 반복횟수는 5회가 됨.

for x=AA=[1 3 5 7 9]에 대해

벡터 의 각 원 의 값을 하나씩 차례대 즉 의 값을 가x는 벡터 A의 각 원소의 값을 하나씩 차례대로, 즉 x=1, 3, 5, 7, 9 의 값을 가지면서 총 5회의 반복을 하게 됨.

MATLAB PROGRAMMING CH. 5 22

Page 23: CH. 5 실행제어ssjarng.chosun.ac.kr/matlab/chapter05.pdf · 2017-05-29 · 3) 관계연산식의경우 A=[2 5 -20]이고B=[9 1 7]일때, 4) 매매랩트랩명령어any와all-any

(예제 5-5)2 이상의 자연수 x를 입력받아 x 팩토리얼 (x!)을 계산하는 스크립트를 작성이상의 자연수 를 입력받아 팩 리얼 ( )을 계산하는 립 를 작성하시오.

MATLAB PROGRAMMING CH. 5 23

Page 24: CH. 5 실행제어ssjarng.chosun.ac.kr/matlab/chapter05.pdf · 2017-05-29 · 3) 관계연산식의경우 A=[2 5 -20]이고B=[9 1 7]일때, 4) 매매랩트랩명령어any와all-any

(실행 결과)(실행 결과)

MATLAB PROGRAMMING CH. 5 24

Page 25: CH. 5 실행제어ssjarng.chosun.ac.kr/matlab/chapter05.pdf · 2017-05-29 · 3) 관계연산식의경우 A=[2 5 -20]이고B=[9 1 7]일때, 4) 매매랩트랩명령어any와all-any

(예제 5-6)행벡터를 입력받아 모든 원소의 합을 구하는 스크립트를 작성하시오.

MATLAB PROGRAMMING CH. 5 25

Page 26: CH. 5 실행제어ssjarng.chosun.ac.kr/matlab/chapter05.pdf · 2017-05-29 · 3) 관계연산식의경우 A=[2 5 -20]이고B=[9 1 7]일때, 4) 매매랩트랩명령어any와all-any

(실행 결과)

MATLAB PROGRAMMING CH. 5 26

Page 27: CH. 5 실행제어ssjarng.chosun.ac.kr/matlab/chapter05.pdf · 2017-05-29 · 3) 관계연산식의경우 A=[2 5 -20]이고B=[9 1 7]일때, 4) 매매랩트랩명령어any와all-any

5.2.2 while 문While 문은 주어진 조건이 만족되는 동안 반복

MATLAB PROGRAMMING CH. 5 27

Page 28: CH. 5 실행제어ssjarng.chosun.ac.kr/matlab/chapter05.pdf · 2017-05-29 · 3) 관계연산식의경우 A=[2 5 -20]이고B=[9 1 7]일때, 4) 매매랩트랩명령어any와all-any

MATLAB PROGRAMMING CH. 5 28

Page 29: CH. 5 실행제어ssjarng.chosun.ac.kr/matlab/chapter05.pdf · 2017-05-29 · 3) 관계연산식의경우 A=[2 5 -20]이고B=[9 1 7]일때, 4) 매매랩트랩명령어any와all-any

MATLAB PROGRAMMING CH. 5 29

Page 30: CH. 5 실행제어ssjarng.chosun.ac.kr/matlab/chapter05.pdf · 2017-05-29 · 3) 관계연산식의경우 A=[2 5 -20]이고B=[9 1 7]일때, 4) 매매랩트랩명령어any와all-any

(실행 결과)

MATLAB PROGRAMMING CH. 5 30

Page 31: CH. 5 실행제어ssjarng.chosun.ac.kr/matlab/chapter05.pdf · 2017-05-29 · 3) 관계연산식의경우 A=[2 5 -20]이고B=[9 1 7]일때, 4) 매매랩트랩명령어any와all-any

5.3 중첩 조건문과 중첩 반복문중첩 조건문과 중첩 반복문

(예, 중첩된 for문 )

MATLAB PROGRAMMING CH. 5 31

Page 32: CH. 5 실행제어ssjarng.chosun.ac.kr/matlab/chapter05.pdf · 2017-05-29 · 3) 관계연산식의경우 A=[2 5 -20]이고B=[9 1 7]일때, 4) 매매랩트랩명령어any와all-any

(예제 5-8)자연수로 구성된 행벡터를 입력받아 각 원소가 짝수이면 그 수에 해당하는 만자연수 구성된 행벡터를 입력받아 각 원 가 짝수이면 수에 해당하는 만큼 문자 ‘*’를 출력하는 스크립트를 작성하시오.

MATLAB PROGRAMMING CH. 5 32

Page 33: CH. 5 실행제어ssjarng.chosun.ac.kr/matlab/chapter05.pdf · 2017-05-29 · 3) 관계연산식의경우 A=[2 5 -20]이고B=[9 1 7]일때, 4) 매매랩트랩명령어any와all-any

(실행 결과)

MATLAB PROGRAMMING CH. 5 33

Page 34: CH. 5 실행제어ssjarng.chosun.ac.kr/matlab/chapter05.pdf · 2017-05-29 · 3) 관계연산식의경우 A=[2 5 -20]이고B=[9 1 7]일때, 4) 매매랩트랩명령어any와all-any

5.4 continue 와 break 명령어

5.4.1 continue

반복문(for 와 while 문) 안에서 다음 반복 과정으로 넘어가게 하는 명령어

MATLAB PROGRAMMING CH. 5 34

Page 35: CH. 5 실행제어ssjarng.chosun.ac.kr/matlab/chapter05.pdf · 2017-05-29 · 3) 관계연산식의경우 A=[2 5 -20]이고B=[9 1 7]일때, 4) 매매랩트랩명령어any와all-any

MATLAB PROGRAMMING CH. 5 35

Page 36: CH. 5 실행제어ssjarng.chosun.ac.kr/matlab/chapter05.pdf · 2017-05-29 · 3) 관계연산식의경우 A=[2 5 -20]이고B=[9 1 7]일때, 4) 매매랩트랩명령어any와all-any

(실행 결과)

MATLAB PROGRAMMING CH. 5 36

Page 37: CH. 5 실행제어ssjarng.chosun.ac.kr/matlab/chapter05.pdf · 2017-05-29 · 3) 관계연산식의경우 A=[2 5 -20]이고B=[9 1 7]일때, 4) 매매랩트랩명령어any와all-any

5.4.2 break

반복문(for 와 while 문) 안에서 반복을 중단하고 반복문을 끝내게 하는 명령어

MATLAB PROGRAMMING CH. 5 37

Page 38: CH. 5 실행제어ssjarng.chosun.ac.kr/matlab/chapter05.pdf · 2017-05-29 · 3) 관계연산식의경우 A=[2 5 -20]이고B=[9 1 7]일때, 4) 매매랩트랩명령어any와all-any

(예제 5-10)앞의 예제 5-9의 스크립트를 while 문과 break 문을 이용하여 재작성하시오.앞의 예제 5 9의 스크립트를 while 문과 break 문을 이용하여 재작성하시오.

MATLAB PROGRAMMING CH. 5 38

Page 39: CH. 5 실행제어ssjarng.chosun.ac.kr/matlab/chapter05.pdf · 2017-05-29 · 3) 관계연산식의경우 A=[2 5 -20]이고B=[9 1 7]일때, 4) 매매랩트랩명령어any와all-any

(실행 결과)

MATLAB PROGRAMMING CH. 5 39

Page 40: CH. 5 실행제어ssjarng.chosun.ac.kr/matlab/chapter05.pdf · 2017-05-29 · 3) 관계연산식의경우 A=[2 5 -20]이고B=[9 1 7]일때, 4) 매매랩트랩명령어any와all-any

MATLAB PROGRAMMING CH. 5 40

Page 41: CH. 5 실행제어ssjarng.chosun.ac.kr/matlab/chapter05.pdf · 2017-05-29 · 3) 관계연산식의경우 A=[2 5 -20]이고B=[9 1 7]일때, 4) 매매랩트랩명령어any와all-any

MATLAB PROGRAMMING CH. 5 41

Page 42: CH. 5 실행제어ssjarng.chosun.ac.kr/matlab/chapter05.pdf · 2017-05-29 · 3) 관계연산식의경우 A=[2 5 -20]이고B=[9 1 7]일때, 4) 매매랩트랩명령어any와all-any

(실행 결과)

MATLAB PROGRAMMING CH. 5 42

Page 43: CH. 5 실행제어ssjarng.chosun.ac.kr/matlab/chapter05.pdf · 2017-05-29 · 3) 관계연산식의경우 A=[2 5 -20]이고B=[9 1 7]일때, 4) 매매랩트랩명령어any와all-any

MATLAB PROGRAMMING CH. 5 43

Page 44: CH. 5 실행제어ssjarng.chosun.ac.kr/matlab/chapter05.pdf · 2017-05-29 · 3) 관계연산식의경우 A=[2 5 -20]이고B=[9 1 7]일때, 4) 매매랩트랩명령어any와all-any

MATLAB PROGRAMMING CH. 5 44

Page 45: CH. 5 실행제어ssjarng.chosun.ac.kr/matlab/chapter05.pdf · 2017-05-29 · 3) 관계연산식의경우 A=[2 5 -20]이고B=[9 1 7]일때, 4) 매매랩트랩명령어any와all-any

(실행 결과)

MATLAB PROGRAMMING CH. 5 45