Construcao de Algoritmos - Aula 05

99 visualizações

Publicada em

Introdução ao portugol
Sintaxe
Tipos de dados, variáveis e constantes
Expressões

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
99
No SlideShare
0
A partir de incorporações
0
Número de incorporações
3
Ações
Compartilhamentos
0
Downloads
4
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Construcao de Algoritmos - Aula 05

  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 Algoritmos Sequenciais
  5. 5. • Algoritmos • Algoritmos Sequenciais • Introdução • Nas aulas de até então, foram apresentadas...  Definir os tipos de dados;  Utilizar variáveis para armazenar estes dados; e  Relacionar os dados em expressões e operadores. • Todos esses conceitos são essenciais para a construção de algoritmos. 5
  6. 6. • Algoritmos • Algoritmos Sequenciais 6 algoritmo "Adicao" // Função: Somar números // Autor : Jeovane Reges // Data : 12/06/2016 // Seção de Declarações var n1, n2, soma: inteiro // Início do bloco de execução inicio n1 ← 13 n2 ← 6 soma ← n1 + n2 escreval("Adicao: ", soma) //fim do algoritmo fimalgoritmo Comentários Declaração de variáveis Bloco de Execução
  7. 7. 7 Algoritmos sequenciais, basicamente, executam um conjunto de instruções uma após a outra.
  8. 8. • Algoritmos • Algoritmos Sequenciais • Introdução • Considere as técnicas abaixo para elaboração de um algoritmo (Ascencio e Campos, 2002).  Ler atentamente o enunciado, destacando os pontos mais importantes;  Definir os dados de entrada;  Definir a saída que se deseja alcançar;  Definir o processamento (de que maneira será ordenada a sequência de passos);  Construir o algoritmo;  Testar o algoritmo realizando simulações. 8
  9. 9. 9 Saída: • Quais os resultados que o algoritmo deve fornecer? Entrada: • Quais os insumos necessários para se obter a saída? Processamento: • Como transformar os insumos na saída? Antes de codificar qualquer algoritmo é importante que se saiba:
  10. 10. Exemplo 01 10 Faça um algoritmo que leia dois números quaisquer e apresente o resultado das 4 operações aritméticas básicas.
  11. 11. • Algoritmos • Exemplo 01 • Solucionando o problema... 11 • Entrada: • Dois números quaisquer (n1, n2) • Saída: • soma, subtração, multiplicação e divisão • Processamento: • soma ← n1 + n2 • subtracao ← n1 - n2 • multiplicacao ← n1 * n2 • divisao ← n1 / n2
  12. 12. • Algoritmos 12 1. algoritmo "Exemplo 01" 2. var 3. n1, n2, soma, sub, div, mult: real 4. inicio 5. escreva("Digite o 1o. valor: ") 6. leia(n1) 7. escreva("Digite o 2o. valor : ") 8. leia(n2) 9. 10. soma ← n1 + n2 11. sub ← n1 - n2 12. div ← n1 / n2 13. mult ← n1 * n2 14. 15. escreval("Soma: ", soma) 16. escreval("Subtração: ", sub) 17. escreval("Divisão: ", div) 18. escreval("Multiplicação: ", mult) 19. fimalgoritmo ResoluçãodoExemplo01... Entrada de Dados Processamento Saída
  13. 13. 13 Exemplos Resolvidos <Algoritmos Sequenciais>
  14. 14. 14 Problema I Faça um algoritmo que após ser dado um número inteiro, imprima o seu antecessor e o seu sucessor.
  15. 15. • Algoritmos • Problema I • Solucionando o problema... 15 • Entrada: • Um número qualquer.. • numero ← 8 • Saída: • antecessor // 7 • sucessor // 9 • Processamento: • ant ← num - 1 • suc ← num + 1
  16. 16. • Algoritmos • Estrutura Sequencial  Resolução do Problema I 16 algoritmo "Problema 01" var numero, ant, suc: inteiro inicio numero ← 8 ant ← numero - 1 suc ← numero + 1 escreval("Antecessor: ", ant) escreval("Sucessor: ", suc) fimalgoritmo
  17. 17. • Algoritmos • Estrutura Sequencial  Resolução do Problema I 17 Inicio Fim ant, suc numero ant ← numero – 1 suc ← numero + 1
  18. 18. 18 Problema II Faça um algoritmo que apresente a soma de três números quaisquer.
  19. 19. • Algoritmos • Problema II • Solucionando o problema... 19 • Entrada: • Três números quaisquer (n1, n2, n3) • n1 ← 8 • n2 ← 9 • n3 ← 7 • Saída: • Soma dos três números // 24 • Processamento: • soma ← n1 + n2 + n3
  20. 20. • Algoritmos • Estrutura Sequencial  Resolução do Problema II 20 algoritmo "Problema 02" var n1, n2, n3, soma: inteiro inicio n1 ← 8 n2 ← 9 n3 ← 7 soma ← n1 + n2 + n3 escreval("Soma: ", soma) fimalgoritmo
  21. 21. • Algoritmos • Estrutura Sequencial  Resolução do Problema II 21 Inicio Fim soma n1, n2, n3 soma ← n1 + n2 + n3
  22. 22. 22 Problema III Faça um algoritmo que leia o tempo e a distância que um certo motorista levou da cidade A à cidade B. Em seguida, determine a velocidade média que o motorista dirigia.
  23. 23. • Algoritmos • Problema III • Solucionando o problema... 23 • Entrada: • O tempo e a distância • tempo ← 2 • distancia ← 100 • Saída: • Velocidade média // 50 Km • Processamento: • vm ← distancia / tempo
  24. 24. • Algoritmos • Estrutura Sequencial  Resolução do Problema III 24 algoritmo "Problema 03" var tempo, distancia, vm: real inicio escreva("Digite o tempo: ") leia(tempo) escreva("Digite a distancia: ") leia(distancia) // velocidade média = distancia / tempo vm ← distancia / tempo escreval("Velocidade media: ", vm) fimalgoritmo
  25. 25. • Algoritmos • Estrutura Sequencial  Resolução do Problema III 25 Inicio Fim vm // veloc. média tempo, distancia vm ← distancia / tempo
  26. 26. 26 Problema IV Faça um algoritmo que leia o saldo de uma aplicação, exiba o novo saldo após um acréscimo de 10%.
  27. 27. • Algoritmos • Algoritmos Sequenciais  Porcentagens 27 1% → 0.01 10% → 0.10 15% → 0.15 20% → 0.20 100% → 1 105% → 1.05 110% → 1.1
  28. 28. • Algoritmos • Problema IV • Solucionando o problema... 28 • Entrada: • O saldo de uma aplicação • Saldo ← 5000 • Saída: • O saldo com acréscimo de 10% // R$ 5500 • Processamento: • reajuste ← saldo * 0.1 • novo_saldo ← saldo + reajuste
  29. 29. • Algoritmos • Estrutura Sequencial  Resolução do Problema IV 29 algoritmo "Problema 04" var saldo, novo_saldo, reajuste: real inicio escreva("Digite o saldo: ") leia(saldo) reajuste ← saldo * 0.1 novo_saldo ← saldo + reajuste escreval("Novo Saldo: ", novo_saldo) fimalgoritmo
  30. 30. • Algoritmos • Estrutura Sequencial  Resolução do Problema IV 30 Inicio Fim novo_saldo saldo reajuste ← saldo * 0.1 novo_saldo ← saldo + reajuste
  31. 31. 31 Problema V Faça um algoritmo que após fornecidos os valores para os coeficientes a, b, c e x de uma equação de segundo grau (ax2 + bx + c), apresente o seu resultado final.
  32. 32. • Algoritmos • Problema V • Solucionando o problema... 32 • Entrada: • Coeficientes a, b, c e x • a ← 3 • b ← 2 • c ← 4 • x ← 2 • Saída: • Resultado da equação // 20 • Procedimento: • eq ← ax2 + bx + c
  33. 33. • Algoritmos • Estrutura Sequencial  Resolução do Problema V 33 algoritmo "Problema 05" var a, b, c, x, eq: real inicio a ← 3 b ← 2 c ← 4 x ← 2 // eq ← ax2 + bx + c eq ← a * Quad(x) + (b * x) + c escreval("Resultado: ", eq) fimalgoritmo
  34. 34. • Algoritmos • Estrutura Sequencial  Resolução do Problema V 34 Inicio Fim eq a, b, c e x eq ← ax2 + bx + c
  35. 35. 35 Problema VI Uma Empresa paga a seu vendedor um salário fixo de R$ 800,00, mais uma comissão de 15% pelo seu valor de vendas no mês. Faça um algoritmo que leia o valor da venda e determine o salário total do funcionário.
  36. 36. • Algoritmos • Problema VI • Solucionando o problema... 36 • Entrada: • Salário fixo e o valor de vendas • sal_fixo ← 800 • val_vendas ← 10.000 • Saída: • Salário total do funcionário // R$ 2.300 • Procedimento: • comissao ← val_vendas * 0.15 • sal_total ← sal_fixo + comissao
  37. 37. • Algoritmos • Estrutura Sequencial  Resolução do Problema VI 37 algoritmo "Problema 06" var sal_fixo, sal_total: real val_vendas, comissao: real inicio escreva("Vendas mensais: ") leia(val_vendas) sal_fixo ← 800 comissao ← val_vendas * 0.15 sal_total ← sal_fixo + comissao escreva("Salario total: ", sal_total) fimalgoritmo
  38. 38. • Algoritmos • Estrutura Sequencial  Resolução do Problema VI 38 Inicio Fim sal_total sal_fixo ← 800 comissao ← val_vendas * 0.15 sal_total ← sal_fixo + comissao
  39. 39. 39 Problema VII Faça um algoritmo que leia uma distancia em milhas, apresente-a convertida em quilômetros. A formula de conversão é K = 1,61 ∗ M, sendo K a distancia em quilômetros e M em milhas.
  40. 40. • Algoritmos • Problema VII • Solucionando o problema... 40 • Entrada: • Distância percorrida em milhas • milhas ← 48 • Saída: • Distância em milhas convertida em KM’s • Processamento: • km ← 1.61 * milhas
  41. 41. • Algoritmos • Estrutura Sequencial  Resolução do Problema VII 41 algoritmo "Problema 07" var milhas, km: real inicio escreva("Digite as milhas percorridas: ") leia(milhas) km ← 1.61 * milhas escreva("Distancia em Km: ", km) fimalgoritmo
  42. 42. • Algoritmos • Estrutura Sequencial  Resolução do Problema VII 42 Inicio Fim km milhas km ← 1.61 * milhas
  43. 43. 43 Problema VIII Faça um algoritmo que calcule o comprimento de um círculo. Comprimento = 2 x raio x pi
  44. 44. • Algoritmos • Estrutura Sequencial  Resolução do Problema VIII 44 algoritmo "Problema 08" var raio, comprimento: real inicio raio ← 5 comprimento ← 2 * raio * Pi escreva(comprimento) fimalgoritmo
  45. 45. • Algoritmos • Estrutura Sequencial  Resolução do Problema VIII 45 Inicio Fim comprimento raio comprimento ← 2 * raio * Pi
  46. 46. 46 Problema IX Faça um algoritmo que dado um número inteiro de três algarismos, exiba cada algarismo separadamente.
  47. 47. • Algoritmos • Problema IX • Solucionando o problema... 47 • Entrada: • Um número (num) • numero ← 735 • Saída: − Cada algarismo separadamente. − Centena: c // 7 − Dezena: d // 3 − Unidade: u // 5 • Processamento: • Próximo slide...
  48. 48. • Algoritmos • Problema IX • Processamento... 48 735 100 (35) 7 Entrada: 735 Saída: Centenas = 7 Dezenas = 3 Unidade = 5 35 10 (5) 3 Centenas: 735 / 100 = 7 num div 100 Dezenas: (735 % 100) /10 = 3 (num % 100) div 10 Unidade: (735 % 100) %10 = 5 num % 10
  49. 49. • Algoritmos • Estrutura Sequencial  Resolução do Problema IX 49 algoritmo "Problema 09" var num, c, d, u: inteiro inicio num ← 735 c ← num div 100 d ← (num % 100) div 10 u ← num % 10 escreval("Centena: ", c) escreval("Dezena: ", d) escreval("Unidade: ", u) fimalgoritmo
  50. 50. • Algoritmos • Estrutura Sequencial  Resolução do Problema IX 50 Inicio Fim c // Centena d // Dezena u // Unidade num c ← num div 100 d ← (num % 100) div 10 u ← num % 10

×