1 / 29

Algoritmos e Estruturas de Dados I – Estruturas de Dados

Profa. Mercedes Gonzales Márquez. Algoritmos e Estruturas de Dados I – Estruturas de Dados. Estruturas de Dados. Os tipos primitivos ( inteiro , real, literal e lógico ) não são suficientes para representar todos os tipos de informação .

ervin
Download Presentation

Algoritmos e Estruturas de Dados I – Estruturas de Dados

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Profa. Mercedes Gonzales Márquez Algoritmos e Estruturas de Dados I – Estruturas de Dados

  2. Estruturas de Dados Os tiposprimitivos (inteiro, real, literal e lógico) nãosãosuficientespararepresentartodosostipos de informação. Particularmentequandotemosmais de umainformaçãorelacionada. Ex: Lista dos nomes dos alunos de umasala, endereço de alguém etc. Utilizaremosostiposprimitivosparaconstruiroutrasestruturas de dados maiscomplexas.

  3. Vetores TambémdenominadosEstruturascompostashomogêneasunidimensionais Permitem a manipulação de um conjunto de informações de um mesmotipoprimitivo Declaração : tipoprimitivo : nome_vetor [numero de elementos] Exemplo : Um vetor com nome “dados” de 40 posiçõesreaisterá a seguintedeclaração. Real: dados[40] dados 1 2 3 4 5 6 7 8 9 38 39 40 7,8 7,8 7,8 3,6 5,3 9,1 9,8 6,5 9,8 4,7 1,5 2,8 4,6 2,4

  4. Vetores Manipulação: Para manipularoselementos de um vetordevemosespecificar a suaposição. dados 7,8 2,4 7,8 7,8 3,6 5,3 9,1 9,8 6,5 9,8 4,7 1,5 2,8 4,6 1 2 3 4 5 6 7 8 9 38 39 40 -dados[8] • A posição do vetor é determinadapormeio de umaconstante, de umaexpressãoaritméticaou de umavariávelqueestiverdentro dos colchetes. Ela é tambémchamada de índice.

  5. Vetores Exercício – Sendo o vetor v igual a 2 33 7,8 7,8 6 8 3 10 9 1 21 14 1 2 3 4 5 6 7 8 9 10 e as variáveis x=2 e y=4 escreva o valorcorrespondente à solicitação (a) v[x+1] (b) v[x+2] (c) v[x+3] (d) v[x+4] (e) v[x*1] (f) v[x*2] (g) v[x*3] (h) v[v[x+4]] (i) v[x+y] (j) v[8-v[2]] (k) v[v[4]] (l) v[v[v[7]]] (m) v[v[1]*v[4]] (n) v[x+4]

  6. Vetores Algoritmo 2 – Leiadoisvetoresinteiros de 50 posições, some seuscorrespondenteselementos e imprima o resultadoda soma inteiro: va[50],vb[50],vc[50],i inicio para ide 1 até 50 repita leia (va[i],vb[i] )‏ vc[i] ← va[i] + vb[i] escreva (vc[i])‏ fimpara fim.

  7. Vetores Algoritmo 3 – Preencha um vetor de 100 inteiros, colocando 1 naposição par e 0 naposiçãoimpar inteiro: vetor[100],i inicio para ide 1 até 100 repita se (mod(i,2)=0) então vetor[i] ← 1 senão vetor[i] ← 0 fimpara; fim.

  8. Vetores Algoritmo 4 – Altere o exemploda soma de vetoresparaqueesta realize a seguinteoperação: produto do primeirovetorpeloinverso do segundo. Os vetorespossuem 20 posições e contémvaloresreais. Algoritmo <produto> inteiro: i real: V[20],a[20],b[20] inicio para i de 1 até 20 repita V[i] ← a[i]*b[21-i] fim para fim.

  9. Vetores Algoritmo 5 – Igualque o algoritmo 4, sóque o resultado dos produtos dos valorescorrespondentesdevem ser armazenados a partir do centropara as bordas, de modoalternado. Algoritmo <produto2> real: V[20],a[20],b[20] inteiro: i inicio para i de 1 até 10 repita v[11-i]=a[11-i]*b[10+i] v[10+i]=a[10+i]*b[11-i] fim para fim.

  10. Vetores Algoritmo 6 – Escrevaumaalgoritmoqueleia um vetor de 20 elementos e contequantosvalores pares existem no vetor. Algoritmo <contagempares> inteiro: V[20],i,c inicio c ←0 para i de 1 até 20 repita leia (V[i])‏ Se (mod(V[í],2)=0) então c ← c+1 fim se fim para escreva (c)‏ fim.

  11. Vetores Algoritmo 7 – Escreva um algoritmoqueleia um vetor de 50 posições de númerosinteiros e mostresomenteospositivos Algoritmo <positivos> inteiro:V[50], i inicio para i de 1 até 50 repita leia (V[i])‏ se (V[i]>0) então escreva (V[i])‏ fim se fim para fim.

  12. Vetores Algoritmo 8 – Escreva um algoritmoqueleia um vetor de 80 elementosinteiros, encontre e mostre o menorelemento e suaposição no vetor. Algoritmo <menorelemento> inteiro:V[80], i, ind,menor inicio leia (V[1])‏ menorV[1] ind1 para i de 2 até 80 repita leia (V[i])‏ se (V[i]<menor) então menorV[i] indi fim se fim para fim.

  13. Vetores Algoritmo 9 – Faça um algoritmoqueleia um conjunto de 10 valoresinteiros e oscoloqueemdoisvetoresconformeforem pares ouímpares. Algoritmo <doisvetores> inteiro:V[10], V1[10],V2[10],i,c1,c2 inicio c1  c2  para i de 1 até 10 repita leia (V[i])‏ se (mod(V[i],2)=0) então V1[c1]V[i] c1c1+1 senão V2[c2]V[i] c2 c2  fim se fim para fim.

  14. Vetores Algoritmo 10 – Escreva um algoritmo que leia um vetor G de 20 elementos literais que representa o gabarito de uma prova. A seguir para cada um dos 50 alunos da turma, leia o vetor de respostas R do aluno. Mostre o número de acertos do aluno e uma mensagem APROVADO, se a nota for maior ou igual a 6; e uma mensagem de REPROVADO, caso contrário.

  15. Vetores notaacertos*0.5 se (nota>=6) então escreva (“APROVADO”)‏ senão escreva(“REPROVADO”) fim se fim para fim Algoritmo <prova> literal:G[20], R[20] inteiro:i,j,acertos inicio para i de 1 até 20 repita leia (G[i])‏ fim para para j de 1 até 50 repita acertos ← 0 Para i de 1 até 20 repita leia R[i] se (R[i]=G[i]) então acertos ← acertos+1 fim se fim para

  16. Vetores Algoritmo 11 – Faça um algoritmoqueleia o códigonuméricointeiro e um vetor de 50 posições de númerosreais. Se o código for 0 termine o algoritmo, se for 1, mostre o vetornaordemdireta, e se for 2, mostre o vetornaordeminversa.

  17. Vetores Algoritmo <opcoes> inteiro:i,codigo real: vetor[50] inicio leia (codigo)‏ se (codigo>0 e codigo<=2) então para i de 1 até 50 repita leia (vetor[i])‏ fim para se (codigo=1) então para i de 1 até 50 repita escreva (vetor[i])‏ fim para senão para i de 50 até 1 passo -1 repita escreva (vetor [i])‏ fim para fim se fim se fim

  18. Vetores Algoritmo 12 – Umalocadora de vídeos tem guardada, em um arquivo manual, a quantidade de filmesretiradosporclientedurante o ano de 2007. Faça um algoritmoque (a) leia um vetor de 500 posiçõesparaguardarestainformação e (b) crie um outrovetorcontendo a quantidade de locaçõesgratuitas a quecadacliente tem direito, considerandoque a locadoraestáfazendoumapromoção e paracada 10 filmesretiradosganha-se umalocaçãográtis.

  19. Vetores Algoritmo <locadora> inteiro:i,locacoes[500],gratuitas[500] inicio para i de 1 até 500 repita leia (locacoes[i])‏ gratuitas[i] ← DIV(locacoes[i],10)‏ fim para fim

  20. Vetores Algoritmo 13 – Dado um polinômio P(x) de grau n, da forma P(x) = a0xn + a1xn-1 + ... + an-1x + an, onde a0, a1, ..., an (reais) são os coeficientes do polinômio. Faça um algoritmo para ler: n (o grau do polinômio), n<=100 os coeficientes a0, a1, ..., an e uma seqüência de 5 valores para x. O algoritmo deve calcular o valor de P(x) para cada valor de x.

  21. Vetores Algoritmo <polinomio> inteiro:i,n real: a[101],x início leia (n) para i de 1 até n+1 repita leia a[i] fim para para j de 1 até 5 repita leia x Px ← 0 para i de 1 até n+1 repita Px ← Px+ a[i]*x**(n-i+1) fim para escreva (x,Px) fim para fim

  22. Vetores Algoritmo 14 – Escrever um algoritmoquefaça a reserva de passagens aéreas de uma companhia. Além da leitura do número dos vôos e quantidade de lugares disponíveis, ler vários pedidos de reserva, constituídos do número de carteira de identidade do cliente e do número de vôo desejado. Para cada cliente, verificar se há disponibilidade no vôo desejado. Em caso afirmativo, imprimir o número da identidade do cliente, e o número de vôo, atualizando o número de lugares disponíveis. Caso contrário, avisar ao cliente da inexistência de lugares. Indicando o fim dos pedidos de reserva, existe um passageiro cujo número de carteira de identidade é 9999. Considerar fixo e igual a 37 o número de vôos da companhia. Algoritmo <reservapassagens> inteiro:i,voos[37],disp[37],cliente,nvoo

  23. início Para i de 1 até 37 repita leia (voos[i],disp[i]) Fim Para leiacliente enquantocliente<>9999 faça leianvoo i ← 0 repita i ← i+1 atéque (i=37 ouvoos[i]=nvoo) se (voos[i]=nvoo) então se (disp[i]>0) então escreva (cliente,nvoo) disp[i] ← disp[i]-1 senão escreva (nvoo, “lotado”) fim se senão escreva (“vooinexistente”) fim se leiacliente fimenquanto fim

  24. Vetores Algoritmo 15 – Faça um algoritmoqueleia um vetor de 20 inteiros e o coloqueemordemcrescente, utilizando a seguinteestratégia de ordenação: • Selecione o elemento do vetor de 20 posiçõesqueapresente o menorvalor. • Troqueesteelementopeloprimeiro. • Repitaestasoperações, envolvendo agora apenasos 19 elementosrestantes (trocando o de menorvalor com a segundaposição), depoisos 18 elementos (trocando o de menorvalor com a terceiraposição), depoisos 17,16 e assimpordiante, atérestar um únicoelemento, o maior deles.

  25. Algoritmo <ordemcrescente> inteiro:i,j,vetor[20] inicio para i de 1 até 19 repita inter ← 0 menor ← vetor[i] indice ← i para j de i+1 até 20 repita se (vetor[j] < menor ) então menor ← vetor[j] indice ← j inter ← 1 fim se fim para se (inter=1) então vetor[indice] ← vetor[i] vetor[i] ← menor fim se fim para fim Vetores

  26. Vetores Algoritmo 16 – Desenvolva um algoritmoqueleia um vetor de 20 posiçõesinteiras e o coloqueemordemcrescente, utilizandocomoestratégia de ordenação a comparação de pares de elementosadjacentes, permutando-osquandoestiveremfora de ordematéquetodosestejamordenados.

  27. Vetores Algoritmo <ordemcrescente2> inteiro:i,j,t,vetor[20] inicio para i de 2 até 20 repita para j de 20 até i passo -1 repita se (vetor[j-1] > vetor[j] ) então t ← vetor[j-1] vetor[j-1] ← vetor[j] vetor[j] ← t fim se fim para fim para fim

  28. Vetores Algoritmo17 – Desenvolva um algoritmoqueleia um vetor de 20 posiçõesinteiras e o coloqueemordemcrescente, utilizandocomoestratégia de ordenaçãoinserir um elemento n num vetor já ordenado de  n-1 elementos.

  29. Vetores Algoritmo <ordemcrescente3> inteiro:i,j,elemento,vetor[20] inicio para i de 2 até 20 repita elemento ←vetor[j] i ←j-1 enquanto (i>0 e vetor[i]>elemento) vetor[i+1] ← vetor[i] i ← i-1 fim enquanto vetor[i+1] ← elemento fim para fim

More Related