Baixe o app para aproveitar ainda mais
Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
ECT1203 Linguagem de Programação 2012.1 Prof. Diego Rodrigues de Carvalho Profa. Idalmis Milián Sardina Prof. Luiz Eduardo Cunha Leite Prof. Marconi Câmara Rodrigues Prof. Marcelo Henrique Ramalho Nobre Aula 06 – Comandos de repetição Universidade Federal do Rio Grande do Norte Escola de Ciências e Tecnologia Hora de silenciar o celular Manter o celular sempre desligado/silencioso quando estiver em sala de aula Nunca atender o celular em sala de aula Revisão da aula anterior Como o programa faz para decidir que conjunto de instruções ele deve executar (Estruturas de seleção). Seleção simples (if) if (delta < 0) cout << “Raiz de número negativo”; Seleção composta (if-else) if(chance > 50) cout << “o gato está vivo”; else cout << “o gato está morto”; Seleção Encadeada (if-else-if) if (vento >= 62 && vento <=118) cout << “tempestade tropical”; else if (vento > 118) cout << “o vento é algum tipo de furacão”; else cout << “o vento normal”; Seleção encadeada homogênea if (nota > 7) cout << “aluno aprovado”; if (presenca > 75) cout << “o aluno esteve presente a maioria das aulas”; Múltipla escolha switch (opcao){ case ‘s’: cout << “sim”; break; case ‘n’: cout << “não”; break; default: cout << “opção inválida”; } Objetivo da aula Responder as seguintes perguntas: Aula passada eu vi como escolher entre um determinado conjunto de instruções para executar, mas será que seria possível eu executar esse conjunto de instruções diversas vezes? Eu sempre precisarei de uma condição para escolher entre um conjunto de instruções? Aluno que não sabe programar int main() { cout << “Eu serei um bom menino\n”; cout << “Eu serei um bom menino\n”; cout << “Eu serei um bom menino\n”; cout << “Eu serei um bom menino\n”; cout << “Eu serei um bom menino\n”; cout << “Eu serei um bom menino\n”; cout << “Eu serei um bom menino\n”; cout << “Eu serei um bom menino\n”; ... cout << “Eu serei um bom menino\n”; return 0; } Aluno que sabe programação Comandos de Iteração ou Laços de Repetição permitem que um determinado comando ou bloco de comandos seja executado mais de uma vez; Um comando ou bloco de comandos é executado repetidamente até que uma determinada condição seja alcançada; Na linguagem C++, existem três tipos de comandos de repetição: Laços while Laços do-while Laços for Comandos de Repetição ou Iteração Comando de Repetição Enquanto Em Portugol... enquanto condição faça seqüência de comandos fimEnquanto sintaxe: 10 Fluxograma Comando de Repetição while Na Linguagem C++... while (expressão) comando; sintaxe O comando interno ao laço while é executado repetidamente enquanto a expressão de execução for verdadeira (diferente de zero) . Comando Interno: - Simples - Bloco - Nada A expressão é avaliada no início do laço. CodeBlocks Faça um programa que peça para o usuário digitar um número, e só pare de pedir quando o usuário digitar o número 10. CodeBlocks Faça um programa que peça para o usuário digitar um número, e só pare de pedir quando o usuário digitar o número 10. int num = 0; num != 10 cin >> num; fim não sim inicialização teste atualização Comando de Repetição while Na Linguagem C++... int numero; numero = 0; while (numero != 10) { cout << “Digite um número”; cin >> numero; } EXEMPLO Laço Infinito Um laço infinito ou loop infinito é um laço de repetição cuja condição para repetição é sempre verdadeira. O bloco de comandos internos do laço é executado indefinidamente. Atenção! int numero; numero = 0; while (numero != 10 ) cout << numero; EXEMPLO A condição numero!=0 nunca muda pois dentro do laço nenhum comando modifica o valor da variável numero. A instrução cout é executada indefinidamente. Solução do Horward(algoritmo da amizade) Dica de programação Toda estrutura de repetição tem 3 componentes Inicialização: Estabelece as condições iniciais para que a estrutura de repetição possa funcionar. Teste: Testa alguma condição para saber quando parar de repetir. Atualização: Modifica a variável que está sendo testada para evitar que ocorra o loop infinito. Comando de Repetição while Na Linguagem C++... int numero; numero = 0; while (numero != 10) { cout << “Digite um número”; cin >> numero; } EXEMPLO Como a condição é avaliada no início do laço, o bloco de comandos internos do laço só será executado pelo menos uma vez, se a condição for inicialmente verdadeira. Atenção! Dica de programação Diferença entre ++variavel e variavel++ ++variavel = O valor da variável é modificada no momento que o compilador encontra a instrução. Variavel++ = O compilador deixa para executar a instrução após a execução da linha onde se encontra. Exemplos while ( num < 10){ Idade = 35; cont = ++num + 5; //valor de num é modificado antes da atribuição. peso = 80.4; altura = 1.87; } while ( num < 10){ Idade = 35; cont=num++ + 5; //valor de num é modificado após a atribuição. peso = 80.4; altura = 1.87; } Comando de Repetição Repita Em Portugol... Repita seqüência de comandos Enquanto condição sintaxe: 23 Fluxograma Comando de Repetição do - while Na Linguagem C++... do { comando; } while (expressão); sintaxe O comando interno ao laço do é executado repetidamente enquanto a expressão for verdadeira (diferente de zero) . O comando é executado pelo menos uma vez. Comando Interno: - Simples - Bloco - Nada A expressão é avaliada no final do laço. Codeblocks Faça o problema anterior, dessa vez usando o do... while. Codeblocks Faça o problema anterior, dessa vez usando o do... while. int num ; num != 10 cin >> num; fim inicialização teste atualização sim não Comando de Repetição do - while Na Linguagem C++... int numero; do { cout << “Digite um número”; cin >> numero; } while (numero != 10) ; EXEMPLO Como a condição é avaliada no final do laço, o bloco de comandos internos sempre será executado na primeira iteração do laço. A partir da segunda iteração, será executado enquanto a condição for verdadeira. Atenção! Projeto E-guia http://www.youtube.com/watch?v=_rcRZQkk6W4 do{ localizacao(onibus); localizacao(usuario); calculodistancia; }while (distancia > 3); cout << “seu ônibus chegou”; Comando de Repetição Para Em Portugol... Para var_controle de valor_inicial até valor_final passo valor_passo faça seqüência de comandos Fim para sintaxe: O número de repetições no loop (laço) está previamente determinado pelo valor inicial e pelo valor final da variável de controle. 31 Fluxograma Comando de Repetição for Na Linguagem C++... for (inicialização; condição; incremento) comando; sintaxe O conceito associado a um laço for da linguagem C++ é encontrado na grande maioria das linguagens procedurais. No entanto, em C++ essa construção é bem mais flexível. Comando: - Simples - Bloco - Nada Comando Expressão Comando Passo a Passo de um laço for Na Linguagem C++... for (inicialização; condição; incremento) comando; sintaxe Comando Expressão Comando 1 – O Comando de inicialização é executado 2 – Se expressão condição for falsa, o laço é finalizado 3 – O comando ou bloco de comandos internos é executado 4 – O comando incremento é executado 5 – Volta para o passo 2 PASSO A PASSO Codeblocks Faça um programa que conte de 0 a 9 Codeblocks Faça um programa que conte de 0 a 9 i= 0; i < 10; i++ (inicialização; teste; atualização) cout << i; I 0 I 1 I 2 I 3 I 4 I 5 I 6 I 7 I 8 I 9 Memória(ao longo do tempo) Comando de Repetição for Na Linguagem C++... //Nesse exemplo, a variável i vai assumir inicialmente // valor 0, será incrementada com passo 1, até atingir // o valor 10, quando a condição do laço não mais será //verdadeira. Os valores de 0 a 9 são impressos. int i; // Variável de Controle for ( i = 0; i < 10; i = i + 1 ) { cout << i; } EXEMPLO Comando de Repetição for Na Linguagem C++... // Nesse exemplo, as variáveis i e j são inicializadas juntas // no comando de inicialização, utilizando o operador vírgula. // As variáveis também podem ser incrementadas // no comando de incremento, usando o operador vírgula int i, j; for ( i = 0, j = 10; i < j; i = i+1, j = j-1 ) { cout << i; } EXEMPLO 38 Comando de Repetição for Na Linguagem C++... int i, j; for (i = 0, j = 0; i < 10 && j < 10; i = i+1, j = j+1) cout << i << “ “ << j; EXEMPLO int i, j; for ( i = 0; i < 10; i = i + 1) for ( j = 0; j < 10; j = j + 1 ) cout << i << “ “ << j; EXEMPLO Utilizar duas variáveis de controle em um mesmo laço for NÃO tem o mesmo efeito que usar um for dentro do outro. Atenção! 39 Comando break O comando break também pode ser utilizado para finalizar imediatamente um laço de repetição, independentemente do valor da sua condição de execução em um dado momento. int i = 10; while ( i > 0 ) { i = i – 1; cout << i; if ( i == 5 ) break; } EXEMPLO Quando a variável i tiver valor 5 e o comando break for executado, o laço while será imediatamente finalizado Comando continue O comando continue trabalha de forma um pouco parecida com o comando break. Porém, em vez de forçar o término, continue força que ocorra a próxima iteração do laço, pulando qualquer código intermediário. int i; for(i = 0; i < 10; i++){ if(i == 5) continue; cout << i; } EXEMPLO Para o laço for, continue faz com que o incremento e o teste condicional sejam executados. No exemplo, quando a variável i tiver valor 5 e o comando continue for executado, seu valor não será impresso. Comando continue O comando continue trabalha de forma um pouco parecida com o comando break. Porém, em vez de forçar a término, continue força que ocorra a próxima iteração do laço, pulando qualquer código intermediário. int i = 0; while (i < 10){ if(i == 5) continue; cout << i; i++; } EXEMPLO Para os laço while e do-while, continue faz com que o teste condicional seja executado. No exemplo, quando a variável i tiver valor 5 , ela não será mais incrementada, causando um laço infinito. Objetivo da aula Responder as seguintes perguntas: Aula passada eu vi como escolher entre um determinado conjunto de instruções para executar, mas será que seria possível eu executar esse conjunto de instruções diversas vezes? Eu sempre precisarei de uma condição para escolher entre um conjunto de instruções? Exercício 1 Utilizando laços de repetição, faça um programa na linguagem C++ que imprima os 50 primeiros números inteiros pares positivos. Exercício 2 Num frigorífico existem 90 bois. Cada boi traz preso no pescoço um cartão contendo seu número de identificação e seu peso. Fazer um programa na linguagem C++ que escreva o número e peso do boi mais gordo e do boi mais magro. Exercício 3 Faça um programa na linguagem C++ que solicite ao usuário uma conjunto de números inteiros. A leitura de dados terminará quando for ingressado o número zero. Informar, ao término do programa, se dentre os números digitados pelo usuário está o número 100. Dica: Utilize o conceito de (flag) Exercício 4 Suponha que no ano N a população americana seja maior que a brasileira. Sabendo-se que os Estados Unidos possuem um crescimento anual de 2% na sua população e que o Brasil tem crescimento anual de 4%, determinar o ano em que as duas populações serão iguais (em quantidade). São dados os números de habitantes dos Estados Unidos e do Brasil no ano N.
Compartilhar