UNIVERSIDAD NACIONAL AUTONOMA DE MEXICO COLEGIO DE ... · 3. Construye el algoritmo, el diagrama de...

62
Vlle Mayo 2012 1 UNIVERSIDAD NACIONAL AUTONOMA DE MEXICO COLEGIO DE CIENCIAS Y HUMANIDADES PLANTEL NAUCALPAN PRACTICAS PARA EL TEMA DE DIAGRAMAS DE FLUJO DEL PROGRAMA DE CIBERNÉTICA Y COMPUTACIÓN I CORRESPONDIENTE A LA UNIDAD 3: Metodología De Solución de Problemas. Mat. Veronica Lidya López Escobar

Transcript of UNIVERSIDAD NACIONAL AUTONOMA DE MEXICO COLEGIO DE ... · 3. Construye el algoritmo, el diagrama de...

Page 1: UNIVERSIDAD NACIONAL AUTONOMA DE MEXICO COLEGIO DE ... · 3. Construye el algoritmo, el diagrama de flujo y el seudocódigo para los problemas planteados. 4. Realiza la prueba de

Vlle Mayo 2012 1

UNIVERSIDAD NACIONAL AUTONOMA DE MEXICO

COLEGIO DE CIENCIAS Y HUMANIDADES

PLANTEL NAUCALPAN

PRACTICAS PARA EL TEMA DE DIAGRAMAS DE FLUJO DEL PROGRAMA DE CIBERNÉTICA Y COMPUTACIÓN I

CORRESPONDIENTE A LA UNIDAD 3: Metodología De Solución de Problemas.

Mat. Veronica Lidya López Escobar

Page 2: UNIVERSIDAD NACIONAL AUTONOMA DE MEXICO COLEGIO DE ... · 3. Construye el algoritmo, el diagrama de flujo y el seudocódigo para los problemas planteados. 4. Realiza la prueba de

Vlle Mayo 2012 2

Guía de clases para la Unidad 3: Metodología de solución de problemas. Tiempo programado: 22 horas Clases:11 Aprendizajes:

1. Identifica los elementos que intervienen en los problemas y las relaciones entre ellos para obtener los resultados.

2. Describe las características de las etapas que intervienen en la solución de problemas

3. Construye el algoritmo, el diagrama de flujo y el seudocódigo para los problemas planteados.

4. Realiza la prueba de escritorio de los algoritmos desarrollos. Clases 1 2 3 4 5 6 7 8 9 10 11 Aprendizaje 1 2 3,4 3,4 3,4 3,4 1 3,4 Temática: 1.Definiciones y conceptos generales.

1.1 problema 1.2 Elementos y relaciones del problema.

1.3 Herramientas computacionales 1.3.1 Hardware 1.3.2 Sist. Operativo 1.3.3 Programa de aplicación 1.3.4 Lenguaje de programación 2. Ciclo de desarrollo de programa.

2.1 Planteamiento del problema 2.2 Análisis del problema 2.3 Elaboración del algoritmo 2.4 Codificación, edición y compilación

2.5 Ejecución y depuración 2.6 Documentación 2.7 Mantenimiento. 3. Expresiones y operadores 3.1 Asignación 3.2 Operadores aritméticos 3.3 Operadores relacionales 3.4 Operadores lógicos 3.5 Precedencia de operadores y evaluación de expresiones

4. Técnicas de desarrollo de algoritmos.

4.1 Diseño descendente. 4.2 Refinación progresiva de solución

4.3 Seudocódigo y diagrama de flujo

4.4 Prueba de escritorio.

Page 3: UNIVERSIDAD NACIONAL AUTONOMA DE MEXICO COLEGIO DE ... · 3. Construye el algoritmo, el diagrama de flujo y el seudocódigo para los problemas planteados. 4. Realiza la prueba de

Vlle Mayo 2012 3

Contenido de las clases

Clase 1: Definiciones, ciclo de desarrollo 2 ejemplos (licuado, ecuaciones de 2 incógnitas).

Clase 2: Definiciones; 7 pasos del ciclo para desarrollo de programas.

Clase 3: Simbología, 3 ejemplos (sistema de ecuaciones, Pago de un empleado, Área y perímetro de un rectángulo), Reglas para elaborar un Diagrama de flujo.

Clase 4: Verificación y prueba de escritorio, para pago de empleado considerando horas extras.

Clase 5: Calculo de promedio, Nombre del alumno, calificaciones, APROBADO ó REPROBADO, para tres alumnos. Ciclo, contador, diagrama de flujo y prueba de escritorio.

Clase 6: Imprimir área y perímetro (triángulo o rectángulo) para 5 figuras. Diagrama, Ciclo; Contador, prueba de escritorio.

Clase 7: Evaluación de expresiones, jerarquía de operadores, operadores lógicos.

Clase 8: Identificar 3 signos del zodiaco (ARIES, CANCER, ACUARIO), para 1 y 5 personas. Prueba de escritorio, ciclo, contador.

Clase 9: Cajero bancario para realizar un Depósito, Retiro ó consulta de saldo. Diagrama de flujo. Prueba de escritorio.

Clase 10: Cajero de tienda de autoservicio, calculo de pago total, para cada uno de los clientes. Diagrama de flujo. Prueba de escritorio.

Clase 11: Resumen, Conclusiones Evaluación.

Page 4: UNIVERSIDAD NACIONAL AUTONOMA DE MEXICO COLEGIO DE ... · 3. Construye el algoritmo, el diagrama de flujo y el seudocódigo para los problemas planteados. 4. Realiza la prueba de

Vlle Mayo 2012 4

Cibernética y Computación I Unidad 3: Metodología De Solución de Problemas. Propósito:

Al finalizar la unidad el alumno aplicará la metodología de solución de problemas mediante la construcción de algoritmos para formalizar el proceso de solución.

Aprendizajes: Identifica los elementos que intervienen en los problemas y las

relaciones entre ellos para obtener los resultados. Describe las características de las etapas que intervienen en la

solución de problemas. Construye el algoritmo, el diagrama de flujo y el seudocódigo para los

problemas planteados. Realiza la prueba de escritorio de los algoritmos desarrollados.

Tiempo: 22 horas (11 clases). Clase 1: Aprendizaje:

Identifica los elementos que intervienen en los problemas y las relaciones entre ellos para obtener los resultados.

Temática: 1. Definiciones y conceptos generales 1.1 Problema 1.2 Elementos y relaciones del problema 2. Ciclo de desarrollo de programas 2.1 Planteamiento del problema 2.2 Análisis del problema 2.3 Elaboración de algoritmos Desarrollo: Durante el día, realizamos una serie de actividades de manera inconsciente o automática sobre todo si las acciones las hemos hecho un gran número de veces, por ejemplo: levantarnos, bañarnos, desayunar, trasladarnos a la escuela, tomar notas en cada clase, regresar a casa, comer, repasar lo aprendido en clases, hacer la tarea, descansar, cenar y acostarnos. Para realizar cada una de las actividades es necesario seguir una serie de pasos o conjunto de acciones. Podemos decir que cada una de las actividades es un problema que resolvemos. Antes de continuar aclaremos lo que entendemos por problema, según Diccionario Educativo Larousse: Problema:

Cuestión en que debe averiguarse una respuesta o que provoca preocupación: La maestra les dejó cuatro problemas matemáticos a sus alumnos.

Page 5: UNIVERSIDAD NACIONAL AUTONOMA DE MEXICO COLEGIO DE ... · 3. Construye el algoritmo, el diagrama de flujo y el seudocódigo para los problemas planteados. 4. Realiza la prueba de

Vlle Mayo 2012 5

Hecho que impide o dificulta alguna cosa: Jaime llegó tarde a su cita porque tuvo problemas con su automóvil.

Resolver: Hallar la solución a algo: Ese maestro es muy bueno para resolver las

dudas de sus alumnos Decidir: Después de pensarlo mucho, resolvió pasar sus vacaciones

en las montañas. Comprobar:

Verificar, confirmar una cosa mediante una prueba: Comprobé las sumas y los resultados son correctos.

Aritmética Teórico Práctica, A. Baldor Problema: Es una cuestión práctica en la que hay que determinar ciertas cantidades

desconocidas llamadas incógnitas, conociendo sus relaciones con cantidades conocidas llamadas datos del problema.

Resolución: Resolver un problema es realizar las operaciones necesarias para hallar el valor de la incógnita o incógnitas.

Comprobación: Comprobar un problema es cerciorarse de que los valores que se han hallado para las incógnitas, al resolver el problema, satisfacen las condiciones del mismo.

Sinónimos de Problema: dificultad, duda, enigma, pregunta, cuestión,

proposición. ¿Qué dicen los alumnos? Oigamos a los alumnos. Retomando las ideas anteriormente expuestas si la actividad que queremos enfatizar es la de bañarnos, estamos tan acostumbrados a realizarla que en realidad no la consideramos como problema, sin embargo si nos ponemos a enumerar la serie de pasos que hacemos para obtener como resultado estar bañado, posiblemente nos cueste trabajo enumerarlas, porque lo hacemos casi automáticamente. ¿Qué dicen los alumnos? Oigamos a los alumnos. Resumiendo: Todas nuestras actividades las realizamos en base a nuestra experiencia y siguiendo una secuencia de pasos, considerando las circunstancias bajo las condiciones que se nos presentan; por ejemplo trasladarnos a la escuela, un día normal con el tiempo adecuado, es diferente a un día especial, complicado por el tráfico, una marcha, descompostura del camión, el auto, no pasa el camión la combi, etc. Algoritmo: secuencia de pasos a seguir para resolver un problema. Las características que los algoritmos deben reunir son las siguientes: Precisión: Los pasos a seguir en el algoritmo deben ser precisados claramente. Determinismo: El algoritmo, dado un conjunto de datos idénticos de entrada,

siempre deben arrojar los mismos resultados.

Page 6: UNIVERSIDAD NACIONAL AUTONOMA DE MEXICO COLEGIO DE ... · 3. Construye el algoritmo, el diagrama de flujo y el seudocódigo para los problemas planteados. 4. Realiza la prueba de

Vlle Mayo 2012 6

Finitud: El algoritmo, independientemente de la complejidad del mismo, siempre debe ser de longitud finita.

Por otro lado, para tener el algoritmo adecuado, debemos tener claros 4 aspectos importantes por lo que debemos considerar:

El planteamiento del problema Los datos Los resultados El procedimiento que se debe realizar

Ejemplo 1: Si nuestro problema es Hacer un licuado de fresa, lo primero que

tenemos que hacer es entender el problema por lo que se necesita aclarar El planteamiento del problema: Hacer un licuado de fresa Los datos:

o Son los ingredientes (leche, fresas, azúcar, hielo, extracto de vainilla) o Los elementos que necesitamos (licuadora o batidora, cuchara, vaso,

popote) Los resultados:

o Un licuado de fresa El procedimiento que se debe realizar:

La secuencia de actividades para obtener el resultado deseado o Lavar las fresas y desinfectarlas o Poner en el vaso de la licuadora (o batidora) todos los ingredientes o Licuar durante 3 minutos o Vaciar el licuado en un vaso o Colocar el popote.

Este primer ejemplo, se puede perfeccionar dando más detalles o especificaciones por ejemplo en la descripción de los ingredientes podemos aclarar la cantidad de cada uno de los ingredientes: leche (1/4 de litro), fresas (100 gr.), azúcar (3 cucharas soperas), hielo (1/2 taza de hielo frape), 1 cucharada de extracto de vainilla, o simplemente cambiar el segundo paso del procedimiento, por el siguiente:

Poner en el vaso de la licuadora (o batidora) las cantidades de ingredientes al gusto.

Ejemplo 2: Resolver un sistema de ecuaciones de 2 incógnitas, por el método de

determinantes. El planteamiento del problema: Solucionar un sistema de ecuaciones con

2 incógnitas, es decir, encontrar el valor de x y el valor de y, que satisfacen las dos ecuaciones: ax+by=c y dx +ey=f, utilizando el método de determinantes.

Los datos: Los valores de los coeficientes de x , de y y los términos independientes, es decir: a, d, b, e, c, f

Los resultados: El valor de x, y el valor de y El procedimiento que se debe realizar: Como en el enunciado indica que

