Algoritmos
Escher
Agenda
• Estruturas Homogêneas;
• Vetores;
• Exercícios.
Conceitos Iniciais
Estrutura Homogênea:
 Representa um conjunto de valores do mesmo tipo
(estrutura homogênea), referenciáveis pelo mesmo
nome e individualizados entre si através de sua posição
dentro desse conjunto (variáveis indexadas)
 O termo indexada provém da maneira como é feita a
individualização dos elementos do conjunto de dados:
por meio de índices.
Conceitos Iniciais
Estrutura Homogênea:
 Uma variável indexada pode ser definida como tendo
um ou mais índices.
vetor, um único índice (unidimensionais)
matriz, dois índices (bidimensionais)
 Sinônimos: variáveis indexadas, variáveis compostas,
variáveis subscritas, arranjos, matrizes
(unidimensionais), tabelas em memória ou arrays.
Vetores
Estrutura Homogênea - Vetor:
 Conceituando VETOR através de um exemplo.
 Suponhamos o seguinte problema:
Calcular a média aritmética das notas de 3 alunos.
Exibir a média e as notas que estão abaixo da média
Vetores
Estrutura Homogênea - Vetor:
Calcular a média aritmética das notas de 3 alunos.
Exibir a média e as notas que estão abaixo da média
 Ler as três notas e armazenar na memória do
computador, dando um nome diferente para cada nota.
1a Solução (RUIM)
prog Media3Notas
real NOTA1, NOTA2, NOTA3, MEDIA;
Programa funciona
para três notas
imprima "Digite 3 notas: ";
leia NOTA1; leia NOTA2; leia NOTA3;
MEDIA <- (NOTA1 + NOTA2 + NOTA3) / 3;
imprima "Media: ", formatar (MEDIA,2);
imprima "\n\n";
se (NOTA1 < MEDIA)
{ imprima NOTA1, " Abaixo da media\n"; }
se (NOTA2 < MEDIA)
{ imprima NOTA2, " Abaixo da media\n"; }
se (NOTA3 < MEDIA)
{ imprima NOTA3, " Abaixo da media\n"; }
IMPRATICÁVEL!
fimprog
E se fossem 1000 notas?
Associarmos um nome para cada nota?
Vetores
Estrutura Homogênea - Vetor:
Calcular a média aritmética das notas de 3 alunos.
Exibir a média e as notas que estão abaixo da média
 Associar o nome NOTA a um CONJUNTO seqüencial
de notas, ou seja um variável homogênea:
2a Solução (Utilizando Vetores)
Vetores
Estrutura Homogênea - Vetor:
 Como faremos ?
NOTA = {8.0, 7.5, ... 10.0}
índice 0 1
999
 Para referenciar ou selecionar uma nota específica
usamos um índice. Junta-se o nome dado ao conjunto seqüencial com um índice.
Chamada VARIÁVEL INDEXADA – Vetor
 Então:
- a 1a nota é indicada por NOTA[0]
- a 1000a nota é indicada por NOTA[999]
- uma ka nota é indicada por NOTA[k]
Vetores
Estrutura Homogênea - Vetor:
 Um VETOR é um conjunto ordenado que contém um
número fixo de elementos.
 Todos os elementos do vetor devem ser do mesmo tipo
 Armazenam diversos itens de uma só vez
– Significa dizer:
• Em uma mesma estrutura de dados, é possível
ter diversas variáveis de tipos de dados simples
agrupadas.
Vetores
Estrutura Homogênea - Vetor:
 Sintaxe:
tipo
nomevetor [dimensão];
onde: deve ser especificado o tipo dos elementos do
conjunto, ou seja, int, string, real, etc. O nomevetor é o
nome da variável e em dimensão deve ser especificado
o número máximo de elementos do conjunto.
Vetores
Estrutura Homogênea - Vetor:
 Exemplo:
Nome da Variável
real VETOR[200];
Tipo dos elementos
do conjunto
Número máximo
de elementos
do conjunto
Vetores
Estrutura Homogênea - Vetor:
 Cada variável indexada é associada à uma posição de
memória, como acontece com variáveis simples.
 Exemplo: real NOTA[3];
MP
NOTA[0]
NOTA[1]
NOTA[2]
Vetores
Estrutura Homogênea - Vetor:
 Atribuição:
