Baixe o app para aproveitar ainda mais
Prévia do material em texto
Estruturas de Repetição | Introdução à Computação 1 de 182014 © MdaS Estruturas de RepetiEstruturas de RepetiEstruturas de RepetiEstruturas de Repetiççççãoãoãoão � Alguns cálculos realizados pelo computador são feitos de forma repetitiva � Exemplos: � Cálculo de 25! � Soma dos 100 primeiros números naturais não-nulos fat = 25*24*23*22*21*20*19*18*17*16*15*14*13*12*11*10*9*8*7*6*5*4*3*2*1; s = 100 + 99 + 98 + 97 + 96 + 95 + 94 + 93 + 92 + 91 + 90 + 89 + 88 + 87 + 86 + 85 + 84 + 83 + 82 + 81 + 80 + 79 + 78 + 77 + 76 + 75 + 74 + 73 + 72 + 71 + 70 + 69 + 68 + 67 + 66 + 65 + 64 + 63 + 62 + 61 + 60 + 59 + 58 + 57 + 56 + 55 + 54 + 53 + 52 + 51 + 50 + 49 + 48 + 47 + 46 + 45 + 44 + 43 + 42 + 41 + 40 + 39 + 38 + 37 + 36 + 35 + 34 + 33 + 32 + 31 + 30 + 29 + 28 + 27 + 26 + 25 + 24 + 23 + 22 + 21 + 20 + 19 + 18 + 17 + 16 + 15 + 14 + 13 + 12 + 11 + 10 + 9 + 8 + 7 + 6 + 5 + 4 + 3 + 2 + 1; Estruturas de Repetição | Introdução à Computação 2 de 182014 © MdaS Estruturas de RepetiEstruturas de RepetiEstruturas de RepetiEstruturas de Repetiççççãoãoãoão � Para se evitar repetições cansativas na escrita de um programa São utilizadas estruturas que repetem um determinado conjunto de instruções � Para isto, são utilizadas as estruturas de repetiestruturas de repetiestruturas de repetiestruturas de repetiççççãoãoãoão Estruturas de Repetição | Introdução à Computação 3 de 182014 © MdaS Estruturas de RepetiEstruturas de RepetiEstruturas de RepetiEstruturas de Repetiççççãoãoãoão � São utilizadas quando há uma grande quantidade de tarefas a ser repetida em um programa � Para o seu funcionamento correto, é necessário: � Ser limitado: encerrar quando uma expressão lógica não for mais verdadeira ou após uma quantidade fixa de execuções � Variável de controle: responsáveis por determinar o sequenciamento de ações ao longo da execução do laço � Existem três estruturas de repetição distintas: Estruturas de Repetição | Introdução à Computação 4 de 182014 © MdaS RepetiRepetiRepetiRepetiçççção com teste no inão com teste no inão com teste no inão com teste no iníííício cio cio cio ---- while � Consiste na repetição das instruções controladas por expressões relacionais e/ou lógicas feitas no ininininííííciociociocio da estrutura � Semelhante ao da estrutura if � Deve existir um contador, que é uma variável que controla o laço de repetição � É necessário que ela seja: � Iniciada � Comparada � Atualizada S = 0; cont = 1; while (cont <= 100) { S = S + cont; cont = cont + 1; } printf("Soma = %d", S); Estruturas de Repetição | Introdução à Computação 5 de 182014 © MdaS RepetiRepetiRepetiRepetiçççção com teste no fim ão com teste no fim ão com teste no fim ão com teste no fim –––– do...while � Consiste na repetição das instruções controladas por expressões relacionais e/ou lógicas feitas no finalfinalfinalfinal da estrutura � Executa ao menos uma vez o conteúdo da estrutura do { system("cls"); printf("Entre com um numero entre 0 e 9"); scanf("%d", &n); } while ((n < 0) || (n >= 10)); printf("Algarismo = %d", n); Estruturas de Repetição | Introdução à Computação 6 de 182014 © MdaS ExemploExemploExemploExemplo � Inserir um número e exibir a sua tabuada #include <stdio.h> #include <stdlib.h> int n, cont, P; int main() { printf("Insira um numero:"); scanf("%d", &n); cont = 1; while (cont <= 10) { P = n * cont; printf("%d * %d = %d\n", n, cont, P); cont = cont + 1; } system("PAUSE"); } Desse jeito, fica fácil... Vou passar no 3º!!! Estruturas de Repetição | Introdução à Computação 7 de 182014 © MdaS ObservaObservaObservaObservaççççõesõesõesões � Estruturas de repetição devem sempre ser finitas! � Caso contrário, o programa deverá cair em um loop infinito � Ou seja, executar o bloco de repetição infinitas vezes � Pode ocorrer por causa da falta de alteração da variável de controle � Ou pela má formação da expressão relacional ou lógica Estruturas de Repetição | Introdução à Computação 8 de 182014 © MdaS ExercExercExercExercíííícioscioscioscios 1. Calcule o valor de S, utilizando estruturas de repetição, dado por: a) b) 2. Dado um valor n inserido pelo usuário, calcular e exibir a) A soma de todos os múltiplos de 3 entre 0 e n; b) O produto de todos os múltiplos de 7 entre 0 e n; 12 )1( ... 9 4 7 3 5 2 3 1 1 + − ++−+−= + n n S n 100 10 ... 16 4 9 3 4 2 1 1 +++++=S Estruturas de Repetição | Introdução à Computação 9 de 182014 © MdaS Operadores EspeciaisOperadores EspeciaisOperadores EspeciaisOperadores Especiais � Existem alguns operadores que simplificam na representação do cálculo, especialmente quando elas são utilizadas nestes tipos de estruturas y = y + 1--y x = x + 1++x m-- n++ bin %= 2 a /= b p *= 2 k -= 3 n += 4 ExemploExemploExemploExemplo m = m – 1 n = n + 1 bin = bin % 2 a = a / b p = p * 2 k = k - 3 n = n + 4 EquivalenteEquivalenteEquivalenteEquivalente Incremento++ Decremento-- Resto%= Divisão/= Multiplicação*= Subtração-= Adição+= OperaOperaOperaOperaççççãoãoãoãoSSSSíííímbolombolombolombolo Estruturas de Repetição | Introdução à Computação 10 de 182014 © MdaS RepetiRepetiRepetiRepetiçççção com Controle ão com Controle ão com Controle ão com Controle –––– for � É utilizada quando o laço de repetição utiliza um contador � Não é necessariamente uma operação lógica, porém é � Iniciada � Comparada � Atualizada � Inclui em apenas uma linha a inicialização, a comparação e a atualização do contador S = 0; for (cont = 1; cont <= 100; cont++) { S = S + cont; } printf("Soma = %d", S); Estruturas de Repetição | Introdução à Computação 11 de 182014 © MdaS Estruturas de RepetiEstruturas de RepetiEstruturas de RepetiEstruturas de Repetiçççção e Seleão e Seleão e Seleão e Seleççççãoãoãoão � Estruturas de seleção podem ser inclusas em estruturas de repetição � Exemplo: par ou ímpar! for (i = 0; i <= 30; i++) { if ((i % 2) == 0) printf("%2d = par!\n", i); else printf("%2d = impar!\n", i); } Estruturas de Repetição | Introdução à Computação 12 de 182014 © MdaS VVVVáááárias Estruturas de Repetirias Estruturas de Repetirias Estruturas de Repetirias Estruturas de Repetiççççãoãoãoão � É possível também incluir uma estrutura de repetição dentro da outra (Pereira, 2010): for (i = 1; i <= 10; i++) { for (j = 1; j <= i; j++) { printf("*"); } printf("\n"); } Estruturas de Repetição | Introdução à Computação 13 de 182014 © MdaS Comandos de ControleComandos de ControleComandos de ControleComandos de Controle � break: encerra todo o bloco de controle, ignorando as próximas iterações (Pereira, 2010) cont = 0; //variável inicializada na declaração srand(time(NULL)); // inicializa o gerador de números aleatórios num = rand() % 100;// rand() gera um número inteiro while (1) // loop infinito { cont++; system("CLS"); printf("Adivinhe o numero que estou pensando... [0, 99]: "); scanf("%d", &chute); if (chute == num) break; } printf("Acertou em %d tentativas\n", cont); system("PAUSE"); Estruturas de Repetição | Introdução à Computação 14 de 182014 © MdaS Comandos de ControleComandos de ControleComandos de ControleComandos de Controle � continue: encerra todo o bloco de controle, continuando na próxima iteração (se ela for executada) (Pereira, 2010) printf("Quantos valores deseja informar? "); scanf("%d", &n); for ( i = 0; i < n; i++ ) { printf("%do. valor: ", i + 1); scanf("%f", &valor); if ( valor == 0.0 ) continue; printf("O inverso de %f é %f\n", valor, 1.0/valor); } Estruturas de Repetição | Introdução à Computação 15 de 182014 © MdaS Comandos de ControleComandos de ControleComandos de ControleComandos de Controle � exit(0): encerra o programa! printf("Quantos valores deseja informar? "); scanf("%d", &n); for ( i = 0; i < n; i++ ) { printf("%do. valor: ", i + 1); scanf("%f", &valor); if ( valor == 0.0 ) { printf("Divisão por zero!\n"); system("PAUSE"); exit(0); } printf("Oinverso de %f é %f\n", valor, 1.0/valor); } Estruturas de Repetição | Introdução à Computação 16 de 182014 © MdaS ExercExercExercExercíííícioscioscioscios � Escrever um programa em C para os seguintes problemas: 1. Calcule n! 2. Calcule o valor de S, dado que 50 99 ... 4 7 3 5 2 3 1 1 +++++=S Estruturas de Repetição | Introdução à Computação 17 de 182014 © MdaS ExercExercExercExercíííícioscioscioscios 1. Calcule e exiba uma tabela de graus Celsius e graus Fahrenheit que varia entre -20 a 60°C, de 4 em 4 graus. 2. Utilize a estrutura for para exibir a tabuada de um número inteiro inserido pelo usuário. Estruturas de Repetição | Introdução à Computação 18 de 182014 © MdaS ExercExercExercExercíííícioscioscioscios 3. Faça um programa onde devem ser inseridos pelo usuário a massa, a velocidade e a aceleração escalares e mostre uma tabela de valores contendo: � O módulo da quantidade de movimento; � O módulo da força; � A energia cinética; � As tabelas devem ter o valor da massa variando entre 0 até o valor inserido.
Compartilhar