Vous êtes sur la page 1sur 28

SEGUNDO BIMESTRE

Gua didctica: Lgica de la Programacin

Inicio

Anio _n, m es_n, dia _n Anio _a, m es_a, dia _a

Solicitar ao , m es y d a d e nacim iento , va lidando que cum plan con sus va lores m xim os y m nim os

Solicitar ao , m es y d a actuales validando que cum plan con sus va lores m xim os y m nim os

dia _n > dia_a

SI

dia _a

dia_a + 30

m es_a NO

m es_a - 1

edad_d

dia _a dia _n

m es _n > m es_a

SI

m es_a

m es_a + 12

anio_a NO

_anio_a - 1

edad_m

m es_a m es_n

Figura 5.6 Diagrama de flujo parcial clculo edad. Procesando los meses

UNIVERSIDAD TCNICA PARTICULAR DE LOJA La Universidad Catlica de Loja

57

Gua didctica: Lgica de la Programacin

SEGUNDO BIMESTRE

Inicio

Anio _n, m es_n, dia _n Anio _a, m es_a, dia _a

Solicitar a o , m es y da de nacim iento , validando que cum plan co n sus v alores m xim os y m nim os

Solicitar a o , m es y da actuales va lidando que cum plan con sus v alores m xim os y m nim os

dia _n > dia_a

SI

dia _a

dia_a + 30

m es_a

m es _a - 1

NO

edad_d

dia _a dia _n

m es _n > m es_a

SI

m es_a

m es_a + 12

anio_a

_anio_a - 1

NO

edad_m

m es_a m es_n S

anio _n > a nio_a

SI

Error: La fecha de n acim iento es m ayor a la actual

NO edad_a anio _a anio_n

Edad: , edad_a, edad_m , edad_d

F in

Figura 5.7 Diagrama de flujo clculo edad

58

UNIVERSIDAD TCNICA PARTICULAR DE LOJA

La Universidad Catlica de Loja

SEGUNDO BIMESTRE

Gua didctica: Lgica de la Programacin

Una vez que hemos completado el diagrama de la figura 5.7, le invito a que ejecute algunas corridas del diagrama utilizando algunos casos de prueba para ver si el comportamiento de la solucin es correcto, es decir funciona bien para todos los casos y se ajusta a las condiciones del problema, como sugerencia para seleccionar las fechas de ingreso, considere a las siguientes: La fecha de nacimiento menor a la fecha actual (caso normal) Tanto la fecha de nacimiento, como la fecha actual exactamente iguales. (Poco usual) La fecha de nacimiento mayor que la fecha actual. (Caso errneo)

Utilice las siguientes tablas para ejecutar la corrida. Caso 1: anio_n mes_n Caso II anio_n mes_n Caso III anio_n mes_n dia_n anio_a mes_a dia_a edad_a edad_m edad_d Salida dia_n anio_a mes_a dia_a edad_a edad_m edad_d Salida dia_n anio_a mes_a dia_a edad_a edad_m edad_d Salida

Luego de haber probado el funcionamiento del diagrama de flujo, trate de responder a las siguientes interrogantes: 1. 2. 3. 4. 5. Funciona bien para todos los casos? Hay algn error de concepcin que hace que los resultados no siempre sean exactos? Hay alguna manera alterna de desarrollar el diagrama de flujo? Se puede simplificar la solucin? Hace falta algn tipo de validacin? Antes de pasar al siguiente captulo, complemente su estudio con la seccin Diagramas de flujo para casos prcticos del texto bsico.

UNIVERSIDAD TCNICA PARTICULAR DE LOJA La Universidad Catlica de Loja

59

Gua didctica: Lgica de la Programacin

SEGUNDO BIMESTRE

5.3

Ejercicios con diagramas de flujo

Para la mayora de desarrolladores y profesores de programacin, la nica manera de aprender a programar es programando, esto significa que mientras ms ejercicios resuelva mejor desarrollar las competencias requeridas, en tal virtud se ha preparado el presente apartado para ayudarle justamente a realizar ejercicios con diagramas de flujo. Podra simplemente haber colocado los ejercicios y dejar que los resuelva, pero la idea es que los desarrolle con un poco de ayuda, a manera de taller, por tanto vamos a proponer los ejercicios y a dar algunas pautas para su solucin.

