1 / 54

Arrays

Arrays. Thanachat Thanomkulabut. Introduction. If you want to declare variable for store scores of all students in 204111 course If you want to find total of scores. int s1, s2, s3, s4, s5, ... , s700;. int[] s = new int[700];. int total=0; total = s1 + s2 + s3 + s4 + ... + s700;.

herb
Télécharger la présentation

Arrays

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Arrays Thanachat Thanomkulabut

  2. Introduction • If you want to declare variable for store scores of all students in 204111 course • If you want to find total of scores int s1, s2, s3, s4, s5, ... , s700; int[] s = new int[700]; int total=0; total = s1 + s2 + s3 + s4 + ... + s700; int total=0; for(int i=0; i<700;i++) total += s[i];

  3. What is array? • An array is an indexed collectionof objects, all of the same type 0 1 2 3 4 5 6

  4. Array • We create arrays using new command. • Array elements start with index 0. • Array “a” with 6 elements has a[0], a[1], ... , a[5]. • Each element in the array behaves like standard variables.

  5. Array Declaration • Declare variable • Name : x • Type : int • Syntax • <type> <name>; • Declare Array • Name : A • Type : int • Syntax • <type> [] <name>; int x; int [] A;

  6. Array Declaration & Creation • Format I • <type> [] <name>; • <name> = new <type>[<num-elts>]; • Format II • <type> [] <name> = new <type>[<num-elts>]; double[] score; score = new double[5]; double[] score = new double[5];

  7. Array Declaration & Creation double[] score; score = new double[5]; score id 0 1 2 3 4

  8. Array Declaration & Creation & Initialization • Format I • <type> [] <name> = new <type>[num-elts] {<value-lists>}; • int [] arrayA = new int[3] {3, 6, 9}; • Format II • <type> [] <name> = new <type>[] {<value-lists>}; • int [] arrayA = new int[] {3, 6, 9}; • Format III • <type> [] <name> = {<value-lists>}; • int[] arrayA = {3, 6, 9};

  9. Array Declaration Example • int [] ai; • int [] ai = new int[5]; • int [] ai =new int[5]{1, 2, 3, 4, 5}; • int [] ai = {1, 2, 3, 4}; • Declaration only • Declaration with creation • Declaration with initialization

  10. score score 5 6 7 9 More examples int [] score = newint[6]; 3 4 5 0 1 2 int [] score = newint[4]{5,6,7,9}; 3 0 1 2

  11. Self test I • Declare ,Create and Initialize following array • Array I • Name : times • Type : Array of double • Length : 5 • Initial value : None Format I double[] times; times = new double[5]; Format II double[] times = new double[5];

  12. Self test II • Declare ,Create and Initialize following array • Array I • Name : text • Type : Array of char • Length : 3 • Initial value : 'c', 'o', 'm'

  13. Self test II Format I char[] text; text = new char[3]{'c','o','m'}; Format II char[] text; text = new char[]{'c','o','m'}; Format III char[] text = new char[3]{'c','o','m'}; Format IIII char[] text = new char[]{'c','o','m'}; Format IIII char[] text = {'c','o','m'};

  14. 3 0 1 2 score Accessing Array Elements • Supply an integer index for accessing array elements • indexes are zero-based int [] score = newint[4]; Run time 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

  15. Example1 • Initial 0 value for every elements of array (assume length of array is 6) • Show all value in each elements of array (assume length of array is 6) for(int i=0;i<6;i++) score[i] = 0; for(int i=0;i<6;i++) Console.WriteLine (“Score{0} = {1}”,i+1,score[i]);

  16. How to find Array’s length? • By property Length 5 int[] matrix = new int[5]; Console.WriteLine(matrix.Length); • By method GetLength() 7 int[] matrix = new int[7]; Console.WriteLine(matrix.GetLength(0));

  17. Example2 • Initial 0 value for every elements of array (assume length of array is 6) • Show all value in each elements of array (assume length of array is 6) for(int i=0;i<6;i++) score[i] = 0; for(int i=0;i<score.Length;i++) for(int i=0;i<6;i++) Console.WriteLine (“Score{0} = {1}”,i+1,score[i]); for(int i=0;i<score.Length;i++)

  18. Output Example3 4 Month4 has 30 days. 10 11 4 5 7 8 9 1 2 3 6 0 month • This program will reports the number of days in a given month. //assume Feb have 28 days • This program will reports the number of days in a given month. //assume Feb have 28 days 31 28 31 30 31 30 31 31 30 31 30 31 4 monthday static void Main(){ } int[] monthday = {31,28,31,30,31,30, 31,31,30,31,30,31}; int month = int.Parse(Console.ReadLine()); Console.Write(“Month{0} has {1} days.”, month,monthday[month-1]); 4 3

  19. Monitor Example24 sum 0 2 3 1 4 Input n: 3+5+1+7 16 0 3 5 1 7 3 num 5 1 • Write the program for calculate sumation of n number 7 Sum = 16 static void Main(){ Console.Write("Input n: "); int n = int.Parse(Console.ReadLine()); int[] num = new int[n]; for(int i=0;i<num.Length;i++) num[i] = int.Parse(Console.ReadLine()); int sum = 0; for(int i=0;i<num.Length;i++) sum = sum+num[i]; Console.WriteLine("Sum = {0}",sum); }

  20. Self Test I Write a program for calculating summation of square (5 numbers, with array) 4*4 + 3*3 + 7*7 + 2*2 + 5*5 int a, b, c, d, e; a = int.Parse(Console.ReadLine()); b = int.Parse(Console.ReadLine()); c = int.Parse(Console.ReadLine()); d = int.Parse(Console.ReadLine()); e = int.Parse(Console.ReadLine()); int square_sum = a*a + b*b + c*c + d*d + e*e; Console.WriteLine("Sum of square is {0}", square_sum);

  21. Self test III static void Main(){ int[] num = new int[5]; for(int i=0;i<num.Length;i++) num[i] = int.Parse(Console.ReadLine()); int square_sum = 0; for(int i=0;i<num.Length;i++) squre_sum += num[i]*num[i]; Console.WriteLine("Sum = {0}",square_sum); }

  22. Output String 0 1 2 3 4 B B o s s a o name • String is array of chars. string name = “Bossa”; Console.WriteLine(name[0]); Console.WriteLine(name[4-3]); name[4] = ‘m’;  String in each elements can read only

  23. Looping or Iteration in C# while Iteration foreach for do…while

  24. foreach • foreach is used to access (read only) all elements in an array and do some action repeatedly • foreach = “for each element in an array ” • Syntax foreach(var_declaration in array_name) statement;

  25. foreach example 1 string s = Console.ReadLine(); int count = 0; for (int i = 0; i < s.Length; i++){ if(s[i] == 'A') count++; } string s = Console.ReadLine(); int count = 0; foreach(char c in s){ if(c == 'A') count++; }

  26. foreach example 2 int[] score = newint[5]{4,9,0,8,7}; int count = 0; foreach(int x in score){ if(x%2 == 0) count++; }

  27. foreach example 3 int[] num = new int[5]{2, 4, 5, 8, 0}; foreach(int ninnum){ n += 10; }  foreach is used to access (read only)

  28. Self test IV • Write the Program to recieve n data & find max value of that data. • Program Process • Recieve “n” for check amount of data • Recieve each number and collect it to each element in array • Find max value of all data

  29. Self test IV static void Main(){ int n; n = int.Parse(Console.ReadLine()); double[] data = new double[n]; for(int i=0;i<n;i++) data[i] = double.Parse(Console.ReadLine()); double max=0; for(int i=0;i<n;i++){ if(data[i] > max) max = data[i]; } Console.WriteLine("max = {0}",max); }

  30. Arrays Concept • 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 0 1 2 3 4

  31. Arrays with Methods :Example1 11 14 15 micky 1 4 5 class AM { static void Main(){ int[] Arr = {1, 4, 5}; Console.WriteLine (“1:{0} {1} {2}”,Arr[0],Arr[1],Arr[2]); Add10(Arr); Console.WriteLine (“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 0 1 2 Output 1: 1 4 5 2: 11 14 15

  32. 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 B e a r N=4 id 0 1 2 3 B e a r B e a r Monitor

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

  34. Self Test V 5 4 0 7 -1 -8 2 3 static void Main(){ int[] mynum; mynum = new int[5] {4,0,-1,2,3}; Change(mynum); for(inti=0; i<mynum.Length; i++) Console.Write("{0} ",mynum[i]); } static void Change(int[] arr){ arr[0] = 5; arr[2] = 7; arr[3] = -8; } mynum arr id 0 1 2 3 4 Output 5 0 7 -8 3

  35. Example 5 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

  36. Pass by value VS by reference • Pass by value • 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

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

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

  39. 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];

  40. Multi-dimensional Array (introduction) 1 2 3 4 50 0 score 0 1 2 3 4 50 score9 score1 score0 score2 0 1 2 9 double[] score0 = new double[50]; double[] score1 = new double[50]; double[] score2 = new double[50]; double[] score9 = new double[50];

  41. Multi-dimensional Array’s declaration • 1 dimension • <type> [] <name>; • int [] score; • Multi-dimensional • 2 Dimension • <type> [ , ] <name>; • int [ , ] score; • 3 Dimension • <type> [ , , ] <name>; • int [ , , ] score;

  42. Multi-dimensional Array’s creation score • 1 Dimension • <name> = new <type>[<num-elts>]; • score = new int[4]; • 2 Dimension • <name> = new <type>[<dim1>,<dim2>]; • score = new int[4,2]; • 3 Dimension • <name> = new <type>[<dim1>,<dim2>,<dim3>]; • score = new int[4, 2, 3]; score score

  43. Multi-dimensional Array’s Initialization • 1 Dimension • 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

  44. Index of Multi-dimensional Array int[,] score = { {5,3,1}, {9,2,4} }; 0 1 2 • 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); score 0 7 3 5 3 3 1 3 1 0 9 2 4 5 6

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

  46. 0 1 2 Array.GetLength() score 0 5 3 1 1 9 2 4 • 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

  47. Example 6 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

  48. Student 1 Example 6 score1= 3 score2= 8 Student 2 score1= 6 score2= 7 • Write the program to get score from 4 students (each student has 2 test) Student 3 score1= 8 score2= 10 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(); } Student 4 score1= 9 score2= 7 score 0 1 0 3 8 1 6 7 2 8 10 3 9 7

  49. Example 6 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; }

  50. Self test VI 3 8 6 7 • From example 6, write the partial program to find sumation of all scores of all students 8 10 9 7 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); score 0 1 0 1 2 3

More Related