Algoritmos Escher Agenda • Estruturas de Repetição; • Estrutura Para; • Exercícios; • Estruturas: • Enquanto • Faça ... Enquanto; • Exercícios. Conceitos Iniciais Estruturas de Repetição: Este capítulo é um dos mais importantes. A partir desse ponto, a dificuldade na resolução dos algoritmos fica por conta do lugar onde as estruturas de repetição deverão ser colocadas para atender às exigências dos enunciados. Conceitos Iniciais Estruturas de Repetição: É uma estrutura que permite que uma seqüência de comandos seja executada repetidamente até que uma determinada condição de interrupção seja satisfeita. Conceitos Iniciais Estrutura de Repetição PARA: Usada quando o número de repetições for conhecido durante a elaboração do algoritmo ou quando puder ser fornecido durante a execução. Estrutura de Repetição PARA Fluxograma Representando a Estrutura PARA F v.inicial , cond., incr. V Comando Uma única condição, expressão lógica, é avaliada. PARA o resultado verdadeiro (S1M) um determinado conjunto de instruções é executado. O incremento é feito e condição é testada novamente. Estrutura de Repetição PARA Estrutura de Repetição PARA : Sintaxe: para ( valor inicial ; <condição> ; <valor do incremento> ) { Bloco de comandos } PARA a condição verdadeira (1) o(s) comando(s) entre as {} serão executados. prog AlgoritmoContarde1a3 int cont; cont cont <=3 ? ? ... ... 1 ? 1 V 2 V 3 V 4 F Memória para (cont <- 1; cont <= 3; cont++) { imprima cont, "\n"; } Loop fimprog Condição Passo1 - Inicializa a variável de controle, aqui chamada de cont. Passo3 - Incrementa variável de controle; retorna ao Passo2. 1 2 3 Monitor Passo2 - Testa a condição, de for verdadeira executa o conjunto de instruções, caso contrário encerra o PARA. Exercícios Algoritmo 174 Imprimir todos os números de 1 até 100. Algoritmo 175 Imprimir todos os números de 100 até 1. Algoritmo 176 Imprimir os 100 primeiros pares. Algoritmo 177 Imprimir os múltiplos de 5, no intervalo de 1 até 500. Algoritmo 178 Imprimir o quadrado dos números de 1 até 20. Algoritmo 183 Entrar com 10 numeros e imprimir o quadrado de cada numero. Algoritmo 190 Entrar com um nome, idade e sexo de 20 pessoas. Imprimir o nome se a pessoa for do sexo masculino e tiver mais de 21 anos. Conceitos Iniciais Estrutura de Repetição ENQUANTO: Estrutura recomendada quando o número de repetições for desconhecido, sendo necessária uma chave (um teste ou flag) para interromper a repetição. É uma estrutura que testa a condição no início, e só repete se a condição for verdadeira. Uma das perguntas mais comuns é: “o comando leia vem antes ou depois da estrutura de repetição?” Estrutura de Repetição ENQUANTO Fluxograma Representando a Estrutura ENQUANTO F Condição V comando Uma única condição, expressão lógica, é avaliada. ENQUANTO o resultado for verdadeiro (S1M) um determinado conjunto de instruções é executado. E a condição é testada novamente. Estrutura de Repetição ENQUANTO Estrutura de Repetição ENQUANTO: Sintaxe: enquanto (condição) { Bloco de comandos; } Enquanto a condição for verdadeira (1) o(s) comando(s) entre as {} serão executados. Estrutura de Repetição ENQUANTO Estrutura de Repetição ENQUANTO: Nos exemplos a seguir, mostraremos a importância da chave e da inicialização da variável que faz parte da expressão que controla a repetição. Estrutura de Repetição ENQUANTO Estrutura de Repetição ENQUANTO: prog algoritmo258 real num; enquanto( num > 0.0) { imprima "\nDigite o numero: "; leia num; imprima "\nDobro: ", num * 2; } imprima "\n"; fimprog Fail: variável num nãoinicializada. Estrutura de Repetição ENQUANTO Estrutura de Repetição ENQUANTO: prog algoritmo259 real num; imprima "\nDigite o numero: "; leia num; enquanto( num >0.0) { imprima "\n Dobro: ", num *2; } imprima "\n"; Fimprog Digite o número: 8 Dobro: 16 Dobro: 16 Dobro: 16 Dobro: 16 Dobro: 16 Dobro: 16 Dobro: 16 Observação: o algoritmo entra em loop. Estrutura de Repetição ENQUANTO Estrutura de Repetição ENQUANTO: prog algoritmo260 real num; imprima "\nDigite numero: "; leia num; enquanto( num > 0.0) { imprima "\nDobro: ", num *2; imprima "\nDigite numero: "; leia num; } imprima "\n"; fimprog Digite numero: 8 Dobro: 16 Digite numero: 45 Dobro: 90 Digite numero: 0 Estrutura de Repetição ENQUANTO Resumo Repetição ENQUANTO: Usamos de duas formas: 1leia nome da variável presente na condição; enquanto (condição que inclui a variável do comando leitura) { BLOCO DE COMANDOS ; leia nome da variável presente na condição; } Estrutura de Repetição ENQUANTO Resumo Repetição ENQUANTO: 2nome da variável presente na condição <- valor; enquanto (condição que inclui a variável do comando de atribuição) { BLOCO DE COMANDOS ; nome da variável presente na condição <- nome da variável presente na condição <um operador> valor; } Estrutura de Repetição ENQUANTO “LEMA” Um comando de leia (ou de atribuição) antes do enquanto para entrar na repetição e um comando leia (ou de atribuição) ates do }, para sair da repetição. Estrutura de Repetição ENQUANTO Simulação da Estrutura PARA utilizando ENQUANTO: prog enqpara int a; a <- 1; enquanto (a <= 10) { imprima “\n”, a ; a++; } imprima “\n”; fimprog Comparativo: (Para) X (Enquanto) Para int i, N, Valor,Soma <- 0; leia N; para (i<- 0; i<N; i++) { leia Valor; Soma <- Soma + Valor; } Enquanto int i, N, Valor,Soma <- 0; leia N; i <- 0; enquanto (i < N) { leia Valor; Soma <- Soma + Valor; i++ ; } Conceitos Iniciais Estrutura de Repetição FAÇA ... ENQUANTO: Estrutura recomendada quando o número de repetições for desconhecido, sendo necessária uma chave (um teste ou flag) para interromper a repetição. Semelhante ao ENQUANTO, porém, a condição é testada ao final do laço, então os comandos dentro do laço são executados pelo menos 1 vez. Estrutura de Repetição FAÇA… Fluxograma Representando a Estrutura FAÇA… Comando1 ... Comando2 ComandoN V condição F Uma única condição, expressão lógica, é avaliada. FAÇA um determinado conjunto de instruções ENQUANTO o resultado da condição for verdadeiro (S1M) . Estrutura de Repetição FAÇA… Estrutura de Repetição FAÇA ... ENQUANTO: Sintaxe: faca { Bloco de comandos; } enquanto (condição) Faça ) a execução do(s) comando(s) entre as {} Enquanto a condição for verdadeira (1). Estrutura de Repetição FAÇA Simulação da Estrutura PARA utilizando FAÇA ... ENQUANTO: prog facaenqpara int a; a <- 1; faca { imprima “\n”, a; a++; } enquanto (a <= 10) imprima “\n” ; fimprog Qual Estrutura Usar ??? Para Sabe-se o número de repetições Enquanto Não sabe-se o número exato de repetições Faça ... Enquanto Não sabe-se o número de repetições, executando pelo menos uma vez. Toda estrutura ENQUANTO pode ser convertida para Faça...Enquanto e vice-e-versa; Toda estrutura PARA pode ser convertida em ENQUANTO, mas nem toda estrutura ENQUANTO pode ser convertida em PARA. Referências Lopes, A. & Garcia, G. – Introdução a Programação. Schildt – C Completo e Total. Obrigado E Agora??? Exercícios!!! •Exercícios Algoritmo 262 Entrar com números e imprimir o triplo de cada número. O algoritmo acaba quando entrar o numero -999. Algoritmo 263 Entrar com números enquanto forem positivos e imprimir quantos números foram digitados. Algoritmo 264 Entrar com vários números positivos e imprimir a média dos números digitados. Algoritmo 265 Ler vários números e informar quantos números entre 100 e 200 foram digitados. Quando o valor 0(zero) for lido, o algoritmo devera cessas sua execução. Algoritmo 266 Entrar com nomes enquanto forem diferentes de FIM e imprimir o primeiro caractere de cada nome.