180 likes | 205 Views
Arrays and Array Visualization. Alice. What is an array?. An array is a collection of objects or information that is organized in a specific order. The individual components ( elements ) of an array are of the same type (object, number, color, …). Analogy.
E N D
What is an array? • An array is a collection of objects or information that is organized in a specific order. • The individual components (elements) of an array are of the same type (object, number, color, …).
Analogy • An analogy of an array is a music CD. • A CD contains a collection of songs, listed in the order recorded. • A CD player allows you to • play any specific song by selecting its number, or • play all the songs in sequence.
Arrays in Alice • In Alice, an array is a data structure used to organize objects or information of the same type (object, number, color, etc.) • Just as you cannot actually "see" the digital bits of the songs recorded on a CD, you cannot actually "see" the digital information in an array. In other words, an array is not visible.
Array Visualization • We will use a built-in 3D model that has been specifically designed to help you "see" how an array works. • The elements of this special array visualization are visual Alice objects
Initial World • As an example, we will create a visualization of an array of bugs. • First, we add five bugs to a new world. • This is not yet an array – just five bug objects!
Initialize array • Now add an arrayVisualization object to the world. • A dialog box pops up to allow you to add each bug to the array.
Completed array • Each bug added to the array is automatically moved to its location in the array. • The locations are numbered 0, 1, 2, 3, 4 (see the digits in the blue squares). • The location number is the index.
elements • An arrayVisualization object has a built-in class-level variable, named elements, that keeps track of which objects are in the array and where each is located. • The order of the objects in the elements variable matches the order of the objects in the array.
Demo: Access • Ch10Lec2Array-V1 • Concepts illustrated in this example • An index is used to order the elements in an array. • To access (get at) an individual element in the array, create an instruction that uses the index to select the element. • An element can be randomly selected from the array. • The maximum value should be the number of elements in the array. • Be sure to select the integer only option for the random number function.
Permutation • Changing the order of elements in an ordered group is a math operation known as creating a permutation. • To demonstrate how to perform a permutation, let's write a swap method that exchanges the positions of two elements in an array.
Storyboard • Two number parameters are needed, indexOne and indexTwo, to specify the indexes of the two objects to be swapped. • A temporary location will be used to hold one object while the other object changes location. swap Parameters: indexOne, indexTwo (of type number) Do in order relocate element at indexOne to a temporary location relocate element at indexOne to indexTwo relocate element from temporary location to indexOne
Temporary location • An objectVisualization object is added to the world to be used as a temporary holding pen.
Demo: swap • Ch10Lec2Array-V2 • Concepts illustrated in this example • In Alice, a let instruction is used to relocate an element in an array. • A temporary holding space, as can be seen in this visualization, is not part of the array.
Walking through an array • In addition to the ability to access an individual element of an array, it is also possible to "walk through" an array, accessing each element of the array in order.
Demo: Index variable • Ch10Lec2Array-V3 • Concepts illustrated in this example • To walk through an array, use the complicated form of the Loop instruction. • An index variable is a counter for the Loop. • When a Loop is used with an array, the Loop's index variable can be used to access successive elements in the array.
Assignment • Read Chapter 10 Section 2, Arrays
Lab • Chapter 10 Lecture 2 Lab