SlideShare uma empresa Scribd logo
1 de 61
Baixar para ler offline
Algoritmos e Linguagem
    de Programação
      Professor: Mauro Jansen



     Parte 3 – Pseudocódigo



              15/09/2010
Algoritmos e Ling.de Programação
Prof. Mauro             Pseudocódigo             2
Pseudocódigo
 Forma para a representação de algoritmos rica
  em detalhes, como a definição dos tipos das
        variáveis usadas no algoritmo.


 Assemelha-se à forma como os programas são escritos.
 Para traduzir o pseudocódigo para uma linguagem de
 programação, basta conhecer o vocabulário e regras
 sintáticas da linguagem.
 Busca a rigidez sintática e semântica, porém sem o
 detalhamento exigido nas linguagens de programação

                   Algoritmos e Ling.de Programação
    Prof. Mauro              Pseudocódigo               3
Estrutura básica
 Todo pseudocódigo possui a seguinte estrutura básica:

      Algoritmo <nome do Algoritmo>
      Variáveis
         <lista de variáveis>
      Início
         <bloco de comandos>
      Fim

 As palavras em negrito são palavras reservadas:
 palavras em português que indicam seções do
 pseudocódigo ou ações a serem executadas pelo
 computador (instruções)
                   Algoritmos e Ling.de Programação
   Prof. Mauro               Pseudocódigo                4
Estrutura básica
 Na seção Variaveis ou Var declaramos as
 variáveis
 Entre as palavras Inicio e Fim inserimos a
 sequência de comandos do nosso algoritmo, que
 pode conter também referência a variáveis e
 expressões
 Toda linha de comando termina com “;” (ponto e
 vírgula) (há exceções para esta regra)



                 Algoritmos e Ling.de Programação
   Prof. Mauro             Pseudocódigo             5
Exemplo de pseudocódigo
 Pseudocódigo referente ao problema do
 maior número:
          Algoritmo Maior
          Var
            num1, num2, maior: inteiro:
          Inicio
             Leia(num1,num2);
             se (num1>num2) então
                maior    num1;
             senão
                maior    num2;
             fimse;
             escreva(maior);
          Fim

                      Algoritmos e Ling.de Programação
   Prof. Mauro                  Pseudocódigo             6
Notação usada nas sintaxes
 Ao definirmos a sintaxe de comandos e
 instruções é usada a seguinte notação:
   Palavras em negrito são palavras reservadas
   Palavras entre < > são elementos do
   algoritmo a serem substituídos por nomes ou
   valores a serem definidos pelo programador
   Elementos entre [ ] são opcionais
   Textos entre { } são comentários explicativos
   do algoritmo e não são executados pelo
   computador

                 Algoritmos e Ling.de Programação
   Prof. Mauro             Pseudocódigo             7
Declaração de variáveis
 Declaração de Variáveis: todas as variáveis
 que serão utilizadas pelo algoritmo devem ser
 declaradas entre as palavras reservadas
 Variaveis (ou Var) e Inicio:
          Algoritmo Exemplo
          Variaveis
             a: Inteiro;
             b: Real;
          Inicio
             <bloco de comandos>
          Fim

                   Algoritmos e Ling.de Programação
   Prof. Mauro               Pseudocódigo             8
