• 검색 결과가 없습니다.

1. List와 List Functions 엑티버티

N/A
N/A
Protected

Academic year: 2022

Share "1. List와 List Functions 엑티버티 "

Copied!
40
0
0

로드 중.... (전체 텍스트 보기)

전체 글

(1)
(2)

<용어 설명>

<내레이션>

2

지난회차 보기

안녕하세요! 지난 시간에는 로봇 반복 제어 작업을 위한 반복문 구현하기에 대해 알아 보았 습니다. 그럼 이번 회차를 시작하기 전에 앞에서 학습한 주요 내용을 기억하고 있는지 확인 해 봅시다.

1. If 와 Merge 엑티버티를 이용한 반복문 처리

-If 와 Calculate 엑티버티에서 value 변수와 Merge엑티버티를 이용해 간단하게 반복문 구 성

-If 엑티버티의 조건문에 value 변수를 이용한 반복문 종료조건 입력 -Calculate 엑티버티에 반복문을 위한 value 변수 증가식 입력

2. Variable 엑티버티를 이용한 반복회수 지정

-Variable 엑티버티를 이용한 변수 선언과 Data 엑티버티를 이용한 초기값 설정 -사용된 If 엑티버티의 수정해 추가된 변수로 반복회수를 지정

-선언된 변수는 state 를 이용하여 참조하여 사용

3. 반복문 처리를 응용한 두 가지 예제

-Prompt Dialog 입력을 이용한 반복문 조건입력 -1부터 100까지의 누적값 출력

위와 같이 3가지에 대해서 알아 보았습니다. 이것들을 잘 기억하고 다음 회로 넘어 가 봅시 다.

(3)

<용어 설명>

<내레이션>

3

학습목표

<학습 목표>

1. List와 List Functions 엑티버티에 대해 학습한다.

2. List Functions 엑티버티를 이용한 배열의 데이터를 처리하는 방법을 학습한다.

이번 시간은 VPL에서 배열 데이터 처리를 위한 리스트 이용하기에 대하여 학습해 보겠 습니다.

<주요 학습 내용>

1. List와 List Functions 엑티버티 2. 배열의 데이터 처리하기

(4)

<용어 설명>

<내레이션>

4

1. VPL에서는 배열을 처리하기 위해 List와 List Functions 엑티버티를 사용한다.

2. VPL의 List 엑티버티는 변수의 2차원 형태의 배열을 지원한다.

간단한 퀴즈

학습에 앞서 여러분의 사전지식이 어느 정도인지 알아보는 OX퀴즈입니다.

가벼운 마음으로 아래의 내용을 읽고, OX로 답해보기 바랍니다.

확인

O / X

1번 정답: O

VPL은 List와 List Functions 엑티버티를 사용해 배열을 처리합니다.

2번 정답 : X

VPL의 List 엑티버티는 변수의 1차원 형태의 집합인 배열을 지원한다.

O / X

(5)

<용어 설명>

<내레이션>

5

1. Lesson. List와 List Functions 엑티버티

비주얼 프로그램 언어(VPL)에서 List와 List Functions 엑티버티 에 대해 학습해 보겠습니다.

1. List와 List Functions 엑티버티

2. List 변수와 Calculate 엑티버티를 이용한 배열 첫 번째 항목 출력하기

(6)

<용어 설명>

<내레이션>

이번 시간에는 VPL에서 여러 개의 데이터를 가지는 배열을 처리하는 방법에 대해 알아보겠습니다. VPL에서는 배열을 처리하는 엑티버티로 List 엑티버티를 사용합니다. List 다이어그램에서 변수 List를 생성하고 저장하려면 Variable 엑티버티를 사용해야 합니다. List 엑티버티는 변수의 1 차원 형태의 집합인 배열을 지원합니다.

List Functions 엑티버티는 List에 항목을 추가하고 편집하기 위해 사용됩니다. 필요한 list에 적용할 함수를 선택하기 위해 엑티버티에서 드롭다운 리스트를 사용합니다.

1. List와 List Functions 엑티버티

List 엑티버티 위치 및 모양

-List 엑티버티는 변수의 1차원 형태의 집합인 배열을 지원

-List Functions 엑티버티는 List에 항목을 추가하고 편집하기 위해 사용

List Functions 엑티버티 위치 및 모양

