레이블이 For Loop인 게시물을 표시합니다. 모든 게시물 표시
레이블이 For Loop인 게시물을 표시합니다. 모든 게시물 표시

Labview: 반복문 (2)

2. For 반복문

For 문은 지정된 범위 안의 명령들을 '정해진 횟수만큼' 반복하는 명령문이다.
블록 다이어그램 창에 For 반복문을 추가할 수 있다.

사각형으로 표현되는 For 반복문에서 눈에 띄는 두 부분이 있는데, 하나는 '반복 터미널'이고 다른 하나는 '카운터 터미널'이다.

반복 터미널은 For 반복문의 왼쪽 위에 위치한 N 모양의 터미널이고, 여기에 값을 연결하여 반복의 횟수를 전달할 수 있다.
카운터 터미널은 For 반복문의 왼쪽 아래에 위치한 i 모양의 터미널이고, 현재의 반복 횟수를 나타낸다.
간단하게 아래와 같이 프로그램을 작성해보자.

최대 반복 횟수를 10회로 하고 위의 프로그램을 실행시켰다.
크기가 10인 정수형 배열의 형태로 결과가 나온다.
이런 결과는 반복문의 실행 결과를 '인덱싱' 처리하여 배열화 시켜주는 랩뷰의 고마운 기능 덕분인데,
만약 이게 싫다면 인덱싱을 취소할 수 있고, 그럼 가장 마지막의 실행 결과만 전달된다.

반복문의 인덱싱과 관련하여 아래의 프로그램을 보자.

이 프로그램은 10개의 원소를 가진 'Input' 배열을 For 반복문에 연결하여 현재의 반복 횟수와 더하는 프로그램이다.
입력 배열도 마찬가지로 인덱싱을 통해 원소가 하나씩 전달되는 것을 확인할 수 있다.

랩뷰의 또 다른 반복문인 While문은 다음 시간에... ㅎㅎㅎ


spacer

Labview Basic: 반복문 (1)

1. 반복문이란??

Java나 C#과 같은 프로그래밍 언어를 조금.. 아~주 조금 접해본 사람이라 하더라도,
반복문에 대해서는 들어도 봤고 써보기도 했을 것이다.
어찌보면 프로그래밍의 기본 중에 기본이 조건문과 반복문이다보니 프로그램을 공부하는 사람으로써
내용을 살펴보지 않을 수 없잖아?? ㅎㅎ

반복문따윈 없는 아주 간단한 프로그램을 하나 만들어보자.

프론트패널에 입력과 출력을 하나씩 두고, 그냥 와이어로 연결한 아주 간단한 프로그램인데,

VI를 실행시키고 슬라이드를 조정했을 때, 슬라이드는 변화가 있지만 값에는 전혀 변화가 없다.
이 상태에서 다시 한번 VI를 실행시키면...

이제야 값이 변화되었다.
이런 결과의 첫번째 원인은 바로!!
'나는 VI를 실행시키고 슬라이드를 조정했지만, 프로그램은 동작하지 않았다.'
라는 말이 정답이다.
이 프로그램의 동작은 '슬라이드'의 입력 값을 '밸류'에 '전달'하는 것인데,
나는 VI를 실행시켰으나, 슬라이드를 조정할 때는 이러한 '전달'이라는 행동이 없었다는 뜻이다.
다시 말해, 내가 VI를 실행시켰을 때는 '분명히' 실행 되었으나 프로그램의 시퀀스가 너무 짧아
순식간에 끝이 났고, 슬라이드를 조정할 때는 이미 프로그램이 종료되고 난 이후였다는 의미이다.  
그래서, 다시 한번 VI를 실행했을 때는 이전 단계에서 변경된 '6'이라는 값이 '정상적'으로 전달되었기
때문에 밸류에 6이 표시되었다.
그렇다면 프로그램의 동일한 시퀀스를 엄청 길게, 그리고 많이 만들면 내가 원하는 결과를 얻을 수 있을까?
라고 한다면, 물론 무한정 길게는 아니겠지만 어느 정도는 가능할 것이다.
단, 동일한 시퀀스를 원하는 길이만큼 길게 만들어줘야 하는 무의미한 일들 해야할 뿐이지만...
당연히 무한대의 시퀀스를 만드는 것 또한 불가능이고...
 
이렇게 시퀀스를 '통제'가 가능한 범위 안에서 반복적으로 실행될 수 있도록 조정해주는 명령문을 반복문이라고 한다.
랩뷰에서 지원하는 반복문인 For와 While에 대해서 구체적으로.....
뒤져보는 것은 다음 시간에.... ㅎㅎㅎ 

spacer