Escolar Documentos
Profissional Documentos
Cultura Documentos
2009/2010
Estruturas de dados compostas em C#
LP 2009/20010
ajtavares@ipca.pt
ndice
1.
2.
3.
4.
Array multidimensional
5.
Array de arrays
6.
Dimenses de arrays
7.
Enumeraes
8.
Registos ou Estruturas
LP 2009/20010
ajtavares@ipca.pt
Declarao
Atribuio
Exemplos:
Utilizao
int umaVariavel;
varivel
int outravariavel;
umaVariavel = 5;
outraVariavel = umaVariavel;
LP 2009/20010
ajtavares@ipca.pt
int
double
string
8 10 12
5
1.2
palavra
LP 2009/20010
ajtavares@ipca.pt
Array
Array ou vector-unidimensional
LP 2009/20010
ajtavares@ipca.pt
Array
Declarao:
LP 2009/20010
ajtavares@ipca.pt
Array
Declarao com inicializao:
LP 2009/20010
ajtavares@ipca.pt
Array
Exemplo:
...
int[] v10 = new int[10];
int[] v20 = new int[20];
int i = 40;
int[] v;
...
switch(i) {
case 10: v = v10;
break;
break;
LP 2009/20010
ajtavares@ipca.pt
Array
Operadores e operaes:
Tamanho do Array
nomeArray.Length;
int soma = 0;
int maior = 0;
int x = valores.Lenght;
{
if(maior < valores[i])
maior = valores[i]
Console.WriteLine(Maior + maior);
LP 2009/20010
ajtavares@ipca.pt
Array
Exemplos
LP 2009/20010
ajtavares@ipca.pt
Array
Exemplos
LP 2009/20010
ajtavares@ipca.pt
Array
Exemplos
int[] f = new int[10];
f[0] = 0;
f[1] = 1;
for(int i = 2; i < 10; i++ )
f[i] = f[i-1]+f[i-2];
Excepo:
IndexOutOfRangeException
f[10] no existe
Exemplos:
int[,] valores = new int[3,4];
//array multidimensional com 3 linhas e 4 colunas
int [,] valores = {{2,3},{3,4}};
//array multidimensional com 2 linhas e 2 colunas
LP 2009/20010
ajtavares@ipca.pt
LP 2009/20010
ajtavares@ipca.pt
LP 2009/20010
ajtavares@ipca.pt
LP 2009/20010
ajtavares@ipca.pt
LP 2009/20010
ajtavares@ipca.pt
Array Multidimensional
Declarao:
tipoDados[,,,] nomeArray = new tipoDados[dim1,dim2,dim3,dim4];
Exemplo:
int [,,,] muitasDimensoes = new int[2,3,4,5];
//array multidimensional de dimenso 4
LP 2009/20010
ajtavares@ipca.pt
Declarao:
tipoDados[][] nomeArray = new tipoDados[dim][]
LP 2009/20010
ajtavares@ipca.pt
LP 2009/20010
ajtavares@ipca.pt
10
LP 2009/20010
ajtavares@ipca.pt
LP 2009/20010
ajtavares@ipca.pt
11
LP 2009/20010
ajtavares@ipca.pt
12
...
for(int m = 0; m < dias_mes.Length; m++){
gastos[m] = new float[dias_mes[m]];
for(int d = 0; d < gastos[m].Length; d++)
gastos[m][d] = 0.0F;
}
...
LP 2009/20010
ajtavares@ipca.pt
Dimenses de Arrays
Length, Rank, GetLength(dimensao)
LP 2009/20010
ajtavares@ipca.pt
13
Dimenses de Arrays
LP 2009/20010
ajtavares@ipca.pt
Dimenses de Arrays
LP 2009/20010
ajtavares@ipca.pt
14
Enumeraes
Enumeraes
LP 2009/20010
ajtavares@ipca.pt
Enumeraes
LP 2009/20010
ajtavares@ipca.pt
15
Registos
Registos ou Estruturas
LP 2009/20010
ajtavares@ipca.pt
Registos
Erro: em C#
complicado usar
arrays dentro de structs
LP 2009/20010
ajtavares@ipca.pt
16
Array de Registos
LP 2009/20010
ajtavares@ipca.pt
17