2015 Fundamentos de algoritmos
Ing. Martha Leticia MartĂnez Mora
IT Toluca Diciembre, 2015
Tema 3. Fundamentos de algoritmos
Introducción El objetivo central de este tema es el aprendizaje y diseño de algoritmos, por lo que se presentarán los conceptos básicos involucrados en el desarrollo de algoritmos, las metodologías empleadas para su representación y el uso de un entorno de programación para ejecutar y validar los algoritmos realizados.
Contenido 1. 2. 3. 4. 5.
Conceptos básicos El proceso de resolución de problemas Metodologías empleadas para representar algoritmos El entorno PseInt Ejercicios a. Resueltos b. Propuestos 6. Referencias
Conceptos básicos Identificador. Es una secuencia de caracteres tanto alfabéticos como numéricos, mismo que se emplea para dar un nombre a una variable, constante, tipo de dato, etc. Las reglas que deben cumplirse para generar identificadores válidos son: 1. 2. 3. 4. 5. 6. 7.
Deben iniciar con una letra No deben contener espacios No deben exceder de 8 caracteres No deben incluir símbolos especiales (solo se acepta el guion bajo) No pueden existir dos identificadores iguales No debe ser una palabra reservada Después de la primera letra pueden ser utilizados números o más letras
Ejemplo de identificadores Válidos Suma (inicia con letra) Total_ventas (guión bajo es permitido) Calif1 (posee letras y números) NumControl (contiene letras sin espacio)
No Válidos Sum$ (posee un carácter especial) Num&cal (posee un carácter especial) Valor final (posee un espacio entre cadena) If (es una palabra reservada)
Variable. Valor que cambia durante la ejecución de un problema Constante. Valor que permanece fijo durante la ejecución de un programa Un algoritmo es considerado un método para resolver un problema mediante una serie de pasos precisos, definidos y finitos. (Joyanes Aguilar, 2013) Características de un algoritmo.
Preciso. Indica el orden de realización en cada paso Definido. Cada vez que se recorra el algoritmo se debe obtener el mismo resultado Finito. Posee un número determinado de pasos, es decir, tiene fin.
Regresar a contenido
El proceso de resolución de problemas usando algoritmos El proceso de resolución de un problema con una computadora conduce a la escritura de un programa y a su ejecución en la misma, dicho proceso integra los siguientes pasos: 1. 2. 3. 4. 5. 6. 7. 8.
Análisis del problema Diseño del algoritmo Codificación Compilación y ejecución Verificación Depuración Mantenimiento Documentación
Los dos primeros pasos conducen a un diseño detallado escrito en forma de algoritmo, en el siguiente paso se codifica el algoritmo utilizando una metodología para representarlo. Los pasos de compilación y ejecución nos permiten traducir y ejecutar la sentencias generadas, con la finalidad de comprobar su funcionalidad o en su defecto la corrección de errores (pasos 5, 6 y 7), para al finalizar documentar el programa realizado. Regresar a contenido
Metodologías empleadas para representar algoritmos Como ya se mencionó anteriormente el proceso para realizar la resolución de un problema consta de 8 pasos, de los cuáles los primeros 2, tienen que ver con el análisis y representación de éstos usando técnicas adecuadas para representarlos, los siguientes pasos corresponden a su implementación y ejecución en un entorno. A continuación se presentan las dos primeras fases para obtener la resolución de un problema y se explicarán las herramientas más utilizadas para representar los algoritmos realizados. 1. Análisis del problema. Este paso es el más importante ya que implica identificar claramente que es lo que debe hacer el programa o determinar cuál es el resultado esperado, para lo cual se recomienda para efectuar dicho análisis contestar las siguientes preguntas:
a) ¿Qué entradas se requieren? La respuesta debe proporcionar el tipo y cantidad de datos que se requieren o que se van a utilizar b) ¿Cuál es la salida deseada? Los resultados esperados c) ¿cuál es el proceso a seguir para producir la salida deseada? Plasmar los pasos o el método que genere la salida deseada d) Requisitos adicionales o restricciones Es muy importante analizar si el problema cuenta con restricciones o requisitos para obtener el resultado deseado Ejemplo básico. Obtener la suma de dos números. Datos de entrada: Se requieren de dos variables que almacenen datos de tipo numérico, por ejemplo Num1, Num2 Datos de salida: Se requiere de una variable que almacene el resultado de la suma de las variables de entrada, ejemplo: suma Proceso: Sumar el valor de las dos variables de entrada y almacenar el resultado en una variable de salida Suma= Num1 + Num2
2. El diseño del algoritmo.
Este proceso consiste en utilizar una metodología para representar los resultados del análisis, el diseño del algoritmo es independiente del lenguaje de programación en el que se vaya a codificar posteriormente.
Los métodos algorítmicos más utilizados para expresar un algoritmo son: diagramas de flujo, pseudocódigos y diagramas N-S, siguiendo el proceso de resolución de un problema, mismos que se explican a continuación:
Pseudocódigo. Se considera un lenguaje de especificaciones de algoritmos, donde las instrucciones se escriben en palabras similares al inglés o español, siguiendo una notación estándar en la medida de los posible ya que no existen reglas definidas para escribir pseudocódigos. En la tabla 1, se muestra una compilación de aquellas palabras básicas que se emplean en la mayoría de los libros de texto, como recomendaciones de uso. La tabla 2, los operadores y/o símbolos empleados en el lenguaje algorítmico. Tabla 1. Palabras Reservadas iniciales empleadas en un pseudocódigo
Palabras utilizadas Inicio/fin
Leer
Imprimir
Si (cond) entonces… en otro caso
Descripción Se emplean al principio y final de un algoritmo para denotar estas dos acciones. Son obligatorias ambas Se emplea cuando se hace necesario conocer valores de entrada Se utiliza cuando se requiere emitir un valor o mensaje de salida. Para el caso de mensajes de texto, estos deben colocarse entre comillas. Estructura condicional, que se emplea cuando se requiere evaluar una condición dentro de las acciones a realizar
Ejemplo 1. Inicio 2. Imprimir “hola” 3. Fin Leer a, b Leer calificación 1. Inicio 2. Leer a, b 3. suma = a + b 4. imprimir “El resultado es: “, suma 5. Fin Si (a<8) entonces Imprimir “No alcanzó la competencia” En otro caso Imprimir “alcanzó la competencia”
Tabla 2. Símbolos y operadores permitidos Símbolo/operador Descripción Asignación Se emplea cuando se = desea almacenar un valor en una variable Operadores lógicos Empleados para Y , o , negación conjuntar condiciones Operadores relacionales: Se utilizan en >, <, =, <>, <=, <= estructuras o procesos condicionales Símbolos matemáticos: / división * multiplicación, Mod Residuo Div División entera + suma Resta
Ejemplo S=a Suma = n + a C = C +1 Si (a>0 y a<10) entonces Sentencia verdadera Si a>b entonces Sentencia verdadera Mientras x<>0 hacer Sentencias
Símbolos permitidos para realizar A = 3.1416 * R * R operaciones matemáticas Compra = ((3 + 8) * 120)/2
Nota. No olvidando la jerarquía de operaciones ( Visto en el tema 2)
Ejemplo. Calcular la resta, la multiplicación y la división, de don números enteros
Análisis del problema: Datos de entrada: 2 números, por lo tanto se requiere de 2 variables de entrada: N1 y N2 Datos de salida: Se solicitan 3 procesos por lo tanto es necesario definir 3 variables que almacenen dicha acción: R, M, D Procesos requeridos: R = N1 –N2 M = N1 * N2 D = N1 / N2
Diseño y codificación de la alternativa de solución utilizando pseudocódigo: 1. 2. 3. 4. 5. 6. 7. 8. 9.
Inicio Leer N1, N2 R = N1 - N2 M = N1 * N2 D= N1 /N2 Imprimir “el resultado de la resta es: “, R Imprimir “el resultado de la multiplicación es: “, M Imprimir “el resultado de la división es: “, D Fin
2. Diagramas de flujo. Es una herramienta que nos permite mostrar de manera gráfica un algoritmo. Los símbolos que se utilizan son aquellos que ha propuesto el instituto Estadounidense de Normalización (ANSI). La figura 1 muestra la simbología empleada para el diseño de diagramas de flujo.
Figura 1. Símbolos empleados en Diagramas de Flujo Regresar a contenido
El entorno PseInt Compilación y ejecución. Actualmente existen entornos que nos permiten compilar y ejecutar pseudocódigos para conocer los resultados obtenidos de la alternativa de solución propuesta. Un entorno muy sencillo y fácil de utilizar es el entorno PSeInt1, el cual es un software de uso libre que podrás descargar en tu computadora y utilizar para poder ejecutar y verificar las propuestas de solución planteadas. La figura 2, te muestra el logo que identifica el entorno una vez que lo instalas en tu computadora, mismo que puedes generar como acceso directo. (Consulta el siguiente enlace para que realices la instalación de este software de uso libre, en tu computadora: https://www.youtube.com/watch?v=WCcsaPh5nUM)
Figura 2. Entorno PseInt, pantalla de inicio
Las figuras 3,4 y 5 te mostrarán de manera gráfica el entorno PseInt para que te familiarices con el ambiente y podrás consultar el material didáctico que contiene un bloque específico de video-tutoriales para que practiques con el entorno y puedas desarrollar tus ejercicios antes de aplicar un entorno de programación.
1
Nota: Consulta los videos tutoriales que están presentes en la carpeta de materiales didácticos con la finalidad de conocer y aplicar éste entorno.
Figura 3. Un ejercicio sencillo para familiarizarse con el entorno
Figura 4. Muestra un programa y la ejecuci贸n de mismo
Figura 5. Generando el Diagrama de flujo a partir del pseudoc贸digo
Regresar a contenido
Ejercicios Resueltos Ejercicio 1. Obtener el importe de compra de un cliente tomando en consideración la cantidad de productos adquiridos en la tienda y el precio de lista siguiente: Producto Sillas Mesas Manteles
Precio unitario $ 120.00 $350.00 $ 140.00
Análisis: Datos de entrada: se requiere de 3 variables de lectura para almacenar la cantidad de artículos seleccionados, dado que el negocio vende 3 tipos de productos diferentes y se desconoce cuáles adquirió el cliente: cant_sillas, cant_mesas, cant_manteles Datos de salida: Una variable donde se almacene el total de compra: total_compra, (y si realiza operaciones independientes 3 variables para almacenar procesos individuales) Proceso: Se realiza la operación matemática que incluye multiplicar el valor leído por el precio de cada uno de los productos adquiridos
Alternativa 1. Realizando una sola operación total_compra= cant_sillas * 120 + cant_mesas *350 + cant_manteles * 140 Alternativa 2. Desglosando operaciones Valor1 = cant_sillas * 120 Valor2 = cant_mesas * 350 Valor3 = cant_manteles * 140 total_compra = Valor1 + Valor2 + Valor3
Diseño y elaboración del pseudocódigo 1. 2. 3. 4. 5. 6. 7. 8.
Inicio Leer cant_sillas, cant_mesas, cant_manteles Valor1 = cant_sillas * 120 Valor2 = cant_mesas * 350 Valor3 = cant_manteles * 140 total_compra = Valor1 + Valor2 + Valor3 Imprimir “El resultado es: “ , total_compra Fin
Ejercicio 2. Convertir una cantidad expresada en pulgadas a centímetros Análisis. Datos de entrada. Variable que almacene el valor leído desde teclado: cantidad Datos de salida. Variable que almacene el valor resultante del proceso: convertir Proceso. Dado que 1 pulgada equivale a 2.5 centímetros, entonces se debe multiplicar el valor leído por 2.5 Diseño y elaboración del pseudocódigo 1. 2. 3. 4. 5.
Inicio Leer cantidad Convertir = cantidad 2.5 Imprimir “La cantidad expresada en centímetros es: “, convertir Fin
Ejercicio 3. Calcular el área de un triángulo Análisis. Datos de entrada. Sabiendo que la fórmula para calcular el área de un triángulo es: base por la altura sobre 2, entonces se requieren dos variables que almacenen los valores correspondientes: base, altura Datos de salida. Variable que almacene el valor resultante del proceso: Resultado
Proceso. Aplicar la fĂłrmula matemĂĄtica: đ??´=
đ?&#x2018;?đ?&#x2018;&#x17D;đ?&#x2018; đ?&#x2018;&#x2019; đ?&#x2018;Ľ đ??´đ?&#x2018;&#x2122;đ?&#x2018;Ąđ?&#x2018;˘đ?&#x2018;&#x;đ?&#x2018;&#x17D; 2
Recordando que se debe convertir en lenguaje algorĂtmico y se debe respetar la jerarquĂa de operaciones (Si tienes dudas, consultar tema 2 para reafirmar tus conocimientos)
DiseĂąo del pseudocĂłdigo 1. 2. 3. 4. 5.
Inicio Leer base, altura Resultado = (base * altura)/2 Imprimir resultado Fin
Ejercicios Propuestos 1. 2. 3. 4.
Calcular el promedio de 5 nĂşmeros. Obtener la hipotenusa de un triĂĄngulo rectĂĄngulo. Calcular el ĂĄrea del cĂrculo y el volumen de una esfera con el mismo radio. Una tienda vende: paletas a $5.00, Chicles $12.00 y gomitas $7.00. Calcular el monto total de ventas de acuerdo al nĂşmero de artĂculos vendidos.
Referencias Joyanes Aguilar, L. (2013). Fundamentos generales de programaciĂłn. MĂŠxico, D.F.: Mc. Graw Hill. MĂĄrquez, Gabriela. Osorio, Sonia. Olvera, NoemĂ. (2011). estructurada en C. MĂŠxico, D.F. Pearson
IntroducciĂłn a la programaciĂłn
Corona Nakamura,M. Ancona VĂĄldez, M.A. (2011). DiseĂąo de algoritmos y su codificaciĂłn en lenguaje C. MĂŠxico, D.F. Mc. Graw Hill.
Regresar a contenido