Comando de atribuição ( )
 Armazena um valor em uma variável
 previamente declarada
 No pseudocódigo, o comando de atribuição
 é o símbolo “ ”
 Sintaxe: <variável>    <valor>;
 Exemplos:
  salario    1200; {variável salario recebe o valor 1200}
  nome    “Maria”; {variável nome recebe “Maria”`}
  media    (nota1+nota2)/2;  {variável media recebe o
    resultado da expressão}

                   Algoritmos e Ling.de Programação
   Prof. Mauro               Pseudocódigo               9
Comando de entrada de dados (Leia)
  Sempre que precisamos que o usuário digite
  algum dado para ser processado, teremos uma
  entrada de dados
  O comando usado para receber essa entrada de
  dados no pseudocódigo é o comando Leia
  Sintaxe:     Leia <variável>[,<variável>,...];
                  ou Leia(<variável>[,<variável>,...]);

  Exemplos:
  Leia salario;   {obtém valor digitado e armazena
    na variável salário}
  Lea nome;
  Leia nota1,nota2;


                       Algoritmos e Ling.de Programação
    Prof. Mauro                  Pseudocódigo             10
Comando de saída de dados (Escreva)
  Usado para exibir ou retornar qualquer
  valor ou mensagem ao usuário:
    Mensagem de orientação
    Valor constante
    Valor armazenado em uma variável
                     Escreva <expressão>[,<expr.>,...];
  Sintaxe:        ou Escreva(<expressão>[,<expr.>,...]);
  Exemplos:                                            Exibe a frase “Olá Mundo!”
  Escreva “Olá Mundo!”;
                                                       Exibe o valor 12345
  Escreva 12345;
  Escreva media;                                 Exibe o valor da variável media

                        Algoritmos e Ling.de Programação
    Prof. Mauro                   Pseudocódigo                                  11
Exemplo de algoritmo 1
 Algoritmo que lê duas notas, calcula a
 média e mostra o resultado:
Algoritmo CalculaMedia                                 Nome do Algoritmo
Variáveis
   nota1, nota2, media: Real                           Declaração de
Início                                                 Variáveis
   Escreva “Digite a primeira nota”                    Mensagem de Orientação
   Leia nota1                                          Inserção da primeira nota
   Escreva “Digite a segunda nota”                     Mensagem de Orientação
   Leia nota2                                           Inserção da segunda nota
   media ← (nota1 + nota2)/2                           Cálculo da média e atribuição
   Escreva media                                       do resultado à variável media
Fim                                                    Exibição do resultado


                    Algoritmos e Ling.de Programação
    Prof. Mauro               Pseudocódigo                                    12
Exemplo de algoritmo 2
 Um algoritmo que lê o salário de uma pessoa,
 calcula e mostra o valor do novo salário após
 um aumento de 10%.
   Inicialmente, devemos identificar os dados de entrada.
        Neste caso, a entrada consiste no valor do salário.
   Em seguida, identificamos a saída.
        Para este problema, a saída é o novo salário.
   O processamento necessário para transformar a entrada
   na saída é dado pelo cálculo do reajuste (10% do salário)
   e, em seguida, pelo acréscimo desse valor ao salário.
        Reajuste = salário * 0.10
        Novo salário = salário + Reajuste

                        Algoritmos e Ling.de Programação
   Prof. Mauro                    Pseudocódigo                13
Exemplo de algoritmo 2
        Algoritmo NovoSalario
        Variáveis
           salario, reajuste, novosalario: Real
        Início
           Escreva “Digite o valor do salario”
           Leia salario
           reajuste ← salario * 0.10
           novosalario ← salario + reajuste
           Escreva novosalario
        Fim

  O processamento poderia ser expresso de maneira simplificada
                     através da fórmula:
    novosalario ← salario + salario * 0.10, ou ainda
             novosalario ← salario * 1.10

                       Algoritmos e Ling.de Programação
    Prof. Mauro                  Pseudocódigo                    14
Teste de algoritmos
 Testar ou “depurar” um programa ou
 algoritmo consiste em analisar os
 resultados do programa gradativamente,
 linha por linha, em busca de possíveis
 erros
 Para isso os ambientes de desenvolvimento
 oferecem uma ferramenta chamada
 “debugger”
 Manualmente, dispomos do teste de mesa
 ou tabela de teste
                 Algoritmos e Ling.de Programação
   Prof. Mauro             Pseudocódigo             15
Teste de mesa ou tabela de teste
 É uma tabela onde temos:
   Uma coluna para o número da linha do algoritmo
   Uma coluna para cada variável (de entrada e saída) do
   algoritmo
   Uma coluna para comentários
 A cada linha do algoritmo, preenchemos a tabela
 com o valor das variáveis e comentário do
 ocorrido
 É útil para analisar o funcionamento de um
 algoritmo pequeno ou fragmento de um
 algoritmo maior

                  Algoritmos e Ling.de Programação
   Prof. Mauro              Pseudocódigo              16
Teste de mesa ou tabela de teste
    Tabela de teste para uma possível execução do algoritmo
    da média de duas notas
Lin   nota1 nota2       media Comentário
1        ?          ?    ?         Solicita que usuário digite nota1
2        ?          ?    ?         Aguarda usuário digitar nota1
3        8          ?    ?         Solicita que usuário digite nota2
4        8          ?    ?         Aguarda usuário digitar nota2
5        8          7    7.5       Calcula a média
6        8          7    7.5       Mostra a média




                          Algoritmos e Ling.de Programação
      Prof. Mauro                   Pseudocódigo                       17
Exercícios de fixação
  Qual a estrutura (formato) básica de um
  pseudocódigo?
  Em que parte do pseudocódigo declaramos
  as variáveis?
  Em que parte do pseudocódigo colocamos
  os comandos?
  Em que consiste o teste de algoritmos?


                 Algoritmos e Ling.de Programação
   Prof. Mauro             Pseudocódigo             18
Exercícios de aplicação
 Usando pseudocódigo, faça algoritmos
 para resolver os seguintes problemas:
   Calcular a área de um retângulo
   Armazenar dois números em variáveis e trocar
   os valores das variáveis
   Calcular as raízes de uma equação do segundo
   grau
   Calcular o custo estimado com combustível em
   uma viagem de carro

                 Algoritmos e Ling.de Programação
   Prof. Mauro             Pseudocódigo             19
Algoritmos e Ling.de Programação
Prof. Mauro             Pseudocódigo             20
Estruturas condicionais
 São estruturas que permitem a tomada de decisões
 em função de condições estabelecidas e assim, o
 algoritmo apresenta ações alternativas.
 A classificação das estruturas de seleção é feita de
 acordo com o número de condições que devem ser
 testadas para que se decida qual o caminho a ser
 seguido. Segundo esta classificação, têm-se dois
 tipos de estruturas de decisão:
   se
   escolha

                  Algoritmos e Ling.de Programação
   Prof. Mauro              Pseudocódigo                21
Estrutura SE
 São estruturas de controle de fluxo, que
 executam um ou vários comandos se a
 condição testada for verdadeira e, em alguns
 casos, executam um ou vários comandos se
 for falsa.
 Podem ser:
   Simples
   Compostas


                 Algoritmos e Ling.de Programação
   Prof. Mauro             Pseudocódigo             22
Estrutura SE simples
 Um bloco de instruções será executado
 somente se uma condição for verdadeira.
 Caso contrário, o fluxo de execução segue
 para depois do bloco (ou após o FimSe)
 Formato: Se <condição> então
                    <bloco de comandos>
                 FimSe

   <condição> pode ser uma variável booleana,
   uma constante (V ou F) ou uma expressão de
   valor lógico
                   Algoritmos e Ling.de Programação
   Prof. Mauro               Pseudocódigo             23
Estrutura SE simples – exemplo 1
  Algoritmo para solicitar um número e verificar se
  o número digitado é maior que 10

     Algoritmo MaiorQue10
     Variáveis
        num: Real
     Início
        Escreva(“Digite um número”)
        Leia(num)
        Se num>10 então
            Escreva(“O número é maior que 10.”)
        FimSe
        Escreva(“Fim do algoritmo”)
     Fim


                    Algoritmos e Ling.de Programação
    Prof. Mauro               Pseudocódigo             24
Estrutura SE simples – exemplo 2
  Algoritmo CalculaMedia alterado para mostrar se aluno está
  aprovado, sendo que a média para aprovação é 7
    Algoritmo CalculaMedia
    Variáveis
       nota1, nota2, media: Real
    Início
       Escreva(“Digite a primeira nota”)
       Leia(nota1)
       Escreva(“Digite a segunda nota”)
       Leia(nota2)
       media ← (nota1 + nota2)/2
       Escreva(“Sua média é: “,media)
       Se media>=7 então
          Escreva(“Você está aprovado”)
       FimSe
    Fim
                        Algoritmos e Ling.de Programação
     Prof. Mauro                  Pseudocódigo                 25
Estrutura SE composta
 Se a condição for verdadeira, o bloco de
 comandos 1 será executado. Caso contrário, o
 bloco de comandos 2 será executado.
 Formato: Se <condição> então
                    <bloco de comandos 1>
                 Senão
                    <bloco de comandos 2>
                 FimSe

   <condição> pode ser uma variável booleana, uma
   constante (V ou F) ou uma expressão de valor lógico

                    Algoritmos e Ling.de Programação
   Prof. Mauro                Pseudocódigo               26
Estrutura SE composta – exemplo 1
 Algoritmo para solicitar um número e verificar se
 o número digitado é maior que 10
    Algoritmo MaiorQue10
    Variáveis
       num: Real
    Início
       Escreva(“Digite um número”)
       Leia(num)
       Se num>10 então
           Escreva(“O número é maior que 10.”)
       senão
           Escreva(“O número é menor ou igual a 10”)
       FimSe
       Escreva(“Fim do algoritmo”)
    Fim

                   Algoritmos e Ling.de Programação
   Prof. Mauro               Pseudocódigo              27
Estrutura SE composta – exemplo 2
 Algoritmo CalculaMedia alterado para mostrar se aluno está
 aprovado, sendo que a média para aprovação é 7
    Algoritmo CalculaMedia
    Variáveis
       nota1, nota2, media: Real
    Início
       Escreva(“Digite a primeira nota”)
       Leia(nota1)
       Escreva(“Digite a segunda nota”)
       Leia(nota2)
       media ← (nota1 + nota2)/2
       Escreva(“Sua média é: “,media)
       Se media>=7 então
          Escreva(“Você está aprovado”)
       senão
          Escreva(“Você está de recuperação”)
       FimSe
    Fim             Algoritmos e Ling.de Programação
    Prof. Mauro              Pseudocódigo                     28
Estruturas SE encadeadas
 É quando o bloco de instruções subordinado ao
 comando se/senão contém outros comandos
 se/senão (quando temos mais de 2 situações):
                 Se <condição 1> então
                    <bloco de comandos              1>
                 Senão se <condição 2>              entao
                    <bloco de comandos              2>
                 Senão se <condição 3>              entao
                    <bloco de comandos              3>
                 ...
                 Senão se <condição N>              entao
                    <bloco de comandos              N>
                 FimSe
                         Algoritmos e Ling.de Programação
   Prof. Mauro                     Pseudocódigo             29
Estruturas SE encadeadas - exemplo
  Algoritmo CalculaMedia alterado para tratar mais uma regra: se a
  média for menor que 3, o aluno já estará reprovado, sem direito à
  recuperação
       Algoritmo CalculaMedia
       Variáveis
          nota1, nota2, media: Real
       Início
          Escreva(“Digite a primeira nota”)
          Leia(nota1)
          Escreva(“Digite a segunda nota”)
          Leia(nota2)
          media ← (nota1 + nota2)/2
          Escreva(“Sua média é: “,media)
          Se media>=7 então
             Escreva(“Você está aprovado”)
          senão se media<3 então
             Escreva(“Você está reprovado”)
          senão
             Escreva(“Você está de recuperação”)
          FimSe
       Fim
                          Algoritmos e Ling.de Programação
     Prof. Mauro                    Pseudocódigo                      30
Estrutura ESCOLHA
 Estrutura de decisão por igualdade, onde temos:
   uma variável a ser testada (variável de escolha)
   um ou mais valores constantes a serem comparados
   com a variável, com um bloco de comandos associado
   a cada um
 Também é chamada de estrutura CASO
 É similar a estruturas SE encadeadas, mas as
 comparações são só por igualdade
 São úteis em menus ou situações onde as
 decisões estão centradas em apenas uma
 variável e valores pré-fixados

                 Algoritmos e Ling.de Programação
   Prof. Mauro             Pseudocódigo             31
Estrutura ESCOLHA
  Sintaxe:
           Escolha <variável>
             caso <val.constante 1>:
               <bloco de comandos 1>
             caso <val.constante 2>:
               <bloco de comandos 2>
             ...
             caso <val.constante n>:
               <bloco de comandos n>
             outrocaso
               <bloco de comandos alternativo>
           FimEscolha

 <variável> será comparada com o valor constante de cada “caso”
 Será executado somente o bloco de comandos abaixo do “caso” onde
 houver igualdade entre a variável e o valor constante


                         Algoritmos e Ling.de Programação
     Prof. Mauro                   Pseudocódigo                 32
Estrutura ESCOLHA - exemplo
   Algoritmo MenuCalculo
   Variáveis
      num1, num2, opcao: Real
   Início
      Escreva(“1-Soma”)
      Escreva(“2-Subtração”)
      Escreva(“3-Multiplicação”)
      Escreva(“Digite a sua opção:”)
      Leia(opcao)
      Escreva(“Digite o primeira numero: ”)
      Leia(num1)
      Escreva(“Digite o segunda número: ”)
      Leia(num2)
      Escolha opcao
      caso 1
         Escreva(“Soma=“,num1+num2)
      caso 2
         Escreva(“Subtração=“,num1-num2)
      caso 3
         Escreva(“Multiplicação=“,num1*num2)
      outrocaso
         Escreva(“Opção inválida”)
      FimEscolha
   Fim                  Algoritmos e Ling.de Programação
   Prof. Mauro                      Pseudocódigo           33
Exercícios
  Faça um algoritmo que leia um número inteiro
  diferente de zero e diga se este é positivo ou
  negativo
  Altere o algoritmo anterior para dizer também se
  o número é igual a zero (use se encadeados)
  Faça uma algoritmo que leia três valores que
  representam os três lados de um triângulo e
  verifique:
    se o triângulo é válido
    Se é um triângulo equilátero, isósceles ou escaleno

                    Algoritmos e Ling.de Programação
    Prof. Mauro               Pseudocódigo                34
Exercícios
  Propriedades de um triângulo:
    A soma de dois lados não pode ser menor que
    a do terceiro lado (ou o comprimento de cada
    lado deve ser menor que a soma dos outros
    dois lados)
    Equilátero: três lados iguais
    Isósceles: dois lados iguais
    Escaleno: três lados diferentes


                  Algoritmos e Ling.de Programação
    Prof. Mauro             Pseudocódigo             35
Algoritmos e Ling.de Programação
Prof. Mauro             Pseudocódigo             36
Estruturas de repetição
 Permitem a repetição de um bloco de
 instruções por um número vezes pré-
 determinado ou até a satisfação de uma
 condição
 Também são chamados de loops (laços)
 Tipos de estruturas:
   Repetição contada (estrutura para)
   Repetição condicional
        Com teste no início (estrutura enquanto)
        Com teste no final (estrutura repita)
                     Algoritmos e Ling.de Programação
   Prof. Mauro                 Pseudocódigo             37
Estruturas de repetição
 “Laço sem fim” ou deadLock: é quando
 uma estrutura de repetição fica
 executando interminavelmente
   As estruturas de repetição devem sempre ter
   um fim, ou seja, devem ter um limite pré-
   definido de repetições ou alguma condição que
   faça a repetição parar, caso contrário teremos
   um loop sem fim ou deadlock
   É uma das causas dos “travamentos” de
   software (mensagem “Este programa não está
   respondendo”)
                 Algoritmos e Ling.de Programação
   Prof. Mauro             Pseudocódigo             38
Estrutura de repetição contada
  É utilizada quando conhecemos
  previamente a quantidade de vezes que
  queremos executar o bloco de comandos
    A quantidade de vezes pode ser um valor
    constante ou informado pelo usuário
  É representada pelo comando PARA




                 Algoritmos e Ling.de Programação
   Prof. Mauro             Pseudocódigo             39
Comando Para (repetição contada)
     Sintaxe:
Para <variável> de <valor inicial> até <valor final> [passo <incremento>] faça
   <bloco de comandos>
FimPara



     Descrição:
         <variável>: nome de uma variável do tipo inteiro
         <valor inicial>: é o valor inicial que será atribuído à variável
         <valor final>: quando a variável for maior ou igual ao valor final,
         a repetição termina
         <incremento> é o valor que será incrementado à variável a cada
         repetição (ao final do bloco de comandos). É opcional; se não for
         informado, é assumido incremento 1.

                              Algoritmos e Ling.de Programação
         Prof. Mauro                    Pseudocódigo                        40
Comando Para (exemplo 1)
 Algoritmo que lista os dez primeiros
 números inteiros positivos
  Algoritmo DezPrimeiros                          A variável i fará o controle da
  Variáveis                                       repetição, seu valor inicia com
     i: Inteiro                                   1 e para cada execução do
                                                  bloco seu valor aumenta em 1
  Início                                          unidade.
     Para i de 1 até 10 faça
        Escreval(i)
     FimPara                                    Para cada repetição, basta
  Fim                                           mostrar o valor de i, uma vez
                                                que este valor variará de 1 até
                                                10.




                    Algoritmos e Ling.de Programação
   Prof. Mauro                Pseudocódigo                                          41
Comando Para (exemplo 2)
 Algoritmo que lista os números inteiros pares
 menores ou iguais a um número informado pelo
 usuário
     Algoritmo NumerosPares
     Variáveis
        i,limite: Inteiro
     Início
        Escreva(“Listar números pares até: “)
        Leia(limite)
        Para i de 2 ate limite passo 2 faca
           Escreval(i)
        FimPara
     Fim


                    Algoritmos e Ling.de Programação
   Prof. Mauro                Pseudocódigo             42
Estruturas de repetição condicional
  São usadas quando não sabemos previamente a
  quantidade exata de vezes que queremos
  executar o bloco de comandos
    A quantidade de repetições depende de uma condição
    (expressão lógica) controlada internamente
  Existem duas estruturas de repetição condicional:
    Com teste no início (estrutura enquanto...faça)
    Com teste no final (estrutura repita...até)




                    Algoritmos e Ling.de Programação
    Prof. Mauro               Pseudocódigo             43
Características da repetição condicional
  As estruturas de repetição condicional
  caracterizam-se por conter dois blocos de
  comandos importantes:
    PREPARO: um ou mais comandos que afetam
    a condição para entrar no bloco de repetição
    ou que preparam variáveis que serão usadas
    dentro da bloco de comandos
    CONTROLE: um ou mais comandos que
    afetam a condição para finalizar a repetição

                  Algoritmos e Ling.de Programação
    Prof. Mauro             Pseudocódigo             44
Estrutura Enquanto...faça
 Sintaxe:
    Enquanto <expressão lógica> faca
        <bloco de comandos>
    FimEnquanto
 Uso: repete o bloco de comandos enquanto uma
 determinada condição (especificada através da expressão
 lógica) for satisfeita.
 A <expressão lógica> é verificada logo na entrada e a
 cada repetição. Se for falsa, a execução continua logo
 após o FimEnquanto
 O FimEnquanto marca o final do bloco de comandos a ser
 repetido e causa o retorno ao comando Enquanto

                   Algoritmos e Ling.de Programação
   Prof. Mauro               Pseudocódigo             45
Estrutura Enquanto (exemplo 1)
  Algoritmo para contar de 1 a 10, listando
  os números na tela
                                                      PREPARO: A variável i fará o
 algoritmo “Conta com enquanto”                       controle da repetição e inicia a
 var i: inteiro                                       contagem, portanto devemos
 Inicio                                               inicializá-la com o valor 1
   i <- 1
   enquanto i <= 10 faca
      escreval(i)                                     CONTROLE: dentro do laço
                                                      deve haver um comando que
      i <- i + 1                                      afete a expressão lógica. Aqui
   fimenquanto                                        incrementamos a variável i, de
 fimalgoritmo                                         modo que quando ela for
                                                      maior que 10 a repetição irá
                                                      parar


                   Algoritmos e Ling.de Programação
    Prof. Mauro              Pseudocódigo                                           46
Estrutura Enquanto (exemplo 2)
   Algoritmo para somar números digitados pelo
   usuário, enquanto não for digitado zero
algoritmo “Soma”                                            PREPARO: Aqui inicializamos
var n,soma: real                                            a variável com um valor maior
                                                            que zero, para entrar no laço e
Inicio
                                                            zeramos a variável soma que
  n <- 0
                                                            irá guardar a soma
  soma <- 0
  enquanto n<>0 faca
    escreva(“Digite um número (0=fim):”)                    CONTROLE: o próprio
    leia(n)                                                 número digitado pelo usuário
    soma <- soma + n                                        será usado como controle. Se
  fimenquanto                                               for digitado zero, a condição
  Escreva(“A soma dos numeros é: “,soma)                    ficará falsa e o laço irá parar
fimalgoritmo



                         Algoritmos e Ling.de Programação
       Prof. Mauro                 Pseudocódigo                                           47
Estrutura Repita...Até
  Sintaxe:
     Repita
         <bloco de comandos>
     Até <expressão lógica>

  Uso: repete o bloco de comandos até que determinada
  condição (especificada através da expressão lógica) seja
  satisfeita
  A <expressão lógica> é verificada ao final de cada
  repetição. Se for verdadeira, a execução continua logo
  após o Até
  O Até marca o final do bloco de comandos a ser repetido
  e causa o retorno ao comando repita, caso a expressão
  lógica seja falsa
                    Algoritmos e Ling.de Programação
    Prof. Mauro               Pseudocódigo               48
Estrutura Repita (exemplo 1)
  Algoritmo para contar de 1 a 10, listando
  os números na tela
                                                      PREPARO: A variável i fará o
 algoritmo “Contar com repita”                        controle da repetição e inicia a
 var i: inteiro                                       contagem, portanto devemos
 Inicio                                               inicializá-la com o valor 1
   i <- 1
   Repita
      escreval(i)                                     CONTROLE: Aqui
                                                      incrementamos a variável i, de
      i <- i + 1                                      modo que quando ela for maior
   até i>10                                           que 10 a repetição irá parar
 fimalgoritmo



                   Algoritmos e Ling.de Programação
    Prof. Mauro              Pseudocódigo                                           49
Estrutura Repita (exemplo 2)
   Algoritmo para somar números digitados pelo
   usuário, até que seja digitado zero
algoritmo “Soma”                                            PREPARO: Aqui apenas
var n,soma: real                                            zeramos a variável soma. Não
                                                            é necessário prepararmos a
Inicio
                                                            expressão lógica, visto que a
  soma <- 0
                                                            variável de controle será lida
  Repita                                                    dentro do laço
    escreva(“Digite um número (0=fim):”)
    leia(n)                                                 CONTROLE: o próprio
    soma <- soma + n                                        número digitado pelo usuário
  Ate n=0                                                   será usado como controle. Se
  Escreva(“A soma dos numeros é: “,soma)                    for digitado zero, a condição
fimalgoritmo                                                será verdadeira e o laço irá
                                                            parar



                         Algoritmos e Ling.de Programação
       Prof. Mauro                 Pseudocódigo                                          50
Estrutura Enquanto x Repita
 Estruturas tipo Enquanto:
    São úteis quando precisamos de teste desde a entrada
    no laço
    O bloco de comandos só será executado se a condição
    for verdadeira logo no início
    A repetição termina quando a expressão lógica for falsa
 Estruturas tipo Repita:
    São úteis quando não há necessidade de teste no início
    O bloco de comandos será executado sempre, pelo
    menos uma vez
    A repetição termina quando a expressão lógica for
    verdadeira

                    Algoritmos e Ling.de Programação
   Prof. Mauro                Pseudocódigo                51
Intervenções forçadas na repetição
  Apesar de não ser uma boa prática de
  programação, algumas linguagens oferecem
  comandos para a intervenção forçada (retorno ao
  início ou interrupção) nas estruturas de repetição
  retorno
    Retorno ao início (comando “volte”): faz com que
    a execução volte ao início do laço (comando enquanto
    ou repita)
    Interrupção (comando “interrompa”): faz com
    que a repetição pare (a execução continua no
    comando após o comando fimenquanto ou até)
  Geralmene esses comandos podem ser usados
  em qualquer estrutura (para, enqunto ou repita)

                   Algoritmos e Ling.de Programação
    Prof. Mauro              Pseudocódigo             52
Retorno ao início (comando “volte”)
  Sintaxe da Enquanto com comando de
  retorno ao início:
    Enquanto <expressão lógica> faca
       <bloco de comandos>
       se <condição> então
          volte
       fimse
       <Bloco de comandos>
    FimEnquanto

 O comando volte força a “próxima rodada” do laço: o fluxo
 de execução volta para o início do laço (comando Enquanto)
 Numa estrutura “para” a variável será incrementada
                        Algoritmos e Ling.de Programação
     Prof. Mauro                  Pseudocódigo                53
Interrupção forçada (comando “interrompa”)

   Sintaxe da Enquanto com comando de
   interrupção forçada:
     Enquanto <expressão lógica> faca
        <bloco de comandos>
        se <condição> então
           interrompa
        fimse
        <Bloco de comandos>
     FimEnquanto
     <comando>...

O comando interrompa faz com que a repetição termine e o fluxo de
execução continue no comando após o laço (após o FimEnquanto)
                         Algoritmos e Ling.de Programação
      Prof. Mauro                  Pseudocódigo                     54
Combinando estruturas
 Você pode combinar as estruturas estudadas
 (sequencial, condicional e repetição), uma dentro
 do bloco de comandos de outra
   Condicional dentro de condicional (estruturas se
   encadeadas) (já estudado)
   Condicional dentro de repetição
   Repetição dentro de uma condicional
   Repetição dentro de outra repetição (estruturas de
   repetição encadeadas)
   ..etc.
 Vejamos alguns exemplos a seguir...

                  Algoritmos e Ling.de Programação
   Prof. Mauro              Pseudocódigo                55
Condicional dentro de repetição
 Ex: listar os números de 1 a 100, destacando os
 múltiplos de 10
 Algoritmo “0 a 100 destacando pares”
                                                          Estrutura PARA contando de
 Variáveis
                                                          1 a 100
     i: Inteiro
 Início
     Para i de 1 ate 100 faca
        Escreva(i)                                         Testa se o número é divisível
        se i mod 10 = 0 entao                              por 10 (resto da divisão por 10
           escreval(“ (múltiplo de 10)”)                   é zero)
        senao
           escreval(“”)
        fimse
     FimPara
 Fim



                       Algoritmos e Ling.de Programação
    Prof. Mauro                  Pseudocódigo                                       56
Estruturas de repetição encadeadas
  Ex: imprimir a tabuada de multiplicar de 1 até 10

 Algoritmo “tabuada de multiplicar”
                                                          Laço dos multiplicandos (n1
 Variáveis
                                                          varia de 1 até 10)
     n1,n2: Inteiro
 Início
     Para n1 de 1 ate 10 faca
        Escreva(“Tabuada de “,n1)                          Laço dos multiplicadores (n2
        Para n2 de 1 ate 10 faca                           varia de 1 até 10)
          escreval(n1,” x “,n2,” = “,n1*n2)
        FimPara
        escreval(“--------------”)
     FimPara
 Fim




                       Algoritmos e Ling.de Programação
    Prof. Mauro                  Pseudocódigo                                      57
Cuidados ao combinar estruturas
 Ao combinar estruturas, você nunca deve
 “cruzar” uma estrutura com outra:
                 Para i de 1 ate 100 faca
                    Escreva(i)
                    se i mod 10 = 0 entao
                       escreval(“ (múltiplo de 10)”)
                 FimPara
                    fimse


                  Enquanto i<100
                     Escreva(i)
                     se i mod 10 = 0 entao
                        escreval(“ (múltiplo de 10)”)
                  FimEnquanto
                     fimse

                          Algoritmos e Ling.de Programação
   Prof. Mauro                      Pseudocódigo             58
Cuidados ao combinar estruturas
 Quando combinadas, elas devem sempre
 estar contidas uma dentro da outra:
                 Para .....
                    Enquanto
                       Repita
                          Escreva(i)
                          se .... entao
                              <comandos>
                          senao
                              <comandos>
                          fimse
                       Ate <condição>
                    FimEnquanto
                 FimPara



                           Algoritmos e Ling.de Programação
   Prof. Mauro                       Pseudocódigo             59
Exercícios – faça algoritmos para:
  Multiplicar dois números usando somas
  repetidas
  Solicitar uma quantidade pré-determinada
  de números e calcular a soma e média
  entre esses números
  Calcular a soma dos números ímpares
  entre um intervalo informado
  Calcular o fatorial de um número

                 Algoritmos e Ling.de Programação
   Prof. Mauro             Pseudocódigo             60
Exercício-desafio:
   Solicitar os nomes e notas dos alunos de uma turma, mostrar o nome
   e nota dos alunos com a maior e menor nota e calcular a média entre
   as notas da turma. O fim da turma será indicado quando o usuário
   digitar “FIM” para o nome do aluno
   Melhorar o algoritmo acima para efetuar os mesmos cálculos para
   todas as turmas de uma escola, mostrando também a maior e menor
   nota da escola e a nota média da escola
   Listar os números primos entre dois números informados pelo usuário.
   Dicas:
       Número primo é o número que só é divisível por ele mesmo e por
       1.
       Para saber se um número é primo você precisará usar um laço e
       testar, com a função MOD, se ele é divisível por todos os números
       menores que ele
   Listar os números da série de Fibonacci de 1 até um número
   informado pelo usuário. Dica:
       A séria de Fibonacci é uma lista de números cujos dois primeiros
       númereos são iguais a 1 e cada número seguinte é igual à soma
       dos dois números anteriores: 1, 1, 2, 3, 5, 8, ..
                        Algoritmos e Ling.de Programação
    Prof. Mauro                   Pseudocódigo                       61

Mais conteúdo relacionado

Mais procurados

Introdução a Linguagem de Programação C
Introdução a Linguagem de Programação CIntrodução a Linguagem de Programação C
Introdução a Linguagem de Programação CGercélia Ramos
 
Material de Apoio de Algoritmo e Lógica de Programação
Material de Apoio de Algoritmo e Lógica de ProgramaçãoMaterial de Apoio de Algoritmo e Lógica de Programação
Material de Apoio de Algoritmo e Lógica de Programaçãorodfernandes
 
Pseudocódigo - Estrutura de Repetição (Lógica de Programação)
Pseudocódigo - Estrutura de Repetição (Lógica de Programação)Pseudocódigo - Estrutura de Repetição (Lógica de Programação)
Pseudocódigo - Estrutura de Repetição (Lógica de Programação)Gercélia Ramos
 
Introdução - Arquitetura e Organização de Computadores
Introdução - Arquitetura e Organização de ComputadoresIntrodução - Arquitetura e Organização de Computadores
Introdução - Arquitetura e Organização de ComputadoresWellington Oliveira
 
Lógica de programação em ppt
Lógica de programação em pptLógica de programação em ppt
Lógica de programação em pptAndrei Bastos
 
Introdução a Algoritmos: Conceitos Básicos
Introdução a Algoritmos: Conceitos BásicosIntrodução a Algoritmos: Conceitos Básicos
Introdução a Algoritmos: Conceitos BásicosElaine Cecília Gatto
 
Lista de exercicios algoritmos com pseudocodigo
Lista de exercicios   algoritmos com pseudocodigoLista de exercicios   algoritmos com pseudocodigo
Lista de exercicios algoritmos com pseudocodigoMauro Pereira
 
Lógica de Programação - Algoritmos
Lógica de Programação - AlgoritmosLógica de Programação - Algoritmos
Lógica de Programação - AlgoritmosRoney Sousa
 
Hierarquia de memória
Hierarquia de memóriaHierarquia de memória
Hierarquia de memóriaPAULO Moreira
 
Introdução à Programação
Introdução à ProgramaçãoIntrodução à Programação
Introdução à ProgramaçãoMario Sergio
 
Lista de exercícios resolvidos
Lista de exercícios resolvidosLista de exercícios resolvidos
Lista de exercícios resolvidosCrishna Irion
 
Exercicios resolvidos visuAlg
Exercicios resolvidos visuAlgExercicios resolvidos visuAlg
Exercicios resolvidos visuAlgWillians Miyabara
 
Fluxograma (Lógica de Programação)
Fluxograma (Lógica de Programação)Fluxograma (Lógica de Programação)
Fluxograma (Lógica de Programação)Gercélia Ramos
 
Algoritmos e lp parte 4-vetores matrizes e registros
Algoritmos e lp parte 4-vetores matrizes e registrosAlgoritmos e lp parte 4-vetores matrizes e registros
Algoritmos e lp parte 4-vetores matrizes e registrosMauro Pereira
 
Lista de exercícios em portugol
Lista de exercícios em portugolLista de exercícios em portugol
Lista de exercícios em portugolGabriel Faustino
 

Mais procurados (20)

Introdução a Linguagem de Programação C
Introdução a Linguagem de Programação CIntrodução a Linguagem de Programação C
Introdução a Linguagem de Programação C
 
Material de Apoio de Algoritmo e Lógica de Programação
Material de Apoio de Algoritmo e Lógica de ProgramaçãoMaterial de Apoio de Algoritmo e Lógica de Programação
Material de Apoio de Algoritmo e Lógica de Programação
 
Pseudocódigo - Estrutura de Repetição (Lógica de Programação)
Pseudocódigo - Estrutura de Repetição (Lógica de Programação)Pseudocódigo - Estrutura de Repetição (Lógica de Programação)
Pseudocódigo - Estrutura de Repetição (Lógica de Programação)
 
Introdução - Arquitetura e Organização de Computadores
Introdução - Arquitetura e Organização de ComputadoresIntrodução - Arquitetura e Organização de Computadores
Introdução - Arquitetura e Organização de Computadores
 
Lógica de programação em ppt
Lógica de programação em pptLógica de programação em ppt
Lógica de programação em ppt
 
Algoritmo - tipos de dados
Algoritmo - tipos de dadosAlgoritmo - tipos de dados
Algoritmo - tipos de dados
 
Introdução a Algoritmos: Conceitos Básicos
Introdução a Algoritmos: Conceitos BásicosIntrodução a Algoritmos: Conceitos Básicos
Introdução a Algoritmos: Conceitos Básicos
 
Lista de exercicios algoritmos com pseudocodigo
Lista de exercicios   algoritmos com pseudocodigoLista de exercicios   algoritmos com pseudocodigo
Lista de exercicios algoritmos com pseudocodigo
 
Java modulo 01 - Introdução
Java modulo 01 - IntroduçãoJava modulo 01 - Introdução
Java modulo 01 - Introdução
 
Lógica de Programação - Algoritmos
Lógica de Programação - AlgoritmosLógica de Programação - Algoritmos
Lógica de Programação - Algoritmos
 
Hierarquia de memória
Hierarquia de memóriaHierarquia de memória
Hierarquia de memória
 
Introdução à Programação
Introdução à ProgramaçãoIntrodução à Programação
Introdução à Programação
 
Lista de exercícios resolvidos
Lista de exercícios resolvidosLista de exercícios resolvidos
Lista de exercícios resolvidos
 
Exercicios resolvidos visuAlg
Exercicios resolvidos visuAlgExercicios resolvidos visuAlg
Exercicios resolvidos visuAlg
 
Fluxograma (Lógica de Programação)
Fluxograma (Lógica de Programação)Fluxograma (Lógica de Programação)
Fluxograma (Lógica de Programação)
 
Algoritmo aula 01-f
Algoritmo   aula 01-fAlgoritmo   aula 01-f
Algoritmo aula 01-f
 
Manual de portugol
Manual de portugolManual de portugol
Manual de portugol
 
Algoritmos e lp parte 4-vetores matrizes e registros
Algoritmos e lp parte 4-vetores matrizes e registrosAlgoritmos e lp parte 4-vetores matrizes e registros
Algoritmos e lp parte 4-vetores matrizes e registros
 
Visualg
VisualgVisualg
Visualg
 
Lista de exercícios em portugol
Lista de exercícios em portugolLista de exercícios em portugol
Lista de exercícios em portugol
 

Semelhante a Algoritmos Pseudocódigo

mod1-algoritmia
mod1-algoritmiamod1-algoritmia
mod1-algoritmiadiogoa21
 
Algoritmos e Lógica de Programação
Algoritmos e Lógica de ProgramaçãoAlgoritmos e Lógica de Programação
Algoritmos e Lógica de ProgramaçãoJose Augusto Cintra
 
Algoritmos - Aula 02 - Construcao de algoritmos
Algoritmos - Aula 02 - Construcao de algoritmosAlgoritmos - Aula 02 - Construcao de algoritmos
Algoritmos - Aula 02 - Construcao de algoritmosRodrigo Kiyoshi Saito
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmosjormad
 
Lógica de programação 1
Lógica de programação 1Lógica de programação 1
Lógica de programação 1Diego Rodrigues
 
Aula 01 Logica de Programacao - Logica Matematica 1.pdf
Aula 01 Logica de Programacao - Logica Matematica 1.pdfAula 01 Logica de Programacao - Logica Matematica 1.pdf
Aula 01 Logica de Programacao - Logica Matematica 1.pdfEizoKato
 
Aula 01 Logica de Programacao - Logica Matematica 1.pdf
Aula 01 Logica de Programacao - Logica Matematica 1.pdfAula 01 Logica de Programacao - Logica Matematica 1.pdf
Aula 01 Logica de Programacao - Logica Matematica 1.pdfEizoKato
 
Conceitos e técnicas de programação aula 2
Conceitos e técnicas de programação aula 2Conceitos e técnicas de programação aula 2
Conceitos e técnicas de programação aula 2Robson Ferreira
 
2.0_Programacao_PRG29002_-_Pseudocódigo.pdf
2.0_Programacao_PRG29002_-_Pseudocódigo.pdf2.0_Programacao_PRG29002_-_Pseudocódigo.pdf
2.0_Programacao_PRG29002_-_Pseudocódigo.pdfJustinoFontes
 
Introdução à programação
Introdução à programaçãoIntrodução à programação
Introdução à programação12anogolega
 
Algoritmo estruturado
Algoritmo estruturadoAlgoritmo estruturado
Algoritmo estruturadodasko
 
53297189 apostila-algoritmo-e-logica-i
53297189 apostila-algoritmo-e-logica-i53297189 apostila-algoritmo-e-logica-i
53297189 apostila-algoritmo-e-logica-iEdvan Mateó
 
3 e 4_-_comandos_de_leitura_e_escrita_identacao
3 e 4_-_comandos_de_leitura_e_escrita_identacao3 e 4_-_comandos_de_leitura_e_escrita_identacao
3 e 4_-_comandos_de_leitura_e_escrita_identacaoDisys do Brasil
 
Lógica parte 2 - Algoritmos
Lógica   parte 2 - AlgoritmosLógica   parte 2 - Algoritmos
Lógica parte 2 - AlgoritmosWallison Parreira
 
Aula02_Vars_Ident_Ent_Saida_Algoritmos.pptx
Aula02_Vars_Ident_Ent_Saida_Algoritmos.pptxAula02_Vars_Ident_Ent_Saida_Algoritmos.pptx
Aula02_Vars_Ident_Ent_Saida_Algoritmos.pptxaronoliveira3
 
Algoritmos computacionais
Algoritmos computacionaisAlgoritmos computacionais
Algoritmos computacionaisDérick Platini
 
Alg aula 03 - construcao algoritmos2 tp1
Alg   aula 03 - construcao algoritmos2 tp1Alg   aula 03 - construcao algoritmos2 tp1
Alg aula 03 - construcao algoritmos2 tp1Thalles Anderson
 

Semelhante a Algoritmos Pseudocódigo (20)

mod1-algoritmia
mod1-algoritmiamod1-algoritmia
mod1-algoritmia
 
Algoritmos e Lógica de Programação
Algoritmos e Lógica de ProgramaçãoAlgoritmos e Lógica de Programação
Algoritmos e Lógica de Programação
 
Aula02
Aula02Aula02
Aula02
 
Algoritmos - Aula 02 - Construcao de algoritmos
Algoritmos - Aula 02 - Construcao de algoritmosAlgoritmos - Aula 02 - Construcao de algoritmos
Algoritmos - Aula 02 - Construcao de algoritmos
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Lógica de programação 1
Lógica de programação 1Lógica de programação 1
Lógica de programação 1
 
Aula 01 Logica de Programacao - Logica Matematica 1.pdf
Aula 01 Logica de Programacao - Logica Matematica 1.pdfAula 01 Logica de Programacao - Logica Matematica 1.pdf
Aula 01 Logica de Programacao - Logica Matematica 1.pdf
 
Aula 01 Logica de Programacao - Logica Matematica 1.pdf
Aula 01 Logica de Programacao - Logica Matematica 1.pdfAula 01 Logica de Programacao - Logica Matematica 1.pdf
Aula 01 Logica de Programacao - Logica Matematica 1.pdf
 
Conceitos e técnicas de programação aula 2
Conceitos e técnicas de programação aula 2Conceitos e técnicas de programação aula 2
Conceitos e técnicas de programação aula 2
 
2.0_Programacao_PRG29002_-_Pseudocódigo.pdf
2.0_Programacao_PRG29002_-_Pseudocódigo.pdf2.0_Programacao_PRG29002_-_Pseudocódigo.pdf
2.0_Programacao_PRG29002_-_Pseudocódigo.pdf
 
Introdução à programação
Introdução à programaçãoIntrodução à programação
Introdução à programação
 
Algoritmo estruturado
Algoritmo estruturadoAlgoritmo estruturado
Algoritmo estruturado
 
53297189 apostila-algoritmo-e-logica-i
53297189 apostila-algoritmo-e-logica-i53297189 apostila-algoritmo-e-logica-i
53297189 apostila-algoritmo-e-logica-i
 
3 e 4_-_comandos_de_leitura_e_escrita_identacao
3 e 4_-_comandos_de_leitura_e_escrita_identacao3 e 4_-_comandos_de_leitura_e_escrita_identacao
3 e 4_-_comandos_de_leitura_e_escrita_identacao
 
FC-Logic
FC-LogicFC-Logic
FC-Logic
 
Lógica parte 2 - Algoritmos
Lógica   parte 2 - AlgoritmosLógica   parte 2 - Algoritmos
Lógica parte 2 - Algoritmos
 
Aula02_Vars_Ident_Ent_Saida_Algoritmos.pptx
Aula02_Vars_Ident_Ent_Saida_Algoritmos.pptxAula02_Vars_Ident_Ent_Saida_Algoritmos.pptx
Aula02_Vars_Ident_Ent_Saida_Algoritmos.pptx
 
Algoritmos - Pascal
Algoritmos - PascalAlgoritmos - Pascal
Algoritmos - Pascal
 
Algoritmos computacionais
Algoritmos computacionaisAlgoritmos computacionais
Algoritmos computacionais
 
Alg aula 03 - construcao algoritmos2 tp1
Alg   aula 03 - construcao algoritmos2 tp1Alg   aula 03 - construcao algoritmos2 tp1
Alg aula 03 - construcao algoritmos2 tp1
 

Mais de Mauro Pereira

Programação Web - CSS
Programação Web - CSSProgramação Web - CSS
Programação Web - CSSMauro Pereira
 
Redes 7 ferramentas para montagem de redes
Redes 7 ferramentas para montagem de redesRedes 7 ferramentas para montagem de redes
Redes 7 ferramentas para montagem de redesMauro Pereira
 
Exercicio introducao a arquitetura de computadores
Exercicio    introducao a arquitetura de computadoresExercicio    introducao a arquitetura de computadores
Exercicio introducao a arquitetura de computadoresMauro Pereira
 
Introdução à Arquitetura de Computadores
Introdução à Arquitetura de ComputadoresIntrodução à Arquitetura de Computadores
Introdução à Arquitetura de ComputadoresMauro Pereira
 
Sistemas de Numeracao
Sistemas de NumeracaoSistemas de Numeracao
Sistemas de NumeracaoMauro Pereira
 
Lógica binária, potas lógicas e circuitos lógicos
Lógica binária, potas lógicas e circuitos lógicosLógica binária, potas lógicas e circuitos lógicos
Lógica binária, potas lógicas e circuitos lógicosMauro Pereira
 
Trabalho para nota da etapa 2 2017.1
Trabalho para nota da etapa 2 2017.1Trabalho para nota da etapa 2 2017.1
Trabalho para nota da etapa 2 2017.1Mauro Pereira
 
Redes 6 equipamentos ativos da rede
Redes 6 equipamentos ativos da redeRedes 6 equipamentos ativos da rede
Redes 6 equipamentos ativos da redeMauro Pereira
 
Redes 4 endereçamento
Redes 4 endereçamentoRedes 4 endereçamento
Redes 4 endereçamentoMauro Pereira
 
Redes 2 padronização e arquitetura de redes
Redes 2 padronização e arquitetura de redesRedes 2 padronização e arquitetura de redes
Redes 2 padronização e arquitetura de redesMauro Pereira
 
Redes 1 introducao historico conceitos
Redes 1 introducao historico conceitosRedes 1 introducao historico conceitos
Redes 1 introducao historico conceitosMauro Pereira
 
6 softwares de manutenção
6 softwares de manutenção6 softwares de manutenção
6 softwares de manutençãoMauro Pereira
 
4.1 softwares e configurações importantes
4.1 softwares e configurações importantes4.1 softwares e configurações importantes
4.1 softwares e configurações importantesMauro Pereira
 
Redes padroes e cabeamento
Redes padroes e cabeamentoRedes padroes e cabeamento
Redes padroes e cabeamentoMauro Pereira
 
Trabalho para nota da etapa 2 2015.2
Trabalho para nota da etapa 2 2015.2Trabalho para nota da etapa 2 2015.2
Trabalho para nota da etapa 2 2015.2Mauro Pereira
 
Exercicio 1 - conceitos camadas e protocolos
Exercicio 1 - conceitos camadas e protocolosExercicio 1 - conceitos camadas e protocolos
Exercicio 1 - conceitos camadas e protocolosMauro Pereira
 
Guia prático para criar algoritmos
Guia prático para criar algoritmosGuia prático para criar algoritmos
Guia prático para criar algoritmosMauro Pereira
 
Exercicio 2 endereços, dispositivos, internet-intranet-extranet, padroes, c...
Exercicio 2   endereços, dispositivos, internet-intranet-extranet, padroes, c...Exercicio 2   endereços, dispositivos, internet-intranet-extranet, padroes, c...
Exercicio 2 endereços, dispositivos, internet-intranet-extranet, padroes, c...Mauro Pereira
 

Mais de Mauro Pereira (20)

Programação Web - CSS
Programação Web - CSSProgramação Web - CSS
Programação Web - CSS
 
Redes 7 ferramentas para montagem de redes
Redes 7 ferramentas para montagem de redesRedes 7 ferramentas para montagem de redes
Redes 7 ferramentas para montagem de redes
 
Exercicio introducao a arquitetura de computadores
Exercicio    introducao a arquitetura de computadoresExercicio    introducao a arquitetura de computadores
Exercicio introducao a arquitetura de computadores
 
Introdução à Arquitetura de Computadores
Introdução à Arquitetura de ComputadoresIntrodução à Arquitetura de Computadores
Introdução à Arquitetura de Computadores
 
Sistemas de Numeracao
Sistemas de NumeracaoSistemas de Numeracao
Sistemas de Numeracao
 
Lógica binária, potas lógicas e circuitos lógicos
Lógica binária, potas lógicas e circuitos lógicosLógica binária, potas lógicas e circuitos lógicos
Lógica binária, potas lógicas e circuitos lógicos
 
Trabalho para nota da etapa 2 2017.1
Trabalho para nota da etapa 2 2017.1Trabalho para nota da etapa 2 2017.1
Trabalho para nota da etapa 2 2017.1
 
Redes 6 equipamentos ativos da rede
Redes 6 equipamentos ativos da redeRedes 6 equipamentos ativos da rede
Redes 6 equipamentos ativos da rede
 
Redes 4 endereçamento
Redes 4 endereçamentoRedes 4 endereçamento
Redes 4 endereçamento
 
Redes 5 cabeamento
Redes 5 cabeamentoRedes 5 cabeamento
Redes 5 cabeamento
 
Redes 3 protocolos
Redes 3 protocolosRedes 3 protocolos
Redes 3 protocolos
 
Redes 2 padronização e arquitetura de redes
Redes 2 padronização e arquitetura de redesRedes 2 padronização e arquitetura de redes
Redes 2 padronização e arquitetura de redes
 
Redes 1 introducao historico conceitos
Redes 1 introducao historico conceitosRedes 1 introducao historico conceitos
Redes 1 introducao historico conceitos
 
6 softwares de manutenção
6 softwares de manutenção6 softwares de manutenção
6 softwares de manutenção
 
4.1 softwares e configurações importantes
4.1 softwares e configurações importantes4.1 softwares e configurações importantes
4.1 softwares e configurações importantes
 
Redes padroes e cabeamento
Redes padroes e cabeamentoRedes padroes e cabeamento
Redes padroes e cabeamento
 
Trabalho para nota da etapa 2 2015.2
Trabalho para nota da etapa 2 2015.2Trabalho para nota da etapa 2 2015.2
Trabalho para nota da etapa 2 2015.2
 
Exercicio 1 - conceitos camadas e protocolos
Exercicio 1 - conceitos camadas e protocolosExercicio 1 - conceitos camadas e protocolos
Exercicio 1 - conceitos camadas e protocolos
 
Guia prático para criar algoritmos
Guia prático para criar algoritmosGuia prático para criar algoritmos
Guia prático para criar algoritmos
 
Exercicio 2 endereços, dispositivos, internet-intranet-extranet, padroes, c...
Exercicio 2   endereços, dispositivos, internet-intranet-extranet, padroes, c...Exercicio 2   endereços, dispositivos, internet-intranet-extranet, padroes, c...
Exercicio 2 endereços, dispositivos, internet-intranet-extranet, padroes, c...
 

Algoritmos Pseudocódigo

  • 1. Algoritmos e Linguagem de Programação Professor: Mauro Jansen Parte 3 – Pseudocódigo 15/09/2010
  • 2. Algoritmos e Ling.de Programação Prof. Mauro Pseudocódigo 2
  • 3. Pseudocódigo Forma para a representação de algoritmos rica em detalhes, como a definição dos tipos das variáveis usadas no algoritmo. Assemelha-se à forma como os programas são escritos. Para traduzir o pseudocódigo para uma linguagem de programação, basta conhecer o vocabulário e regras sintáticas da linguagem. Busca a rigidez sintática e semântica, porém sem o detalhamento exigido nas linguagens de programação Algoritmos e Ling.de Programação Prof. Mauro Pseudocódigo 3
  • 4. Estrutura básica Todo pseudocódigo possui a seguinte estrutura básica: Algoritmo <nome do Algoritmo> Variáveis <lista de variáveis> Início <bloco de comandos> Fim As palavras em negrito são palavras reservadas: palavras em português que indicam seções do pseudocódigo ou ações a serem executadas pelo computador (instruções) Algoritmos e Ling.de Programação Prof. Mauro Pseudocódigo 4
  • 5. Estrutura básica Na seção Variaveis ou Var declaramos as variáveis Entre as palavras Inicio e Fim inserimos a sequência de comandos do nosso algoritmo, que pode conter também referência a variáveis e expressões Toda linha de comando termina com “;” (ponto e vírgula) (há exceções para esta regra) Algoritmos e Ling.de Programação Prof. Mauro Pseudocódigo 5
  • 6. Exemplo de pseudocódigo Pseudocódigo referente ao problema do maior número: Algoritmo Maior Var num1, num2, maior: inteiro: Inicio Leia(num1,num2); se (num1>num2) então maior num1; senão maior num2; fimse; escreva(maior); Fim Algoritmos e Ling.de Programação Prof. Mauro Pseudocódigo 6
  • 7. Notação usada nas sintaxes Ao definirmos a sintaxe de comandos e instruções é usada a seguinte notação: Palavras em negrito são palavras reservadas Palavras entre < > são elementos do algoritmo a serem substituídos por nomes ou valores a serem definidos pelo programador Elementos entre [ ] são opcionais Textos entre { } são comentários explicativos do algoritmo e não são executados pelo computador Algoritmos e Ling.de Programação Prof. Mauro Pseudocódigo 7
  • 8. Declaração de variáveis Declaração de Variáveis: todas as variáveis que serão utilizadas pelo algoritmo devem ser declaradas entre as palavras reservadas Variaveis (ou Var) e Inicio: Algoritmo Exemplo Variaveis a: Inteiro; b: Real; Inicio <bloco de comandos> Fim Algoritmos e Ling.de Programação Prof. Mauro Pseudocódigo 8
  • 9. Comando de atribuição ( ) Armazena um valor em uma variável previamente declarada No pseudocódigo, o comando de atribuição é o símbolo “ ” Sintaxe: <variável> <valor>; Exemplos: salario 1200; {variável salario recebe o valor 1200} nome “Maria”; {variável nome recebe “Maria”`} media (nota1+nota2)/2; {variável media recebe o resultado da expressão} Algoritmos e Ling.de Programação Prof. Mauro Pseudocódigo 9
  • 10. Comando de entrada de dados (Leia) Sempre que precisamos que o usuário digite algum dado para ser processado, teremos uma entrada de dados O comando usado para receber essa entrada de dados no pseudocódigo é o comando Leia Sintaxe: Leia <variável>[,<variável>,...]; ou Leia(<variável>[,<variável>,...]); Exemplos: Leia salario; {obtém valor digitado e armazena na variável salário} Lea nome; Leia nota1,nota2; Algoritmos e Ling.de Programação Prof. Mauro Pseudocódigo 10
  • 11. Comando de saída de dados (Escreva) Usado para exibir ou retornar qualquer valor ou mensagem ao usuário: Mensagem de orientação Valor constante Valor armazenado em uma variável Escreva <expressão>[,<expr.>,...]; Sintaxe: ou Escreva(<expressão>[,<expr.>,...]); Exemplos: Exibe a frase “Olá Mundo!” Escreva “Olá Mundo!”; Exibe o valor 12345 Escreva 12345; Escreva media; Exibe o valor da variável media Algoritmos e Ling.de Programação Prof. Mauro Pseudocódigo 11
  • 12. Exemplo de algoritmo 1 Algoritmo que lê duas notas, calcula a média e mostra o resultado: Algoritmo CalculaMedia Nome do Algoritmo Variáveis nota1, nota2, media: Real Declaração de Início Variáveis Escreva “Digite a primeira nota” Mensagem de Orientação Leia nota1 Inserção da primeira nota Escreva “Digite a segunda nota” Mensagem de Orientação Leia nota2 Inserção da segunda nota media ← (nota1 + nota2)/2 Cálculo da média e atribuição Escreva media do resultado à variável media Fim Exibição do resultado Algoritmos e Ling.de Programação Prof. Mauro Pseudocódigo 12
  • 13. Exemplo de algoritmo 2 Um algoritmo que lê o salário de uma pessoa, calcula e mostra o valor do novo salário após um aumento de 10%. Inicialmente, devemos identificar os dados de entrada. Neste caso, a entrada consiste no valor do salário. Em seguida, identificamos a saída. Para este problema, a saída é o novo salário. O processamento necessário para transformar a entrada na saída é dado pelo cálculo do reajuste (10% do salário) e, em seguida, pelo acréscimo desse valor ao salário. Reajuste = salário * 0.10 Novo salário = salário + Reajuste Algoritmos e Ling.de Programação Prof. Mauro Pseudocódigo 13
  • 14. Exemplo de algoritmo 2 Algoritmo NovoSalario Variáveis salario, reajuste, novosalario: Real Início Escreva “Digite o valor do salario” Leia salario reajuste ← salario * 0.10 novosalario ← salario + reajuste Escreva novosalario Fim O processamento poderia ser expresso de maneira simplificada através da fórmula: novosalario ← salario + salario * 0.10, ou ainda novosalario ← salario * 1.10 Algoritmos e Ling.de Programação Prof. Mauro Pseudocódigo 14
  • 15. Teste de algoritmos Testar ou “depurar” um programa ou algoritmo consiste em analisar os resultados do programa gradativamente, linha por linha, em busca de possíveis erros Para isso os ambientes de desenvolvimento oferecem uma ferramenta chamada “debugger” Manualmente, dispomos do teste de mesa ou tabela de teste Algoritmos e Ling.de Programação Prof. Mauro Pseudocódigo 15
  • 16. Teste de mesa ou tabela de teste É uma tabela onde temos: Uma coluna para o número da linha do algoritmo Uma coluna para cada variável (de entrada e saída) do algoritmo Uma coluna para comentários A cada linha do algoritmo, preenchemos a tabela com o valor das variáveis e comentário do ocorrido É útil para analisar o funcionamento de um algoritmo pequeno ou fragmento de um algoritmo maior Algoritmos e Ling.de Programação Prof. Mauro Pseudocódigo 16
  • 17. Teste de mesa ou tabela de teste Tabela de teste para uma possível execução do algoritmo da média de duas notas Lin nota1 nota2 media Comentário 1 ? ? ? Solicita que usuário digite nota1 2 ? ? ? Aguarda usuário digitar nota1 3 8 ? ? Solicita que usuário digite nota2 4 8 ? ? Aguarda usuário digitar nota2 5 8 7 7.5 Calcula a média 6 8 7 7.5 Mostra a média Algoritmos e Ling.de Programação Prof. Mauro Pseudocódigo 17
  • 18. Exercícios de fixação Qual a estrutura (formato) básica de um pseudocódigo? Em que parte do pseudocódigo declaramos as variáveis? Em que parte do pseudocódigo colocamos os comandos? Em que consiste o teste de algoritmos? Algoritmos e Ling.de Programação Prof. Mauro Pseudocódigo 18
  • 19. Exercícios de aplicação Usando pseudocódigo, faça algoritmos para resolver os seguintes problemas: Calcular a área de um retângulo Armazenar dois números em variáveis e trocar os valores das variáveis Calcular as raízes de uma equação do segundo grau Calcular o custo estimado com combustível em uma viagem de carro Algoritmos e Ling.de Programação Prof. Mauro Pseudocódigo 19
  • 20. Algoritmos e Ling.de Programação Prof. Mauro Pseudocódigo 20
  • 21. Estruturas condicionais São estruturas que permitem a tomada de decisões em função de condições estabelecidas e assim, o algoritmo apresenta ações alternativas. A classificação das estruturas de seleção é feita de acordo com o número de condições que devem ser testadas para que se decida qual o caminho a ser seguido. Segundo esta classificação, têm-se dois tipos de estruturas de decisão: se escolha Algoritmos e Ling.de Programação Prof. Mauro Pseudocódigo 21
  • 22. Estrutura SE São estruturas de controle de fluxo, que executam um ou vários comandos se a condição testada for verdadeira e, em alguns casos, executam um ou vários comandos se for falsa. Podem ser: Simples Compostas Algoritmos e Ling.de Programação Prof. Mauro Pseudocódigo 22
  • 23. Estrutura SE simples Um bloco de instruções será executado somente se uma condição for verdadeira. Caso contrário, o fluxo de execução segue para depois do bloco (ou após o FimSe) Formato: Se <condição> então <bloco de comandos> FimSe <condição> pode ser uma variável booleana, uma constante (V ou F) ou uma expressão de valor lógico Algoritmos e Ling.de Programação Prof. Mauro Pseudocódigo 23
  • 24. Estrutura SE simples – exemplo 1 Algoritmo para solicitar um número e verificar se o número digitado é maior que 10 Algoritmo MaiorQue10 Variáveis num: Real Início Escreva(“Digite um número”) Leia(num) Se num>10 então Escreva(“O número é maior que 10.”) FimSe Escreva(“Fim do algoritmo”) Fim Algoritmos e Ling.de Programação Prof. Mauro Pseudocódigo 24
  • 25. Estrutura SE simples – exemplo 2 Algoritmo CalculaMedia alterado para mostrar se aluno está aprovado, sendo que a média para aprovação é 7 Algoritmo CalculaMedia Variáveis nota1, nota2, media: Real Início Escreva(“Digite a primeira nota”) Leia(nota1) Escreva(“Digite a segunda nota”) Leia(nota2) media ← (nota1 + nota2)/2 Escreva(“Sua média é: “,media) Se media>=7 então Escreva(“Você está aprovado”) FimSe Fim Algoritmos e Ling.de Programação Prof. Mauro Pseudocódigo 25
  • 26. Estrutura SE composta Se a condição for verdadeira, o bloco de comandos 1 será executado. Caso contrário, o bloco de comandos 2 será executado. Formato: Se <condição> então <bloco de comandos 1> Senão <bloco de comandos 2> FimSe <condição> pode ser uma variável booleana, uma constante (V ou F) ou uma expressão de valor lógico Algoritmos e Ling.de Programação Prof. Mauro Pseudocódigo 26
  • 27. Estrutura SE composta – exemplo 1 Algoritmo para solicitar um número e verificar se o número digitado é maior que 10 Algoritmo MaiorQue10 Variáveis num: Real Início Escreva(“Digite um número”) Leia(num) Se num>10 então Escreva(“O número é maior que 10.”) senão Escreva(“O número é menor ou igual a 10”) FimSe Escreva(“Fim do algoritmo”) Fim Algoritmos e Ling.de Programação Prof. Mauro Pseudocódigo 27
  • 28. Estrutura SE composta – exemplo 2 Algoritmo CalculaMedia alterado para mostrar se aluno está aprovado, sendo que a média para aprovação é 7 Algoritmo CalculaMedia Variáveis nota1, nota2, media: Real Início Escreva(“Digite a primeira nota”) Leia(nota1) Escreva(“Digite a segunda nota”) Leia(nota2) media ← (nota1 + nota2)/2 Escreva(“Sua média é: “,media) Se media>=7 então Escreva(“Você está aprovado”) senão Escreva(“Você está de recuperação”) FimSe Fim Algoritmos e Ling.de Programação Prof. Mauro Pseudocódigo 28
  • 29. Estruturas SE encadeadas É quando o bloco de instruções subordinado ao comando se/senão contém outros comandos se/senão (quando temos mais de 2 situações): Se <condição 1> então <bloco de comandos 1> Senão se <condição 2> entao <bloco de comandos 2> Senão se <condição 3> entao <bloco de comandos 3> ... Senão se <condição N> entao <bloco de comandos N> FimSe Algoritmos e Ling.de Programação Prof. Mauro Pseudocódigo 29
  • 30. Estruturas SE encadeadas - exemplo Algoritmo CalculaMedia alterado para tratar mais uma regra: se a média for menor que 3, o aluno já estará reprovado, sem direito à recuperação Algoritmo CalculaMedia Variáveis nota1, nota2, media: Real Início Escreva(“Digite a primeira nota”) Leia(nota1) Escreva(“Digite a segunda nota”) Leia(nota2) media ← (nota1 + nota2)/2 Escreva(“Sua média é: “,media) Se media>=7 então Escreva(“Você está aprovado”) senão se media<3 então Escreva(“Você está reprovado”) senão Escreva(“Você está de recuperação”) FimSe Fim Algoritmos e Ling.de Programação Prof. Mauro Pseudocódigo 30
  • 31. Estrutura ESCOLHA Estrutura de decisão por igualdade, onde temos: uma variável a ser testada (variável de escolha) um ou mais valores constantes a serem comparados com a variável, com um bloco de comandos associado a cada um Também é chamada de estrutura CASO É similar a estruturas SE encadeadas, mas as comparações são só por igualdade São úteis em menus ou situações onde as decisões estão centradas em apenas uma variável e valores pré-fixados Algoritmos e Ling.de Programação Prof. Mauro Pseudocódigo 31
  • 32. Estrutura ESCOLHA Sintaxe: Escolha <variável> caso <val.constante 1>: <bloco de comandos 1> caso <val.constante 2>: <bloco de comandos 2> ... caso <val.constante n>: <bloco de comandos n> outrocaso <bloco de comandos alternativo> FimEscolha <variável> será comparada com o valor constante de cada “caso” Será executado somente o bloco de comandos abaixo do “caso” onde houver igualdade entre a variável e o valor constante Algoritmos e Ling.de Programação Prof. Mauro Pseudocódigo 32
  • 33. Estrutura ESCOLHA - exemplo Algoritmo MenuCalculo Variáveis num1, num2, opcao: Real Início Escreva(“1-Soma”) Escreva(“2-Subtração”) Escreva(“3-Multiplicação”) Escreva(“Digite a sua opção:”) Leia(opcao) Escreva(“Digite o primeira numero: ”) Leia(num1) Escreva(“Digite o segunda número: ”) Leia(num2) Escolha opcao caso 1 Escreva(“Soma=“,num1+num2) caso 2 Escreva(“Subtração=“,num1-num2) caso 3 Escreva(“Multiplicação=“,num1*num2) outrocaso Escreva(“Opção inválida”) FimEscolha Fim Algoritmos e Ling.de Programação Prof. Mauro Pseudocódigo 33
  • 34. Exercícios Faça um algoritmo que leia um número inteiro diferente de zero e diga se este é positivo ou negativo Altere o algoritmo anterior para dizer também se o número é igual a zero (use se encadeados) Faça uma algoritmo que leia três valores que representam os três lados de um triângulo e verifique: se o triângulo é válido Se é um triângulo equilátero, isósceles ou escaleno Algoritmos e Ling.de Programação Prof. Mauro Pseudocódigo 34
  • 35. Exercícios Propriedades de um triângulo: A soma de dois lados não pode ser menor que a do terceiro lado (ou o comprimento de cada lado deve ser menor que a soma dos outros dois lados) Equilátero: três lados iguais Isósceles: dois lados iguais Escaleno: três lados diferentes Algoritmos e Ling.de Programação Prof. Mauro Pseudocódigo 35
  • 36. Algoritmos e Ling.de Programação Prof. Mauro Pseudocódigo 36
  • 37. Estruturas de repetição Permitem a repetição de um bloco de instruções por um número vezes pré- determinado ou até a satisfação de uma condição Também são chamados de loops (laços) Tipos de estruturas: Repetição contada (estrutura para) Repetição condicional Com teste no início (estrutura enquanto) Com teste no final (estrutura repita) Algoritmos e Ling.de Programação Prof. Mauro Pseudocódigo 37
  • 38. Estruturas de repetição “Laço sem fim” ou deadLock: é quando uma estrutura de repetição fica executando interminavelmente As estruturas de repetição devem sempre ter um fim, ou seja, devem ter um limite pré- definido de repetições ou alguma condição que faça a repetição parar, caso contrário teremos um loop sem fim ou deadlock É uma das causas dos “travamentos” de software (mensagem “Este programa não está respondendo”) Algoritmos e Ling.de Programação Prof. Mauro Pseudocódigo 38
  • 39. Estrutura de repetição contada É utilizada quando conhecemos previamente a quantidade de vezes que queremos executar o bloco de comandos A quantidade de vezes pode ser um valor constante ou informado pelo usuário É representada pelo comando PARA Algoritmos e Ling.de Programação Prof. Mauro Pseudocódigo 39
  • 40. Comando Para (repetição contada) Sintaxe: Para <variável> de <valor inicial> até <valor final> [passo <incremento>] faça <bloco de comandos> FimPara Descrição: <variável>: nome de uma variável do tipo inteiro <valor inicial>: é o valor inicial que será atribuído à variável <valor final>: quando a variável for maior ou igual ao valor final, a repetição termina <incremento> é o valor que será incrementado à variável a cada repetição (ao final do bloco de comandos). É opcional; se não for informado, é assumido incremento 1. Algoritmos e Ling.de Programação Prof. Mauro Pseudocódigo 40
  • 41. Comando Para (exemplo 1) Algoritmo que lista os dez primeiros números inteiros positivos Algoritmo DezPrimeiros A variável i fará o controle da Variáveis repetição, seu valor inicia com i: Inteiro 1 e para cada execução do bloco seu valor aumenta em 1 Início unidade. Para i de 1 até 10 faça Escreval(i) FimPara Para cada repetição, basta Fim mostrar o valor de i, uma vez que este valor variará de 1 até 10. Algoritmos e Ling.de Programação Prof. Mauro Pseudocódigo 41
  • 42. Comando Para (exemplo 2) Algoritmo que lista os números inteiros pares menores ou iguais a um número informado pelo usuário Algoritmo NumerosPares Variáveis i,limite: Inteiro Início Escreva(“Listar números pares até: “) Leia(limite) Para i de 2 ate limite passo 2 faca Escreval(i) FimPara Fim Algoritmos e Ling.de Programação Prof. Mauro Pseudocódigo 42
  • 43. Estruturas de repetição condicional São usadas quando não sabemos previamente a quantidade exata de vezes que queremos executar o bloco de comandos A quantidade de repetições depende de uma condição (expressão lógica) controlada internamente Existem duas estruturas de repetição condicional: Com teste no início (estrutura enquanto...faça) Com teste no final (estrutura repita...até) Algoritmos e Ling.de Programação Prof. Mauro Pseudocódigo 43
  • 44. Características da repetição condicional As estruturas de repetição condicional caracterizam-se por conter dois blocos de comandos importantes: PREPARO: um ou mais comandos que afetam a condição para entrar no bloco de repetição ou que preparam variáveis que serão usadas dentro da bloco de comandos CONTROLE: um ou mais comandos que afetam a condição para finalizar a repetição Algoritmos e Ling.de Programação Prof. Mauro Pseudocódigo 44
  • 45. Estrutura Enquanto...faça Sintaxe: Enquanto <expressão lógica> faca <bloco de comandos> FimEnquanto Uso: repete o bloco de comandos enquanto uma determinada condição (especificada através da expressão lógica) for satisfeita. A <expressão lógica> é verificada logo na entrada e a cada repetição. Se for falsa, a execução continua logo após o FimEnquanto O FimEnquanto marca o final do bloco de comandos a ser repetido e causa o retorno ao comando Enquanto Algoritmos e Ling.de Programação Prof. Mauro Pseudocódigo 45
  • 46. Estrutura Enquanto (exemplo 1) Algoritmo para contar de 1 a 10, listando os números na tela PREPARO: A variável i fará o algoritmo “Conta com enquanto” controle da repetição e inicia a var i: inteiro contagem, portanto devemos Inicio inicializá-la com o valor 1 i <- 1 enquanto i <= 10 faca escreval(i) CONTROLE: dentro do laço deve haver um comando que i <- i + 1 afete a expressão lógica. Aqui fimenquanto incrementamos a variável i, de fimalgoritmo modo que quando ela for maior que 10 a repetição irá parar Algoritmos e Ling.de Programação Prof. Mauro Pseudocódigo 46
  • 47. Estrutura Enquanto (exemplo 2) Algoritmo para somar números digitados pelo usuário, enquanto não for digitado zero algoritmo “Soma” PREPARO: Aqui inicializamos var n,soma: real a variável com um valor maior que zero, para entrar no laço e Inicio zeramos a variável soma que n <- 0 irá guardar a soma soma <- 0 enquanto n<>0 faca escreva(“Digite um número (0=fim):”) CONTROLE: o próprio leia(n) número digitado pelo usuário soma <- soma + n será usado como controle. Se fimenquanto for digitado zero, a condição Escreva(“A soma dos numeros é: “,soma) ficará falsa e o laço irá parar fimalgoritmo Algoritmos e Ling.de Programação Prof. Mauro Pseudocódigo 47
  • 48. Estrutura Repita...Até Sintaxe: Repita <bloco de comandos> Até <expressão lógica> Uso: repete o bloco de comandos até que determinada condição (especificada através da expressão lógica) seja satisfeita A <expressão lógica> é verificada ao final de cada repetição. Se for verdadeira, a execução continua logo após o Até O Até marca o final do bloco de comandos a ser repetido e causa o retorno ao comando repita, caso a expressão lógica seja falsa Algoritmos e Ling.de Programação Prof. Mauro Pseudocódigo 48
  • 49. Estrutura Repita (exemplo 1) Algoritmo para contar de 1 a 10, listando os números na tela PREPARO: A variável i fará o algoritmo “Contar com repita” controle da repetição e inicia a var i: inteiro contagem, portanto devemos Inicio inicializá-la com o valor 1 i <- 1 Repita escreval(i) CONTROLE: Aqui incrementamos a variável i, de i <- i + 1 modo que quando ela for maior até i>10 que 10 a repetição irá parar fimalgoritmo Algoritmos e Ling.de Programação Prof. Mauro Pseudocódigo 49
  • 50. Estrutura Repita (exemplo 2) Algoritmo para somar números digitados pelo usuário, até que seja digitado zero algoritmo “Soma” PREPARO: Aqui apenas var n,soma: real zeramos a variável soma. Não é necessário prepararmos a Inicio expressão lógica, visto que a soma <- 0 variável de controle será lida Repita dentro do laço escreva(“Digite um número (0=fim):”) leia(n) CONTROLE: o próprio soma <- soma + n número digitado pelo usuário Ate n=0 será usado como controle. Se Escreva(“A soma dos numeros é: “,soma) for digitado zero, a condição fimalgoritmo será verdadeira e o laço irá parar Algoritmos e Ling.de Programação Prof. Mauro Pseudocódigo 50
  • 51. Estrutura Enquanto x Repita Estruturas tipo Enquanto: São úteis quando precisamos de teste desde a entrada no laço O bloco de comandos só será executado se a condição for verdadeira logo no início A repetição termina quando a expressão lógica for falsa Estruturas tipo Repita: São úteis quando não há necessidade de teste no início O bloco de comandos será executado sempre, pelo menos uma vez A repetição termina quando a expressão lógica for verdadeira Algoritmos e Ling.de Programação Prof. Mauro Pseudocódigo 51
  • 52. Intervenções forçadas na repetição Apesar de não ser uma boa prática de programação, algumas linguagens oferecem comandos para a intervenção forçada (retorno ao início ou interrupção) nas estruturas de repetição retorno Retorno ao início (comando “volte”): faz com que a execução volte ao início do laço (comando enquanto ou repita) Interrupção (comando “interrompa”): faz com que a repetição pare (a execução continua no comando após o comando fimenquanto ou até) Geralmene esses comandos podem ser usados em qualquer estrutura (para, enqunto ou repita) Algoritmos e Ling.de Programação Prof. Mauro Pseudocódigo 52
  • 53. Retorno ao início (comando “volte”) Sintaxe da Enquanto com comando de retorno ao início: Enquanto <expressão lógica> faca <bloco de comandos> se <condição> então volte fimse <Bloco de comandos> FimEnquanto O comando volte força a “próxima rodada” do laço: o fluxo de execução volta para o início do laço (comando Enquanto) Numa estrutura “para” a variável será incrementada Algoritmos e Ling.de Programação Prof. Mauro Pseudocódigo 53
  • 54. Interrupção forçada (comando “interrompa”) Sintaxe da Enquanto com comando de interrupção forçada: Enquanto <expressão lógica> faca <bloco de comandos> se <condição> então interrompa fimse <Bloco de comandos> FimEnquanto <comando>... O comando interrompa faz com que a repetição termine e o fluxo de execução continue no comando após o laço (após o FimEnquanto) Algoritmos e Ling.de Programação Prof. Mauro Pseudocódigo 54
  • 55. Combinando estruturas Você pode combinar as estruturas estudadas (sequencial, condicional e repetição), uma dentro do bloco de comandos de outra Condicional dentro de condicional (estruturas se encadeadas) (já estudado) Condicional dentro de repetição Repetição dentro de uma condicional Repetição dentro de outra repetição (estruturas de repetição encadeadas) ..etc. Vejamos alguns exemplos a seguir... Algoritmos e Ling.de Programação Prof. Mauro Pseudocódigo 55
  • 56. Condicional dentro de repetição Ex: listar os números de 1 a 100, destacando os múltiplos de 10 Algoritmo “0 a 100 destacando pares” Estrutura PARA contando de Variáveis 1 a 100 i: Inteiro Início Para i de 1 ate 100 faca Escreva(i) Testa se o número é divisível se i mod 10 = 0 entao por 10 (resto da divisão por 10 escreval(“ (múltiplo de 10)”) é zero) senao escreval(“”) fimse FimPara Fim Algoritmos e Ling.de Programação Prof. Mauro Pseudocódigo 56
  • 57. Estruturas de repetição encadeadas Ex: imprimir a tabuada de multiplicar de 1 até 10 Algoritmo “tabuada de multiplicar” Laço dos multiplicandos (n1 Variáveis varia de 1 até 10) n1,n2: Inteiro Início Para n1 de 1 ate 10 faca Escreva(“Tabuada de “,n1) Laço dos multiplicadores (n2 Para n2 de 1 ate 10 faca varia de 1 até 10) escreval(n1,” x “,n2,” = “,n1*n2) FimPara escreval(“--------------”) FimPara Fim Algoritmos e Ling.de Programação Prof. Mauro Pseudocódigo 57
  • 58. Cuidados ao combinar estruturas Ao combinar estruturas, você nunca deve “cruzar” uma estrutura com outra: Para i de 1 ate 100 faca Escreva(i) se i mod 10 = 0 entao escreval(“ (múltiplo de 10)”) FimPara fimse Enquanto i<100 Escreva(i) se i mod 10 = 0 entao escreval(“ (múltiplo de 10)”) FimEnquanto fimse Algoritmos e Ling.de Programação Prof. Mauro Pseudocódigo 58
  • 59. Cuidados ao combinar estruturas Quando combinadas, elas devem sempre estar contidas uma dentro da outra: Para ..... Enquanto Repita Escreva(i) se .... entao <comandos> senao <comandos> fimse Ate <condição> FimEnquanto FimPara Algoritmos e Ling.de Programação Prof. Mauro Pseudocódigo 59
  • 60. Exercícios – faça algoritmos para: Multiplicar dois números usando somas repetidas Solicitar uma quantidade pré-determinada de números e calcular a soma e média entre esses números Calcular a soma dos números ímpares entre um intervalo informado Calcular o fatorial de um número Algoritmos e Ling.de Programação Prof. Mauro Pseudocódigo 60
  • 61. Exercício-desafio: Solicitar os nomes e notas dos alunos de uma turma, mostrar o nome e nota dos alunos com a maior e menor nota e calcular a média entre as notas da turma. O fim da turma será indicado quando o usuário digitar “FIM” para o nome do aluno Melhorar o algoritmo acima para efetuar os mesmos cálculos para todas as turmas de uma escola, mostrando também a maior e menor nota da escola e a nota média da escola Listar os números primos entre dois números informados pelo usuário. Dicas: Número primo é o número que só é divisível por ele mesmo e por 1. Para saber se um número é primo você precisará usar um laço e testar, com a função MOD, se ele é divisível por todos os números menores que ele Listar os números da série de Fibonacci de 1 até um número informado pelo usuário. Dica: A séria de Fibonacci é uma lista de números cujos dois primeiros númereos são iguais a 1 e cada número seguinte é igual à soma dos dois números anteriores: 1, 1, 2, 3, 5, 8, .. Algoritmos e Ling.de Programação Prof. Mauro Pseudocódigo 61