1. ____________________________________________________________________
Algoritmos e Programação de Computadores I
Notas de aula: vetores
Professora: Ana Monteiro – 2° Semestre
1. O que é um vetor:
Um vetor é uma coleção de variáveis do mesmo tipo que são referenciadas pelo mesmo nome.
As variáveis do vetor também são chamadas de componentes r ou elementos do vetor.
2. Como declarar um vetor:
A sintaxe em C para criar um vetor e:
<tipo> nome_vetor[ <tamanho>];
Onde:
• tipo é o tipo das variáveis do vetor.
• nome_vetor é o nome que será utilizado para referenciar o conjunto de variáveis;
• tamanho é o número de variáveis que serão criadas, ou seja, o número de componentes do vetor.
Em C, um vetor ocupa posições contiguas de memória.
Exemplo:
float temperatura[31];
Neste exemplo, temperatura é um vetor ue permite armazenar até 31 números reais.
3. Como referenciar uma componente do vetor:
Após declarar um vetor precisamos de um modo de referenciar (acessar) seus elementos individualmente.
Isto pode ser feito através de um índice (uma expressão numérica inteira) colocado entre colchetes
seguindo o nome do vetor.
O índice do primeiro elemento do vetor é 0 (zero) e a última posição de um vetor tem índice <tamanho>-1.
No exemplo anterior, para fazer referência à terceira componente (posição) do vetor, escreve-se
temperatura[2], ou se a variável k tem armazenado o valor 2, então podemos também escrever
temperatura[k].
2. A seguir um exemplo que calcula a média das temperaturas armazenadas em um vetor:
soma = 0;
for(i=0; i<31; i++)
soma = soma + termperatura[i];
printf("Media das temperaturas: %.2f.",soma/5.);
A linguagem C não faz checagem dos limites dos vetores, isto é responsabilidade do programador. Assim
no exemplo, a seguinte expressão tempertura[40] não causará nenhum erro de compilação.
4. Como armazenar dados em um vetor:
Para armazenar dados em um vetor temos que fazer referência ao nome do vetor e a posição dentro do
vetor onde queremos armazenar os dados.
Em geral, um dado é armazenado num vetor por leitura ou por atribuição.
A seguir temos um exemplo de como fazer a leitura dos dados de um vetor:
for(i=0; i<31; i++){
printf("Digite a temperatura %f: ",i);
scanf("%d",&temperatura[i]);
}
Para atribuir, por exemplo, o valor 10.6 a primeira componente do vetor, a instrução é:
temperatura[0] = 10.6;
5. Como inicializar vetores no momento da declaração:
Assim como as variáveis podem receber um valor inicial na declaração, o mesmo pode ser feito com os
vetores.
Assim, no exemplo
int conta_vogais[5] = {0, 0, 0, 0, 0};
o vetor conta_vogais é definido como um vetor de 5 componentes inteiras inicializadas em zero.
O mesmo poderia ser feito com as declarações:
int conta_vogais[] = {0, 0, 0, 0, 0};
Ou com a declaração:
int conta_vogais[5] = {0};
3. 4 Exemplos e/ou Exercícios
4.1. A declaração do vetor esta correto? Qual o erro?
int vetor(20);
4.2. Qual o elemento do vetor referenciado por pela expressão?
vetor[4]
4.3. Dado o seguinte programa:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int vetor[5] ={ 2, -4 }, k = 0;
printf(" Na posicao %d tem armazenado o valor %d n", k, vetor[k]);
printf(" Na posicao %d tem armazenado o valor %d n", k+3, vetor[k+3]);
printf(" Na posicao %d tem armazenado o valor %d n", k++, vetor[k]);
printf(" Na posicao %d tem armazenado o valor %d n",++k, vetor[k]);
system("PAUSE");
return 0;
}
Que valor é impresso quando se executa cada uma das instruções? Está correto?
4.4 Completar o programa a seguir para ler 30 notas, calcular a média e informar quantas notas que estão
acima da média.
#include <stdio.h>
#define LIM 30
int main(){
float notas[LIM],soma=0.0, media;
int i,k =0;
// ler a nota dos alunos, armazenar esses valores no vetor de notas e
// calcular a média
for (i=0; i<LIM; i++) {
printf("Digite a nota do aluno %d: ",i);
scanf("%f",¬as[i]);
soma= soma + _______;
}
// cálculo da média após ler todos os dados....
media = soma/LIM;
4. // percorrer o vetor de notas e
// contar quantos alunos tem nota superior à média.
for ( _____; i< LIM; i++)
if (nota[i] > _____) ______;
printf("%d alunos tem o aluno tem nota %.2f maior que a media das
notas %.2f. n",_____, _____);
return 0;
}
4.5 Foi proposto o seguinte algoritmo para ler um nome e informar qual foi a 1ª letra do nome
digitado:
#include <stdio.h>
int main()
{
char nome[40];
printf("Digite um nome: ");
scanf("%s",nome);
printf("nO caracter na posicao 1 do nome %s e %c", nome,
nome[0]);
return 0;
}
Que é impresso quando é digitado:
a) Carlos?
b) Carlos Eduardo?
Tem algum problema?
4.6 Uma empresa decidiu fazer um programa para controlar a média de combustível gasto pelos
veículos de sua frota. Para isso, desenvolva um programa que receba um número que
identifica o veículo, a quantidade de kms percorridos e a quantidade de litros gastos para
esse percurso durante 7 dias. No final, calcule a média de kms/litros dos veículos e informe
o número de identificação de aqueles veículos com consumo acima dessa média.
4.7 Faça um programa que leia uma string de 10 caracteres. Depois da leitura, mostrar a string
ao contrário, por exemplo, se foi lida a string Carrossel!!!, deve imprimir !!!lessorraC.
4.8 Ler um conjunto de N strings e informar quantas das strings começam com cada uma das
vogais.
4.9 Refazer o exercício anterior, mas desta vez o final da leitura está dado pela leitura da string
“zzz”.