- Além do nome da variável deve-se fornecer o índice do
componente onde será armazenado o valor da expressão.
 Exemplos:
NUMEROS[2]  10;
strcpy (NOME[10], “Joao”);
SALARIOS[3]  100.00;
Vetores
Estrutura Homogênea - Vetor:
 Leitura utilizando um Vetor:
- Feita passo a passo, um componente por vez. Sempre
informando o nome da variável e o índice a ser lido.
 Exemplo:
int numero[10], i;
para (i <- 0 ; i < 10; i <- i + 1)
{
imprima “numero: ";
leia numero[i];
}
Vetores
Estrutura Homogênea - Vetor:
 Escrita utilizando um Vetor:
- Semelhante a leitura, feita passo a passo, um componente
por vez. Sempre informando o nome da variável e o índice a
ser manipulado.
 Exemplo:
para (i <- 0 ; i < 10; i <- i + 1)
{
imprima "num: ", numero[i], "\n";
}
Vetores
Estrutura Homogênea - Vetor:
 Analogia:
Vetores - Strings
Estrutura Homogênea - Vetor:
 Sintaxe:
char nomevetor [numdestrings][comprdasstrings] ;
onde: deve ser especificado o tipo char para
elementos do conjunto. O nomevetor é o nome da
variável, em numdestrings deve ser especificado o
número máximo de elementos do conjunto e
comprdasstrings tamanho de cada string.
Vetores
Estrutura Homogênea - Vetor:
 Voltando ao nosso problema:
Ler um conjunto de 1000 notas armazenando-as no
vetor denominado NOTAS. Calcular a média, verificar e
exibir as notas abaixo da média.
VETOR - Exemplo 1
prog Media1000Notas
real NOTAS[1000], MEDIA, SOMA;
int I;
para (I <- 0; I <1000; I++)
{
leia NOTAS[I];
}
Leitura das notas
Cálculo da Média
SOMA <- 0.0;
para (I <- 0; I <1000; I++)
{
SOMA <- SOMA + NOTAS[I];
}
MEDIA <- SOMA / 1000;
para (I <- 0; I <1000; I++)
{
se (NOTAS[I] < MEDIA)
{ imprima NOTAS[I], "\n"; }
}
fimprog
Escrita das notas
abaixo da média
Vetores
Estrutura Homogênea - Vetor:
 Exemplo 2:
Ler um conjunto de N números inteiros (N é lido e é
menor que 100). Encontrar e exibir o maior deles.
Exemplo 2
prog MaiordeNvalores
Lê a quantidade
de elementos
int N,I, J,MAIOR, NRO[100];
leia N;
para (J <- 0; J < N; J++)
{
leia NRO[J];
}
MAIOR <- NRO[0];
Lê os números
Assume que o
primeiro elemento do conjunto
é o maior de todos
para (I <- 1; I < N; I++)
{
se (NRO[I] > MAIOR)
{
MAIOR <- NRO[I];
}
imprima MAIOR, " eh o maior valor.";
fimprog
Compara o
}elemento assumido
como maior com todos
os outros, colocando em
MAIOR aquele elemento
que realmente for o
maior de todos
Referências
 Lopes, A. & Garcia, G. – Introdução a Programação.
 Schildt – C Completo e Total.
Obrigado
E Agora???
Exercícios!!!
Exercícios Propostos
1.
2.
3.
4.
5.
6.
7.
Inicializar um vetor de 5 inteiros com o valor zero.
Inicializar um vetor com os valores 1,2,3,4,5,6,7,8,9,10 e depois imprimir.
Ler 5 inteiros do teclado e armazenar num vetor. Depois percorrer este vetor
mostrando os números ímpares.
Inicializar um vetor com valores 2, 4, 6, 8, 10. Calcular e imprimir a soma
dos valores.
Ler e armazenar num vetor 5 números reais fornecidos pelo usuário e
calcular a média dos valores.
Dado os vetores A=[10, 11, 12, 13, 14, 15, 16,17] e B=[1, 2, 3, 4, 5, 6, 7, 8],
fazer um programa para somar os dois vetores e armazenar o resultado em
um vetor C ( C[i]=A[i]+B[i] ).
Escrever um programa que leia 5 números reais e imprima-os em ordem
inversa.
FIM
Download

Vetor - Udesc