ET51D - INFORMÁTICA Algoritmos - Estruturas de Repetição Professor: Glauber G. O. Brante [email protected] UTFPR – Universidade Tecnológica Federal do Paraná DAELT – Departamento Acadêmico de Eletrotécnica Brante, G. Informática - Algoritmos 1 / 17 Estruturas de Repetição Estrutura de Decisão: realiza desvios condicionais, criando programas em que um bloco de comandos é executado somente se uma determinada condição é verdadeira. Entretanto, há casos em que é preciso que um bloco de comandos seja executado mais de uma vez se uma determinada condição for verdadeira. Estrutura de Repetição (ou loop/laço): permite executar um conjunto de comandos quantas vezes forem necessárias. Brante, G. Informática - Algoritmos 2 / 17 Exemplo: Imprimir os números de 1 a 100 Este fluxograma está correto? Brante, G. Informática - Algoritmos 3 / 17 Exemplo: Imprimir os números de 1 a 100 Este fluxograma está correto? NÃO! Brante, G. Informática - Algoritmos 3 / 17 Exemplo: Imprimir os números de 1 a 100 Este fluxograma está correto? SIM! Solução: Repetição por condição! Brante, G. Informática - Algoritmos 3 / 17 Estruturas de Repetição Tipos de estruturas de repetição: Estrutura enquanto-faça Estrutura repita até ou faça enquanto Estrutura para-passo Brante, G. Informática - Algoritmos 4 / 17 Estrutura “enquanto-faça” enquanto-faça (while) Repete a execução de um bloco de sentenças enquanto uma condição permanecer verdadeira. Brante, G. Informática - Algoritmos 5 / 17 Estrutura “enquanto-faça” enquanto ( condição for verdadeira ) faca conjunto de comandos; fimenquanto Brante, G. Informática - Algoritmos 6 / 17 Exemplo: algoritmo “Imprimir os números de 1 a 1000” var num : inteiro inicio num <- 1 enquanto (num <= 1000) faca escreval(“Número: ”, num) num <- num + 1 fimenquanto fimalgoritmo Brante, G. Informática - Algoritmos 7 / 17 Estrutura “repita até” ou “faça enquanto” faça...enquanto (do...while) Semelhante ao while. Diferença crucial: a condição é verificada após executar o bloco de instruções correspondente. A escolha dependerá do bom senso do programador, que optará pela estrutura que deixar o algoritmo mais simples e legível. Brante, G. Informática - Algoritmos 8 / 17 Estrutura “repita até” ou “faça enquanto” repita conjunto de comandos; até ( condição ser verdadeira ) faça conjunto de comandos; enquanto ( condição for verdadeira ) Brante, G. Informática - Algoritmos 9 / 17 Estrutura “repita até” ou “faça enquanto” repita conjunto de comandos; até ( condição ser verdadeira ) Algoritmos VisuAlg faça conjunto de comandos; Ling. C enquanto ( condição for verdadeira ) Brante, G. Informática - Algoritmos 9 / 17 Exemplo: repita-até algoritmo “Imprimir os números de 1 a 1000” var num : inteiro inicio num <- 1 repita escreval(“Número: ”, num) num <- num + 1 ate (num > 1000) fimalgoritmo Brante, G. Informática - Algoritmos 10 / 17 Exemplo: faça-enquanto algoritmo “Imprimir os números de 1 a 1000” var num : inteiro inicio num <- 1 faça escreval(“Número: ”, num) num <- num + 1 enquanto (num <= 1000) fimalgoritmo Brante, G. Informática - Algoritmos 11 / 17 repita-até × enquanto-faça algoritmo “Imprimir números de 1 a 1000” var num : inteiro algoritmo “Imprimir números de 1 a 1000” var num : inteiro inicio inicio num <- 1 num <- 1 repita escreval(“Número: ”, num) num <- num + 1 ate (num > 1000) faça escreval(“Número: ”, num) num <- num + 1 enquanto (num <= 1000) fimalgoritmo fimalgoritmo As condições são diferentes porque a semântica do repita-até é diferente da semântica do enquanto-faça. Brante, G. Informática - Algoritmos 12 / 17 Estrutura “para-passo” para-passo (for) Executa um bloco de sentenças por um número específico de vezes Apresenta, de forma compacta, as etapas de inicialização, do teste e da atualização Brante, G. Informática - Algoritmos 13 / 17 Estrutura “para-passo” para Variável de ValorInicial ate ValorFinal passo P faca conjunto de comandos; fimpara Brante, G. Informática - Algoritmos 14 / 17 Exemplo: para-passo algoritmo “Imprimir os números de 1 a 1000” var num : inteiro inicio para num de 1 ate 1000 passo 1 faca escreval(“Número: ”, num) fimpara fimalgoritmo Obs.: A variável num é inicializada de forma implícita e o incremento desta variável também é implícito. Brante, G. Informática - Algoritmos 15 / 17 Exercício Brante, G. Informática - Algoritmos 16 / 17 Exercício: Faça um algoritmo que leia um número de 1 a 5 e escreva por extenso. Caso o usuário digite um número que não esteja neste intervalo, exibir mensagem: número inválido. O algoritmo deve dar a opção ao usuário de digitar um número quantas vezes quiser. Brante, G. Informática - Algoritmos 17 / 17