Baixe o app para aproveitar ainda mais
Prévia do material em texto
Aula 06Linguagem de Programação I - UNIGRAN ESTRUTURAS DE REPETIÇÃO Nesta aula veremos as estruturas de repetição, que são mecanismos que possibilitam que determinadas instruções sejam executadas várias vezes. As estruturas de repetição trabalham em conjunto com as estruturas condicionais e as estruturas seqüenciais. Toda estrutura de repetição precisa ter um ponto de partida e um ponto de chegada, ou seja, ela vai executar algumas instruções à partir de uma condição inicial até uma condição final. Nesta aula, veremos as seguintes estruturas de repetição: • O laço for • while • do.. while Objetivos de aprendizagem Ao término desta aula, vocês serão capazes de: • conhecer as estruturas de repetição acima propostas. • identificar a melhor estrutura para cada situação. • entender a funcionalidade das estruturas propostas. 117 Linguagem de Programação I - UNIGRAN Seções de estudo • Seção 1 – O laço for • Seção 2 – Estrutura de repetição while • Seção 3 – Estrutura de repetição do.. while Seção 1 – Estrutura de repetição for A linguagem C possui três estruturas de repetição: for, while e do.. while, nesta seção, veremos a estrutura loop (laço) for. O laço for executa uma ou várias instruções enquando uma condição não é alcançada. Esta condição é imposta na sua criação e é ela a responsável por fazer com que o laço pare de executar em determinado momento, controlando-se desta maneira o número de vezes que o laço será executado. Sintaxe: for (inicialização; condição; incremento) { instrução 1; instrução 2; } Vamos ver o funcionamento do for, explicando mais detalhadamente: inicialização; if (condição) { incremento; instrução 1; instrução 2; execute o if novamente; } Entendendo melhor: → Podemos perceber que a inicialização sempre é executada. → Depois a condição é verificada através do if, • Se a condição for falsa, não faz nada. 118 Linguagem de Programação I - UNIGRAN • Se a condição for verdadeira, o bloco que se encontra dentro de {} será executado. • O teste do if será realizado novamente. Podemos dizer que este trecho será executado enquanto a condição for verdadeira. Geralmente a variável que é inicializada é a mesma que estará presente na condição de parada do for e também no incremento. Regras para for: 1. Por ser uma função, for utiliza-se de parênteses; 2. As instruções que estiverem dentro do for são separadas por ponto-e-vírgula; 3. Depois dos parênteses do for, NÃO existe ponto-e-vírgula (somente dentro dos parênteses, e separando as instruções); 4. Se o for possuir somente uma instrução, não é necessário usar { } para abrir e fechar. O compilador automaticamente vai considerar somente a próxima linha como sendo o bloco do for. Vamos ver um programa? Problema: Mostraremos os 100 primeiros números inteiros positivos. Inicialização: i =1; Condição: i <= 100; Incremento: i++; Podemos observar que o programa vai executar o conteúdo (bloco) do for cem vezes, já que i inicia-se em 1 e enquanto i for menor do que cem o cout que está dentro do bloco do for vai exibir o valor de i. Podemos ver a tela de saída do programa representado pela figura 6.1, através da figura 6.2. Note que: FIGURA 6.1 - Utilização do comando for Fonte: criação nossa 119 Linguagem de Programação I - UNIGRAN Podemos usar um for dentro de outro for? Sim, podemos. Muitas vezes será necessário criar um for dentro de outro para resolver situações mais complexas, Quando isto ocorre, dizemos que o for que foi criando dentro do outro for, está aninhado. Vamos ver um exemplo. Problema: Calcular e mostrar a tabuada dos números de 1 a 5 Podemos ver a tela de saída do programa descrito na figura anterior, na figura 6.4. FIGURA 6.2 – Tela de saída do programa representado pela fi gura 6.1 Fonte: criação nossa FIGURA 6.3 - Utilização do comando for aninhado Fonte: criação nossa 120 Linguagem de Programação I - UNIGRAN Seção 2 – Estrutura de repetição while A instrução while é a mesma instrução Enquanto, vista na linguagem Portugol. Essa instrução executa as instruções que estão dentro do laço enquanto FIGURA 6.4 – Tela de saída do programa representado pela fi gura 6.3 Fonte: criação nossa Usamos o laço for, quando sabemos de antemão, o número de repeƟ ções que devem ocorrer. 121 Linguagem de Programação I - UNIGRAN uma condição previamente estabelecida for verdadeira. Toda instrução de repetição é comumente conhecida como loop, que significa laço, exatamente porque fica repetindo o mesmo conteúdo até que a condição (descrita na entrada do loop) seja falsa. Sintaxe: while (condição) { instrução 1; instrução 2; } Regras para while: 1. A condição do while sempre deve estar entre parênteses; 2. Depois dos parênteses do while NÃO existe ponto-e-vírgula; 3. Se o while possuir somente uma instrução, não é necessário usar { } para abrir e fechar. O compilador automaticamente vai considerar somente a próxima linha como sendo o bloco de instruções do while. 122 Linguagem de Programação I - UNIGRAN Exemplo: Criar um programa para pedir ao usuário que informe vários números. Até que o número informado por ele, seja igual a zero. A saída do programa visto pela figura 6.5, pode ser vista na figura 6.6. Note que os valores informados foram: 6,5,3,8,0 – nesta ordem. Vamos ver mais um exemplo? Exemplo: criar um programa que vai ler quantos números o usuário desejar, e ao final mostrar a soma destes números. FIGURA 6.5 - Utilização do while Fonte: criação nossa FIGURA 6.6 – Tela de saída do programa representado pela fi gura 6.5 Fonte: criação nossa 123 Linguagem de Programação I - UNIGRAN Na figura abaixo podemos ver a tela de saída do programa apresentado na figura 6.7. Observe que os valores informados foram: 6, 7, 2, 5 (nesta ordem). Seção 3 – Estrutura de repetição do.. while Ao contrário da instrução de repetição while, que testa a condição de continuação do loop logo no início, o do while testa essa condição no final. Assim sendo, o programa sempre vai executar as instruções contidas no corpo da instrução do while pelo menos uma vez, até que a condição seja falsa. Ficou muito complicado? A seguir, veremos alguns exemplos. Sintaxe: FIGURA 6.7 - Utilização do while – somando todos os números informados pelo usuário Fonte: criação nossa FIGURA 6.8 – Tela de saída do programa representado pela fi gura 6.7 Fonte: criação nossa 124 Linguagem de Programação I - UNIGRAN do { instrução 1; instrução 2; } while (condição); Explicando melhor: Regras para do.. while: 1. A condição sempre deve estar entre parênteses; 2. Depois dos parênteses do NÃO existe ponto-e-vírgula; 3. Se o do.. while possuir somente uma instrução, não é necessário usar { } para abrir e fechar. O compilador automaticamente vai considerar somente a próxima linha como sendo o bloco de instruções do do.. while. Exemplo: Queremos que o usuário informe vários números inteiros menores do que 10. Quando ele digitar um número maior do que 10 o programa deve parar a execução e mostrar a soma dos números pares que foram informados pelo usuário. 125 Linguagem de Programação I - UNIGRAN Podemos ver a saída do programa apresentado na figura 6.9, através da figura abaixo: Note que os valores pares informados pelo usuário foram: 2, 4, 6, 8, 10, e sua soma é igual a 30. Vamos a mais um exemplo? Exemplo: criar um programa que lê vários caracteres, até que o caracter digitado seja igual a “.” (ponto final). FIGURA 6.9 - Utilização do do.. while – somando todos os números pares informados pelo usuário Fonte: criação nossa FIGURA 6.10 – Tela de saída do programa representado pela fi gura 6.9 Fonte: criação nossa 126 Linguagemde Programação I - UNIGRAN O resultado do programa visto na figura 6.11 pode ser visto através da figura abaixo, onde os valores informados foram: a,b,c,d,e,. Retomando a conversa inicial FIGURA 6.11 - Utilização do do.. while – informando várias letras, até um ponto fi nal ser digitado Fonte: criação nossa FIGURA 6.12 – Tela de saída do programa representado pela fi gura 6.11 Fonte: criação nossa Vamos relembrar um pouco do que vimos na aula 6? 127 Linguagem de Programação I - UNIGRAN • Seção 1 – O laço for Vimos que o laço for repete uma ou mais instruções por um determinado número de vezes que é conhecido desde o início. Esta estrutura é muito utilizada nestes casos em que sabemos o número de vezes que o laço deve ser executado. • Seção 2 – Estrutura de repetição while A estrutura while, assim como for, executa uma ou mais instruções várias vezes. A diferença é que no caso de while não é necessário conhecer, de antemão, o número de vezes que o laço vai se repetir. Sendo mais flexível do que o for, pode ser usada substutindo-o ou em casos em que o for não se encaixa (quando temos uma condição de parada que não seja um número que cresce ou decresce). • Seção 3 – Estrutura de repetição do.. while Muito parecida com a estrutura while (e muitas vezes elas são confundidas). A diferença entre as duas está no simples fato de que do.. while executa todas as instruções contidas dentro do seu laço, antes que a condição de parada seja testada. Este, pode ser um facilitador, caso a condição de parada dependa de algum valor que deve ser lido/atualizado dentro do laço. Sugestões de leituras e sites Leituras Leia os itens 3.5 e 3.6 do livro: C, A Linguagem de Programação Padrão ANSI. Sites • http://www.ic.unicamp.br/~wainer/cursos/2s2011/Cap06-RepeticaoControle-texto.pdf Autoavaliação Veja se aprendeu a Aula 05 respondendo ao questionário auto-avaliativo. Depois confi ra o resultado das respostas, que está disponível na ferramenta Arquivos da plataforma. 1. No laço for, se a condição de parada for falsa, as instruções contidas dentro do laço será executadas uma última vez. 128 Linguagem de Programação I - UNIGRAN ( ) Verdadeiro ( ) Falso 2. Se o bloco do for contiver apenas uma instrução, ela obrigatoriamente deve estar entre chaves {}. ( ) Verdadeiro ( ) Falso 3. Podemos ter um for dentro de outro for. ( ) Verdadeiro ( ) Falso 4. while testa a condição antes de executar as instruções contidas dentro dele. ( ) Verdadeiro ( ) Falso 5. Podemos ter apenas uma condição no while. ( ) Verdadeiro ( ) Falso 6. A diferença entre while e do.. while é que o primeiro testa a condição no início, e o segundo no fi m ( ) Verdadeiro ( ) Falso 7. Tanto while, como do.. while não tem ponto-e-vírgula depois dos parênteses que contém a condição. ( ) Verdadeiro ( ) Falso 129 Linguagem de Programação I - UNIGRAN 130
Compartilhar