Matrizes em Portugol e C#



Na linguagem de programação C#, As matrizes seguem o modelo de declaração de variáveis, com a diferença de notação para indicar se tratamos de uma matriz ou de um vetor. Declaramos o tipo de valores dos elementos que compõem a matriz, seguido pelo nome e pelo número de linhas/colunas, se conhecido.
Exemplo:

int A [2,2]; (matriz 2 x 2, em C#)

Para indicar um elemento específico da matriz, usamos o comando de atribuição, indicando posição de linha e coluna deste:

A[1,1] = 44; (matriz)

B[1] = 1; (vetor de uma componente)

Como as matrizes usuais, o índice de linhas e colunas inicia em 1, na declaração de Variáveis. Todavia, em uma matriz 4 x 3, por exemplo, as linhas variam de 0 a 3 e as colunas de 0 a 2. Este detalhe é importante para a construção dos algoritmos em C#.
Declarar elementos em matrizes gigantes é algo enfadonho, e desnecessário, pois, podemos usar uma estrutura do tipo para/faça em que há uma variável de controle para o número de linhas e outra para o número de colunas. O algoritmo será repetido m x n vezes, em que m é o número de linhas e n é o número de colunas, por exemplo.
Se desejamos usar uma matriz 4 x 4 em que os elementos da diagonal principal são iguais a 4, os elementos em que o valor da linha é maior que o da coluna iguais a 1 e os demais iguais a sete, um algoritmo em Portugol, seria o seguinte:


int A = [4,4];
int L = 4;
int C = 4;
para (int l = 0, l < L, l = l + 1)
faça
            para (int c = 0, c < C, c = c + 1)
            faça
se (l == c) então
A[l, c] = 4;
senão
            se (l > c) então
            A[l, c] = 1;
            senão
            A[l, c] = 7;
            fimse
fimse
fimpara
fimpara

Em C#, teríamos o seguinte algoritmo:

private void button1_Click(object sender, EventArgs e)
        {
            int [,] A = new int [4,4];
            for (int l = 0; l < 4; l = l + 1)
                {
                    for (int c = 0; c < 4; c = c + 1)
                    {
                        //aqui vou colocar meus comandos
                        if (l == c) A[l, c] = 4;
                        if (l < c) A[l, c] = 7;
                        if (l > c) A[l, c] = 1;
                    }
                }
        }


Na sintaxe, é importante usar o ponto e vírgula em para(variável = valor inicial; valor inicial; incremento) senão o C# indica erro, usando mensagens como ‘expected’ ou similares.

Quem usa o Visual Studio C#, está acostumado às Listboxs, Buttons e outras ferramentas de visualização da interface Windows, para auxiliar no cálculo de matrizes, temos o dataGridView como ferramenta de visualização de matrizes. Também é possível declarar o número de linhas e colunas desta visualização. Esta contagem começa em 1.

dataGridView2.RowCount = 7; (sete colunas)
dataGridView2.ColumnCount = 6; (seis linhas)

Para visualizar os elementos da matriz que calculamos, implementamos um algoritmo para/ faça, da mesma forma. Apenas muda o interior do algoritmo, onde ordenamos a atribuição dos valores da matriz calculada em C# para a dataGridView:

dataGridView2.Rows[q].Cells[r].Value = N[q,r];

Para que o software leia os valores do visor e converta os dados para uso da aplicação, fazemos um algoritmo para/faça e implementamos o seguinte bloco de ações:

N[q,r] = (float)Convert.ToDecimal(dataGridView2.Rows[q].Cells[r].Value);

*A matriz N era do tipo float, por isso a conversão em Casting (entre parênteses, do menor para o maior);
* dataGridView converte direto para Decimal e integer .

Para atribuir um valor aleatório, nas aplicações, podemos usar a ferramenta valor aleatório, que é atribuído a todos os elementos da matriz. O sistema não gera um número novo a cada execução. Há outros algoritmos mais elaborados, para a mescla de valores dentro de uma matriz.

Random k = new Random ();

M [o,p] = k.Next (0,100);

*Os números após Next indicam o intervalo em que o número aleatório deve estar. □

Veja também: (Mensagens e poesias) Despedida aos amigos

Postar um comentário

0 Comentários