Algoritmos e lp parte3-pseudocódigo

33.702 visualizações

Publicada em

  • Seja o primeiro a comentar

Algoritmos e lp parte3-pseudocódigo

  1. 1. Algoritmos e Linguagem de Programação Professor: Mauro Jansen Parte 3 – Pseudocódigo 15/09/2010
  2. 2. Algoritmos e Ling.de ProgramaçãoProf. Mauro Pseudocódigo 2
  3. 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. 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. 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. 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. 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. 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. 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. 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. 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. 12. Exemplo de algoritmo 1 Algoritmo que lê duas notas, calcula a média e mostra o resultado:Algoritmo CalculaMedia Nome do AlgoritmoVariáveis nota1, nota2, media: Real Declaração deIní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 mediaFim Exibição do resultado Algoritmos e Ling.de Programação Prof. Mauro Pseudocódigo 12
  13. 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. 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. 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. 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. 17. Teste de mesa ou tabela de teste Tabela de teste para uma possível execução do algoritmo da média de duas notasLin nota1 nota2 media Comentário1 ? ? ? Solicita que usuário digite nota12 ? ? ? Aguarda usuário digitar nota13 8 ? ? Solicita que usuário digite nota24 8 ? ? Aguarda usuário digitar nota25 8 7 7.5 Calcula a média6 8 7 7.5 Mostra a média Algoritmos e Ling.de Programação Prof. Mauro Pseudocódigo 17
  18. 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. 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. 20. Algoritmos e Ling.de ProgramaçãoProf. Mauro Pseudocódigo 20
  21. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 36. Algoritmos e Ling.de ProgramaçãoProf. Mauro Pseudocódigo 36
  37. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 47. Estrutura Enquanto (exemplo 2) Algoritmo para somar números digitados pelo usuário, enquanto não for digitado zeroalgoritmo “Soma” PREPARO: Aqui inicializamosvar n,soma: real a variável com um valor maior que zero, para entrar no laço eInicio 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á pararfimalgoritmo Algoritmos e Ling.de Programação Prof. Mauro Pseudocódigo 47
  48. 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. 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. 50. Estrutura Repita (exemplo 2) Algoritmo para somar números digitados pelo usuário, até que seja digitado zeroalgoritmo “Soma” PREPARO: Aqui apenasvar n,soma: real zeramos a variável soma. Não é necessário prepararmos aInicio 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çãofimalgoritmo será verdadeira e o laço irá parar Algoritmos e Ling.de Programação Prof. Mauro Pseudocódigo 50
  51. 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. 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. 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. 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 deexecuçã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. 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. 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. 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. 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. 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. 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. 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

×