por el método de determinantes, no podemos utilizar otro método (gráfico), lo que tenemos que hacer es recordar o aplicar el método de

Page 7: UNIVERSIDAD NACIONAL AUTONOMA DE MEXICO COLEGIO DE ... · 3. Construye el algoritmo, el diagrama de flujo y el seudocódigo para los problemas planteados. 4. Realiza la prueba de

Vlle Mayo 2012 7

determinantes, para poder determinar los pasos que son necesarios realizar.

Recordemos, que con el método de determinantes el valor de x, se obtiene dividiendo el valor del determinante de x entre el determinante del sistema y el valor de y se obtiene dividiendo el determinante de y entre el determinante del sistema.

syy

sxx

dbaeedba

yx :ydeescoeficientlosnintervienesistemadeltedeterminanelEn

fbceef

bcyx :deyntesindependieescoeficientlosnintervienedetedeterminanelEn

dcaffd

caxy :ntesindependieedeescoeficientlosnintervienedetedeterminanelEn

Por lo que para obtener el valor de x tenemos que dividir ce-fb entre ae-db y

para obtener el valor de y tenemos que dividir af-dc entre ae-db. Todo lo anterior fue para recordar que tenemos que hacer en el método de determinantes, por lo que ahora estamos en condiciones de precisar el El procedimiento que se debe realizar:

Dividir ce-fb entre ae-db para encontrar el valor de x, es decir

dbaefbcex

para después calcular el valor de y, dividiendo af-dc entre ae-db, es

decir dbaedcafy

Indicar como resultado el valor de X y el valor de Y. ¿Qué dicen los alumnos? Oigamos a los alumnos. Conclusión: No existen reglas para resolver los problemas, pero podemos practicar un conjunto de técnicas y herramientas metodológicas que permitan estructurar el razonamiento que se utiliza en la resolución de problemas y poder realizar algoritmos eficientes, cada vez con mayor precisión, rapidez y complejidad.

Page 8: UNIVERSIDAD NACIONAL AUTONOMA DE MEXICO COLEGIO DE ... · 3. Construye el algoritmo, el diagrama de flujo y el seudocódigo para los problemas planteados. 4. Realiza la prueba de

Vlle Mayo 2012 8

Clase 2: Etapas de desarrollo de programas. Aprendizaje:

Describe las características de las etapas que intervienen en la solución de problemas.

Temática: 1. Definiciones y conceptos generales 1.3 Herramientas computacionales para la solución de problemas 1.3.1 Hardware 1.3.2 Sistema Operativo 1.3.3 Programas de aplicación 1.3.4 Lenguajes de programación Desarrollo: En la clase anterior definimos lo que es un algoritmo: Conjunto de pasos, procedimientos o acciones que nos permiten alcanzar un resultado o resolver un problema. Comentamos que todas nuestras acciones son resultado de poner en práctica los algoritmos que en base a nuestra experiencia, conocimientos y estrategias o costumbres nos funcionan bien. También comentamos que las actividades que hacemos con tanta frecuencia podemos decir que las hacemos de manera automática o inconscientemente, también podríamos decir que ya las tenemos programadas. Aclaremos que entienden los alumnos por programa y programar y den respuesta al siguiente cuestionario, como introducción o examen diagnostico de los siguientes conceptos. CUESTIONARIO ¿Qué es Hardware?, ¿Qué es Software? ¿Qué es Sistema Operativo?, ¿Para que sirve el Sistema Operativo?, ¿Cuál es el propósito de los Programas de aplicación?, ¿Para que sirven los Lenguajes de programación?, Describe los niveles de lenguajes de programación y su característica principal. ¿Qué dicen los alumnos? Oigamos a los alumnos. A contuación aclaremos los conceptos de: Programa, programar, lenguaje de programación, código de máquina (o lenguaje de máquina), lenguaje fuente, lenguaje de alto nivel, compilador, lenguaje natural, lenguajes orientados hacia los problemas, FORTRAN, ALGOL, BASIC, PL/1, COBOL, lenguaje de bajo nivel, lenguajes orientados hacia la máquina, lenguajes ensambladores, ensamblador, ejecutar un programa. Según el Diccionario Educativo Larousse: Programa: Exposición de los proyectos de una persona, partido, etc.: El candidato a la

presidencia del grupo de vecinos expuso un programa de trabajo para arreglar el edificio.

Emisión de televisión, radio, etc.: No cambies de canal porque quiero ver el programa de policías y ladrones.

Page 9: UNIVERSIDAD NACIONAL AUTONOMA DE MEXICO COLEGIO DE ... · 3. Construye el algoritmo, el diagrama de flujo y el seudocódigo para los problemas planteados. 4. Realiza la prueba de

Vlle Mayo 2012 9

Programar: Establecer un programa o fijar las diversas partes de una determinada

acción: Los novios programaron su boda para el mes próximo. Según el Diccionario Especializado de Matemáticas: Programa: Conjunto completo de instrucciones a un ordenador escrito en un lenguaje

de programación. Estas instrucciones junto con los elementos, que se llaman datos, sobre los cuales operan las instrucciones, permiten al ordenador efectuar una amplia variedad de trabajos. Por ejemplo, hay instrucciones para hacer cálculos aritméticos para trasladar datos de la memoria principal al procesador central del ordenador, para efectuar operaciones lógicas y, para alterar el flujo de control en el programa. Las instrucciones y los datos deben estar expresados de tal modo que el procesador central pueda reconocer e interpretar las instrucciones y hacer que se cumplan sobre los datos adecuados. En realidad, deben estar en forma binaria, es decir, en un código que consiste en los dígitos o cifras binarias o y 1 (bits). Este código binario es el llamado código de máquina (o lenguaje de máquina). Cada tipo de ordenador tiene su propio código de máquina. Es difícil, tedioso y dispendioso escribir programas en código de máquina. En vez de ello los programas suelen escribirse en un lenguaje fuente y estos programas fuente se traducen luego a código de máquina. La mayoría de los programas fuente son escritos en un lenguaje de alto nivel y convertidos en código de máquina mediante un programa complicado llamado compilador. Los lenguajes de alto nivel están más próximos al lenguaje natural y a la notación matemática que el código de máquina, con las instrucciones en forma de enunciados. Son bastante fáciles de usar. Están concebidos para resolver clases particulares de problemas y por eso se describen como ”lenguajes orientados hacia los problemas”. Se han ideado muchos y algunos de los más corrientes son FORTRAN, ALGOL, BASIC y PL/1, que se emplean todos para fines científicos y técnicos, y el COBOL, que se utiliza más que todo en aplicaciones comerciales. Para cada tipo de ordenador hay compiladores para variados lenguajes de alto nivel. También es posible escribir un programa fuente en un lenguaje de bajo nivel. Estos son lenguajes que se asemejan al código de máquina más estrechamente que el lenguaje natural y son por tanto difíciles de usar. Están diseñados para ordenadores particulares y por eso se les describe como “lenguajes orientados hacia la máquina”. Los lenguajes ensambladores, son lenguajes de bajo nivel. Un programa escrito en lenguaje ensamblador se convierte en código de máquina mediante un programa especial llamado ensamblador.

Programar: Escribir las instrucciones para un ordenador. Según Leobardo López R, en su libro Programación Estructurada en TURBO PASCAL 7:Programa: Un programa es una secuencia de instrucciones mediante las cuales se ejecutan diferentes acciones de acuerdo con los datos que

Page 10: UNIVERSIDAD NACIONAL AUTONOMA DE MEXICO COLEGIO DE ... · 3. Construye el algoritmo, el diagrama de flujo y el seudocódigo para los problemas planteados. 4. Realiza la prueba de

Vlle Mayo 2012 10

se estén procesando. El programa debe incluir instrucciones para acciones que deban ejecutarse sobre cada uno de los datos admitidos, además instrucciones que identifiquen datos erróneos. Cuando se ejecuta un programa con un tipo de datos específico, es probable que no se ejecuten todas las instrucciones sino solo las que sean pertinentes a los datos en cuestión. Un programa se compone de estructuras de datos, operaciones primitivas elementales y estructuras de control. Hagamos un primer resumen, con el fin de aclarar conceptos: Los lenguajes de programación nos permiten indicarle a la computadora la secuencia de instrucciones que debe ejecutar para llevar a cabo actividades, tareas o solución de problemas, generalmente los programas se componen de tres elementos: las estructuras de los datos, operaciones primitivas elementales y estructuras de control. El sistema operativo es un conjunto de programas que tienen la finalidad de facilitarnos el manejo de todos los recursos con los que cuenta la computadora, es decir, de los elementos de Hardware (elementos físicos, tangibles: teclado, monitor, ratón, bocinas, discos, CDs, impresoras, etc.). También como parte de los recursos que nos ofrece la computadora, están los paquetes (software: parte no tangible) que son los programas para realizar actividades especiales como LOS PROCESADORES DE TEXTOS, que nos facilita la tarea de elaborar cualquier tipo de documento: nota, carta, notificaciones, oficios, libros, reportes de investigación, etc. Otro tipo de programas especiales son las llamadas HOJAS DE CALCULO, cuyo propósito es facilitarnos la tarea de manejo de información, realizar cálculos, gráficas, reportes, etc. Como último ejemplo de estos programas especiales tenemos los programas de PRESENTACION ELECTRÒNICA, para facilitarnos la tarea de diseñar diapositivas y hacer una presentación sobre un tema de investigación, un proyecto, un libro etc. Dichos programas especiales están diseñados para un propósito específico, por eso se les considera programas de aplicación y difieren en propósito de los lenguajes de programación. Los lenguajes de programación los podemos clasificar en lenguajes de máquina, ensambladores y de alto nivel. Los lenguajes de alto nivel, son los más parecidos al lenguaje humano (lenguaje natural), porque nos podemos expresar por medio de enunciados; los lenguajes ensambladores son lenguajes que están en un nivel intermedio entre el lenguaje humano (natural) y el de la computadora (máquina), por lo que nos es difícil manejar ya que nos debemos expresar por medio de códigos y claves difíciles de recordar y manejar ya que tienen una estructura diferente; y , en relación a los lenguajes de máquina lo que debemos resaltar está en el sistema binario, es decir expresado por medio de bits (ceros 0 y unos 1) y es el único lenguaje que entiende la computadora. Por eso es que las instrucciones (programas) que se le den a la computadora en lenguajes ensambladores deberán ser traducidos al lenguaje de máquina por medio de un ensamblador, mientras que los programas

Page 11: UNIVERSIDAD NACIONAL AUTONOMA DE MEXICO COLEGIO DE ... · 3. Construye el algoritmo, el diagrama de flujo y el seudocódigo para los problemas planteados. 4. Realiza la prueba de

Vlle Mayo 2012 11

en lenguajes de alto nivel también deberán ser traducidos al lenguaje de máquina y los encargados para ésta traducción son los compiladores. ¿Que tanto han comprendido los alumnos?, Ahora los alumnos contestarán correctamente el cuestionario. CUESTIONARIO ¿Qué es Hardware?, ¿Qué es Software? ¿Qué es Sistema Operativo?, ¿Para que sirve el Sistema Operativo?, ¿Cuál es el propósito de los Programas de aplicación?, ¿Para que sirven los Lenguajes de programación?, Describe los niveles de lenguajes de programación y su característica principal. Consideremos ahora el Ciclo de desarrollo de programas. Para que podamos utilizar la computadora en la solución de problemas, será necesario Primero, construir el algoritmo de solución del problema, recordemos que para

esto es necesario tener claridad en: El planteamiento del problema, Los datos, Los resultados que queremos obtener y El procedimiento que se debe realizar.

Segundo, traducir el procedimiento a un lenguaje de programación, esto es lo que conocemos como codificar es decir elaborar el programa fuente.

Tercero, introducir el programa fuente a la memoria de la computadora, es decir editar el programa fuente.

Cuarto, indicarle a la computadora que realice la traducción del programa fuente al lenguaje de máquina (programa objeto), esto deberá realizarlo el compilador, es decir en ésta etapa se realiza la compilación del programa.

Si el compilador no puede traducir alguna de las indicaciones, marcará error (error de sintaxis), por lo que será necesario corregir la instrucción en el programa fuente y solicitar nuevamente, que el compilador traduzca el nuevo programa, por supuesto que para corregir el error, será necesario utilizar nuevamente el editor, con la finalidad de tener un nuevo programa (fuente) en la memoria de la computadora.

