Algoritmos e programação - Aula 2
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share

Algoritmos e programação - Aula 2

  • 5,896 views
Uploaded on

Slides referentes a 2ª aula da disciplina de Algoritmos e programação, realizada no dia 05/02/2011

Slides referentes a 2ª aula da disciplina de Algoritmos e programação, realizada no dia 05/02/2011

More in: Technology , Business
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
5,896
On Slideshare
5,842
From Embeds
54
Number of Embeds
4

Actions

Shares
Downloads
188
Comments
0
Likes
1

Embeds 54

http://thyagomaia.net 27
http://algoritmos.thyagomaia.net 18
http://www.algoritmos.thyagomaia.net 8
http://ead.unipe.br 1

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Algoritmos e Programação Thyago Maia Tavares de Farias Aula 2
  • 2. Sumário
    • Por que criamos algoritmos?
    • Representações de um algoritmo
    • Regras básicas para Português Estruturado
      • Linearização de expressões
      • Modularização de expressões
  • 3. Por que criamos algoritmos?
    • Linguagem natural não pode ser interpretada por um computador;
    • Computadores são projetados para executar tarefas bem determinadas a partir de determinadas instruções;
    • Para desenvolver software, utilizamos linguagens de programação;
    • A linguagem algorítmica é similar a uma linguagem de programação;
    • Logo, aprendendo a criar algoritmos, estamos aptos a programar em qualquer linguagem de programação;
  • 4. Por que criamos algoritmos? ALGORITMO CÓDIGO-FONTE EM LINGUAGEM DE PROGRAMAÇÃO ADAPTAÇÃO LINGUAGEM NATURAL INSTRUÇÕES COMPILAÇÃO LINGUAGEM DE MÁQUINA TRADUÇÃO 01000101001.... PORTUGUÊS, INGLÊS... ALTO NÍVEL BAIXO NÍVEL
  • 5. Representações de um Algoritmo
    • Descrição narrativa;
    • Fluxograma
    • Pseudocódigo, Português Estruturado ou Portugol;
    SUBJETIVIDADE PRECISÃO
  • 6. Representações de um Algoritmo
    • Descrição Narrativa:
      • Preferencialmente um verbo por frase;
      • Frases curtas e simples;
      • Objetividade;
      • Evitar palavras com sentido dúbio;
  • 7. Exemplo
    • Descrição Narrativa:
      • Dobro de um número (Dobro = Número x 2):
        • Digitar um número;
        • Gravar em uma variável;
        • Multiplicar o número digitado por 2;
        • Gravar o resultado em outra variável;
        • Mostrar o resultado da operação.
  • 8. Representações de um algoritmo
    • Fluxogramas
      • Descrevem o fluxo de ação de um determinado trabalho lógico, seja manual ou mecânico;
      • Usa símbolos convencionais, permitindo poucas variações;
      • Representado por símbolos geométricos;
  • 9. Exemplo
    • Fluxograma para lidar com uma lâmpada que não funciona
    LÂMPADA NÃO FUNCIONA A LÂMPADA ESTÁ PLUGADA ? PLUGUE A LÂMPADA NÃO A LÂMPADA ESTÁ QUEIMADA ? SIM TROQUE A LÂMPADA SIM VERIFIQUE O BOCAL NÃO
  • 10. Representações de um algoritmo
    • Português estruturado (Portugol)
      • Linguagem mais restrita que o português em linguagem natural;
      • Simplificação extrema do português;
      • Significados bem definidos para todos os termos utilizados nas instruções;
      • Possui um conjunto de palavras e regras específicas (sintaxe da linguagem);
      • Representação utilizada no curso;
  • 11. Representações de um algoritmo
    • Português estruturado (Portugol)
      • Normalmente as implementações são feitas em papel, escritos a mão;
      • Atualmente também são utilizados programas que interpretam, testam e executam algoritmos;
  • 12. Desafio
    • Escreva um algoritmo que ajude o homem do barco a levar o lobo, a ovelha e a caixa de verduras para o outro lado do lago. Utilize a descrição narrativa para representar o algoritmo.
    • Lembrando que lobos comem ovelhas e ovelhas comem as verduras da caixa quando o homem está na outra margem!
  • 13. Resposta do desafio
    • Pega a ovelha
    • Vai para a outra margem
    • Deixa a ovelha
    • Volta a margem inicial
    • Pega a caixa de verduras
    • Vai para a outra margem
    • Deixa a caixa de verduras e pega a ovelha
    • Volta a margem inicial
    • Deixa a ovelha e pega o lobo
    • Vai para a outra margem
    • Deixa o lobo
    • Volta a margem inicial
    • Pega a ovelha
    • Vai para a outra margem
    • Deixa a ovelha
  • 14. Linearização de expressões
    • Para contrução de algoritmos que realizam cálculos matemáticos, TODAS expressões aritméticas devem ser linearizadas;
    • Linearizadas = Colocadas em linha;
  • 15. Linearização de expressões
    • Operadores aritméticos disponíveis para o português estruturado:
      • Adição (+)
      • Subtração (-)
      • Multiplicação (*)
      • Divisão (/)
      • Divisão inteira ()
      • Exponenciação (^ ou Exp)
      • Módulo, ou resto da divisão (%)
  • 16. Linearização de expressões
    • Operadores relacionais
      • Realizam a comparação entre dois operandos ou duas expressões e resultam em valores lógicos (verdadeiro ou falso)
        • Ex.: 2+5 > 4 resultaria VERDADEIRO;
        • Ex.: 2 = 7 resultaria FALSO;
  • 17. Linearização de expressões
    • Operadores relacionais disponíveis no Português estruturado:
      • Maior (>)
      • Menor (<)
      • Maior ou igual (>=)
      • Menor ou igual (<=)
      • Igual (=)
      • Diferente (<>)
  • 18. Linearização de expressões
    • Operadores lógicos
      • Atuam em expressões, também resultando em valores lógicos VERDADEIRO ou FALSO;
      • Tipos de operadores:
        • E: Resulta verdadeiro se AMBAS AS PARTES forem verdadeiras;
        • OU: Resulta verdadeiro se UMA DAS PARTES é verdadeira;
        • NÃO: Nega uma afirmação. Se verdadeiro, torna-se falso; Se falso, torna-se verdadeiro;
  • 19. Linearização de expressões
    • Exemplos:
      • (2+5 > 4) e (3 <> 3) resulta FALSO
        • Pois VERDADEIRO e FALSO resulta FALSO;
      • (2=2) ou (3<1) resulta VERDADEIRO
        • Pois VERDADEIRO ou FALSO resulta VERDADEIRO;
      • NAO (3<1) resulta VERDADEIRO
        • Pois FALSO resulta VERDADEIRO devido a inversão de valores definido por NÃO;
  • 20. Linearização de expressões
    • Tabelas-Verdade
      • Mostra os resultados das aplicações dos operadores lógicos conforme os valores dos operandos envolvidos:
    V V F F F F F V V F V F F V V F F V F F V V V V NÃO B NAO A A OU B A E B B A
  • 21. Modularização de expressões
    • É a divisão de uma expressão por partes;
    • Proporciona maior compreensão;
    • Define prioridades na resolução das mesmas;
    • Modularizamos expressões através dos parênteses ( );
    • Podemos utilizar parênteses dentro de parênteses (( ));
    • Indicam quais sub-expressões serão executados primeiro;
  • 22. Modularização de expressões
    • Exemplo:
      • (2+2)/2 resulta 2;
      • Mas 2+2/2 resulta 3;
    • Ordem de prioridade dos operadores aritméticos:
      • Exponenciação
      • Multiplicação
      • Divisão
      • Adição
      • Subtração
  • 23. Modularização de expressões
    • Ordem de prioridade dos operadores lógicos:
      • E
      • OU
      • NÃO
    • Exemplo:
      • (2>3) ou (3<2) e (2<3) resultaria FALSO
      • (2>3) e (3<2) ou (2<3) resultaria VERDADEIRO
  • 24. Modularização de Expressões
    • Ordem de prioridade dos operadores disponíveis no Português estruturado:
      • Operadores aritméticos
      • Operadores relacionais
      • Operadores lógicos
  • 25. Exercícios
    • Escreva as expressões abaixo na forma linearizada:
  • 26. Respostas
    • 1ª expressão: a + b/c
    • 2ª expressão: ((2/3 – (5-3)) + 1) * 5
  • 27. Exercícios
    • Escreva as seguintes expressões linearizadas na forma matemática convencional:
      • 4 + (5/3) * 8 – 4/2 – 5
      • 8/4 – 2 + (5 + 4) / (3 – 1)
  • 28. Exercícios
    • Resolva as expressões lógicas, determinando se a expressão é VERDADEIRA ou FALSA:
      • 2 > 3
      • (6 < 8) OU (3 > 7)
      • NÃO (2 < 3)
      • (2=2) E (1 > 10) OU (5<4)
  • 29. Respostas
    • Resolva as expressões lógicas, determinando se a expressão é VERDADEIRA ou FALSA:
      • 2 > 3 = FALSO
      • (6 < 8) OU (3 > 7) = VERDADEIRO
      • NÃO (2 < 3) = FALSO
      • (2=2) E (1 > 10) OU (5<4) = FALSO
  • 30. Forma geral de um algoritmo
    • Algoritmo “ nome do algoritmo ”
    • Var
    • Aqui declaramos as variáveis dos algoritmo
    • Inicio
    • Aqui declaramos as instruções do algoritmo
    • fimalgoritmo