Baixe o app para aproveitar ainda mais
Prévia do material em texto
Universidade Federal da Grande Dourados Faculdade de Ciências Exatas e de Tecnologias Curso de Bacharelado em Sistemas de Informação Algoritmos e Programação Estruturas de controle: comando for Profª Janne Oeiras Lachi 1 Com um número definido de repetições ` Em Português estruturado usa os comandos: para, de, até, passo, faça e fim_para ` Sintaxe do comando: para <variável> de <valor inicial> até <valor final> passo <incremento> faça <comando 1> <comando 2> ... <comando n> fim_para Exemplo 1 ` Elaborar um algoritmo que receba como entrada um número inteiro qualquer, em seguida multiplique o valor de entrada por 3 e apresente o resultado. Realizar a execução dos passos anteriores cinco vezes. programa MULT_3 var n, resultado, I : inteiro início para I de 1 até 5 passo 1 faça escreva “Informe um número inteiro:” leia n resultado Å n * 3 escreva resultado fim_para fim Laços em C: comando for ` Sintaxe: for (expressão1; expressão2 ; expressão3) instrução; for (expressão1; expressão2 ; expressão3) { instrução 1; instrução 2; ... instrução n; } OU Interpretação do comando for for (expressão1; expressão2; expressão3) ` Pode-se entender as três expressões do seguinte modo: ` A primeira parte atribui um valor inicial à variável, que tem como função controlar o número necessário de repetições. ` A segunda parte corresponde a uma expressão relacional que, quando assumir um valor falso, determinará o fim da repetição. ` A terceira parte é responsável por alterar o valor da variável (incremento ou decremento) com o objetivo de, em algum momento, fazer com que a condição assuma valor falso. Sintaxe for(i = valor_inicial; condição; incremento ou decremento de i) comando; for(i = valor_inicial; condição; incremento ou decremento de i) { comando 1; ... comando n; } No segundo caso precisa de { } porque há mais de 1 comando É semelhante ao o que ocorre com o comando if ... else Qualquer uma das expressões entre parênteses é opcional, mas usualmente todas são utilizadas Sintaxe: atenção for (expressão1; expressão2; expressão3) Use ponto-e-vírgula (;) Geralmente o aluno erra porque coloca vírgula (,) Aqui NÃO tem ponto-e-vírgula Exemplo 1 ` Elaborar um algoritmo que receba como entrada um número inteiro qualquer, em seguida multiplique o valor de entrada por 3 e apresente o resultado. Realizar a execução dos passos anteriores cinco vezes. programa MULT_3 var n, resultado, I : inteiro início para I de 1 até 5 passo 1 faça escreva “Informe um número inteiro:” leia n resultado Å n * 3 escreva resultado fim_para fim #include <stdio.h> #include <stdlib.h> int main() { int n, resultado, I; for (I=1; I<=5; I++) { printf("\nInforme um numero inteiro: "); scanf("%d",&n); resultado = n*3; printf("\n%d",resultado); } system("pause"); return 0; } Exemplo 1 programa MULT_3 var n, resultado, I : inteiro início para I de 1 até 5 passo 1 faça escreva “Informe um número inteiro:” leia n resultado Å n * 3 escreva resultado fim_para fim #include <stdio.h> #include <stdlib.h> int main() { int n, resultado, I; for (I=1; I<=5; I++) { printf("\nInforme um numero inteiro: "); scanf("%d",&n); resultado = n*3; printf("\n%d",resultado); } system("pause"); return 0; } Sabemos que o valor inicial para I é 1. Por essa razão a primeira expressão dentro do for é I=1; Exemplo 1 programa MULT_3 var n, resultado, I : inteiro início para I de 1 até 5 passo 1 faça escreva “Informe um número inteiro:” leia n resultado Å n * 3 escreva resultado fim_para fim #include <stdio.h> #include <stdlib.h> int main() { int n, resultado, I; for (I=1; I<=5; I++) { printf("\nInforme um numero inteiro: "); scanf("%d",&n); resultado = n*3; printf("\n%d",resultado); } system("pause"); return 0; } Sabemos que I deve variar até o valor 5. Por essa razão a segunda expressão dentro do for é a expressão relacional I<=5; Exemplo 1 programa MULT_3 var n, resultado, I : inteiro início para I de 1 até 5 passo 1 faça escreva “Informe um número inteiro:” leia n resultado Å n * 3 escreva resultado fim_para fim #include <stdio.h> #include <stdlib.h> int main() { int n, resultado, I; for (I=1; I<=5; I++) { printf("\nInforme um numero inteiro: "); scanf("%d",&n); resultado = n*3; printf("\n%d",resultado); } system("pause"); return 0; } O incremento de I deve ser de 1 unidade a cada ciclo de repetição e isso é feito pelo comando passo. Por essa razão a terceira expressão dentro do for é a expressão relacional I++ Interpretação do comando for for (expressão1; expressão2 ; expressão3) instrução; 1.expressão1 é avaliada. Usualmente, esta é uma ou expressões de atribuição para uma ou mais variáveis 2.expressão2, que é a expressão condicional da estrutura for, é avaliada 3. Se expressão2 resultar em zero, a instrução for, é encerrada e o controle do programa passa para a instrução seguinte a toda instrução for. Se expressão2 resultar num valor diferente de zero, o corpo do laço (instrução) é executado 4. Após a execução do corpo do laço, expressão3 é avaliada e retorna-se ao passo 2. Exemplo 2 ` Escreva um programa em C que receba como entrada um número inteiro n (n > 0) do usuário e imprima os números de 1 a n na tela. #include <stdio.h> int main() { int I, N; printf("Informe um numero inteiro maior que zero:"); scanf("%d", &N); for (I=1; I <= N; I++) printf("\n%d", I); return 0; } programa IMPRESSAO var N, I : inteiro início escreva “Informe um número inteiro maior que zero:” leia N para I de 1 até N passo 1 faça escreva I fim_para fim Exemplo 2 ` Escreva um programa em C que receba como entrada um número inteiro n (n > 0) do usuário e imprima os números de 1 a n na tela. #include <stdio.h> int main() { int I, N; printf("Informe um numero inteiro maior que zero:"); scanf("%d", &N); for (I=1; I <= N; I++) printf("\n%d", I); return 0; } Exemplo 3: resolução COM repetição Programa AREA var BASE, ALTURA, AREA: real contador, I: inteiro início contador Å 0 para I de 1 até 3 passo 1 faça escreva “Informe a base da ”, I, “ª parede:” leia BASE escreva “Informe a altura da ”, I, “ª parede:” leia ALTURA AREA Å BASE * ALTURA se (AREA > 100) então contador Å contador + 1 fim_se fim_para escreva “A quantidade de paredes com área maior que 100 m2 é: ”, contador fim 15 Exemplo 3: resolução COM repetição 16 #include <stdio.h> #include <stdlib.h> int main() { float base, altura, area; int contador=0, I; for (I=1; I<=3; I++) { printf("\nInforme a base da %da. parede: ", I); scanf("%f",&base); printf("\nInforme a altura da %da. parede: ", I); scanf("%f",&altura); area = base*altura; if (area>100) contador++; } printf("\nA quantidade de paredes com area maior que 100 m2 eh: %d",contador); system("pause"); return 0; } Note que o código especial %d está “colado” nos caracteres “a.” de modo que para o usuário apareça na forma ordinal. Incremento ou decremento for(a = 1; a <=10; a++) printf(“Valor de a=%d\n”,a); for(b = 10; b >= 1; b--) { scanf(“%d”, &c); printf(“Valor de c=%d\n”,c); } a++ ou a = a + 1 b-- ou b = b - 1 Incremento ou decremento for(a = 0; a < 10; a = a + 2) printf(“Valor de a=%d\n”,a); Imprimirá: 0, 2, 4, 6, 8 for(i = 100; i >= 0; i = i - 20) printf(“Valor de i=%d\n”,i); Imprimirá: 100, 80, 60, 40, 20, 0 Exemplo 4: em Português estruturado Apresente todos os números pares no intervalo de 600 a 1. programa IMPRESSAO_PARES var I : inteiro início para I de 600até 2 passo 2 faça escreva I fim_para fim Exemplo 4: em Linguagem C Apresente todos os números pares no intervalo de 600 a 1. programa IMPRESSAO_PARES var I : inteiro início para I de 600 até 2 passo 2 faça escreva I fim_para fim #include <stdio.h> #include <stdlib.h> int main() { int I; for (I=600; I>=2; I=I-2) { printf("\n%d\n",I); } system("pause"); return 0; } Note que aqui precisamos criar a expressão I=I-2 para poder fazer o decremento de 2 unidades no valor de I Exemplo 5: para dentro de para programa TREINO var volta,abdominal : inteiro início para volta de 1 até 3 passo 1 faça escreva volta, “ª volta” para abdominal de 1 até 5 passo 1 faça escreva abdominal, “º abdominal” fim_para fim_para fim #include <stdio.h> #include <stdlib.h> int main() { int volta, abdominal; for (volta=1; volta<=3; volta++) { printf("\n%da. volta",volta); for (abdominal=1; abdominal<=5; abdominal++) printf("\n\t%do. abdominal",abdominal); } printf("\n"); system("pause"); return 0; } Exemplo 6 ` Faça um algoritmo que receba um número inteiro maior que 1, verifique se o número fornecido é primo ou não. A saída do seu algoritmo é mostrar a mensagem de número primo ou não. ` Um número natural é um número primo quando ele tem exatamente dois divisores: o número um e ele mesmo. Exemplo 6 programa PRIMO var i, num, resto, qtde: inteiro início escreva “Informe um número inteiro:” leia num qtde ← 0 para i de 1 até num passo 1 faça resto Å num - (num div i) * i se (resto = 0) então qtde ← qtde + 1 fim_se fim_para se qtde > 2 então escreva “O número não é primo.” senão escreva “O número é primo.” fim_se fim Note que neste problema não está claro no enunciado que vamos precisar de repetição. Podemos usar a repetição para testar REPETIDAMENTE se um certo número (no caso os valores assumidos por i) é divisor do número dado como entrada (num). A lógica consiste em testar se no intervalo de 1 até num, o número num tem mais de 2 divisores, pois nesse caso ele não é primo. Exemplo 6 #include <stdio.h> #include <stdlib.h> int main() { int i, num, qtde; printf("\nInforme um numero inteiro:"); scanf("%d", &num); qtde = 0; for (i=1; i<=num; i++) { if (num%i == 0) qtde++; } if (qtde > 2) printf("\O numero nao eh primo."); else printf("\O numero eh primo."); system(“pause”); return 0; } Referências ` Ulysses de Oliveira. Programando em C. D. Rio de Janeiro; Editora Ciência Moderna, 2008 ` Algoritmos - Lógica para desenvolvimento de programação de computadores. José Augusto N. G. Manzano, Jayr Figueiredo de Oliveira. São Paulo: Érica, 2006. 25 Algoritmos e Programação Com um número definido de repetições Exemplo 1 Laços em C: comando for Interpretação do comando for Sintaxe Sintaxe: atenção Exemplo 1 Exemplo 1 Exemplo 1 Exemplo 1 Interpretação do comando for Exemplo 2 Exemplo 2 Exemplo 3: resolução COM repetição Exemplo 3: resolução COM repetição Incremento ou decremento Incremento ou decremento Exemplo 4: em Português estruturado Exemplo 4: em Linguagem C Exemplo 5: para dentro de para Exemplo 6 Exemplo 6 Exemplo 6 Referências
Compartilhar