Quinto, ejecutar el programa (objeto), es decir, comprobar que la computadora realice el programa con los datos del problema y obtener los resultados; puede ser que en esta etapa se tengan resultados incorrectos o simplemente no se tengan resultados; estos errores (errores de lógica), son ocasionados porque las instrucciones (programa fuente), no están bien diseñadas o la traducción del algoritmo al lenguaje de programación no corresponde. Para corregir los errores de lógica es necesario revisar el algoritmo de solución y que la traducción corresponda.

Sexto, una vez que el programa funciona correctamente, es conveniente revisarlo con datos “especiales”, para perfeccionar, refinar, mejorar es decir, depurar el programa; generalmente esta etapa no se realiza, por falta de tiempo o por negligencia, apatía.

Séptimo, aunque generalmente tampoco se realiza esta etapa, en este paso se aconseja que se le introduzcan comentarios, observaciones de cómo es posible actualizarlo o hacerlo más general y poder abarcar y solucionar más problemas del mismo tipo, esto permitirá que el programa se pueda mantener funcionando; a esta etapa se le conoce como la de documentación y mantenimiento.

Page 12: UNIVERSIDAD NACIONAL AUTONOMA DE MEXICO COLEGIO DE ... · 3. Construye el algoritmo, el diagrama de flujo y el seudocódigo para los problemas planteados. 4. Realiza la prueba de

Vlle Mayo 2012 12

Clase 3: REPRESENTACION DE ALGORITMOS Aprendizaje:

Construye el algoritmo, el diagrama de flujo y el seudocódigo para los problemas planteados.

Realiza la prueba de escritorio de los algoritmos desarrollados. Temática: 4. Técnicas de desarrollo de algoritmos 4.1 Diseño descendente 4.3 Seudocódigo y diagrama de flujo 4.4 Prueba de escritorio Desarrollo: En las clases anteriores hemos tratado lo que es un algoritmo: Algoritmo: secuencia de pasos a seguir para resolver un problema. Existen diferentes técnicas para expresar los algoritmos por ejemplo, diagramas

de flujo y seudocódigo. Los Diagramas de Flujo son la representación gráfica de los algoritmos. La elaboración del diagrama de flujo es muy importante, porque a partir de se

escribirá el programa en el lenguaje de programación y, si el diagrama es correcto y completo la traducción al lenguaje de programación será sencilla y fácil.

En realidad no existe una simbología estándar, universal, sin embargo para el desarrollo de este material se sugieren los símbolos que se muestran en la siguiente tabla:

Simbolos de los Diagramas

Símbolo Explicación

Marca el inicio y el fin del Diagrama de Flujo ( Bloque de inicio y fin)

Datos del Problema En el interior se indica la lista de variables que se consideran datos. (Bloque de datos o de entrada)

Proceso

Page 13: UNIVERSIDAD NACIONAL AUTONOMA DE MEXICO COLEGIO DE ... · 3. Construye el algoritmo, el diagrama de flujo y el seudocódigo para los problemas planteados. 4. Realiza la prueba de

Vlle Mayo 2012 13

si

no

Para realizar operaciones aritméticas, cambios o asignación se da valor a las variables, a la derecha se indica la variable a la que se le da el valor resultante de la expresión que se encuentra a la derecha de la flecha (Bloque de proceso o de asignación)

Representa una decisión, en el interior se indica una condición y Dependiendo del resultado se sigue por la rama de SI, o, Por la rama NO. (Bloque de decisión)

Resultados En el interior se indica la lista de resultados, expresa escritura de valores de constantes y /o valor de las variables (Bloque de salida o resultados)

EJEMPlos

Símbolo Explicación

Marca el INICIO del Diagrama de Flujo

Datos del Problema Indica que las variables a, b y c son datos del problema por lo que se deberá proporcionar un valor para cada una de las variables y en ese orden.

Proceso

a,b,c

INICIO

Page 14: UNIVERSIDAD NACIONAL AUTONOMA DE MEXICO COLEGIO DE ... · 3. Construye el algoritmo, el diagrama de flujo y el seudocódigo para los problemas planteados. 4. Realiza la prueba de

Vlle Mayo 2012 14

si

no

El valor de la variable w, cambia y el nuevo valor es el que resulta de restar fb a ce.

Decisión, Si es cierto que el valor de a, es mayor que el valor de b, entonces el bloque que sigue es el indicado por la rama SI; pero si el valor de a no es mayor que el valor de b, entonces el bloque que sigue es el indicado por la rama NO

Resultados Los valores de las variables x ,y son los resultados del problema. Se debe escribir el valor de x y a continuación el valor de la variable y.

Para ejemplificar el diagrama de flujo de un problema, retomemos el ejemplo 2

desarrollado anteriormente: Ejemplo 2: Resolver un sistema de ecuaciones de 2 incógnitas, por el método

de determinantes. El planteamiento del problema: Solucionar un sistema de ecuaciones con

2 incógnitas, es decir, encontrar el valor de x y el valor de y, que satisfacen las dos ecuaciones: ax+by=c y dx +ey=f, utilizando el método de determinantes.

Los datos: Los valores de los coeficientes de x , de y y los términos

independientes, es decir: a, d, b, e, c, f

Los resultados: El valor de x, y el valor de y

El procedimiento que se debe realizar:

Dividir ce-fb entre ae-db para encontrar el valor de x, es decir

dbaefbcex

X, y

w ce-fb

a>b

Page 15: UNIVERSIDAD NACIONAL AUTONOMA DE MEXICO COLEGIO DE ... · 3. Construye el algoritmo, el diagrama de flujo y el seudocódigo para los problemas planteados. 4. Realiza la prueba de

Vlle Mayo 2012 15

para después calcular el valor de y, dividiendo af-dc entre ae-db, es

decir dbaedcafy

Indicar como resultado el valor de X y el valor de Y.

El diagrama de flujo, correspondiente es el siguiente:

Page 16: UNIVERSIDAD NACIONAL AUTONOMA DE MEXICO COLEGIO DE ... · 3. Construye el algoritmo, el diagrama de flujo y el seudocódigo para los problemas planteados. 4. Realiza la prueba de

Vlle Mayo 2012 16

INICIO

A,B,C,D,E,F

DSIST A*E – D*B

DX C*E – F*B

DY A*F – D*C

X , Y

Y DY / DSIST

X DX / DSIST

FIN

Page 17: UNIVERSIDAD NACIONAL AUTONOMA DE MEXICO COLEGIO DE ... · 3. Construye el algoritmo, el diagrama de flujo y el seudocódigo para los problemas planteados. 4. Realiza la prueba de

Vlle Mayo 2012 17

Aunque la autora no recomienda el uso del seudocódigo porque prefiere ver de manera gráfica el proceso a desarrollar, además considera que es más fácil y rápido identificar las diferentes instrucciones que intervienen en el proceso de solución; como ejemplo de seudocódigo a continuación se presenta el correspondiente al diagrama de flujo que se elaboró.

Se solicita el valor para los datos del problema Leer los valores para a,b,c,d,e y f Se calcula el determinante del sistema: DSIST = A*E – D*B Se calcula el determinante de x:

DX = C*E – F*B Se calcula el determinante de y:

DY = A*F – D*C Se calcula el valor de x:

X = DX / DSIST Se calcula el valor de y:

Y = DY / DSIST Se imprimen los resultados, es decir X y Y. Fin del algoritmo.

Resolvamos otro problema. Problema 3: Calcular e imprimir el pago de un empleado y su nombre, contando con los datos del nombre, sueldo por hora y horas trabajadas. Aplicando lo especificado anteriormente, aclaremos:

Planteamiento del problema: Calcular el pago de un empleado. Datos: Los datos disponibles para resolver el problema son 3: el nombre, el

sueldo por hora y las horas trabajadas.

Los resultados: Escribir el nombre y el pago para el trabajador

El procedimiento que se debe realizar: Calcular el pago, multiplicando el sueldo por hora por las horas

trabajadas Imprimir el nombre y el pago como resultados del problema.

El seudocódigo correspondiente es el siguiente:

Leer los datos: NOMBRE, SUELDO, HORAS Calcular el pago del trabajador:

PAGO = SUELDO * HORAS

Page 18: UNIVERSIDAD NACIONAL AUTONOMA DE MEXICO COLEGIO DE ... · 3. Construye el algoritmo, el diagrama de flujo y el seudocódigo para los problemas planteados. 4. Realiza la prueba de

Vlle Mayo 2012 18

Imprimir NOMBRE y PAGO Fin del algoritmo.

Ahora presentamos el diagrama de flujo:

Resolvamos otro problema Problema 4: Calcular el área y el perímetro de un rectángulo, si tenemos como datos la base y la altura del rectángulo.

Planteamiento del problema: Calcular el área y el perímetro de un rectángulo.

Datos: Los datos disponibles para resolver el problema son 2: la base y la altura.

Los resultados: El área y el perímetro. El procedimiento que se debe realizar:

Calcular el área: Area = base * altura Calcular el perímetro: Perímetro = (base + altura) * 2 Imprimir el Area y el perímetro del rectángulo.

El seudocódigo:

Leer los datos: base, altura calcular el área: area= base * altura calcular el perímetro: perímetro = (base+altura)*2 imprimir los resultados es decir: area y perímetro

inicio

NOMBRE, SUELDO, HORAS

PAGO SUELDO * HORAS

NOMBRE, PAGO

FIN

Page 19: UNIVERSIDAD NACIONAL AUTONOMA DE MEXICO COLEGIO DE ... · 3. Construye el algoritmo, el diagrama de flujo y el seudocódigo para los problemas planteados. 4. Realiza la prueba de

Vlle Mayo 2012 19

Fin del algoritmo. El diagrama de flujo:

Con la finalidad de asegurarnos que el algoritmo expresado en el diagrama de flujo es correcto, se utiliza el prueba de escritorio, que consiste en seguir las instrucciones y comprobar que los resultados obtenidos son los correctos, a continuación, mostramos la tabla de seguimiento, dando como datos los valores de 7 y 9.

Bloque /Instrucción

Afecta la variable BASE ALTURA AREA PERÍMETRO

1 7 9 2 63 3 32

BASE, ALTURA

inicio

AREA BASE * ALTURA

AREA, PERIMETRO

FIN

PERÍMETRO (BASE +ALTURA)*2

Page 20: UNIVERSIDAD NACIONAL AUTONOMA DE MEXICO COLEGIO DE ... · 3. Construye el algoritmo, el diagrama de flujo y el seudocódigo para los problemas planteados. 4. Realiza la prueba de

Vlle Mayo 2012 20

Resultados: 63, 32. REGLAS PARA ELABORAR UN DIAGRAMA DE FLUJO: El diagrama de flujo es la representación gráfica del algoritmo de solución, por lo que debe indicarnos gráficamente la secuencia de pasos que se debe realizar para lograr obtener la solución del problema, o sea, los resultados. Podemos indicar como reglas para la elaboración de los diagramas los siguientes puntos:

1. Debe empezar con el bloque de inicio y terminar con el bloque de fin.

2. Los bloques deben ser unidos por flechas, para indicar cual es el siguiente

bloque que se debe realizar. Es decir, las flechas que unen los bloques

indican el flujo a seguir.

3. El diagrama debe ser construido de manera descendente, es decir de arriba

hacia abajo y de izquierda a derecha.

4. En el caso de las salidas de un bloque de decisión deberá indicarse cual

corresponde a la salida SI, y cual es la que corresponde a la salida NO.

5. Debe ser claro cual es el siguiente bloque. El bloque de decisión es el único

que tiene dos salidas ( SI y NO) por lo que no puede indicarse dos flechas

de salida en ningún otro bloque.

6. En el bloque de DATOS, no se permite hacer operaciones ni escribir texto,

únicamente se indica los nombres de las variables a las que se les

asociarán con los datos.

7. En el bloque de SALIDA, no se puede realizar operaciones, solo se puede

indicar el texto (entre comillas) y las variables que se quiere aparezcan

como resultados.

8. En el bloque de asignación se indica en el extremo izquierdo, el nombre de

la variable que va a cambiar su valor, una flecha hacia la izquierda y en el

