Está en la página 1de 16

UNIVERSIDAD DE EL SALVADOR

FACULTAD DE INGENIERIA Y ARQUITECTURA


ESCUELA DE INGENIERIA DE SISTEMAS INFORMATICOS
INTRODUCCION A LA INFORMATICA – Ciclo I 2019
GUIA 5: Metodología para Resolver Problemas con Modularidad

Objetivo General:
Desarrollar aplicaciones con un enfoque de reutilización de código, aplicando la técnica
“divide y vencerás” dentro del marco de trabajo dado por la Metodología para Resolver
Problemas, impartida en la Asignatura.

Objetivos Específicos:
● Mostrar la aplicación de la Metodología para Resolver Problemas utilizando modularidad
y las técnicas o métodos aplicables en cada una de ellas.
● implementar por medio de métodos, las tareas básicas de entrada, proceso y salida,
según sea la necesidad del problema, usando el Lenguaje C#

Introducción:
Esta Guía consta de tres partes. La primera parte explica como se implementará la
Metodología para Resolver Problemas adoptada para la Asignatura, cuando se requiera
aplicar modularidad; la segunda parte da a conocer el procedimiento a seguir para crear
métodos en lenguaje C#, y solución completa de ejercicio ejemplo, haciendo uso de la
Metodología planteada; y por último, en la tercera parte, se brinda un listado de Ejercicios
Propuestos, de los cuales el docente instructor le asignará 2 a cada estudiante del grupo de
laboratorio para desarrollar durante la sesión correspondiente.

Metodología: los estudiantes DEBERAN estudiar la guía ANTES de su práctica.


Cada estudiante desarrollará 2 ejercicios propuestos de la Parte III, indicados por su
instructor y los entregará durante la sesión de Laboratorio.
NOTA: Favor desalojar el Local de Laboratorio puntualmente

Parte I. Fases de la Metodología para Resolver Problemas:


Técnica “Divide y Vencerás”
En la guía de laboratorio anterior se explicó cada una de las etapas de la Metodología para
Resolver Problemas, aplicado a ejercicios sencillos, sin embargo habrán ejercicios más
complejos que requerirán un poco más de análisis o que exijan que se aplique modularidad
que es la propiedad que permite subdividir un problema en partes más pequeñas (llamadas
módulos), de tal forma que resolviendo los pequeñós problemas se de solución al
planteamiento total del problema. En programación se entenderá como módulos, a
programas que realicen cierta actividad, o cumplan con cierto objetivo único y que tendrá la
característica de ser un código independiente de las partes de tal forma que pueda ser
reutilizable.

¿Entonces como se aplicará la Metodología para resolver problemas cuando se requiera


aplicar modularidad?

Se aplicarán todos los pasos de la metodología para resolver problemas citados en la


guía 4 de laboratorio, agregando:

1
Antes de la etapa de Análisis:
 Diagrama Top Down o diseño Jerárquico Modular, aplicando la técnica Divide y
Vencerás, donde la raíz del diagrama debe ser el namespace del Proyecto, y
de este dependerán el resto de clases/métodos que resulten del análisis.

En la etapa de Diseño:

Agregar el diseño de cada uno de los submódulos o métodos que se definieron en el


diagrama top down el cual puede hacerse (al igual que el diseño de soluciones) a
través del uso de pseudo-código, o a través de flujograma, determinando primerante el
nombre el método, su objetivo, los parámetros que va a recibir, el procedimiento a
realizar, y los resultados que va a dar como los tipos de datos a utilizar. Para la
asignatura utilizaremos el flujograma para diseño de cada uno de los módulos.

En la Codificación de la Solución:
Escribir el código necesario para implementar la solución modular diseñada, es decir
hacer el Código Fuente. Es el programa escrito en Lenguaje C#.

Todas las demás etapas que no están nombradas acá se aplican tal cual sobre
el módulo principal

Parte II. Ejemplos de Aplicación de la Metodología para Resolver Problemas


La finalidad de esta Parte es: definir el procedimiento aplicable dentro del marco de trabajo
de la Metodología para Resolver Problemas, simplificando los pasos y estandarizándolos, de
tal manera que no se dupliquen esfuerzos. Aclarado lo anterior se procede entonces a listar
los pasos a seguir:

