Buscar

LISTA DE EXERCICIOS

Prévia do material em texto

DISCIPLINA: Linguagem e Técnicas de Programação
CARGA HORÁRIA: 75 horas / aula ANO / SEMESTRE: 2017/1o
PROFESSOR: Cleids Maria Lisbôa Cardoso Soares
Aluno:
RA:
Assinale com um X os nomes de variáveis validos em C.
(X) abc		( ) 3abc	(X) a
( ) 123a	 ( ) –a		(X) acd1
( ) -_ad		( ) A&a	( ) guarda-chuva
(X) A123	 (X) Aa		(X) guarda_chuva
( ) ABC DE 	( ) etc. 	(X) b316
( ) int	 ( ) foat	 ( ) char
Classifique os conteúdos das variáveis abaixo de acordo com seu tipo, assinalando com I os dados numéricos do tipo Inteiro, com R os dados numéricos do tipo Real e com C os dados do tipo caractere
(C) `laranja`
(R) 5.7
(I) 1012
(I) -49
(I) +342
(R) -5.69
(C) `L`
(C) “casa”
(R) 0.00001
Assinalar os comandos de atribuição considerados inválidos observando que:
char cor;
int soma, num;
float salario;
a) ( ) soma = num + 2;
b) (X) cor = soma;
c) ( ) num = soma;
d) ( ) cor = `p`;
e) (X) num = `p`;
f) (X) soma + 2 = num;
g) () soma = (num = 2);
h) ( ) salario = 5.000;
i) ( ) salario = 150;
j) (X) salario = `a`;
Analise o programa em C abaixo e descreva o que ele faz
O programa acima pede para o usuário inserir 4 notas e imprime a média média aritmética
Elabore o algoritmo para cada uma das questões abaixo, implemente-o na linguagem C e teste-o.
Fornecidos o ano de nascimento de uma pessoa e o ano atual, calcule e mostre a idade da pessoa e quantos anos essa pessoa terá em 2015.
#include <stdio.h>
int main(){
 int anoAtual;
 int anoNascimento;
 int idade2015;
 printf("Digite o ano atual:\n");
 scanf("%d", &anoAtual);
 printf("Digite o ano nascimento:\n");
 scanf("%d", &anoNascimento);
	printf("idade atual: %d \n",(anoAtual-anoNascimento));
	idade2015 = 2015 - anoNascimento ;
	if(idade2015 < 0){
 printf("A pessoa nasceu depois de 2015. \n");
	}else{
 printf("Idade em 2015: %d \n",idade2015);
	}
	return 0;
}
Calcular e apresentar o valor do volume de uma lata de óleo, utilizando a fórmula: vol = 3.14159 * R2*altura. Sabe-se que são fornecidos os valores do raio e a altura da lata.
#include <stdio.h>
#define PI 3.14159
int main(){
 float raio, altura, volume;
 printf("Digite o raio do cilindro:\n");
 scanf("%f", &raio);
 printf("Digite a altura do cilindro:\n");
 scanf("%f", &altura);
 volume = PI*raio*raio*altura;
 printf("Volume do cilindro : %0.4f\n", volume);
 return 0;
}
Sabe-se que para iluminar de maneira correta os cômodos de uma casa, para cada m2, deve-se usar 15 W de potência. Sendo fornecidas as dimensões de um cômodo (retangular em metros), calcule e exiba a sua área (em m2) e a potência de iluminação que deverá ser utilizada. 
#include <stdio.h>
#include <locale.h>
#define POTENCIA_POR_METRO_QUADRADO 15
int main(){
 setlocale(LC_ALL,"");
 float base, altura, potencia, area,potencia_necessaria;
 printf("Digite a base:\n");
 scanf("%f", &base);
 printf("Digite a altura:\n");
 scanf("%f", &altura);
 area= base*altura;
 potencia_necessaria = area*POTENCIA_POR_METRO_QUADRADO;
 printf("Área do quarto: %.2f\n", base);
 printf("Potência necessária: %.2f\n",potencia_necessaria);
 return 0;
}
 Entrar com um ângulo em graus e exibir o valor do seu seno, co-seno e tangente. Dica: usar a biblioteca math.h para as funções que calcular seno, cosseno e tangente. Obs.: Elas recebem o valor do ângulo em radianos.
