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

Slides:



Advertisements
Apresentações semelhantes
Funções em C Prof. Fabiano Utiyama.
Advertisements

INTRODUÇÃO A COMPUTAÇÃO ENG. CIVIL
Estruturas de Controle
Programação em Java Prof. Maurício Braga
UNIVERSIDADE FEDERAL DE UBERLÂNDIA ENGENHARIA CIVIL
Um programa em C Bibliotecas Variáveis globais
Estruturas de Repetição
LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS INSTRUÇÕES DE CONTROLE – PARTE I Prof. Thiago Pereira Rique
Algoritmos.
Algoritmos e Programação Linguagens de Programação Teoria Aula 7 (19/05) Universidade Federal do Vale do São.
Introdução à Computação - Jorge Macêdo
Introdução à Programação
Exercícios de revisão.
Linguagem C LPG-I – Variáveis Estruturadas – Vetores
Algoritmos Escher.
THOBER CORADI DETOFENO, MSC. Aula 07
LPG - I: Ponteiros e Vetores/Matrizes UDESC - SBS
Linguagem PHP Prof.: Sergio Pacheco Prof.: Sergio Pacheco 1 1.
LINGUAGEM ESTRUTURADA TURBO C
Estrutura de Repetição
LINGUAGEM C Centro Federal de Educação Tecnológica da Paraíba Coordenação de Informática Professor: Lafayette B. Melo.
Laboratório de Programação de Computadores II 2S/2009.
Laboratório de Programação de Computadores II Aula 1 2S/2009.
Lógica de Programação Módulo II
Estruturas de Repetição
Linguagem C Estruturas de Seleção.
Estruturas de Decisão Permitir testes para decidir acções alternativas: if if - else switch (?:) Operador Condicional MF.
6.3 – Estruturas Repetitivas
Comandos de Repetição Comando Para-Faça
Linguagem de Programação II Parte IV
Estruturas de Repetição
Material Didático Proposto
© 2003 Introdução à programaçãoComputadores e programação I Linguagens de programação Introdução ao C (continuação)
PROGRAMAÇÃO I UNIDADE 4.
Seminário 1: Revisão de C
Estruturas de Dados Módulo 3 – Controle de Fluxo
Programação de Computadores
Aula 6 - Estruturas de Controle
Algoritmo e Programação
CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2014
APRENDER A APRENDER deve ser nossa meta. Comandos de Controle de Programa Comandos de Seleção Prof. Me. Jeime Nunes.
Linguagem de Programação JAVA
Módulo I Capítulo 4: Operador de Repetição
Introdução à Linguagem C
Algoritmos Comandos de repetição.
Estruturas de Controlo Repetitivas
CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2013
FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Algoritmos e linguagens de programação 1 (aula 06) Prof. Alessandro Bernardo.
Linguagem C – Estrutura de Repetição
Revisão Luis Antonio Tavares
CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2014 Capítulo III Comandos de Controle.
FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Algoritmos e linguagens de programação 1 (aula 09) Prof. Alessandro Bernardo.
Revisão LPG-I – Revisão de ICC Prof. Flavio Marcello
Introdução a Programação
Algoritmo e Programação
Curso Técnico em Informática Professor Igor Vale.
ALGORITMOS Profº Antonio Carlos Marcelino de Paula.
Profa. Maria Augusta Constante Puget
FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Algoritmos e linguagens de programação 1 (aula 08) Prof. Alessandro Bernardo.
Algoritmos – Aula 04 Comandos de repetição.
Comandos de Repetição (While, Do..While e For)
11 Revisão da Linguagem C Prof. Kariston Pereira Adaptado de Material gentilmente fornecido pelo Prof. Rui Tramontin (DCC/UDESC)
Linguagem de Programação 11 Estruturas de Decisão e Repetição. Prof. Luiz José Hoffmann Filho
Algoritmos Aula 5 Estrutura de Decisão e Repetição. Prof. Luiz
Estrutura de Repetição
ALGORITMOS Profº Antonio Carlos Marcelino de Paula 1.
Fundamentos de Programação 1 Aula N. 02 Prof. SIMÃO Jean Marcelo SIMÃO Linguagem C “Laços de Repetição em C”
1Unidade 04 – Estruturas de Repetição Algoritmos e Linguagens de Programação Estruturas de Repetição Prof.: Guilherme Baião S. Silva
1 CCO 016 FUNDAMENTOS DE PROGRAMAÇÃO Universidade Federal de Itajubá Prof. Dr. Edison Oliveira de Jesus.
Prof. Tertuliano Estrutura Condicional em C++
Transcrição da apresentação:

Linguagem C LPG-I – Estruturas de Repetição Prof. Flavio Marcello http://www.joinville.udesc.br/portal/professores/flavio/

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

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

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

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.

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

// 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

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)

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

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.

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

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

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>);

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

#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 (); }

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

#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

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

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>; }

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

#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

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;

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.

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.

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.

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

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.

26/03/2017 FIM

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.

// 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;

// 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;

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.

#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);

#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);

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

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.

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(); }

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(); }

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();

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();

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; } ...

// soma_sal100 = soma_sal100 + sal; } ... if (sal <= 100) { sal100 = sal100 + 1; // 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();