1. Planteamiento General: A partir del enunciado de un problema leerlo atentamente y


comprender exactamente que es lo que nos pide, para elaborar el Planteamiento
General del Problema, identificando la entrada de datos y la salida de datos, para ello
se empleará el Método de Caja Negra.
2. Diagrama Jerárquico Modular
Elaborar un Diagrama Jerárquico o Arbol Jerárquico Modular Top-Down, que refleje
gráficamente la organización de la aplicación con su namespace, clase Program y
métodos, incluyendo Main.

Este diagrama Jerárquico podrá ser realizado después de analizar exhaustivamente el


enunciado y planteamiento del problema, a partir del cual se debe identificar las
actividades individuales que debe hacer el programa, a fin de obtener el resultado
esperado. Identificando estas actividades individuales se puede determinar cuales de
ellas deberán realizarse en módulos independientes, cuales deben agruparse y cuales
pueden ser reutilizables.

3. Análisis del Problema: Análisis del problema para el método principal.


4. Diseño de la Solución: Debe diseñar el flujograma del método principal y el
flujograma de cada uno de los submódulos (métodos) correspondientes al diagrama
Top-Down. En cada submódulo se hace una breve descripción de qué hace ese

2
módulo.
5. Codificación:
a. Crear Proyecto: Crear una nueva solución/proyecto en el IDE Visual
Studio según el estándar establecido en sesiones anteriores de laboratorio
sobre la ubicación y el nombre del proyecto.
b. Codificación: Codificación (del diseño) de la Solución en Visual Studio
de los métodos.
c. Compilar (verificar sintaxis), depurar (buscar y corregir errores si los hay)
y ejecutar la solución
d. Guardar, Cerrar la solución y Finalizar.
5. Depuración: Verificar que se obtienen los resultados esperados, de lo contrario revisar los
pasos anteriores.
6. Documentar la Solución. Aplicar las técnicas de documentación interna explicadas en clase

A continuación, se va a desarrollar un ejercicio siguiendo el procedimiento paso


a paso.
m
Enunciado 1. Dada la masa (m) de un cuerpo en libras y la altura (h) en pies sobre la
superficie de la tierra a la que se encuentra el cuerpo, y siendo que el cuerpo está en
reposo (Vi = 0, velocidad es cero a esa altura), entonces, se pide calcular a dicha altura,
pero en sistema internacional la Energía Potencial Gravitatoria, EPG, del cuerpo y h
desplegar el resultado en sistema internacional. La EPG = w . h siendo w el peso dado
por w = m.g donde g = 9.8 mts/seg2
Epg= w.g

1. Elaborar el Planteamiento General del Problema.


Es la Fase I de la Metodología para Resolver Problemas y se debe dejar constancia
escrita de dicha Fase, como se muestra a continuación:

Planteamiento del Problema

Entrada de Datos Salida de Datos


PROCESO
Masa del cuerpo en Libras Mostrar* Masa y Altura ingresadas
Altura del cuerpo en Pies EPG en Sistema Internacional
Factor de conversión libras a kilogramos (2.2 lbs)
Factor de conversión pies a metros ()
Constante de Gravedad (9.8mts/seg2)

*Mostrar nos indica que la masa y la altura ingresadas no son variables de


salida, no se calcularán pero si se mostrarán al final de la solución.

3
2. Diagrama Jerárquico Modular:
En esta etapa se requiere interpretar lo que se está pidiendo y analizarlo más
exhaustivamente, identificando los cálculos a realizar, qué resultados deberían producir y
los datos necesarios para producir dichos resultados en la cantidad y calidad requeridos.
Además de todo lo anterior debe identificar las “piezas” o “partes” reutilizables que
pueden servir en la presente solución.
En este sentido, se debe empezar a razonar, entre otras cosas, que en el sistema
internacional la unidad para la masa es el Kilogramo, PERO que el problema plantea
que será proporcionada en Libras (lo cual involucra la necesidad de una conversión de
unidades); además que, la masa debe ser un valor positivo. Por otro lado, la unidad
para la altura o distancia, en el sistema internacional es el metro, pero estará dado en
Pies (lo cual involucra otra conversión de unidades) y que la altura también debe ser
una cantidad positiva.
Después de estas conversiones de unidades, todo estaría listo para realizar los
cálculos en sistema internacional y mostrar los resultados también en sistema
internacional.

