Download presentation
Presentation is loading. Please wait.
Published byKristopher Boyd Modified over 6 years ago
1
CSCI 3328 Object Oriented Programming in C# Chapter 7: Arrays
Xiang Lian The University of Texas – Pan American Edinburg, TX 78539 This set of slides is revised from lecture slides of Prof. John Abraham. -- Xiang Lian
2
Objectives In this chapter, you will:
Learn how arrays are used to store elements Get familiar with the declaration, initialization, and reference to elements of the array Know how to pass arrays to methods Learn how to use multidimensional arrays Learn how to use foreach statement to iterate through elements in the array
3
Arrays An array is a group of variables (called elements) containing values that all have the same data type For most languages, the number of elements are static and defined at declaration Single dim, two dim and multiple dim
4
Example of an Array The first element is the zeroth element
C[0] -45 C[1] 6 C[2] C[3] 72 C[4] 34 C[5] 39 C[6] 98 C[7] -1345 C[8] 939 C[9] 10 C[10] 40 C[11] 33 The first element is the zeroth element The highest position number is array’s upper bound Array C on RHS: 11 Access array elements Use index (or subscript) E.g., C[8]
5
Arrays (cont'd) Data structure consisting of related data items of the same type One variable name, multiple elements Arrays are passed as reference type, not value To access an element we use name of the array and index in square bracket
6
Declaring and Creating Arrays
Declaration int[] array = new int[12]; (creates indices 0 to 11) Or do it this way: int[] array; array = new int[12]; Or this way: const int size = 12; array = new int[size]; Since array is an object, we can resize the array as follows: Array.Resize(ref array, 10);
7
Arrays of Other Data Types
string [] str = new string [100]; char [] ch = new char [ 50]; …
8
Initializing an Array // creates 5-element array
Initializing arrays while declaring int [] arr = new int [] {10, 20, 30, 40, 50}; int [] array = {10,20,30,40,50};
9
Sum in an Array int[] array = {10,20,30,40,50};
// creates 5-element array Finding the sum double sum=0; double average; for (int counter =0; counter < array.Length; counter++) sum = sum+array[counter]; size of the array
10
Average in an Array int[] array = {10,20,30,40,50};
// creates 5-element array Finding the sum double sum=0; double average; for (int counter =0; counter < array.Length; counter++) sum = sum+array[counter]; average = sum/array.Length;
11
Standard Deviation Explained
In your assignment, assuming array has length n, the standard deviation s is given by:
12
foreach Statements In addition to for loops, you can also work with:
Syntax foreach (type identifier in arrayName) REMEMBER: YOU HAVE TO START WITH ELEMENT 0!
13
Syntax of foreach Statements
Example of computing summation of elements in an array called scores: foreach (int score in scores) { sum = sum + score; }
14
Passing Arrays by Value
Declaration int[] firstArray={1, 2, 3}; int[] firstArrayCopy = firstArray; public static void FirstDouble (int [] array) { for (int i = 0; i<array.Length; i++) array[i]*=2; array = new int [] {11, 12, 13}; } Call FirstDouble(firstArray);
15
Passing Arrays by Reference
Declaration int[] secondArray={1, 2, 3}; int[] secondArrayCopy = firstArray; public static void SecondDouble (ref int [] array) { for (int i = 0; i<array.Length; i++) array[i]*=2; array = new int [] {11, 12, 13}; } Call SecondDouble(ref secondArray);
16
Rectangular Arrays Rectangular array is a two dimensional array
Similar to a table with rows and columns arrayName[row, column] int [ , ] a = new int [3, 4]; Column 0 Column 1 Column 2 Column 3 a[0, 0] a[0, 1] a[0, 2] a[0, 3] a[1, 0] a[1, 1] a[1, 2] a[1, 3] a[2, 0] a[2, 1] a[2, 2] a[2, 3] Row 0 Row 1 Row 2
17
Nested Array Initializer
int [ , ] arr = {{1, 2}, {3, 4}}; 1 2 3 4
18
Example of Rectangular Arrays
public int [,] hands = new int[5, 14]; for (i=1; i<=52; i++) { hands[player, hand] = sdeck[i]; }
19
Jagged Arrays Tables that have rows of unequal columns
Somewhat like an array of arrays Fixed students and exams not everyone taking it.. int [] [] scores = new int [students][]; scores[0] = new int [5]; // student 0 takes 5 exams scores[1] = new int [4]; // student 1 takes 4 exams
20
Sort an Array C[0] -45 C[1] 6 C[2] C[3] 72 C[4] 34 C[5] 39 C[6] 98
C[3] 72 C[4] 34 C[5] 39 C[6] 98 C[7] -1345 C[8] 939 C[9] 10 C[10] 40 C[11] 33 C[0] -1345 C[1] -45 C[2] C[3] 6 C[4] 10 C[5] 33 C[6] 34 C[7] 39 C[8] 40 C[9] 72 C[10] 98 C[11] 939
21
Sort Method of Array You need to write your own sort methods later own
For now you can use: Array.Sort(scores); The identifier, scores, is the array you created
22
Search Method Searching: to determine whether a value (called search key) is in the array Linear search Compare each element of the array with the search key For either sorted or unsorted array Efficient for small array Binary search For sorted array
23
Linear Search search key C[0] -45 C[1] 6 C[2] C[3] 72 C[4] 34 C[5] 39
C[3] 72 C[4] 34 C[5] 39 C[6] 98 C[7] -1345 C[8] 939 C[9] 10 C[10] 40 C[11] 33
24
Binary Search You need to write your own binary search method later
But now you can use: int index = Array.BinarySearch(array, value); If index < 0, then value is not found in the array Otherwise, index stores the index of value in the array
25
Binary Search first search key: 10 middle last C[0] -1345 C[1] -45
C[3] 6 C[4] 10 C[5] 33 C[6] 34 C[7] 39 C[8] 40 C[9] 72 C[10] 98 C[11] 939 first search key: 10 middle last
26
Binary Search first search key: 10 middle last C[0] -1345 C[1] -45
C[3] 6 C[4] 10 C[5] 33 C[6] 34 C[7] 39 C[8] 40 C[9] 72 C[10] 98 C[11] 939 first search key: 10 middle last
27
Binary Search first search key: 10 middle last C[0] -1345 C[1] -45
C[3] 6 C[4] 10 C[5] 33 C[6] 34 C[7] 39 C[8] 40 C[9] 72 C[10] 98 C[11] 939 first search key: 10 middle last
28
Binary Search first search key: 10 middle last C[0] -1345 C[1] -45
C[3] 6 C[4] 10 C[5] 33 C[6] 34 C[7] 39 C[8] 40 C[9] 72 C[10] 98 C[11] 939 first search key: 10 middle last
29
Copying an Array You can copy one element at a time or the entire array Array.Copy(fromArray, fromIndex, toArray, to Index, length); Note: the following statement does not copy, but creates another reference to the array string[] copyDeck = oDeck;
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.