Bryan Samuel perez majano - pm21005
Elabora un programa en C# que permita leer los dos catetos y la hipotenusa, imprimir el tipo de
triangulo que es, calcular el perímetro del triángulo, así como el área del triángulo utilizando la
fórmula de Herón para encontrar dicha área. \
I. Planteamiento General del Problema
Entrada de Datos -----------> Proceso ---------> Salida de Datos
- Cateto opuesto - tipo de triangulo
- Cateto adyacente - perímetro
- hipotenusa - área
II. Diagrama Jerárquico Modular Top-Down
program
Main LeeValor calculoa calculob Imprime
III. Análisis/Diseño Modular Detallado de la Solución:
Bryan Samuel perez majano - pm21005
A. Nombre Módulo: Lee valor ¿ESTÁTICO?: Si ACCESO: Publico
¿Qué Hace?: El método recibe como parámetro una cadena de string, donde indica el valor que
se va a leer, y retorna un valor del tipo double
A.I. Planteamiento del Sub-Problema
Entrada de Datos -----------> Proceso ---------> Salida de Datos
Valor del tipo double
- Mensaje de que dato se
debe leer
A. II. Análisis del Subproblema
a. Definición de Datos de Salida
Variables de salida
Nombre Tipo Descripción
Valor double Valores que el usuario ingreso
b. Definición de Datos de entrada
Variables de entrada
Nombre Tipo Descripción
mensaje string Indica al usuario que debe ingresar valores
c. Restricciones
El valor debe ser mayor que 0
d. Proceso
Leer la variable
Bryan Samuel perez majano - pm21005
e. Definición de Datos de Proceso
Variables de proceso
Nombre Tipo Descripción
N/A
[Link]. Diseño de la Solución: FLUJOGRAMA
B. Nombre Módulo: calculoa ¿ESTÁTICO?: Si ACCESO: Publico
Bryan Samuel perez majano - pm21005
¿Qué Hace?: El método calculo el área del triangulo
B.I. Planteamiento del Sub-Problema
Entrada de Datos -----------> Proceso ---------> Salida de Datos
- Cateto opuesto Area del triangulo
- Cateto adyacente
- hipotenusa
B. II. Análisis del Subproblema
a. Definición de Datos de Salida
Variables de salida
Nombre Tipo Descripción
areat double Contiene el área del triángulo
correspondiente
b. Definición de Datos de entrada
Variables de entrada
Nombre Tipo Descripción
Cateto opuesto double Contiene el valor del cateto opuesto
Cateto adyacente double Contiene el valor del cateto adyacente
hipotenusa double Contiene el valor de la hpotenusa
c. Restricciones
los valores deben ser mayores que 0
d. Proceso
a
e. Definición de Datos de Proceso
sss = (catetoop + catettoady + hipotenusa) / 2;
Bryan Samuel perez majano - pm21005
areat = [Link]((sss * (sss - catetoop) * (sss - catettoady) *
(sss - hipotenusa)));
Variables de proceso
Nombre Tipo Descripción
sss double Contiene el resultado del cálculo necesario
para implementar la fórmula de heron
[Link]. Diseño de la Solución:
FLUJOGRAMA
Bryan Samuel perez majano - pm21005
B. Nombre Módulo: calculob ¿ESTÁTICO?: Si ACCESO: Publico
¿Qué Hace?: El método calcula el valor del perimetro
B.I. Planteamiento del Sub-Problema
Entrada de Datos -----------> Proceso ---------> Salida de Datos
Perimetro
- Cateto opuesto
- Cateto adyacente
- hipotenusa
B. II. Análisis del Subproblema
a. Definición de Datos de Salida
Variables de salida
Nombre Tipo Descripción
perimetro double Contiene el perímetro del triangulo
b. Definición de Datos de entrada
Variables de entrada
Nombre Tipo Descripción
Cateto opuesto double Contiene el valor del cateto opuesto
Cateto adyacente double Contiene el valor del cateto adyacente
hipotenusa double Contiene el valor de la hpotenusa
c. Restricciones
los valores deben ser mayores que 0
d. Proceso
perimetro = catetoop + catettoady + hipotenusa;
e. Definición de Datos de Proceso
Bryan Samuel perez majano - pm21005
Variables de proceso
Nombre Tipo Descripción
N/A
[Link]. Diseño de la Solución: FLUJOGRAMA
Bryan Samuel perez majano - pm21005
B. Nombre Módulo: final ¿ESTÁTICO?: Si ACCESO: Publico
¿Qué Hace?: El método determina que tipo de triángulo es el que se ha ingresado e imprime el
área, el perímetro y el tipo de triángulo
B.I. Planteamiento del Sub-Problema
Entrada de Datos -----------> Proceso ---------> Salida de Datos
-área del triangulo
- Cateto opuesto -tipo de triángulo
- Cateto adyacente -perímetro del triangulo
- Hipotenusa
B. II. Análisis del Subproblema
a. Definición de Datos de Salida
Variables de salida
Nombre Tipo Descripción
perimetro double Contiene el perímetro del triangulo
area double Contiene el área del triangulo
triangulo string Nos especifica que tipo de triangulo es el que
se tiene
b. Definición de Datos de entrada
Variables de entrada
Nombre Tipo Descripción
Cateto opuesto double Contiene el valor del cateto opuesto
Cateto adyacente double Contiene el valor del cateto adyacente
hipotenusa double Contiene el valor de la hpotenusa
c. Restricciones
los valores deben ser mayores que 0
d. Proceso
para determinar que tipo de triángulo es
Bryan Samuel perez majano - pm21005
Si c^2=a^+b^2
Entonces
es un triángulo rectángulo
Si no
Si c^2<a^+b^2
Entonces
es un triángulo acutángulo
Si no
Si c^2>a^+b^2
Entonces
es un triángulo obtusángulo
imprimir área y perímetro
e. Definición de Datos de Proceso
Variables de proceso
Nombre Tipo Descripción
N/A
[Link]. Diseño de la Solución: FLUJOGRAMA
Bryan Samuel perez majano - pm21005
Bryan Samuel perez majano - pm21005
Diagrama principal Main
Codificación del programa
Bryan Samuel perez majano - pm21005
class Program
{
//AlUMNO: Bryan Samuel Perez Majano CARNET: PM21005
//Grupo teorico: 05 Grupo de discusion:01
//Docente responsable: Bladimir Diaz
//Elabora un programa en C# que permita leer los dos catetos y la
hipotenusa,
//imprimir el tipo de triangulo que es, calcular el perímetro del triángulo,
//así como el área del triángulo utilizando la fórmula de Herón para
encontrar dicha área.
static void Main(string[] args)
{
//declaracion de variables
double catetoop, catetoady, hipotenusa, area, perimetro, tipo;
catetoop = LeeValor("Ingrese el valor de la cateto opuesto: ");
catetoady = LeeValor("Ingrese el valor de la cateto adyacente: ");
hipotenusa = LeeValor("Ingrese el valor de la hipotenusa: ");
area = calculoa(catetoop, catetoady, hipotenusa);
perimetro = calculob(catetoop, catetoady, hipotenusa);
final(catetoop, catetoady, hipotenusa, area, perimetro);
}
//_____________________________________________metodo que lee los valores
ingresados
public static double LeeValor(string mensaje)
{
double valor;
[Link]();
[Link](mensaje);
valor = [Link]([Link]());
return valor;
}
//_____________________________________________________________________________metod
o que calccula el area del triangulo
static double calculoa(double catetoop, double catetoady, double hipotenusa)
{
double sss, areat;
sss = (catetoop + catetoady + hipotenusa) / 2;
//calculando el area del triangulo:
areat = [Link]((sss * (sss - catetoop) * (sss - catetoady) * (sss -
hipotenusa)));
return areat;
}
//____________________________________________________________________________metodo
que calccula el perimetro del triangulo
static double calculob(double catetoop, double catetoady, double hipotenusa)
{
double perimetro;
//calculando el perimetro del triangulo:
perimetro = catetoop + catetoady + hipotenusa;
return perimetro;
Bryan Samuel perez majano - pm21005
//metodo que determina que tipo de triangulo es e imprime el perimetro, area
y tipo de triangulo
static void final(double area, double perimetro, double catetoop, double
catetoady, double hipotenusa)
{
if ([Link](hipotenusa, 2) == [Link](catetoop, 2) +
[Link](catetoady, 2))
{
[Link]("es un triangulo de tipo rectangulo");
}
else if ([Link](hipotenusa, 2) < [Link](catetoop, 2) +
[Link](catetoady, 2))
{
[Link]("es un triangulo de tipo acutangulo");
}
else if ([Link](hipotenusa, 2) > [Link](catetoop, 2) +
[Link](catetoady, 2))
{
[Link]("es un triangulo de tipo obtusangulo");
}
[Link]("El area del triangulo es: {0}", area);
[Link]("El perimetro del triangulo es: {0}", perimetro);
[Link]();
}
depuración