Considerar que:
La Energía Potencial Gravitatoria EPG=w.h, da como resultado newton-mts = Joules
El peso está dado en Kilogramos . mts . = Newton
seg2
Y, que la fórmula del peso es w = m . g -> donde g representa la constante de
aceleración de la gravedad con valor 9.8 mts/seg.2
Contínuamente, se debe tratar de identificar y clasificar las “piezas” independientes y
que serán parte de la solución final; es decir, piezas que pueden ser abstraídas e
independizadas en diferentes métodos.
Siguiendo con este análisis, se identifican dos tareas, de las cuales se establecen los
métodos que pueden hacerse en cada una que son:

a) Conversión de Unidades, la cual agrupará constantes y cálculos de conversión


de unidades. Dentro de esta primer tarea, se deben plantear las siguientes
constantes: cantidad de libras por kilogramo (2.20462 Lbs) y cantidad de pies por
metro (3.28084 pies) . Los métodos de conversión de unidades en esta primer
tarea son:
a.1) Libras a Kilogramos, que debe recibir una cantidad en libras y retornarla
en kilogramos.
a.2) Pies a Metros, que debe recibir una cantidad en pies y retornarla en metros.

b) Cálculos de Física en Sistema Internacional, la cual agrupará constantes y


cálculos de Física en Sistema Internacional. Dentro de esta segunda tarea, se
ocupará como constante, la aceleración de la gravedad (9.8 mts/seg2). Los
métodos de cálculo en esta segunda tarea son:
b.1) Calcular Peso, que recibe la masa en kilogramos y retorna el peso en
newton.
b.2) Calcular EPG, que recibe el peso en newton, la altura en metros y retorna la
energía en Joules.

4
*Recordar que el manejo de las unidades es solamente a través de
mensajes, que ninguna constante, variable o método almacena, recibe o
retorna unidades, sino sólo valores.

Además del método Main que siempre estará presente, se van a programar los
siguientes métodos:

LeerDouble, que recibirá (parámetro) un mensaje (cadena de caracteres), que el


método mostrará en pantalla, como mensaje de entrada, luego leerá un valor real por
teclado, lo convertirá a double y retornará el valor double. Este mismo método puede
emplearse cada vez que se requiera leer variables de tipo double.

Calcular, método que recibirá la masa en libras, la altura en pies y que retornará la
energía potencial gravitatoria en sistema internacional.

Ahora que ya se ha hecho un análisis más profundo se puede diseñar el Diagrama


Top-Down que debe mostrar la organización lógica de la solución. Como ya se ha
explicado anteriormente, sólo se va a trabajar con un Proyecto el cual organiza
internamente el código dentro de un espacio de nombres llamado igual que el
Proyecto. En este caso, si el carnet fuera AB16777 entonces el nombre del
namespace es AB16777Guia5Ejemplo1 igual que el Proyecto. Por tanto, la raíz del
Diagrama es el namespace AB16777Guia5Ejemplo1, y de él depende la clase
Program. Para este caso, se definirán cuatro métodos adicionales al Main, dentro
todos de la clase Program.

Diagrama Top-Down AB16777Guia5Ejempl


o1

Program

Main

LibrasAKilogramos PiesAMetros CalcularPeso CalcularEPG LeerDouble

Una vez se ha hecho el análisis y diseño del Diagrama Top-Down para la solución, se
debe, a continuación, y para cada namespace/clase/método, desarrollar el Análisis.

5
3. Análisis del Problema:
a) Definición de datos de salida

Variables de salida
Nombre Tipo Descripción
energiaPotencialGravitatoria Real Resultado del cálculo de la energía potencial
gravitatoria
---> Se debe mostrar la masa y la altura originales en la salida del programa

4. Definición de Datos de entrada


b) Variables de Entrada
Nombre Tipo Descripción
masa Real Masa en libras
altura Real Altura en pies

c) Constantes:

Constantes de la Clase Program: Las constantes se definen en la clase Program de


tal forma que puedan ser recnocidas por todos los métodos de dicha clase.

Nombre Tipo Descripción Valor


