terça-feira, 31 de julho de 2007

Como usar o vetor no C#

Vetores servem para armazenamento de vários resultados referente a um único objetivo, veja o vetor como um armário, desses de academia que tem os números para referência, por exemplo temos os dias das semanas domingo, segunda, terça, quarta, quinta, sexta, sábado podemos criar 7 variáveis sSegunda = "segunda", sTerca="terca" ... sSabado = "sabado" isso não é muito usual, nem uma boa prática de programação, então temos um tipo de dados para fazer isso veja como fica mais fácil, abaixo explico como mostrar todos os dias da semana.


// criamos um vetor com os dias da semana
string[] sSemana = { "domingo", "segunda", "terça", "quarta", "quinta", "sexta", "sábado" };


Para pegarmos um valor do vetor pecisamos do seu "index" (é o número do armário que você guardou suas coisas) a estrutura para pegar um valor do vetor é nome_do_vetor[posição_do_conteudo], a posição do conteudo começa em ZERO, então se quisermos pegar a segunda faremos do seguinte modo, sSemana[1]

Vamos pensar um pouco, para pegarmos todas os dias da semana poderiamos fazer da seguinte forma


Console.WriteLine("Primeiro exemplo de vetor: \n");
Console.WriteLine(sSemana[0]);
Console.WriteLine(sSemana[1]);
Console.WriteLine(sSemana[2]);
Console.WriteLine(sSemana[3]);
Console.WriteLine(sSemana[4]);
Console.WriteLine(sSemana[5]);
Console.WriteLine(sSemana[6]);

Console.WriteLine("\nPrecione para continuar o exemplo");
Console.ReadLine();




Da forma acima temos todos os dias da semana, como podemos fazer para otmizar esse código?
Se reparar, o número do vetor está em ordem crescente somando um a um, então podemos usar um comando de repetição se ele repetir 7 vezes vai pegar os sete dias da semana correto? Neste caso usaremos o for do c# que repete o bloco de comandos na quantidade de vezes que você definir.
Porque não usar o while?
O while repete um bloco de acordo com uma condição, já o for repete um bloco de comandos de acordo com a posição inicial e final que você definir, isso não quer dizer que você não pode usar o while, mais nesse caso o for é mais usual.

Lembrando o comando for

for(posição inicial;condição de repetição;incremento)
{
bloco de comandos que será repetido
}

Exemplo:

defino o início do for em 1, e o final em 10 e incremento 1
for(int i=1;i<=10;i++) { Console.WriteLine(i); }

vamos continuar com os dias da semana, a posição inicial do vetor sSemana é 0 e o final é 6 como vimos no exemplo acima, então sabemos que o for vai de 0 a 6. Vamos definir um for que vá de 0 a seis e que incremente 1 a 1 para pegar todos os dias da semana, e no vetor vamos definir que ao invés dele pegar um valor fixo como no exemplo acima, podemos definir que ele pegue o valor da váriavel do for sSemana[váriável_do_for].

Console.WriteLine("Segundo exemplo de vetor usando o for: \n");
for (int i = 0; i <= 6; i++) {
Console.WriteLine(sSemana[i]);
}
Console.WriteLine("\nPrecione para continuar o exemplo");
Console.ReadLine();

temos no vetor uma função chamada "Length", essa função retorna a quantidades de colunas que existe no vetor, ela retorna a quantidades de portas que existe no armário da academia, isso ajuda e muito, vamos supor que você crie um vetor de nomes dos seus amigos, então declara o vetor e coloca "joão", "maria", "josé" beleza, você faz seu programa com esses 3 nomes faz o for inicial 0 e final 2 (0="joão",1="maria",2="josé"), o programa roda normal, derepente você conhece alguém no final de semana o "abimael" então você vai no programa e altera o vetor adiciona o "abimael" então ficaria do seguinte modo "joão", "maria", "josé", "abimael" dai você vai no for e altera de final 2 para final 3 (0="joão",1="maria",2="josé",3="abimael") dai no outro final de semana você conhece mais duas pessoas, vai altera o vetor e altera o for, certo para não ter o retrabalho de ficarmudando o final do for toda vez que você conhecer alguém, usamos a Função length, nome_do_vetor.Length, ela retorna a quantidade de colunas que existe então no caso da semana ele vai retornar 7 mais devemos lembrar que o index do vetor inicia no ZERO então a última coluna do vetor, a última porta do armário é 6 e não sete, então mudamos o for:


Console.WriteLine("Terceiro exemplo de vetor usando o for e o length: \n");
for (int i = 0; i < sSemana.Length; i++) {
Console.WriteLine(sSemana[i]);
}
Console.WriteLine("\nPrecione para terminar");
Console.ReadLine();



Façam testes para entender como funciona os vetores... coloque no inicial do for outro valor para ver o q acontece, por exemplo 3 dai ele vai mostrar as colunas do 3 a 6 , quarta, quinta, sexta, sábado nos 3 casos temos a mesma coisa feita de diferentes maneiras, você pode ver como conforme você vai otmizando o programa as linhas vão diminuindo, e o trabalho para fazer manutenção neste programa vai diminuindo também. Galera, espero ter ajudado, qualquer coisa é só me mandar um e-mail, estou a disposição para ajudar.