Está en la página 1de 11

UNIVERSIDAD DE EL SALVADOR

FACULTAD DE INGENIERIA Y ARQUITECTURA

MATERIA:
INTRODUCCION A LA INFORMATICA

INGENIERO:
Carlos Balmore Ortiz

Alumno:
Luis Fernando Salinas Benavides

Carnet:
SB21022
ENUNCIADO:
EJERCICIO 13:
Diseñe una solución que dado el radio de un disco, la base y la altura de un rectángulo,
calcule e imprima el perímetro de la circunferencia del disco y el perímetro del rectángulo
así como el área del disco y el área del rectángulo

SOLUCION
Planteamiento general del problema

ENTRADA DE DATOS PROCESO SALIDA DE DATOS

- Radio del circulo - Área y perímetro del circulo


- Base del Rectángulo - Área y perímetro del Rectángulo
- Altura del Rectángulo

Análisis/Diseño Jerárquico modular – Diagrama top Down

SB21022Guia5Ej13

Program

Main

LeerDouble RadioCirculo AlturaRec BaseRec Imprimir


 Análisis del problema
A) Definición de datos de salida.

Nombre Tipo Descripción


areaCirculo Real Representa el área del
circulo
perimetroCirculo Real Representa el perímetro
del circulo
areaRectangulo Real Representa el área del
rectángulo
perimetroRectangulo Real Representa el perímetro
del rectángulo

B) Definición de datos de entrada:


Variables de entrada:

Nombre Tipo Descripción


RADIO Real Es el radio de la
circunferencia del disco
BASE Real Es la base del rectángulo
ALTURA Real Es la altura del rectángulo

Constantes:

Nombre Tipo Descripción Valor


PI Real Valor de la 3.141592
constante
matemática PI

C) Restricciones:
Radio > 0
Base > 0
Altura > 0

D) Proceso:
PI = 3.141592
Leer material
Radio: LeerDouble(“Ingrese el radio del circulo”)
Altura: LeerDouble(“Ingrese la altura del rectangulo”)
Base: LeerDouble(“Ingrese la base del rectangulo”)
areaCirculo = calcularAreaCir(Radio, Pi, 2)
perimetroCirculo = calcularPerimetroCir(2, Radio, PI)
areaRectangulo = calcularAreaRec(Base, Altura)
perimetroRectangulo = calcularPerímetroRec(Base, Altura, 2)
Imprimir (areaCiruclo, perimetroCirculo, areaRectangulo, perimetroRectangulo)

 Diseño Modular de la Solución:


Modulo principal Main

Pseudocodigo

{Main, modulo que permite almacenar los datos de entrada, invoca los métodos
que procesan, almacenan los resultados e invocan el método que imprime la
salida}
{Radio, Altura, Base son variables de tipo real, PI es constante de tipo real con
valor de 3.141592}

Pasos:
1. Hacer PI=3.141592
2. Hacer Radio: LeerDouble(“Ingrese el radio del circulo”)
3. Hacer Altura: LeerDouble(“Ingrese la altura del rectángulo”)
4. Hacer Base: LeerDouble(“Ingrese la base del rectángulo”)
5. Hacer areaCir = araeCirculo(Radio, Pi, 2)
6. Hacer perímetroCir = perimetroCirculo(2, Radio, PI)
7. Hacer areaRec = areaRectangulo(Base, Altura)
8. Hacer perimetroRec = perimetroRectangulo(Base, Altura, 2)
9. Invocar imprimir (areaCirculo, perimetroCirculo, areaRectangulo,
perímetroRectangulo)
 Flujograma

INICIO 1

PI = 3.141592 areaCirculo

Ingrese el radio perimetroCirculo


del círculo.

areaRectangulo
RADIO

perimetroRectangulo
Ingrese la base
del rectángulo

“Área del circulo: “, areaCirculo,


“(Unidades cuadradas)” “Perímetro
BASE del circulo: “, perimetroCirculo,
“(Unidades lineales)” “área del
rectángulo: “, areaRectangulo,
“(Unidades cuadradas)” “Perímetro
Ingrese la altura del rectángulo: “,
del rectángulo. perimetroRectangulo, “(Unidades
lineales)”