LIBRASXKILOGRAMO Numérico Valor de conversión de libras a 2.20462
Real kilogramos
PIESXMETRO Numérico Valor de conversión de pies a 3.28084
Real metros
GRAVEDAD Numérico Valor de la constante de gravedad 9.8
Real

d) Restricciones: masa>0 && altura > 0

e) Proceso
LIBRASXKILOGRAMO = 2.20462
PIESXMETRO = 3.28084
Leer masa, altura
masaKg = LibrasAKilogramos(masa)
alturaMts = PiesAMetros(altura)
peso = CalcularPeso(masaKg)
energiaPotencialGravitatoria=CalcularEPG(peso,alturaMts)

f) Definición de Variables de Proceso


Nombre Tipo Descripción
masaKg Real Resultado de la conversión de masa en
kilogramas
alturaMts Real Resultado de la conversión de altura en metros
peso Real Resultado de peso en newtons

6
4.Diseño Modular de la Solución:
Módulo Principal Main

Diseño de la Solución por Sub Módulos

Por cada uno de los submódulos se escribirá el nombre, se definirá si el método que se
está utilizando será estático o no. Todos los métodos utilizados en esta asignatura
serán estáticos.

En C# podemos definir métodos que se crean independientemente a la definición de


objetos. Un método estático puede llamarse sin tener que crear un objeto de dicha
clase. Un método estático tiene ciertas restricciones: No puede acceder a los atributos
de la clase (salvo que sean estáticos)

7
Módulo LibrasAKilogramos Estático: sí
¿Qué hace LibrasAKilogramos? Recibe como parámetro el valor de la masa en libras y
retorna el valor de la masa en kilogramos.

LibrasAKilogramos(libras)

kilogramos = libras /
LIBRASXKILOGRAMO

Retornar kilogramos

Módulo PiesAMetros Estático: sí


¿Qué hace PiesAMetros? Recibe como parámetro el valor de la distancia en pies y retorna el
valor de la distancia en metros.

PiesAMetros(pies)

metros = pies /
PIESXMETRO

Retornar metros

Módulo CalcularPeso Estático: sí


¿Qué hace CalcularPeso? Recibe como parámetro la masa en kilogramos y retorna el valor
del peso en newton

8
Módulo CalcularEPG Estático: sí
¿Qué hace CalcularEPG? Recibe como parámetros: peso en newton y altura en metros a la
que se encuentra un cuerpo y retorna la energía potencial gravitatoria

NOTA: Observar que hay restricción para los parámetros, pero que los métodos no
verifican si están recibiendo un parámetro que cumple con la restricción. Lo anterior se
debe a que aún no se están empleando estructuras selectivas/repetitivas; por el
momento, recordar que las restricciones sólo se dejan como mensajes en pantalla por
ahora

Módulo LeerDouble Estático: sí


¿Qué hace LeerDouble? Permite mostrar un mensaje en pantalla, el cual recibe como
parámetro, para solicitar una variable tipo double, lee la variable y retorna dicho valor.

9
ACLARACIÓN: Los métodos privados y estáticos, se consideran no reutilizables. La
clase Program es static, porque no requiere instancias (objetos) para la Solución.

g) Crear una nueva solución/proyecto en el IDE Visual Studio, en la ubicación y


con el nombre adecuado según la Guía y ejercicio solicitado (Guía 5 Ejemplo
1).

h) Codificación: Codificación de la Solución en Visual Studio 2015