extremo derecho la expresión que se calcula para obtener el valor que se

asigna a la variable que como ya se indicó aparece a la izquierda.

La expresión para calcular el nuevo valor de la variable, debe seguir las

reglas de prioridad de operadores, se recomienda que si se tiene duda,

emplee los paréntesis para indicar el orden de ejecución de las

Page 21: UNIVERSIDAD NACIONAL AUTONOMA DE MEXICO COLEGIO DE ... · 3. Construye el algoritmo, el diagrama de flujo y el seudocódigo para los problemas planteados. 4. Realiza la prueba de

Vlle Mayo 2012 21

operaciones; mas adelante se aclarará con mayor detalle cuales son los

operadores y sus prioridades.

9. Debe ser posible siguiendo las flechas de flujo ir desde el inicio hasta el fin

del diagrama, no deben quedar bloques sin unir, es decir de cada bloque

debe salir una flecha para unirlo con el siguiente bloque.

10. Los bloques no tienen que aparecer en un cierto número, ni tienen que

aparecer todos los bloques, o en un orden determinado; El algoritmo es el

que determina el orden y los bloques que se deben utilizar.

Page 22: UNIVERSIDAD NACIONAL AUTONOMA DE MEXICO COLEGIO DE ... · 3. Construye el algoritmo, el diagrama de flujo y el seudocódigo para los problemas planteados. 4. Realiza la prueba de

Vlle Mayo 2012 22

Clase 4: Refinación y prueba de escritorio. Aprendizaje:

Construye el algoritmo, el diagrama de flujo y el seudocódigo para los problemas planteados.

Realiza la prueba de escritorio de los algoritmos desarrollados. Temática: 4. Técnicas de desarrollo de algoritmos 4.1 Diseño descendente 4.2 Refinación progresiva de solución 4.3 Seudocódigo y diagrama de flujo 4.4 Prueba de escritorio Desarrollo. En las clases anteriores hemos definido las etapas para desarrollar un programa, en resumen, podemos mencionar los siguientes pasos: Planteamiento del programa Análisis del problema (Construir el algoritmo de solución del problema.) Elaborar el Diagrama de Flujo, o pseudocódigo y la Prueba de Escritorio. Codificar, traducir el procedimiento a un lenguaje de programación. Editar, introducir el programa fuente a la memoria de la computadora. Compilar, la computadora realiza la traducción del programa fuente al

lenguaje de máquina (programa objeto). Ejecutar el programa (objeto). Depurar el programa, perfeccionar, refinar, mejorar el programa. Documentar el programa. Dar mantenimiento al programa.

Se ha indicado que si la codificación del algoritmo (paso 4), no se hace de manera correcta, el compilador marcará errores de sintaxis (paso 6), por lo que será necesario revisar y corregir la codificación para obtener un nuevo programa, esto quiere decir que en realidad debe regresarse al paso 4 y repetir el paso 5 y 6 para poder continuar con el proceso y realizar el paso 7,8,...

También se ha indicado que en caso de que los resultados no sean correctos, se deberá revisar que, el algoritmo y la codificación sean correctos, esto implica que se tiene que regresar al paso 2.

El algoritmo anterior, correspondiente a las etapas para desarrollar un programa, puede representarse en el diagrama de flujo que se muestra a continuación:

Page 23: UNIVERSIDAD NACIONAL AUTONOMA DE MEXICO COLEGIO DE ... · 3. Construye el algoritmo, el diagrama de flujo y el seudocódigo para los problemas planteados. 4. Realiza la prueba de

Vlle Mayo 2012 23

Inicio

1. Planteamiento del programa

2. Análisis del problema (Algoritmo de solución)

3. Diagrama de Flujo prueba de escritorio

4. Codificar

5. Editar

6. Compilar

Error SI

NO

7. Ejecutar el programa

Resultados correctos

NO

SI

Depurar y Documentar

FIN

Page 24: UNIVERSIDAD NACIONAL AUTONOMA DE MEXICO COLEGIO DE ... · 3. Construye el algoritmo, el diagrama de flujo y el seudocódigo para los problemas planteados. 4. Realiza la prueba de

Vlle Mayo 2012 24

Retomemos el problema del pago del empleado. Problema: Calcular e imprimir el pago de un empleado y su nombre, contando con los datos del nombre, sueldo por hora y horas trabajadas. Pero ahora calculemos las horas extras; es decir las horas trabajadas que pasan de 40, se consideran horas extras y deberán pagarse al doble. Aplicando lo especificado anteriormente, aclaremos:

Planteamiento del problema: Calcular el pago de un empleado, considerando pago de horas extras

Datos: Los datos disponibles para resolver el problema son 3: el nombre, el

sueldo por hora y las horas trabajadas.

Los resultados: Escribir el nombre y el pago para el trabajador considerando horas extras.

El procedimiento que se debe realizar:

Calcular el pago, multiplicando el sueldo por hora por las horas

trabajadas

Calcular las horas extras; las que pasan de 40: extras=trabajadas-40

Pagar las horas extras al doble y calcular el pago total del trabajador.

Imprimir el nombre y el pago como resultados del problema.

El seudocódigo correspondiente es el siguiente:

Leer los datos: NOMBRE, SUELDO, HORAS

Calcular el pago del trabajador:

PAGO = SUELDO * HORAS

Calcular pago de horasExtras:

HEXT = ( HORAS – 40) * SUELDO

Imprimir NOMBRE y PAGO

Fin del algoritmo.

Page 25: UNIVERSIDAD NACIONAL AUTONOMA DE MEXICO COLEGIO DE ... · 3. Construye el algoritmo, el diagrama de flujo y el seudocódigo para los problemas planteados. 4. Realiza la prueba de

Vlle Mayo 2012 25

Ahora presentamos el diagrama de flujo:

Veamos que resultados tendríamos, en el caso de introducir los datos: LUIS P. S., 10, 35

Bloque /Instrucción

Afecta la variable NOMBRE SUELDO HORAS PAGO HEXT

1 LUIS P.S. 10 35 2 350 3 -50 4 300

Los resultados serían: LUIS P. S. 300

inicio

NOMBRE, SUELDO, HORAS

PAGO SUELDO * HORAS

NOMBRE, PAGO

FIN

HEXT (HORAS -40)*SUELDO

PAGO PAGO +HEXT

Page 26: UNIVERSIDAD NACIONAL AUTONOMA DE MEXICO COLEGIO DE ... · 3. Construye el algoritmo, el diagrama de flujo y el seudocódigo para los problemas planteados. 4. Realiza la prueba de

Vlle Mayo 2012 26

Lo cual es un error, ya que el pago NO ES CORRECTO. El error es ocasionado por el cálculo del pago de las horas extras, ya que en éste caso no hay horas extras. El algoritmo lo tenemos que modificar para que verifique que existen horas extras y en caso de que si haya, entonces calcular el pago correspondiente. Al modificar el algoritmo, agregamos la instrucción para obtener el siguiente Procedimiento que se debe realizar:

Calcular el pago, multiplicando el sueldo por hora por las horas

trabajadas

COMPROBAR SI LAS HORAS TRABAJADAS SON MAS DE 40

o Si LAS HORAS TRABAJADAS PASAN DE 40: CALCULAR extras = trabajadas-40

o Pagar las horas extras al doble y calcular el pago total del trabajador.

Imprimir como resultados del problema el nombre y el pago.

El seudocódigo correspondiente es el siguiente:

leer los datos: NOMBRE, SUELDO, HORAS

Calcular el pago del trabajador:

PAGO = SUELDO * HORAS

SI las HORAS son >40, entonces

o calcular pago de horas extras:

HEXT = ( HORAS – 40) * SUELDO

o calcular el pago total

PAGO=PAGO+HEXT

3. Fin de SI mas de 40.

Imprimir NOMBRE y PAGO

Fin del algoritmo.

Page 27: UNIVERSIDAD NACIONAL AUTONOMA DE MEXICO COLEGIO DE ... · 3. Construye el algoritmo, el diagrama de flujo y el seudocódigo para los problemas planteados. 4. Realiza la prueba de

Vlle Mayo 2012 27

El nuevo Diagrama de Flujo sería:

inicio

NOMBRE, SUELDO, HORAS

PAGO SUELDO * HORAS

FIN

NOMBRE, PAGO

HORAS > 40

HEXT (HORAS -40)*SUELDO

PAGO PAGO +HEXT

SI

NO

Page 28: UNIVERSIDAD NACIONAL AUTONOMA DE MEXICO COLEGIO DE ... · 3. Construye el algoritmo, el diagrama de flujo y el seudocódigo para los problemas planteados. 4. Realiza la prueba de

Vlle Mayo 2012 28

Veamos que resultados tendríamos, en el caso de introducir los datos:

a) LUIS P. S., 10, 35 b) JUAN R. T., 10, 45

Es decir, comprobemos con dos casos, con la prueba de escritorio.

Bloque /Instrucción

Afecta la variable NOMBRE SUELDO HORAS PAGO ¿HORAS>40? HEXT

1 LUIS P.S. 10 35 2 350 3 NO 1 JUAN R. T 10 45 2 450 3 SI 4 50 5 500

Los resultados obtenidos son: LUIS P.S., 350 JUAN R. T, 500 En ambos casos, los resultados son correctos; por lo que hemos terminado con la depuración del algoritmo.

Page 29: UNIVERSIDAD NACIONAL AUTONOMA DE MEXICO COLEGIO DE ... · 3. Construye el algoritmo, el diagrama de flujo y el seudocódigo para los problemas planteados. 4. Realiza la prueba de

Vlle Mayo 2012 29

Clase 5: Refinación y prueba de escritorio. Aprendizaje:

Construye el algoritmo, el diagrama de flujo y el seudocódigo para los problemas planteados.

Realiza la prueba de escritorio de los algoritmos desarrollados. Temática: 4. Técnicas de desarrollo de algoritmos 4.1 Diseño descendente 4.2 Refinación progresiva de solución 4.3 Seudocódigo y diagrama de flujo 4.4 Prueba de escritorio Desarrollo. Resolvamos el Problema: Para 5 alumnos, Imprimir el nombre y “APROBADO” O “REPROBADO” dependiendo de calificación final de los alumnos; la calificación final es el promedio de 3 calificaciones y es APROBADO si el promedio es mayor o igual a 6; es REPROBADO si el promedio es menor de 6. Una técnica muy generalizada para resolver problemas o actividades complicadas es dividir el problema en pequeños problemas fáciles de solucionar, siempre será más fácil solucionar un problema pequeño que uno grande. Si las pequeñas actividades o problemas siguen siendo difíciles de solucionar, entonces se deberán subdividir nuevamente hasta que se puedan solucionar fácilmente. Cuando se tenga la solución de todas las pequeñas divisiones, se tendrá solucionado el gran problema. El problema que nos preocupa, es para 5 alumnos, primero resolvamos para uno y posteriormente lo solucionamos para los 5. Aclaremos:

Planteamiento del problema: Escribir el nombre de un alumno y “APROBADO” si el promedio de las tres calificaciones es mayor o igual a 6; En el otro caso, deberemos escribir el nombre del alumno y “REPROBADO” si el promedio es menor que 6.

Datos: Los datos para resolver el problema son 4: el nombre, y tres

calificaciones.

Page 30: UNIVERSIDAD NACIONAL AUTONOMA DE MEXICO COLEGIO DE ... · 3. Construye el algoritmo, el diagrama de flujo y el seudocódigo para los problemas planteados. 4. Realiza la prueba de

Vlle Mayo 2012 30

Los resultados: Escribir el nombre y “APROBADO” ó el nombre y “REPROBADO”.

El procedimiento que se debe realizar:

Calcular el promedio, sumando las tres calificaciones y dividir el

resultado de la suma entre 3.

Determinar el mensaje, es decir, si se escribe APROBADO O

REPROBADO

o Si el promedio es >=6 escriba APROBADO

o Si el promedio es <6 escriba REPROBADO

Imprimir el nombre y el MENSAJE como resultados del problema.

El seudocódigo correspondiente es el siguiente:

Leer los datos: NOMBRE, C1,C2,C3

Calcular el promedio del alumno:

PROM = (C1+C2+C3) / 3

Determinar el mensaje:

