domingo, 4 de agosto de 2019

C# - Array tridimensional de inteiros e de strings

Quando queremos armazenar elementos em forma de tabela,
em linhas e colunas utilizamos um array multidimensional,
e no C# como em outras linguagens,
os arrays multidimensionais suportam arrays de duas
ou mais dimensões. 

Já sabemos que matriz é um conjunto de um nome
dado voluntariamente pelo programador,
para armazenar valores de mesmo tipo de dados.
Nós temos a liberdade de nomear uma matriz com
um nome qualquer, mas observando as boas práticas
de programação daremos um nome sugestivo nem só
as matrizes mas também a qualquer variável
que precisarmos nomear.

Quando declaramos uma matriz o compilador aloca
a quantidade de memória necessária para valores
especificados nas dimensões da matriz,
mas se por algum motivo os valores das dimensões
não forem especificados, o C# se encarregará de
fazer este trabalho automaticamente,
no nosso caso como já sabíamos de antemão os
valores que eram suficientes, resolvemos especificar.
Aqui está um exemplo muito claro e didático
de declaração, inicialização e impressão de matriz
tridimensional de inteiros e de strings.


Veja abaixo uma imagem do programa em execução:



Veja abaixo o código do programa:


//ARRAY TRIDIMENSIONAL DE INTEIROS E DE STRING
using System;
using System.Collections;

class Arr {
    /*============================================================*/
    void Informe ( ) {
        Console.BackgroundColor = ConsoleColor.White;
        Console.SetCursorPosition ( 20, 18 );
        Console.ForegroundColor = ConsoleColor.Red;
        Console.Write ( "Por: " );
        Console.SetCursorPosition ( 25, 18 );
        Console.ForegroundColor = ConsoleColor.Blue;
        Console.Write ( "Samuel Lima" );
        Console.SetCursorPosition ( 20, 19 );
        Console.ForegroundColor = ConsoleColor.Black;
        Console.Write ( "sa_sp10@hotmail.com" );
        Console.SetCursorPosition ( 30, 21 );
        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, k;
        int [ , , ] inteiros = new int [ 10, 2, 2 ] {
                        { { 1, 11 }, { 21, 31 } },
                        { { 2, 12 }, { 22, 32 } },
                        { { 3, 13 }, { 23, 33 } },
                        { { 4, 14 }, { 24, 34 } },
                        { { 5, 15 }, { 25, 35 } },
                        { { 6, 16 }, { 26, 36 } },
                        { { 7, 17 }, { 27, 37 } },
                        { { 8, 18 }, { 28, 38 } },
                        { { 9, 19 }, { 29, 39 } },
                        { {10, 20 }, { 30, 40 }}};
        //Posiciona os textos no console
        Console.SetCursorPosition ( 6, 4 );
        Console.ForegroundColor = ConsoleColor.Black;
        for ( i = 0; i < inteiros.GetLength ( 0 ); i++ ) {
            for ( j = 0; j < inteiros.GetLength ( 1 ); j++ ) {
                for ( k = 0; k < inteiros.GetLength ( 2 ); k++ ) {
                    Console.Write ( inteiros [ i, j, k ] + " " );
                }
            }
            Console.SetCursorPosition ( 6, i + 5 );
        }
        string [ ,, ] nomes = new string [ 10, 4, 1 ] {
    {{"one  "}, {" eleven   "}, {" twenty-one  "}, {" thirty-one  "}},
    {{"two  "}, {" twelve   "}, {" Twenty-two  "}, {" Thirty-two  "}},
    {{"three"}, {" thirteen "}, {" Twenty-three"}, {" Thirty-three"}},
    {{"four "}, {" fourteen "}, {" twenty-four "}, {" Thirty-four "}},
    {{"five "}, {" fifteen  "}, {" Twenty-five "}, {" Thirty-five "}},
    {{"six  "}, {" sixteen  "}, {" twenty-six  "}, {" Thirty-six  "}},
    {{"seven"}, {" seventeen"}, {" Twenty-seven"}, {" Thirty-seven"}},
    {{"eight"}, {" eighteen "}, {" Twenty-eight"}, {" Thirty-eight"}},
    {{"nine "}, {" nineteen "}, {" Twenty-nine "}, {" Thirty-nine "}},
    {{"ten  "}, {" twenty   "}, {" thirty      "}, {" forty       "}}};
        //Posiciona os textos no console
        Console.SetCursorPosition ( 20, 4 );
        Console.ForegroundColor = ConsoleColor.Black;
        for ( i = 0; i < nomes.GetLength ( 0 ); i++ ) {
            for ( j = 0; j < nomes.GetLength ( 1 ); j++ ) {
                for ( k = 0; k < nomes.GetLength ( 2 ); k++ ) {
                    Console.Write ( nomes [ i, j, k ] + " " );
                }              
            }
            Console.SetCursorPosition ( 20, i + 5 );
        }
        Console.ReadKey ( );
    }
    /*============================================================*/
    public static void Main ( ) {
        Console.Title = ( "ARRAY TRIDIMENSIONAL DE INTEIROS E DE STRING" );
        Arr array = new Arr ( );
        array.Moldura ( 1, 22, 2, 68 );     
        Console.SetCursorPosition ( 14, 2 );
        Console.BackgroundColor = ConsoleColor.White;
        Console.ForegroundColor = ConsoleColor.Red;
        Console.Write ( "ARRAY TRIDIMENSIONAL DE INTEIROS E DE STRING" );     
        array.Informe ( );
        array.Ini_Array ( );
        //Segura a execução do programa
        Console.ReadKey ( );
    }
}
/*============================================================*/


 

Nenhum comentário:

Postar um comentário