Intro A La Informatica

UNIVERSIDAD DE EL SALVADOR FACULTAD DE INGENIERIA Y ARQUITECTURA ESCUELA DE INGENIERIA DE SISTEMAS INFORMATICOS INTRODUC

Views 151 Downloads 4 File size 544KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

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

m

h 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 energiaPotencialGravitatoria

Tipo Real

Descripción 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 masa Real Masa en libras altura Real Altura en pies

Descripción

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 LIBRASXKILOGRAMO Numérico Real PIESXMETRO Numérico Real GRAVEDAD Numérico Real

Descripción Valor Valor de conversión de libras a 2.20462 kilogramos Valor de conversión de pies a 3.28084 metros Valor de la constante de gravedad 9.8

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(); } /// /// método para Calcular el peso de un cuerpo conociendo su masa en kg /// /// /// static double CalcularPeso(double masa) { double peso; peso = masa * GRAVEDAD; return peso; }

10

/// /// método para Calcular la energía potencial Gravitatoria conociendo el peso y la altura. /// /// /// /// 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: /// /// /// namespace AB16777Guia5Ejemplo1

Dentro del “sumario”, se va a documentar la siguiente información: /// /// 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 /// 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 **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 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 segundos que tarda en caer, el objeto. g = 9.8 mts/seg2

m

h Epg= w.g

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