Si el promedio es >=6 MENSAJE = ”APROBADO”

Si el promedio es <6 MENSAJE = “REPROBADO”

Imprimir NOMBRE y MENSAJE

Fin del algoritmo.

Ahora presentamos el diagrama de flujo

Page 31: UNIVERSIDAD NACIONAL AUTONOMA DE MEXICO COLEGIO DE ... · 3. Construye el algoritmo, el diagrama de flujo y el seudocódigo para los problemas planteados. 4. Realiza la prueba de

Vlle Mayo 2012 31

Veamos que resultados tendríamos, en el caso de introducir los datos:

inicio

NOMBRE, C1, C2, C3

PROM (C1+C2+C3) / 3

FIN

NOMBRE, MENSAJE

PROM >= 6

MENSAJE “REPROBADO”

SI

NO

Mensaje “APROBADO”

Page 32: UNIVERSIDAD NACIONAL AUTONOMA DE MEXICO COLEGIO DE ... · 3. Construye el algoritmo, el diagrama de flujo y el seudocódigo para los problemas planteados. 4. Realiza la prueba de

Vlle Mayo 2012 32

LUISA L. M., 10, 9,8

Bloque /Instrucción

Afecta la variable NOMBRE C1 C2 C3 PROM PROM>6 MENSAJE

1 LUISA L. M. 10 9 8 2 9 3 SI 4 APROBADO

Los resultados serían: LUISA L. M., APROBADO ¿Que resultados tendríamos?, en el caso de introducir los datos: JUAN H. C., 4, 5,6

Bloque /Instrucción

Afecta la variable NOMBRE C1 C2 C3 PROM PROM>6 MENSAJE

1 JUAN H. C. 4 5 6 2 5 3 NO 4 REPROBADO

Los resultados serían: JUAN H. C., REPROBADO Como tenemos resuelto el problema para un alumno, podemos utilizarlo 5 veces y obtendríamos los resultados para los 3 alumnos; de otra manera debemos modificar el algoritmo de manera que realice la solución para 3 alumnos. La solución requiere de una variable que nos sirva de CONTADOR, para que cuente cuantas veces lo ha realizado y cuando ya sean 3 veces deberá terminar. La variable CONTADOR, es una variable, por ejemplo C, que deberá cambiar su valor aumentando en 1, el valor anterior empezando en cero (0). Esto lo podemos expresar con:

C=0 (para indicar que empiece en cero) C=C +1 (el valor de C es el resultado de sumarle 1 al valor anterior de C)

Por supuesto que C = 0 se deberá realizar una sola vez y al principio, en cambio la instrucción de C = C+1 se deberá realizar varias veces, hasta llegar a 3. Ahora presentamos el diagrama de flujo

Page 33: UNIVERSIDAD NACIONAL AUTONOMA DE MEXICO COLEGIO DE ... · 3. Construye el algoritmo, el diagrama de flujo y el seudocódigo para los problemas planteados. 4. Realiza la prueba de

Vlle Mayo 2012 33

inicio

NOMBRE, C1, C2, C3

PROM (C1+C2+C3) / 3

NOMBRE, MENSAJE

PROM >= 6

MENSAJE “APROBADO”

MENSAJE “REPROBADO”

SI

NO

C 0

C C + 1

C=3

FIN

SI

NO

Page 34: UNIVERSIDAD NACIONAL AUTONOMA DE MEXICO COLEGIO DE ... · 3. Construye el algoritmo, el diagrama de flujo y el seudocódigo para los problemas planteados. 4. Realiza la prueba de

Vlle Mayo 2012 34

Para realizar la prueba de escritorio serán necesarios los datos de 3 alumnos: a) LUISA L. M., 10, 9,8 b) JUAN H. C., 4, 5,6 c) RAUL F. E., 7, 9, 5

Bloque /Instruc

ción

Afecta la variable NOMBRE C1 C2 C3 PROM PROM>6 MENSAJE C ¿C=3?

1 0 2 LUISA L. M. 10 9 8 3 9 4 SI 5 APROBADO 6 LUISA L.M. APROBADO 9 1

10 NO 11 JUAN H. C. 4 5 6 12 5 13 NO 14 REPROBADO 15 JUAN H. C. REPROBADO 16 2 17 NO 18 RAUL F. E. 7 9 5 19 7 20 SI 21 APROBADO 22 RAUL F. E. APROBADO 23 3 SI

Los resultados obtenidos en los pasos 8,15 y 22 serían:

LUISA L. M., APROBADO JUAN H. C. ,REPROBADO RAUL F. E., APROBADO

Y terminaría, considerando los datos previstos y proporcionando los resultados correctos.

Page 35: UNIVERSIDAD NACIONAL AUTONOMA DE MEXICO COLEGIO DE ... · 3. Construye el algoritmo, el diagrama de flujo y el seudocódigo para los problemas planteados. 4. Realiza la prueba de

Vlle Mayo 2012 35

Clase 6: Refinación y prueba de escritorio. Aprendizaje:

Construye el algoritmo, el diagrama de flujo y el seudocódigo para los problemas planteados.

Realiza la prueba de escritorio de los algoritmos desarrollados. Temática: 4. Técnicas de desarrollo de algoritmos 4.1 Diseño descendente 4.2 Refinación progresiva de solución 4.3 Seudocódigo y diagrama de flujo 4.4 Prueba de escritorio Desarrollo. Resolvamos el Problema: Para 5 figuras, Imprimir el area y el perímetro de cada una de ellas, las figuras pueden ser triángulos o rectángulos; los datos de cada una de las figuras es el número de lados y en caso de ser rectángulo el largo y ancho; en caso de ser tríangulo, los datos son los valores de los tres lados y la alutura. Recordando de la clase anterior, que una técnica muy generalizada para resolver problemas o actividades complicadas es dividir el problema en pequeños problemas fáciles de solucionar, siempre será más fácil solucionar un problema pequeño que uno grande. Y , en caso de que las pequeñas actividades o problemas siguen siendo difíciles de solucionar, entonces se deberán subdividir nuevamente hasta que se puedan solucionar fácilmente. El problema que nos preocupa, es para 5 figuras que pueden ser triángulos o rectángulos, primero resolvamos para un rectángulo y posteriormente lo solucionamos para un triángulo y por último para los 5. Aclaremos:

Planteamiento del problema: Calcular el perímetro y el area de cada una de 5 figuras que pueden ser tríangulos o rectángulos.

Datos: Los datos para resolver el problema son: el número de lados, y los datos correspondientes; si es rectángulolargo y ancho y, si es tríangulo los tres valores de los datos y la altura.

Los resultados: Escribir el perímetro y el área de cada una de las 5

figuras.

Page 36: UNIVERSIDAD NACIONAL AUTONOMA DE MEXICO COLEGIO DE ... · 3. Construye el algoritmo, el diagrama de flujo y el seudocódigo para los problemas planteados. 4. Realiza la prueba de

Vlle Mayo 2012 36

El procedimiento que se debe realizar:

Determinar cuantos lados tiene la figura, ya que en base a la figura

necesitamos los datos y fórmula para calcular el perímetro y el área.

Si la figura tiene cuatro lados, es decir es un rectángulo:

o Obtener el valor del largo (L) y ancho (A)

o Calcular el PERIMETRO= 2*(L+A)

o Calcular el AREA= L*A

o Imprimir el perímetro y el área.

Si la figura tiene tres lados, es decir es un tríangulo:

o Obtener el valor de los tres lados (L1, L2, BASE) y el valor de

la altura (H)

o Calcular el PERÍMETRO= L1+L2+BASE

o Calcular el AREA= (BASE*H)/2

o Imprimir el perímetro y el área.

El seudocódigo correspondiente es el siguiente:

Leer el numero de lados: LADOS

Si el número de lados es 4:

Leer el valor del Largo (L) y Ancho (A)

Calcular el PERIMETRO = 2*(L +A)

Calcular el AREA = L*A

Imprimir el PERIMETRO y el AREA

Fin del Si para 4

Si el número de lados es 3:

Leer el valor de los lados (L1,L2 y BASE) y el de la altura(H)

Calcular el PERÍMETRO= L1+L2+BASE

Calcular el AREA= (BASE*H)/2

Imprimir el PERÍMETRO y el AREA.

Fin del si para 3

Fin del algoritmo.

Page 37: UNIVERSIDAD NACIONAL AUTONOMA DE MEXICO COLEGIO DE ... · 3. Construye el algoritmo, el diagrama de flujo y el seudocódigo para los problemas planteados. 4. Realiza la prueba de

Vlle Mayo 2012 37

Ahora presentamos el diagrama de flujo

Veamos que resultados tendríamos, en el caso de introducir los datos: 4,7,5

inicio

Lados

FIN

Lados = 4

SI

NO L,A

PER 2*(L+A)

AREA L*A

L1, L2, BASE, H

PER, AREA

PER L1+L2+BASE

AREA (BASE*H)/2

PER, AREA

Page 38: UNIVERSIDAD NACIONAL AUTONOMA DE MEXICO COLEGIO DE ... · 3. Construye el algoritmo, el diagrama de flujo y el seudocódigo para los problemas planteados. 4. Realiza la prueba de

Vlle Mayo 2012 38

Bloque /Instrucción

Afecta la variable Lados ¿Lados=4? L A L1 L2 BASE H PER AREA

1 4 2 SI 3 7 5 4 24 5 35

Los resultados serían: 24, 35 ¿Que resultados tendríamos?, en el caso de introducir los datos: 3, 3.5, 3.5, 3, 3.2

Bloque /Instrucción

Afecta la variable Lados ¿Lados=4? L A L1 L2 BASE H PER AREA

1 3 2 NO 3 3.5 3.5 3 3.2 4 10 5 4.8

Los resultados serían 10, 4.8 Por lo que en ambos casos obtuvimos resultados correctos, y como tenemos resuelto el problema para una figura, ahora debemos modificar el algoritmo de manera que realice la solución para 5 figuras. Como en el ejemplo de la clase anterior, la solución requiere de una variable que nos sirva de CONTADOR, para que cuente cuantas veces lo ha realizado y cuando ya sean 5 veces deberá terminar. La variable CONTADOR, es una variable, por ejemplo C, que deberá cambiar su valor aumentando en 1, el valor anterior empezando en cero (0). Esto lo podemos expresar con:

C=0 (para indicar que empiece en cero) C=C +1 (el valor de C es el resultado de sumarle 1 al valor anterior de C)

Por supuesto que C = 0 se deberá realizar una sola vez y al principio, en cambio la instrucción de C = C+1 se deberá realizar varias veces, hasta llegar a 5. Ahora presentamos el diagrama de flujo Observe que solo aparece un bloque de resultados y que el bloque de decisión señala que debe terminar cuando C=5.

Page 39: UNIVERSIDAD NACIONAL AUTONOMA DE MEXICO COLEGIO DE ... · 3. Construye el algoritmo, el diagrama de flujo y el seudocódigo para los problemas planteados. 4. Realiza la prueba de

Vlle Mayo 2012 39

inicio

C 0

C C + 1

FIN

SI

NO

Lados

Lados = 4 SI

NO L,A

L1, L2, BASE, H PER 2*(L+A)

AREA L*A PER L1+L2+BASE

AREA (BASE*H)/2

PER, AREA

C = 5

Page 40: UNIVERSIDAD NACIONAL AUTONOMA DE MEXICO COLEGIO DE ... · 3. Construye el algoritmo, el diagrama de flujo y el seudocódigo para los problemas planteados. 4. Realiza la prueba de

Vlle Mayo 2012 40

Para realizar la prueba de escritorio serán necesarios los datos de 5 figuras d) 4,7,5 e) 3, 3.5, 3.5, 3, 3.2 f) 4, 9, 6 g) 4,8,2 h) 7, 9, 5

Pero solo lo comprobaremos para los 3 primeros, por lo que supondremos que el diagrama indica C = 3 , en lugar de C = 5 y Veamos que resultados tendríamos

Bloque /

Instrucción

Afecta la variable Lados

¿Lados =4?

L A L1

L2

BASE

H

PER AREA C

¿C= 3?

1 0 2 4 3 SI 4 7 5 5 24 6 35 7 24,35 8 1 9 NO

10 (2) 3 11(3) NO

