Está en la página 1de 13

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

A.III. 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 = Math.Sqrt((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

B.III. 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

B.III. 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

B.III. 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;
Console.Clear();
Console.Write(mensaje);
valor = double.Parse(Console.ReadLine());
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 = Math.Sqrt((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 (Math.Pow(hipotenusa, 2) == Math.Pow(catetoop, 2) +
Math.Pow(catetoady, 2))
{
Console.WriteLine("es un triangulo de tipo rectangulo");
}
else if (Math.Pow(hipotenusa, 2) < Math.Pow(catetoop, 2) +
Math.Pow(catetoady, 2))
{
Console.WriteLine("es un triangulo de tipo acutangulo");
}
else if (Math.Pow(hipotenusa, 2) > Math.Pow(catetoop, 2) +
Math.Pow(catetoady, 2))
{
Console.WriteLine("es un triangulo de tipo obtusangulo");
}

Console.WriteLine("El area del triangulo es: {0}", area);


Console.WriteLine("El perimetro del triangulo es: {0}", perimetro);
Console.ReadKey();
}

depuración

También podría gustarte