A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Linguagem C LPG-I – Estruturas de Repetição Prof. Flavio Marcello

Apresentações semelhantes


Apresentação em tema: "Linguagem C LPG-I – Estruturas de Repetição Prof. Flavio Marcello"— Transcrição da apresentação:

1 Linguagem C LPG-I – Estruturas de Repetição Prof. Flavio Marcello

2 Linguagem C ESTRUTURA DE REPETIÇÃO Repetição com Teste no Início
Repetição com Teste no Final Repetição Contada

3 Estrutura de Repetição
Permite que uma seqüência de comandos seja executada repetidamente até que uma determinada condição de interrupção seja satisfeita. São de 3 Tipos: while do ... while for

4 Estrutura com Teste no Início
Fluxograma while .F. condição .V.

5 Estrutura com Teste no Início (while)
A variável de controle é iniciada antes do Enquanto; A variável de controle é incrementada dentro do Enquanto. Enquanto o resultado da condição é verdadeiro (!=0, 1) executa repetidamente um conjunto de instruções. Sintaxe: while (<condição>) { <Comando_1>; <Comando_N>; } Loop Se no primeiro teste da condição resultado for FALSO, os comandos dentro do loop NÃO serão executados NEM uma vez.

6 while Exemplo 1: Encontrar o menor dentre um conjunto de 05 valores digitados.

