Lógica de Programação e Algoritmos Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com
2 Quando um conjunto de ações é executado repetidamente enquanto uma determinada condição permanece válida. Para Usamos a estrutura Para, quando precisamos repetir um conjunto de comandos um número pré-definido de vezes. Utiliza uma variável de controle, que é incrementada em 1 unidade de um valor inicial até um valor final. para varcontrole ValInicial até ValFinal faça <comando 1>; <comando 2>;... <comando n>; fim-para; Execução enquanto varcontrole for menor ou igual a ValFinal
Quando o programa encontra a instrução fim-para, incrementa a variável varcontrole em 1 unidade. Cada vez que o programa passa pela linha de instrução para..., ele testa se varcontrole é menor ou igual a ValFinal. Se não for, o comando é abandonado. Obs: O valor da variável varcontrole não pode ser alterado no interior da estrutura para...fim-para. Exemplo para aux 1 até 10 faça resultado 5 * aux; fim-para; aux 1,10,1 Resultado 5 * aux; 3
Enquanto Utilizada quando não sabemos o número de repetições e quando possuímos uma expressão que deve ser avaliada para que os comandos da estrutura sejam executados. Assim, enquanto o valor da <condição> for verdadeiro, as ações dos comandos são executadas. Quando for falso, a estrutura é abandonada, passando a execução para a próxima linha após o comando. Se já da primeira vez o resultado for falso, os comandos não são executados nenhuma vez. enquanto <condição> faça <comando 1>; <comando 2>; <comando n>; fim-enquanto; Execução enquanto a condição for verdadeira 4
Exemplo: declare aux, resultado: numerico; inicio aux 1; enquanto (aux <= 10) faça resultado 5 * aux; escrever (resultado); aux aux + 1; fim-para; fim inicio aux 1 aux <= 10 resultado 5 * aux resultado aux aux + 1 fim 5
Repita... Até que Utilizada quando não sabemos o número de repetições e quando os comandos devem ser executados pelo menos uma vez, antes da expressão ser avaliada. Assim, o programa entra na estrutura Repita...Até que e executa seus comandos pelo menos uma vez. Ao chegar no fim da estrutura, a expressão será avaliada. Se o resultado da expressão for verdadeiro, então o comando é abandonado. repita <comando 1>; <comando 2>;... <comando n>; até que <condição>; É executado pelo menos uma vez 6
Exemplo aux 1; repita resultado 5 * aux; escrever(resultado); aux aux + 1; até que (aux > 10); Resultado do algoritmo:??? inicio aux 1 resultado 5 * aux resultado aux aux + 1 aux > 10 fim 7
Exercícios 1) Elabore um algoritmo que gera e escreve os números ímpares dos números lidos entre 100 e 200. 2) Construa um algoritmo que leia 500 valores inteiros e positivos e: Encontre o maior valor Encontre o menor valor Calcule a média dos números lidos 3) Faça um algoritmo que determine o maior entre N números. A condição de parada é a entrada de um valor 0, ou seja, o algoritmo deve ficar calculando o maior até que a entrada seja igual a 0 (ZERO). 8
Exercícios 4) Faça um algoritmo que conte de 1 a 100 e a cada múltiplo de 10 emita uma mensagem: Múltiplo de 10. 5) Faça um algoritmo que leia um número na base 10 e converta-o para a base 2. 6) Faça um algoritmo que leia dois números inteiros e positivos e calcule o mdc. Regra: a) dividimos o número maior pelo menor b) como não deu resto zero, dividimos o divisor pelo resto da divisão anterior. c) prosseguimos com as divisões sucessivas até obter resto zero. Exemplo: mdc(160,64)=32 9
Referências Algoritmos Estruturados. FARRER, Harry, BECKER, Christiano G., FARIA, Eduardo C., MATOS, Helton Fábio de, SANTOS, Marcos Augusto dos, MAIA, Miriam Lourenço. Rio de Janeiro: Editora Guanabara, 1989. Lógica de Programação A Construção de Algoritmos e Estruturas de Dados Forbellone, André Luiz Villar. São Paulo, Prentice Hall, 2005: Algoritmos e estruturas de dados. GUIMARÃES, Angelo de Moura, LAGES, Newton A de Castilho. Rio de Janeiro: LTC Livros Técnicos e Científicos Editora, 1985. Programação e lógica com Turbo Pascal. MECLER, Ian, MAIA, Luiz Paulo. Rio de Paulo Janeiro: Campus, 1989. Unicamp - Centro de Computação DSC. Sérgio de Moraes, abril 2000. Algoritmos. SALVETTI, Dirceu Douglas, BARBOSA, Lisbete Madsen. São Paulo: Makron Books, 1998. Concursos Públicos Raciocínio Lógico. SILVA, Joselias Santos da. São Paulo: R&A Editora Cursos e Materiais Didáticos, 1999. Algoritmos e Estruturas de Dados. WIRTH, Niklaus. Rio de Janeiro: Editora Prentice-Hall do Brasil, 1986. Sites na Web: http://www.inf.pucrs.br/~egidio/algo1/ 10