O documento discute vetores em Pascal, definindo-os como variáveis compostas unidimensionais onde cada elemento é acessado por um índice. Explica como declarar vetores, atribuir e acessar valores, e realizar operações como leitura, escrita e cálculos com elementos de vetores usando laços de repetição.
1. VETORES
Prof.ª Ms. Eng.ª Elaine Cecília Gatto
Algoritmos e Estruturas de Dados
Engenharia de Computação
Universidade Sagrado Coração
2. Vetores
• Variáveis compostas homogêneas: é um conjunto de dados do
mesmo tipo.
• Variáveis compostas homogêneas unidimensionais: são
variáveis compostas que necessitam de apenas um índice para
individualizar um elemento do conjunto. Essas variáveis são
chamadas de vetores.
• Declaração:
nome_do_vetor: vetor[1..dimensao] de tipo_de_dados;
• Em que 1 .. Dimensao é a quantidade de elementos do vetor;
• Exemplo:
nota: vetor[1..50] de reais;
3. Vetores
• Exemplo:
• Media: vetor[1..5] de reais;
Posição do elemento no vetor
Conteúdo do vetor
media[1]
3.2
media[2]
5.7
media[3]
9.5
media[4]
10
media[5]
1.3
4. Vetores
algoritmo exemplo;
inicio
inteiro: i;
n: vetor[1..4] de reais;
para i de 1 até 4 passo 1 faça
inicio
escreva(‘digite um número’);
leia(n[i]);
fim para;
escreva(‘posição valor’);
para i de 1 até 4 passo 1 faça
inicio
escreva(i, n[i]);
fim para;
fim.
5. Vetores
• Declaração de vetores em pascal:
nome_do_vetor: array[1 ... dimensao] of tipo_do_dado;
• Em que 1 ... Dimensao é o tamanho do vetor.
• Exemplo:
var
v: array[1..6] of integer;
• Atribuindo valores avulsos ao vetor:
• V[5] 28; (posição 5 recebe o valor 28)
6. Vetores
program vetor1;
var
n,i,maior:integer;
nro:array[1..100] of integer;
begin
write('forneca a quantidade de numeros: '); readln(n);
writeln;
for i:=1 to n do
begin
write('forneca o ',i,'o. numero: ');
readln(nro[i]);
end;
writeln;
maior:=nro[1];
for i:=2 to n do
begin
if (nro[i] > maior)then maior:=nro[i];
end;
writeln('maior numero: ',maior);
readln;
end.
7. Vetores
Não é possível:
Não se pode ler todo um vetor diretamente com um comando read.
Não se pode escrever: read(v);
É necessário ler elemento por elemento, diretamente, ou com um laço
de repetição como for.
Não se pode escrever todos os elementos de um vetor com um único
comando write. Não é permitido escrever: write(v). Também nesse
caso cada elemento deve ser tratado como uma variável
independente, por exemplo:
for i:= 1 to 6 do write(v[i]:3);
8. Vetores
Não é possível copiar os valores dos elementos de um vetor para outro
com um único comando de atribuição. Ou seja, dados dois vetores v e
w, ambos do mesmo tamanho e do mesmo tipo, não é permitido fazer:
w:= v; . Também aqui é necessário trabalhar elemento a elemento, e o
comando for mais uma vez é indicado:
for i:= 1 to 6 do w[i]:= v[i];
Não existe comandos ou funções que dão o tamanho (número de
elementos) de um vetor.
Não é permitido tentar acessar uma posição fora do intervalo de
posições definido para o vetor. A tentativa causará um erro em tempo
de execução e o programa abortará. No caso do vetor v acima, por
exemplo, não é permitido escrever: v[8]:= 20, read(v[8]) ou write
(v[8]) porque a faixa de valores das posições vai de 1 a 6 apenas.
9. Vetores
A faixa de valores das posições não precisa começar em 1. Qualquer
intervalo de valores pode ser usado na definição de um vetor. Por
exemplo, podemos definir um vetor assim:
var v:array[15..20] of real;
Nesse caso o vetor v terá apenas os elementos: v[15], v[16], v[17],
v[18], v[19] e v[20]
As posições não precisam ser necessariamente números inteiros.
Podem ser qualquer tipo ordinal, ou seja, que possa ser definido por
uma seqüência ordenada de valores.
Por exemplo, os caracteres em Pascal formam uma seqüência
ordenada na tabela de caracteres, e podem portanto serem
marcadores de posição em um vetor.
10. Vetores
Podemos definir um vetor assim:
var letras: array['a'..'z'] of integer;
Nesse caso os elementos do vetor são: letras['a'], letras['b'], …..,
letras['z']
Um uso possível para esse vetor poderia ser que cada posição
poderia guardar a quantidade de vezes que a letra dessa posição
aparece em uma determinada frase.
11. Exercícios:
Faça primeiro em pseudocódigo e depois passe para pascal.
1. Faça um algoritmo para ler dez números e armazená-los em um
vetor. Em seguida, calcule e imprima a soma e a média destes
números. Imprima também o vetor.
2. Modifique o exercício anterior para calcular a média dos números
negativos e a porcentagem de números positivos.
3. Faça um algoritmo para ler cinco número inteiros quaisquer e
armazene-os em um vetor A. Em seguida, crie um novo vetor B
cujos elementos são os elemmentos do vetor A com sinal trocado.
Imprima os dois vetores. Exemplo:
Vetor A: 5 -3 6 67 -10
Vetor B: -5 3 -6 -67 10
12. Exercícios
4. Faça um algoritmo para ler cinco números inteiros quaisquer
e armazene-os em um vetor. Em seguida, imprima o vetor e
quantos elementos do vetor são positivos, quantos são
negativos, e quantos são nulos.
5. Faça um algoritmo para ler dez números quaisquer e
armaze-os em um vetor. Em seguida, imprimir o vetor, o
maior e o menor valores armazenados no vetor.
6. Faça um algoritmo para ler a nota de prova e de trabalho de
dez alunos. Armazenar as notas em dois vetores diferentes.
Em seguida, calcular a média de cada aluno, armazenandoos em um outro vetor. Imprimir a maior e a menor média,
quantos alunos obtiveram média igual ou superior à 7,0, e
os três vetores.