(7)

<용어 설명>

<내레이션>

List 엑티버티와 List Functions 엑티버티를 활용하여 여러 개의 데이터를 모아서 처리하는 배열에 대해 예제입니다.

일반적으로 List 엑티버티는 배열로 사용되는 List 변수를 초기화하기 위해 사용되며, 초기화된 List 변수는 List Functions 엑티버티을 통해서 값 을 추가하거나 삭제 또는 다양한 연산을 적용할 수 있습니다. 아래 예제에서는 string 타입의 List 엑티버티를 생성하여 변수에 저장시키는 방법을 보여줍니다.

먼저, List 엑티버티를 다이어그램에 추가하고 문자열을 처리하기 위해 엑티버티의 아래에 있는 드롭다운 메뉴에서 ‘sting‘을 선택합니다. 또한 Variable 엑티버티를 추가하고 문자열 List 변수로 사용하기 위해 Define Variables 다이얼로그 창에서 아래에 있는 Type에서 ’List of string‘ 을 선택하고, 변수 이름은 ‘strList'로 변경합니다.

2. List 변수와 Calculate 엑티버티를 이용한 배열 첫 번째 항목 출력하기

List 엑티버티 타입 설정

Variable 엑티버티 타입 설정

(8)

<용어 설명>

<내레이션>

타입이 설정된 List 엑티버티와 Variable을 연결하면 그림과 같은 Connection 다이얼로그 창이 표시되며, List 를 초기화하여 Variable에 저장을 해야 하기 때문에, 여기서 우측의 항목을 Set Value로 선택합니다.

List와 Variable 엑티버티 연결

Connection 다이얼로그 창

(9)

<용어 설명>

<내레이션>

List Functions 엑티버티와 Calculate 엑티버티를 추가합니다. Variable 엑티버티의 출력 단자와 Calculate 엑티버티의 입력단자를 연결하고 입력 창의 변수 목록에서 ‘strList’를 선택합니다. Calculate 엑티버티의 출력 단자는 List Functions 엑티버티의 입력 단자와 연결합니다. 이 때 Connections 다이얼로그 창이 나타나며 To 항목에서 List를 선택하고 OK 버튼을 클릭합니다.

Calculate 엑티버티 및 List Funcions 엑티버티 추가 및 연결

(10)

<용어 설명>

<내레이션>

다음으로 생성된 List 변수에 데이터를 추가하기 위해 Data 엑티버티를 추가하고 string 타입으로 지정합니다. 입력창에 “Hello”라고 입력하고 Data 엑티버티의 출력 단자를 List Functions 엑티버티의 나머지 하나 입력 단자에 연결을 합니다.

List 변수 생성 및 추가할 데이터 연결

(11)

<용어 설명>

<내레이션>

이제 배열은 ‘strList’ 라는 변수 이름으로 List of string 타입을 가지도록 초기화 되었으며 배열 첫 번째 항목에 “Hello” 라는 문자열을 추가하였습 니다. 이 과정을 거쳤다 해서, 항목이 변수에 값이 자동으로 반영되는 것은 아닙니다. List Functions 엑티버티는 해당 값을 추가한 후에 추가된 List를 결과 값으로 리턴 할 뿐 변수에 자동으로 저장하지 않습니다. 따라서 그림과 같이 다시 변수에 SetValue 형태로 연결을 해주어야 합니다.

List Functions와 연결된 Variable 엑티버티는 이전에 있는 Variable 엑티버티를 마우스로 선택한 다음, 키보드에서 Ctrl+C, Ctrl+V를 연속으로 눌 러 복사해 사용하면 됩니다.

배열 변수에 데이터 저장하기

(12)

<용어 설명>

<내레이션>

이제, 이 변수에 저장되어 있는 값을 읽어서 표시하는 과정을 설명합니다. 그림과 같이 Calculate 엑티버티를 추가한 후, 입력창에서 ‘strList‘를 선 택합니다. 그리고 첫 번째 값을 읽어오기 위해 그림과 같이 strList[0] 로 내용을 수정합니다. List 변수는 배열의 기능을 수행하며, 첫 번째 항목의 인덱스는 0에서 시작합니다.

배열 첫 번째 항목 출력하는 다이어그램 완성

(13)

<용어 설명>

<내레이션>