class Program
{
//Recuerde que las constantes deben estar dentro de la clase fuera de los métodos
const float LIBRASXKILOGRAMO = 2.20462F;
const float PIESXMETRO = 3.28084F;
const float GRAVEDAD = 9.8F;

static void Main(string[] args)


{ //Declaración de Variables
double masa, altura, energiaPotencialGravitatoria;
double peso, masaKg, alturaMts;

//Identificación del Programa en Pantalla


Console.WriteLine("AB16777Guia5Ej1-Cálculo Energia Potencial Gravitatoria S.I.");
Console.WriteLine("Autor: Amaya Buendía, María Teresa GL: 07 \n");

//Entrada de Datos
Console.WriteLine("Ingrese la Masa (Libras, valor positivo): ");
masa = double.Parse(Console.ReadLine());
Console.WriteLine("Ingrese la Altura (Pies, valor positivo): ");
altura = double.Parse(Console.ReadLine());

//Proceso de Datos
masaKg = LibrasAKilogramos(masa);
alturaMts = PiesAMetros(altura);
peso = CalcularPeso(masaKg);
energiaPotencialGravitatoria = CalcularEPG(peso, alturaMts);

//Salida de Datos
Console.WriteLine("\n\nResultados.");
Console.WriteLine("Una Masa: {0:#####0.00} (Libras) a una Altura: {1:#####0.00}
(Pies)", masa, altura);
Console.WriteLine("Posee una Energía Potencial Gravitatoria de: {0:#####0.00}
Joules.", energiaPotencialGravitatoria);
Console.ReadKey();
}

/// <summary>
/// método para Calcular el peso de un cuerpo conociendo su masa en kg
/// </summary>
/// <param name="masa"></param>
/// <returns></returns>
static double CalcularPeso(double masa)
{
double peso;
peso = masa * GRAVEDAD;
return peso;
}

10
/// <summary>
/// método para Calcular la energía potencial Gravitatoria conociendo el peso y la
altura.
/// </summary>
/// <param name="peso"></param>
/// <param name="altura"></param>
/// <returns></returns>
static double CalcularEPG(double peso, double altura)
{
double energiaPotencialGravitatoria;
energiaPotencialGravitatoria = peso * altura;
return energiaPotencialGravitatoria;
}

static double LibrasAKilogramos(double libras)


{
double kilogramos;
kilogramos = libras / LIBRASXKILOGRAMO;
return kilogramos;
}

static double PiesAMetros(double pies)


{
double metros;
metros = pies / PIESXMETRO;
return metros;
}
}

i) Compilar(verificar sintáxis), depurar (buscar y corregir errores, si los hay) y


ejecutar la solución. A continuación, se muestra una imágen que ilustra la
Ejecución de la Solución:

j) Verificar que se obtienen los resultados esperados, de lo contrario revisar los


pasos anteriores.

11
k) Documentar la Solución como se explica a continuación:

A. Identificación del Programa en Pantalla (como se hizo en la Guía 3):


indicando autor, carnet, qué hace el programa y grupo de laboratorio.

B. Datos de Registro: ubicar el cursor en una línea antes de la línea del


namespace y luego digitar /// (tres plecas o barras inclinadas, slash), como se
muestra:

///
namespace AB16777Guia5Ejemplo1
Una vez hecho lo anterior, automáticamente se desplegará un área para
comentarios (plantilla para documentación) como la que se muestra a
continuación:
/// <summary>
///
/// </summary>
namespace AB16777Guia5Ejemplo1

Dentro del “sumario”, se va a documentar la siguiente información:


/// <summary>
/// Guía: número de Guía si se está desarrollando una Guía, sino omitirlo.
/// Evaluación: Primer Laboratorio Evaluado (si es el evaluado sino omitirlo)
/// Ejercicio: es el número de ejercicio, si es una Guía, sino omitirlo
/// Fecha: Siempre digitar la fecha, no importa si es Guía o Evaluado
/// Autor: colocar el nombre completo siempre
/// Carnet: siempre escribir el carnet
/// GL: digitar el número de grupo de laboratorio siempre
/// Instructor: escribir el nombre del docente instructor
/// </summary>

C. Comentarios de método. Similar al literal anterior, colocar el cursor en la línea


anterior al método y presionar tres veces / y aparecerá la plantilla para
documentación de Visual Studio; a continuación, rellenar con la información
pertinente (se debe hacer para cada método). Por ejemplo, para el método
LeerDouble, se podría digitar algo similar a lo siguiente:

12
Observe que en este ejercicio se ha documentado autor y título del programa
enviando un mensaje en pantalla. También se ha utilizado el Summary para
documentar métodos, verifique que sucede al ubicarse con el mouse sobre el
nombre del método el cual se ha utilizado Summary. Documente todos los
métodos.

l) Guardar, Cerrar la Solución y Finalizar. Una vez verificado el programa y


terminada la documentación no queda más que guardar todo, cerrar solución y
dar por finalizado el ejercicio.

Parte III. Ejercicios Propuestos