12 3.5 3.5 3 3.2 13 10 14 4.8 15 10,4.8 16 2 17 NO

18(2) 4 19(3) SI

20 9 6 21 30 22 54 23 30,54 24 3 25 SI

Los resultados serían en el paso 7, 15 y 23: 24, 35 10, 4.8 Y 30, 54 Y terminaría, considerando los datos previstos y proporcionando los resultados correctos.

Page 41: UNIVERSIDAD NACIONAL AUTONOMA DE MEXICO COLEGIO DE ... · 3. Construye el algoritmo, el diagrama de flujo y el seudocódigo para los problemas planteados. 4. Realiza la prueba de

Vlle Mayo 2012 41

Clase 7: Refinación y prueba de escritorio. Aprendizaje:

Identifica los elementos que intervienen en los problemas y las relaciones entre ellos para obtener los resultados.

Realiza la prueba de escritorio de los algoritmos desarrollados. Temática: 3. Expresiones y operadores

3.1 Asignación 3.2 Operadores aritméticos 3.3 Operadores relacionales 3.4 Operadores lógicos 3.5 Precedencia de operadores y evaluación de expresiones

Desarrollo. Las expresiones y operadores nos permiten realizar cálculos, es decir procesar los datos para convertirlos en resultados que queremos nos proporcione la computadora; para ello contamos con los operadores aritméticos, relacionales, y lógicos y los ponemos en una asignación.

Operadores Aritméticos

Operadores Relacionales

Operadores Lógicos

Operador símbolo Operador símbolo Operador Símbolo suma + Menor que < Y (and) ^ resta - Menor o igual <= conjunción multiplicación * Mayor que > O (or) V División real / Mayor o igual >= Disyunción Division entera

Div Diferente <> Negación ~ NO

módulo Mod Igual = Exponente **

El formato general de una asignación es:

variable expresión

y como expresión podemos poner una constante una variable o una expresión algebraica. Para evaluar la expresión debemos respetar la jerarquía en el orden de aplicación, es decir, debemos aplicar primero el operador de mayor jerarquía, resolver esa operación y así sucesivamente con los siguientes operadores.

Page 42: UNIVERSIDAD NACIONAL AUTONOMA DE MEXICO COLEGIO DE ... · 3. Construye el algoritmo, el diagrama de flujo y el seudocódigo para los problemas planteados. 4. Realiza la prueba de

Vlle Mayo 2012 42

Veamos que resultado dan los alumnos y luego damos el correcto. Ejemplos

Expresión Proceso Resultado a 7 A toma el valor de 7 A = 7 b a*10 B toma como valor el resultado de

multiplicar a por 10 B = 70

x a/2 X toma como valor el resultado de dividir (real) a entre 2

X= 3.5

ya div 2 Y toma como valor el resultado de dividir a (entera) entre 2

Y = 3

C a mod 2 C toma como valor el resultado el residuo de dividir (entera) a entre 2

C= 1

D x-y D toma como valor el resultado de restar y del valor de x

D = 0.5

E a+x*10 E toma como valor el resultado de multiplicar x*10 y sumarle a

E = 42

F (a + x)*10 F toma como valor el resultado de dividir a entre 2

F = 105

G a +y +2*c/3 G toma como valor el resultado de multiplicar 2 por c dividir entre 3 y luego sumar a + y

G = 10.666667

H (a+y+2*c)/3 H toma como valor el resultado de multiplicar 2 por c, sumarle a +y y luego dividir entre 3

H = 4

J (a+y)/(y-c) J toma como valor el resultado de dividir la suma de a+y entre la resta de y-c

J= 5

Perim 2*(h+a) Perim toma como valor el resultado de multiplicar 2 por la suma de h+a

Perim = 22

Perim 2* h +a Perim toma como valor el resultado de multiplicar 2 por h y luego sumarle a

Perim = 15

Perim a + 2* h Perim toma como valor el resultado de multiplicar 2 por h y luego sumarle a

Perim = 15

Perim (a+ 2)* h Perim toma como valor el resultado de sumar 2 +a y luego multiplicar por h

Perim = 36

K ((a-j)+h)/y K toma como valor el resultado de dividir el resultado de (restar a-j y sumarle h) entre y

K = 2

L (a-j+h)/y L toma como valor el resultado de dividir el resultado de (restar a-j y sumarle h ) entre y

K = 2

Page 43: UNIVERSIDAD NACIONAL AUTONOMA DE MEXICO COLEGIO DE ... · 3. Construye el algoritmo, el diagrama de flujo y el seudocódigo para los problemas planteados. 4. Realiza la prueba de

Vlle Mayo 2012 43

Las expresiones deben escribirse en una línea, para que la computadora pueda evaluarlas, por ejemplo la expresión:

2)( haBarea

debe escribirse en una sola línea, indicando claramente las operaciones que queremos realizar, quedando de la siguiente manera

area ( ( B+a) *h) / 2 La computadora examina toda la expresión en varias ocasiones y va evaluando cada componente de acuerdo a la prioridad que tienen los operadores aritméticos y son los siguientes:

1. Operaciones entre paréntesis. Primero busca lo que está entre paréntesis y lo evalúa. En caso de que haya paréntesis anidados, primero se evalúa las expresiones que se encuentran en los paréntesis más internos y a continuación los más externos, los paréntesis no indican multiplicación solo agrupamiento y precedencia.

2. Multiplicación, división y módulo. Después de los paréntesis, evalúa las operaciones de multiplicación, división y módulo lo que aparezca primero de izquierda a derecha. La multiplicación y la división tienen el mismo nivel de precedencia.

3. Suma y resta. Estas operaciones se realizan al final, ya que tienen el más bajo nivel de precedencia; se realiza primero la que se encuentre de izquierda a derecha.

En la siguiente tabla se presenta la jerarquía de los operadores:

Jerarquía de Operadores aritméticos Operador Jerarquía Operación

** Primera (mayor) Exponente *,/,mod,div segunda Multiplicación,división,

Módulo, división entera

+,- Tercera (menor) Suma, resta Veamos otros ejemplos y la forma de evaluarlos, indicando la operación que se realiza en cada caso y como queda la expresión. ¿Que resultado dan los alumnos al pedirles que deben: Evaluar la siguiente expresión: 15/2*( 7+(68-15*33+(45**2/16)/3)/15)+19? Después de que nos den el resultado, comprobemos el procedimiento y resultado correcto.

Page 44: UNIVERSIDAD NACIONAL AUTONOMA DE MEXICO COLEGIO DE ... · 3. Construye el algoritmo, el diagrama de flujo y el seudocódigo para los problemas planteados. 4. Realiza la prueba de

Vlle Mayo 2012 44

Expresión Operación que se realiza 15/2*( 7+(68-15*33+(45**2/16)/3)/15)+19 45**2 =2025 15/2*( 7+(68-15*33+(2025 /16)/3)/15)+19 2025/16 = 126.5625 15/2*( 7+(68-15*33+126.5625 /3)/15)+19 5*33 = 495 15/2*( 7+(68- 495 +126.5625 /3)/15)+19 126.5625 /3= 42.1875 15/2*( 7+(68- 495 + 42.1875 )/15)+19 68- 495 = -427 15/2*( 7+( -427 + 42.1875 )/15)+19 -427+42.1875=-384.8125 15/2* ( 7+ - 384.8125 /15) +19 -384.8125/15= -25.654166 15/2* ( 7 + -25.654166 ) +19 7+ -25.654166= -18.654166 15/2 * -18.654166 +19 15/2 = 7.5 7.5 * -18.654166 +19 7.5 *-18.654166 = -139.90624 -139.90624 +19 -139.90624+19 = -120.90624 -120.90624 Evaluemos la expresión: 3*4*(18 mod 2**3) div 5 * 10 – 28 ¿Qué resultado obtienen los alumnos?, ¿El orden en que realizaron las operaciones fue el siguiente?

Expresión Operación que se realiza 3*4*(18 mod 2**3) div 5 * 10 - 28 2**3 = 8 3*4*(18 mod 8) div 5 * 10 - 28 18 mod 8 = 2 3 * 4 * 2 div 5 * 10 -28 3*4=12 12 * 2 div 5 *10-28 12*2=24 24 div 5 * 10 -28 24 div 5 = 4 4 * 10 -28 4*10= 40 40 - 28 40-28= 12 12 Por último vamos a evaluar la expresión 19-2+ (4+(8-5*3+5**2/ (8/4) ) /3) * 9. Y comprobar que el resultado y el proceso es el correcto.

Expresión Operación que se realiza 19-2+(4+(8-5*3+5**2 / (8/4) ) /3) *9 8/4= 2 19-2+ (4+(8-5*3+ 5**2 / 2 ) /3) *9 5**2=25 19-2+(4 + ( 8-5 *3 + 25 /2 ) /3) *9 5*3= 15 19-2+(4 + ( 8-15 +25 / 2) / 3 ) *9 25/2=12.5 19-2+(4 + (8-15+12.5 ) / 3 ) *9 8-15= -7 19-2+(4 + ( -7 +12.5) / 3) *9 -7 +12.5= 5.5 19-2+(4 + 5.5 / 3 ) *9 5.5/3= 1.83333 19-2+( 4 + 1.83333)*9 4+1.83333 19-2+5.83333 *9 5.83333 *9= 52.49997 19-2+52.49997 19-2=17 17+ 52.49997 17+52.49997 69.49997

Page 45: UNIVERSIDAD NACIONAL AUTONOMA DE MEXICO COLEGIO DE ... · 3. Construye el algoritmo, el diagrama de flujo y el seudocódigo para los problemas planteados. 4. Realiza la prueba de

Vlle Mayo 2012 45

Expresiones con operadores relacionales. Los operadores relacionales permiten hacer comparaciones entre números, alfanuméricos, constantes o variables. El resultado de una expresión con operadores relacionales es verdadero o falso.

Ejemplos con operadores relacionales Expresión Proceso Resultado “FELICIDADES” = “felicidad” Se verifica que las 2 palabras sean iguales Falso “FELICIDADES”<> “felicidad” Se revisa que las 2 palabras sean

diferentes Verdadero

4< 8 Se verifica si 4 es menor que 8 Verdadero 4>8 Se verifica que 4 es mayor que 8 Falso

(7**2) < (15*2) Se evalúa 7**2=49, se evalúa 15*2=30, y, se verifica si 49 es menor que 30

Falso

(3*5+4**2-1)>=(3**2+(4+3)*6) Se evalúa (3*5+4**2-1)=30, se evalúa (3**2+(4+3)*6)=51y se comprueba se 30 es mayor o igual a 51

Falso

Expresiones Lógicas. También son llamadas expresiones booleanas, en honor al matemático George Boole y pueden ser constituidas por números, constantes, variables, operadores relacionales o lógicos y el valor que resulta solo puede ser verdadero (cierto) o falso. Estas expresiones suelen aparecer en un bloque de decisión, donde depende del resultado de la evaluación se realizan unas operaciones u otras. Cuando intervienen los diferentes tipos de operadores, se evalúan las expresiones conforme la siguiente tabla de jerarquía de operadores.

Jerarquía de Operadores aritméticos Operador Jerarquía Operacion Ejemplo Resultado

( ) Primera (mayor)

Agrupar (2+3)*4 20

** segunda Exponente 7**3 343 *,/,div,mod tercera Aritmética 5 mod 2 1

=,<>,<,>,<=,>= Cuarta Relacional 5 > 3 Falso No ( not, ~, ) Quinta Negación ~ (5>3) Cierto

Y (and, ) Sexta conjunción Cierto falso Falso O (or, ) Septima

(menor) disyunción Cierto falso cierto

Page 46: UNIVERSIDAD NACIONAL AUTONOMA DE MEXICO COLEGIO DE ... · 3. Construye el algoritmo, el diagrama de flujo y el seudocódigo para los problemas planteados. 4. Realiza la prueba de

Vlle Mayo 2012 46

Los paréntesis, en realidad sirven para indicar mayor prioridad a una operación y cuando se utilizan los operadores de relación con operadores lógicos, falso es menor que verdadero. La tabla de verdad de los operadores lógicos se muestra a continuación y representamos a cierto con el valor 1 y falso con el valor cero.

Tabla de verdad de los Operadores lógicos

p q ~p ~q pq p q 0 0 1 1 0 0 0 1 1 0 0 1 1 0 0 1 0 1 1 1 0 0 1 1

Continuación presentamos un ejemplo de expresión con varios tipos de operadores y su evaluación Evaluar la expresión: (15>=7*3**2 Y 8>3 Y 15>6) O NO (7*3<5+12*2 DIV 3**2) ¿Que resultado obtienen los alumnos? ¿Es igual al siguiente?

Expresión Operación que se realiza (15>=7*3**2 Y 8>3 Y 15>6)O NO(7*3<5+12*2 DIV 3**2) 3**2 = 9 (15>=7* 9 Y 8>3 Y 15>6)O NO(7*3<5+12*2 DIV 3**2) 7*9 = 63 (15>=63 Y 8>3 Y 15>6)O NO(7*3<5+12*2 DIV 3**2) ¿15>=63? falso (falso Y 8>3 Y 15>6)O NO(7*3<5+12*2 DIV 3**2) ¿8>3? cierto (falso Y cierto Y 15>6)O NO(7*3<5+12*2 DIV 3**2) ¿15>6? cierto (falso Y cierto Y cierto)O NO(7*3<5+12*2 DIV 3**2) Falso Y cierto falso (falso Y cierto)O NO(7*3<5+12*2 DIV 3**2) Falso Y ciero falso Falso O NO(7*3<5+12*2 DIV 3**2) 3**2 = 9 Falso O NO (7*3<5+12*2 DIV 9) 7*3 = 21 Falso O NO( 21<5+12*2 DIV 9) 12*2 = 24 Falso O NO (21<5+24 DIV 9) 24 DIV 9 = 2 Falso O NO (21<5+2) 5+2 = 7 Falso O NO( 21<7) ¿21<7? falso Falso O NO (falso) NO(falso) cierto Falso O cierto Falso o cierto cierto Cierto Recuerde que cuando se utilizan los operadores de relación con operadores lógicos, falso es menor que verdadero. No se puede realizar la comparación entre un valor lógico y un numérico, utilizando un operador relacional, por ejemplo: ¿cierto >15?

Page 47: UNIVERSIDAD NACIONAL AUTONOMA DE MEXICO COLEGIO DE ... · 3. Construye el algoritmo, el diagrama de flujo y el seudocódigo para los problemas planteados. 4. Realiza la prueba de

Vlle Mayo 2012 47

Clase 8: Solución y prueba de escritorio. Aprendizaje:

Construye el algoritmo, el diagrama de flujo y el seudocódigo para los problemas planteados.

Realiza la prueba de escritorio de los algoritmos desarrollados. Desarrollo. Resolvamos el Problema: Imprimir un mensaje de optimismo para los signos zodiacales de ARIES, CÁNCER y ACUARIO y el mensaje de “Se feliz y disfruta al máximo este día” en caso de ser otro signo; los datos son los nombres de los signos zodiacales de 5 personas. El problema que nos preocupa, es para 5 personas que pueden ser del signo ARIES, ACUARIO CÁNCER ó cualquiera de los demás signos, primero resolvamos para cada uno de los primeros tres casos y luego para todos loa demás signos, y por último para los 5. Aclaremos:

Planteamiento del problema: Imprimir un mensaje de optimismo para los signos de ARIES, CÁNCER y ACUARIO y el mensaje “Se feliz y disfruta al máximo este día” para 5 personas diferentes.

Datos: Los datos para resolver el problema son: el signo de las personas

Los resultados: Escribir el mensaje correspondiente al signo zodiacal de

cada una de 5 personas.

El procedimiento que se debe realizar:

Conocer el signo zodiacal de la persona.

Si el signo es ARIES:

o Imprimir el mensaje: “Felicidades eres ARIES y tienes mucho

que lograr”.

Si el signo es CANCER:

Page 48: UNIVERSIDAD NACIONAL AUTONOMA DE MEXICO COLEGIO DE ... · 3. Construye el algoritmo, el diagrama de flujo y el seudocódigo para los problemas planteados. 4. Realiza la prueba de

Vlle Mayo 2012 48

o Imprimir el mensaje: “Los CÁNCER están siempre optimistas

para lograr lo mejor “.

Si el signo es ACUARIO:

o Imprimir el mensaje: “El ACUARIO ofrece su simpatía y ayuda

por eso son lo máximo “.

Si el signo no es ninguno de los tres anteriores entonces

o Imprimir el mensaje: “Se feliz y disfruta al máximo este día”

El seudocódigo correspondiente es el siguiente:

Leer el signo zodiacal: SIGNO

Si el SIGNO es “ARIES”:

Imprimir el mensaje: “Felicidades eres ARIES y tienes mucho

que lograr”.

De lo contrario

Si el SIGNO es “CÁNCER”:

Imprimir el mensaje: “Los CÁNCER están siempre

optimistas para lograr lo mejor “.

De lo contrario

Si el SIGNO es “ACUARIO”:

Imprimir el mensaje: “El ACUARIO ofrece su simpatía y

ayuda por eso son lo máximo “.

De lo contrario

Imprimir el mensaje “Se feliz y disfruta al máximo este

día”

Fin del algoritmo.

Ahora presentamos el diagrama de flujo

Page 49: UNIVERSIDAD NACIONAL AUTONOMA DE MEXICO COLEGIO DE ... · 3. Construye el algoritmo, el diagrama de flujo y el seudocódigo para los problemas planteados. 4. Realiza la prueba de

Vlle Mayo 2012 49

El diagrama solo realiza el tratamiento para un solo signo, ahora lo tendremos que modificar para que se realice 5 veces. Como en los problemas anteriores, será necesario introducir una variable que sirva de contador, por ejemplo C, darle un valor inicial de cero al principio y aumentarle 1 cada vez que se realice el análisis y tratamiento de un caso y terminar cuando el contador indique que se han realizado 5 veces. Es decir, debera aumentarse la asignación c0 al inicio y después la asignación C C +1 y por último la decisión para que cuando C= 5 se de por terminado el proceso. Por supuesto que C 0 se deberá realizar una sola vez y al principio, en cambio la instrucción de C C+1 se deberá realizar varias veces, hasta llegar a 5. Veamos el Diagrama modificado

inicio

signo

FIN

SIGNO=”ARIES” SI

NO

“Felicidades, eres ARIES …”

SIGNO=”CANCER” “Los CANCER estan … “

si

SIGNO = “ACUARIO” “El ACUARIO ofrece … “

NO SI

NO “SE FELIZ Y DISFRUTA AL MAXIMO … “

Page 50: UNIVERSIDAD NACIONAL AUTONOMA DE MEXICO COLEGIO DE ... · 3. Construye el algoritmo, el diagrama de flujo y el seudocódigo para los problemas planteados. 4. Realiza la prueba de

Vlle Mayo 2012 50

Inicio

signo

FIN

SIGNO=”ARIES” SI

NO

“Felicidades, eres ARIES …”

SIGNO=”CANCER” “Los CANCER estan … “

si

SIGNO = “ACUARIO” “El ACUARIO ofrece … “

NO SI

NO “SE FELIZ Y DISFRUTA AL MAXIMO … “

C 0

C C + 1

C = 5

SI

NO

Page 51: UNIVERSIDAD NACIONAL AUTONOMA DE MEXICO COLEGIO DE ... · 3. Construye el algoritmo, el diagrama de flujo y el seudocódigo para los problemas planteados. 4. Realiza la prueba de

Vlle Mayo 2012 51

Para realizar la prueba de escritorio serán necesarios los datos de 5 signos: a) CANCER b) ARIES c) ACUARIO d) TAURO e) ARIES

