Algoritmo 01 - Semana 01

1,004 views
801 views

Published on

Slide de Introdução à Disciplina de Algoritmo 1
Nível Médio Integrado
Instituto Federal de Mato Grosso do Sul - IFMS
Ponta Porã - MS
Professores Eder S. Villalba e Ricardo Lins do Nascimento

Published in: Education
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,004
On SlideShare
0
From Embeds
0
Number of Embeds
171
Actions
Shares
0
Downloads
37
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Algoritmo 01 - Semana 01

  1. 1. 1 Algoritmo 1 Semana 01 INTRODUÇÃO – DEFINIÇÃO - CONCEITOS
  2. 2. Ementa  Desenvolver algoritmos por meio de divisão modular e refinamentos sucessivos. Interpretar pseudocódigos, algoritmos e outras especificações para codificar programas. Avaliar resultados de testes dos programas desenvolvidos. Integrar módulos desenvolvidos separadamente. 2
  3. 3. Objetivos  Geral   Capacitar o aluno para o desenvolvimento de soluções de problemas usando técnicas estruturadas de programação, algoritmos e estruturas estáticas de dados. Específicos  Utilizar modelos, pseudocódigos e ferramentas na representação da solução de problemas.  Redigir instruções de uso dos programas implementados.  Utilizar tipos de dados básicos e operadores aritméticos, lógicos e relacionais.  Utilizar instruções de seleção para escolher entre ações alternativas.  Utilizar estruturas de repetição para executar instruções em um programa repetidamente. Implementar subalgoritmos. 3
  4. 4. Avaliação  Provas Bimestrais – Peso 8  Trabalhos Bimestrais – Peso 2 4
  5. 5. 5 Conteúdo Programático CONTEÚDO PROPOSTO POR AVALIAÇÃO
  6. 6. Conteúdo Programático P1  Introdução   Tipos de algoritmos   Conceito Descrição geral dos algoritmos LÓGICA DE PROGRAMAÇÃO   Princípios de resolução de problemas  Tipos de variáveis  Uso de Constantes  Fórmulas matemáticas   Formas de representação gráfica Instruções básicas TOMADAS DE DECISÃO  Desvio condicional simples  Desvio condicional composto  Desvio condicional encadeados 6
  7. 7. Conteúdo Programático P2  LAÇOS DE REPETIÇÃO  Looping com teste lógico no início  Looping com teste lógico no fim  Looping com variável de controle 7
  8. 8. Conteúdo Programático P3  MATRIZES  Matrizes de uma dimensão ou vetores  Matrizes com mais de uma dimensão 8
  9. 9. Conteúdo Programático P4  Modularização de programas  Procedimentos e funções  Passagem de parâmetros 9
  10. 10. 10 Algoritmo DEFINIÇÕES
  11. 11. Algoritmo  Um algoritmo é uma sequência de instruções finita e ordenada de forma lógica para a resolução de uma determinada tarefa ou problema. 11  São exemplos de algoritmos instruções de montagem, receitas, manuais de uso, etc.
  12. 12. Algoritmo  Um algoritmo não é a solução do problema, pois, se assim fosse, cada problema teria um único algoritmo;  Um algoritmo é um caminho para a solução de um problema.  Em geral, existem muitos (senão infinitos) caminhos que levam a uma solução satisfatória. 12
  13. 13. Exemplo 1 13
  14. 14. Exemplo 2 Algoritmo para fritar um ovo  1. Colocar um ovo na frigideira  2. Esperar o ovo ficar frito  3. Remover o ovo da frigideira 14
  15. 15. Exemplo 3 Algoritmo para fritar um ovo  1. Retirar um ovo da geladeira  2. Colocar a frigideira no fogo  3. Colocar óleo  4. Esperar até o óleo ficar quente  5. Quebrar o ovo separando a casca  6. Colocar o conteúdo do ovo na frigideira  7. Esperar um minuto  8. Retirar o ovo da frigideira  9. Apagar o fogo 15
  16. 16. Exemplo 4 Algoritmo Lavar a cabeça 1 – Início 2 – Molhe o cabelo 3 – Coloque Shampoo 4 – Faça Massagem 5 – Enxágüe 6 – Repita o Processo 7 – Fim 16
  17. 17. Exemplo 4 Algoritmo Lavar a cabeça 1 – Início 2 – Molhe o cabelo 3 – Coloque Shampoo 4 – Faça Massagem 5 – Enxágue 6 – Repita o Processo 7 – Fim 1) É a descrição de um procedimento rotineiro; 2) Tem um INÍCIO e um FIM claros; 3) A descrição é feita passo a passo, de maneira bem definida; 4) Há imperfeições: 4.1) Não especifica a quantidade de shampoo; 4.2) Não especifica quantas vezes o processo deve ser repetido; 4.3) Não especifica qual o processo ou qual passo que deve ser repetido. 17
  18. 18. Exemplo 4 Algoritmo Lavar a cabeça 18 1 – Início 2 – Molhe o Cabelo 3 – Repita 2 (duas) vezes: 3.1 – Coloque a quantidade correspondente a uma tampa de shampoo 3.2 – Faça massagem durante 1 minuto 3.3 – Enxágüe 4 – Fim
  19. 19. Qualidades de um bom Algoritmo  Definição Perfeita   Deve descrever exatamente quais são as instruções que devem ser executadas e em que seqüência. Deve ser tornado explícito o maior número possível de informações, pois a falta de alguma informação pode levar a uma interpretação errada do algoritmo; Ausência de Ambigüidade  Não deve deixar dúvidas sobre o que deve ser feito. A ambigüidade acerca do que deve ser feito também pode levar a uma interpretação errada do algoritmo; 19
  20. 20. Qualidades de um bom Algoritmo  Eficácia   Conseguir resolver o problema em qualquer situação. Todas as situações de exceção que possam alterar o comportamento do algoritmo devem ser especificadas e tratadas; Eficiência  Resolver o problema com o mínimo de recursos. Sempre se deve buscar aquele algoritmo que, dentre os diversos algoritmos que resolvam um mesmo problema, utilize a menor quantidade de recursos. 20
  21. 21. Estratégias na Construção de Algoritmos  Especifique o problema claramente e entenda-o completamente;  Explicite todos os detalhes supérfluos;  Entre no problema (envolva-se totalmente com o problema);  Use todas as informações disponíveis;  Decomponha o problema (Top-Down);  Use o sentido inverso, se necessário (Bottom-Up). 21
  22. 22. Como Construir Algoritmos 22 Problema Análise Preliminar Solução Teste de Qualidade Produto Final Alteração
  23. 23. Como Construir Algoritmos  Análise Preliminar   Solução   Execute o algoritmo desenvolvido com dados para os quais o resultado seja conhecido. O ideal é que o universo dos dados tenha todas as combinações possíveis. Note que a qualidade de um algoritmo pode ser limitada por fatores como tempo para a sua confecção e recursos disponíveis. Alteração   Desenvolva um algoritmo para resolver o problema. Teste de Qualidade   Entenda o problema com a maior precisão possível, identifique os dados; identifique os resultados desejados. Se o resultado do teste de qualidade não for satisfatório, altere o algoritmo e submeta-o a um novo teste de qualidade. Produto Final  O algoritmo concluído e testado, pronto para ser aplicado. 23
  24. 24. Portugol  A Linguagem Estruturada é a forma que tem sido mais utilizada para a elaboração de algoritmos.  É a forma que mais se assemelha com a forma em que os programas são escritos nas linguagens de programação. 24
  25. 25. Operadores Aritméticos Operação Operador Exemplo Soma + 1+1=2 Subtração - 1-1=0 Multiplicação * 2*2=4 Divisão Real / 7/2=3.5 Divisão de Inteiros 72=3 Resto da Divisão Inteira % 7%2=1 Potenciação ^ 22 = 2^2. 25
  26. 26. Operadores Relacionais Operador Simbolo Menor < Menor ou Igual <= Maior > Maior ou Igual >= Diferente <> Igual = Os operadores relacionais retornam valores lógicos (Verdadeiro ou Falso) 26
  27. 27. Operadores Lógicos Operador Simbolo Significado Multiplicação lógica E Resulta VERDADEIRO se ambas as partes forem verdadeiras. Adição lógica OU Resulta VERDADEIRO se uma das partes é verdadeira. Negação NÃO Nega uma afirmação, invertendo o seu valor lógico: se for VERDADEIRO torna-se FALSO, se for FALSO torna-se VERDADEIRO. 27
  28. 28. Operadores Lógicos – Tabela Verdade 28
  29. 29. Exemplo – Operadores Relacionais  2+5>4 resulta VERDADEIRO  3<>3 resulta FALSO 29
  30. 30. Operadores Lógicos – Exemplo  (2+5>4) e (3<>3) resulta FALSO,  pois VERDADEIRO e FALSO resulta FALSO. 30
  31. 31. Prioridades de Operadores Operador Aritmético Prioridade Exponenciação 3 Multiplicação 2 Divisão 2 Adição 1 Subtração 1 Operador Lógico E 3 OU 2 NÃO (2 + 2)/2 resulta 2 2 + 2/2 resulta 3 Prioridade 1 Operador Prioridade Aritméticos 3 Relacionais 2 Lógicos 1 31
  32. 32. Tabelas de Prioridade – Operadores Lógicos (2>3) ou (3<2) e (2<3) //resultado seria Falso (2>3) e (3<2) ou (2<3) //resultado seria Verdadeiro 32
  33. 33. Prioridade entre categorias de operadores Atenção: O software VisuAlg não possui relacionamento de categorias. 2*5>3 ou 5+1<2 e 2<7-2 // resulta em erro. (2*5>3) ou (5+1<2) e (2<7-2) // certo seria assim. 33
  34. 34. Linearização de Expressões  Para a construção de algoritmos que realizam cálculo matemáticos, todas as expressões aritméticas devem ser linearizadas, ou seja, colocadas em linhas, devendo também ser feito o mapeamento dos operadores da aritmética tradicional para os do Português Estruturado. 34
  35. 35. Variáveis 35 Conteúdo Variável Tipo Nome
  36. 36. Regras no nome das variáveis 1. nomes de variáveis não podem ser iguais a palavras reservadas; 2. nomes de variáveis devem possuir como primeiro caractere uma letra ou sublinhado '_' (os outros caracteres podem ser letras, números e sublinhado); 3. nomes de variáveis devem ter no máximo 127 caracteres; 4. Nomes de variáveis não podem conter espaços em branco; 5. na sintaxe do Português Estruturado, não há diferença entre letras maiúsculas de minúsculas (NOME é o mesmo que noMe). 36
  37. 37. Tipos de Dados 37 Tipos Numéricos Literal Lógico

×