Buscar

[TEO-AlgoritmosProgramação]07-Vetores

Prévia do material em texto

Algoritmos e Programação
Marco Montebello | FACENS
marco.montebello@facens.br
mailto:marco.montebello@facens.br
VETORES
MANEIRA DE ARMAZENAR VÁRIOS DADOS EM UM MESMO NOME DE
VARIÁVEL ATRAVÉS DO USO DE ÍNDICES NUMÉRICOS.
Agenda
▪ Revisão
▪ Introdução
▪ Declaração e inicialização
▪ Referência e armazenamento de dados
▪ Exemplos e exercícios
Revisão
▪ Criação de variáveis
▪ Tipos: int, float, double, char
▪ Exibir informações na tela
▪ printf
▪ Receber informações do usuário
▪ scanf
▪ Estruturas de Decisão (simples e aninhada)
▪ if ... else
▪ Estruturas de Repetição
▪ for
▪ while
▪ do ... while
Vetor
▪ Assuntos já estudados:
▪ Tipos básicos de dados: int, float e char.
▪ Operações: aritméticas, lógicas e relacionais.
▪ Estruturas de controle simples e aninhadas: if, switch, for, while e do-while.
▪ Uso de variáveis como: auxiliares, acumuladores e contadores.
▪ Agora é possível estudar uma maneira de processar conjuntos de dados/valores do mesmo tipo.
Vetor
▪ Matriz unidimensional ou Vetor – é uma matriz que possui um único índice.
▪ Exemplo: Conjunto de notas dos alunos de uma turma
▪ nota[10];
0 1 2 3 4 5 6 7 8 9
Vetor
▪ Inclui tanto o tipo de dados como o tamanho (número de elementos da matriz). 
▪ Pode ser declarada como sendo de qualquer um dos tipos básicos de C.
▪ Sintaxe:
▪ tipo nome_vetor[tamanho];
▪ Exemplos:
▪ float nota[10];
▪ int idade[6];
▪ ou
▪ #define ALUNOS 10
▪ float nota[ALUNOS];
tamanho é a quantidade de
elementos da matriz. Deve vir entre
colchetes e tem que ser um valor
inteiro. Esse valor pode ser numérico
ou até uma constante, desde que seja
inteira.
Vetor
▪ Os elementos do vetor são todos do mesmo tipo e podem ser acessados individualmente a partir de 
um único nome.
▪ Em cada posição do vetor pode-se armazenar:
▪ Números, 
▪ Letras ou 
▪ Caracteres.
Vetor
▪ Cada variável do vetor é chamado de elemento e é diferenciado por meio de um número chamado 
índice.
▪ O vetor é unidimensional, portanto possui um único índice.
▪ A capacidade de um vetor é fixa e deve ser informada no momento da criação do vetor.
Vetor
▪ Exemplos da utilização de vetores:
▪ Conjunto de idades dos alunos de uma determinada turma.
▪ Conjunto de comissões mensais associadas a um determinado empregado ao longo do ano.
21 20 18 20 35 19
200.50 900.30 800.00 750.50 850.25 900.6 790.00 ...
Declaração de Vetor
▪ Um vetor em C é declarado da mesma forma que uma variável simples.
▪ Sintaxe:
▪ Tipo: corresponde o tipo de dados de cada um dos elementos do vetor.
▪ Nome_variavel: indica o nome pelo qual esse vetor vai ser conhecido.
▪ Numero_de_elementos: valor constante que indica quantos elementos tem o vetor.
▪ Exemplos:
int idade[6];//idade é um vetor com 6 números inteiros
float notas[12]; //notas é um vetor com 12 números reais
Inicialização do Vetor
▪ É possível iniciar automaticamente todos os elementos de um vetor.
▪ A inicialização pode ser total ou parcial.
▪ Sintaxe:
▪ Na inicialização do vetor existe um ponto e vírgula após o fechamento das chaves.
▪ Em C, estruturas de laços e comando de decisão não admitem ponto e vírgula após a chave de dados,
diferente do que ocorre com as estruturas de dados.
tipo nome[n]={valor_1,valor_2,...,valor_n};
Inicialização do Vetor
▪ int matriz[4] = {100, 200, 300, 400}; //inicialização total
▪ int matriz[4] = {100, 200}; 
//inicialização parcial - os valores não inicializados recebem zero
100 200 300 400
100 200 0 0
Inicialização do Vetor – Cuidado
▪ int vetor[10] = {1, 2, 3};
▪ int vetor[2] = {100, 200, 300};
▪ int vetor[ ] = {1, 2, 3, 4};
▪ int vetor[ ];
conta o nº elementos e fixa como dimensão
inicializa os elementos restante com zero
mais elementos que o declarado
tamanho não definido
Se declararmos uma matriz sem inicializá-la, 
deveremos explicitar sua dimensão (tamanho)
Referenciação dos Elementos 
▪ Na declaração: 
▪ int: tipo de dados de cada elemento do vetor;
▪ idade: nome do vetor;
▪ 6: número de elementos (valor constante, ou seja, não pode ser variável);
▪ Espaço de memória reservado:
▪ idade[i]: aquilo que está na posição índice i do vetor idade.
idade[0] idade[1] idade[2] idade[3] idade[4] idade[5]
int idade[6];
Referenciação dos Elementos 
▪ Para acessar cada elemento, basta colocar o nome do vetor e a posição em que se tem interesse de 
trabalhar.
▪ Exemplo: float nota[10] = {2.5, 4, 7.5, 3, 1, 2, 7, 8, 10, 0.5};
0 1 2 3 4 5 6 7 8 9
2.5 4 7.5 3 1 2 7 8 10 0.5 
Para acessar o 1º elemento da matriz nota[0]
Para acessar o 2º elemento da matriz nota[1]
2.5
4
nota[2] é o 3º elemento da matriz e corresponde ao valor 7.5
Cuidado, pois os elementos da matriz são sempre 
referenciados por índices iniciados de zero.
Referenciação dos Elementos – Cuidados 
▪ O índice do primeiro elemento é sempre 0 (zero) .
▪ A linguagem C não verifica se o índice usado está dentro dos limites válidos. 
▪ Se não for tratado adequadamente os limites, corre-se o risco de sobrescrever variáveis ou até mesmo 
uma parte do código do programa e pode acarretar resultados imprevisíveis. 
▪ Quando se referencia um elemento, esse número tem significado diferente da declaração (indica a 
posição).
idade[0] idade[1] idade[2] idade[3] idade[4] idade[5]
Referenciação dos Elementos
▪ Colocar o valor 32 na primeira posição do vetor:
▪ Colocar na última posição do vetor o dobro do valor do terceiro elemento: 
▪ Colocar no quinto elemento a soma do primeiro com o último elemento: 
vetor[0]=32; 
32
vetor[0] vetor[1] vetor[2] vetor[3] vetor[4] vetor[5]
32 64
vetor[0] vetor[1] vetor[2] vetor[3] vetor[4] vetor[5]
vetor[5]=vetor[0]*2;
32 96 64
vetor[0] vetor[1] vetor[2] vetor[3] vetor[4] vetor[5]
vetor[4]=vetor[0]+vetor[5]; 
Inicialização do Vetor
▪ Exemplo 1: Declarar e inicializar um vetor com os cinco primeiros números inteiros pares.
▪ Evita-se, assim, escrever o seguinte conjunto de código:
▪ Exemplo 2:
int numeros[5]={0,2,4,6,8};
int numeros[5];
numeros[0] = 0;
numeros[1] = 2;
numeros[2] = 4;
numeros[3] = 6;
numeros[4] = 8;
int vetor[10] = {1, 2, 3}; //Correto
int vetor[2] = {100, 200, 300}; //Errado
int vetor[ ] = {1, 2, 3}; //Correto
Vetores
▪ Exemplo: Calcular a média de idades de um grupo de 10 pessoas e mostrar a 5º idade digitada.
int idade0,idade1,idade2,idade3,idade4,idade5,idade6, idade7,idade8,idade9;
float soma, media;
printf("\nDigite a idade 1."); scanf("%i",&idade0);
printf("\nDigite a idade 2."); scanf("%i",&idade1);
printf("\nDigite a idade 3."); scanf("%i",&idade2);
printf("\nDigite a idade 4."); scanf("%i",&idade3);
printf("\nDigite a idade 5."); scanf("%i",&idade4);
printf("\nDigite a idade 6."); scanf("%i",&idade5);
printf("\nDigite a idade 7."); scanf("%i",&idade6);
printf("\nDigite a idade 8."); scanf("%i",&idade7);
printf("\nDigite a idade 9."); scanf("%i",&idade8);
printf("\nDigite a idade 10."); scanf("%i",&idade9);
soma=(idade0+idade1+idade2+idade3+idade4+idade5+idade6+idade7+idade8+idade9);
media=soma/10.0;
printf("\nMedia:%f\nQuinta idade:%i",media,idade4);
Armazenando e Exibindo Dados 
▪ Para armazenar e para exibir utilizamos o comando for
#include <stdio.h>
main()
{
int i;
float nota[10];
//Armazenar
for(i=0; i<10; i++) 
{
printf("Digite a nota do %i aluno: ", i+1);
scanf("%f", &nota[i]);
}
//Exibir
for(i=0; i<10; i++)
printf("Nota[%i] = %.2f", i, nota[i]);
}
Armazenar versus Exibir
Armazenando Exibindo
int i, vet[10];
for(i=0; i<10; i++)
{
printf(“Digite valor %i: ”, i);
scanf(“%i”, &vet[i]);
}
int i, 
int vet[10]={2,4,6,8,10,12,14,16,18,20};
for(i=0; i<10; i++)
{
printf("Vetor[%i]=%i\n", i, vet[i]);
}
Vetores – Exemplo 
▪ Calcular a média de idades de um grupo de 10 pessoas e mostrar a 5º idade digitada.
Vetores – Exemplo 
▪ Calcular a média de idades deum grupo de 10 pessoas e mostrar a 5º idade digitada.
#include <stdio.h>
main()
{
int idade[10],i;
float media,soma=0;
for(i=0;i<10;i++)
{
printf("Digite a idade %i.",i+1); 
scanf("%i",&idade[i]);
soma += idade[i];
}
media = soma/10.0;
printf("\nMedia:%f\nQuinta idade:%i",media,idade[4]);
}
Vetores – Exemplo 
▪ Receber 12 números e armazená-los em um vetor. Ao final, exibir a quantidade de números negativos 
informados.
Vetores – Exemplo 
▪ Receber 12 números e armazená-los em um vetor. Ao final, exibir a quantidade de números negativos 
informados.
#include <stdio.h>
main()
{
int numero[12],x,neg=0;
for(x=0; x<12; x++)
{
printf("Digite o numero da posicao %i: ", x); 
scanf("%i",&numero[x]);
} 
for(x=0; x<12; x++)
{
if (numero[x]<0)
neg++; 
}
printf("\nQuantidade de numeros negativos=%i\n\n",neg); 
}
Dicas
▪ Acesso a elementos – erros inesperados;
▪ Valor de índice máximo – índice sempre inicia em zero;
▪ Posições não ocupadas – inicializar todos os vetores;
▪ Uso de constantes – código mais genérico;
▪ Inicialização de vetores usados em totalizações – importante, pois podem conter qualquer valor.
Dúvidas???
EXERCÍCIOS
Vetores – Exercício 1
▪ Receber 10 números e armazená-los em um vetor. 
▪ Após esta primeira etapa é necessário pedir para o usuário digitar um número. Verificar se este 
número está armazenado no vetor e se estiver, mostrar quantas vezes o número esta armazenado no 
vetor, ou seja, quantas vezes o número se repete. Se o número não estiver no vetor, uma mensagem 
deve indicar esta condição e deverá ser solicitado um novo número para o usuário.
#include <stdio.h>
main()
{
int numero[10],x,procurado=0,cont=0;
//Receber 10 numeros e armazenar em um vetor
for(x=0;x<10;x++)
{
printf("Digite o numero da posicao %i: ",x);
scanf("%i",&numero[x]);
}
do
{
printf("\nDigite o numero que deseja procurar: ");
scanf("%i",&procurado);
for(x=0;x<10;x++)
{
if(procurado==numero[x])
{
cont++;
}
}
if(cont==0)
printf("\nNumero nao encontrado!");
} while(cont==0);
printf("\nO numero %i foi encontrado %i vez(es).", procurado,cont);
}
Vetores – Exercício 2
▪ Receba dois vetores A e B, ambos com 5 elementos, determine o vetor resultante C, onde 
C[i]=A[i]+B[i]. 
▪ Exemplo:
1 2 0 -4 3
A[0] A[1] A[2] A[3] A[4]
6 1 10 2 3
B[0] B[1] B[2] B[3] B[4]
7 3 10 -2 6
C[0] C[1] C[2] C[3] C[4]
#include <stdio.h>
main()
{
int A[5],B[5],C[5],i;
for(i=0;i<5;i++)
{
printf("A[%i]: ", i);
scanf("%i",&A[i]);
}
for(i=0;i<5;i++)
{
printf("B[%i]: ", i);
scanf("%i",&B[i]);
}
for(i=0;i<5;i++)
{
C[i]=A[i]+B[i];
printf("\nC[%i] = %i",i,C[i]);
}
}

Continue navegando