A continuación, se presenta una serie de ejercicios propuestos. Como parte de esta Guía
deberá desarrollar por Ud. mismo dos de estos ejercicios, para la primera semana y tres,
para la segunda, indicados todos por su docente instructor. Recordar que, hasta este
momento, las unidades y restricciones quedarán a nivel de un mensaje indicativo en pantalla.

1. La Fábrica Esfera S.A., desea una solución que le permita conocer la cantidad de
material (volumen en mts3) necesario para fabricar el molde para una esfera y la
cantidad de bloques de material necesarios para fabricar un pedido de moldes de
longitud a en cada lado. El material que se usa para crear el molde es el acero. El
molde será en la forma de cubo, cuyo volumen viene dado por vc=a 3, mientras que el
volumen del hueco (esfera) está dado por ve=4/3 ¶ r3, dejando alrededor del hueco de
la esfera una distancia mínima de 5% entre la superficie de la esfera y la del cubo; por
lo que el diámetro de la esfera será d = a - 5a/100. Tome en cuenta que el acero
usado para fabricar los moldes se adquiere o compra en bloques de 1.25 mts 3 y que
en el proceso de fabricación se desperdicia un 5% del material en cada molde.
Además solo se fabrican moldes entre 0.10 mt y 1.00 mt de longitud por lado del cubo
y que la cantidad mínima a fabricar es de 100 unidades (moldes).

2. Dada la masa de un cuerpo y dado el tiempo que tarda en caer al suelo de una altura
h sobre la superficie de la tierra. Partiendo de que dicho cuerpo está en reposo a esa
altura h y luego se deja caer (se suelta, por lo que Vi=0). Se pide que calcule:
a) La altura (distancia que recorre el cuerpo verticalmente) hasta el suelo. h= Vi t + ½ .
g . t2 donde Vi es velocidad inicial, t tiempo y g gravedad y h altura.
b) La energía potencial gravitacional del cuerpo cuando está a la altura h.
Epg = w . h donde w es peso y h la altura.

13
c) La energía cinética del cuerpo, justo al momento de llegar al piso:
K = 1/2 m.v 2 m
**Todo en unidades sistema internacional y Suponga que son
“movimientos verticales en el vacío” sin resistencia. El peso del
cuerpo W = m.g donde w es peso, m es masa y g es gravedad de la h
tierra.
La velocidad del cuerpo, al llegar al suelo Vf = g . t donde Vf es la
velocidad, al llegar al suelo, g es la gravedad y t es el tiempo en Epg= w.g
segundos que tarda en caer, el objeto. g = 9.8 mts/seg2

3. Diseñe una solución que dada una temperatura en grados centígrados la convierta a
grados fahrenheit y grados kelvin. Debe mostrar la temperatura original y las dos
conversiones en pantalla, con sus respectivos mensajes de entrada y salida.

4. Diseñe una solución que dados masa (libras), distancia (kilómetros) y tiempo (minutos)
en que recorre móvil horizontalmente desde un punto A a un punto B Calcule e
imprima (usando sistema internacional) la energía cinética del móvil, además debe
mostrar los datos originales de entrada (masa, distancia y
tiempo).

5. Se necesita calcular la superficie y el volumen de prismas


de tipo rectangular y triangular (ver figura). En el prisma
triangular considere que todos los lados del triángulo son
iguales, mientras que para el rectangular todos los lados
son diferentes. Diseñe una solución que calcule e imprima
superficie y volumen en unidades cuadradas y unidades
cúbicas respectivamente.

6. Dados la longitud de un cubo y el radio de una


esfera, calcule e imprima la superficie y el
volumen en unidades cuadradas y cúbicas
respectivamente. También se pide que calcule
e imprima cuál es el volumen total de ambas
figuras tridimensionales.

7. Dado un número real calcule y muestre el cuadrado, cubo, cuarta y quinta potencia del
número.

8. Sin utilizar estructuras de datos (debe usar variables individuales de tipos primitivos).
Diseñe una solución que dadas dos fracciones f1 y f2, calcule e imprima la suma y el
producto de dichas fracciones donde: (NO DEBE SIMPLIFICAR LOS RESULTADOS)
suma = f1 + f2 = a / b +c / d = (ad+bc) / bd
producto = f1 . f2 = (a / b) (c / d) = ac / bd
Tanto la suma como el producto debe imprimirlos como fracciones
suma = x / y
producto = w / z
*Sugerencia, para almacenar las fracciones use 2 variables enteras para la primera
fracción y otras 2 variables enteras para la segunda fracción. De igual forma los

