cis162ad c n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
CIS162AD - C# PowerPoint Presentation
Download Presentation
CIS162AD - C#

Loading in 2 Seconds...

play fullscreen
1 / 24

CIS162AD - C# - PowerPoint PPT Presentation


  • 139 Views
  • Uploaded on

CIS162AD - C#. Arrays – part 1 12_arrays_loading.ppt. Overview of Topics. Declaring Arrays Loading Arrays Partially Filled Arrays Arrays Elements as Arguments Declaring and Loading Constant Arrays. Arrays are Tables. Array is a different word for a table.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'CIS162AD - C#' - marlee


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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
cis162ad c

CIS162AD - C#

Arrays – part 112_arrays_loading.ppt

overview of topics
Overview of Topics
  • Declaring Arrays
  • Loading Arrays
  • Partially Filled Arrays
  • Arrays Elements as Arguments
  • Declaring and Loading Constant Arrays
arrays are tables
Arrays are Tables
  • Array is a different word for a table.
  • A table is made up of columns and rows.
  • Just like an Excel spreadsheet.
array defined
Array Defined
  • An array is used to process a collection of data all of which is of the same data type (Integer, Decimal, String, etc.).
  • First we’ll look at single dimensional arrays (one column, many rows).
  • Think of a single dimensional array as a list of variables.
declaring array
Declaring Array

int intQty1, intQty2, intQty3;int[ ] intQty = new int[3]; //3 integer variablesdataType[ ] arrayName = new dataType[arraySize];

  • An array of 3 elements of type integer is created.
  • The arraySize is used by C# to determine how much memory to allocate.
  • Arrays will usually be class-level because after values are loaded in we don’t want to lose the values.
array subscript
Array Subscript

dataType[ ] arrayName = new dataType[arraySize];

  • Arrays are allocated consecutive memory.
  • Each element is referenced using a subscript.
  • Subscript are integers.
  • The number of elements that are created is arraySize.
  • The first element in the array is referenced with a value of zero [0].
  • The last element is referenced with a subscript value of [arraySize – 1].
  • A subscript is also referred to as an index.
  • Short variable names for subscripts are acceptable.
subscript out of range
Subscript Out Of Range
  • If during execution, the subscript value referenced an element past the end of the array, the program would throw an exception (run-time error).
  • The programmer must make sure that the logic in the program does not allow the subscript to exceed the array size.
  • This is called being out of range.
preventing out of range
Preventing Out of Range
  • C# will not prevent a subscript out of range error, but it will abort the execution when it happens.
  • It aborts because the subscript would be referencing some other section of memory than what was allocated for the array.
  • The programmer is responsible for preventing the out range error.
  • We can use some built in methods to manage arrays, arrayName.Length arrayName.GetUpperBound(0).
  • The For Each (foreach) command may also be used to walk through arrays.
array properties
Array Properties

int[ ] intQty = new int[3]; //3 integer variables

  • arrayName.Length
    • intQty.Length is equal to 3.
    • intQty.Length is the number of entries that can be loaded.
    • The last valid subscript value is one less than Length.
  • arrayName.GetUpperBound(0).
    • intQty.GetUpperBound(0) is equal to 2.
    • intQty.GetUpperBound(0) is last valid subscript value.
  • Depending the loop structure, we may use:
    • less than Length or
    • Equal to GetUpperBound(0)
array processing
Array Processing
  • Declare Array
  • Load Array
    • After creating the array, data must be loaded.
    • Use arrayName.Length or arrayName.GetUpperBound(0) to prevent out of range errors.
    • Note: Arrays can be declared and loaded with constant values.
  • Process Array
    • Use individual elements in calculations or as arguments.
    • Send entire arrays to methods for processing.
    • Sort, Search, Display
    • Use a lot of For loops or For Each loops.
declare array
Declare Array

//Arrays are declared at the class level,

//so they can be referenced by all methods.int[ ] cintTestScores = new int[20];int cintNumberOfStudents;

//We can load up to 20 scores, but we will

//save how many tests are actually loaded in cintNumberOfStudents.

declare array with a const
Declare Array with a Const

