Vetores
Um vetor é uma variável unidimensional formada por uma sequência de valores de um
determinado tipo de dados. A seguinte figura mostra a representação de um vetor. O
acesso aos elementos do vetor faz-se utilizando o nome do vetor e o índice dos
elementos que varia entre 0 e o tamanho do vetor menos 1.
Um vetor que não seja explicitamente inicializado será inicializado com todos os
valores a 0.
Manipulação de vetores
Exemplo 1- Leitura e escrita de valores num vetor
using System;
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
int[] a = new int[] { 10, 20, 30, 40, 50 };
Console.WriteLine(a[3]); //Mostra o elemento 40
Console.Write("Insira um valor para a terceira posição:");
a[2] = Convert.ToInt32(Console.ReadLine());
Console.WriteLine(a[2]); //Mostra o valor inserido
}
}
}
Copiar vetores
A primeira tentação para a resolução deste problema poderia ser a de igualar o vetor b
ao vetor a. No entanto, dado os vetores serem um tipo referenciado o que iria
acontecer era que ambos ficariam a apontar para a mesma zona de memória e
qualquer alteração num deles afetaria o outro. Assim, é necessário executar um ciclo
para copiar cada um dos elementos do vetor a para o vetor b. As implementações
abaixo mostram o que acontece na primeira situação e na segunda.
b = a;
//Se alterar o valor em a vai aparecer alterado em b
//Trata-se por isso do mesmo valor e não de uma copia
a[0] = 10;
Console.WriteLine("a[0]:{0} b[0]:{1}", a[0], b[0]);
}
}
}
Versão 2 –
using System;
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
int[] a = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
int[] b = new int[a.Length];
Ciclo foreach
A instrução foreach permite percorrer os elementos de uma matriz. Esta iteração é
feita pela ordem dos números existentes na matriz. É uma forma fácil de percorrer
todos os elementos sem ter de saber a dimensão da matriz.
Sintaxe:
foreach (<tipo_de_dados> <variavel> in <expressão>)
<bloco_de_instrucoes>
using System;
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
int[] v = { 23, 24, 25, 26, 27, 13, 14, 15, 16, 17 };
foreach (int num in v)
{
Console.WriteLine(num);
}
}
}
}
Matrizes
A semelhança dos vetores ou matrizes unidimensionais, cada elemento é identificado
com um nome e os seus índices na matriz, que no caso de ter duas dimensões, utiliza
dois índices, um para as linhas, que se costuma identificar pela letra i e outro para as
colunas que se costuma identificar pela letra j
Tal como já foi referido anteriormente as matrizes ocupam espaços contíguos na
memória.
Sintaxe:
<tipo_de_dados> [,] <nome_da_matriz>;
Matriz “a” de inteiros
int [,] a;
A inicialização das matrizes é semelhante à dos vetores, mas com a indicação das
várias dimensões.
Sintaxe:
<tipo_de_dados> [,] <nome_da_matriz> = new tipo_de_dados [dimensao1,
dimensao2, ..., dimensaon];