Documente Academic
Documente Profesional
Documente Cultură
Tipo de dado usado para representar um CONJUNTO de dados do um mesmo tipo Estrutura de dados homognea unidimensional
Ex: Ler a nota de 3 alunos e calcular a mdia int nota0, nota1, nota2;
printf(entre com a 1a. nota); scanf(%d%d%d, ¬a0, ¬a1, ¬a2); printf(mdia = %f, (nota0 + nota1 + nota2) / 3));
Declarao de Vectores
Tipo nomedavarivel [n de lementos] int notas[4]; notas uma varivel do tipo array de 4 elementos do tipo int. A sua representao ser: a[0] a[1] a[2] a[3] em que cada posio guarda um inteiro.
Nuno Costa
Declarao de Vectores
Ocupam
posies de memria contguas e neste caso o seu ndice varia obrigatoriamente de 0 a 3. Ou seja, tem-se, para essas 4 posies os elementos a[0], a[1], a[2], a[3]
So
tratados como se fossem quatro variveis distintas. Atribuindo os valores 1,2 e 3 respectivamente, aos trs primeiros elementos a[0]=1; a[1]=2; a[2]=3; Teremos:
1
a[0]
2
a[1]
3
a[2] a[3]
Nuno Costa 3
Declarao de Vectores
O
nome array uma constante e representa o endereo da 1. posio do array. Isto : a==&a[0] /* O operador & d o endereo da varivel. Neste caso d o endereo de a[0]*/
Supondo que o vector se iniciava na posio de memria com o endereo 100, e que cada inteiro gasta 2 bytes, ter-se-ia: a==100
&a[0]==100 &a[1]==102 &a[2]==104 &a[3]==106
Nuno Costa 4
Em C no existe declarao de vector dinmico O tamanho de um vector tem de ser determinado no momento da compilao
Exemplo:
int alunos; int notas [ alunos ]; : : : printf (Nmero de alunos); scanf (%d, &alunos);
NO VLIDO !!!
Nuno Costa 5
Inicializao de vectores
int a[4]={1,2,3}; /*ir definir (criar) um vector de quatro inteiros e inicializar a[0] a 1, a[1] a 2, e a[2] a 3. */ int a[ ]={1,2,3}; /*ir definir um vector de apenas trs elementos e inicializa-los de forma idntica ao anterior.*/ char a[3]={b,k,n}; /*ir definir (criar) um vector de trs caracteres e inicializar a[0] a b, a[1] a k, e a[2] a n. */
Nuno Costa 6
Nuno Costa
C no realiza verificao de limites em vectores nada impede o acesso alm do fim do vector sempre que necessrio faa a verificao dos limites
Nuno Costa
media = 0;
media / N_ALUNOS);
for ( i = 0; i < N_ALUNOS; i++ ) { printf (\n Nota do aluno %d = , i+1); printf (%f \n, notas[ i ]); } }
Nuno Costa 9
#include <stdio.h> Vectores Obs importantes #define TAMANHO 100 main( ) { int quantidade, media = 0; float notas [ TAMANHO ]; // quantidade deve ser TAMANHO printf ( quantas notas devo ler ?); scanf(%d, &quantidade); for ( i = 0; i < quantidade; i++) { printf ( nota %d, i+1); scanf(%d, ¬as [ i ]); } : : : for ( i = 0; i < quantidade; i++) media += notas [ i ]; : : : Nuno Costa }
10
int values[5], i, max; printf(Digite com 5 numeros:\n"); for( i = 0; i < 5; ++i ) scanf("%d", &values[i] ); max = maximum( values ); printf("\nValor Maximo: %d\n", max ); }
Nuno Costa
11