#include <stdio.h>
#include <math.h>
#define PI 3.14159
int main(){
 float angulo;
 printf("Digite o angulo em graus:\n");
 scanf("%f", &angulo);
 //converte de graus em radioanos
 angulo = (angulo*PI)/180;
 printf("Seno %f:\n",asin(angulo));
 printf("Cosseno %f:\n",acos(angulo));
 printf("Tangente %f:\n",atan(angulo));
 return 0;
}
e) Uma pessoa resolveu fazer uma aplicação em uma poupança programada. Calcule e exiba o rendimento que ela obterá, sabendo que deverá ser fornecido o valor constante da aplicação mensal, a taxa e o número de meses. A fórmula usada para este cálculo é: 
valor acumulado = P * (((1 + i)n – 1) / i), onde i = taxa; P = aplicação mensal; n = número de meses. Dica: usar a biblioteca math.h.
#include <stdio.h>
int main(){
 float valor;
 float taxa;
 float meses;
 float vlAcumulado;
 printf("Digite o valor aplicado:\n");
 scanf("%f", &valor);
 printf("Digite o total de meses:\n");
 scanf("%f", &meses);
 printf("Digite o valor da taxa:\n");
 scanf("%f", &taxa);
 /* Trecho removido do exercicio
 valor acumulado = P * (((1 + i)n – 1) / i),
 onde
 i = taxa;
 P = aplicação mensal;
 n = número de meses. */
 vlAcumulado = (((1 + taxa)*meses)-1)/taxa;
 printf("Valor acumulado %f:\n",vlAcumulado);
 return 0;
}
Escreva um programa que solicite um determinado número de segundos e, em seguida, indique quantas horas, minutos e segundos esse valor representa. Ex: 5000 segundos representam 1h 23min 20s.
#include <stdio.h>
int main(){
 long segundos, horas, minutos, tempo;
 printf("\nDigite a quantidade de tempo em segundos : \n");
 scanf("%ld", &segundos);
 horas = segundos / 3600;
 tempo = segundos % 3600;
 minutos = tempo / 60;
 segundos = tempo % 60;
 printf("\n\nTempo: %ld hr %ld min %ld seg", horas, minutos, segundos);
 return 0;
}
Dados o valor do salário mínimo, o número de horas trabalhadas, o número de dependentes e a quantidade de horas extras trabalhadas por um funcionário, calcular e exibir o salário a receber do funcionário de acordo com as regras a seguir:
O valor da hora trabalhada é igual a 1/10 do salário mínimo;
O salário do mês é igual ao número de horas trabalhadas multiplicado pelo valor da hora trabalhada;
O salário bruto é igual ao salário do mês mais o valor do salário família recebido por cada dependente e mais o valor total recebido pelas horas extras trabalhadas;
O salário família é 5% do salário mínimo;
O valor de uma hora extra trabalhada é igual a uma vez e meia o valor da hora trabalhada;
O salário a receber do funcionário (salário líquido) é igual ao salário bruto menos o IRRF;
O valor do imposto de renda retido na fonte (IRRF) é de 10% do salário bruto.
#include <stdio.h>
#include <locale.h>
int main(){
 setlocale(LC_ALL,"");
 float vlSalarioMinimo,
 qtdHorasTrabalhadasMes,
 qtdHorasExtraTrabalhadas,
 qtdDependentes;
 float vlHoraTrabalhada,
 vlSalarioMes,
 vlHorasExtraTrabalhadas,
 vlSalarioBruto,
 vlSalarioFamilia,
 vlSalarioliquido,
 vlIRRF;
 printf("\nDigite o valor do salário mínimo : \n");
 scanf("%f", &vlSalarioMinimo);
 printf("\nDigite a quantidade de horas trabalhas (mês) : \n");
 scanf("%f", &qtdHorasTrabalhadasMes);
 printf("\nDigite a quantidade de horas extra trabalhas : \n");
 scanf("%f", &qtdHorasExtraTrabalhadas);
 printf("\nDigite a quantidade de dependentes : \n");
 scanf("%f", &qtdDependentes);
 vlHoraTrabalhada = vlSalarioMinimo / 10;
 vlSalarioMes = vlHoraTrabalhada * qtdHorasTrabalhadasMes;
 vlSalarioFamilia = vlSalarioMinimo * 0.05;
 vlHorasExtraTrabalhadas = vlHoraTrabalhada * 1.5;
 vlSalarioBruto = vlSalarioMes + (vlSalarioFamilia * qtdDependentes) + ( vlHorasExtraTrabalhadas * qtdHorasExtraTrabalhadas );
 vlIRRF = vlSalarioBruto * 0.1;
 vlSalarioliquido = vlSalarioBruto - vlIRRF;
 printf("\n\n Hora Trabalhada:%.2f ", vlHoraTrabalhada);
 printf("\n\n Salário mês: %.2f", vlSalarioMes);
 printf("\n\n Salário familia: %.2f", vlSalarioFamilia);
 printf("\n\n Valor hora extra: %.2f", vlHorasExtraTrabalhadas);
 printf("\n\n IRRF: %.2f", vlIRRF);
 printf("\n\n Salário liquido: %.2f", vlSalarioliquido);
 printf("\n\n");
 return 0;
}
Elabore o algoritmo para cada uma das questões abaixo, implemente-o na linguagem C e teste-o.
Calcule e imprima a área de um triângulo sabendo que são fornecidas a sua base e altura. Se a base ou a altura fornecidas forem negativas seu programa deverá mostrar uma mensagem adequada ao usuário.
#include <stdio.h>
#include <locale.h>
int main(){
 setlocale(LC_ALL,"");
 float base,
 altura;
 float area;
 int sair = 0;
 do{
 printf("\nDigite a base do triângulo : ");
 scanf("%f", &base);
 if(base <=0){
 printf("\n O valor da base deve ser maior que 0.");
 sair = 0;
 continue;
 }
 printf("\nDigite a altura do triângulo : ");
 scanf("%f", &altura);
 if(base <=0){
 printf("\n O valor da altura deve ser maior que 0.");
 sair = 0;
 continue;
 }
 if(base > 0 && altura > 0){
 sair = 1;
 }
 }while(sair == 0);
 area= (base * altura ) / 2;
 printf("\n\n Área do triângulo : %.2f");
 printf("\n\n");
}
A nota de um aluno em uma disciplina é a média aritmética das notas de suas duas avaliações parciais. Se a média do aluno for maior ou igual a cinco, o aluno está aprovado. Caso contrário, o aluno está reprovado. Faça um programa para ler as notas das duas avaliações parciais e calcular a média de um aluno em uma determinada disciplina e informar o seu estado final. O programa deverá exibir a seguinte frase: 
O aluno obteve média ... e está ... .
#include <stdio.h>
#include <locale.h>
int main(){
 setlocale(LC_ALL,"");
 float nota1,
 nota2;
 float media;
 char *aprovacao;
 printf("\nDigite a nota 1: ");
 scanf("%f", &nota1);
 printf("\nDigite a nota 2: ");
 scanf("%f", &nota2);
 media= (nota1 + nota2 ) / 2;
 if(media >= 5 ){
 aprovacao = "aprovado";
 }else{
 aprovacao = "reprovado";
 }
 printf("\n\n O aluno obteve média %.1f e está %s .", media,aprovacao);
 printf("\n\n");
}
Dados os coeficientes de uma equação do segundo grau calcular e imprimir as raízes da equação. Caso a equação não possua raízes reais seu programa deve mostrar uma mensagem.
#include<stdio.h>
#include<math.h>
#include <locale.h>
int main(){
 setlocale(LC_ALL,"");
 int a,b,c;
 float delta,x1,x2;
 printf("\n Digite o termo A da equação de 2 grau: ");
 scanf("%d",&a);
 printf("\n Digite o termo B da equação de 2 grau: ");
 scanf("%d",&b);
 printf("\n Digite o termo C da equação de 2 grau: ");
 scanf("%d",&c);
 if(a!=0) {
 delta=b*b-4*a*c; /* Calculo para achar o Delta */
 if(delta>=0) {
 x1=(-b+sqrt(delta))/(2*a); /* Calculo para achar X' */
 x2=(-b-sqrt(delta))/(2*a); /* Calculo para achar X" */
 printf("\n\nAs raizes da equação de coeficientes %d,%d,%d são \n\nX1 = %f \nX2 = %f \n\n",a,b,c,x1,x2);
 }else{
 printf("\n\nPara os coeficientes digitados a equação nao possui raizes reais \n");
 }
 }else{
 printf("\n\nPara os coeficientes digitados nao existe equação do segundo grau \n");
 }
 return 0;
}
O cálculo do peso ideal de um homem (em quilos) é dado pela fórmula (72.7 * h) - 58, onde h é a altura em metros, ou seja, se uma pessoa tem 1m e 80 cm de altura, o valor de h é 1.8, e assim por diante. Baseado nesta fórmula faça um programa que receba a altura de um homem e seu peso. O programa vai calcular o peso ideal deste homem e comparar com o peso fornecido pelo usuário, imprimindo "Você está com o peso correto.", ou "Você está acima do peso ideal." ou "Você está abaixo do peso ideal.", caso o peso fornecido seja respectivamente igual, maior ou menor que o peso ideal calculado.
#include <stdio.h>
#include <locale.h>
int main(){
 setlocale(LC_ALL,"");
 float altura,
 peso;
 float pesoIdeal;
 char *mensagem;
 printf("\nDigite a altura: ");
 scanf("%f", &altura);
 printf("\nDigite o peso: ");
 scanf("%f", &peso);
 pesoIdeal = (72.7 * altura) - 58;
 if(peso > pesoIdeal ){
 mensagem = "acima do peso ideal.";
 }else{
 if(peso < pesoIdeal ){
 mensagem = "abaixo do peso ideal.";
 }else{
 mensagem = "com o peso correto.";
 }
 }
 printf("\n\n");
 printf("Você está %s", mensagem);
 printf("\n\n");
 return 0;
}
Faça um programa para receber três números inteiros: um representando um dia, outro representando um mês e um terceiro representando um ano d.C. O programa deverá decidir se juntos os três números formam uma data válida.
#include <stdio.h>
#include <stdbool.h>
#include <locale.h>
int main(){
 setlocale(LC_ALL,"");
 int ano,
 mes,
 dia;
 bool isBissexto;
 int diaDoMes;
 char *mensagem;
 printf("\nDigite o ano d.C : ");
 scanf("%i", &ano);
 printf("\nDigite o mês: ");
 scanf("%i", &mes);
 printf("\nDigite o dia: ");
 scanf("%i", &dia);
 if (mes == 4 || mes == 6 || mes == 9 || mes == 11) {
 diaDoMes = 30;
 }else if (mes == 2){
 bool isBissexto = (ano % 4 == 0 && ano % 100 != 0) || (ano % 400 == 0);
 if (isBissexto)
 diaDoMes = 29;
 else{
 diaDoMes = 28;
 }
 }
 else{
 diaDoMes = 31;
 }
 if(mes > 12 || mes < 1){
 mensagem = "mês inválido";
 }else{
 if(dia > diaDoMes || dia < 1){
 mensagem = "dia inválido";
 }else{
 mensagem = "data válida";
 }
 }
 printf("\n\n");
 printf("%s\n\n",mensagem);
 printf("%i/%i/%i", dia,mes, ano);
 printf("\n\n");
 return 0;
}
Faça um programa que leia o valor de uma mercadoria, e depois o modo de pagamento, que pode ser “V” (à vista) ou “P” (à prazo). Se for “P”, o preço será acrescido de 10%, e o programa pedirá o número de prestações do financiamento, dividindo o valor já com acréscimo por este número, para saber (e imprimir) o valor de cada prestação. Se o modo de pagamento for “V”, haverá um desconto de 5%, e o programa vai mostrar o novo valor. Se o usuário não digitar “P” nem “V” para a forma de pagamento seu programa deverá mostrar uma mensagem indicando que uma opção inválida foi digitada.
#include <stdio.h>
#include <locale.h>
int main(){
 setlocale(LC_ALL,"");
 float valorMercadoria;
 char metodoPagamento; //V ou P
 int qtdParcelas;
 int isPrazo = 0;
 int isAvista = 0;
 float valorMercadoriaFinal;
 float valorParcel;
 char *mensagem;
 printf("\nDigite o valor do produdo: ");
 scanf("%f", &valorMercadoria);
 getchar();
 do{
 printf("\nDigite a método de pagamento : ");
 scanf ("%c", &metodoPagamento);
 getchar();
 if( metodoPagamento == 'V' || metodoPagamento == 'v' ) {
 isAvista = 1;
 }
 if( metodoPagamento == 'P' || metodoPagamento == 'p' ) {
 isPrazo = 1;
 }
 if( isPrazo==0 && isAvista==0){
 printf("As opções de pagamento são a 'P' (prazo) ou 'V' (a vista). \n\n");
 }
 }while( isPrazo==0 && isAvista==0);
 if(isPrazo==1 ){
 do{
 printf("\nDigite a quantidade de parcelas : ");
 scanf ("%d", &qtdParcelas);getchar();
 if( qtdParcelas < 1){
 printf("As quantidade de parcelas deve ser maior que 0.\n\n");
 }
 }while( qtdParcelas < 1);
 }
 if(isPrazo==1 ){
 valorMercadoriaFinal = (valorMercadoria*110)/100;
 valorParcel = valorMercadoriaFinal/qtdParcelas;
 printf("Formar de pagamento : prazo\n");
 printf("Quantidades de parcelas : %d\n", qtdParcelas);
 printf("Valor das parcelas : %f\n", valorParcel);
 printf("Valor total : %f\n", valorMercadoriaFinal);
 }else if(isAvista==1 ){
 valorMercadoriaFinal = (valorMercadoria*95)/100;
 printf("Formar de pagamento : avista\n");
 printf("Quantidades de parcelas : parcela única\n");
 printf("Valor total : %f\n", valorMercadoriaFinal);
 }
 return 0;
}
Faça um programa para ler os comprimentos dos três lados de um suposto triângulo e determinar, caso formem um triângulo, se o mesmo é um triângulo equilátero, isósceles ou escaleno.
#include <stdio.h>
#include <locale.h>
int main(){
 setlocale(LC_ALL,"");
 int l1,l2,l3;
 do{
 printf("\nDigite o lado 1 do triângulo : ");
 scanf("%d", &l1);
 printf("\nDigite o lado 2 do triângulo : ");
 scanf("%d", &l2);
 printf("\nDigite o lado 3 do triângulo : ");
 scanf("%d", &l3);
 if( (l1<=0) || (l1<=0) || (l1<=0) ){
 printf("\n Todos os lados dever ser maior que 0.\n\n");
 }
 }while((l1<=0) || (l2<=0) || (l3<=0));
 if (l1 + l2 >= l3 && l1 + l3 >= l2 && l2 + l3 >= l1){
 if (l1 == l2 && l2 == l3 && l3 == l1){
 printf ("Triangulo Equilatero");
 }
 else if (l1 == l2 || l2 == l3 || l3 == l1){
 printf ("Triangulo Isosceles");
 }
 else if (l1 != l2 && l2 != l3 && l3 != l1){
 printf ("Triangulo Escaleno");
 }
 }else{
 printf ("Valores invalidos para formar um triangulo");
 }
 getchar();
}
Dado um ano d.C. (depois de Cristo), identifique se este é um ano bissexto ou não. Considere que para o ano ser bissexto basta que ele seja divisível por 400. Caso contrário, este precisará ser divisível por 4 e não ser divisível por 100.
#include <stdio.h>
#include <stdbool.h>
#include <locale.h>
int main(){
 setlocale(LC_ALL,"");
 int ano;
 bool isBissexto;
 char *mensagem;
 printf("\nDigite o ano d.C : ");
 scanf("%i", &ano);
 isBissexto = (ano % 4 == 0 && ano % 100 != 0) || (ano % 400 == 0);
 if (isBissexto){
 mensagem = "ano bissexto";
 }else{
 mensagem = "não é ano bissexto";
 }
 printf("\n\n");
 printf("%s : %d\n\n",mensagem, ano);
 printf("\n\n");
 return 0;
}
Faca um programa em C que receba um valor para x, calcule e imprima o valor de 
f(x) de acordo com as opções abaixo:
f(x) = 1, se 0 < x <= 1
f(x) = 2, se 1 < x <= 2
f(x) = x2, se 2 < x <= 3
f(x) = x3, se x > 3
Se não estiver em nenhuma das opções acima, exibir mensagem de erro
informando ao usuário que e impossível calcular f(x)
#include <stdio.h>
#include <locale.h>
int main(){
 setlocale(LC_ALL,"");
 float x;
 char *funcao;
 float resultado;
 int sair = 0;
 printf("Digite o valor para x:\n");
 scanf("%f", &x);
 if(0 < x && <= 1 ){
 funcao = "f(x) = 1";
 resultado = 1;
 }else if( 1 < x && x <= 2){
 funcao = "f(x) = 2";
 resultado = 2;
 }else if(2 < x && x <= 3){
 funcao = "f(x) = x2 ";
 resultado = x*2;
 }else if(x > 3){
 funcao = "f(x) = x3";
 resultado = 3*x
 }else{
 printf("\nformando ao usuário que e impossível calcular f(x)\n\n");
 sair = 1;
 }
 if(sair == 0 ){
 printf("\n%s => \n\n", funcao, resultado);
 }
 return 0;
}

Continue navegando