완성된 다이어그램을 저장하고 실행하면 List 변수에 저장된 첫 번째 항목의 값을 화면을 통해 확인할 수 있습니다.

Alert 다이얼로그 창 출력결과

(14)

<용어 설명>

<내레이션>

vlp-list1.avi 동영상을 플 레이 시켜 따라해 본다.

실습 따라해 보기

(15)

<용어 설명>

<내레이션>

List 객체에 저장되어 있는 항목의 개수는 Count 속성을 이용하여 알아낼 수 있습니다. 그림과 같이 해당 변수 뒤에 “.”을 찍으면 자동으로 Capacity(크기)와 Count(개수) 속성이 표시되며, 이 중 Count를 선택해 배열 항목의 개수를 확인 합니다. 다이어그램의 아래에 있는 출력을 위한 Calculate 엑티버티의 계산식을 “현재 List 항목의 개수는 “ + strList.Count로 변경한 후 그림과 같은 결과가 출력됩니다.

Alert 다이얼로그 창 출력결과

(1) List 변수에 저장되어 있는 항목의 개수 확인

(16)

<용어 설명>

<내레이션>

16

문제 : 다음 ( )에 적당한 단어는?

List 변수는 ( )의 기능을 수행하며, 첫 번째 항목의 인덱스는 0에서 시작한다.

정답: 배열

해설: List 변수는 배열의 기능을 수행합니다.

정답 확인

돌발! 퀴즈~

(17)

<용어 설명>

<내레이션>

17

1. Lesson. 배열의 데이터 처리하기

비주얼 프로그램 언어(VPL)에서 List Functions 엑티버티를 이용한 배열 의 데이터 처리하기 방법에 대해 학습해 보겠습니다.

1. List Functions 엑티버티 사용하기 2. 다양한 배열 데이터 처리

(18)

<용어 설명>

<내레이션>

List 엑티버티와 List Functions 엑티버티를 활용하여 배열에서와 같이 여러 개의 값을 등록하고 읽어오는 과정을 설명하기위해 List Functions 엑 티버티의 기능들을 활용하는 예제를 살펴보도록 하겠습니다. List Functions 엑티버티를 다이어그램에 추가하고 엑티버티 아래의 드롭다운 버튼 을 클릭하면, 다음과 같이 7개의 기능 목록을 볼 수 있습니다.

1. List Functions 엑티버티 사용하기

List Functions 엑티버티

(19)

<용어 설명>

<내레이션>

List Functions 엑티버티가 추가되면 기본적으로는 Append가 표시되며 각각의 기능은 다음과 같습니다.

List Functions 엑티버티의 기능들

● Append : List와 등록할 데이터을 입력 받아 List의 맨 마지막에 등록한 후 등록된 List를 반환

● Concatenate : 두 개의 List를 입력 받고 두 개가 연결된 List를 반환

● Reverse : 등록되어 있는 데이터들의 순서를 역순으로 정렬하고 결과를 List 형식으로 반환

● Sort : 등록되어 있는 데이터들의 순서를 올림순으로 정렬하고 결과를 List 형식으로 반환

● RemoveItem : 등록되어 있는 데이터 중에서 지정된 위치에 있는 데이터를 삭제하고, 나머지 남 아있는 List를 반환

● InsertItem : 지정된 위치에 데이터를 추가한 후 결과를 반환

3개의 입력 값이 필요: 첫 번째는 작업할 List이고, 두 번째는 등록할 데이터, 세 번째는 등록 위치

● GetIndex : List에서 지정된 데이터의 등록 위치를 반환

(20)

<용어 설명>

<내레이션>

이번 실습에서는 List Functions 엑티버티의 Append와 Concatenate를 이용해 두 개의 배열을 연결하는 프로그램을 작성하겠습니다. 두 개의 배 열을 만들기 위해 List 엑티버티 2개 List Functions 엑티버티, Data 엑티버티 2개를 기본 Activities 툴 박스에서 다이어그램 편집 창으로 이동합 니다. List 엑티버티와 Data 엑티버티의 데이터 타입을 ‘Sting'으로 변경합니다. 우선 List 엑티버티를 List Functions 엑티버티의 입력 단자에 연 결합니다. 이때 나오는 Connections 다이얼로그의 To 항목은 List를 선택합니다. 연결이 되었으면 Data 엑티버티 또한 List Functions 엑티버티 에 연결합니다. 나머지 하나의 배열도 이와 동일하게 작성하고 Data 엑티버티의 입력 창에 "AA", "BB"를 적습니다. 그럼 아래 그림과 같은 다이 어그램이 됩니다.

