Prévia do material em texto
Universidade Católica de Pernambuco
Centro de Ciências e Tecnologia
Ciência da Computação
Disciplina: Introdução a Programação I
Data de entrega: 27/10/2015
Aluno: José Gabriel Vicente das Neves da Silva
Prof° Mozart Gomes
2ª Lista de Exercícios com Modularização (Procedimentos e Funções)
1) Desenvolva um programa para calcular o valor de funções trigonométricas. Ofereça para o usuário um menu com as opções:
-----------------------------------
Escolha a função trigonométrica:
– seno
– cosseno
– tangente
-----------------------------------
Use as Séries de Taylor para realizar os cálculos do seno e cosseno. Solicite ao usuário o valor do ângulo em graus. Observe que as Séries de Taylor trabalham com os ângulos em radianos. A quantidade de termos deve ser solicitada no programa principal.
sen(x) = x − x3/3! + x5/5! − ⋯, ∀x∈R
cos(x) = 1 − x2/2! + x4/4! − ⋯,∀x∈R
tg(x) = sen(x)/cos(x)
Faça uma função para exibir o menu, e mais 3 funções, uma para cada operação. Cada uma dessas 3 funções deverá receber o ângulo (em radianos) e retornar o resultado da função trigonométrica.
Faça também uma função para converter um ângulo de graus para radianos.
A função para calcular a tangente deve usar as funções seno e cosseno já construídas.
2) Faça um procedimento que implemente o jogo da senha (para 2 pessoas). Esse procedimento deve apresentar as seguintes funcionalidades:
O jogador 1 digita uma senha (valor inteiro entre 1 e 100, inclusivos) sem o conhecimento do jogador 2.
Não permitir a entrada de valores fora da faixa especificada;
O jogador 2 tem 5 tentativas para descobrir a senha;
Se o valor digitado em uma tentativa tiver uma diferença igual a 1 (para mais ou menos) para a senha, o programa deve avisar que “TÁ QUENTE!”.
• Exemplos:
Senha 43 e valor digitado 42. Senha 43 e valor digitado 44.
Se o jogador 2 acertar a senha, o programa não deve pedir mais nenhuma tentativa;
Ao final do jogo exibir a mensagem “Você perdeu. Tente novamente depois!” ou “Parabéns, você acertou!”;
Não permita que o jogador 2 digite valores fora da faixa esperada (entre 1 e 100);
Ao final de uma partida, permita aos usuários jogarem novamente.
Universidade Católica de Pernambuco
Aluno: José Gabriel Vicente das Neves da Silva
Mat.: 201510881-5
Profº Mozart Gomes Data 27/10/2015
__________________________________________
Assinatura
1º Questão:
#include <stdio.h>
#include <math.h>
float rad(float angulo){
float radiano;
radiano = (angulo * 3.14159) / 180;
return radiano;
}
float fatorial(float fat){
float fatorial = 1, i;
for (i = 1; i <= fat; i++){
fatorial *= i;
}
return fatorial;
}
float senox(float termos, float angulo){
float cont = 1, i, sinal = 1, x = 0, seno = 0, termo1 = 0;
for (i = 1; i <= termos; i++){
cont += 2;
x = pow(rad(angulo), cont) / fatorial(cont);
seno += sinal * x;
sinal *= -1;
}
termo1 = rad(angulo);
seno = termo1 - seno;
return seno;
}
float cosenox(float termos, float angulo){
float cont = 0, i, sinal = 1, x = 0, coseno = 0, termo1 = 0;
for (i = 1; i <= termos; i++){
cont += 2;
x = pow(rad(angulo), cont) / fatorial(cont);
coseno += 1 - x * sinal;
sinal *= -1;
}
coseno = coseno - 1;
return coseno;
}
float tangente(float termos, float angulo){
float tag;
tag = (senox(termos, angulo) / cosenox(termos, angulo));
return tag;
}
int menu(){
float termo, angulo;
int opcao;
printf("\tMenu");
printf("\n---------------------------------\n");
printf("Escolha a funcao trigonometrica.\n");
printf("1 - Seno\n");
printf("2 - Coseno\n");
printf("3 - Tangente\n");
printf("---------------------------------\n");
printf("Escolha sua opcao: ");
scanf_s("%d", &opcao);
if (opcao == 1){
printf("1 - Seno(x)\n");
printf("Informe o numero de termos: ");
scanf_s("%f", &termo);
printf("Informe o angulo: ");
scanf_s("%f", &angulo);
printf("Seno(x): %f\n", senox(termo, angulo));
}
if (opcao == 2){
printf("1 - Coseno(x)\n");
printf("Informe o numero de termos: ");
scanf_s("%f", &termo);
printf("Informe o angulo: ");
scanf_s("%f", &angulo);
printf("Coseno(x): %f\n", cosenox(termo, angulo));
}
if (opcao == 3){
printf("1 - Tangente(x)\n");
printf("Informe o numero de termos: ");
scanf_s("%f", &termo);
printf("Informe o angulo: ");
scanf_s("%f", &angulo);
printf("Tagente(x): %f\n", tangente(termo, angulo));
}
return opcao;
}
int main(){
menu();
return 0;
}
2º Questão:
#include <stdio.h>
#include <stdlib.h>
void jogo_da_senha(){
char opcao = 's';
int jogador1, jogador2, cont = 1;;
int jogadaquente, jogadaquente2;
do{
system("cls");
printf("Informe um numero de 1 a 100.\n");
printf("Jogador1: ");
scanf_s("%d", &jogador1);
while (jogador1 > 100 || jogador1 <= 0){
printf("Opcao invalida! informe numeros entre 1 a 100.\n");
printf("Jogador1: ");
scanf_s("%d", &jogador1);
}
system("cls");
printf("------------------------------------------------------------\n");
printf("Voce tem 5 tentativas para descobrir o numero do jogador1.\n");
cont = 1;
while (cont <= 5){
printf("-----------------------\n");
printf("%d Tentativa!\n", cont);
printf("-----------------------\n");
printf("Jogador2: ");
scanf_s("%d", &jogador2);
while (jogador2 > 100 || jogador2 <= 0){
printf("Opcao invalida! informe numeros entre 1 a 100.\n");
printf("Jogador2: ");
scanf_s("%d", &jogador2);
cont = 1;
}
if (cont <= 5){
jogadaquente = jogador2 + 1;
if (jogadaquente == jogador1){
printf("ESTA QUENTE!\n");
}
jogadaquente2 = jogador2 - 1;
if (jogadaquente2 == jogador1){
printf("ESTA QUENTE!\n");
}
}
if (jogador2 == jogador1){
printf("Parabens! Voce ganhou!\n");
cont = 6;
}
if (cont == 5){
printf("Voce perdeu. Tente novamente mais tarde\n");
}
cont++;
}
printf("Deseja jogar novamente(s/n)? ");
fflush(stdin);
scanf_s("%c", &opcao);
} while (opcao == 's' || opcao == 'S');
}
int main(){
jogo_da_senha();
return 0;
}