랩뷰 데이터 구조 알아보기

    반응형

    이번 시간에는 랩뷰의 데이터 구조에 대해서 알아보도록 하겠습니다. 지난 강의에서는 컨트롤 중 '숫자형 컨트롤'과 '숫자형 인디케이터'를 프론트패널에 추가하였습니다. 여기서 접미사인 숫자형이 랩뷰의 데이터 구조 중 하나입니다.

     

      1. 랩뷰의 데이터 구조들

      데이터 구조 블록 다이어그램
      아이콘 모양
      데이터 타입 대표 값
      숫자형 데이터 타입
      숫자 '1,2,3..' 등의 숫자
      문자열 데이터 타입
      텍스트 '텍스트' 등의 ASCII 문자열
      불리언 데이터 타입
      참/거짓 1/0 또는 참/거짓
      배열 데이터 타입
      동일한 데이터 타입의 묶음 숫자형 데이터 타입끼리 묶인 1차원 배열
      클러스터 데이터 타입
      서로 다른 데이터 타입의 묶음 숫자형 및 문자열 데이터 타입이 묶인 클러스터
      열거형 데이터 타입
      문자열과 숫자형의 조합 문자열 '첫번째' <-> 숫자형 '0'

      2. 숫자형 데이터 타입

      숫자형 데이터 타입은 우리가 랩뷰를 사용하면서 가장 많이 다루게 될 데이터 타입입니다. 숫자형은 또 다시 정수형, 실수형과 같이 여러 가지 타입으로 나눌 수 있습니다. 앞으로 다루게 될 For loop과 같은 반복 횟수와 같은 숫자형은 항상 정수형으로 표현됩니다. 

      랩뷰에서 숫자형 컨트롤이나 상수를 만들었을 때 기본적으로 생성되는 숫자형은 배정도 실수 또는 부호 있는 32비트 정수입니다. 따라서 여러분들이 랩뷰에서 가장 많이 사용하게 될 숫자형은 배정도 실수32비트 정수입니다. 아래 표에서는 '부호 있는/없는'을 앞에 표기했지만 일반적으로 '부호 있는'은 생략하고 부호가 없을 경우에만 '부호 없는'을 붙이도록 하겠습니다.

      어떤 언어에서도 마찬가지이지만 랩뷰에서 숫자형 데이터의 범위를 알고 사용하는 것은 정말 중요합니다. 예를 들어 32비트 정수형의 경우 표현할 수 있는 숫자의 범위는 -2,147,483,648부터 2,147,483,647까지입니다. 32비트 정수형을 사용하면서 2,147,483,647+1 을 한다면 어떻게 될까요? -2,147,483,648이 됩니다. 따라서 더하기를 반복적으로 하는 프로그램을 사용하거나, 숫자를 계속해서 카운트해야 하는 경우 최소/최대 숫자의 범위를 알고 숫자형 타입을 정해야 합니다.

      숫자형 아이콘 블록 다이어그램 터미널 범위
      Extended Precision Float 확장형 정밀도 실수
      –6.48e–4966 ~ 1.19e+4932
      Double Precision Float 배정도 실수
      –4.94e–324 ~ 1.79e+308
      Single Precision Float 단정도 실수
      –1.40e–45 ~ 3.40e+38
      Fixed Point Precision Float 부동 소수점 실수
      설정에 따라 달라짐
      Signed Quad Integer 부호 있는 64비트 정수
      –1e19 ~ 1e19
      Signed Long Integer 부호 있는 32비트 정수 
      –2,147,483,648 ~ 2,147,483,647
      Signed Word Integer 부호 있는 16비트 정수
      –32,768 ~ 32,767
      Signed Byte Integer 부호 있는 8비트 정수
      –128 ~ 127
      Unsigned Quad Integer 부호 없는 64비트 정수
      0 ~ 2e19
      Unsigned Long Integer 부호 없는 32비트 정수
      0 ~ 4,294,967,295
      Unsigned Word Integer 부호 없는 16비트 정수
      0 ~ 65,535
      Unsigned Byte Intger 부호 없는 8비트 정수
      0 ~ 255
      Complex Extended Precision Float 확장형 정밀도 복소수
      –6.48e–4966 ~ 1.19e+4932
      Complex Double Precision Float 배정도 복소수
      –4.94e–324 ~ 1.79e+308
      Complex Single Precision Float 단정도 복소수
      –1.40e–45 ~ 3.40e+38

      32비트 정수 최대값에 1을 더했을 경우


      3. 문자열 데이터 타입

      문자열 데이터 타입은 ASCII 코드, 즉 텍스트를 값으로 갖는 데이터입니다. 대표적으로 확장자가 .txt인 텍스트 파일을 읽거나 쓸 때 사용하고 알림 메시지 창에 나타낼 값 등에 쓰입니다. 블록 다이어그램에서 아래처럼 보라색으로 표현됩니다.

      아래는 ASCII 코드표이고 문자열 데이터 타입은 10진수나 16진수 모양의 숫자형 데이터 타입으로 변환할 수 있습니다.

      10진수 16진수 문자 10진수 16진수 문자 10진수 16진수 문자 10진수 16진수 문자
      0 0x00 NUL 32 0x20 SP 64 0x40 @ 96 0x60 `
      1 0x01 SOH 33 0x21 ! 65 0x41 A 97 0x61 a
      2 0x02 STX 34 0x22 " 66 0x42 B 98 0x62 b
      3 0x03 ETX 35 0x23 # 67 0x43 C 99 0x63 c
      4 0x04 EOT 36 0x24 $ 68 0x44 D 100 0x64 d
      5 0x05 ENQ 37 0x25 % 69 0x45 E 101 0x65 e
      6 0x06 ACK 38 0x26 & 70 0x46 F 102 0x66 f
      7 0x07 BEL 39 0x27 ' 71 0x47 G 103 0x67 g
      8 0x08 BS 40 0x28 ( 72 0x48 H 104 0x68 h
      9 0x09 HT 41 0x29 ) 73 0x49 I 105 0x69 i
      10 0x0A LF 42 0x2A * 74 0x4A J 106 0x6A j
      11 0x0B VT 43 0x2B + 75 0x4B K 107 0x6B k
      12 0x0C FF 44 0x2C , 76 0x4C L 108 0x6C l
      13 0x0D CR 45 0x2D - 77 0x4D M 109 0x6D m
      14 0x0E SO 46 0x2E . 78 0x4E N 110 0x6E n
      15 0x0F SI 47 0x2F / 79 0x4F O 111 0x6F o
      16 0x10 DLE 48 0x30 0 80 0x50 P 112 0x70 p
      17 0x11 DC1 49 0x31 1 81 0x51 Q 113 0x71 q
      18 0x12 DC2 50 0x32 2 82 0x52 R 114 0x72 r
      19 0x13 DC3 51 0x33 3 83 0x53 S 115 0x73 t
      20 0x14 DC4 52 0x34 4 84 0x54 T 116 0x74 s
      21 0x15 NAK 53 0x35 5 85 0x55 U 117 0x75 u
      22 0x16 SYN 54 0x36 6 86 0x56 V 118 0x76 v
      23 0x17 ETB 55 0x37 7 87 0x57 W 119 0x77 w
      24 0x18 CAN 56 0x38 8 88 0x58 X 120 0x78 x
      25 0x19 EM 57 0x39 9 89 0x59 Y 121 0x79 v
      26 0x1A SUB 58 0x3A : 90 0x5A Z 122 0x7A y
      27 0x1B ESC 59 0x3B ; 91 0x5B [ 123 0x7B z
      28 0x1C FS 60 0x3C < 92 0x5C \ 124 0x7C {
      29 0x1D GS 61 0x3D = 93 0x5D ] 125 0x7D |
      30 0x1E RS 62 0x3E > 94 0x5E ^ 126 0x7E }
      31 0x1F US 63 0x3F ? 95 0x5F _ 127 0x7F DEL

      4. 불리언 데이터 타입

      불리언 데이터 타입은 '참' 또는 '거짓'을 나타내는 데이터 타입입니다. 1 또는 0 이라고 표현하기도 하므로 1비트짜리 데이터입니다. 블록 다이어그램에서 초록색으로 표현됩니다.


      5. 배열 데이터 타입

      배열은 동일한 데이터를 묶어놓은 데이터 타입입니다. 동일한 데이터란 '숫자형'끼리 묶여있거나 '문자열'끼리 묶여있는 것입니다. 그래서 아무것도 없는 배열(껍데기)에 숫자형이나 문자열 데이터 등을 넣어 배열을 만들 수 있습니다. 대표적으로 숫자형, 문자열, 클러스터, 불리언 등 끼리 묶어 배열을 만들 수 있습니다.

      - 인덱스 디스플레이와 값 디스플레이

      배열을 생성하면 아래와 같이 인덱스 디스플레이와 값 디스플레이를 볼 수 있습니다. 인덱스 디스플레이는 값 디스플레이에서 첫 번째에 보이는 배열의 인덱스(번호)를 설정할 수 있습니다. 랩뷰의 인덱스는 0부터 시작한다는 것을 잊지 마세요.

      아래와 같이 배열의 원소가 {5, 4, 3, 8}인 1차원 배열이 있을 때 원소 5의 인덱스는 0입니다. 원소 8의 인덱스는 3이겠죠. 여기서 인덱스 디스플레이의 값을 1로 변경하면 값 디스플레이에서 보이는 첫 번째 원소의 인덱스가 1로 변경되어 원소 4부터 보이게 됩니다.

       

      - 배열의 차원

      인덱스 디스플레이를 통해 배열의 차원을 확인하거나 변경할 수 있습니다. 인덱스 디스플레이가 한 칸일 경우 1차원 배열을 뜻하고, 두 칸일 경우 2차원 배열(행과 열)을 뜻합니다.

      배열의 차원을 변경하는 방법은 인덱스 디스플레이에 마우스 포인터를 가져다 놓고 아래로 드래그하면 배열의 차원이 증가하고, 위로 드래그하면 배열의 차원이 감소합니다. 블록 다이어그램의 상수 배열, 프론트 패널의 컨트롤 배열 모두 같은 방법으로 배열의 차원을 증감할 수 있습니다.

      - 배열 초기화

      배열은 묶여 있는 데이터 타입과 차원 수를 정의한 채로 초기화하지 않으면 아래와 같이 값 디스플레이의 원소들이 회색 배경으로 보입니다. '초기화되지 않은 배열'은 배열이 선언되었지만 원소가 정의되지 않은 것을 뜻합니다. 아래와 같이 초기화되지 않은 배열에서 (2,2)인덱스의 원소에 3을 입력하면 나머지 원소들은 기본값인 0으로 초기화(정의)되어 입력됩니다.


      6. 클러스터 데이터 타입

      클러스터는 종류가 다른 데이터 타입을 하나로 묶은 객체입니다. 배열은 종류가 같은 데이터를 묶은 것이고, 클러스터는 종류가 다른 데이터를 묶은 것이죠. C언어의 구조체(struct)와 비슷합니다. 클러스터도 배열과 마찬가지로 빈 클러스터(껍데기)에 넣고 싶은 컨트롤 또는 인디케이터를 하나씩 드래그하여 집어넣으면 됩니다. 클러스터를 묶거나 풀 때, 처음에 넣었던 순서대로 일종의 인덱스가 할당됩니다(나중에 바꿀 수도 있습니다).

      - 비어 있는 클러스터 상수 만들기 : 블록 다이어그램에서 오른쪽 클릭하여 Cluster, Class & Variant 함수 팔레트에서 Cluster Constant를 클릭하여 블록 다이어그램에 배치합니다.

      클러스터 상수 만들기

      - 비어 있는 클러스터 컨트롤 만들기 : 프론트 패널에서 오른쪽 클릭하여 컨트롤 팔레트에서 Data Containers - Cluster를 클릭하여 프론트 패널에 배치합니다.

      클러스터 컨트롤 만들기

      - 클러스터에 원소 집어 넣기 : 아래 그림처럼 클러스터 상수를 만들고, 묶을 데이터를 하나씩 드래그하여 클러스터에 넣어 주면 됩니다.

      7. 열거형 데이터 타입

      열거형 데이터 타입은 문자열과 숫자가 한 쌍을 이루는 조합입니다. <January : 0>, <February : 1> ... <December : 11>와 같이 January는 0과 대응되는 쌍을 만들 수 있습니다.

      열거형 데이터를 만드는 방법은 프론트 패널에서 Ring & Enum - Enum을 클릭하여 생성합니다.

      처음 열거형 데이터 타입을 만들면 아무것도 정의되어 있지 않기 때문에 비어 있습니다. 열거형을 오른쪽 클릭하여 Edit Items를 클릭하거나, Properties를 클릭하여 Edit Items 탭으로 들어갑니다. 이 설정 탭에서 Insert를 클릭하여 아이템을 입력하면 됩니다. 

      열거형 아이템 설정하기

      열거형은 프론트 패널에서는 January라고 나타나지만, 블록 다이어그램에서 코드를 실행할 때에는 숫자로 인식하기 때문에 0으로 코드가 실행됩니다. 열거형 타입은 인덱스가 0부터 지정되는 것을 변경할 수는 없고 아이템을 입력하는 순서대로 숫자 0,1,2.. 와 대응합니다. 쌍을 이루는 숫자를 임의로 변경하고 싶은 경우에는 Ring을 사용하여 동일하게 아이템을 설정할 수 있습니다.

      댓글

      Designed by JB FACTORY