Baixe o app para aproveitar ainda mais
Prévia do material em texto
Comandos Repetição Resolução dos Exercícios Primeira Lista (Slide 45) 1. Fazer um algoritmo que imprima todos os números pares no intervalo 1-100. #include <stdio.h> #include <stdlib.h> int main() { int num; num = 1; //inicializa num com 1 //estrutura de repeticao while (num <= 100) { if(num % 2==0) { // serão pares os números que a divisão por 2 // fornecer resto zero printf ("%d ", num); } num++; //num = num + 1 } return 0; } 2. Fazer um algoritmo que imprima todos os números de 100 até 1. #include <stdio.h> #include <stdlib.h> int main() { int num; num = 100; //inicializa num com 100 //estrutura de repeticao while (num >= 1) { printf ("%d ", num); num--; //num = num - 1 } return 0; } 3. Ler um número inteiro e positivo e verificar se este é ou não um número primo. #include <stdio.h> #include <stdlib.h> /* Variaveis: num - numero informado pelo usuario i - variavel de controle do FOR cont - contador de divisoes exatas Metodo: Um numero eh primo quando ele eh divisivel por 1 e por ele mesmo. Essa eh a condicao para um numero ser primo. */ int main() { int num, i, cont; cont = 0; //contador iniciado com 0 printf ("Digite um numero inteiro positivo: "); scanf ("%d", &num); if (num < 1) { printf ("Numero invalido!"); } else { for (i=1; i<=num; i++) { if (num%i == 0) //verifica se a divisao eh exata { cont++; } } if (cont > 2) //se cont > 2 significa que o num foge da condicao de primo { printf ("Numero nao eh primo!"); } else { printf ("Numero eh primo!"); } } return 0; } 4. Dada uma dívida de 10000 reais que cresce a juros de 2,5% ao mês e uma aplicação de 1500 reais com rendimento de 4% ao mês, escrever um algoritmo que determina o número de meses necessários para pagar a dívida. #include <stdio.h> #include <stdlib.h> int main() { float div, apl; int meses; div = 10000; apl = 1500; meses = 0; //contador iniciado com 0 while (apl < div) { apl = apl*1.04; div = div*1.025; meses++; } printf ("A divida ser paga em %d meses.", meses); return 0; } 5. Calcular o valor de S: S = 2/50 + 2²/48 + 2³/46 + ... + 225/2 #include <stdio.h> #include <stdlib.h> #include <math.h> /* math.h eh a biblioteca de operacoes matematica, gracas a ela podemos usar o POW. POW - operacao que eleva um numero a outro. */ int main() { float s; int exp, divisor; s = 0; //este FOR possui duas condicoes for (exp=1, divisor=50; exp<=25 && divisor>0; exp++, divisor-=2) //divisor-=2 equivale a divisor = divisor - 2 { s = s + pow(2,exp)/divisor; } printf ("O valor de S eh: %.2f.", s); return 0; } Segunda Lista (Slide 51) 1) Escrever um algoritmo que lê um valor N inteiro e positivo e que calcula e escreve o valor de E. E = 1 + 1/2 + 1/3 + ... + 1/N #include <stdio.h> #include <stdlib.h> int main () { int n,i; float e=0; printf ("digite um numero inteiro positivo "); scanf ("%d", &n); for(i=1;i<=n;i++) { e=e+(float) 1/i; //converte i do tipo inteiro para o tipo real durante esta //operacao } printf ("\n somatorio = %f", e); return 0; } 2) Escreva um algoritmo que leia 10 valores (usando a mesma variável) e encontre o maior e o menor deles. Mostre o resultado. #include <stdio.h> #include <stdlib.h> int main () { int i; float n,maior=0, menor=0; for (i=1;i<=10;i++) { printf ("\ndigite um numero "); scanf ("%f",&n); if (n>maior) { maior=n; } if (n<menor) { menor=n; } } printf ("\no maior numero da sequencia é %.2f e o menor é %.2f",maior, menor); return 0; } 3) Chico tem 1,50 metro e cresce 2 centímetros por ano, enquanto Zé tem 1,40 metro e cresce 3 centímetros por ano. Construa um algoritmo que calcule e imprima quantos anos serão necessários para que Zé seja maior que Chico. #include <stdio.h> #include <stdlib.h> int main() { float chico, ze; int anos; chico = 1.5; ze = 1.4; anos = 0; while (ze <= chico) { ze = ze + 0.03; chico = chico + 0.02; anos++; } printf ("Sera necessario %d anos para que Ze seja maior que Chico.", anos); return 0; } 4) Escreva um algoritmo que leia a matrícula de um aluno e suas três notas. Calcule a média ponderada do aluno, considerando que o peso para a maior nota seja 4 e para as duas restantes, 3. Mostre ao final a média calculada e uma mensagem "APROVADO" se a média for maior ou igual a 5 e "REPROVADO" se a média for menor que 5. Repita a operação até que o código lido seja negativo. #include <stdio.h> #include <stdlib.h> int main() { int mat; float maior,outra1,outra2,aux, media; printf ("Digite a matricula do aluno: "); scanf ("%d", &mat); while (mat != 0) { printf ("Digite a primeira nota: "); scanf ("%f", &maior); printf ("Digite a segunda nota: "); scanf ("%f", &outra1); if (outra1 > maior) { aux = outra1; outra1 = maior; maior = aux; } printf ("Digite a terceira nota: "); scanf ("%f",&outra2); if (outra2 > maior) { aux = outra2; outra2 = maior; maior = aux; } media = (4*maior + 3*outra1 + 3*outra2)/10; printf ("Media: %.2f\n", media); if (media >= 5) { printf ("APROVADO"); } else { printf ("REPROVADO"); } printf ("\n\nDigite a matricula do aluno: "); scanf ("%d", &mat); } return 0; } 5) Escrever um algoritmo que lê um valor N inteiro e positivo e que calcula e escreve o valor de E. E = 1 + 1/1! + 1/2! + 1/3! + ... + 1/N! #include <stdio.h> #include <stdlib.h> int main() { int i, j, num; float e, denominador; e = 1; printf ("Digite um valor inteiro e positivo: "); scanf ("%d", &num); for (i=1; i<=num; i++) { denominador = 1; for (j=i; j>1; j--) { denominador = denominador*j; } e = e + 1/denominador; //converte i do tipo inteiro para o tipo real durante esta //operacao } printf ("O valor de E eh: %.2f", e); return 0; } 6) Faça um programa que, dado um conjunto de valores inteiros e positivos (fornecidos um a um pelo usuário), determine qual o menor valor do conjunto. O final do conjunto de valores é conhecido através do valor zero, que não deve ser considerado. #include <stdio.h> #include <stdlib.h> int main() { int menor, num; printf ("Digite um numero inteiro positivo: "); scanf ("%d", &num); menor = num; if (num == 0) { printf ("Zero foi o primeiro numero digitado."); } else { while (num != 0)// 0 usado como FLAG { if (num < menor)&&(num > 0) ) { menor = num; } //Leitura fica por ultimo para o zero nao //ser o menor numero. printf ("Digite um numero inteiro positivo: "); scanf ("%d", &num); } printf("O menor numero digitado foi: %d.", menor); } return 0; } 7) A conversão de graus Fahrenheit para Centígrados é obtida pela fórmula C = 9/5(F 32). Escreva um programa que calcule e escreva uma tabela de graus centígrados em função de graus Fahrenheit que variem de 50 a 150 de 1 em 1. #include <stdio.h> #include <stdlib.h> int main() { float f,c; printf ("Fahrenheit\tCentigrados\n"); //O codigo \t da um espaco tabulado na tela. for (f=50;f<=150;f++) { c = 9.0/5*(f-32); printf (" \n%.1f %20.2f", f,c); // %20 indicará o número de colunas que //serão utilizadas para exibição do conteúdo. } return 0; } 8) Elabore um programa que calcule N! (fatorial de N), sendo que o valor inteiro de N é fornecido pelo usuário. Sabendo que: N! = N x (N-1) x (N-2) x ... x 3 x 2 x 1; 0! = 1, por definição. #include <stdio.h> #include <stdlib.h> int main () { int i, n,fatorial=1; //inicializar o fatorial com 1 abrange necessariamente 0! printf ("digite um numero inteiro e positivo "); scanf ("%d",&n); if (n<0) printf("numero inválido"); //não existe fatorial de números negativos while (n>0) { fatorial=fatorial*n; n--; } printf ("o fatorial do número é %d", fatorial); return 0; } 9) Fazer um programa para calcular e mostrar os N primeiros termos da série de Fibonacci. O número N é fornecido pelo usuário. A série de Fibonacci é gerada da seguinte forma: f1 = f2 = 1; f3 = f1 + f2 = 2; f4 = f2 + f3 = 3;.... O primeiro e segundo termos valem 1 e os seguintes são calculados somando os dois termos anteriores. #include <stdio.h> #include <stdlib.h> int main() { int n_anterior1=0, n_anterior2=1, n=1, i ,num; printf ("digite o numero de termos da série "); scanf("%d",&num); for(i = 0;i<num;i++) { n = n_anterior1 + n_anterior2; n_anterior2=n_anterior1; n_anterior1=n; printf("%d ",n); } return 0; }
Compartilhar