두 개의 배열 만들기

(1) Concatenate를 이용한 두 배열의 연결

2. 다양한 배열 데이터 처리

(21)

<용어 설명>

<내레이션>

이제 두 개의 배열을 연결하고 배열의 데이터를 출력하겠습니다. List functions 엑티버티 1개와 Calculate 엑티버티 1개 Simple Dialog 서비스 1 개를 다이어그램에 추가합니다. 이번에 추가한 List functions 엑티버티를 Concatenate로 변경하고 이전에 작성했던 List functions와 연결합니 다. 연결할 때 Connection 창에 항목을 각각 List1과 List2를 선택합니다. Concatenate 속성으로 가지는 List functions 엑티버티를 Calculate 엑 티버티에 연결하고 Calculate 엑티버티의 입력창에 “value[0] + value[1]”라고 적습니다. 마지막으로 Calculate 엑티버티를 Simple Dialog 서비 스에 연결합니다. 출력을 위해 Alert Dialog로 설정합니다.

Concatenate 예제 다이어그램

(22)

<용어 설명>

<내레이션>

다이어그램을 실행하면 아래 그램과 같이 “AA,"BB"가 연속으로 나오는 것을 확인할 수 있습니다 Alert 다이얼로그 창 실행 결과

(23)

<용어 설명>

<내레이션>

vlp-list2.avi 동영상을 플 레이 시켜 따라해 본다.

실습 따라해 보기

(24)

<용어 설명>

<내레이션>

이번에는 Reverse 기능을 살펴보도록 하겠습니다. Reverse는 입력된 배열 데이터를 역순으로 출력하는 기능을 가지고 있습니다.

우선 그림의 다이어그램과 같이 variable 엑티비티로 List변수를 선언하지 않고 append를 이용해 배열을 만듭니다. 이렇게 만들어진 배열은 value 라는 VPL의 기본 변수이름으로 연결되어진 If 혹은 Calculate 엑티버티에서 사용할 수 있습니다. 첫 번째 데이터 "value[0]"에는 “BB”,

"value[1]"에는 ” AA”, "value[2]"에는 “CC”을 순서대로 추가 한 것입니다. 그림과 같이 3개의 데이터를 등록하는 다이어그램을 구성합니다.

3개의 데이터를 배열에 추가

(2) Reverse를 이용한 배열 데이터 순서 뒤집기

(25)

<용어 설명>

<내레이션>

이렇게 추가된 배열을 Reverse 시키면 “CC”, “AA”, “BB”의 순서로 거꾸로 뒤집혀 집니다. 다음으로 출력확인을 위해 Calculate 엑티버티에는 value[0]+"\n"+value[1]+ "\n"+value[2]라고 입력합니다.

Reverse 예제 다이어그램

(26)

<용어 설명>

<내레이션>

다이어그램을 실행하면 추가된 배열이 “CC”, “AA”, “BB”의 순서로 뒤집힌 것을 확인 할 수 있습니다.

Alert 다이얼로그 창 실행 결과

(27)

<용어 설명>

<내레이션>

vlp-list3.avi 동영상을 플 레이 시켜 따라해 본다.

실습 따라해 보기

(28)

<용어 설명>

<내레이션>

다음으로는 Sort 기능을 확인해 보도록 하겠습니다. Sort 기능은 입력된 배열 데이터를 오름차순으로 정렬합니다. 그림과 같이 다이어그램을 구성 한 후 결과를 확인해 보시기 바랍니다.

Sort 예제 다이어그램

(3) Sort를 이용한 배열 오름차순 정렬

(29)

<용어 설명>

<내레이션>

다이어그램에서는 “BB”,”AA”, “CC”의 순서로 추가되었으나, Sort 시키고 난 후에는 “AA”, “BB”, “CC”의 순서로 정렬되는 것을 확인할 수 있습 니다.

Alert 다이얼로그 창 실행 결과

(30)

<용어 설명>

<내레이션>