EJERCICIOS 5.1 Desarrolle un diagrama de flujo para obtener el salario neto de los empleados de una empresa que ganan de acuerdo a las siguientes condiciones, la horas menores o iguales a 40 se pagan como hora normal que se introduce por teclado, las horas que exceden a las 40 se pagan como extras a 1.5 veces el valor de la hora normal. Los impuestos se deducen de acuerdo a las siguientes condiciones: si gana menos de 2000 USD, no paga impuestos, los siguiente 1500 USD pagan el 20% y el resto el 30%. Para desarrollar este ejercicio lalo detenidamente y elabore en primer lugar los enunciados correspondientes a las salidas, proceso y entradas. Enunciados para la salida 1. 2. El sueldo debe expresarse en dlares. Como resultado debe mostrarse el sueldo, los impuestos y el valor neto.

3. ______________________________________________________________ 4. ______________________________________________________________ 5. ______________________________________________________________ 6. ______________________________________________________________ 7. ______________________________________________________________

60

UNIVERSIDAD TCNICA PARTICULAR DE LOJA

La Universidad Catlica de Loja

SEGUNDO BIMESTRE

Gua didctica: Lgica de la Programacin

Enunciados para el proceso 1. El costo de horas normales se obtiene multiplicando las horas hasta 40 por el costo de cada hora ingresada.

2. ______________________________________________________________ 3. ______________________________________________________________ 4. ______________________________________________________________ 5. ______________________________________________________________ 6. ______________________________________________________________ 7. ______________________________________________________________

Enunciados para la entrada proceso -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

UNIVERSIDAD TCNICA PARTICULAR DE LOJA La Universidad Catlica de Loja

61

Gua didctica: Lgica de la Programacin

SEGUNDO BIMESTRE

Una vez que ha terminado de desarrollar los enunciados, desarrolle el diagrama de flujo empezando por los enunciados para la entrada de datos, luego para los del procesamiento y finalmente para los de la salida.

62

UNIVERSIDAD TCNICA PARTICULAR DE LOJA

La Universidad Catlica de Loja

SEGUNDO BIMESTRE

Gua didctica: Lgica de la Programacin

Luego deber realizar pruebas de escritorio, ocupe el siguiente espacio para hacerlo. Estas pruebas le permitirn determinar si el algoritmo es correcto o no, si no lo es, identifique el problema y corrija el diagrama para que arroje los resultados correctos.

UNIVERSIDAD TCNICA PARTICULAR DE LOJA La Universidad Catlica de Loja

63

Gua didctica: Lgica de la Programacin

SEGUNDO BIMESTRE

EJERCICIOS 5.2 Este ejercicio se trata de analizar un diagrama de flujo y establecer si es correcto o no con los casos de prueba planteados. Si encuentra algn problema debe corregirlo y probarlo nuevamente, de modo que se asegure de que funciona. Planteamiento del problema: Se desea desarrollar un algoritmo que permita establecer si un nmero es primo. Por definicin En matemticas, un nmero primo es un nmero natural que tiene nicamente dos divisores naturales distintos: l mismo y el 1, y adems la unidad no se considera como nmero primo7. La estrategia usada para el desarrollo se basa en la definicin y consiste en contar el nmero de divisores exactos comprendidos entre la unidad y el nmero.
In icio

num

d 2

d <= n u m

num % d = 0

SI

d E xa cto s

d E xa cto s + 1

NO d d +1

d E xa cto s = 0

SI

El num ero e s p r im o

NO

El nm ero no e s p r im o

F in

Figura 5.8 Diagrama de flujo para determinar si un nmero es primo


7. Wikipedia (2009): Numero Primo , [En lnea] Disponible en: http://es.wikipedia.org/wiki/N%C3%BAmero_primo [Consulta 25-06-2009].

64

UNIVERSIDAD TCNICA PARTICULAR DE LOJA

La Universidad Catlica de Loja

SEGUNDO BIMESTRE

Gua didctica: Lgica de la Programacin

Ahora s, manos a la obra, verifique si el diagrama de flujo funciona con los nmeros 1, 2, 4, 5, 9,11, 13, 33. Utilice el siguiente espacio para resolver la tarea propuesta: Pruebas de Escritorio num d dExactos resultado

UNIVERSIDAD TCNICA PARTICULAR DE LOJA La Universidad Catlica de Loja

65

Gua didctica: Lgica de la Programacin

SEGUNDO BIMESTRE

Si encontr el problema, utilice el siguiente espacio para proponer un diagrama que lo corrija.

66

UNIVERSIDAD TCNICA PARTICULAR DE LOJA

La Universidad Catlica de Loja

SEGUNDO BIMESTRE

Gua didctica: Lgica de la Programacin

