Construcao de Algoritmos - Aula 10

43 visualizações

Publicada em

Procedimentos e Funções
Estruturas de dados homogêneas - vetores e matrizes
Registros

Publicada em: Educação
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
43
No SlideShare
0
A partir de incorporações
0
Número de incorporações
3
Ações
Compartilhamentos
0
Downloads
5
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Construcao de Algoritmos - Aula 10

  1. 1. Disciplina: Constr. de Algoritmos e Prog. de Sistemas Professor: Jeovane Reges Caxias – MA 2016 ACULDADE DE CIÊNCIAS E TECNOLOGIA DO MARANHÃO
  2. 2. Link Drive bit.ly/ads-algoritmos 2
  3. 3. 3 Algoritmos
  4. 4. 4 Estruturas Homogêneas <Vetores>
  5. 5. • Algoritmos • Estruturas Homogêneas • Introdução • Para resolução dos problemas propostos até então, utilizamos:  Tipos de dados básicos; • <real, inteiro, literal, caractere e lógico>  Comandos de controle; • <decisão e repetição>  Variáveis simples, que "armazenam um único" valor por vez. 5
  6. 6. • Algoritmos • Estruturas Homogêneas • Sempre que atribuímos um novo valor a uma variável simples, o valor anterior é perdido. 6 algoritmo "Problema 01" var x: inteiro inicio x ← 10 escreval("Valor de x: ", x) x ← 20 escreval("Valor de x: ", x) fimalgoritmo
  7. 7. • Algoritmos • Estruturas Homogêneas • Vetores • Representação da memória ao criar uma variável simples. 7 X
  8. 8. • Algoritmos • Estruturas Homogêneas • Vetores • Representação da memória ao criar uma variável simples.  Atribuição do valor 10 a variável x. 8 XX ← 10
  9. 9. • Algoritmos • Estruturas Homogêneas • Vetores • Representação da memória ao criar uma variável simples.  Atribuição do valor 20 a variável x. // O valor 20 sobescreve o valor anterior que era 10. 9 X ← 10X ← 20
  10. 10. 10 Isso ocorre porque cada variável está associada a uma única posição de memória, e dentro dela é possível armazenar apenas um único valor.
  11. 11. • Algoritmos • Estruturas Homogêneas • Vetores • Existem problemas em que as variáveis simples NÃO são suficientes. • Para atingir a solução de tais problemas, utilizamos as estruturas de dados homogêneas.  Armazenam diversos dados de um mesmo tipo em uma única variável.  Vetores (unidimensionais); e  Matrizes (bidimensionais). 11
  12. 12. • Algoritmos • Estruturas Homogêneas • Exemplo:  Solicitar ao usuário as notas de 5 alunos de uma turma e no "final" apresentar as notas digitadas. 12 algoritmo "Notas" var notas: real i: inteiro inicio para i de 1 ate 5 faca escreva(i, "a. nota: ") leia(notas) fimpara escreval("Notas: ", notas) fimalgoritmo
  13. 13. • Algoritmos • Estruturas Homogêneas • Saída: 13
  14. 14. • Algoritmos • Estruturas Homogêneas • Vetores • Mas, se quisermos "armazenar" todos as notas em uma única variável? • Se quiséssemos acessar tais valores individualmente a qualquer momento? • Com o que foi visto até então, não é possível "alcançar" esse comportamento. 14
  15. 15. • Algoritmos • Estruturas Homogêneas • Vetores • Em casos como esse que é útil a utilização das estruturas de dados homogêneas (vetores). • Vetores são variáveis que permitem armazenar vários valores do mesmo tipo. • Funciona como uma caixa, na qual você pode guardar o conteúdo que desejar. 15
  16. 16. 16 Estruturas de dados homogêneas são estruturas que permitem armazenar um conjuntos de dados do mesmo tipo em uma única variável.
  17. 17. 17 Vetores
  18. 18. • Algoritmos • Estruturas Homogêneas • Vetores • Tal como as variáveis simples, os vetores precisam ser declarados antes de utilizados. • Por se tratar de uma variável indexada a maneira como a declaramos é diferente. • A ideia geral é que estamos declarando diversas variáveis dentro de uma só.  Diferenciadas por um índice. 18
  19. 19. • Algoritmos • Estruturas Homogêneas • Vetores  Estruturas que armazenam os dados em uma única linha e várias colunas. 19 1 2 3 4 5 índexes V[1..5] =
  20. 20. • Algoritmos • Estruturas Homogêneas • Vetores  Estruturas que armazenam os dados em uma única linha e várias colunas. 20 1 2 3 4 5 índexes V[1..5] = 7 8.5 7.2 9.2 7.1
  21. 21. • Algoritmos • Estruturas Homogêneas • Vetores  Sintaxe: • Tamanho = [Vi..Vf],  Vi = valor inicial; e  Vf = valor final. 21 <identificador> : vetor [tamanho] de <tipo>
  22. 22. • Algoritmos • Estruturas Homogêneas • Vetores  Exemplo: • Declaração de um vetor com 10 posições.  Devem ser declarados dentro da sessão var. 22 notas : vetor [1..10] de real Nome do vetor Tipo de dados Tamanho do vetor (note que são apenas DOIS PONTOS!)
  23. 23. 23 Vetores (Atribuição de valores)
  24. 24. • Algoritmos • Estruturas Homogêneas • Vetores • Vimos que vetores são "variáveis". • A declaração de um vetor apenas reserva espaço na memória e não associa valores a ele. • Porém, em algumas situações é necessário iniciar os vetores com algum valor predefinido.  Ou iniciar todo o vetor, dependendo do problema. 24
  25. 25. • Algoritmos • Estruturas Homogêneas • Vetores → Atribuição de valores • Assim como as variáveis comuns, os valores de um vetor também podem ser inicializados. • Sintaxe: 25 <identificador>[posição] ← <valor> <identificador>[posição] := <valor> Índice
  26. 26. • Algoritmos • Estruturas Homogêneas • Vetores → Atribuição de valores  Exemplo: {1} 26 algoritmo "ExVetores" var notas: vetor [1..5] de real inicio notas[1] ← 7 notas[2] ← 8.5 notas[3] ← 7.2 fimalgoritmo 7 1 2 3 4 5
  27. 27. • Algoritmos • Estruturas Homogêneas • Vetores → Atribuição de valores  Exemplo: {1} 27 algoritmo "ExVetores" var notas: vetor [1..5] de real inicio notas[1] ← 7 notas[2] ← 8.5 notas[3] ← 7.2 fimalgoritmo 7 8.5 1 2 3 4 5
  28. 28. • Algoritmos • Estruturas Homogêneas • Vetores → Atribuição de valores  Exemplo: {1} 28 algoritmo "ExVetores" var notas: vetor [1..5] de real inicio notas[1] ← 7 notas[2] ← 8.5 notas[3] ← 7.2 fimalgoritmo 7 8.5 7.2 1 2 3 4 5
  29. 29. • Algoritmos • Estruturas Homogêneas • Vetores → Atribuição de valores  Exemplo: {1} 29 algoritmo "ExVetores" var notas: vetor [1..5] de real inicio notas[1] ← 7 notas[2] ← 8.5 notas[3] ← 7.2 fimalgoritmo 7 8.5 7.2 0 0 1 2 3 4 5
  30. 30. • Algoritmos • Estruturas Homogêneas • Vetores → Atribuição de valores  Exemplo: {2} 30 algoritmo "ExVetores" var notas: vetor [1..5] de real inicio escreva("Nota do 1o. Aluno: ") leia(notas[1]) escreva("Nota do 2o. Aluno: ") leia(notas[2]) escreva("Nota do 3o. Aluno: ") leia(notas[3]) fimalgoritmo
  31. 31. • Algoritmos • Estruturas Homogêneas • Vetores → Atribuição de valores  Exemplo: {3} 31 algoritmo "ExVetores" var notas: vetor [1..5] de real i: inteiro inicio para i de 1 ate 5 faca escreva("Notas: ") leia(notas[i]) fimpara fimalgoritmo
  32. 32. 32 Vetores (Acessando valores)
  33. 33. • Algoritmos • Estruturas Homogêneas • Vetores → Acessando valores  Exemplo: {1} 33 algoritmo "ExVetores" var notas: vetor [1..5] de real inicio notas[1] ← 7 notas[2] ← 8.5 notas[3] ← 7.2 escreval("1a. nota: ", notas[1]) escreval("2a. nota: ", notas[2]) escreval("3a. nota: ", notas[3]) fimalgoritmo
  34. 34. • Algoritmos • Estruturas Homogêneas • Vetores → Acessando valores  Exemplo: {2} 34 algoritmo "ExVetores" var notas: vetor [1..5] de real i: inteiro inicio notas[1] ← 7 notas[2] ← 8.5 notas[3] ← 7.2 para i de 1 ate 5 faca escreval(i, "a. nota: ", notas[i]) fimpara fimalgoritmo
  35. 35. • Algoritmos • Estruturas Homogêneas • Vetores → Acessando valores  Saída: {2} 35
  36. 36. 36 Exemplos Resolvidos <Vetores>
  37. 37. 37 Problema I Faça um algoritmo que leia 5 números inteiro fornecidos pelo teclado e "armazene-os" em um vetor. Em seguida, imprima-os na ordem em que foram "digitados".
  38. 38. • Algoritmos  Resolução do Problema I 38 algoritmo "Problema 01" var numeros: vetor [1..5] de inteiro i, j: inteiro inicio para i de 1 ate 5 faca escreva("Digite um valor: ") leia(numeros[i]) fimpara para j de 1 ate 5 faca escreva(numeros[j]) fimpara fimalgoritmo
  39. 39. 39 Problema II Faça um algoritmo que dado um vetor inicializado com 5 valores, some estes valores e em seguida imprima a soma.
  40. 40. • Algoritmos 40 algoritmo "Problema 02" var numeros: vetor [1..5] de inteiro i, soma: inteiro inicio numeros[1] ← 7 numeros[2] ← 8 numeros[3] ← 2 numeros[4] ← 5 numeros[5] ← 3 para i de 1 ate 5 faca soma ← soma + numeros[i] fimpara escreval("Soma: ", soma) fimalgoritmo ResoluçãodoProblemaII
  41. 41. 41 Problema III Faça um algoritmo que dado um vetor inicializado com 5 valores, apresente a média dos valores contidos no vetor.
  42. 42. • Algoritmos 42 algoritmo "Problema 03" var numeros: vetor [1..5] de inteiro i, soma: inteiro media: real inicio numeros[1] ← 7 numeros[2] ← 8 numeros[3] ← 2 numeros[4] ← 5 numeros[5] ← 3 para i de 1 ate 5 faca soma ← soma + numeros[i] fimpara media ← soma / 5 escreval("Media: ", media) fimalgoritmo ResoluçãodoProblemaIII
  43. 43. 43 Problema IV Faça um algoritmo que leia 5 números inteiros e "armazene-os" em um vetor. Em seguida, "imprima" somente os números pares que se encontram no vetor.
  44. 44. • Algoritmos 44 algoritmo "Problema 04" var numeros: vetor [1..5] de inteiro i, j: inteiro inicio para i de 1 ate 5 faca escreva("Digite um valor: ") leia(numeros[i]) fimpara para j de 1 ate 5 faca se (numeros[j] % 2 = 0) entao escreval(numeros[j]) fimse fimpara fimalgoritmo ResoluçãodoProblemaIV
  45. 45. 45 Problema V Faça um algoritmo que leia um vetor com 5 posições de números inteiros. Em seguida, "imprima" a quantidade de números pares existentes no vetor.
  46. 46. • Algoritmos 46 algoritmo "Problema 05" var numeros: vetor [1..5] de inteiro i, j, conta_par: inteiro inicio para i de 1 ate 5 faca escreva("Digite um valor: ") leia(numeros[i]) fimpara para j de 1 ate 5 faca se (numeros[j] % 2 = 0) entao conta_par ← conta_par + 1 fimse fimpara escreval(conta_par) fimalgoritmo ResoluçãodoProblemaV
  47. 47. 47 Problema VI Faça um algoritmo que dado um vetor de inteiro com 10 elementos, retorne o "maior" valor que se encontra no vetor.
  48. 48. • Algoritmos  Resolução do Problema VI 48 algoritmo "Problema 06" var numeros: vetor [1..10] de inteiro i, mv: inteiro inicio // Suponha que o vetor já preenchido mv ← numeros[1] para i de 2 ate 10 faca se (numeros[i] > mv) entao mv ← números[i] fimse fimpara escreval(mv) fimalgoritmo
  49. 49. 49 Problema VII Faça um algoritmo que dado um vetor de números inteiros e positivos com 10 elementos, apresente os índices dos "números ímpares".
  50. 50. • Algoritmos  Resolução do Problema VII 50 algoritmo "Problema 07" var numeros: vetor [1..10] de inteiro i, j: inteiro inicio para i de 1 ate 10 faca escreva("Digite um valor: ") leia(numeros[i]) fimpara para j de 1 ate 10 faca se (numeros[j] % 2 <> 0) entao escreval("Valor ímpar na posição: ", i) fimse fimpara fimalgoritmo
  51. 51. 51 Problema VIII Faça um algoritmo que dados um conjunto de valores inteiros armazene os seis primeiros números maiores do que ZERO em um vetor.
  52. 52. • Algoritmos  Resolução do Problema VIII 52 algoritmo "Problema 08" var numeros: vetor [1..6] de inteiro i, valor: inteiro inicio repita escreva("Digite um valor: ") leia(valor) se (valor > 0) entao numeros[i] ← valor i ← i + 1 fimse ate(i > 6) fimalgoritmo

×