270 likes | 410 Vues
Universidade Federal de Uberlândia Engenharia Civil. Introdução à Algoritmos. Professora: Fabíola Gonçalves. Agenda. Estruturas de repetição: Introdução; Comando enquanto ... faça ; Comando faça ... enquanto ; Comando repita ; Comando para. Estruturas de Repetição.
E N D
Universidade Federal de UberlândiaEngenharia Civil Introdução à Algoritmos Professora: Fabíola Gonçalves.
Agenda • Estruturas de repetição: • Introdução; • Comando enquanto ... faça; • Comando faça ... enquanto; • Comando repita; • Comando para.
Estruturas de Repetição • Permite que uma sequência de comandos seja executada repetidamente, enquanto uma determinada condição seja satisfeita. • Existem 2 tipos: • Condicional – repetição ocorre enquanto a condição for verdadeira; • Ex.: ENQUANTO e REPITA. • Incondicional – tem um número pré-determinado de repetições. • Ex.: PARA.
Estruturas de Repetição - Comando enquanto • Comando enquanto. • Linguagem Algorítmica: enquanto condição faça comando-A1; comando-A2; ... ... comando-An; fim-enquanto
Estruturas de Repetição - Comando enquanto • A condição é testada no início da repetição; • Enquanto a condição for Verdadeira, o bloco de comandos é executado; • O bloco de comandos pode ser executado 0 ou + vezes; • Para a execução quando a condição se tornar Falsa.
Estruturas de Repetição - Comando enquanto • Exemplo 1: ... leia (SENHA); enquanto (SENHA # “XYZ”) faça escreva (“Senha inválida”); escreva (“Digite a senha novamente”); leia (SENHA); fim-enquanto ... • Como o teste da condição é realizado no início do laço, a sequência de comandos será executada zero ou mais vezes, dependendo da avaliação da condição.
Estruturas de Repetição - Comando enquanto • Exemplo 2: Algoritmo EXEMPLO_DE_ENQUANTO {escrever os números inteiros de 1 a 100} N : inteiro início N <-1; enquanto N ≤ 100 faça escreva (N); N <-(N + 1); fim-enquanto fim • O comando escreva será executado repetidas vezes enquanto a variável N possuir um valor igual ou inferior a 100. • O algoritmo terá como saída a sequência dos números inteiros de 1 a 100.
Estruturas de Repetição Comando enquanto • Exemplo 3: Algoritmo EXEMPLO_ENQUANTO {calculo do quadrado de um número} numero : inteiro inicio numero ← 1; enquanto numero # 0 faça escreva(“o quadrado de”, numero, “ é: “ ); escreva(numero^2); leia(numero); fim-enquanto escreva(“FIM DO PROGRAMA”); fim
Estruturas de Repetição Comando enquanto • Exemplo 4: Algoritmo EXEMPLO_ENQUANTO {soma valores} valor, soma: inteiro; inicio soma <- 0; leia (valor); enquanto valor # -1 faça soma <- (soma + valor); leia(valor); fim-enquanto escreva(“O valor da soma é: ”, soma ); fim
Estruturas de RepetiçãoComando enquanto Exercício: • Elabore um algoritmo para determinar o menor número inteiro fornecido pelo usuário. Considere que o número zero indica o fim da entrada de dados. • Achar o maior e o menor número de uma série de números positivos fornecidos pelo usuário.
Estruturas de RepetiçãoComando faça ... enquanto • Sintaxe: faça comando-A1; comando-A2; ... ... comando-An; enquanto <condição>; • Exemplo: numero ← 1; faça escreva(“o quadrado de “, numero, “ é: “); escreva(numero^2); leia(numero); enquanto numero ≠ 0; escreva(“FIM DO PROGRAMA”);
Estruturas de RepetiçãoComando repita • A condição é testada no final da repetição; • Enquanto a condição for Falsa, o bloco de comandos é executado; • Lembrando que condição é uma expressão lógica sempre testada ao final de cada interação! • O bloco de comandos é executado pelo menos 1 vez. • Para a execução quando a condição se tornar Verdadeira.
Estruturas de RepetiçãoComando repita-Ate • Sintaxe: repita comando-A1; comando-A2; ... ... comando-An; ate <condição> • A1, A2, A3, ... , A4 serão executados pelo menos uma vez. • Até que a condição seja testada e se torne ??
Estruturas de RepetiçãoComando repita-Ate • Exemplo: numero ← 1; repita escreva(“o quadrado de “, numero, “ é: “); escreva(numero^2); leia(numero); ate numero = 0 escreva(“FIM DO PROGRAMA”); • Neste caso calcularemos o quadrado do número enquanto o usuário não entrar com um valor 0. • Mas se ele entrar com 0 o que a algoritmo imprimirá?
Estruturas de RepetiçãoComando repita-Ate • O comando repita-até é equivalente ao comando enquanto-faça, vejam:
Repetição por variável de controle • Número de repetições for previamente conhecido. • Uso de contador para controlar o número de repetições. • Contador: uma variável do tipo inteiro. • Sintaxe do Comando: para i devaloraté l passo p faça comando-C1; comando-C2; ... ... comando-An; fim-para OBS: Quando o passo p for =1 não é necessário colocar essa esta especificação
Repetição por variável de controle • Exemplo: Algoritmo LAÇO_CONTADOR NUM,SOMA,CONT : inteiro; início SOMA <-0; para CONT de 1 até 100 faça leia (NUM); SOMA <- (SOMA + NUM); fim-para escreva (SOMA); fim Fim_Algoritmo
Repetição por variável de controle • Também conhecido como Controle por Contador o comandopara é, na verdade, o comando enquanto utilizando uma variável de controle em uma notação compacta. • Neste caso sempre existirá uma inicialização de variável de controle • Um teste para verificar se a variável atingiu o limite • E, ainda, um acréscimo na variável de controle
Repetição por variável de controleComando para • Exemplos: para cont = 1 ate 9 passo 2 faça escreva(“O valor de cont é”, cont); fim-para Pergunta: O que será impresso?? /* O que será impresso?*/ para cont = 10 ate 1 passo -1 faça escreva(“O valor de cont é”, cont ); fim-para
Repetição por variável de controleComando para • Exercício: -- Construa um algoritmo que calcule e imprima a somatória de N números (sendo N > 0). Considere como dados de entrada a quantidade de números a serem lidos e os valores dos respectivos números. --Faça um algoritmo que, sem utilizar o operador de exponenciação, realize a operação X^Y, para qualquer X e Y fornecido pelo usuário. Reescreva o algoritmo acima, utilizando as demais estruturas de repetição.
Controle por Entrada (Flag) • Quando não conhecemos o número de repetições e este for determinado por um valor que será lido (flag); • devemos utilizar um controle de repetições por entrada, também conhecido como controle por sentinela. • Exemplo: este algoritmo lê um conjunto de números inteiros e exibe o valor médio dos mesmos. • Obs: a condição de saída do laço será a leitura do valor 0 (flag).
Controle por Entrada (Flag) Algoritmo LAÇO_COM_FLAG NUM,CONT,SOMA,MEDIA : inteiro; início SOMA <-0; CONT <-0; leia (NUM); enquanto (NUM # 0) faça SOMA <- (SOMA + NUM); CONT <- (CONT + 1); escreva(Entre com um valor ou entre com o sair e visualizar a media) leia (NUM); fim-enquanto MEDIA <- (SOMA div CONT); escreva (MEDIA); fim Fim_Algoritmo Sentinela Flag
exercícios • Qual a utilidade da estrutura de repetição? • Em que consiste o controle de repetições por contador? • Em que consiste o controle de repetições por flag? • Faça um algoritmo que mostre todos os números inteiros de 1 a 50. • Faça um algoritmo que mostre todos os números inteiros pares de 2 a 100. • Faça um algoritmo que gere a seguinte série: 10, 20, 30, 40, ..., 990, 1000. • Escreva um algoritmo que leia três números e imprima o maior deles.
exercícios • Faça o acompanhamento da execução do algoritmo abaixo e preencha a Tabela de Variáveis:
exercícios • Escreva um algoritmo que leia 10 números e imprima o maior deles. • Escreva um algoritmo que leia três números e os imprima em ordem crescente. • Escreva um algoritmo que leia uma certa quantidade de números e imprima o maior deles e quantas vezes o maior número foi lido. A quantidade de números a serem lidos deve ser fornecida pelo usuário. Assuma que o usuário sempre fornecerá um número positivo.