Aula 5 aed - vetores

  • Published on
    23-Jun-2015

  • View
    3.794

  • Download
    3

Embed Size (px)

Transcript

  • 1. Algoritmos eEstruturas de DadosAula 5 e Aula 604 e 11/09/2012Prof Ms. Eng Elaine Ceclia GattoUnidade 5: Variveis CompostasCurso de Bacharelado em Engenharia de ComputaoUniversidade do Sagrado Corao USCBauru/SP

2. Vetores Variveis compostas homogneas: um conjunto de dados domesmo tipo. Variveis compostas homogneas unidimensionais: sovariveis compostas que necessitam de apenas um ndice paraindividualizar um elemento do conjunto. Essas variveis sochamadas de vetores. Declarao: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;Posio do elemento no vetor Contedo do vetormedia[1] 3.2media[2] 5.7media[3] 9.5media[4] 10media[5] 1.3 4. Vetores algoritmo exemplo; inicio inteiro: i; n: vetor[1..4] de reais; para i de 1 at 4 passo 1 faa inicioescreva(digite um nmero);leia(n[i]); fim para; escreva(posio valor); para i de 1 at 4 passo 1 faa inicioescreva(i, n[i]); fim para; fim. 5. Vetores Declarao de vetores em pascal:nome ... vetor: array[1 ... dimensao] of tipo ... dados; Em que 1 ... Dimensao o tamanho do vetor. Exemplo:varv: array[1..6] of integer; Atribuindo valores avulsos ao vetor: V[5] 28; (posio 5 recebe o valor 28) 6. Vetoresprogram vetor1;varn,i,maior:integer;nro:array[1..100] of integer;beginwrite(forneca a quantidade de numeros: ); readln(n);writeln;for i:=1 to n dobeginwrite(forneca o ,i,o. numero: );readln(nro[i]);end;writeln;maior:=nro[1];for i:=2 to n dobeginif (nro[i] > maior)then maior:=nro[i];end;writeln(maior numero: ,maior);readln;end. 7. VetoresNo possvel:No se pode ler todo um vetor diretamente com um comando read.No se pode escrever: read(v); necessrio ler elemento por elemento, diretamente, ou com um laode repetio como for.No se pode escrever todos os elementos de um vetor com um nicocomando write. No permitido escrever: write(v). Tambm nessecaso cada elemento deve ser tratado como uma varivelindependente, por exemplo:for i:= 1 to 6 do write(v[i]:3); 8. VetoresNo possvel copiar os valores dos elementos de um vetor para outrocom um nico comando de atribuio. Ou seja, dados dois vetores v ew, ambos do mesmo tamanho e do mesmo tipo, no permitido fazer:w:= v; . Tambm aqui necessrio trabalhar elemento a elemento, e ocomando for mais uma vez indicado: for i:= 1 to 6 do w[i]:= v[i];No existe comandos ou funes que do o tamanho (nmero deelementos) de um vetor.No permitido tentar acessar uma posio fora do intervalo deposies definido para o vetor. A tentativa causar um erro em tempode execuo e o programa abortar. No caso do vetor v acima, porexemplo, no permitido escrever: v[8]:= 20, read(v[8]) ou write(v[8]) porque a faixa de valores das posies vai de 1 a 6 apenas. 9. VetoresA faixa de valores das posies no precisa comear em 1. Qualquerintervalo de valores pode ser usado na definio de um vetor. Porexemplo, 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 posies no precisam ser necessariamente nmeros inteiros.Podem ser qualquer tipo ordinal, ou seja, que possa ser definido poruma seqncia ordenada de valores.Por exemplo, os caracteres em Pascal formam uma seqnciaordenada na tabela de caracteres, e podem portanto seremmarcadores de posio em um vetor. 10. VetoresPodemos definir um vetor assim: var letras: array[a..z] of integer;Nesse caso os elementos do vetor so: letras[a], letras[b], ..,letras[z]Um uso possvel para esse vetor poderia ser que cada posiopoderia guardar a quantidade de vezes que a letra dessa posioaparece em uma determinada frase. 11. Exerccios:Faa primeiro em pseudocdigo e depois passe para pascal.1. Faa um algoritmo para ler dez nmeros e armazen-los em um vetor. Em seguida, calcule e imprima a soma e a mdia destes nmeros. Imprima tambm o vetor.2. Modifique o exerccio anterior para calcular a mdia dos nmeros negativos e a porcentagem de nmeros positivos.3. Faa um algoritmo para ler cinco nmero inteiros quaisquer e armazene-os em um vetor A. Em seguida, crie um novo vetor B cujos elementos so 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. Exerccios4. Faa um algoritmo para ler cinco nmeros inteiros quaisquer e armazene-os em um vetor. Em seguida, imprima o vetor e quantos elementos do vetor so positivos, quantos so negativos, e quantos so nulos.5. Faa um algoritmo para ler dez nmeros quaisquer e armaze-os em um vetor. Em seguida, imprimir o vetor, o maior e o menor valores armazenados no vetor.6. Faa 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 mdia de cada aluno, armazenando- os em um outro vetor. Imprimir a maior e a menor mdia, quantos alunos obtiveram mdia igual ou superior 7,0, e os trs vetores.