- 5장 제어연산 이론contents.kocw.or.kr/document/region/2010/01/01/01_01_05... ·...

16
-5. 제어연산(이론 1)

Transcript of - 5장 제어연산 이론contents.kocw.or.kr/document/region/2010/01/01/01_01_05... ·...

Page 1: - 5장 제어연산 이론contents.kocw.or.kr/document/region/2010/01/01/01_01_05... · 2010-07-23 · •For 루프: 카운터터미널( -입력)과반복터미널( -출력)로구성

- 5장. 제어연산(이론 1)

Page 2: - 5장 제어연산 이론contents.kocw.or.kr/document/region/2010/01/01/01_01_05... · 2010-07-23 · •For 루프: 카운터터미널( -입력)과반복터미널( -출력)로구성

• 요약

• For 루프

• 데이터 형 변환

• While 루프

• 시프트 레지스터

목 차

1/15

Page 3: - 5장 제어연산 이론contents.kocw.or.kr/document/region/2010/01/01/01_01_05... · 2010-07-23 · •For 루프: 카운터터미널( -입력)과반복터미널( -출력)로구성

요 약

2/15

이 장에서는 LabVIEW의 제어연산을 구현하는 방법을 설명한다. 본 장에서는 While 루프, For 루프, 데이터 형 변홖, 시프트 레지스터에 대하여소개한다.

Page 4: - 5장 제어연산 이론contents.kocw.or.kr/document/region/2010/01/01/01_01_05... · 2010-07-23 · •For 루프: 카운터터미널( -입력)과반복터미널( -출력)로구성

For 루프

3/15

• For 루프: 정해준 숫자만큼 루프를 실행하고 멈추는 구조• While 루프: 조건이 참(True)일 때 ⇒ VI를 반복적으로 실행하는 제어문• For 루프는 미리 결정된 횟수만큼 실행을 계속하지만 While 루프는 어떤조건 입력이 거짓(False)이 될 때까지 실행을 계속하는 차이점이 있음.• For 루프: 함수 > 프로그래밍 > 구조

Page 5: - 5장 제어연산 이론contents.kocw.or.kr/document/region/2010/01/01/01_01_05... · 2010-07-23 · •For 루프: 카운터터미널( -입력)과반복터미널( -출력)로구성

4/15

For 루프

• 그림은 LabVIEW에서 For 루프, For 루프 기능과 동일한 흐름도, For 루프기능의 유사 코드 예제를 보여주고 있음.• For 루프: 카운터 터미널( -입력)과 반복 터미널( -출력)로 구성• 루프 바깥으로부터 카운터 터미널을 하나는 상수로 지정 할 수 있고, 또 다른 하나는 컨트롤로 지정.

Page 6: - 5장 제어연산 이론contents.kocw.or.kr/document/region/2010/01/01/01_01_05... · 2010-07-23 · •For 루프: 카운터터미널( -입력)과반복터미널( -출력)로구성

5/15

For 루프 예제 1

For 루프는 100초간 매 초마다 난수를 생성하고 숫자 인디케이터에 난수를 표시

• 난수(0-1): 0에서 1사이의 난수를 생성하는 함수(함수 > 프로그래밍 > 숫자형)

• 다음 ms 배수까지 기다림: 입력된 값이 ms의 배수가 될 때까지 기다리는 함수(함수 > 프로그래밍 > 타이밍)

Page 7: - 5장 제어연산 이론contents.kocw.or.kr/document/region/2010/01/01/01_01_05... · 2010-07-23 · •For 루프: 카운터터미널( -입력)과반복터미널( -출력)로구성

6/15

For 루프 예제 2

For 루프를 이용하여 웨이브 폼 차트에서 데이터 값의 변화를 구현

• 시간 지연: 호출된 VI를 얼마나 오랜 시간 지연할 지를 초단위로 설정하는 함수• 함수 > 프로그래밍 > 타이밍

Page 8: - 5장 제어연산 이론contents.kocw.or.kr/document/region/2010/01/01/01_01_05... · 2010-07-23 · •For 루프: 카운터터미널( -입력)과반복터미널( -출력)로구성

데이터 형 변환

7/15

• 대부분의 숫자 컨트롤과 인디케이터: 배정도 부동소수점(DBL)• 그래픽 프로그램에서 숫자: 정수(바이트[I8], 워드[I16], 또는 롱[I32]), 부동소수(단정도, 배정도, 확장 정밀도)⇒ 서로 다른 데이터 형과 2개의 터미널을 서로 와이어 하는 경우: 강제형 변환점(Coercion dot)이 나타남

