visula c# programming lecture 5

12
1 Arrays An array stores multiple elements of the same type that type can be simple (value) types or objects for arrays of simple types, each element contains one value of the declared type for arrays of reference types (e.g., objects), every element of the array is a reference to an object of the data type of the array Refer to particular element in the array by position number the name of the array followed by the position number (subscript) of the element in square brackets ([]) [ ] is considered as an operator

Upload: abu-bakr-ashraf

Post on 13-Jun-2015

224 views

Category:

Education


1 download

DESCRIPTION

lecture 5

TRANSCRIPT

Page 1: Visula C# Programming Lecture 5

1

Arrays

An array stores multiple elements of the same type that type can be simple (value) types or objects

• for arrays of simple types, each element contains one value of the declared type

• for arrays of reference types (e.g., objects), every element of the array is a reference to an object of the data type of the array

Refer to particular element in the array by position number the name of the array followed by the position

number (subscript) of the element in square brackets ([])

• [ ] is considered as an operator

Page 2: Visula C# Programming Lecture 5

2

Arrays: Declaration and Instantiation

An array can be allocated using the keyword new to specify how many elements the array should hold

bool[] flags; // declare flags flags = new bool[20]; // create an array and make flags a ref.

// now flags is reference to another array flags = new bool[10];

// declare variable grades; create an array; make grades a // reference of the array int[] grades = new int[12];

float[] prices = new float[500];

string[] codes = new string[26];

Time1[] times; times = new Time1[10];

Page 3: Visula C# Programming Lecture 5

3

Array: An Array of Simple Values

A 12-element array of values.

-45

6

0

72

1543

-89

0

62

-3

1

6453

-78grades[ 11 ]

grades[ 10 ]

grades[ 9 ]

grades[ 8]

grades[ 7 ]

grades[ 4 ]

grades[ 3 ]

grades[ 2 ]

grades[ 1 ]

grades[ 0 ]

grades[ 6 ]

grades[ 5 ]

position number (index or subscript) of the element within array grades

grades

Page 4: Visula C# Programming Lecture 5

4

Array: An Array of Objects

A 10-element array of objects

ref to obj 0

ref to obj 1

ref to obj 2

ref to obj 3

ref to obj 4

ref to obj 5

ref to obj 6

ref to obj 7

ref to obj 8

ref to obj 9times[ 9 ]

times[ 8]

times[ 7 ]

times[ 4 ]

times[ 3 ]

times[ 2 ]

times[ 1 ]

times[ 0 ]

times[ 6 ]

times[ 5 ]

position number (index or subscript) of the element within array times

times

Page 5: Visula C# Programming Lecture 5

5

Arrays as Objects

In C#, an array behaves very much like an object declaration and instantiation are like objects

• declare an array variable• create an array using new • make a variable a reference of an array

parameter passing is similar to objects• we will discuss the detail later.

an array has the Length property

Page 6: Visula C# Programming Lecture 5

6

Array: Length

Each array has a public property called Length that stores the size of the array once an array is created, it has a fixed size

It is referenced using the array name (just like any other object):

grades.Length

Note that Length holds the number of elements, not the largest index

Page 7: Visula C# Programming Lecture 5

7

Array Instantiation and Initialization in One Step: Initializer List An initializer list can be used to instantiate and

initialize an array in one step The values are delimited by braces and

separated by commas Allocate space for the array – number of elements in initializer list

determines the size of array Elements in array are initialized with the values in the initializer list

The new operator is not used

Examples: int[] units = {147, 323, 89, 933, 540};

char[] letterGrades = {'A', 'B', 'C', 'D', 'F'};

string[] wordList = {“bs703“, “computer", “television"};

Page 8: Visula C# Programming Lecture 5

8

Recall: Two Types of Variables

A variable represents a cell in memory Value type

int, char, byte, float, double, stringA value type variable stores a value of the type of the variable in the memoryint x = 45;double y = 45.12;

Reference type A variable that “stores” object or array

actually stores a reference to an object or array, e.g.,

A reference is a location in computer’s memory where the object or array itself is storedTime3 t1;t1 = new Time3(11, 45, 59);

45x

45.12y

t1 114559

Page 9: Visula C# Programming Lecture 5

9

Implications of the Two Types of Variables: Assignment

An assignment of one value variable toanother value variable copies the value, e.g.,int x = 45;double y = 45.12;int z;z = x;

An assignment of one reference variable toanother reference variable copies the reference, e.g.,Time3 t1;t1 = new Time3(11, 45, 59);

Time3 t2;t2 = t1;

t1

45x

45.12y

z 45

t2

114559

Page 10: Visula C# Programming Lecture 5

10

Two-Dimensional Arrays

A one-dimensional array stores a list of values

A two-dimensional array, also called double-subscripted array, can be thought of as a table of values, with rows and columns a two-dimensional array element is

referenced using two index numbers

Page 11: Visula C# Programming Lecture 5

11

Two Types of Double-Subscripted Arrays

rectangular arrays often represent tables in which each row is the same

size and each column is the same size, e.g.,int[,] a1 = new int[,] { { 1, 2, 3 }, { 4, 5, 6 } };int[,] a11 = new int[3,4];

jagged arrays• arrays of arrays• arrays that compose jagged arrays can be of different

lengths, e.g.,

int[][] array2 = new int[ 3 ][];array2[ 0 ] = new int[] { 1, 2 };array2[ 1 ] = new int[] { 3 };array2[ 2 ] = new int[] { 4, 5, 6 };array2[2][1] = 3;

Page 12: Visula C# Programming Lecture 5

12

Double-Subscripted Arrays

Double-subscripted array with three rows and four columns.

Row 0

Row 1

Row 2

Column 1Column 0 Column 2 Column 3

a[0][0] a[0][3]a[0][1] a[0][2]

a[1][0] a[1][3]a[1][1] a[1][2]

a[2][0] a[2][3] a[2][2]

Column index (or subscript)

Row index (or subscript)

Array name

a[2][1]