EJERCICIOS 5.3 El propsito de ejercicio es optimizar el diagrama de modo que se reduzcan el nmero de ciclos del bucle. Para darse cuenta qu opciones hay para ello ejectelo con los mismos datos del ejercicio anterior para que analice el porqu el nmero de ciclos es alto. Hay al menos dos forma de optimizarlo.
Inicio

num

esPrim o

d <= n um

num % d = 0

SI

esPrim o

NO d d+1

esPrim o = 1

El num ero es p rim o

El nm ero no e s prim o

F in

Figura 5.9 Diagrama de flujo para verificar si un nmero es primo

UNIVERSIDAD TCNICA PARTICULAR DE LOJA La Universidad Catlica de Loja

67

Gua didctica: Lgica de la Programacin

SEGUNDO BIMESTRE

EJERCICIOS 5.4 Se desea construir un algoritmo que le permita generar una tabla de amortizacin de prstamos para lo cual se requiere calcular lo que debe pagar mensualmente hasta que termine de realizar los pagos. Los intereses siempre se pagan sobre el saldo del capital prestado, por lo tanto nunca una cuota es mayor igual que la del mes anterior. Ahora intente resolver el problema en un diagrama de flujo.

Luego de ver el problema, es probable no haya podido hacer absolutamente nada por falta de informacin, ahora Cmo se supone que debemos resolver este problema?

68

UNIVERSIDAD TCNICA PARTICULAR DE LOJA

La Universidad Catlica de Loja

SEGUNDO BIMESTRE

Gua didctica: Lgica de la Programacin

De acuerdo a lo estudiado debemos comenzar haciendo el anlisis del problema, esto es identificando y elaborando enunciados para las salidas, proceso y finalmente para las entradas. Luego podemos optar por desarrollar la miniespecificacin o directamente el diagrama de flujo.

Autoevaluacin 5
nimo, ya ha concluido la Unidad 5, slo le falta medir cunto aprendi en ella, para ello lo invito a desarrollar el examen rpido del captulo 8 del texto bsico.

UNIVERSIDAD TCNICA PARTICULAR DE LOJA La Universidad Catlica de Loja

69

Gua didctica: Lgica de la Programacin

SEGUNDO BIMESTRE

UNIDAD VI
DESARROLLO DE PROBLEMAS DE PROGRAMACIN La prctica de la programacin es un arte y una ciencia muy interesante para nosotros como seres humanos, el hecho de poder disear algo que es capaz de procesar la informacin es de por s una creacin en la que plasmamos nuestra forma de resolver los problemas. A lo largo de la presente gua didctica, nuestro principal inters ha sido el de inducir el pensamiento lgico aplicado a la solucin de problemas de programacin, en este captulo vamos a usar todo lo aprendido para disear un pequeo programa, considerando cada uno de los componentes. Puesto que hasta ahora no ha tenido la oportunidad de ver funcionando nada en la computadora, vamos a usar una herramienta de programacin visual conocida como RAPTOR, desarrollada por La Academia Pilotos de las Fuerzas Armadas de los Estados Unidos, en la cual tendr la oportunidad de disear sus diagramas de flujo y ejecutarlos para ver los resultados, vale aclarar, que el uso de esta herramienta sirve nicamente para ayudarle a visualizar cmo funciona la lgica de un programa.

Para el desarrollo de los contenidos de esta unidad, utilizaremos el captulo 9 del texto bsico. Los captulos 10,11,12 y 13 le ensean a traducir los algoritmos o las miniespecificaciones a un lenguaje como Visual Basic.Net, Java, C# o C++, cuyo estudio est fuera del alcance de esta asignatura y por lo tanto queda a su criterio el estudiarlos. 6.1 Abstraccin de problemas de programacin El esquema bsico de funcionamiento del computador, como mencionamos en la Unidad 1, es de entradas, proceso, almacenamiento y salida, por tanto una aplicacin de software debe corresponder con estas funciones, a cada una de estas le vamos a llamar capas. En la siguiente tabla vamos establecer la correspondencia entre las funciones y las capas. Funcin Entrada Proceso Capa Descripcin

Interfaz de Corresponde a los elementos en pantalla u otro dispositivo que permite que usuario el usuario ingrese informacin. Lgica de proceso Cdigo de programa que ejecuta las tareas de procesamiento de una aplicacin. Toma los datos de entrada y los procesa para almacenarlo o para enviarlos a un dispositivo de salida. Esta capa incluye los datos y estructuras de datos que se guardan en la memoria principal del computador (RAM) que son requeridos para realizar el procesamiento. Estructura de datos o archivos que guardan la informacin, aunque se dice que el almacenamiento es lgico, muchas de las veces se lo conoce como almacenamiento fsico porque se guarda en un disco u otro dispositivo ocupando espacio fsico en disco.

