Presentation is loading. Please wait.

Presentation is loading. Please wait.

Arrays Computer & Programming Group

Similar presentations


Presentation on theme: "Arrays Computer & Programming Group"— Presentation transcript:

1 Arrays 01204111 Computer & Programming Group 350-352
Dept. of Computer Engineering Kasetsart University Adopted from Thanomkulabut’s experiences. Brushed up by MikeLab.Net Version 2012

2 Review Array declaration
An array is an indexed collection of objects, all of the same type Array declaration double[] score; score = new double[5]; double[] score; score = new double[5]{1,2,3,3,5}; score 1 2 3 4 5 score

3 Review (2) int [] ai; int [] ai = new int[4];
Declaration only int [] ai; Declaration & creation int [] ai = new int[4]; Declaration & creation & initialization int [] ai = new int[4] {1, 2, 3, 4}; int [] ai = new int[] {1, 2, 3, 4}; int [] ai = {1, 2, 3, 4};

4 Review (3) 1 2 3 score int [] score = new int[4];
Access array elements int [] score = new int[4]; 1 2 3 score Runtime Error!! -3 4 7 score[0] = -3; score[2+1] = 7; Score[3-1] = score[0]+score[3] Console.WriteLine(score[2]); score[4] = 5; 4

5 Arrays Concept id 1 2 3 4 Array is a reference data type.
Reference variables are used to refer to the data, not the data themselves. score Create Label double[] score; score = new double[5]; Reserve Memory id 1 2 3 4