ALTURA

FIN
1
 Diseño de la solución por submodulos

Pseudocodigo del sub-Algoritmo Sub-Flujograma

AREA_CIRCULO areaCirculo(Radio)
{modulo que recibe el radio de un
circulo, calcula el área y retorna su
valor}
areaCirculo =
{radio, areaCirculo son variables de tipo
PI*Pow(radio,2)
real}

Pasos
1. Recibir Radio Retornar areaCirculo
2. Calcular areaCirculo = PI *
Pow(Radio,2)
3. Retornar areaCirculo

Pseudocodigo del sub-Algoritmo Sub-Flujograma

PERIMETRO_CIRCULO perimetroCirculo(Radio)
{modulo que recibe el radio del círculo,
calcula su perímetro y retorna su valor}

Pasos
perimetroCirculo =
1. Recibir Radio
2*Radio*PI
2. Calcular perimetroCirculo = 2 *
Radio * PI
3. Retornar perimetroCirculo

Retornar
perimetroCirculo
Pseudocodigo del sub-Algoritmo Sub-Flujograma

AREA_RECTANGULO areaRectangulo(Base, Altura)


{Modulo que recibe la base, la altura,
calcula su área y retorna su valor

Pasos
1. Recibir Base, Altura
areaRectangulo = Base*Altura
2. Calcular areaRectangulo = Base *
Altura
3. Retornar areaRectangulo

Retornar areaRectangulo

Pseudocodigo del sub-Algoritmo Sub-Flujograma

PERIMETRO_RECTANGULO
{modulo que recibe la base, altura, perimetroRectangulo(Base,
calcula su perímetro y retorna su valor} Altura)

Pasos
1. Recibir base, Altura
perimetroRectangulo = (Base +
2. Calcular perimetroRectangulo =
Altura) * 2
(Base + Altura) * 2
3. Retornar perimetroRectangulo

Retornar
perimetroRectangulo
Pseudocodigo del sub-Algoritmo Flujograma

IMPRIMIR Imprimir(areaCirculo,
{modulo que recibe Área y perímetro perimetroCirculo)
del círculo, y muestra sus valores en
pantalla

Pasos
1. Recibir areaCirculo, “Area del circulo: ”, areaCirculo
perimetroCirculo “Unidades cuadradas”
2. Escribir “Área del circulo: “ , ”Perimetro del Circulo: “,
areaCirculo “Unidades cuadradas” perimetroCirculo “Unidades
3. Escribir “Perímetro del circulo:” Lineales”
,perimetroCirculo “Unidades
Lineales”
4. Retornar

Retornar

Pseudocodigo del sub-Algoritmo Flujograma

IMPRIMIR Imprimir(areaRectangulo,
{modulo que recibe Área y Perímetro del perimetroRectangulo)
rectángulo, y muestra sus valores en
pantalla
“Area del rectangulo:”,
Pasos
areaRectangulo “Unidades
1. Recibir areaRectangulo,
Cuadraticas”
perimetroRectangulo
2. Escribir “Area del rectangulo”, ”Perimetro del Rectangulo: “,
araeRectangulo “Unidades perimetroRectangulo “Unidades
cuadráticas” Lineales”
3. Escribir “Perimetro del rectangulo”,
perimetroRectangulo “Unidades
Lineales
4. Retornar

Retornar
 Codificación y documentación de la solución

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
/// <summary>
/// Guía: #5.
/// Ejercicio: #13.
/// Fecha: 19/03/2021.
/// Autor: Luis Fernando Salinas Benavides.
/// Carnet: SB21022.
/// GL: #23.
/// Instructor: Ing. Carlos Balmore Ortiz.
/// </summary>

namespace SB21022Guia5Ej13
{ //Comentarios, descripción del programa.
/// <summary>
/// Programa que, dado el radio de un disco, base, altura de un rectángulo
calcule e imprima el perímetro
/// de la circunferencia del disco y el perímetro del rectángulo, así como el
área del disco y el área del rectángulo.
/// </summary>
class Program
{
//Constantes.
const double PI = 3.141592;

//Comentarios de descripcion metodo Main.


/// <summary>
/// Metodo que permite almacenar los datos de entrada,
/// invoca los metodos que procesan, almacena resultados
/// e invoca al metodo que permite la salida.
/// </summary>
/// <param name="args">parametro no utilizado</param>

static void Main(string[] args)


{
//Declaracion de variables.
double RADIO, BASE, ALTURA, areaCirculo, perimetroCirculo,
areaRectangulo, perimetroRectangulo;

//Identificación del programa.


Console.WriteLine("SB21022Guia5Ej13 Perimetro de circunferencia del
disco y del rectangulo y area de ambos.");
Console.WriteLine("Autor: Luis Fernando Salinas Benavides. Carnet:
SB21022");
Console.WriteLine("Grupo de laboratorio: #23\n");

//Entrada de datos
Console.Write("Ingrese el RADIO del circulo: ");
RADIO = double.Parse(Console.ReadLine());
Console.Write("Ingrese la BASE del rectangulo: ");
BASE = double.Parse(Console.ReadLine());
Console.Write("Ingrese la ALTURA del rectangulo: ");
ALTURA = double.Parse(Console.ReadLine());

//Proceso
areaCirculo = calcularAreaCir(RADIO, PI, 2);
perimetroCirculo = calcularPerimetroCir(2, RADIO, PI);
areaRectangulo = calcularAreaRec(BASE, ALTURA);
perimetroRectangulo = calcularPerimetroRec(BASE, ALTURA, 2);

//Resultados
Console.WriteLine("\narea del circulo es igual a: {0:#####0.00} mts^2",
areaCirculo);
Console.WriteLine("perimetro del circulo es igual a: {0:#####0.00} mts",
perimetroCirculo);
Console.WriteLine("area del rectangulo es igual a {0:#####0.00} mts^2",
areaRectangulo);
Console.WriteLine("perimetro del rectangulo es igual a {0:#####0.00}
mts", perimetroRectangulo);

Console.ReadKey();
}
/// <summary>
/// areaCirculo: recibe como radio del circulo en unidades,
/// calcula y retorna el area del circulo en unidades cuadraticas
/// </summary>
/// <param name="RADIO">representa el radio del circulo</param>
/// <param name="PI">representa la constante PI = 3.14592</param>
/// <param name="J">Representa 2</param>
/// <returns>area del circulo en unidades cuadraticas</returns>
static double calcularAreaCir(double RADIO, double PI, int J)
{
double areaC;
areaC = Math.Pow(RADIO, J) * PI;
return areaC;
}
/// <summary>
/// perimetroCirculo: recibe radio del circulo en unidades,
/// calcula y retorna el area del circulo en unidades cuadraticas
/// </summary>
/// <param name="J">Representa 2</param>
/// <param name="Rad">representa el radio del circulo</param>
/// <param name="PI">representa la constante PI = 3.14592</param>
/// <returns>perimetro del circulo en unidades lineales</returns>
static double calcularPerimetroCir(int J, double Rad, double PI)
{
double perimetroC;
perimetroC = J * Rad * PI;
return perimetroC;
}
/// <summary>
/// areaRectangulo: recibe como base y altura en unidades,
/// calcula y retorna el area del rectangulo en unidades cuadraticas.
/// </summary>
/// <param name="Bas1">Representa la base del rectangulo</param>
/// <param name="Altu1">Representa la altura del rectangulo</param>
/// <returns>area del rectangulo en unidades cuadraticas</returns>
static double calcularAreaRec(double Bas1, double Altu1)
{
double areaRec;
areaRec = Bas1 * Altu1;
return areaRec;
}
/// <summary>
/// periemtroRectangulo: recibe como base y altura en unidades,
/// calcula y retorna el area del rectangulo en unidades lineales
/// </summary>
/// <param name="Bas2">Representa la base del rectangulo</param>
/// <param name="Altu2">Representa la altura del rectangulo</param>
/// <param name="J">Representa 2</param>
/// <returns>perimetro del rectangulo en unidades lineales</returns>
static double calcularPerimetroRec(double Bas2, double Altu2, int J)
{
double perimetroRec;
perimetroRec = (Bas2 + Altu2) * J;
return perimetroRec;

También podría gustarte