PCI- Estrutura de Repetição Profa. Mercedes Gonzales Márquez Conceito Estrutura que permite repetir a execução de um bloco sob o controle de uma condição ou um número prédeterminado de vezes. • Exemplos: – Preencher uma tabela – Aplicar operação a todos elementos da lista – Testar vários números – Percorrer matrizes, vetores, listas Estrutura de Repetição Repetição com Variável de controle. Estrutura for: Sintaxe: for(inicialização; condição; atualização) { sentenças; ... } int numero; for (numero = 1; numero <= 10; numero++) { printf(“%d ”, numero); } Estrutura de Repetição • Cabeçalho agrupa: – Inicialização – Condição – Atualização • Separa: – Controle (lógica) de repetição – Código a ser repetido Estrutura de Repetição • int main() { Int numero, divisor, resto; printf("Digite o numero: "); scanf("%d", &numero); For (divisor = 1; divisor <= numero; divisor++) { resto = numero % divisor; if(resto == 0) { printf("Divisor: %d \n", divisor); } } return 0; Estrutura de Repetição Exercícios: Implemente os algoritmos 2-20 correspondentes à instrução Para dos slides AEDIestrutura-repeticao.ppt do site da disciplina AEDI do ano 2014. Estrutura de Repetição Repetição controlada por condição Comando while Estrutura: while ( condicao ){ comandos; } Enquanto a condicão for verdadeira (!=0), ele executa o(s) comando(s); Estrutura de Repetição Repetição controlada por condição (duas questões) 1. O que acontece se a condição for falsa na primeira vez? while (a!=a) a=a+1; R: Ele nunca entra na repetição (loop). 2. O que acontece se a condição for sempre verdadeira? while (a == a) a=a+1; R: Ele entra na repetição e nunca sai (loop infinito) Estrutura de Repetição Exemplo : Imprimir os 10 primeiros números inteiros int i=1; while (i<=10){ printf(“%d”,i); i++; } Estrutura de Repetição Exemplo 1: Imprimir os n primeiros números inteiros int i=1,n; scanf(“%d",&n); while (i<=n){ printf(“%d ",i); i++; } Estrutura de Repetição Exemplo 2: Faça um algoritmo que determine os quadrados de um conjunto de números inteiros positivos. int num; scanf (“%d”,&num); while (num>0){ printf(“%d”,num*num); scanf (“%d”,&num); } Repetição controlada por condição Exemplo 3. Escrever um algoritmo que receba dois números inteiros positivos, e determine o produto dos mesmos, utilizando o seguinte método de multiplicação: •dividir, sucessivamente, o primeiro número por 2, até que se obtenha 1 como quociente; •paralelamente, dobrar, sucessivamente, o segundo número; •somar os números da segunda coluna que tenham um número ímpar na primeira coluna. O total obtido é o produto procurado. Exemplo: 9x6 9 6→ 6 4 12 2 24 1 48→ +48 ___ 54 Estrutura de Repetição Exemplo 3: Imprimir os n primeiros números inteiros int i=1,a,b,pro; scanf(“%d %d",&a,&b); pro=0 while (a!=1) { if (a%2!=0) pro=pro+b; a=a/2; b=b*2; } pro =pro+b; Estrutura de Repetição Exercícios: Implemente os algoritmos 4-7 correspondentes à instrução enquanto-faça dos slides AEDI-estrutura-repeticao.ppt do site da disciplina AEDI do ano 2014. Estrutura de Repetição Repetição controlada por condição Estrutura: do{ comandos; }while ( condicao ); Diferença do while: Sempre executa comandos na primeira vez. Teste condicional é feito por último. Estrutura de Repetição Repetição controlada por condição Estrutura: do{ comandos; }while ( condicao ); Diferença do while: Sempre executa comandos na primeira vez. Teste condicional é feito por último. Estrutura de Repetição Exemplo : Imprimir os 10 primeiros números inteiros int i; i=1; do{ printf("\n %d",i); i = i+1; }while(i<= 100); Estrutura de Repetição Exemplo 1: Imprimir os n primeiros números inteiros int i, n; i=1; scanf("%d",&n); do{ printf("\n %d",i); i++; }while(i<=n); O que acontece se o usuário digitar 0 (n=0)? O que acontece se usarmos o while? Estrutura de Repetição Exemplo 2: Faça um algoritmo que determine os quadrados de um conjunto de números inteiros positivos. int num; scanf (“%d”,&num); do{ printf(“%d”,num*num); scanf (“%d”,&num); while (num>0) } Estrutura de Repetição Exercícios: Implemente o algoritmo 2 correspondente à instrução repita – até que dos slides AEDI-estruturarepeticao.ppt do site da disciplina AEDI do ano 2014.