Almacenamiento

Datos

Salida

Interfaz de Nos referimos nuevamente a la interfaz de usuario en razn de que la interfaz usuario sirve para interactuar, esto es ingresar o visualizar informacin. Muchas de las veces la salida puede ser un sonido, una impresin o un mensaje.

70

UNIVERSIDAD TCNICA PARTICULAR DE LOJA

La Universidad Catlica de Loja

SEGUNDO BIMESTRE

Gua didctica: Lgica de la Programacin

Sin importar el tamao de la aplicacin, siempre debemos pensar en estas capas, aunque puede haber programas que no las requieran, por ejemplo un programa podra no requerir la capa de almacenamiento, porque no guarda informacin. Es posible tambin que existan programas con muchas ms capas debido a la complejidad de los mismos, normalmente esto se da en aplicaciones corporativas, las cuales tienen en su diseo varias capas, el mismo que se conoce como la arquitectura de la aplicacin. Ahora, vamos tomar una de las aplicaciones que hemos desarrollado para identificar en ellas las diferentes capas, por supuesto que no van a estar muy elaboradas, puesto que no hemos centrado nuestro inters en el desarrollo de interfaces sofisticadas, sin embargo vamos a ver que si tiene al menos 3 de las 4 capas, puesto que en ninguna de ellas hemos guardado informacin en disco, eso significa que no tendr la capa de datos.

EJERCICIOS 6.1 Clculo de la edad de una persona En el ejemplo del clculo de la edad de una persona identificamos las siguientes capas. Si no recuerda revise nuevamente el ejercicio del diagrama correspondiente a la unidad 5. Capa de interfaz de usuario Puesto que hemos dicho que la interfaz de usuario corresponde a las entradas o salidas de la informacin, en nuestro diagrama la interfaz de usuario estara dada por los smbolos de la figura 6.1:

Anio _n, m es_n, dia _n Anio _a, m es_a, dia _a

Edad: , edad_a, edad_m , edad_d

Error: La fecha de n acim iento es m ayor a la actual

Figura 6.1 Instrucciones del diagrama para interfaz de usuario Si analiza un poco los diagramas, estos corresponde al smbolo de datos, es decir a las instrucciones de ingreso salida de informacin. Puesto que en un diagrama no es necesario incluir elementos grficos de interfaz, esto se ha omitido ac, pero en los programas es necesario implementar ciertos diseos de pantallas que resulten ms agradables al usuario y le permitan comprender de manera intuitiva el funcionamiento de la aplicacin, a los programas que cumplen con esta caracterstica se los conoce como amigables. En la figura 6.2 colocamos un ejemplo de cmo podra ser una pantalla para esta misma aplicacin.

UNIVERSIDAD TCNICA PARTICULAR DE LOJA La Universidad Catlica de Loja

71

Gua didctica: Lgica de la Programacin

SEGUNDO BIMESTRE

Figura 6.2 Modelos de interfaz de usuario El ejemplo de la figura 6.2 muestra una interfaz bsica en la que las ventanas aparecen conforme se va ejecutando la aplicacin, pero las aplicaciones de software normalmente utilizan modelos de interfaz que integran tanto componentes de entrada como componentes de salida, tal como se aprecia en la figura 6.3, la cual ha sido desarrollada en java con el IDE netbeans.

Figura 6.3 Modelo de interfaz de usuario avanzado

Capa de lgica de proceso A la lgica de procesamiento corresponden los siguientes smbolos, si se analizan con cuidado estos procesos se ejecutan luego de que se complet el proceso de ingreso de datos y el usuario no tiene idea

72

UNIVERSIDAD TCNICA PARTICULAR DE LOJA

La Universidad Catlica de Loja

SEGUNDO BIMESTRE

Gua didctica: Lgica de la Programacin

de lo que est pasando internamente. Las instrucciones del diagrama correspondientes a esta capa son las que se muestran en la figura 6.4
dia _n > dia_a SI dia _a dia_a + 30 m es_a m es _a - 1

NO

edad_d

dia _a dia _n

m es _n > m es_a

SI

m es_a

m es_a + 12

anio_a

_anio_a - 1

NO

edad_m

m es_a m es_n

anio _n > a nio_a

NO edad_a anio _a anio_n

