Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
Universidad de El Salvador Facultad de Ingeniería y Arquitectura Escuela de Ingeniería de Sistemas Informáticos Introducción a la Informática en línea. Guía Ejemplo de Tutoría Virtual 3 Metodología para resolver problemas con estructuras secuenciales y modularidad. Programación C# - Algoritmos con estructuras secuenciales y modularidad. Introducción Esta guía consta de dos partes. En la primera parte se desarrolla tres ejemplos completos en los cuales se aplican estructuras secuenciales haciendo uso del proceso solucionador de problemas para documentar el diseño del programa paso a paso, , en el tercer ejemplo se trata el tema de modularidad; la segunda parte trata sobre cuatro enunciados de ejercicios propuestos, los cuales el estudiante desarrollará como practica es decir es una actividad formativa no evaluada que pretende el aprendizaje mediante la práctica de ejercicios propuestos, para que el estudiante pueda familiarizarse con los algoritmos secuenciales y estudiar, no será necesario que entregue dichos ejercicios pero si le surgen dudas o dificultades al desarrollarlos puede consultar con su tutor en el foro de dudas de la unidad 3. Objetivo General: ● Adquirir el conocimiento y la habilidad para desarrollar soluciones haciendo uso de la metodología para resolver problemas, impartida en la asignatura; empleando las estructuras secuenciales, todo esto auxiliándose de la herramienta para desarrollo de aplicaciones IDE Visual Studio 2015 para codificar la solución a los ejercicios que se le proponen. Objetivos Específicos: ● Conocer, comprender y aplicar pasos secuenciales en el diseño de algoritmos. ● Identificar cuáles son las diferentes partes de un algoritmo secuencial y los pasos de diseño usando el método llamado proceso solucionador de problemas. ● Adquirir el conocimiento y la habilidad para implementar soluciones con estructuras secuenciales usando el Lenguaje C#. ● Aprender a utilizar modularidad en C# mediante métodos públicos en clases estáticas. ● Aprender a cómo llamar a una función o método de una clase estática en lenguaje C# UNIVERSIDAD DE EL SALVADOR EN LÍNEA FACULTAD DE INGENIERÍA Y ARQUITECTURA INTRODUCCIÓN A LA INFORMÁTICA 2 Equipo, materiales y herramientas: ● Computadora Personal con Windows. ● Conexión a Internet para la tutoría virtual. ● Visual Studio 2015 Community Edition. Metodología. El estudiante puede desarrollar los cuatro ejercicios planteados en la Parte II como practica para su proceso de aprendizaje luego de finalizada la tutoría. Además, recuerde que el día su tutoría virtual, usted como estudiante observo un ejemplo paso a paso brindado por su tutor sobre el proceso solucionador de problemas y un ejemplo de modularidad. Parte I. Aplicación de La Metodología Para Resolver Problemas (Ejercicios de ejemplo). Ejemplo 1 Aplicando proceso solucionador de problemas: En un almacén se realiza un 20% de descuento a los clientes como parte de una promoción de verano ¿a cuánto asciende en dinero el descuento y cuál será la cantidad total de dinero que pagará una persona por su compra? DESARROLLO DE LA SOLUCION A. Planteamiento general del problema (Método de la caja negra). B. Análisis del problema. 1. Definición de variables de entrada. Definición de variables de entrada. Nombre Tipo Descripción ValorCompra Real Contiene el monto de la compra. Definición de constantes. Nombre Tipo Descripción PorcentajeDescuento Real Porcentaje de descuento a aplicar y su valor será 0.20 es decir, será 20%. Nota: esta tabla de definición de constantes puede ir en variables de proceso ya que no es un dato que se lee en las entradas si no que una constante. Calcular Descuento Encontrar el monto a pagar ENTRADAS ValorCompra PorcentajeDescuento SALIDAS DescuentoEnDinero TotalAPagar PROCESO UNIVERSIDAD DE EL SALVADOR EN LÍNEA FACULTAD DE INGENIERÍA Y ARQUITECTURA INTRODUCCIÓN A LA INFORMÁTICA 3 2. Definición de variables de salida. Definición de variables de salida. Nombre Tipo Descripción TotalAPagar Real Almacena la cantidad total de dinero a pagar por el cliente. DescuentoEnDinero Real Almacena el monto del descuento en dinero calculado con una formula. 3. Restricciones. Debido a que es necesario que se realice una compra para hace el cálculo el valor de compra ingresado debe satisfacer esta condición. ValorCompra>=0 Nota: en este caso no aplicaremos la restricción debido a que requiere el uso de estructuras de decisión y/o repetitivas y el tema de esta tutoría es estructuras secuenciales, proceso solucionador de problemas y modularidad, posteriormente en otra unidad se abarcará el tema de estructuras condicionales o de decisión y el tema de estructuras repetitivas. Se les invita a los estudiantes que cuando se vean esos temas en las siguientes unidades modifiquen estos ejercicios para implementar las restricciones planteadas. 4. Proceso. Vamos a recordar que, en esta parte, solo escribimos los procesos matemáticos (cálculos o asignaciones) y los procesos lógicos (comparaciones o condiciones), que se realizarán para resolver el problema, y si se escriben en orden nos facilita aún más el diseño de solución. Por lo tanto las formulas a utilizar son: DescuentoEnDinero = ValorCompra * PorcentajeDescuento; TotalAPagar = ValorCompra – DescuentoEnDinero; En donde Descuento es la cantidad a descontar y PorcentajeDescuento es el porcentaje (20%) a descontar, este valor será expresado así 0.20 y será un valor constante asignado a la variable PorcentajeDescuento. Ordenando un poco las ideas planteadas anteriormente: PorcentajeDescuento=0.20 DescuentoEnDinero = ValorCompra * PorcentajeDescuento UNIVERSIDAD DE EL SALVADOR EN LÍNEA FACULTAD DE INGENIERÍA Y ARQUITECTURA INTRODUCCIÓN A LA INFORMÁTICA 4 TotalAPagar = ValorCompra – DescuentoEnDinero Escribir “Total descuento ” + DescuentoEnDinero + “ dólares” Escribir “Total a pagar ” + TotalAPagar + “ dólares” 5. Definición de variables de proceso. En este ejercicio no hay variables de proceso. C. Diseño de la solución. Algoritmo narrado. Proceso: Descuento_Compra {El programa aplicará el 20% de descuento sobre el valor de la compra} {ValorCompra, PorcentajeDescuento, DescuentoEnDinero y TotalAPagar son variables de tipo real} 1. INICIO 2. Definir ValorCompra, PorcentajeDescuento, DescuentoEnDinero y TotalAPagar como real 3. Escribir “Digite el valor de la compra” 3. Leer ValorCompra 4. Hacer PorcentajeDescuento= 0.2 5. Hacer DescuentoEnDinero= ValorCompra* PorcentajeDescuento 6. Hacer TotalAPagar=ValorCompra – DescuentoEnDinero 7. Escribir “El Valor original de la compra es: ” + ValorCompra + “ dólares” 8. Escribir “El valor del descuento en dinero es: ”+DescuentoEnDinero + “ dólares” 9. Escribir “El Total a pagar es: ” + TotalAPagar + “ dólares” 10. FIN Nota: En C# las variables de números reales se declaran como tipo double ya que poseen decimales, además los nombres de variables no pueden tener espacios en blanco. Sintaxis en C# using System; namespace Descuento_Compras { class Program { static void Main(string[] args) { double ValorCompra, TotalAPagar, DescuentoEnDinero, PorcentajeDescuento; Console.WriteLine("Digite el valor de la compra"); /*Aqui leemos desde el teclado el valor de la compra, * la lectura por consola con la instruccion ReadLine es detipo String * por lo que hay que convertir el dato a tipo double */ ValorCompra = double.Parse(Console.ReadLine()); //Aqui asignamos 20% es decir 0.20 a la variable PorcentajeDescuento, PorcentajeDescuento = 0.2; //Calculamos el descuento en dinero DescuentoEnDinero = PorcentajeDescuento * ValorCompra; //Restamos al valor de la compra el descuento en dinero UNIVERSIDAD DE EL SALVADOR EN LÍNEA FACULTAD DE INGENIERÍA Y ARQUITECTURA INTRODUCCIÓN A LA INFORMÁTICA 5 // y el resultado lo guardamos en la variable TotalAPagar TotalAPagar = ValorCompra - DescuentoEnDinero; Console.WriteLine("\n\nEl valor original de la compra es: " + ValorCompra + " dólares"); Console.WriteLine("El valor del descuento en dinero es: " + DescuentoEnDinero + " dólares"); Console.WriteLine("El total a pagar es: " + TotalAPagar + " dólares"); Console.WriteLine("\n\nPresione una tecla para continuar..."); Console.ReadKey(); } } } Ejemplo 2 Aplicando proceso solucionador de problemas: Desarrolle un algoritmo que permita leer las notas de un estudiante y que calcule la nota final del ciclo académico donde dos exámenes parciales tienen como ponderación el 30% cada uno y una tarea de 40%. Imprimir como resultado un resumen de cada nota y la nota final de ciclo. A. Planteamiento general del problema (Método de la caja negra). B. Análisis del problema. 1. Definición de variables de entrada. Definición de variables de entrada. Nombre Tipo Descripción NotaParcial1 Real Nota de primer examen parcial. NotaParcial2 Real Nota de segundo examen parcial. NotaTarea Real Nota de tarea Ex aula. 2. Definición de variables de salida. Definición de variables de salida. Nombre Tipo Descripción NotaFinalCiclo Real Almacena el cálculo de la nota final del ciclo en base a los porcentajes mencionados en el enunciado. Calcular nota final de ciclo en base a ponderaciones de cada evaluación. ENTRADAS NotaParcial1 NotaParcial2 NotaTarea SALIDAS NotaFinalCiclo PROCESO UNIVERSIDAD DE EL SALVADOR EN LÍNEA FACULTAD DE INGENIERÍA Y ARQUITECTURA INTRODUCCIÓN A LA INFORMÁTICA 6 3. Restricciones. Solo se aplicará la solución a números reales, positivos entre 0 y 10, para las variables NotaParcial1, NotaParcial2 y NotaTarea. Nota: en este caso no aplicaremos la restricción debido a que requiere el uso de estructuras de decisión y/o repetitivas y el tema de esta tutoría es estructuras secuenciales, proceso solucionador de problemas y modularidad, posteriormente en otra unidad se abarcará el tema de estructuras condicionales o de decisión y el tema de estructuras repetitivas. Se les invita a los estudiantes que cuando se vean esos temas en las siguientes unidades modifiquen estos ejercicios para implementar las restricciones planteadas. 4. Proceso. Vamos a recordar que, en esta parte, solo escribimos los procesos matemáticos (cálculos o asignaciones) y los procesos lógicos (comparaciones o condiciones), que se realizarán para resolver el problema, y si se escriben en orden nos facilita aún más el diseño de solución. Las formula a utilizar para calcular la nota final es: NotaFinalCiclo = NotaParcial1*0.30+NotaParcial2*0.30+NotaTarea*0.40 El cálculo anterior se deberá realizar para obtener la nota final de ciclo. 5. Definición de variables de proceso. No Hay C. Diseño de la solución. Algoritmo narrado. Proceso: CalculoNotaFinal {El programa realizará el cálculo de la nota final de ciclo de un estudiante} {NotaParcial1, NotaParcial2, NotaTarea y NotaFinalCiclo son variables de tipo reales} 1. INICIO 2. Escribir “Digite la nota del primer examen parcial.” 3. Leer NotaParcial1 4. Escribir “Digite la nota del segundo examen parcial.” 5. Leer NotaParcial2 6. Escribir “Digite la nota de la tarea ex aula.” 7. Leer NotaTarea 8. Hacer NotaFinalCiclo = NotaParcial1*0.30+NotaParcial2*0.30+NotaTarea*0.40 9. Escribir “Resumen de notas” 10. Escribir “Parcial1: ” + NotaParcial1 UNIVERSIDAD DE EL SALVADOR EN LÍNEA FACULTAD DE INGENIERÍA Y ARQUITECTURA INTRODUCCIÓN A LA INFORMÁTICA 7 11. Escribir “Parcial2: ” + NotaParcial2 12. Escribir “Tarea Ex aula: ” + NotaTarea 13. Escribir “La nota final de ciclo es: ” + NotaFinalCiclo 14. FIN Sintaxis en C# using System; namespace CalculoNotaFinal { class Program { static void Main(string[] args) { //declaramos las variables a utilizar double NotaParcial1; double NotaParcial2; double NotaTarea; double NotaFinalCiclo; //Realizamos la presentacion de mensaje para solicitar la primera nota Console.WriteLine("Digite la nota del primer examen parcial."); //Aqui leemos la nota del parcial1 y la convertimos a numero con decimales NotaParcial1 = double.Parse(Console.ReadLine()); //Realizamos la presentacion de mensaje para solicitar la segunda nota Console.WriteLine("Digite la nota del segundo examen parcial."); //Aqui leemos la nota del parcial2 y la convertimos a numero con decimales NotaParcial2 = double.Parse(Console.ReadLine()); //Realizamos la presentacion de mensaje para solicitar la tercera nota Console.WriteLine("Digite la nota de la tarea ex aula."); //Aqui leemos la nota de la tarea y la convertimos a numero con decimales NotaTarea = double.Parse(Console.ReadLine()); //Realizamos el calculo de la nota final de ciclo con los porcentajes NotaFinalCiclo = NotaParcial1 * 0.30 + NotaParcial2 * 0.30 + NotaTarea * 0.40; //Presentamos los resultados finales Console.WriteLine("\n\nRESUMEN DE NOTAS"); Console.WriteLine("Parcial1: " + NotaParcial1); Console.WriteLine("Parcial2: " + NotaParcial2); Console.WriteLine("Tarea Ex aula: " + NotaTarea); Console.WriteLine("La nota final de ciclo es: " + NotaFinalCiclo); //con estas instrucciones hacemos una pausa para ver resultados Console.WriteLine("\n\nPresione una tecla para continuar..."); Console.ReadKey(); } } } UNIVERSIDAD DE EL SALVADOR EN LÍNEA FACULTAD DE INGENIERÍA Y ARQUITECTURA INTRODUCCIÓN A LA INFORMÁTICA 8 Sintaxis en C# Sin comentarios en el código using System; namespace CalculoNotaFinal { class Program { static void Main(string[] args) { double NotaParcial1; double NotaParcial2; double NotaTarea; double NotaFinalCiclo; Console.WriteLine("Digite la nota del primer examen parcial."); NotaParcial1 = double.Parse(Console.ReadLine()); Console.WriteLine("Digite la nota del segundo examen parcial."); NotaParcial2 = double.Parse(Console.ReadLine()); Console.WriteLine("Digite la nota de la tarea ex aula."); NotaTarea = double.Parse(Console.ReadLine()); NotaFinalCiclo = NotaParcial1 * 0.30 + NotaParcial2 * 0.30 + NotaTarea * 0.40; Console.WriteLine("\n\nRESUMENDE NOTAS"); Console.WriteLine("Parcial1: " + NotaParcial1); Console.WriteLine("Parcial2: " + NotaParcial2); Console.WriteLine("Tarea Ex aula: " + NotaTarea); Console.WriteLine("La nota final de ciclo es: " + NotaFinalCiclo); Console.WriteLine("\n\nPresione una tecla para continuar..."); Console.ReadKey(); } } } UNIVERSIDAD DE EL SALVADOR EN LÍNEA FACULTAD DE INGENIERÍA Y ARQUITECTURA INTRODUCCIÓN A LA INFORMÁTICA 9 Ejemplo 3 Aplicando proceso solucionador de problemas para un ejercicio con modularidad: Se requiere crear un programa que permita hacer la conversión de moneda de dólares a euros haciendo uso de una función pública creada por los estudiantes que realice dicho calculo, la función debe crearla en una clase estática llamada funciones y deberá llamarla ConvDolaresEuros, dicha función debe recibir como parámetro la cantidad de dólares a convertir y retornar la cantidad equivalente en euros. A. Planteamiento general del problema (Método de la caja negra). B. Análisis del problema. 1. Definición de variables de entrada. Definición de variables de entrada. Nombre Tipo Descripción CantDolares Real Cantidad de dólares a convertir. 2. Definición de variables de salida. Definición de variables de salida. Nombre Tipo Descripción CantEuros Real Almacena el cálculo de la cantidad de euros equivalente a la cantidad de dólares que el usuario quiere convertir. 3. Restricciones. Solo se aplicará la solución a números reales, positivos, para la variable CantDolares. CantDolares>=0 Nota: en este caso no aplicaremos la restricción debido a que requiere el uso de estructuras de decisión y/o repetitivas y el tema de esta tutoría es estructuras secuenciales, proceso solucionador de problemas y modularidad, posteriormente en otra unidad se abarcará el tema de estructuras condicionales o de decisión y el tema de estructuras repetitivas. Calcular la cantidad de euros equivalente a la cantidad de dólares ingresados mediante una función ENTRADAS CantDolares SALIDAS CantEuros PROCESO UNIVERSIDAD DE EL SALVADOR EN LÍNEA FACULTAD DE INGENIERÍA Y ARQUITECTURA INTRODUCCIÓN A LA INFORMÁTICA 10 Se les invita a los estudiantes que cuando se vean esos temas en las siguientes unidades modifiquen estos ejercicios para implementar las restricciones planteadas. 4. Proceso. Vamos a recordar que, en esta parte, solo escribimos los procesos matemáticos (cálculos o asignaciones) y los procesos lógicos (comparaciones o condiciones), que se realizarán para resolver el problema, y si se escriben en orden nos facilita aún más el diseño de solución. La equivalencia de dólares a euros al momento es: 1 dólar = 0.88 euros Por lo tanto: EquivDolaresAEuros=0.88 Las formula a utilizar para calcular dólares a euros es: CantEuros = CantDolares*EquivDolaresEuros El cálculo anterior se deberá realizar para obtener la cantidad de dinero en euros que equivale a la cantidad de dólares ingresada, y ha sido calculada mediante regla de tres. Por lo tanto, esos son los cálculos que deberá realizar la función o método ConvDolaresEuros 5. Definición de variables de proceso. Definición de constantes. Nombre Tipo Descripción EquivDolaresAEuros Real Esta variable contiene la equivalencia que existe entre dos tipos de moneda dólares a euros, y sirve para convertir dólares a euros. UNIVERSIDAD DE EL SALVADOR EN LÍNEA FACULTAD DE INGENIERÍA Y ARQUITECTURA INTRODUCCIÓN A LA INFORMÁTICA 11 C. Diseño de la solución. Algoritmos narrados. Proceso: ConvDolaresEuros {El programa realizará el cálculo de euros en base a una cantidad de dólares ingresada por parámetros, el parámetro CantDolares será de tipo real, este proceso estará dentro de la clase estática llamada funciones la cual se debe crear en el proyecto} {CantDolares, CantEuros, EquivDolaresAEuros son variables de tipo reales} 1. INICIO 2. Leer CantDolares desde el parámetro de la función. 3. Hacer EquivDolaresAEuros=0.88 4. Hacer CantEuros = CantDolares*EquivDolaresAEuros 5. Retornar CantEuros 6. FIN Proceso: Main {El programa realizará la lectura de la cantidad de dólares a convertir y posteriormente lo utilizará como parámetro para la función ConvDolaresEuros, luego recibirá el resultado del cálculo de conversión mediante una variable y presentará el resultado en pantalla} {CantDolares, CantEuros son variables de tipo reales} 1. INICIO 2. Escribir “Digite la cantidad de dólares a convertir:” 3. Leer CantDolares 4. CantEuros=Hacer ConvDolaresEuros(CantDolares) 5. Escribir “\nResultado.\n” 6. Escribir “Cantidad de dólares ingresados: ” + CantDolares + “ dólares.” 7. Escribir “Cantidad de euros equivalente a los dólares ingresados: ” + CantEuros + “ euros.” 8. Escribir "presione una tecla para continuar..." 8. Pausar pantalla. 7. FIN UNIVERSIDAD DE EL SALVADOR EN LÍNEA FACULTAD DE INGENIERÍA Y ARQUITECTURA INTRODUCCIÓN A LA INFORMÁTICA 12 Sintaxis en C# Funciones.cs using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Ejemplo_Modular_Tutoria_3 { class Funciones { public static double ConvDolaresEuros(double CantDolares) { double CantEuros, EquivDolaresAEuros; EquivDolaresAEuros = 0.88; CantEuros = CantDolares * EquivDolaresAEuros; return CantEuros; } } } Sintaxis en C# Program.cs using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Ejemplo_Modular_Tutoria_3 { class Program { static void Main(string[] args) { double CantDolares, CantEuros; Console.Write("Digite la cantidad de dolares a convertir: "); CantDolares = double.Parse(Console.ReadLine()); CantEuros = Funciones.ConvDolaresEuros(CantDolares); Console.WriteLine("\nResultado.\n"); Console.WriteLine("Cantidad de dólares ingresados: "+CantDolares+" dólares."); Console.WriteLine("Cantidad de euros equivalente a los dólares ingresados: " + CantEuros+ " euros."); Console.WriteLine("presione una tecla para continuar..."); Console.ReadKey(); } } } UNIVERSIDAD DE EL SALVADOR EN LÍNEA FACULTAD DE INGENIERÍA Y ARQUITECTURA INTRODUCCIÓN A LA INFORMÁTICA 13 RESUMEN. Con estos ejercicios de ejemplo podemos comprender las estructuras secuenciales y a manera de resumen darnos cuenta que están compuestas de las siguientes secciones: Estructura básica de un algoritmo secuencial. 1. Declaración de variables. 2. Presentación de mensajes solicitando datos. 3. Lectura de datos de entrada. 4. Cálculos a realizar (procesos). 5. Presentación de resultados. Los pasos del proceso solucionador de problemas son: A. Planteamiento general del problema (Método de la caja negra). B. Análisis del problema. 6. Definición de variables de entrada. 7. Definición de variables de salida. 8. Restricciones. 9. Proceso.10. Definición de variables de proceso. C. Diseño de la solución. Algoritmo narrado o flujograma. Código fuente en C# UNIVERSIDAD DE EL SALVADOR EN LÍNEA FACULTAD DE INGENIERÍA Y ARQUITECTURA INTRODUCCIÓN A LA INFORMÁTICA 14 EJERCICIOS PARA QUE EL ESTUDIANTE PRACTIQUE Resuelva los siguientes ejercicios Ejercicio 1: Escriba un algoritmo que permita conocer el área de un triángulo a partir de la base y la altura. Tomando en cuenta que el área de un triángulo se calcula multiplicando la base por altura y luego dividiendo dicho resultado entre dos. Por ejemplo AreaTriangulo = (Base*Altura)/2 Se pide: A. Planteamiento general del problema (Método de la caja negra). B. Análisis del problema. o Definición de variables de entrada. o Definición de variables de salida. o Restricciones. o Proceso. o Definición de variables de proceso. C. Diseño de la solución. o Algoritmo narrado. o Sintaxis en C# Ejercicio 2: Convertir de temperatura Celsius a temperatura Fahrenheit tomando en cuenta la siguiente formula TempFahrenheit = (1.8*TempCelsius) + 32 Se pide: A. Planteamiento general del problema (Método de la caja negra). B. Análisis del problema. o Definición de variables de entrada. o Definición de variables de salida. o Restricciones. o Proceso. o Definición de variables de proceso. C. Diseño de la solución. o Algoritmo narrado. o Sintaxis en C# UNIVERSIDAD DE EL SALVADOR EN LÍNEA FACULTAD DE INGENIERÍA Y ARQUITECTURA INTRODUCCIÓN A LA INFORMÁTICA 15 Ejercicio 3: Una empresa paga su sueldo base a un empleado y a demás desea pagar un bono de 100 dólares por cada hijo que este tenga, realice un algoritmo y su correspondiente programa en C# que determine el monto a pagar por bonificación y el monto total a pagar al trabajador. Se pide: A. Planteamiento general del problema (Método de la caja negra). B. Análisis del problema. o Definición de variables de entrada. o Definición de variables de salida. o Restricciones. o Proceso. o Definición de variables de proceso. C. Diseño de la solución. o Algoritmo narrado. o Sintaxis en C# Ejercicio 4: Modifique el ejemplo 3 para agregar una función modular a funciones.cs que realice la conversión de euros a dólares, y modifique la función Main en program.cs para probar su función creada. Se pide: A. Planteamiento general del problema (Método de la caja negra). B. Análisis del problema. o Definición de variables de entrada. o Definición de variables de salida. o Restricciones. o Proceso. o Definición de variables de proceso. C. Diseño de la solución. o Algoritmo narrado. o Sintaxis en C#
Compartir