Bloque /

Instrucción Afecta a la variable

C SIGNO Signo = “aries”

Signo= ”cancer”

Signo = “acuario”

¿C=5?

1 0 2 cancer 3 No 4 Si 5 “Los CÁNCER están siempre optimistas

para lograr lo mejor “.

6 1 7 No

8 (2) Aries 9 (3) Si 10 “Felicidades eres ARIES y tienes mucho

que lograr”.

11 2 12 No

13 (2) Acuario 14(3) No

15 No 16 Si 17 “El ACUARIO ofrece su simpatía y ayuda

por eso son lo máximo “.

18 3 19 No

20 (2) Tauro 21 (3) No

22 No 23 No 24 “Se feliz y disfruta al máximo este día”

25 4 26 No

27 (2) Aries 28 Si 29 “Felicidades eres ARIES y tienes mucho

que lograr”.

30 5 31 Si

Page 52: UNIVERSIDAD NACIONAL AUTONOMA DE MEXICO COLEGIO DE ... · 3. Construye el algoritmo, el diagrama de flujo y el seudocódigo para los problemas planteados. 4. Realiza la prueba de

Vlle Mayo 2012 52

Por lo que se imprimiría como resultados En el paso 5: “Los CÁNCER están siempre optimistas para lograr lo mejor “.

En el paso 10: “Felicidades eres ARIES y tienes mucho que lograr”.

En el paso 17: “El ACUARIO ofrece su simpatía y ayuda por eso son lo máximo “.

En el paso 24: “Se feliz y disfruta al máximo este día”

En el paso 29: “Felicidades eres ARIES y tienes mucho que lograr”.

Y terminaría, considerando los datos previstos y proporcionando los resultados correctos. Ejercicios para que resuelvan los alumnos Elaborar el Diagrama de Flujo y la prueba de escritorio para: 1. Generalizar el problema de manera que se puedan imprimir mensajes diferentes

para los 12 signos del zodiaco.

2. Modificar el problema para que además del mensaje se indique el color de la

suerte de cada uno de los signos.

3. Modificar el problema para que no se realice 5 veces, sino que se termine hasta

que se indique como signo la palabra FIN, en lugar de alguno de los signos

del zodiaco.

Page 53: UNIVERSIDAD NACIONAL AUTONOMA DE MEXICO COLEGIO DE ... · 3. Construye el algoritmo, el diagrama de flujo y el seudocódigo para los problemas planteados. 4. Realiza la prueba de

Vlle Mayo 2012 53

Clase 9: Solución y prueba de escritorio. Aprendizaje:

Construye el algoritmo, el diagrama de flujo y el seudocódigo para los problemas planteados.

Realiza la prueba de escritorio de los algoritmos desarrollados. Desarrollo. Resolvamos el Problema: Suponga que se desea simular un cajero automático de manera que realice las siguientes acciones:

a) solicitar el número de cuenta b) solicitar el saldo que tiene depositado en el banco. c) solicitar indique cual es la operación que desea realizar Depósito (D),

Retiro(R), o Consulta ( c ). En el caso de que la operación que se indique sea D (Depósito), se le

solicitará que indique la cantidad que desea depositar y deberá actualizar el saldo aumentándolo con la cantidad depositada.

En el caso de que la operación que se indique sea R (Retiro), se le solicitará que indique la cantidad que desea retirar, si la cantidad a retirar es mayor del saldo deberá indicar el mensaje “LO SENTIMOS, LA CANTIDAD SOLICITADA, NO ESTA DISPONIBLE”. En caso de que la cantidad que desea retirar es menor a la cantidad que se tiene como saldo, se actualizará el saldo restándole la cantidad que retira.

En el caso de que la operación que se indique sea C (consulta), se mostrará el saldo que tiene.

d) El cliente podrá realizar varias operaciones, (depósito, retiro, saldo, retiro) hasta que indique que ya no quiere realizar ninguna operación, momento en que se dará por terminado el problema.

e) Al final mostrar el número de cuenta y el saldo. Aclaremos:

Planteamiento del problema: Simular un cajero bancario donde se puede depositar, retirar y consultar el saldo, hasta que el usuario indique que ya no quiere realizar otra operación. Al iniciar debe dar su número de cuenta y el saldo inicial.

Datos: Los datos para resolver el problema son: el número de la cuenta

(CTA), el saldo inicial (SALDO), la operación que quiere realizar (OPER), decir si quiere otra operación (OTRA)

Page 54: UNIVERSIDAD NACIONAL AUTONOMA DE MEXICO COLEGIO DE ... · 3. Construye el algoritmo, el diagrama de flujo y el seudocódigo para los problemas planteados. 4. Realiza la prueba de

Vlle Mayo 2012 54

