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; }