220 likes | 299 Views
Lecture Set 9. Arrays, Collections and Repetition Part C - Random Numbers Rectangular and Jagged arrays. Objectives. Understand the concept of random numbers and how to generate random numbers Understand how to declare and manipulate rectangular and higher dimension arrays
E N D
Lecture Set 9 Arrays, Collections and Repetition Part C - Random Numbers Rectangular and Jagged arrays
Objectives • Understand the concept of random numbers and how to generate random numbers • Understand how to declare and manipulate rectangular and higher dimension arrays • Understand how to declare and manipulate jagged arrays • Working with arrays of objects 8/18/2013 1:06 PM
Introduction to Random Numbers • Applications that require random numbers • Gaming and casino applications • Computer simulations • Test data generation • The process of creating a sequence of random numbers is called random number generation 8/18/2013 1:06 PM
Operation of a Random Number Generator • A random number generator is initialized based on a seedvalue • Given the same seed value, the same random number sequence will be generated • Different seed values will generate different random sequences • The time of day (often expressed in milliseconds) is often used to create random seed values 8/18/2013 1:06 PM
The System.Random Class • The System.Random class of the FCL is used to create a random number generator and generate and get random values • We can generate integer and double random values • The constructor of the System.Random class creates the random number generator (an instance of the random class) • Using no constructor arguments, a random seed value is used • The seed value is based on the time of day RandomrndVal= new Random(); • This is the same as RandomrndVal= new Random(DateTime.Now.Millisecond); 8/18/2013 1:06 PM
The Next Method • Without arguments, the Next method gets a positive random Integer value RandomrndValR = new Random;; intrndValI= rndValR.Next(); • With two arguments, a value within a range is returned • The first argument contains the lower bound and the second argument contains the upper bound rndValI= rndValR.Next(1, 10); rndValI= rndValR.Next(1, 6); // Let index be an integer index = rndValR.Next(0, myDictionaryWords.Length - 1); • The second line could be used to generate the value of the roll of a single die. How would you generate a random value representing the roll of two dice? 8/18/2013 1:06 PM
The NextDouble Method • The NextDouble method returns a random value between 0.0 and 1.0 • The value is in the interval [0.0<=value<1.0) • Closed on the left and open on the right • Example: doublerandomDouble; randomDouble= _rndValR.NextDouble() ‘A value such a .4599695143908786 is generated 8/18/2013 1:06 PM
Introduction to Two-dimensional Arrays • A two-dimensional array has rows and columns • Conceptually, it's similar to a grid or table • Two-dimensional arrays have two subscripts instead of one • Declare a two-dimensional array with unspecified dimensions int[,] Table; • Declare a two-dimensional array with 10 rows and 10 columns int [9, 9] Table; 8/18/2013 1:06 PM
Initializing Two-dimensional Arrays • Two-dimensional arrays can be initialized just as one-dimensional arrays can be initialized • The array must not be given an initial size • The initialization list is nested as follows: intSalesArray[,] = { {150, 140, 170, 178}, {155, 148, 182, 190}, {162, 153, 191, 184}, {181, 176, 201, 203} }; 8/18/2013 1:06 PM
Referencing Elements in a Two-dimensional Array • Two-dimensional arrays require two subscripts instead of one • A comma separates the two subscripts • Reference the first row and column in the array named SalesArray int cell; cell = SalesArray[0, 0]; 8/18/2013 1:06 PM
Introduction to Three-dimensional Arrays (optional) • It's possible to create arrays with three dimensions • A three-dimensional array has three subscripts instead of two • Declare a dynamic three-dimensional array intcube[,,]; • Declare a 10 by 10 by 10 array (1000 elements) double cube[10, 10, 10]; 8/18/2013 1:06 PM
Working with Arrays of Objects • Arrays can store object references in addition to storing primary data types • Example to store text box references: textbox [3] textBoxList; textBoxList[0]= txtFirstName; textBoxList[1] = txtLastName; textBoxList[2]= txtAddress; What does this array look like? 8/18/2013 1:06 PM
Memory Allocation to Store an Array of Text Boxes (VB) 8/18/2013 1:06 PM
Another View of 2D (Rectangular) Arrays 8/18/2013 1:06 PM
Operations on a 2-Dimension Array 8/18/2013 1:06 PM
More Operations on a 2-Dimension Array 8/18/2013 1:06 PM
Jagged Arrays (by Example) 8/18/2013 1:06 PM
Jagged Array References (optional) • I am not sure you will have occasion to do this – but maybe • The example is interesting from a pedagogic view • It illustrates memory allocation issues discussed already 8/18/2013 1:06 PM
More Jagged Array (examples – optional) 8/18/2013 1:06 PM
YetANOTHER Example (optional) 8/18/2013 1:06 PM