Pesquisar este blog

quarta-feira, 30 de outubro de 2013

Introdução a Programação: Vetor e Matriz em C#

Vetor e Matriz:

Arrays são um conjunto de elementos de um mesmo tipo, com uma quantidade limitada de posições.
Aqui vamos tratar destes importantes pontos de uma linguagem de programação.
Matrizes e Vetores são conjuntos de dados, uma variável onde podemos armazenar vários elementos de um mesmo tipo, por exemplo as informações de um arquivo.

Vetor:

Um vetor possui apenas uma dimensão, com isso, ele se comporta como uma linha de uma tabela, a linha possui várias colunas, e cada coluna possui o valor de um elemento. Considerando que esta linha só pode receber valores do mesmo tipo, por exemplo inteiro, teremos um vetor de inteiro.
Vale lembrar que para construirmos um vetor de inteiros, faremos:

string[] vetor = new string[10];

Os leitores mais atentos irão notar que colocamos um valor inteiro entre as chaves, mas o que é que significa isso?
Bom, será que estamos dizendo que termos um vetor que vai conter um elemento string com valor 10? Na verdade não, o que acontece é que os vetores são elementos com tamanho fixo e ao inicializarmos um vetor deveremos definir o seu tamanho, que é o que estamos fazendo ali, definimos um vetor de strings com 10 posições.
E para armazenar um valor na primeira coluna do vetor devemos fazer:

vetor[0] = "primeiro valor";

Com isso agora temos um vetor que contem um elemento inteiro com valor primeiro valor na sua primeira posição. Este nosso vetor possui dez posições, a podemos acessá-las da seguinte forma:

vetor[0] = "primeiro valor";
vetor[1] = "segundo valor";
vetor[2] = "terceiro valor";
vetor[3] = "quarto valor";
vetor[4] = "quinto valor";
vetor[5] = "sexto valor";
vetor[6] = "setimo valor";
vetor[7] = "oitavo valor";
vetor[8] = "nono valor";
vetor[9] = "decimo valor";

Repare que o valor que determina a posição de um valor no vetor é um pouco confuso, para acessarmos o decimo valor, usamos o algarismo de número 9, isso acontece pois o primeiro valor de um vetor tem a posição 0, com isso o último elemento do vetor será sempre o tamanho dele -1.

Matriz:

Como vimos até agora os vetores são arrays de apenas uma dimensão, já as matrizes são arrays multidimensionais. Por exemplo uma tabela contém linhas e colunas e isto é um bom exemplo de uma matriz bi dimensional.
Como fazemos pra criar uma matriz?
int[,] tabela = new int[2,3];
Com isso criamos uma pequena tabelinha com 2 linhas e três colunas.
Um vetor de três dimensões é um cubo e para criarmos um vetor de três dimensões devemos fazer:
int[,] cubo = new int[3,3,3];

 Exercícios:

  1. Faça uma função que recebe um vetor X(15) de inteiros , por parâmetro, e retorna a quantidade de valores pares em X.

  2. Resolução:
    static void Main(string[] args)
    {
       Console.WriteLine("Programa multiplicador de linhas e colunas de uma matriz");
       int[,] matriz = new int[,] {
          {1,2,3,4},
          {5,6,7,8},
          {010,11,12}
       };
       Console.WriteLine("Digite valor que deverá multiplicar a coluna");
       int multiplicadorColuna = Convert.ToInt32(Console.ReadLine());
       Console.WriteLine("Digite o numero da coluna a ser multiplcada");
       int numeroColuna = Convert.ToInt32(Console.ReadLine());
       Console.WriteLine("Os valores da coluna multiplicados sao");
       for (int linha = 0; linha <= matriz.GetUpperBound(0); linha++)
       {
          Console.WriteLine(matriz[linha, numeroColuna] * multiplicadorColuna);
       }
       Console.WriteLine("Digite valor que deverá multiplicar a linha");
       int multiplicadorLinha = Convert.ToInt32(Console.ReadLine());
       Console.WriteLine("Digite o numero da linha a ser multiplcada");
       int numeroLinha = Convert.ToInt32(Console.ReadLine());
       Console.WriteLine("Os valores da linha multiplicados sao");
       for (int coluna = 0; coluna <= matriz.GetUpperBound(1); coluna++)
       {
          Console.WriteLine(matriz[numeroLinha, coluna] * multiplicadorLinha);
       }
          Console.ReadLine();
    }
  3. Faça uma rotina que atribua à matriz 6x6 os seguintes números inteiros, 
    |345 | 24  | 456 | 2345 | 100 | 265 |
    |258| 963 |321 |120     | 98   |145  |
    |300| 256 |255 |024     | 324| 369  |
    |125| 564 |433 |132     | 233| 353  |
    |357| 464| 288 |999     | 40  |775   |
    |456| 213| 32   |234     | 271| 42    |
  4. Faça um programa que localize o número 300 e mostre em que posição ele se encontra.
  5. Resolução:
    static void Main(string[] args)
    {
       Console.WriteLine("Programa multiplicador de linhas e colunas de uma matriz");
       int[] vetor = new int[] {1,2,3,4,5,6,7,8,9,10};

          int minimo=0;
          int maximo=0;
       for (int indice = 0; indice <= vetor.Length; indice++)
       {
                
             if(minimo>vetor[indice]){
                  minimo=vetor[indice];
             }
             if(maximo<vetor[indice]){
                maximo=vetor[indice];
             }
          }
       
          Console.WriteLine("O valor do maior elemento é {0}, e o do menor elemento é                              {1}",maximo,minimo);
          Console.ReadLine();
    }
  6. Faça um programa que recebe um vetor com 10 elementos e calcule o maior e o menor valor deles.
  7. Faça um programa que receba um vetor de inteiros com 5 elementos e calcule a média deles.