Figura 6.4 Instrucciones del diagrama para capa de proceso Capa de datos En este problema, no se usa una capa de datos, puesto que no hay almacenamiento secundario, todos los datos de entrada se procesan para producir la salida y termina sin almacenamiento.

Ejercicios

Pongamos en prctica lo visto en esta seccin, realizando los siguientes ejercicios: Desarrolle un anlisis de capas similar al aplicado al cada uno de los problemas desarrollados en la seccin 5.3 de la gua. Disee posibles interfaces de usuario para cada uno de los ejercicios de la seccin 5.3. Puede usar Microsoft Visio u otro diagramador para hacerlo.

UNIVERSIDAD TCNICA PARTICULAR DE LOJA La Universidad Catlica de Loja

73

Gua didctica: Lgica de la Programacin

SEGUNDO BIMESTRE

6.2 Componentes de una aplicacin Al igual que cualquier producto, el software se compone de una serie de elementos que son fabricados de cdigo, por tanto los componentes son lgicos. En el apartado anterior abstraamos las capas que forman parte de una aplicacin en la que hacamos mencin a diferentes instrucciones del diagrama de flujo, pero estas instrucciones se organizan de manera lgica en diferentes tipos de componentes, los cuales vamos a listar a continuacin. Capa Nombre del componente Ventanas Formularios Botones Cuadros de texto Listas combinadas Listas Funciones Procedimientos Clases Mdulos Variables Constantes Archivos Tablas Descripcin Son objetos propios de interfaz de usuario que normalmente se los encuentra como libreras de los lenguajes de programacin, o se pueden crear y definir como componentes reutilizables en bibliotecas de componentes.

Interfaz de usuario

Lgica de proceso

Elementos de cdigo que construye el programador a los cuales les asigna la responsabilidad de procesar y validar la informacin.

Datos

Elementos que poseen una estructura que se guarda fsicamente en el disco duro con informacin relacionada a la aplicacin.

Estos son los componentes que por lo general se encuentra en las aplicaciones de software, y si usted ha tenido oportunidad de desarrollar alguna aplicacin, habr reconocido algunos de ellos. Suele ocurrir con mucha frecuencia que en el cdigo de muchas aplicaciones no se distingue las capas que indicamos, y esto es un problema sobre todo cuando surgen cosas que hay que corregir, por ello es importante desde el inicio tener en cuenta esta estructura para disear las aplicaciones adecuadamente, de todos modos en el alcance de la asignatura no revisamos este tipo de aplicaciones, sin embargo usted puede estudiar por su cuenta el tema en los captulos posteriores del texto para programacin en alguno de los lenguajes establecidos. Ahora bien, si piensa un poco en la capa de interfaz, lenguajes como Visual Basic, traen una interfaz de desarrollo que permite colocar estos elemento en la ventana donde se ejecutarn, de modo que los programadores no pierdan mucho tiempo dndoles forma y se puedan centrar en la capa de procesamiento. En la capa de lgica de programacin, los componentes tales como las funciones y procedimientos pueden ser provistos por el lenguaje de programacin o desarrollados como parte de la aplicacin, por ello es importante conocer las prestaciones que ofrece un lenguaje determinado para simplificar nuestra tarea de programacin. Funciones y Procedimientos Conocemos como funciones y procedimientos a ciertas partes de cdigo que se disean para cumplir una tarea especfica y devolver el control a la seccin de cdigo que la llam, en trminos generales

74

UNIVERSIDAD TCNICA PARTICULAR DE LOJA

La Universidad Catlica de Loja

SEGUNDO BIMESTRE

Gua didctica: Lgica de la Programacin

se las conoce como subrutinas y si recuerda el captulo 5, la llamada a las mismas se representa con el . Las subrutinas hacen que los programas sean mucho ms eficientes. smbolo Las subrutinas que caen en la denominacin de funciones se caracterizan porque siempre devuelven un valor que es almacenado en una variable o se usan como parte de una expresin, por ejemplo la funcin pi() puede devolver el valor de , en este caso no necesita recibir ningn parmetro de entrada. Por otro lado las que caen en categora de procedimientos se caracterizan porque al ser llamadas ejecutan una accin, pero no retornan ningn valor y por tanto no pueden colocarse como parte de una expresin. En la tabla 6.1 nos permitimos listar algunas de las funciones comunes que la mayora de lenguajes de programacin suelen traer. Tabla 6.1 Tabla de funciones comunes en lenguajes de programacin Funcin abs(n) sqrt(n) sqr (n) random(n) log(n) exp (n) ln() Descripcin Devuelve el valor absoluto de n, es decir ignora el signo de positivo o negativo. Obtiene la raz cuadrada de n. Obtiene el cuadrado de n. Obtiene un nmero aleatorio comprendido entre 0 y n. Devuelve el logaritmo de n. Devuelve el antilogaritmo de n. Devuelve el logaritmo natural de n.