14
resultados guardarlos en 2 variables enteras para la suma y 2 variables enteras para
producto. *Los métodos solo pueden devolver/retornar un valor por lo que si no sabe
hacer uso de parámetros por referencia se recomienda que calcule por separado
numerador y denominador en cada operación: suma y producto. No considere
fracciones mixtas

9. Sin utilizar estructuras de datos (debe usar variables individuales de tipos primitivos).
Diseñe una solución que dada una fracción mixta,(Un número entero y una fracción
propia juntos) de la forma 4 ⅓ (cuatro unidades un tercio) la convierta a una fracción
no mixta, expresada totalmente como una fracción a/b Sin parte entera. Debe imprimir
la fracción mixta y la no mixta a pantalla.

10. Sin utilizar estructuras de datos (debe usar variables individuales de tipos primitivos).
Diseñe una solución que dadas dos fracciones mixtas, calcule e imprima la suma de
dichas fracciones. El resultado expresado como una fracción mixta; se debe mostrar
las fracciones originales.

11. Sin utilizar estructuras de datos (debe usar variables individuales de tipos primitivos).
Diseñe una solución que dadas dos números complejos (en la forma a + b i) calcule e
imprima la suma de dichos números y el producto de dichos números complejos. Debe
mostrar el resultado como número complejo.
Sugerencia para representar debe usar 2 variables reales para cada complejo igual
para el resultado. c1 = a + bi c2 = c + di c3 = c1 + c2 c4 = c1 . c2

12. Diseñe una solución que dado un ángulo en grados calcule e imprima el seno, coseno
y tangente para ese ángulo. Nota: todos los lenguajes de programación trabajan en
radianes.

13. Diseñe una solución que dado un radio de un disco, la base y 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.

14. Se necesita una aplicación para calcular la cuenta telefónica. No importa que
compañía sea, pues todas cobran por segundo exacto en llamadas y por byte en
datos. La diferencia es la tarifa por segundo y por byte. Dados las tarifas en dólares
por segundo de voz y por byte de datos y el consumo en segundos y en bytes que
tuvo el cliente, se pide que calcule e imprima el total de la factura si se sabe que
además del costo de la factura se le debe cargar al cliente 5 centavos por cada dólar o
fracción de dólar que consumió en su servicio telefónico.

15. Dada una cantidad entera de n encuestados que seleccionaron las respuestas de la
siguiente pregunta: ¿Qué música le gusta?, donde puede seleccionar más de una.
Ranchera [ ] Clásica [ ] Rock [ ] Pop [ ]
Se necesita una solución que imprima en forma de fracción (a/n) y de porcentaje lo
siguiente: cuántos gustan clásica o ranchera, cuántos gustan pop o rock y cuántos
gustan de las 4 opciones.
16. Dados 2 puntos en el plano cartesiano, calcular e imprimir la distancia entre ambos
puntos, la pendiente de la recta dada por ambos puntos, el área del rectángulo
imaginario dentro del cual está la recta (siendo la recta la diagonal que parte el

15
rectángulo en dos) y cuál es el área del triángulo imaginario, dado que la recta es la
hipotenusa.

17. Una empresa debe manejar los costos, ganancias e impuestos del negocio. Diseñe
una solución que dados en dólares para un año fiscal, las ventas totales, impuesto iva
(13%) de las ventas, los costos totales, calcule e imprima la ganancia bruta y la
ganancia neta (después de aplicar 20% de impuesto sobre la renta).
18. Se necesita una aplicación para calcular la cuenta telefónica. No importa que
compañía sea, pues todas cobran por segundo exacto en llamadas y por byte en
datos. La diferencia es la tarifa por segundo y por byte. Dados las tarifas en dólares
por segundo de voz y por byte de datos y el consumo en minutos y en Megabytes que
tuvo el cliente, se pide que calcule e imprima el total de la factura si se sabe que
además del costo de la factura se le debe cargar al cliente 5 centavos por cada dólar o
fracción de dólar que consumió en su servicio telefónico.

16

También podría gustarte