Baixe o app para aproveitar ainda mais
Prévia do material em texto
Os códigos vão ficar menores – Chegaram as estruturas de repetição Estruturas de repetição: Estrutura do for - Estrutura ideal quando o número de repetições for conhecido durante a elaboração do programa ou quando o usuário puder fornecê-lo durante a execução. Sua lógica é: repete enquanto a variável contadora não tiver ultrapassado seu valor final estipulado na estrutura. Como ela testa antes de executar o bloco, pode ser que nem execute o bloco se a condição, de início, for falsa. ��� Estrutura while - Estrutura que testa no início e é usada quando o número de repetições for desconhecido. Sua lógica é: repete enquanto a condição for verdadeira. Como ela testa antes de executar o bloco, pode ser que nem execute o bloco se a condição, de início, for falsa. As chaves só serão obrigatórias se o bloco tiver mais de um comando. Um comando scanf/fgets/getchar/fgetc (ou de atribuição) antes do while para entrar na repetição e um comando scanf/fgets/getchar/fgetc (ou de atribuição) antes da }, para repetir ou sair da repetição. � � Estrutura do...while - Estrutura usada quando o número de repetições for desconhecido. Sua diferença em relação à estrutura while é que ela testa ao final, significando que executa o bloco de comandos pelo menos uma vez. Essa estrutura também precisa de um teste para interromper a repetição. Sua lógica é: repete enquanto a condição for verdadeira, mas, como ela testa ao final, executa pelo menos uma vez o bloco, diferenciando-a da estrutura while. A lógica de construção de um trecho, usando nessa estrutura, é mais parecida com a estrutura do for, não precisando de leitura/atribuição antes do do para entrar na estrutura. � � Tanto a estrutura while quanto a estrutura do... while repetem o bloco de comandos enquanto o teste retornar um resultado verdadeiro. Dentro da repetição, só há uma função de leitura ou comando de atribuição. A função de leitura ou comando de atribuição, que aparece antes da estrutura while, possibilita a entrada do primeiro valor que, se não passar pelo teste, não executará o bloco, mas se o valor passar então, a execução do programa ficará nesse bloco até que se digite um valor que não satisfaça mais à condição. Se dentro desse bloco não estiver presente uma função de leitura ou comando de atribuição, como os valores, a partir do segundo até o último, poderão ser lidos? Isso implicaria que o primeiro valor lido, se maior do que zero, ficaria armazenado para sempre na variável num e o programa entraria em loop como ficou a segunda solução. For simula While: For simula do…While: � � While simula For: While simula do…While: � � do…While simula For: do…While simula While: � � Aninhando as estruturas - Uma estrutura dentro de outra estrutura de repetição é algo muito comum. Seja para proteger a entrada de dados ou para muitas outras finalidades. For dentro do For: Um for mais externo que assumirá os valores das colunas e for mais interno, como um temporizador, visto que o objetivo é montar um letreiro. O objetivo é só para você fixar que o ; ao final da linha do for, só gerará uma PA ou PG internamente, mas não repete o bloco. É necessário ter a biblioteca conio2.h(Borland). � � While dentro do For: � Exemplo: 1) Se a estrutura for ou while ou do… while só tiver um comando para ser repetido, é obrigatório as { } para envolver o comando? R: for e while, NÃO. do...while, SIM. Exemplo: 2) Todas as estruturas podem repetir um número determinado de vezes, mas qual a estrutura que, por definição, já faz isso? R: A estrutura do for. Exemplo: 3) Qual(is) a(s) desvantagem(ens) em se usar a estrutura while para simular a estrutura do…while? R: Forçar a entrada e fazer dois testes. Exemplo: 4) Identifique qual testa no início e qual testa ao final: a) while b) for R: for e while – Início do...while - FINAL c) do...while Exemplo: 5) Qual a estrutura mais usada para fazer trechos de proteção? R: while 1a Questão (Ref.: 201309296491) A estrutura de decisão switch é extremamente poderosa na linguagem C. Dado o código: #include < stdio.h> #include < stdlib.h> void main(){ int x=1, a; do{ for(a = 1; a<2;a++){ a+=1; } printf("%d",x); printf("%d",a); }while(x++<2); system("PAUSE"); } Selecione a opção correta: O programa exibirá 1222 O programa exibirá 1232 O programa exibirá 2332 O programa exibirá 3233 O programa exibirá 1323 2a Questão (Ref.: 201309287264) Observe o trecho de código abaixo e suponha que foi digitado o número 1762. Qual das opções abaixo corresponde à saída? 2671 1762 1762 12671 1762 0 2671 0 12671 1762 3a Questão (Ref.: 201309301119) Para o desenvolvimento de nossos programa na linguagem C, contamos com 3 tipos básicos de estruturas de repetição, for, while e do..while. O funcionamento e aplicação dos mesmos tem pequenas diferenças. int i; for(i=0; i < 10; i+=2) if (i%2) printf("%d",i); printf("%d",i); Supondo que as demais linhas necessárias para o funcionamento do programa estejam devidamente criadas e baseado no trecho de código apresentado, o que será exatamente apresentado na tela após a sua execução. 0246810 10 024681010 0 2 4 6 8 10 02468
Compartilhar