Tal como lo imagina el contar con estas funciones hacen que se simplifique considerablemente el esfuerzo de programacin, todos los lenguajes de programacin entre ellos java, c++, c#, Visual Basic, ofrecen un rico conjunto de funciones que se pueden usar en la fase de codificacin. Libreras Para sacar el mximo provecho a estas funciones y procedimientos, lo que se suele hacer es crear bibliotecas de cdigo, de forma tal que puedan ser utilizadas en ms de un programa. Archivos de datos Cuando usted desarrolla un aplicacin que necesita guardar informacin tiene dos opciones para hacerlo, la primera es crear archivos de datos tipo texto o binarios que slo puede ser ledos por su aplicacin y la segunda es utilizar un sistema gestor de base de datos tal como mysql, Access, Sqlserver entre otros, en cuyo caso se vale del lenguaje que implementa el motor de base de datos para manipularlos. 6.3 Desarrollo de aplicaciones sencillas Hasta aqu, usted ha tenido la oportunidad de conocer y aplicar algunas herramientas de diseo de programas para computadora, y quiz se haya preguntado porque no ha utilizado el computador. Pues bien lleg el momento de hacerlo, y para ello en el disco anexo a la gua didctica encontrar el programa Raptor,
UNIVERSIDAD TCNICA PARTICULAR DE LOJA La Universidad Catlica de Loja

75

Gua didctica: Lgica de la Programacin

SEGUNDO BIMESTRE

Una caracterstica muy importante de Raptor es que le permite dibujar el diagrama de flujo y ejecutarlo, mostrando adems los valores de las variables utilizadas, es decir le ahorra todo el proceso manual, adems entre otras cosas le permite generar cdigo para lenguajes como Ada, Java, C++ o puede generar un programa ejecutable que funciona como cualquier aplicacin. No queremos extendernos ms en el asunto y pongmonos manos a la obra, lo que s debemos advertirle es que hay algunas variaciones en los smbolos usados para realizar los diagramas en Raptor, de todos modos deber estudiarlo para poder hacer uso de l. Iniciemos instalando el programa Raptor que se encuentra en su disco, si tiene alguna dificultad, consulte la documentacin. Una vez que ha logrado instalar Raptor, tome el captulo 9 de su texto bsico y desarrolle los ejemplos y aplicaciones que el autor propone.

Estoy seguro de que se siente muy entusiasmado con el uso de esta herramienta, en realidad se puede hacer muchas cosas, por tanto lo que queda es desarrollar ms ejercicios y quiz estara dems decir que programe en raptor todos los ejercicios desarrollados hasta ahora. Para completar este captulo, nos hemos permitido desarrollar una aplicacin completa en Raptor con el propsito de que entienda como se construye una aplicacin.

Ejemplo 6.1 Desarrollar en Raptor un programa para jugar al ahorcado. Descripcin de la aplicacin: Se trata del juego del ahorcado en el cual se le pide al usuario que adivine una palabra seleccionada al azar, para lo cual debe ingresar de una en una las letras que considera que la forman, si la letra est en la palabra debe mostrarse en su posicin, los dems espacios se muestran como guiones para que tenga una idea de la longitud de la palabra, si la letra no consta en la palabra del juego o est repetida se contar como error e ir dibujando poco a poco un mueco por cada error cometido, hasta que el mueco se ahorca, si acierta y adivina la palabra, deber felicitarle. En cualquiera de los dos casos termina el juego. Revisemos ahora los enunciados para este juego: Salidas: 1. 2. 3. Mostrar la palabra con las letras que adivin y guiones en aquellas que no acert, esto por cada letra que ingresa el usuario. Si adivina la palabra en la cantidad de intentos datos, debe felicitar al usuario. Si no logra adivinar debe presentar un dibujo de un mueco ahorcado y termina el juego.

76

UNIVERSIDAD TCNICA PARTICULAR DE LOJA

La Universidad Catlica de Loja

SEGUNDO BIMESTRE

Gua didctica: Lgica de la Programacin