//Arrays can be declared using a constant for the size.const int intARRAY_SIZE = 20;int[ ] cintTestScores = new int[intArraySize];//We can still load up to 20 scores

load array
Load Array

cs12ex.txt

5040100301020

//Loads Array with scores saved in a data file.

private void btnLoadArray_Click( )

{FileStream studentFile = new FileStream("cs12ex.txt", FileMode.Open);

StreamReader studentStreamReader = new StreamReader(studentFile); int i = 0; //subscript initialized to zerowhile (studentStreamReader.Peek() != -1){ if (i < cintTestScores.Length) {cintTestScores[i] = int.Parse(studentStreamReader.ReadLine( )); i ++; //Increment subscript by one } else { MessageBox.Show (“Array Size Exceeded”); break; //Get of out of loop; Array is full. }}cintNumberOfStudents = i; //Save how many students were loadedstudentFile.Close( ); //Close file

}

process array individual elements
Process Array – Individual Elements

private void btnProcessArray_Click( )

{int i;int intSum = 0;

for (i = 0; i <= cintTestScores.GetUpperBound(0); i++){

intSum += cintTestScores[i];

}

txtSum.Text = intSum.ToString(“N0”);

}

for each example
For Each - Example

private void btnProcessArray_Click( )

{int i; //subscript not neededint intSum = 0;

foreach (int intTestScore in cintTestScores){

intSum += intTestScore;

}

txtSum.Text = intSum.ToString(“N0”);

}

individual elements as arguments
Individual Elements as Arguments

private void btnProcessArray_Click( )

{int i;decimal decPercent;

for (i = 0; i <= cintTestScores.GetUpperBound(0); i++){

decPercent = calcPercent(cintTestScores[i]);

txtPercent.Text = decPercent.ToString(“N0”);

}

}

private decimal calcPercent(int intScore)

{ return (intScore / 100);

}

partially filled arrays
Partially Filled Arrays
  • In the for loop on the prior slide it was assumed that the arrays were filled by going up to GetUpperBound(0).
  • Up to 20 scores could be loaded, but in the example only 6 scores were actually loaded.
  • When the array is not full, it is considered a partially filled array.
  • The for loops need to be modified to only process the number scores loaded.
  • The number of scores loaded are counted in the load routine, and the count should then be saved in a variable like cintNumberOfStudents.
  • This variable should then be used when processing the arrays.
load array partially filled
Load Array – Partially Filled

//Loads Array with scores saved in a data file.

private void btnLoadArray_Click( )

{FileStream studentFile = new FileStream("cs12ex.txt", FileMode.Open);

StreamReader studentStreamReader = new StreamReader(studentFile); int i = 0; //subscript initialized to zerowhile (studentStreamReader.Peek() != -1){ if (i < cintTestScores.Length) {cintTestScores[i] = int.Parse(studentStreamReader.ReadLine( )); i ++; //Increment subscript by one } else { MessageBox.Show (“Array Size Exceeded”); break; //Get of out of loop; Array is full. }}cintNumberOfStudents = i; //Save how many students were loadedstudentFile.Close( ); //Close file

}

processing partially filled arrays
Processing Partially Filled Arrays

private void btnProcessArray_Click( )

{int i;int intSum;

//for (i = 0; i <= cintTestScores.GetUpperBound(0); i++) //process entire arrayfor (i = 0; i <mintNumberOfStudents; i++) //process partially filled array{

intSum += cintTestScores[i];

}

txtAverage.Text = (intSum / mintNumberOfStudents).ToString(“N0”);

}

declare and load constant arrays
Declare and Load Constant Arrays
  • Arrays that will hold constants or some initial values can be loaded at declaration.
  • When the values are provided at declaration, do not include the size. The size is determined by the number of values provided.
  • The values are enclosed in braces and not parenthesis.decimal[ ] cdecPERCENT_RANGE = new decimal[ ] {90D, 80D, 70D, 60D, 0D};string[ ] cstrLETTER_GRADE = new string[ ] {"A", "B", "C", "D", "F"};
  • C# does NOT allow const for arrays.
summary
Summary
  • Declaring Arrays
  • Loading Arrays
  • Partially Filled Arrays
  • Arrays Elements as Arguments
  • Declaring and Loading Constant Arrays