다음으로는 RemoveItem 기능을 확인해 보도록 하겠습니다. RemoveItem으로 설정한 List Functions 엑티버티에 입력한 Index에 해당하는 배열 의 데이터를 삭제하고 출력합니다. 그림과 같이 다이어그램을 구성한 후 결과를 확인해 보시기 바랍니다.

RemoveItem 예제 다이어그램

(4) RemoveItem을 이용한 배열 데이터 삭제

(31)

<용어 설명>

<내레이션>

다이어그램에서는 “BB”,”AA”, “CC”의 순서로 추가되었으나, RemoveItem을 이용해 두 번째 위치 값인 “value[1]"을 삭제한 후에는 “BB”, “CC”

값만이 표시되는 것을 확인할 수 있습니다.

Alert 다이얼로그 창 실행 결과

(32)

<용어 설명>

<내레이션>

다음으로는 InsertItem 기능을 확인해 보도록 하겠습니다. InsertItem에서는 다른 기능과 달리 세 개의 입력점이 필요하며, 입력 전에 Item를 삽입 하는 기능을 가지고 있습니다. 그림과 같이 다이어그램을 구성한 후 결과를 확인해 보시기 바랍니다. 다이어그램에서는 “BB”, ”AA”, “CC”의 순 서로 추가한 후에, InsertItem으로 Index에 1을 입력하여 해당하는 배열의 데이터인 value[1]의 위치에 “DD”를 추가하였으며, 결과는 “BB”,

“DD”, “AA”, “CC”로 표시되는 것을 확인할 수 있습니다.

InsertItem 예제 다이어그램

(5) InsertItem을 이용한 배열 데이터 추가

(33)

<용어 설명>

<내레이션>

마지막으로 GetIndex기능을 살펴보도록 하겠습니다. 그림과 같이 다이어그램을 구성한 후 실행시켜 보시기 바랍니다. 다이어그램에서는 “AA”의 위치를 찾아서 “AA”의 Index 값을 반환하는 기능을 보여주며, 결과 값이 1이 표시가 되는 것을 확인할 수 있습니다.

GetIndex예제 다이어그램

(6) GetIndex를 이용한 데이터 위치 얻어내기

(34)

<용어 설명>

<내레이션>

34

문제 : 다음 중 두 배열의 연결에 사용되는 List Functions의 기능 은?

① Reverse

② Merge

③ InsertItem

④ Concatenate

정답: 4번

해설: 두 배열의 연결에 사용되는 List Functions의 기능은 Concatenate입니다.

정답 확인

돌발! 퀴즈~

(35)

<용어 설명>

<내레이션>

35

학습 포인트

List와 List Functions 엑티버티

-List 엑티버티는 변수의 1차원 형태의 집합인 배열을 지원

-List Functions 엑티버티는 List에 항목을 추가하고 편집하기 위해 사용

List Functions 엑티버티의 기능들

-Append : List와 등록할 데이터을 입력 받아 List의 맨 마지막에 등록한 후 등록된 List를 반환 -Concatenate : 두 개의 List를 입력 받고 두 개가 연결된 List를 반환

-Reverse : 등록되어 있는 데이터들의 순서를 역순으로 정렬하고 결과를 List 형식으로 반환 -Sort : 등록되어 있는 데이터들의 순서를 올림순으로 정렬하고 결과를 List 형식으로 반환 -RemoveItem : 등록되어 있는 데이터 중에서 지정된 위치에 있는 데이터를 삭제하고, 나머지 남아있는 List를 반환

-InsertItem : 지정된 위치에 데이터를 추가한 후 결과를 반환 -GetIndex : List에서 지정된 데이터의 등록 위치를 반환

(36)

<용어 설명>

<내레이션>

36

1. List와 List Functions 엑티버티

-List 엑티버티는 변수의 1차원 형태의 집합인 배열을 지원

-List Functions 엑티버티는 List에 항목을 추가하고 편집하기 위해 사용

2. List Functions 엑티버티의 기능들

-Append : List와 등록할 데이터을 입력 받아 List의 맨 마지막에 등록한 후 등록된 List를 반환 -Concatenate : 두 개의 List를 입력 받고 두 개가 연결된 List를 반환