Proceso: 1. 2. 3. 4. Debe contar con una lista de palabras para seleccionar una de ellas aleatoriamente. Cada letra correcta se muestra en pantalla. Cada error cometido produce un paso hacia el ahorcamiento del mueco. Se considera como error a una letra repetida o una letra que no consta en la palabra.

Entrada: 1. Se requiere que el usuario ingrese letras hasta que adivine la palabra o hasta que se le acaben las opciones.

Como podr darse cuenta, los enunciados nos pueden llevar a detalles de implementacin mucho ms complejos, pero a medida que se explique la aplicacin las nicas habilidades que necesita son las de poder escribir expresiones correctamente y utilizar adecuadamente los diagramas de flujo, por lo tanto le sugiero que si tuvo alguna dificultad con el seguimiento del captulo del texto bsico indicado, lo retome hasta comprenderlo debidamente. Ahora analicemos los componentes de la aplicacin por capas: CAPA DE INTERFAZ A este nivel nos hemos permitido desarrollar dos componentes, el primero es una pantalla de ingreso de las letras, y el segundo es una pantalla grfica que muestra el estado de la palabra y en caso de cometer errores el dibujo del mueco ahorcndose. En las figuras 6.5 y 6.6 se muestran las interfaces definidas para el efecto. Recuerde que en la capa de interfaz representamos tanto las entradas como las salidas.

Figura 6.5 Interfaz para el ingreso de datos

UNIVERSIDAD TCNICA PARTICULAR DE LOJA La Universidad Catlica de Loja

77

Gua didctica: Lgica de la Programacin

SEGUNDO BIMESTRE

Figura 6.6 Interfaz grfica de salida de la aplicacin. CAPA DE LGICA A nivel de lgica necesitamos datos predefinidos y varios grupos de instrucciones organizados en subrutinas, las cuales debemos ir llamando conforme las necesitemos, adems debemos hacer uso de varias funciones de la biblioteca de raptor que nos permitan hacer cosas como seleccionar aleatoriamente una palabra, inicializar el modo grfico y dibujar las figuras. A nivel de diagramas y subdiagramas necesitamos lo siguiente: 1. 2. Un programa principal desde donde empieza a ejecutarse la aplicacin. Varios subprogramas con propsitos especficos, algunos de ellos necesitan recibir ciertos datos de entrada para poder realizar su tarea, en este caso hablamos de procedimientos. Los podemos apreciar en la Tabla 6.2

78

UNIVERSIDAD TCNICA PARTICULAR DE LOJA

La Universidad Catlica de Loja

SEGUNDO BIMESTRE

Gua didctica: Lgica de la Programacin

Tabla 6.2 Lista de diagramas y subdiagramas que conforman la aplicacin Nombre main crear_lista inicializar_palabra ahorcar escribir Propsito Llamado desde

Programa principal, desde aqu se No debe tener llamadas. ejecuta toda la aplicacin. Crea la lista de palabras en una inicializar_juego. matriz. Rellena con guiones la palabra que se inicializar_juego. le muestra al usuario. Dibuja paso a paso el mueco del main. juego. Dibuja la palabra donde constan main. las letras acertadas y guiones en las dems. Crea el entorno de datos necesario main . para poder comenzar el juego. Crea la interfaz grfica. main .

inicializar_juego crear_interfaz CAPA DE DATOS

Aunque la aplicacin no guarda la informacin en archivos, requiere de datos que en este caso son las palabras que debe adivinar, para ello usamos un arreglo que es una variable capaz de contener varias casillas con una palabra cada una, a ellas se puede acceder con el nombre del arreglo y un subndice entre corchetes, esto se puede apreciar en el sub diagrama inicializar_lista. Una recomendacin importante que quiero hacerle es que haga el seguimiento al programa completo, puede hacerlo manualmente o preferentemente en el entorno Raptor, puesto que va resaltando cada instruccin y muestra los valores de las variables. Para visualizar y analizar la aplicacin abra el archivo ahorcado.rap que se encuentra en el CD en la carpeta ejemplos raptor

EJERCICIOS 6.1 Con lo aprendido en este captulo, desarrolle un juego en Raptor en el cual teniendo un mximo de 7 intentos la mquina adivina un nmero del 1 al 100 pensado por el usuario utilizando el mtodo de la bsqueda binaria. La bsqueda binaria consiste en dividir el rango de nmeros posible en 2 y realizar dos preguntas, la primera mostrar el nmero del centro del rango y preguntar si se trata de ese nmero, si el usuario dice que es correcto el computador a logrado adivinar el nmero y termina, en caso de no ser el nmero, realiza la segunda pregunta que sera si el nmero es mayor o menor, si es mayor divide el rango nuevamente cogiendo el grupo superior y repite el proceso, luego si es menor hace lo mismo con el rango inferior, de modo que cada vez va encerrando al nmero. Si no lo logra en 7 intentos, el usuario respondi incorrectamente las preguntas, en este caso debe alertar del particular.

UNIVERSIDAD TCNICA PARTICULAR DE LOJA La Universidad Catlica de Loja

79

Gua didctica: Lgica de la Programacin

SEGUNDO SOLUCIONARIO BIMESTRE

Con este tema finalizamos la asignatura, y estamos seguros de que les ser de gran utilidad para las asignaturas siguientes, como recomendacin final le sugerimos seleccione uno de los lenguajes de programacin desarrollados en el libro y trate de programar en el las soluciones dadas. En el disco adjunto a la gua hemos incluido algunos de los lenguajes de programacin como java y c++ para que los use en su aprendizaje.

Autoevaluacin 6
Concluya el estudio de esta materia desarrollando el examen rpido del captulo 9 del texto bsico.

80

UNIVERSIDAD TCNICA PARTICULAR DE LOJA

La Universidad Catlica de Loja

SOLUCIONARIO

Gua didctica: Lgica de la Programacin

8. Solucionario
UNIDAD 1 Parte 1 1. 2. 3. 4. 5. a b a b c Parte 2 6. 7. 8. 9. 10. F F F V V

Parte 2 6. 7. 8. 9. 10. v f f v v

UNIDAD 4 Parte 1 1. 2. 3. 4. 5. b c a a c

UNIDAD 2 Parte 1 1. 2. 3. 4. 5. c a c b c

Parte 2 6. 7. 8. 9. 10. F F F V F

Parte 2 6. 7. 8. 9. 10. V F F F V

UNIDAD 3 Parte 1 1. 2. 3. 4. 5. c a c a b

UNIVERSIDAD TCNICA PARTICULAR DE LOJA La Universidad Catlica de Loja

81

Gua didctica: Lgica de la Programacin

SOLUCIONARIO GLOSARIO

UNIDAD 5 Parte 1 1. a
C am bios de e stado ( variables de tr abajo) Estructuras de control Estructuras de d ecisin

C am bios de e stado ( variables de tr abajo)

D eclaraciones

Peticin d e datos m uestra

UNIDAD 6 Parte 1 1. b 2. c 3. b 4. b 5. a Parte 2 6. F 7. V 8. F 9. V 10. V

82

UNIVERSIDAD TCNICA PARTICULAR DE LOJA

La Universidad Catlica de Loja

GLOSARIO

Gua didctica: Lgica de la Programacin

9. Glosario
ADA.- Lenguaje de programacin orientado a objetos. Algoritmo.- Secuencia ordenada de pasos que nos permiten realizar alguna actividad. Aplicacin.- Conjunto de componentes de software y datos que permiten resolver problemas o realizar actividades con la ayuda del computador. Bucle.- Estructura de control que permite la repeticin de una o ms instrucciones, existen tres tipos de bucles, los que evalan la condicin a la entrada, los que evalan la condicin a la salida y los que se ejecutan un determinado nmero de veces con la ayuda de un contador. Booleano.- Se puede aplicar a una variable o a una expresin cuyo valor puede ser verdadero o falso. Deriva del lgebra de Boole. Condicin.- Expresin booleana que se usa para desviar el flujo del programa o terminar un bucle. Constante.- Espacio de memoria capaz de guardar un valor que no cambia durante la ejecucin de un programa. Matemticamente son valores fijos que se utilizan para realizar diferentes clculos. Conclusin.- Resultado al que se llega partiendo de unas premisas y aplicando reglas de inferencia. C++.- Lenguaje de programacin orientado a objetos muy utilizado en el desarrollo de aplicaciones de mediano y bajo nivel, deriva del lenguaje C. C# (si charp).- Versin de C orientado a objetos desarrollado por Microsoft he incluido en su plataforma Visual Studio .Net. Expresin.- Grupo de constantes y/o variables con operadores que de acuerdo a una sintaxis permite realizar la transformacin de los datos, sus resultados se almacenan en variables. Enunciado.- En lgica de programacin es una expresin lingstica que establece un pensamiento, puede ser interrogativo, imperativo o declarativo.

MPAE&JSCB/ vt/05-08-09/83 cll/2011-11-09

UNIVERSIDAD TCNICA PARTICULAR DE LOJA La Universidad Catlica de Loja

83

Vous aimerez peut-être aussi