0% encontró este documento útil (0 votos)
26 vistas6 páginas

Codigo

codigo en c#

Cargado por

Alejandro Onofre
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
26 vistas6 páginas

Codigo

codigo en c#

Cargado por

Alejandro Onofre
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

using System;

namespace TrigonometricSolver
{
class Program
{
static void Main(string[] args)
{
while (true)
{
[Link]("Seleccione una opción:");
[Link]("1. Calcular ángulos con 3 lados");
[Link]("2. Calcular ángulos con 2 lados y 1 ángulo");
[Link]("3. Calcular ángulos con 1 lado y 2 ángulos");
[Link]("4. Calcular medianas");
[Link]("5. Calcular alturas");
[Link]("6. Calcular mediatrices");
[Link]("7. Calcular bisectrices");
[Link]("8. Salir");

int opcion;
while (![Link]([Link](), out opcion) || opcion < 1 || opcion > 8)
{
[Link]("Opción inválida. Por favor, ingrese un número del 1 al 8.");
}

switch (opcion)
{
case 1:
CalcularPor3Lados();
break;
case 2:
CalcularPor2LadosYAngulo();
break;
case 3:
CalcularPor1LadoY2Angulos();
break;
case 4:
CalcularMedianas();
break;
case 5:
CalcularAlturas();
break;
case 6:
CalcularMediatrices();
break;
case 7:
CalcularBisectrices();
break;
case 8:
[Link]("Saliendo del programa...");
return;
}
}
}

static void CalcularPor3Lados()


{
double a = ObtenerValorPositivo("Ingrese el primer lado (a): ");
double b = ObtenerValorPositivo("Ingrese el segundo lado (b): ");
double c = ObtenerValorPositivo("Ingrese el tercer lado (c): ");

double anguloA = [Link]((b * b + c * c - a * a) / (2 * b * c)) * 180 / [Link];


double anguloB = [Link]((a * a + c * c - b * b) / (2 * a * c)) * 180 / [Link];
double anguloC = 180 - anguloA - anguloB;

[Link]("\nResultados:");
[Link]("Lados: a = " + a + ", b = " + b + ", c = " + c);
[Link]("Ángulos: A = " + anguloA + "°, B = " + anguloB + "°, C = " +
anguloC + "°\n");
}

static void CalcularPor2LadosYAngulo()


{
double a = ObtenerValorPositivo("Ingrese el primer lado (a): ");
double b = ObtenerValorPositivo("Ingrese el segundo lado (b): ");
double anguloC = ObtenerValorEntre(0, 180, "Ingrese el ángulo entre ellos (C) en
grados: ");

double c = [Link](a * a + b * b - 2 * a * b * [Link](anguloC * [Link] / 180));


double anguloA = [Link](a * [Link](anguloC * [Link] / 180) / c) * 180 /
[Link];
double anguloB = 180 - anguloA - anguloC;

[Link]("\nResultados:");
[Link]("Lados: a = " + a + ", b = " + b + ", c = " + c);
[Link]("Ángulos: A = " + anguloA + "°, B = " + anguloB + "°, C = " +
anguloC + "°\n");
}

static void CalcularPor1LadoY2Angulos()


{
double a = ObtenerValorPositivo("Ingrese el lado (a): ");
double anguloA = ObtenerValorEntre(0, 180, "Ingrese el primer ángulo (A) en
grados: ");
double anguloB = ObtenerValorEntre(0, 180 - anguloA, "Ingrese el segundo ángulo
(B) en grados: ");

double anguloC = 180 - anguloA - anguloB;


double b = a * [Link](anguloB * [Link] / 180) / [Link](anguloA * [Link] /
180);
double c = a * [Link](anguloC * [Link] / 180) / [Link](anguloA * [Link] /
180);

[Link]("\nResultados:");
[Link]("Lados: a = " + a + ", b = " + b + ", c = " + c);
[Link]("Ángulos: A = " + anguloA + "°, B = " + anguloB + "°, C = " +
anguloC + "°\n");
}

static void CalcularMedianas()


{
double a = ObtenerValorPositivo("Ingrese el primer lado (a): ");
double b = ObtenerValorPositivo("Ingrese el segundo lado (b): ");
double c = ObtenerValorPositivo("Ingrese el tercer lado (c): ");

double medianaA = 0.5 * [Link](2 * b * b + 2 * c * c - a * a);


double medianaB = 0.5 * [Link](2 * a * a + 2 * c * c - b * b);
double medianaC = 0.5 * [Link](2 * a * a + 2 * b * b - c * c);

[Link]("Medianas: Ma = " + medianaA + ", Mb = " + medianaB + ", Mc = "


+ medianaC + "\n");
}

static void CalcularAlturas()


{
double a = ObtenerValorPositivo("Ingrese el primer lado (a): ");
double b = ObtenerValorPositivo("Ingrese el segundo lado (b): ");
double c = ObtenerValorPositivo("Ingrese el tercer lado (c): ");

double s = (a + b + c) / 2;
double area = [Link](s * (s - a) * (s - b) * (s - c));

double alturaA = (2 * area) / a;


double alturaB = (2 * area) / b;
double alturaC = (2 * area) / c;

[Link]("Alturas: Ha = " + alturaA + ", Hb = " + alturaB + ", Hc = " +


alturaC + "\n");
}

static void CalcularMediatrices()


{
double xA = ObtenerValorReal("Ingrese la coordenada x del punto A: ");
double yA = ObtenerValorReal("Ingrese la coordenada y del punto A: ");

double xB = ObtenerValorReal("Ingrese la coordenada x del punto B: ");


double yB = ObtenerValorReal("Ingrese la coordenada y del punto B: ");

double xC = ObtenerValorReal("Ingrese la coordenada x del punto C: ");


double yC = ObtenerValorReal("Ingrese la coordenada y del punto C: ");

double xM_AB = (xA + xB) / 2;


double yM_AB = (yA + yB) / 2;
double pendiente_med_AB = (yB - yA) / (xB - xA);
if ([Link](pendiente_med_AB))
pendiente_med_AB = [Link];

double xM_BC = (xB + xC) / 2;


double yM_BC = (yB + yC) / 2;
double pendiente_med_BC = (yC - yB) / (xC - xB);
if ([Link](pendiente_med_BC))
pendiente_med_BC = [Link];

double xM_AC = (xA + xC) / 2;


double yM_AC = (yA + yC) / 2;
double pendiente_med_AC = (yC - yA) / (xC - xA);
if ([Link](pendiente_med_AC))
pendiente_med_AC = [Link];

[Link]("\nResultados:");
[Link]("Punto medio y pendiente de la mediatriz de AB: (" + xM_AB + ", "
+ yM_AB + "), pendiente = " + pendiente_med_AB);
[Link]("Punto medio y pendiente de la mediatriz de BC: (" + xM_BC + ",
" + yM_BC + "), pendiente = " + pendiente_med_BC);
[Link]("Punto medio y pendiente de la mediatriz de AC: (" + xM_AC + ",
" + yM_AC + "), pendiente = " + pendiente_med_AC + "\n");
}

static void CalcularBisectrices()


{
double a = ObtenerValorPositivo("Ingrese el primer lado (a): ");
double b = ObtenerValorPositivo("Ingrese el segundo lado (b): ");
double c = ObtenerValorPositivo("Ingrese el tercer lado (c): ");

double anguloA = [Link]((b * b + c * c - a * a) / (2 * b * c));


double anguloB = [Link]((a * a + c * c - b * b) / (2 * a * c));
double anguloC = [Link] - anguloA - anguloB;

double bisectrizA = 2 * b * c * [Link](anguloA / 2) / (b + c);


double bisectrizB = 2 * a * c * [Link](anguloB / 2) / (a + c);
double bisectrizC = 2 * a * b * [Link](anguloC / 2) / (a + b);

[Link]("\nResultados:");
[Link]("Bisectrices: Ba = " + bisectrizA + ", Bb = " + bisectrizB + ", Bc
= " + bisectrizC + "\n");
}

static double ObtenerValorPositivo(string mensaje)


{
double valor;
while (true)
{
[Link](mensaje);
if ([Link]([Link](), out valor) && valor > 0)
return valor;
[Link]("Valor inválido. Por favor, ingrese un número positivo.");
}
}

static double ObtenerValorEntre(double min, double max, string mensaje)


{
double valor;
while (true)
{
[Link](mensaje);
if ([Link]([Link](), out valor) && valor >= min && valor <=
max)
return valor;
[Link]($"Valor inválido. Por favor, ingrese un número entre {min} y
{max}.");
}
}

static double ObtenerValorReal(string mensaje)


{
double valor;
while (true)
{
[Link](mensaje);
if ([Link]([Link](), out valor))
return valor;
[Link]("Valor inválido. Por favor, ingrese un número real.");
}
}
}
}

También podría gustarte