Csharp/C Sharp/Collections Data Structure/Array Dimension — различия между версиями
Admin (обсуждение | вклад) м (1 версия) |
Admin (обсуждение | вклад) м (1 версия) |
(нет различий)
|
Текущая версия на 11:39, 26 мая 2010
Содержание
- 1 Call GetLength for two dimenional array
- 2 Catch IndexOutOfRangeException Exception
- 3 Catch OutOfMemoryException
- 4 Demonstrate a two-dimensional array
- 5 Demonstrate jagged arrays
- 6 Demonstrate Length with jagged arrays
- 7 illustrates the use of a two-dimensional rectangular array
- 8 Initialize a two-dimensional array
- 9 initialize a two-dimensional rectangular array, and use the array properties and methods
- 10 Multidimensional and Jagged Arrays:Jagged Arrays
- 11 Multi dimensional Arrays 1
- 12 Sum the values on a diagonal of a atrix
- 13 the use of a jagged array
- 14 the use of a three-dimensional rectangular array
- 15 Uses a jagged array to store sales figures
- 16 Uses a two-dimensional array to store grades for students
- 17 Use the Length array property on a 3-D array
Call GetLength for two dimenional array
using System;
class ChessBoard {
static void Main(String[] args) {
Char[,] SquareColor = new Char[8, 8];
for (int i = 0; i < SquareColor.GetLength(0); i++) {
for (int x = 0; x < SquareColor.GetLength(1); x++) {
if ((x % 2) == 0)
if ((i % 2) == 0)
SquareColor[i, x] = "W";
else
SquareColor[i, x] = "B";
else
if ((i % 2) == 0)
SquareColor[i, x] = "B";
else
SquareColor[i, x] = "W";
}
}
for (int i = 0; i < SquareColor.GetLength(0); i++) {
for (int x = 0; x < SquareColor.GetLength(1); x++) {
Console.Write(SquareColor[i, x]);
}
Console.WriteLine();
}
}
}
Catch IndexOutOfRangeException Exception
using System;
class MainClass
{
public static void Main()
{
try
{
int [] IntegerArray = new int [5];
IntegerArray[10] = 123;
}
catch(IndexOutOfRangeException)
{
Console.WriteLine("An invalid element index access was attempted.");
}
}
}
Catch OutOfMemoryException
using System;
class MainClass
{
public static void Main()
{
int [] LargeArray;
try
{
LargeArray = new int [2000000000];
}
catch(OutOfMemoryException)
{
Console.WriteLine("The CLR is out of memory.");
}
}
}
Demonstrate a two-dimensional array
// Demonstrate a two-dimensional array.
using System;
public class TwoD {
public static void Main() {
int t, i;
int[,] table = new int[3, 4];
for( t = 0; t < 3; ++t) {
for(i = 0; i < 4; ++i) {
table[t,i] = (t*4)+i+1;
Console.Write(table[t,i] + " ");
}
Console.WriteLine();
}
}
}
Demonstrate jagged arrays
// Demonstrate jagged arrays.
using System;
public class Jagged1 {
public static void Main() {
int[][] jagged = new int[3][];
jagged[0] = new int[4];
jagged[1] = new int[3];
jagged[2] = new int[5];
int i;
// store values in first array
for(i=0; i < 4; i++)
jagged[0][i] = i;
// store values in second array
for(i=0; i < 3; i++)
jagged[1][i] = i;
// store values in third array
for(i=0; i < 5; i++)
jagged[2][i] = i;
// display values in first array
for(i=0; i < 4; i++)
Console.Write(jagged[0][i] + " ");
Console.WriteLine();
// display values in second array
for(i=0; i < 3; i++)
Console.Write(jagged[1][i] + " ");
Console.WriteLine();
// display values in third array
for(i=0; i < 5; i++)
Console.Write(jagged[2][i] + " ");
Console.WriteLine();
}
}
Demonstrate Length with jagged arrays
// Demonstrate Length with jagged arrays.
using System;
public class Jagged {
public static void Main() {
int[][] network_nodes = new int[4][];
network_nodes[0] = new int[3];
network_nodes[1] = new int[7];
network_nodes[2] = new int[2];
network_nodes[3] = new int[5];
int i, j;
// fabricate some fake CPU usage data
for(i=0; i < network_nodes.Length; i++)
for(j=0; j < network_nodes[i].Length; j++)
network_nodes[i][j] = i * j + 70;
Console.WriteLine("Total number of network nodes: " + network_nodes.Length + "\n");
for(i=0; i < network_nodes.Length; i++) {
for(j=0; j < network_nodes[i].Length; j++) {
Console.Write("CPU usage at node " + i +
" CPU " + j + ": ");
Console.Write(network_nodes[i][j] + "% ");
Console.WriteLine();
}
Console.WriteLine();
}
}
}
illustrates the use of a two-dimensional rectangular array
/*
illustrates the use of a two-dimensional rectangular array
*/
using System;
public class Example10_6 {
public static void Main() {
const int rows = 8;
const int columns = 8;
string[,] chessboard = new string[rows, columns];
chessboard[0, 0] = "White Rook";
chessboard[1, 0] = "White Pawn";
chessboard[2, 3] = "White King";
chessboard[3, 5] = "Black Bishop";
chessboard[4, 4] = "Black Pawn";
chessboard[5, 3] = "Black King";
for (int row = 0; row < rows; row++)
{
for (int column = 0; column < columns; column++)
{
Console.WriteLine("chessboard[" + row + ", " + column + "] = " +
chessboard[row, column]);
}
}
}
}
Initialize a two-dimensional array
// Initialize a two-dimensional array.
using System;
public class Squares {
public static void Main() {
int[,] sqrs = {
{ 1, 1 },
{ 2, 4 },
{ 3, 9 },
{ 4, 16 },
{ 5, 25 },
{ 6, 36 },
{ 7, 49 },
{ 8, 64 },
{ 9, 81 },
{ 10, 100 }
};
int i, j;
for( i = 0; i < 10; i++) {
for(j = 0; j < 2; j++)
Console.Write(sqrs[i,j] + " ");
Console.WriteLine();
}
}
}
initialize a two-dimensional rectangular array, and use the array properties and methods
/*
Mastering Visual C# .NET
by Jason Price, Mike Gunderloy
Publisher: Sybex;
ISBN: 0782129110
*/
/*
Example10_7.cs illustrates how to initialize
a two-dimensional rectangular array, and use the
array properties and methods
*/
using System;
public class Example10_7
{
public static void Main()
{
// create and initialize the names array
string[,] names =
{
{"Jason", "Marcus", "Price"},
{"Steve", "Edward", "Smith"},
{"Cynthia", "Ann", "Williams"},
{"Gail", "Patricia", "Jones"},
};
// display the Rank and Length properties of the names array
Console.WriteLine("names.Rank (number of dimensions) = " + names.Rank);
Console.WriteLine("names.Length (number of elements) = " + names.Length);
// use the GetLength() method to get number of elements
// in each dimension of the names array
int numberOfRows = names.GetLength(0);
int numberOfColumns = names.GetLength(1);
Console.WriteLine("Number of rows = " + numberOfRows);
Console.WriteLine("Number of columns = " + numberOfColumns);
// display the elements of the names array
for (int row = 0; row < numberOfRows; row++)
{
for (int column = 0; column < numberOfColumns; column++)
{
Console.WriteLine("names[" + row + ", " + column + "] = " +
names[row, column]);
}
}
}
}
Multidimensional and Jagged Arrays:Jagged Arrays
//
using System;
public class JaggedArrays {
public static void Main()
{
int[][] matrix = {new int[5], new int[4], new int[2] };
matrix[0][3] = 4;
matrix[1][1] = 8;
matrix[2][0] = 5;
for (int i = 0; i < matrix.Length; i++)
{
for (int j = 0; j < matrix[i].Length; j++)
{
Console.WriteLine("matrix[{0}, {1}] = {2}", i, j, matrix[i][j]);
}
}
}
}
Multi dimensional Arrays 1
using System;
public class MultidimensionalArrays
{
public static void Main()
{
int[,] matrix = { {1, 1}, {2, 2}, {3, 5}, {4, 5}, {134, 44} };
for (int i = 0; i < matrix.GetLength(0); i++)
{
for (int j = 0; j < matrix.GetLength(1); j++)
{
Console.WriteLine("matrix[{0}, {1}] = {2}", i, j, matrix[i, j]);
}
}
}
}
Sum the values on a diagonal of a atrix
// Sum the values on a diagonal of a 3x3x3 matrix.
using System;
public class ThreeDMatrix {
public static void Main() {
int[,,] m = new int[3, 3, 3];
int sum = 0;
int n = 1;
for(int x=0; x < 3; x++) {
for(int y=0; y < 3; y++) {
for(int z=0; z < 3; z++) {
m[x, y, z] = n++;
}
}
}
sum = m[0,0,0] + m[1,1,1] + m[2, 2, 2];
Console.WriteLine("Sum of first diagonal: " + sum);
}
}
the use of a jagged array
/*
Mastering Visual C# .NET
by Jason Price, Mike Gunderloy
Publisher: Sybex;
ISBN: 0782129110
*/
/*
Example10_9.cs illustrates the use of a jagged array
*/
using System;
public class Example10_9
{
public static void Main()
{
// declare a jagged array of four rows,
// with each row consisting of a string array
string[][] names = new string[4][];
// the first row is an array of three strings
names[0] = new string[3];
names[0][0] = "Jason";
names[0][1] = "Marcus";
names[0][2] = "Price";
// the second row is an array of two strings
names[1] = new string[2];
names[1][0] = "Steve";
names[1][1] = "Smith";
// the third row is an array of four strings
names[2] = new string[] {"Cynthia", "Ann", "Jane", "Williams"};
names[3] = new string[] {"Gail", "Jones"};
// display the Rank and Length properties for the names array
Console.WriteLine("names.Rank = " + names.Rank);
Console.WriteLine("names.Length = " + names.Length);
// display the Rank and Length properties for the arrays
// in each row of the names array
for (int row = 0; row < names.Length; row++)
{
Console.WriteLine("names[" + row + "].Rank = " + names[row].Rank);
Console.WriteLine("names[" + row + "].Length = " + names[row].Length);
}
// display the array elements for each row in the names array
for (int row = 0; row < names.Length; row++)
{
for (int element = 0; element < names[row].Length; element++)
{
Console.WriteLine("names[" + row + "][" + element + "] = " +
names[row][element]);
}
}
}
}
the use of a three-dimensional rectangular array
/*
Mastering Visual C# .NET
by Jason Price, Mike Gunderloy
Publisher: Sybex;
ISBN: 0782129110
*/
/*
Example10_8.cs illustrates the use of
a three-dimensional rectangular array
*/
using System;
public class Example10_8
{
public static void Main()
{
// create the galaxy array
int[,,] galaxy = new int [10, 5, 3];
// set two galaxy array elements to the star"s brightness
galaxy[1, 3, 2] = 3;
galaxy[4, 1, 2] = 9;
// display the Rank and Length properties of the galaxy array
Console.WriteLine("galaxy.Rank (number of dimensions) = " + galaxy.Rank);
Console.WriteLine("galaxy.Length (number of elements) = " + galaxy.Length);
// display the galaxy array elements, but only display elements that
// have actually been set to a value (or "contain stars")
for (int x = 0; x < galaxy.GetLength(0); x++)
{
for (int y = 0; y < galaxy.GetLength(1); y++)
{
for (int z = 0; z < galaxy.GetLength(2); z++)
{
if (galaxy[x, y, z] != 0)
{
Console.WriteLine("galaxy[" + x + ", " + y + ", " + z +"] = " +
galaxy[x, y, z]);
}
}
}
}
}
}
Uses a jagged array to store sales figures
/*
C# Programming Tips & Techniques
by Charles Wright, Kris Jamsa
Publisher: Osborne/McGraw-Hill (December 28, 2001)
ISBN: 0072193794
*/
// Sales.cs -- Uses a jagged array to store sales figures, then writes report
// for one month. Demonstrates that you do not have to worry about
// looking for empty elements.
//
// Compile this program with the following command line:
// C:>csc Sales.cs
//
namespace nsSales
{
using System;
public class Sales
{
static public void Main ()
{
DateTime now = DateTime.Now;
Random rand = new Random ((int) now.Millisecond);
int [] MonthLen = new int []
{31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
double [][] Sales2000 = new double [12][];
for (int x = 0; x < MonthLen.Length; ++x)
{
Sales2000[x] = new double [MonthLen[x]];
for (int y = 0; y < Sales2000[x].Length; ++y)
{
Sales2000[x][y] = rand.NextDouble() * 100;// % 11 + 20;
}
}
Console.Write ("February Sales Report (in thousands):");
for (int x = 0; x < Sales2000[1].Length; ++x)
{
if ((x % 4) == 0)
Console.WriteLine ();
Console.Write (" Feb. {0,-2:D}: {1,-4:F1}", x + 1, Sales2000[1][x]);
}
}
}
}
Uses a two-dimensional array to store grades for students
/*
C# Programming Tips & Techniques
by Charles Wright, Kris Jamsa
Publisher: Osborne/McGraw-Hill (December 28, 2001)
ISBN: 0072193794
*/
// Grades.cs -- Uses a two-dimensional array to store grades for students
//
// Compile this program with the following command line:
// C:>csc Grades.cs
namespace nsGrades
{
using System;
public class Grades
{
static public void Main ()
{
DateTime now = DateTime.Now;
Random rand = new Random ((int) now.Millisecond);
int [,] Grades = new int [5,10];
for (int x = 0; x < Grades.GetLength (0); ++x)
{
for (int y = 0; y < Grades.GetLength(1); ++y)
{
Grades [x, y] = 70 + rand.Next () % 31;
}
}
int [] Average = new int [10];
Console.WriteLine ("Grade summary:\r\n");
Console.WriteLine ("Student 1 2 3 4 5 6 7 8 9 10");
Console.WriteLine (" ----------------------------------------");
for (int x = 0; x < Grades.GetLength (0); ++x)
{
Console.Write ("Test " + (x + 1) + " ");
for (int y = 0; y < Grades.GetLength(1); ++y)
{
Average[y] += Grades[x,y];
Console.Write ("{0,4:D}", Grades[x,y]);
}
Console.WriteLine ();
}
Console.Write ("\r\n Avg. ");
foreach (int Avg in Average)
{
Console.Write ("{0,4:D}", Avg / Grades.GetLength(0));
}
Console.WriteLine ();
}
}
}
Use the Length array property on a 3-D array
// Use the Length array property on a 3-D array.
using System;
public class LengthDemo3D {
public static void Main() {
int[,,] nums = new int[10, 5, 6];
Console.WriteLine("Length of nums is " + nums.Length);
}
}