Buscar

IP-T11

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 19 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 19 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 19 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

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

Outros materiais