Prévia do material em texto
Exercicios
1) Construa um programa que, tendo como dados de entrada dois pontos quaisquer
no plano, P(x1,y1) e Q(x2,y2), escreva a distância entre eles. A fórmula que efetua tal
cálculo é:
Código fonte :
#include<iostream>
#include<math.h>
main()
{
float x1,x2,y1,y2,D,P,Q;
printf ("Digite as coordenadas doponto P ");
scanf ("%f" "%f", &x1, &y1);
printf ("Digite as coordenadas do ponto Q");
scanf ("%f" "%f", &x2, &y2);
D=sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1));printf ("Distância entre P e Q= %f\n",D);
system ("pause");
}
Testando o Programa
* Teste 1:
Digite as coordenadas do ponto P 2 3
Digite as coordenadas do ponto Q 5 6DistÔncia entre P e Q= 4.242640
Pressione qualquer tecla para continuar. . .
* Teste 2:
Digite as coordenadas do ponto P 3 7
Digite as coordenadas do ponto Q 9 2
DistÔncia entre P e Q= 7.810250Pressione qualquer tecla para continuar. . .
* Teste 3:
Digite as coordenadas do ponto P 10 18
Digite as coordenadas do ponto Q 32 25
DistÔncia entre P e Q= 23.086792
Pressione qualquer tecla para continuar. . .
2) Receber o salário de um trabalhador e o valor da prestação de um empréstimo, se a
prestação for maior que 20% do salário imprima: Empréstimo não concedido, caso
contrário imprima: Empréstimo concedido
Código fonte :
#include <iostream>
main()
{
double s,p;
printf ("Informe os valores do salario e da prestacao:");
scanf ("%1f" "%1f",&s,&p);
if (p>s*.20)
printf ("Emprestimo negado\n");
else
printf ("Emprestimo concedido\n");
system("pause");
}
Teste 1:
Informe os valores do salario e da prestacao:1000 20
Emprestimo concedido
Pressione qualquer tecla para continuar. . .
Teste 2:
Informe os valores do salario e da prestacao:100 1
Emprestimo negado
Pressione qualquer tecla para continuar. . .
Teste 3:
Informe os valores do salario e da prestacao:1600 200
Emprestimo concedido
Pressione qualquer tecla para continuar. . .}
3) Faça um programa que receba o valor dos catetos de um triângulo retângulo,
calcule e mostre o valor da hipotenusa.
Código fonte:
#include<iostream>
#include<math.h>
main()
{float a,b,h;
printf("Informe o valor dos catetos");
scanf ("%f %f", &a, &b);
h=sqrt(a*a+b*b);
printf("hipotenusa= %.2f\n",h);
system("pause");
}
Teste1:
Informe o valor dos catetos: 3 4
hipotenusa= 5
Pressione qualquer tecla para continuar. . .
Teste 2:
Informe o valor dos catetos4 6
hipotenusa= 7.21
Pressione qualquer tecla para continuar. . .
Teste 3:
Informe o valor dos catetos5 12
hipotenusa= 13.00
Pressione qualquer tecla para continuar. . .
4) Elabore um programa que leia o raio de uma esfera e calcule a área e o volume.
Código fonte
#include<iostream>
#include<math.h>
main()
{ double r;
printf("Digite o valor do raio da esfera");
scanf("%lf", &r);
printf("area= %.2lf\n", 4*3.14*r*r);
printf("volume= %.2lf\n", (4*3.14*r*r*r)/3);
system("pause");
}
Teste1:
Digite o valor do raio da esfera15
area= 2826.00
volume= 14130.00
Pressione qualquer tecla para continuar. . .
Teste 2:
Digite o valor do raio da esfera18
area= 4069.44
volume= 24416.64
Pressione qualquer tecla para continuar. . .
Teste 3:
Digite o valor do raio da esfera260
area= 8490.56
volume= 73584.85
Pressione qualquer tecla para continuar. . .
5) Faça um programa que receba o salário de um funcionário e o percentual de
aumento, calcule e mostre o valor do aumento e o novo salário.
Código fonte
#include<iostream>
#include<math.h>
main()
{double s,p;
printf ("Informe o salario:");
scanf ("%lf",&s);
printf ("Informe o percentual de aumento");
scanf ("%lf",&p);
printf ("Valor do aumento= %lf\n", (p*100)/s);
printf ("Novo salario= %lf\n", (p*100)/s+s);
system("pause");
}
Teste 1:
Informe o salario:1200
Informe o percentual de aumento20
Valor do aumento= 1.666667
Novo salario= 1201.666667
Pressione qualquer tecla para continuar. . .
Teste 2:
Pressione qualquer tecla para continuar. . .
Informe o salario:1100
Informe o percentual de aumento70
Valor do aumento= 6.363636
Novo salario= 1106.363636
Pressione qualquer tecla para continuar. . .
Teste 3:
Informe o salario:1300
Informe o percentual de aumento210
Valor do aumento= 153846
Novo salario= 153846
Pressione qualquer tecla para continuar. . .
6) Desenvolva um programa que calcule o consumo de combustível de um automóvel
em uma determinada viagem. O programa deve pedir que o usuário informe: Quantos
quilômetros têm a viagem, Quantos quilômetros o carro faz com um litro, O preço do
litro do combustível O processamento do algoritmo deve mostrar: Quantos litros de
combustível serão gastos com a viagem e Quanto dinheiro será gasto com
combustível.
Código fonte
#include<iostream>
#include<math.h>
main()
{ double kp, kl, pc;
printf("Informe distancia");
scanf("%lf", &kp);
printf("Digite quantos quilometros o carro faz com um litro");
scanf("%lf", &kl);
printf("digite o preço do litro de combustivel");
scanf("%lf", &pc);
printf("total de consumo de combustivel=%.3lf\n", (kp/kl)*pc);
printf("valor total gasto com combustivel=%.3lf\n",(kp/kl)*pc);
system("pause");
}
Teste 1:
Informe distancia70
Digite quantos quilometros o carro faz com um litro10
digite o preþo do litro de combustivel3.15
total de consumo de combustivel=22.050
valor total gasto com combustivel=22.050
Pressione qualquer tecla para continuar. . .
Teste 2:
Informe distancia120
Digite quantos quilometros o carro faz com um litro11
digite o preþo do litro de combustivel3.20
total de consumo de combustivel=34.909valor total gasto com combustivel=34.909
Pressione qualquer tecla para continuar. . .
7) Determine se um determinado ano lido é bissexto. Sendo que um ano é bissexto se
for divisível por 400 ou se for divisível por 4 e não for divisível por 100. ex: 1988, 1992,
1996.
Código fonte
#include<iostream>
main()
{int ano;
printf("Informe o ano");
scanf("%i",&ano);
if(ano%4==0 and (ano%100!=0)or(ano%400==0))
printf("este ano he bixesto\n");
else
printf("este ano nao he bixesto");
system("pause");
}
Teste 1:
Informe o ano1984
este ano he bixesto
Pressione qualquer tecla para continuar. . .
Teste 2:
Informe o ano2007
este ano nao he bixestoPressione qualquer tecla para continuar. . .
teste 3:
Informe o ano2012
este ano he bixesto
Pressione qualquer tecla para continuar. . .
8) Faça um programa que receba uma medida em pés, e mostre a conversão para
polegadas, jardas e milhas. Sabe-se que: 1 pé = 12 polegadas , 1 jarda = 3 pés 1
milha=1760 jardas
Código fonte
#include<iostream>
#include<math.h>
main ()
{double pes;
printf ("Escreva a medida dos pes:");
scanf ("%lf", &pes);
printf ("Conversor de pes para polegadas=%lf\n",pes*12);
printf ("Conversor de pes para jardas=%lf\n", pes*3);
printf ("Conversor de pes para milhas=%lf\n", pes*5280);
system ("pause");
}
Teste 1:
Escreva a medida dos pes:15
Conversor de pes para polegadas=180.000000
Conversor de pes para jardas=45.000000
Conversor de pes para milhas=79200.000000
Pressione qualquer tecla para continuar. . .
Teste 2:
Escreva a medida dos pes:82
Conversor de pes para polegadas=984.000000
Conversor de pes para jardas=246.000000
Conversor de pes para milhas=432960.000000
Pressione qualquer tecla para continuar. . .
Teste 3:
Escreva a medida dos pes:60
Conversor de pes para polegadas=720.000000
Conversor depes para jardas=180.000000
Conversor de pes para milhas=316800.000000
Pressione qualquer tecla para continuar. . .
9) Ler uma data de nascimento de uma pessoa fornecida através de três dados
inteiros: Dia, Mês e Ano. Testar a validade desta data para saber se esta é uma data
válida. Testar se o dia fornecido é um dia válido: dia > 0, dia <= 28 para o mês de
fevereiro (29 se o ano for bissexto), dia <= 30 em abril, junho, setembro e novembro,
dia <= 31 nos outros meses. Testar a validade do mês: mês > 0 e mês < 13. Testar a
validade do ano: ano <= ano atual (use uma constante definida com o valor igual a
2014). Imprimir: "data válida" ou "data inválida" no final da execução do programa.
Código fonte
#include <iostream>
main()
{
int d,m,a;
printf ("informe o dia:");
scanf ("%i", &d);
printf ("informe o mes:");
scanf ("%i", &m);
printf ("Informe o ano:");
scanf ("%i", &a);
if(a>2016 and a<0) printf("\n\nData invalida! \n\n\n\n\n");
else if (a>12 and a<0) printf ("\n\nData invalida! \n\n\n\n\n");
else if ((m==4 or m==6 or m==9 or m==11) and (d<1 or d>30)) printf ("\n\ndata
invalida! \n\n\n\n\n");
else if ((m==1 or m==3 or m==5 or m==7 or m==8 or m==10 or m==12) and (d<1
or d>31)) printf ("\n\nData invalida! \n\n\n\n\n");
else if ((m==2) and (d<1 and d>29)) printf ("\n\nData invalida!
\n\n\n\n\n");
else if ((m==2) and (a%400!=0) and (a%4!=0 or a%100==0) and (d==29))
printf ("\n\nData invalida! \n\n\n\n\n");
else
printf ("\n\nData valida! \n\n\n\n\n");
system ("pause");
}
Teste 1:
informe o dia:29
informe o mes:02
Informe o ano:2011
Data invalida!
Pressione qualquer tecla para continuar. . .
Teste 2:
informe o dia:16
informe o mes:06
Informe o ano:2006
Data valida!
Pressione qualquer tecla para continuar. . .
Teste 3:
informe o dia:32
informe o mes:10
Informe o ano:2008
Data invalida!
Pressione qualquer tecla para continuar. . .
10) O índice de Massa Corporal (IMC) é uma medida utilizada para medir a obesidade
adotada pela Organização Mundial de Saúde (OMS). É o padrão internacional para
avaliar o grau de obesidade. O sobrepeso e a obesidade, indicados pelo IMC, são
fatores de risco para doenças tais como a hipertensão arterial, diabetes, além de
outras patologias consideradas de alto risco para a Saúde Pública
O cálculo do IMC é feito dividindo a massa (em quilogramas) pela altura (em metros)
ao quadrado.
Resultado (IMC) Situação
Abaixo de 17 Muito abaixo do peso
Entre 17 e 18,49 Abaixo do peso
Entre 18,5 e 24,99 Peso normal
Entre 25 e 29,99 Acima do peso
Entre 30 e 34,99 Obesidade I
Entre 35 e 39,99 Obesidade II (severa)
Acima de 40 Obesidade III (mórbida)
Faça um programa que: a) Leia a massa e a altura de uma pessoa; b) Calcule e imprima
o valor do IMC; c) Com o resultado do IMC calculado, verifique a situação desta
pessoa, isto é, a faixa que ela se encontra; d) Se a pessoa estiver com o IMC normal,
envie uma mensagem parabenizando-a; e) Caso a pessoa esteja com o IMC acima do
normal, calcule imprima quantos quilos ela deverá perder; f) Caso a pessoa esteja com
o IMC abaixo do normal, calcule e imprima quantos quilos ela deverá ganhar.
Código fonte
#include <iostream>
#include <math.h>
main()
{ float IMC,a,p;
printf("Informe sua altura");
scanf ("%f", &a);
printf("informe seu peso");
scanf("%f", &p);
IMC=p/(a*a);
printf ("seu imc e: %.2f\n",IMC);
if (IMC<17) printf ("VOce esta muito abaixo do peso\n") and printf ("Voce precisa
ganhar %.2f kg \n", (18.5*(a*a)-p));
if (IMC>=17 and IMC<=18.49) printf ("Voce esta abaixo do peso \n")and printf ("Voce
precisa ganhar %.2f kg \n",(18.5*(a*a)-p));
if (IMC>=18.5 and IMC <=24.49) printf ("Seu e normal \n") and printf ("Parabéns !
seu peso e ideal \n");
if (IMC>=25 and IMC <=29.99) printf ("Voce esta acima do peso \n") and printf("Voce
precisa perder %.2f kg \n",(p-25*(a*a)));
if (IMC>=30 and IMC <=34.99) printf ("obsidade I \n") and printf("Voce precisa
perder %.2f kg \n", (p-25*(a*a)));
if (IMC>=35 and IMC <=39.99) printf ("Obesidade II(severa) \n") and printf ("Voce
precisa perder peso %2f kg \n",(p-25*(a*a)));
if (IMC>=40) printf ("Obesidade III (Morbita) \n") and printf ("Voce precisa perder
peso %.2f kg \n", (p-25*(a*a)));
system ("pause");
}
Teste 1:
Informe sua altura166
informe seu peso78
seu imc e: 28,36
Voce esta muito abaixo do peso
Voce precisa ganhar 509708.00 kg
Pressione qualquer tecla para continuar. . .
Teste 2:
Informe sua altura180
informe seu peso60
seu imc e: 18,51
Voce esta muito abaixo do peso
Voce precisa ganhar 599340.00 kg
Pressione qualquer tecla para continuar. .
Teste 3:
nforme sua altura175
informe seu peso75
seu imc e: 20,83
Voce esta muito abaixo do peso
Voce precisa ganhar 566487.50 kg
Pressione qualquer tecla para continuar. .
11) Faça um programa que calcule e mostre a tabuada de um número digitado pelo
usuário.
Código fonte
#include<iostream>
#include<math.h>
main ()
{int n;
printf ("Digite um numero entre 1 e 10:");
scanf ("%i", &n);
printf ("%i\n", n*1);
printf ("%i\n", n*2);
printf ("%i\n", n*3);
printf ("%i\n", n*4);
printf ("%i\n", n*5);
printf ("%i\n", n*6);
printf ("%i\n", n*7);
printf ("%i\n", n*8);
printf ("%i\n", n*9);
printf ("%i\n", n*10);
system ("pause");
Teste 1:
Digite um numero entre 1 e 10:5
5
10
15
20
25
30
35
40
45
50
Pressione qualquer tecla para continuar. . .
Teste 2:
Digite um numero entre 1 e 10:1
1
2
3
4
5
6
7
8
9
10
Pressione qualquer tecla para continuar. . .
Teste 3:
Digite um numero entre 1 e 10:8
8
16
24
32
40
48
56
64
72
80
Pressione qualquer tecla para continuar. . .
12) Faça um programa que receba o salário de n funcionários e, usando a tabela a
seguir calcule e mostre o novo salário.
Faixa Salarial % de aumento Até R$800,00 12% R$800,01, até R$1.000,00 10%
R$1.000,01, até R$1.200,00 9%, Acima de R$1.200,00 5% .
Código fonte
#include<iostream>
main ()
{double s;
printf ("Digite o salario de um funcionario:");
scanf ("%lf", &s);
if (s<=800) printf ("Novo salario= %lf \n",(s*.12)+s);
else if (s>800 && s<=1000) printf ("Novo salario= %lf \n",(s*.10)+s);
else if (s>1000 && s<=1200) printf ("Novo salario= %lf \n",(s*.09)+s);
else if (s>1200) printf ("Novo salario= %lf \n",(s*.05)+s);
system ("pause");
}
Teste 1:
Digite o salario de um funcionario:1200
Novo salario= 1308.000000
Pressione qualquer tecla para continuar. . .
Teste 2:
Digite o salario de um funcionario:1200
Novo salario= 1308.000000
Pressione qualquer tecla para continuar. . .
Teste 3:
Digite o salario de um funcionario:1400
Novo salario= 1470.000000
Pressione qualquer tecla para continuar. . .
13) Escreva um programa que calcule o salário semanal de um trabalhador. A entrada
de dados são o número de horas trabalhadas na semana e o valor da hora. Até 40
horas por semana não se acrescenta nenhum adicional. Acima de 40 horas e até 60
horas há um bônus de 50% para essas horas. Acima de 60 horas há um bônus de 70%
para essas horas
Código fonte
#include<iostream>main ()
{double n,v;
printf ("Informe o valor da hora trabalhada:");
scanf ("%lf", &v);
printf ("Informe o numero de horas trabalhadas:");
scanf ("%lf", &n);
if (n>40 && n<=60) printf ("Salario= %lf \n", n*((v*.5)+v));
else if (n>60) printf ("Salario= %lf \n", n*((v*.7)+v));
system ("pause");
}
Teste 1:
14) Elabore um programa que leia número inteiro positivo n e calcule o seu fatorial (
n! ). Onde n! = n.(n-1).(n-2) ... 1; por definição 0!=1. Exemplo: 5! = 5.4.3.2.1 = 120.
Código fonte
#include<iostream>
main ()
{int n, x=1;
double fatorial=1;
printf ("Digite um numero inteiro positivo:");
scanf ("%i", &n);
x=1;
if (n<=0) printf ("Fatorial= %i \n", x=1);
else
while (n>=1)
{fatorial= fatorial*n;
printf ("%i! = %lf \n", n, fatorial);
n=n-1;
}
system ("pause");
}
Teste 1 :
Digite um numero inteiro positivo:15
15! = 15.000000
14! = 210.000000
13! = 2730.000000
12! = 32760.000000
11! = 360360.000000
10! = 3603600.000000
9! = 32432400.000000
8! = 259459200.000000
7! = 1816214400.000000
6! = 10897286400.000000
5! = 54486432000.000000
4! = 217945728000.000000
3! = 653837184000.000000
2! = 1307674368000.000000
1! = 1307674368000.000000
Pressione qualquer tecla para continuar. . .
Teste 2 :
Digite um numero inteiro positivo:7
7! = 7.000000
6! = 42.000000
5! = 210.000000
4! = 840.000000
3! = 2520.000000
2! = 5040.000000
1! = 5040.000000
Pressione qualquer tecla para continuar. . .
Teste 3:
Digite um numero inteiro positivo:4
4! = 4.000000
3! = 12.000000
2! = 24.000000
1! = 24.000000
Pressione qualquer tecla para continuar. . .
16) Faça um programa para resolver a equação abaixo:
Calcule e imprima na tela o valor de n: Obs: este cálculo poderá demorar um pouco,
dependendo da velocidade de seu computador!!
Código fonte
#include<iostream>
main()
{double n, s=0, i=1;
printf ("Informe o valor de n:");
scanf ("%lf", &n);
while (s<=25)
{s=s+1/25;
s=s+1;
}
printf ("Resultado= %lf \n",s);
system ("pause");
}
Teste 1: Digite um numero inteiro positivo:4
4! = 4.000000
3! = 12.000000
2! = 24.000000
1! = 24.000000
Pressione qualquer tecla para continuar. . .
Teste 2:
Informe o valor de n:6
Resultado= 26.000000
Pressione qualquer tecla para continuar. . .
Teste 3:
Informe o valor de n:9
Resultado= 26.000000
Pressione qualquer tecla para continuar. . .
19) Dizemos que um número inteiro positivo é triangular se ele é produto de três
números naturais consecutivos. Exemplo: 120 é triangular pois 4.5.6 = 120. Dado um
número n , verificar se ele é um número triangular
Código fonte
#include <stdio.h>
#include <stdlib.h>
int main ()
{
int cont, num;
printf("Entre com um número: ");
scanf("%d", &num);
for(cont=1; num < cont*(cont+1)*(cont+2); cont++);
if (cont*(cont+1)*(cont+2) == num)
printf("O numero %d e perfeito\n");
else
printf("O numero %d nao e perfeito\n");
system("pause");
return 0;
}
Teste 1:
Entre com um n·mero: 6
O numero 2293568 e perfeito
Pressione qualquer tecla para continuar. . .
Teste 2:
Entre com um n·mero: 45
O numero 2293568 nao e perfeito
Pressione qualquer tecla para continuar. . .
Teste 3:
Entre com um n·mero: 45
O numero 2293568 nao e perfeito
Pressione qualquer tecla para continuar. . .