Вы находитесь на странице: 1из 4

Edison Butista Corzo

cod: 2092742

Progama en C++ para calcular la tangente de un angulo medido en Grados o en


Radianes utilizando series de Taylor.
/* Proyecto: Programa funcin Tangente
Este programa repetidamente:
a. lee un ngulo dado en grados o en radianes;
b. calcula e imprime el valor de la funcin trigonomtrica de la tangente como la
division sen(x)/cos (x) , usando frmulas de series de Taylor.
*/
#include <iostream>
using namespace std;
#include <cmath>
/* algunas plataformas exigen esta directiva a pesar
de que se use el espacio de nombres std
*/
using namespace System;
#include <iomanip>
#include <conio.h>
int main()
{ int signo,
// genera 1, -1, 1, -1 . . . . ; el signo del termino a sumar
contador;
// genera 1, 3, 5, 7, . . . ; usado para calcular factoriales
char masCasos = '1',
// opcion (1 - seguir, 2 - terminar)
opcion;
// sistema de medida de ngulos: '1' Grados, '2' Radianes
double X,
// angulo propuesto
suma1,
// valor de la funcin seno para el angulo X
suma2,
// valor de la funcin coseno para el angulo X
tangente,
// valor de la funcin tangente para el angulo X
denominador,
// genera 1!, 3!, 5!, 7!, . . .
numerador,
// genera X^3, X^5, X^7, X^9, . . .
termino;
// trmino cualquiera de la serie del seno
const double PI = 4* atan(1.0);
// atan: funcin arcotangente, disponible en
math.h
const double APRECIABLE = 1.0E-10;
Console::Title::set(" UIS * EISI * Programacin Visual C++ * Program EBC ");
Console::BackgroundColor::set(ConsoleColor::White);
// use fondo blanco
Console::Clear();
while (masCasos == '1')
{
Console::ForegroundColor::set(ConsoleColor::DarkRed);
cout << "\n\n\n\t\t CALCULO DE LA FUNCION TANGENTE \n" ;
Console::ForegroundColor::set(ConsoleColor::Blue);
cout << "\n\t CALCULO DE SENO MEDIANTE SERIES \n" ;
Console::ForegroundColor::set(ConsoleColor::DarkCyan);
do { cout << "\n\t El angulo se expresa en: 1 Grados?
2 - Radianes?
"
<< "\n\t\t Opcion (1, 2)? . . . ";
opcion = getche();
} while ((opcion < '1') || (opcion > '2'));
if (opcion == '1')
{ cout << "\n\n\t Angulo en grados . . . ";
cin >> X;
X = X*PI/180;
// convierta grados a radianes
}
else { cout << "\n\n\t Angulo en radianes . . . "; cin >> X; };
if (X > 0) while ( X >= 2 * PI ) X = X - 2 * PI;
else while ( X <= - 2 * PI ) X = X + 2 * PI;
suma1 = X;
denominador = 1;
// genera 1!, 3!, 5!, 7!, . . . .
contador = 1;
// genera 1, 3, 5, 7, . . . ; para calcular
factoriales
termino = X;

signo = 1;
// genera alternadamente 1, -1, 1, -1, ...; signo
del termino a sumar
Console::ForegroundColor::set(ConsoleColor::DarkMagenta);
cout << "\n\t
signo*termino \t\t\tSumaSeno ";
Console::ForegroundColor::set(ConsoleColor::Black);
cout << setprecision(16);
// imprima 16 dgitos en la parte fraccionaria
de reales
cout.setf(ios::left);
if (signo*termino < 0)
cout << "\n\n\t " << setw(22) << signo*termino << " \t" <<
setw(22) << suma1;
else cout << "\n\n\t " << setw(22) << signo*termino
<< " \t" << setw(22) << suma1;
while ( fabs( termino) >= APRECIABLE )
// fabs: funcin valor absoluto
de nmeros reales
{ contador = contador + 2;
numerador = pow (X, contador);
denominador = denominador * (contador -1) * contador;
termino = numerador /denominador;
signo = - signo;
suma1 = suma1 + signo * termino;
// imprime resultados parciales para traceo del programa
cout.setf(ios::left);
if (signo*termino < 0)
cout << "\n\n\t " << setw(22) << signo*termino << " \t"
<< setw(22) << suma1;
else cout << "\n\n\t " << setw(22) <<
signo*termino << " \t" << setw(22) << suma1;
}Console::ForegroundColor::set(ConsoleColor::DarkGreen);
if (opcion == '1') X = X * 180/PI; // convierta radianes a grados
cout << "\n\n\t El seno de " << X << " es "<< suma1 << endl;
{ Console::ForegroundColor::set(ConsoleColor::Blue);
cout << "\n\n\t CALCULO DE FUNCION COSENO MEDIANTE SERIES \n" ;
X = X*PI/180;
// convierta grados a radianes
suma2 = 1;
denominador = 1;
// genera 1!, 3!, 5!, 7!, . . . .
contador = 0;
// genera
. . . ; para calcular factoriales
termino = 1;
signo = 1;
// genera alternadamente 1, -1, 1, -1, ...; signo
del termino a sumar
Console::ForegroundColor::set(ConsoleColor::DarkMagenta);
cout << "\n\t
signo*termino \t\t\tSumaCoseno ";
Console::ForegroundColor::set(ConsoleColor::Black);
cout << setprecision(16);
cout.setf(ios::left);
if (signo*termino < 0)
cout << "\n\n\t " << setw(22) << signo*termino << " \t" <<
setw(22) << suma2;
else cout << "\n\n\t " << setw(22) << signo*termino
<< " \t" << setw(22) << suma2;
while ( fabs( termino) >= APRECIABLE )
// fabs: funcin valor absoluto
de nmeros reales
{ contador = contador + 2;
numerador = pow (X, contador);
denominador = denominador * (contador -1) * contador;
termino = numerador /denominador;
signo = - signo;
suma2 = suma2 + signo * termino;
// imprime resultados parciales para traceo del programa
cout.setf(ios::left);

<< setw(22) << suma2;

if (signo*termino < 0)
cout << "\n\n\t " << setw(22) << signo*termino << " \t"

else cout << "\n\n\t " << setw(22) <<


signo*termino << " \t" << setw(22) << suma2;
}
Console::ForegroundColor::set(ConsoleColor::DarkGreen);
if (opcion == '1') X = X * 180/PI; // convierta radianes a grados
cout << "\n\n\t El Coseno de " << X << " es "<< suma2 << endl;
{ Console::ForegroundColor::set(ConsoleColor::DarkRed);
cout << "\n\n\n\t\t CALCULO DE FUNCION TANGENTE \n" ;
tangente = suma1 / suma2;
cout << " \n\n\t
La Tangente de " << X << " es " << tangente <<

endl;
Console::ForegroundColor::set(ConsoleColor::DarkCyan);
// procesar ms casos?
do { cout << "\n\t Calcular otro caso: 1 - Si? 2 - No?";
cout << "\n\t\t Tu opcion es? ____ ";
masCasos = getche();
} while ((masCasos <'1' ) || (masCasos > '2'));

}
}

RESULTADOS

// procesar ms casos?
// fin de mientras (masCasos == '1')
// fin de main

Вам также может понравиться