Uma variável simples armazena apenas um ÚNICO valor (em memória).
ARRAYS ou vector
Um Array é um tipo de dados estruturado, que permite guardar um conjunto de elementos do mesmo tipo numa única variável.
Podemos ter
--> ARRAYS UNIDIMENSIONAIS -
Matriz com 3 linhas e 4 colunas
______________________________________________________________
______________________________________________________________
Declaração de ARRAYS Unidimensionais
tipo NomeArray [dimensão];
Declaração de ARRAYS Bidimensionais
- Matrizes
tipo NomeArray [dimensão][dimensão];
Exemplo anterior: int X[3][4];
_________________________________________________________________
int
Notas[12 ]; // cria de o array Notas de dimensão 12, “vazio” na memória
________________________________________________________
Um array deve ter número fixo de valores e todos do mesmo tipo
--> do tipo int, float, char
Em C, os arrays começam sempre no índice 0 e vão até ao valor da dimensão -1
__________________________________
Colocar valores no array criado
Notas[0] = 19
Notas[1] = 12
Notas[3] = 14
etc.
__________________________________
Leitura de valores dados pelo utilizador
main()
{ int Notas[12] , i ;
for ( i= 0 ; i<=11 ; i++)
{ printf(“ Indique a nota \n”);
scanf(“%i” , &Notas[i] );
}
}
Declaração e Inicialização de Arrays
tipo nomeArray[ n
] = { valor1, valor 2, valor 3, ..., valorn }
int Idades[3] = {20, 25, 17} ;
int Age[10] ={12, 15, 17 }; equivalente a int Age [10] = {12,15,17,0,0,0,0,0,0,0}
int X[3] = { 4, 5, 7} equivalente a int X[ ] = {4, 5, 7}
int v[3];
// vector não inicializado
int v [ ];
// declaração incorrecta
________________________________________________________________________
Percorrer o array Unidimensional
utiliza-se a estrutura de repetição “for” ( ciclo “for”)
Imagine que pretendia determinar a média aritmética das notas de uma turma de 30 alunos?
Verificar qual a maior nota.
Determinar quantas notas são positivas.
Determinar a média das positivas Etc.. mantendo sempre os valores das notas em memória.
A forma mais conveniente para guardar os dados do mesmo tipo em memória é o tipo de dado VECTOR – ARRAY.
Elabore um programa que solucione o problema anterior usando um Array Unidimensional.
No programa principal
1. declarar o array
2. Recolher os valores das notas
3. Determinar a maior nota
4. Determinar a média
main()
{ int Notas[30] ; float S, Med;
// leitura e armazenamento no array Notas das 30 notas
for ( i =0 ; i <=29 ; i++ )
{ printf (“ \n Indique a %iº nota \n ”, i +1 );
scanf(“%i”, &Notas [ i ] ) ;
}
maior = Notas[0]; // considerar o maior valor o valor de índice 0
// verifica qual a maior nota existente no array Notas do índice 1 ao 29
for ( i =1 ; i <=29 ; i++ )
{ if ( Notas [ i ] > maior )
maior = Notas [ i ] ;
}
S =0 ; // inicialmente a Soma é zero
// percorre o array e vai acumulando da soma das notas
for ( i =0 ; i <=29 ; i++ )
{ S = S + Notas [ i ];
}
// falta fazer a média
Med = S/ 30;
printf (“ \n Média das notas: %.1f \n ”, Med );
}
Declarar e inicializar uma Matriz
com números inteiros
int X[3][4 ] = { { 1, 2, 3, 4} , { 5, 6, 7, 8} , { 1, 2,
3, 4} };
Percorrer o array Bidimensional
utiliza-se 2
estrutura de repetição “for” ( ciclo
“for”), um para percorrer as linhas e outro para percorrer as colunas
for ( L= 0;
L<= 2 ; L ++ )
{
for (C=0; C<=2 ; C++)
{ printf(
“ X[%i][
%i
]= %i \n “, L, C , X[ L ][C] ) ;
}
}
FUNÇÃO QUE TEM 2
PARÂMETROS: array
X de inteiros de n elementos
// devolve o resultado da média dos n valores inteiros do array X
float Media ( int X[] , int n)
{
float S=0; int i; //necessário declarar as variáveis locais
for(i=0; i<n ; i++)
{ S = S + X[i];
}
return ( S/ n); //devolve o resultado da média
}
//programa principal que utiliza a função Media para determinar a média de idades e de notas
main(){ int i, midade, mnota, Idades[5], Notas[5]; float md;for(i=0; i<5 ; i++){ printf("\nIndique a %i idade \n", i+1 );scanf("%i", &Idades[i]);printf("\nIndique a sua nota \n", i+1 );scanf("%i", &Notas[i]);}md = Media ( Idades, 5); // só o nome do array e a dimensão !!printf("\n\n A média das idades é: %.1f", md);printf("\n\n A média das notas é: %.1f", Media ( Notas, 5) );}
Sem comentários:
Enviar um comentário