Baixe o app para aproveitar ainda mais
Prévia do material em texto
Linguagem C Aula 11 Tópicos Vetores / Arrays Unidimensionais e Multidimensionais Operações sobre vectores Passagem de Vectores como parâmetros String Vetor Unidimensional Tabela de elementos, todos do mesmo tipo. Exemplos de definição de vetorea Um vetor que representa a tabela de notas defeni-se assim: O vetor que representa a tabela de temperaturas define-se assim: #define N_DIAS_ANO 366 float temperaturas[N_DIAS_ANO]; #define N_ALUNOS 80 int notas_finais[N_ALUNOS]; 6,1 2,3 9,4 5,1 8,9 9,8 10 7,0 6,3 4,4 0 1 2 3 4 5 6 7 8 9 Notas: Posição: Vector Unidimensional Intuitivamente, um vetor de elementos do tipo T consiste num agregado de variáveis do tipo T, que podem ser acedidas individualmente usando um índice inteiro. Vectores na Linguagem C Como declarar: Exemplos: <tipo> <nome> [<tamanho1>]; float VetReais[100]; int Vector[5]; char Nome_cliente[50]; float cubo[20]; Vectores na Linguagem C O compilador C reserva uma fatia contígua da memória para armazenar os elementos dos vectores. int VetInt[n]; ... Índices: 0 1 2 3 4 5 ... n-1 VetInt Índice do primeiro elemento: zero Índice do último elemento: n – 1 Quantidade de elementos: n Vectores na Linguagem C Acesso aos Elementos dum Vetor Unidimensional Cada elemento dum vetor é acedido com base na posição que ocupa nesse vetor, ou seja com base numíndice. Por este motivo, diz-se que um vetor é uma estrutura indexada. E.g. NOTAS finais dos 80 alunos, cada elemento do vetor é uma nota final. 80 é a capacidade do vetor. Este vetor é indexado pelos nºs de 0 a 79. Aceder a posição 0(zero): notas_finais[0]…. últimaposição 79(setenta e nove): notas_finais[79] Vectores na Linguagem C O tamanho de um vector é pré-definido, ou seja, após a compilação, não pode ser alterado. Vectores são chamadas estruturas de dados estáticas, porque mantém o mesmo tamanho durante a execução do programa. Vectores na Linguagem C :: Exemplos Atribuir valores na declaração do vector: Colocar os números de 1 a 5 num vector: Colocar os números de 5 a 1 num vector: int vector[5] = {1,2,3,4,5}; for (i=0; i<5; i++) Vector[i] = i + 1; for (i=0; i<5; i++) Vector[i] = 5 - i; Vectores na Linguagem C :: Exemplos Leitura dos dados de um vector: for (i=0; i<TAM_MAX; i++) { printf("Digite um número: "); scanf("%f", &Vet[i]); } Vectores na Linguagem C :: Exemplos Copiar dados de um vector para outro: Boa prática de programação: Definir o tamanho de vectores com constantes flexibiliza a manutenção do código. #define TAM_MAX 10 double VetReais[TAM_MAX], VetCopia[TAM_MAX]; for (i=0; i<TAM_MAX; i++) VetCopia[i] = VetReais[i]; Exemplo Escreve um programa em C que peça 3 números inteiros ao utilizador, armazene-os num vetor, depois mostre no ecrao valor de cada elemento do vetor, assim como seu respetivo índice. Vectores na Linguagem C :: Problema A Desenvolva um programa que: Lê um vector A de N elementos. Lê um elemento K. Verificar se o elemento K está presente no vector: Se estiver, imprimir a posição onde ele foi encontrado. Caso contrário, imprimir mensagem "elemento K não encontrado". Vectores na Linguagem C :: Problema B Desenvolva um programa que: Ler N, valores inteiros (N ≤ 100) até que seja digitado o valor zero. A seguir, inverte o vector, trocando o 1º elemento com o último, o 2º com o penúltimo, e assim sucessivamente. Ao final, imprime o vector invertido. Pesquisa num Vector Encontrar o maior valor dentro de um vetor #define TAM_MAX 10 float Vet1[TAM_MAX]; float Maior; for(i=0; i<TAM_MAX; i++) scanf("%f",&Vet1[i]);// le os dados Maior = Vet1[0]; // assume que o primeiro é o maior for(i=0; i<TAM_MAX; i++) if (Vet1[i] > Maior) Maior = Vet1[i]; printf("O maior elemento é %f\n",Maior); Passagem de Vetores como parâmetros para funções Quando se define um parâmetro de tipo vetor numa função,nunca se deve indicar o tamanho da primeira dimensão, pois as funções do C aceitam vetores em que essa primeira dimensão pode ter um tamanho qualquer. O tamanho da primeira dimensão é normalmente passado num argumento inteiro, ao lado do vetor. Exercício Escreva um programa que permite calcular a média de N notas introduzidas pelo utilizador. Cria um procedimento para ler as notas e Cria uma função para calcular a média. De seguida cria a função main para testar as funções Solução
Compartilhar