-Reverse : 등록되어 있는 데이터들의 순서를 역순으로 정렬하고 결과를 List 형식으로 반환 -Sort : 등록되어 있는 데이터들의 순서를 올림순으로 정렬하고 결과를 List 형식으로 반환 -RemoveItem : 등록되어 있는 데이터 중에서 지정된 위치에 있는 데이터를 삭제하고, 나머지 남아 있는 List를 반환

-InsertItem : 지정된 위치에 데이터를 추가한 후 결과를 반환 -GetIndex : List에서 지정된 데이터의 등록 위치를 반환 3. 실습내용 요약

-List 변수와 Calculate 엑티버티를 이용한 배열 첫 번째 항목 출력하기 -Concatenate를 이용한 두 배열의 연결

-Reverse를 이용한 배열 데이터 순서 뒤집기 학습요약 및 정리

출력하기

(37)

<용어 설명>

<내레이션>

37

문제 2 : 다음 중 List Functions의 기능이 아닌 것은?

① Reverse

② Merge

③ InsertItem

④ Append

학습하시느라 수고하셨습니다. 다음의 문제를 풀어보면서 학습한 내용을 점검해볼까요?

아래의 문제에 답해보세요.

정답: 1 번

해설: List와 등록할 데이터을 입력 받아 List의 맨 마지막에 등록한 후 등록된 List를 반환하는 것이 Append입니다.

관련학습 보기: Page 19 배열의 데이터 처리하기 문제 1 : 다음 중 List Functions의 기능 중 Append의 설명으로 올바

른 것은?

① List와 등록할 데이터을 입력 받아 List의 맨 마지막에 등록한 후 등록된 List를 반환

② 두 개의 List를 입력 받고 두 개가 연결된 List를 반환

③ 지정된 위치에 데이터를 추가한 후 결과를 반환

④ List에서 지정된 데이터의 등록 위치를 반환

정답: 2 번

해설: Merge는 List Functions의 기능에 해당하지 않습니다.

관련학습 보기: Page 19 배열의 데이터 처리하기

(38)

<용어 설명>

<내레이션>

38

정답: 인덱스 (Index) 혹은 위치

해설: RemoveItem은 배열의 인덱스(혹은 위치 )에 해당하는 배열의 데이터를 삭제합니다.

문제 3 : List Functions의 기능 중 RemoveItem 설명입니다. ( )에 들어 갈 단어는?

RemoveItem으로 설정한 List Functions 엑티버티에 입력한 배열내의 지정된 ( )에 해당하는 배열의 데이터를 삭제합니다.

관련학습 보기: Page 30 배열의 데이터 처리하기

(39)

<용어 설명>

<내레이션>

39

이번 시간에는 배열 데이터 처리를 위한 리스트 이용하기에 대해 학습하 였습니다.

1. List와 List Functions 엑티버티 2. 배열의 데이터 처리하기

다음 시간에는 나만의 새로운 로봇 Activity 생성에 대해 학습하도록 하겠 습니다.

1. 새로운 Activity생성 2. 새로운 Activity 응용

(40)

<용어 설명>

<내레이션>

40

이번시간에 배열 데이터 처리를 위한 리스트 이용하기에 대해 알아보았습니다. 아직 프로그래밍 에 익숙하지 못한 분들은 배열이 무엇인지에 대해 좀더 알아보는 것이 좋겠지요?

다음은 위키백과에 등록된 배열에 대한 설명입니다. 위키백과의 용어를 따라가 보며 모르는 전 문 용어들에 관해 공부해 보는 것도 여러분의 실력향상에 도움이 될 것입니다.

컴퓨터 과학에서 배열은 번호(인덱스)와 번호에 대응하는 데이터들로 이루어진 자료 구조를 나타낸 다. 일반적으로 배열에는 같은 종류의 데이터들이 순차적으로 저장되어, 값의 번호가 곧 배열의 시 작점으로부터 값이 저장되어 있는 상대적인 위치가 된다. 대부분의 프로그래밍 언어에서 사용할 수 있는 가장 기초적인 자료 구조로, 기본적인 용도 외에 다른 복잡한 자료 구조들을 표현하기 위해서 또는 행렬, 벡터 등을 컴퓨터에서 표현하는 용도 등으로도 사용된다.

출처 : 위키백과 http://ko.wikipedia.org/wiki/%EB%B0%B0%EC%97%B4

참조