sendo retangular na horizontal ou vertical.
Uma matriz 5 X 5 é quadrática, e uma matriz 2 X 5,
é retangular horizontal, e uma matriz 5 X 2 é retangular vertical.
Mas e se precisássemos de uma matriz com tamanhos
diferentes para as linhas? O compilador não aceita
tamanhos diferentes numa matriz bidimensional,
Felizmente foi criado o Jagged Arrays,
que aceita tamanhos diferentes para as linhas.
Para declarar um jagged array, basta colocar um par de colchetes
abrindo e fechando logo depois do primeiro par de colchetes,
definindo o total de linhas no primeiro par de colchetes,
O segundo par de colchetes precisa está em branco,
porque o total de itens em cada linha são diferentes.
Depois de sua clássica declaração um jagged array deve ser
inicializado com o total de elementos definido para cada linha.
A leitura de um jagged array é feita com loops for aninhado,
onde o primeiro faz a leitura de cada linha,
e o segundo a leitura dos elementos de cada linha,
mas seus elementos também podem ser acessados individualmente,
informando a linha e a coluna com o nome dado a matriz.
Aqui está um bom exemplo de arrays irregulares em C#.
Veja abaixo uma imagem do programa em execução:
Veja abaixo o código do programa:
using System.Collections;
class Arr {
/*============================================================*/
void Informe ( ) {
Console.BackgroundColor =
ConsoleColor.White;
Console.SetCursorPosition ( 20, 16 );
Console.ForegroundColor =
ConsoleColor.Red;
Console.Write ( "Por: " );
Console.SetCursorPosition ( 25, 16 );
Console.ForegroundColor =
ConsoleColor.Blue;
Console.Write ( "Samuel Lima" );
Console.SetCursorPosition ( 20, 17 );
Console.ForegroundColor =
ConsoleColor.Black;
Console.Write ( "sa_sp10@hotmail.com" );
Console.SetCursorPosition ( 30, 19 );
Console.ForegroundColor =
ConsoleColor.Red;
Console.Write ( "MUITO OBRIGADO" );
}
/*============================================================*/
void Moldura ( int
tam_lin_ini, int
tam_lin_fim, int
tam_ini_col,
int tam_fim_col ) {
int i, c;
for ( i = tam_lin_ini; i < tam_lin_fim; i++ ) {
for ( c = tam_ini_col; c < tam_fim_col; c++ ) {
Console.SetCursorPosition ( c,
i );
Console.BackgroundColor =
ConsoleColor.White;
Console.Write ( " " );
}
}
}
/*============================================================*/
void Ini_Array ( ) {
int i, j;
int [ ] [ ] arrayJagged = new int [ 5 ] [
];
arrayJagged [ 0 ] = new int [ 10 ] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
arrayJagged [ 1 ] = new int [ 8 ] { 11, 12, 13, 14, 15, 16, 17, 18 };
arrayJagged [ 2 ] = new int [ 6 ] { 21, 22, 23, 24, 25, 26 };
arrayJagged [ 3 ] = new int [ 4 ] { 31, 32, 33, 34 };
arrayJagged [ 4 ] = new int [ 2 ] { 35, 36 };
//Posiciona os
textos no console
Console.SetCursorPosition ( 21, 6 );
Console.ForegroundColor =
ConsoleColor.Blue;
for ( i = 0; i < arrayJagged.Length; i++ ) {
for ( j = 0; j < arrayJagged [ i ].Length; j++ ) {
if ( ( arrayJagged [ i ] [ j ] >= 0 &&
arrayJagged [ i ] [ j ]
< 10 ) )
Console.Write ( "0" );
Console.Write ( arrayJagged [ i
] [ j ] + " " );
}
Console.SetCursorPosition ( 21, i +
7 );
}
Console.ReadKey ( );
}
/*============================================================*/
public static void Main ( ) {
Console.Title = ( "JAGGED ARRAY" );
Arr array = new Arr ( );
array.Moldura ( 1, 20, 2, 68 );
Console.SetCursorPosition ( 28, 2 );
Console.BackgroundColor =
ConsoleColor.White;
Console.ForegroundColor =
ConsoleColor.Red;
Console.Write ( "JAGGED ARRAY" );
array.Informe ( );
array.Ini_Array ( );
//Segura a
execução do programa
Console.ReadKey ( );
}
}
/*============================================================*/
Nenhum comentário:
Postar um comentário