6 Arrays with Methods :Example1
micky class AM { static void Main(){ int[] Arr = {1, 4, 5}; Console.WriteLine (“1:{0} {1} {2}”,Arr[0],Arr[1],Arr[2]); Add10(Arr); (“2:{0} {1} {2}”,Arr[0],Arr[1],Arr[2]); } static void Add10(int[] micky){ for(int i=0;i<micky.Length;i++) micky[i] += 10; Arr id 1 2 5 4 1 15 14 11 Output 1: 1 4 5 2:

7 Arrays with Methods :Example2
static void Main(){ char[] data; data = ReadArray(4); showArray(data); } static char[] ReadArray(int N){ char[] info = new char[N]; for(int i=0;i<N;i++) info[i] = char.Parse(Console.ReadLine()); return info; static void showArray(char[] Nobi){ for(int i=0;i<Nobi.Length;i++) Console.Write(Nobi[i]); data info Nobi info id 1 2 3 B e a r N=4 B e a r B e a r Monitor

8 Self test What is the output of this partial program?
static void Main(){ int[] mynum; mynum = new int[5] {4,0,-1,2,3}; Change(mynum); for(int i=0; i<mynum.Length; i++) Console.Write("{0} ",mynum[i]); } static void Change(int[] arr){ arr[0] = 5; arr[2] = 7; arr[3] = -8;

9 Example 1 What is the output of this partial program? Output NOBI IBON
static void Main(){ char[] name1,name2; name1 = new char[4] {'N','O','B','I'}; name2 = reverse(name1); showArr(name1); showArr(name2); } static char[] reverse(char[] arr){ int j=0; char[] arr_re = new char[arr.Length]; for(int i=arr.Length-1;i>=0;i--){ arr_re[j] = arr[i]; j++; return arr_re; static void showArr(char[] arr){ foreach(char x in arr) Console.Write(x); Console.WriteLine(); What is the output of this partial program? Output NOBI IBON

10 Pass by value VS by reference
We can only change the elements inside the array Pass by reference We can change the elements inside the array We can change the array that variable refers to

11 Pass by Value mynum id 1 2 5 4 -1 arr id 1 2 static void Main(){
1 2 5 4 -1 static void Main(){ int[] mynum; mynum = new int[3] {4,0,-1}; Console.WriteLine ("Before mynum[0] = {0}",mynum[0]); Change(mynum); ("After mynum[0] = {0}",mynum[0]); } static void Change(int[] arr){ arr[0] = 5; arr = new int[3] {10,13,15}; ("In Change arr[0] = {0}",arr[0]); arr id 1 2 10 13 15 Output Before mynum[0] = 4 In Change arr[0] = 10 After mynum[0] = 5

12 Pass by Reference mynum arr id 1 2 5 4 -1 mynum arr id 1 2
1 2 5 4 -1 static void Main(){ int[] mynum; mynum = new int[3] {4,0,-1}; Console.WriteLine ("Before mynum[0] = {0}",mynum[0]); Change(ref mynum); ("After mynum[0] = {0}",mynum[0]); } static void Change(ref int[] arr){ arr[0] = 5; arr = new int[3] {10,13,15}; ("In Change arr[0] = {0}",arr[0]); mynum arr id 1 2 10 13 15 Output Before mynum[0] = 4 In Change arr[0] = 10 After mynum[0] = 10

13 Multi-dimensional Array (introduction)
If you want to keep score of 50 students If each student have 10 test double[] score = new double[50]; double[] score0 = new double[50]; double[] score1 = new double[50]; double[] score2 = new double[50]; double[] score9 = new double[50];

14 Multi-dimensional Array Declaration
<type> [] <name>; int [] score; Multi-dimensional 2 Dimension <type> [ , ] <name>; int [ , ] score; 3 Dimension <type> [ , , ] <name>; int [ , , ] score;

15 Multi-dimensional Array Declaration
score 1 Dimension <name> = new <type>[<dim size>]; score = new int[4]; 2 Dimension <name> = new <type>[<dim1 size >,<dim2 size>]; score = new int[4,2]; 3 Dimension <name> = new <type>[<dim1 size>,<dim2 size>,<dim3 size>]; score = new int[4, 2, 3]; score score

16 Multi-dimensional Array Declaration with Initialization
int[] score = new int[3] {6, 1, 3}; 2 Dimension int [,] score = new int[2, 3] { {1, 8, 4} , {3, 6, 9} }; int [,] score = { {1, 8, 4} , {3, 6, 9} }; int [,] score = { {1, 8, 4} , {3, 6, 9} }; score 6 1 3 score 1 8 4 3 6 9

17 Index of Multi-dimensional Array
int[,] score = { {5,3,1}, {9,2,4} }; 1 2 score 5 3 3 7 3 1 3 1 9 2 4 score[0,1] = 7; score[2-1 , 1+1] = 0; Console.Write(score[0,0]); for(int i = 0; i<=2 ; i++) score[0,i] = 3; Console.Write(score.Length); 5 6

18 Selftest Declare, create and initialize array name Matrix Matrix
Format I ‘v’ ‘a’ ‘p’ ‘y’ ‘q’ ‘s’ Matrix ‘z’ ‘b’ char[,] Matrix; Matrix = new char[4,2]{ {'v','a'}, {'y','q'}, {'p','z'}, {'s','b'} };

19 Array.GetLength() Get numbers of ROW in ARRAY
score 1 2 5 3 9 4 Array.GetLength() Get numbers of ROW in ARRAY arrayname.GetLength(0); score.GetLength(0); Get numbers of Column in ARRAY arrayname.GetLength(1); score.GetLength(1); Get numbers of all elements in ARRAY arrayname.Length; score.Length; 2 3 6

20 Example 2 Student 1 Write the program to get score from 4 students (each student has 2 test) score1= 3 score2= 8 Student 2 score1= 6 score2= 7 Student 3 score1= 8 score2= 10 Student 4 score1= 9 score2= 7

21 Student 1 score1= score2= Student 2 Student 3 Student 4 3 8 6 7 10 9 Example 2 Write the program to get score from 4 students (each student has 2 test) double[,] score = new double[4,2]; for(int i=0;i<score.GetLength(0);i++){ Console.WriteLine("Student {0}",i+1); for(int j=0;j<score.GetLength(1);j++) { Console.Write("score{0} = ",j+1); score[i,j] = double.Parse(Console.ReadLine()); } Console.WriteLine(); score 1 2 3 3 8 6 7 8 10 9 7

22 Example 2 with Method static void Main(){ double [,] arr;
arr = ReadArray2(2,4); } static double[,] ReadArray2(int row, int col){ double[,] score = new double[4,2]; for(int i=0;i<score.GetLength(0);i++){ Console.WriteLine("Student {0}",i+1); for(int j=0;j<score.GetLength(1);j++){ Console.Write("score{0} = ",j+1); score[i,j] = double.Parse(Console.ReadLine()); } Console.WriteLine(); return score;

23 score 1 2 3 8 6 7 10 9 Self test From previous example, write the partial program to find summation of all scores of all students double sum = 0; for(int i=0;i<score.GetLength(0);i++){ for(int j=0; j<score.GetLength(1); j++){ sum += score[i,j]; } Console.WriteLine("Sumation = {0}",sum);

24 score 1 2 3 8 6 7 10 9 Self test From previous example, write the partial program to find average of scores of all students in first test double sum = 0; for(int i=0;i<score.GetLength(0);i++){ sum += score[i,0]; } double avg = sum/score.GetLength(0); Console.WriteLine ("Average of First test = {0}",avg);

25 score 1 2 3 8 6 7 10 9 Self test From previous example, write the partial program to find average scores of all test of last student double sum = 0; for(int j=0;j<score.GetLength(1);j++){ sum += score[3,j]; } double avg = sum/score.GetLength(1); Console.WriteLine ("Average of last student = {0}",avg);

26 How to find Array’s #dimension?
By property Rank int [] matrix = new int[5]; Console.WriteLine(matrix.Rank); 1 int [,] matrix = new int[5,2]; Console.WriteLine(matrix.Rank); 2 int [,,] matrix = new int[5,2,3]; Console.WriteLine(matrix.Rank); 3


Download ppt "Arrays Computer & Programming Group"

Similar presentations


Ads by Google