Aula 5 aed - vetores

12
Algoritmos e Estruturas de Dados Aula 5 e Aula 6 04 e 11/09/2012 Profª Ms. Engª Elaine Cecília Gatto Unidade 5: Variáveis Compostas Curso de Bacharelado em Engenharia de Computação Universidade do Sagrado Coração – USC Bauru/SP

Transcript of Aula 5 aed - vetores

Page 1: Aula 5   aed - vetores

Algoritmos e Estruturas de Dados

Aula 5 e Aula 6

04 e 11/09/2012

Profª Ms. Engª Elaine Cecília Gatto

Unidade 5: Variáveis Compostas

Curso de Bacharelado em Engenharia de Computação

Universidade do Sagrado Coração – USC

Bauru/SP

Page 2: Aula 5   aed - vetores

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;

Page 3: Aula 5   aed - vetores

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

Page 4: Aula 5   aed - vetores

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.

Page 5: Aula 5   aed - vetores

Vetores

• Declaração de vetores em pascal:

nome ... vetor: array[1 ... dimensao] of tipo ... dados;

• 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)

Page 6: Aula 5   aed - vetores

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.

Page 7: Aula 5   aed - vetores

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);

Page 8: Aula 5   aed - vetores

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.

Page 9: Aula 5   aed - vetores

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.

Page 10: Aula 5   aed - vetores

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.

Page 11: Aula 5   aed - vetores

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

Page 12: Aula 5   aed - vetores

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, armazenando-os 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.