7 // ALGORITMO EncontraMenor_em5 #include <stdio.h>
int qtdenumlidos, num, menor; main () { printf (“Algoritmo Encontrar Menor Valor num conjunto de 05 valores”); prinf (“Digite 1º Valor: ”); scanf (“%i”, &num); menor = num; qtdenumlidos = 1; while (qtdenumlidos < 5) { printf (“Digite novo Valor: ”); scanf (“%i”, &num); if (num < menor) menor = num; qtdenumlidos = qtdenumlidos + 1; } printf (“Menor Valor Encontrado: %i ”, menor); Então ela foi inicializada antes. A variável de controle deve ter um valor conhecido. A variável de controle deve ter seu valor modificado dentro do “laço”. Neste caso a variável foi incrementa em 1

8 while São necessários 3 contadores
Exemplo 3: Desenvolver um algoritmo para ler um conjunto de valores correspondentes aos pontos que alunos obtiveram em um teste. Quando o valor fornecido for um número negativo, isto é um sinal que não existem mais pontos para serem lidos. Contar e escrever quantos alunos fizeram o teste. Contar e escrever quantos alunos tiveram nota baixa (PONTOS < 50) Contar e escrever quantos alunos tiveram nota alta (100PONTOS  150)

9 Contadores Inicializados
#include <stdio.h> #include <conio.h> // Programa Estatistica_de_Testes int NUM,ALTAS,BAIXAS,PONTOS; void main () { NUM = 0; ALTAS = 0; BAIXAS = 0; printf ("FORNECA OS PONTOS OBTIDOS: "); scanf ("%i", &PONTOS); while (PONTOS > 0) { if ((PONTOS >= 100) && (PONTOS <= 150)) ALTAS = ALTAS+1; if (PONTOS < 50) BAIXAS = BAIXAS+1; NUM = NUM + 1; printf ("PONTOS: "); scanf ("%i", &PONTOS); } printf ("NUMERO DE NOTAS: %i", NUM); printf ("NUMERO DE NOTAS ALTAS: %i", ALTAS); printf ("NUMERO DE NOTAS BAIXAS:%i", BAIXAS); getch (); } Contadores Inicializados com ZERO

10 while Exemplo 3: Desenvolver algorítmo para ler um conjunto de valores correspondentes aos pontos que alunos obtiveram em um teste. Quando o valor fornecido for um número negativo, isto é um sinal de que não existem mais pontos para serem lidos. Contar quantos alunos fizeram o teste; Escrever o media de pontos de alunos.

11 NUM_Alunos dever ser zerado antes do Enquanto e então incrementado
// Algoritmo Contagem_Pontos_Alunos #include <stdio.h> #include <conio.h> int PONTOS_Teste; float SOMA_Ptos, NUM_Alunos; void main () { printf ("Algoritmo Contagem de Pontos dos Alunos"); NUM_Alunos = 0; SOMA_Ptos = 0; printf ("PONTOS: "); scanf ("%i", &PONTOS_Teste); while (PONTOS_Teste > 0) { NUM_Alunos = NUM_Alunos + 1; SOMA_Ptos = SOMA_Ptos + PONTOS_Teste; } printf ("TOTAL DE ALUNOS: %i ", NUM_Alunos); if (NUM_Alunos > 0) printf ("Media de Pontos: %f ", SOMA_Ptos / NUM_Alunos); getch(); NUM_Alunos dever ser zerado antes do Enquanto e então incrementado em 1 dentro do Laço de repetição NUM_Alunos dever ser zerado antes do Enquanto e então incrementado em 1 dentro do Laço de repetição

12 Estrutura com Teste no Final
Fluxograma do … while C1 C2 ... Cn .V. condição .F.

13 Estrutura c/ Teste no Final (do … while)
Semelhante ao while, porém, a condição é testada ao final do laço, então os comandos dentro do laço são executados pelo menos 1 vez. Enquanto que o resultado da condição for verdadeiro (!=0 , 1) executa-se um conjunto de instruções. Sintaxe: do { <Comando_1>; ... <Comando_N>; } while (<condição>);

14 do … while Exemplo 1: Desenvolver algoritmo que permita a leitura de numeros positivos e acumule seu somatório, imprimindo o resultado no final.

15 #include <stdio.h>
#include <conio.h> //ALGORITMO SomaPositivos int numero, soma; void main () { soma = 0; printf ("Programa para somar N valores positivos"); do { printf ("Digite um valor: "); scanf ("%i", &numero); if (numero > 0) soma = soma + numero; } while (numero > 0); printf ("Soma dos Valores: %i", soma); getch (); }

16 do … while Exemplo 2: Desenvolver um algoritmo para escrever os 05 primeiros múltiplos de 13.

17 #include <stdio.h> int num, cont, vezes; main () { num = 13;
Variáveis Condição //Programa Azarao #include <stdio.h> int num, cont, vezes; main () { num = 13; cont = 0; vezes = 5; do { printf ("%i ", num); num = num +13; cont = cont +1; } while (cont < vezes); num cont vezes cont < vezes ? ... 13 5 26 1 .V. 39 2 52 3 65 4 78 .F. Loop 13 26 39 52 65 Loop Monitor

18 Estrutura de Repetição Contada
Fluxograma for .F. Início , Cond., Incr. .V. Comando

19 Estrutura de Repetição Contada (for)
A variável de controle é iniciada da estrutura; A variável de controle é incrementada dentro da estrutura. Para o resultado da condição verdadeiro (!=0, 1) executa-se um conjunto de instruções. Então, neste tipo de estrutura manipulam-se automaticamente todos os detalhes da repetição controlada por contador. Sintaxe: for (<inicialização> ;<condição>; <incremento>) { <Comando_1>; <Comando_N>; }

20 for Exemplo 1: Desenvolver algoritmo que permita imprimir os números de 1 a 5.

21 #include <stdio.h> main () { int cont;
for (cont = 1; cont <= 5; cont = cont +1) { printf (“%i\n”, cont); } Condição cont cont <= 5 ? ... 1 .V. 2 6 .F. Loop Passo1 - Inicializa a variável de controle. Passo2 - Testa a condição, de for verdadeira executa o conjunto de instruções, caso contrário encerra loop. Passo3 - Incrementa variável de controle; retorna ao Passo2. 1 2 3 4 5 Monitor

22 Comparativo: (for) X (while)
int i, N, Valor,Soma=0; scanf ("%i",&N); for(i= 0; i<N; i++) { scanf ("%i", &Valor); Soma = Soma + Valor; } i = 0; while (i < N) { i = i + 1;

23 Qual Estrutura Usar ??? for Sabe-se o número de repetições while
Não sabe-se o número exato de repetições do ... while Não sabe-se o número de repetições, executando pelo menos uma vez. Toda estrutura while pode ser convertida para do...while e vice-e-versa; Toda estrutura for pode ser convertida em while, mas nem toda estrutura while pode ser convertida em for.

24 Exercício 1 Fazer um algoritmo para ler 2 valores e executar uma das seguintes operações matemáticas, de acordo com a escolha do usuário: 1 – soma, 2 – subtração, 3 – multiplicação 4 – divisão.

25 Exercício 2 Em uma corrida de automóveis com N voltas, foram anotados os tempos, em ordem, de um piloto a cada volta. Fazer um programa que dê o melhor e o pior tempo e em que volta aconteceram.

26 Exercícios Propostos K = 6
01. Faça um Algoritmo para calcular o fatorial de 5, faça outro algoritmo para calcular o fatorial de um valor digitado pelo usuário. 02. Faça o algoritmo para calcular o n-ésimo termos da série de Fibonacci. A série de Fibonacci: 1, 1, 2, 3, 5, 8, 13, 21, 34, ... . 03. Quanto vale k no fim do seguinte procedimento (exemplo10)? k = 0; para (i  0; i <=2; i  i+1) { para (j  i; j<=2; j  j+1) { k  k + 1; } 04. Escreva um algoritmo que lê 5 valores para A, um de cada vez, escrevendo, ao final, quantos destes valores são negativos. 05. Dado um conjunto de n notas de alunos, contar o número de alunos que foram aprovados. Considera-se aprovado o aluno que obteve nota igual ou maior que 5.0 06. Fornecer a média aritmética simples das n notas de um aluno, indicando também sua situação final (média>=9 excelente, média>=7 bom, média>=5 regular, média<5 insuficiente). K = 6

27 Desafio A prefeitura de uma cidade fez uma pesquisa entre seus habitantes, coletando dados sobre o salário e número de filhos. A prefeitura deseja saber: Média do salário da população; Média do número de filhos; Maior salário; Percentual de pessoas com salário até R$ 100,00. O final da leitura de dados se dará com a entrada de um salário negativo.

28 26/03/2017 FIM

29 Exercício 1 Fazer um algoritmo para ler 2 valores e executar uma das seguintes operações matemáticas, de acordo com a escolha do usuário: 1 – soma, 2 – subtração, 3 – multiplicação 4 – divisão.

30 // Algoritmo Múltipla_Escolha Versao 01
#include <stdio.h> main () { float A, B, X; int Op; Op = 0; printf ("Programa Calculadora (Operacoes entre 2 valores) "); printf ("\nEntre com o valor de A: "); scanf ("%f", &A); printf ("\nEntre com o valor de B: "); scanf("%f", &B); do { printf ("\n1. Soma"); printf ("\n2. Subtração"); printf ("\n3. Multiplicação"); printf ("\n4. Divisão"); printf ("\nOpção (1 a 4): "); scanf ("%i", &Op); } while ((Op < 1) || (Op > 4)); if (Op == 1) { X = A + B; printf ("X = %.2f", X); else if (Op == 2) { X = A - B; if (Op == 3) { X = A * B; if ( B != 0) { X = A / B;

31 // Algoritmo Múltipla_Escolha Versao 02
#include <stdio.h> main () { float A, B, X; int Op; Op = 0; printf ("Programa Calculadora (Operacoes entre 2 valores) "); printf ("\nEntre com o valor de A: "); scanf ("%f", &A); printf ("\nEntre com o valor de B: "); scanf("%f", &B); do { printf ("\n1. Soma"); printf ("\n2. Subtração"); printf ("\n3. Multiplicação"); printf ("\n4. Divisão"); printf ("\nOpção (1 a 4): "); scanf ("%i", &Op); } while ((Op < 1) || (Op > 4)); switch (Op){ case 1: { X = A + B; printf ("\nX = %.2f", X); break; case 2: { X = A - B; case 3: { X = A * B; case 4: { if ( B != 0) { X = A * B;

32 Exercício 2 Em uma corrida de automóveis com N voltas, foram anotados os tempos, em ordem, de um piloto a cada volta. Fazer um programa que dê o melhor e o pior tempo e em que volta aconteceram.

33 #include <stdio.h> //ALGORITMO CorridaAutomovel;
int num_voltas, conta_volta, melhor_volta, pior_volta; float tempo_volta, melhor_tempo, pior_tempo; main () { printf ("Entre com o numero total de voltas da corrida: "); scanf ("%i", &num_voltas); printf ("Entre com 1o tempo: "); scanf ("%f", &tempo_volta); conta_volta = 1; melhor_volta = 1; melhor_tempo = tempo_volta; pior_volta = 1; pior_tempo = tempo_volta; while (conta_volta < num_voltas) { conta_volta = conta_volta +1; printf (“\nEntre com %io tempo : “, conta_volta +1); if (tempo_volta > pior_tempo) { pior_tempo = tempo_volta; pior_volta = conta_volta; } if (tempo_volta < melhor_tempo) { melhor_tempo = tempo_volta; melhor_volta = conta_volta; printf (“\nMelhor volta = %i com tempo = %.4f", melhor_volta, melhor_tempo); printf (“\nPior volta = %i com tempo = %.4f", pior_volta, pior_tempo);

34 #include <stdio.h> //ALGORITMO CorridaAutomovel;
int num_voltas, conta_volta, melhor_volta, pior_volta; float tempo_volta, melhor_tempo, pior_tempo; main () { printf ("Entre com o numero total de voltas da corrida: "); scanf ("%i", &num_voltas); printf ("Entre com 1o tempo: "); scanf ("%f", &tempo_volta); melhor_volta = 1; melhor_tempo = tempo_volta; pior_volta = 1; pior_tempo = tempo_volta; for (conta_volta  2; conta_volta <= num_voltas; conta_volta = conta_volta +1) { printf (“\nEntre com %io tempo: “, conta_volta); scaf ("%f", &tempo_volta); if (tempo_volta > pior_tempo) { pior_tempo = tempo_volta; pior_volta = conta_volta; } if (tempo_volta < melhor_tempo) { melhor_tempo = tempo_volta; melhor_volta = conta_volta; printf (“\nMelhor volta = %i com tempo = %.4f", melhor_volta, melhor_tempo); printf (“\nPior volta = %i com tempo = %.4f", pior_volta, pior_tempo);

35 Exercícios Propostos K = 6
01. Faça um Algoritmo para calcular o fatorial de 5, faça outro algoritmo para calcular o fatorial de um valor digitado pelo usuário. 02. Faça o algoritmo para calcular o n-ésimo termos da série de Fibonacci. A série de Fibonacci: 1, 1, 2, 3, 5, 8, 13, 21, 34, ... . 03. Quanto vale k no fim do seguinte procedimento (exemplo10)? k = 0; for (i = 0; i <=2; i = i+1) { for (j = i; j<=2; j = j+1) { k = k + 1; } 04. Escreva um algoritmo que lê 5 valores para A, um de cada vez, escrevendo, ao final, quantos destes valores são negativos. 05. Dado um conjunto de n notas de alunos, contar o número de alunos que foram aprovados. Considera-se aprovado o aluno que obteve nota igual ou maior que 5.0 06. Fornecer a média aritmética simples das n notas de um aluno, indicando também sua situação final (média>=9 excelente, média>=7 bom, média>=5 regular, média<5 insuficiente). K = 6

36 Desafio A prefeitura de uma cidade fez uma pesquisa entre seus habitantes, coletando dados sobre o salário e número de filhos. A prefeitura deseja saber: Média do salário da população; Média do número de filhos; Maior salário; Percentual de pessoas com salário até R$ 100,00. O final da leitura de dados se dará com a entrada de um salário negativo.

37 Exercícios Proposto 01a //ALGORITMO Fatorial #include <stdio.h>
26/03/2017 Exercícios Proposto 01a //ALGORITMO Fatorial #include <stdio.h> #include <conio.h> int fat, n, i; main () { n = 5; fat = 1; for (i = 2; i <= n; i++ ) fat = fat * i; printf ("Fatorial de %i: %i", n, fat); getch(); }

38 Exercícios Proposto 01b //ALGORITMO Fatorial #include <stdio.h>
26/03/2017 Exercícios Proposto 01b //ALGORITMO Fatorial #include <stdio.h> #include <conio.h> int fat, n, i; main () { printf ("Digite o numero para calcular Fatorial: "); scanf("%i", &n); fat = 1; for (i = 2; i <= n; i++ ) fat = fat * i; printf ("\nFatorial de %i: %i", n, fat); getch(); }

39 Exercícios Proposto 02 //ALGORITMO Fibonacci #include <stdio.h>
26/03/2017 Exercícios Proposto 02 //ALGORITMO Fibonacci #include <stdio.h> #include <conio.h> main () { int antes, atual, aux, n; antes = 0; atual = 1; printf ("Total de termos: "); scanf ("%i", &n); while (n > 0) { printf ("%i ", atual); aux = atual; atual = atual + antes; antes = aux; n = n-1; } getch();

40 Exercícios Proposto 04 //Algoritmo Quantos_Negativos
26/03/2017 Exercícios Proposto 04 //Algoritmo Quantos_Negativos #include <stdio.h> #include <conio.h> main () { float A; int i, N = 0; for (i = 0; i < 5; i++) { printf("Digite o %i numero: ",i+1); scanf("%f", &A); if (A < 0) N = N + 1; } printf ("Número de valores negativos = %i", N); getch();

41 Desafio #include <stdio.h> #include <conio.h> main () {
float sal, media_sal, media_filhos, maior_sal, soma_sal100, perc_sal100, soma_sal; int filhos, soma_filhos, sal100, contador; sal = 0; soma_sal = 0; maior_sal = 0; soma_filhos = 0; contador = 0; sal100 = 0; while (sal >= 0) { printf ("Salario da familia R$ "); scanf ("%f", &sal); if ( sal >= 0){ printf ("Nro de filhos: "); scanf ("%i", &filhos); soma_sal = soma_sal + sal; soma_filhos = soma_filhos + filhos; contador = contador + 1; if (sal > maior_sal) { maior_sal = sal; } ...

42 // soma_sal100 = soma_sal100 + sal; }
... if (sal <= 100) { sal100 = sal ; // soma_sal100 = soma_sal100 + sal; } if (contador > 0) { media_sal = (float) soma_sal / contador; media_filhos = (float) soma_filhos / contador; perc_sal100 = (float)(sal100 * 100) / contador; else media_sal=media_filhos=perc_sal100=0; printf ( "\nMedia do salario da populacao R$ %.2f", media_sal); printf ( "\nMedia do numero de filhos = %.2f", media_filhos); printf ( "\nMaior Salario R$ %.2f", maior_sal); printf ( "\nPerc. de pessoas com salario ate' R$ 100,00 = %.2f", perc_sal100); getch();


Carregar ppt "Linguagem C LPG-I – Estruturas de Repetição Prof. Flavio Marcello"

Apresentações semelhantes


Anúncios Google