Los resultados: Depende de la operación, actualizar el saldo, mostrar el saldo, mostrar mensaje y al final mostrar el número de cuenta y el saldo.

El procedimiento que se debe realizar:

Conocer el número de cuenta de la persona (CTA).

Conocer el saldo inicial (saldo).

Conocer la operación que desea realizar (OPER).

o Si la operación es D (Depósito):

Conocer la cantidad que desea ingresar (CANT)

Actualizar el saldo, aumentando la cantidad depositada.

o Si la operación es R (Retiro):

Conocer la cantidad a retirar (CANT)

Si la cantidad a retirar es menor del saldo, actualizar el

saldo, restando la cantidad del saldo.

Si la cantidad es mayor del saldo, mostrar el mensaje

“Lo sentimos, la cantidad no está disponible”.

o Si la operación es C (consulta):

Mostrar el número de cuenta y el saldo.

Conocer si quiere realizar otra operación (OTRA)

o Si la respuesta es Si, regresar para conocer que operación

quiere realizar.

o Si la respuesta es No, Ir al final del proceso

Si se da por terminado el proceso,

o Imprimir el número de cuenta.

o Imprimir el saldo actual.

El diagrama deberá dar oportunidad de repetir los pasos 3 y 4 hasta que la respuesta sea NO, por lo que la condición para terminar deberá considerar la respuesta, en este caso no se realizará un número de veces predeterminado por lo que no es necesario una variable como contador, pero la variable respuesta será la que determine si se repiten las instrucciones o se termina el proceso. Veamos el Diagrama de flujo

Page 55: UNIVERSIDAD NACIONAL AUTONOMA DE MEXICO COLEGIO DE ... · 3. Construye el algoritmo, el diagrama de flujo y el seudocódigo para los problemas planteados. 4. Realiza la prueba de

Vlle Mayo 2012 55

Inicio

OPER

FIN

OPER = ”D” SI

NO

OPER =”R” si

CANT < SALDO NO SI

NO

“LO SENTIMOS LA CANTIDAD NO ESTA DISPONIBLE”

OTRA = “SI” SI

NO

CTA

SALDO

OTRA

CANT SALDO SALDO+CANT

CANT

SALDO SALDO - CANT

OPER = “C” SI SALDO

CTA, SALDO NO

Page 56: UNIVERSIDAD NACIONAL AUTONOMA DE MEXICO COLEGIO DE ... · 3. Construye el algoritmo, el diagrama de flujo y el seudocódigo para los problemas planteados. 4. Realiza la prueba de

Vlle Mayo 2012 56

Para realizar la prueba de escritorio serán necesarios los datos de CUENTA, SALDO, OPER, CANT, OTRA, por ejemplo:

110001 15000 D 300 SI C SI R 2500 NO

Afecta a la variable BLOQUE

CTA SALDO OPER

OPER=”D”

OPER=”R”

OPER=”C”

CANT CANT<SALDO

OTRA OTRA=”SI”

1 110001 2 15000 3 D 4 SI 5 300 6 15300 7 SI 8 SI

9 (3) C 10 NO 11 NO 12 SI 13* 14 SI 15 SI

16(3 R 17 NO 18 SI 19 2500 20 SI 21 12800 22 NO 23 NO 24* 25

Los resultados que se obtienen En el paso 13: 15300 En el paso 24: 10001, 12800

Page 57: UNIVERSIDAD NACIONAL AUTONOMA DE MEXICO COLEGIO DE ... · 3. Construye el algoritmo, el diagrama de flujo y el seudocódigo para los problemas planteados. 4. Realiza la prueba de

Vlle Mayo 2012 57

Y terminaría, considerando los datos previstos y proporcionando los resultados correctos. Ejercicios para que resuelvan los alumnos

1. ¿Qué sucede si se teclea cualquier letra diferente a D, R o C como operación?

2. ¿Qué sucede si se teclea d en lugar de D? 3. ¿Qué sucede si se teclea la cantidad IGUAL al valor de SALDO? 4. ¿Qué sucede si se teclea OTRA respuesta que no sea Si o NO? 5. ¿Cómo se modifica el diagrama para que el resultado en el paso 13 en

lugar de ser: 15300 fuera: SALDO = 15300? 6. ¿Cómo se modifica el diagrama para que el resultado en el paso 24 en

lugar de ser: 110001, 12800 fuera: La Cuenta número: 110001 tiene un SALDO de 12800?

7. ¿Cómo se modifica el diagrama para que fuera igual poner d o D para Depósito, r o R para Retiro y c o C para consulta?

Elaborar el Diagrama de Flujo y la prueba de escritorio para: 1. Generalizar el problema de manera que se puedan manejar a 3 personas

diferentes indicando el nombre, número de cuenta y saldo inicial al principio.

2. Modificar el problema para que además del mensaje: “Lo sentimos la cantidad

no esta disponible”, se le de opción de retirar otra cantidad.

3. Generalizar el problema para que se realice para varias personas y que se

termine hasta que se indique como nombre la palabra FIN.

Page 58: UNIVERSIDAD NACIONAL AUTONOMA DE MEXICO COLEGIO DE ... · 3. Construye el algoritmo, el diagrama de flujo y el seudocódigo para los problemas planteados. 4. Realiza la prueba de

Vlle Mayo 2012 58

Clase 10: Solución y prueba de escritorio. Aprendizaje:

Construye el algoritmo, el diagrama de flujo y el seudocódigo para los problemas planteados.

Realiza la prueba de escritorio de los algoritmos desarrollados. Desarrollo. Resolvamos el Problema: Indicar el total a pagar de las compras realizadas, de cada uno de los clientes; se desea simular el cajero de una tienda de manera que realice las siguientes acciones:

a) registrar el nombre del producto b) registrar el precio unitario del producto c) registrar el número de productos d) calcular el monto a pagar e) en caso de que el comprador lleve otro producto, regresar al paso a) f) como consideración especial, si el total a pagar es > 1000 se le otorgará

un descuento del 10% g) Si se tiene descuento, indicarlo con un mensaje y el monto del

descuento. h) indicar el monto a pagar y el número de artículos comprados i) si hay otro cliente regresar al paso a) j) si no hay más clientes, se dará por terminado el problema.

Aclaremos:

Planteamiento del problema: El problema consiste en calcular el monto a pagar de las compras

realizadas por cada cliente de una tienda. Para calcular el pago es necesario conocer el artículo, precio unitario y el

número de artículos para cada uno de los artículos que compró un cliente.

Para aplicar la consideración especial se deberá tener un total a pagar mayor a 1000 pesos, y consiste en rebajarle el 10% al total.

El proceso se deberá repetir para cada uno de los clientes hasta que ya no haya clientes.

Datos: Los datos para resolver el problema son: el nombre del artículo

(NOM), precio unitario (PRECIO), el número de artículos (CANT), si compro otro artículo (OTRO), si hay otro cliente (CLIENTE).

Page 59: UNIVERSIDAD NACIONAL AUTONOMA DE MEXICO COLEGIO DE ... · 3. Construye el algoritmo, el diagrama de flujo y el seudocódigo para los problemas planteados. 4. Realiza la prueba de

Vlle Mayo 2012 59

Los resultados: El total a pagar para cada uno de los clientes (TOTAL), mensaje en caso de tener descuento(DESC) y el número de artículos que compró (ARTS).

El procedimiento que se debe realizar:

1. Poner el contador de artículos en cero (ARTS = 0)

2. Poner el total a pagar en cero (PAGAR = 0)

3. Poner el descuento en cero ( DESC = 0)

4. Conocer el Nombre del artículo(NOM).

5. Conocer el precio del artículo (PRECIO) y la cantidad de artículos

(CANT).

6. Calcular el total por el artículo en cuestión (TOT)

7. Actualizar el total a pagar (PAGAR) con la última compra

registrada(TOT)

8. Actualizar el total de artículos (ARTS) aumentándole 1

9. Conocer si lleva otro artículo (OTRO)

o En caso de que lleve otro artículo regresar al paso 4.

o En caso de que no lleve otro artículo

Si el total a pagar (PAGAR) es >1000, mostrar el

mensaje ”adquirió un descuento de “, calcular el 10%

correspondiente al descuento (DESC ) y calcular el total

a pagar descontando el descuento.

Mostrar el total a pagar (PAGAR)

Mostrar el total de artículos adquiridos (ARTS).

o Conocer si hay otro cliente (CLIENTE)

En caso de haber otro cliente, regresar al paso 1

En caso de no haber otro cliente dar por terminado el

problema.

El diagrama deberá dar oportunidad de repetir los pasos 4,5 … 9 para cada uno de los artículos comprados hasta que sean considerado todos los artículos del cliente a tratar. Una vez terminado con un cliente, hacer el mismo proceso para otro cliente, por lo que la condición para terminar deberá considerar la opción de si hay otro cliente o no. Veamos el Diagrama de flujo

Page 60: UNIVERSIDAD NACIONAL AUTONOMA DE MEXICO COLEGIO DE ... · 3. Construye el algoritmo, el diagrama de flujo y el seudocódigo para los problemas planteados. 4. Realiza la prueba de

Vlle Mayo 2012 60

Inicio

FIN

si

PAGAR > 1000

NO

“ADQUIRIO UN DESCUENTO DE”

CLIENTE= “SI” SI

NO

PRECIO, CANT

NOM

CLIENTE

TOT PRECIO * CANT

OTRO

PAGAR PAGAR + TOT

OTRO = “SI” SI

PAGAR, ARTS

NO

ARTS 0

PAGAR 0

DESC 0

ARTS ARTS + 1

DESC PAGAR*0.10

PAGAR PAGAR*0.9

Page 61: UNIVERSIDAD NACIONAL AUTONOMA DE MEXICO COLEGIO DE ... · 3. Construye el algoritmo, el diagrama de flujo y el seudocódigo para los problemas planteados. 4. Realiza la prueba de

Vlle Mayo 2012 61

Para realizar la prueba de escritorio serán necesarios los datos de CUENTA, SALDO, OPER, CANT, OTRA, por ejemplo:

110001 15000 D 300 SI C SI R 2500 NO

Afecta a la variable BLOQUE

CTA SALDO OPER

OPER=”D”

OPER=”R”

OPER=”C”

CANT CANT<SALDO

OTRA OTRA=”SI”

1 110001 2 15000 3 D 4 SI 5 300 6 15300 7 SI 8 SI

9 (3) C 10 NO 11 NO 12 SI 13* 14 SI 15 SI

16(3 R 17 NO 18 SI 19 2500 20 SI 21 12800 22 NO 23 NO 24* 25

Los resultados que se obtienen En el paso 13: 15300 En el paso 24: 10001, 12800

Page 62: UNIVERSIDAD NACIONAL AUTONOMA DE MEXICO COLEGIO DE ... · 3. Construye el algoritmo, el diagrama de flujo y el seudocódigo para los problemas planteados. 4. Realiza la prueba de

Vlle Mayo 2012 62

Y terminaría, considerando los datos previstos y proporcionando los resultados correctos. Ejercicios para que resuelvan los alumnos

8. ¿Qué sucede si se teclea cualquier letra diferente a D, R o C como operación?

9. ¿Qué sucede si se teclea d en lugar de D? 10. ¿Qué sucede si se teclea la cantidad IGUAL al valor de SALDO? 11. ¿Qué sucede si se teclea OTRA respuesta que no sea Si o NO? 12. ¿Cómo se modifica el diagrama para que el resultado en el paso 13 en

lugar de ser: 15300 fuera: SALDO = 15300? 13. ¿Cómo se modifica el diagrama para que el resultado en el paso 24 en

lugar de ser: 110001, 12800 fuera: La Cuenta número: 110001 tiene un SALDO de 12800?

14. ¿Cómo se modifica el diagrama para que fuera igual poner d o D para Depósito, r o R para Retiro y c o C para consulta?

Elaborar el Diagrama de Flujo y la prueba de escritorio para: 1. Generalizar el problema de manera que se puedan manejar a 3 personas

diferentes indicando el nombre, número de cuenta y saldo inicial al principio.

2. Modificar el problema para que además del mensaje: “Lo sentimos la cantidad

no esta disponible”, se le de opción de retirar otra cantidad.

3. Generalizar el problema para que se realice para varias personas y que se

termine hasta que se indique como nombre la palabra FIN.