Page 9: - 5장 제어연산 이론contents.kocw.or.kr/document/region/2010/01/01/01_01_05... · 2010-07-23 · •For 루프: 카운터터미널( -입력)과반복터미널( -출력)로구성

8/15

While 루프

• While 루프: 어떤 조건이 만족될 때까지 코드를 반복하는 구조• 텍스트 기반의 프로그래밍 언어 ⇒ Do Loop, Repeat-Until Loop

Page 10: - 5장 제어연산 이론contents.kocw.or.kr/document/region/2010/01/01/01_01_05... · 2010-07-23 · •For 루프: 카운터터미널( -입력)과반복터미널( -출력)로구성

9/15

• 반복 터미널(출력): 0에서부터 시작하여 1씩 증가하는 I32 정수 값. ⇒ While 루프의 반복 횟수는 N+1.

• 와 조건 터미널(입력)• 조건 터미널: 참인 경우 정지, 참이면 계속.

• 는 참 값이 들어오면 While 루프를 멈춤• 는 참 값이 들어오면 While 루프를 실행

Page 11: - 5장 제어연산 이론contents.kocw.or.kr/document/region/2010/01/01/01_01_05... · 2010-07-23 · •For 루프: 카운터터미널( -입력)과반복터미널( -출력)로구성

10/15

• While 루프는 난수와 숫자 컨트롤에 입력된 값의 합이 100보다 크면 계속 동작

While 루프 예제(참인 경우 계속)

Page 12: - 5장 제어연산 이론contents.kocw.or.kr/document/region/2010/01/01/01_01_05... · 2010-07-23 · •For 루프: 카운터터미널( -입력)과반복터미널( -출력)로구성

11/15

• While 루프는 난수와 숫자 컨트롤에 입력된 값의 합이 100보다 크면 실행이 정지.

While 루프 예제(참인 경우 정지)

Page 13: - 5장 제어연산 이론contents.kocw.or.kr/document/region/2010/01/01/01_01_05... · 2010-07-23 · •For 루프: 카운터터미널( -입력)과반복터미널( -출력)로구성

12/15

시프트 레지스터

• 시프트 레지스터(Shift Register: ): For 루프 또는 While 루프에서만 사용할 수있고 일정의 지역 변수로써 현재 반복으로부터 다음 반복으로 값을 전달.

• 시프트 레지스터: 루프 테두리의 각각 다른 수직 측면 위에 일직선으로 마주보는터미널의 쌍으로 구성

Page 14: - 5장 제어연산 이론contents.kocw.or.kr/document/region/2010/01/01/01_01_05... · 2010-07-23 · •For 루프: 카운터터미널( -입력)과반복터미널( -출력)로구성

13/15

시프트 레지스터1

Page 15: - 5장 제어연산 이론contents.kocw.or.kr/document/region/2010/01/01/01_01_05... · 2010-07-23 · •For 루프: 카운터터미널( -입력)과반복터미널( -출력)로구성

14/15

시프트 레지스터를 사용한 For 루프와 사용하지 않은 For루프

(a)는 시프트 레지스터가 없는 일반적인 for 루프에 관한 것이다. [For 루프 연산](첫 번째 반복) 0 일 때 ⇒ (0+0)×2 = 0(두 번째 반복) 1 일 때 ⇒ (0+1)×2 = 2(세 번째 반복) 2 일 때 ⇒ (0+2)×2 = 4(네 번째 반복) 3 일 때 ⇒ (0+3)×2 = 6(다섯 번째 반복) 4 일 때 ⇒ (0+4)×2 = 8

Page 16: - 5장 제어연산 이론contents.kocw.or.kr/document/region/2010/01/01/01_01_05... · 2010-07-23 · •For 루프: 카운터터미널( -입력)과반복터미널( -출력)로구성

15/15

(b)는 시프트 레지스터를 사용하여 for 루프에 연산을 한 것이다. [시프트 레지스터를 이용한 For 루프 연산](첫 번째 반복) 0 일 때 ⇒ (0+0)×2 = 0(두 번째 반복) 1 일 때 ⇒ (0+1)×2 = 2(세 번째 반복) 2 일 때 ⇒ (2+2)×2 = 8(네 번째 반복) 3 일 때 ⇒ (8+3)×2 = 22(다섯 번째 반복) 4 일 때 ⇒ (22+4)×2 = 52