3) Loops
Loops
Loops
Objetivos:
Objetivos:
Este laboratório tem por objetivo introduzir o uso de desvio condicional utilizando-se dos comandos while(), do-while() e for().
Fundamentos:
Fundamentos:
Através da repetição de uma estrutura simples, é esperado que o aluno fixe o uso de loops condicionais, bloco e estrutura básica de um programa em "C".
Trabalho:
Trabalho:
- Faça um programa que imprima todos os números ímpares menores do que n.
- Faça um programa que imprima os n primeiros números ímpares.
- Implemente uma calculadora que some dois números. Para isso faça um programa que leia dois números e imprima a soma. O programa termina quando o usuário entrar com os dois números iguais a zero.
- Faça um programa que imprima a tabuada de um número lido. Não vale usar 10 printf()!!!
- Exemplo:
- Entrada de Dados Saída de Dados
- 5 5 x 1 = 5
- 5 x 2 = 10
- 5 x 3 = 15
- ...
- 5 x 9 = 45
- 5 x 10 = 50
- Aproveitando o programa anterior, faça um programa que imprima toda a tabuada.
- Exemplo:
- 1 x 1 = 1
- 1 x 2 = 2
- 1 x 3 = 3
- ...
- 1 x 10 = 10
- 2 x 1 = 2
- 2 x 2 = 4
- ...
- 2 x 10 = 20
- ...
- 10 x 1 = 10
- 10 x 2 = 20
- ...
- 10 x 10 = 100
- Digite o seguinte programa. Ele deveria imprimir o maior número de uma seqüência lida da entrada. O programa inicialmente lê o tamanho da seqüência (número de elementos) e a seguir lê a seqüência propriamente dita.
- #include <stdio.h> void main (void) { int cont, maior, qtd, num; maior = 0; printf ("Quantos números? "); scanf ("%d", &qtd); cont = 0; printf ("Entre a seq. de números\n"); while (cont < qtd) { scanf ("%d", &num); if (num > maior) maior = num; cont = cont +1; } printf ("O maior é %d\n", maior); }
- a) Execute o programa acima passo a passo, visualizando o conteúdo das variáveis num, cont e maior.
- b) Forneça números negativos e positivos como valores para a seqüência. Veja o que acontece.
- c) Forneça somente números negativos como valores para a seqüência. Veja o que acontece.
- d) Modifique o programa para que ele funcione sempre (ou seja, até para uma seqüência com números somente negativos.
- e) Modifique o programa para que ele leia uma seqüência terminada por zero.
- Os termos da série de Fibonnacci são gerados da seguinte forma:
- 1o termo: a0 = 0
- 2o termo: a1 = 1
- 3o termo: a2 = a0 + a1 = 1
- 4o termo: a3 = a1 + a2 = 2, e assim por diante
- Faça um programa que gere os 20 primeiros termos da série de Fibonnacci.
- Faça um programa que leia diversos números de carteira de motorista com as suas respectivas quantidades de multas e seus valores. O programa deverá imprimir o número da carteira de motorista e o valor da multa para cada motorista. No final do processamento, o programa deverá imprimir o número da carteira do motorista que obteve o maior número de multas, assim como quem obteve o maior valor total em multas. A leitura termina quando for lido o número de carteira igual a 0 (zero). Carteiras com números inválidos (negativos) não devem ser processadas, embora as suas multas devam ser lidas.
- Exemplo de entrada
Desafios
Desafios
- O programa abaixo deveria ler 10 conjuntos de 5 valores inteiros cada e imprimir a soma dos valores de cada conjunto e a soma total dos valores de todos os conjuntos. Somente é permitido trocar linhas de lugar e/ou retirar linhas. Não é permitido incluir e/ou alterar linhas.
- #include <stdio.h> void main (void) { int somap, somag, valor, cont1, cont2; cont1 = 0; somag = 0; cont2 = 0; somap = 0; while (cont1 < 5) { scanf ("%d", &valor); while (cont2 < 10) { somap = somap + valor; somag = somag + somap; cont2 = cont2 +1; } cont1 = cont1 + 1; } somag = somag + somap; printf ("A soma do conjunto = %d\n", somap); printf ("A soma total = %d\n", somag); }
- Faça um programa que calcule as temperaturas médias de uma localidade para cada estação do ano em diferentes anos. O programa deverá ler, para cada ano desejado:
- O ano (valor inteiro)
- As temperaturas médias dos meses de dezembro (do ano anterior) a novembro (valores reais, nesta ordem)
- O programa deverá imprimir para cada ano: a temperatura média de cada estação e a temperatura média anual.
- Considere que as estações correspondem as seguintes meses:
- verão à dezembro a fevereiro
- outono à março a maio
- inverno à junho a agosto
- primavera à setembro a novembro
- O programa termina ao ser digitado um ano negativo.
- Uma empresa de telefonia celular precisa de um programa para o processamento das contas de seus 8752 clientes. Inicialmente, o seu programa deve ler o valor cobrado pela assinatura nos 2 planos (básico e completo) e o valor do minuto de ligação (válido para ambos os planos). A seguir, o programa deve ler as informações dos clientes:
- código do cliente (inteiro);
- número do plano (1 - básico ou 2 - completo);
- para cada ligação:
- hora de início;
- tempo (em minutos) de duração.
- A leitura de ligações termina com um valor negativo para hora de início.
- O programa deve calcular e imprimir o valor da conta do cliente. A empresa oferece um desconto de 30% no valor do minuto quando as ligações são iniciadas de 0 às 6 horas e cobra um adicional de 5% para as ligações iniciadas entre 12 e 13 horas. Além disso, a empresa oferece um desconto adicional para os clientes do plano completo de acordo com o valor total da conta, segundo a tabela abaixo: