Vous êtes sur la page 1sur 84

UNIVERSIDAD TCNICA PARTICULAR DE LOJA

La Universidad Catlica de Loja


MODALIDAD ABIERTA Y A DISTANCIA

Ciencias de la Computacin y Electrnica


Seccin Tecnologas Avanzadas de la Web y SBC

Lgica de la
Programacin
Gua didctica
6 crditos

Titulacin
Ingeniero en Informtica

Ciclo

Autores:

Marco Patricio Abad Espinoza


Jorge Stalin Caldern Bustamante

Asesora virtual:

www.utpl.edu.ec
18106

LGICA DE LA PROGRAMACIN
Gua didctica
Marco Patricio Abad Espinoza
Jorge Stalin Caldern Bustamante
UNIVERSIDAD TCNICA PARTICULAR DE LOJA
Diagramacin, diseo e impresin:
EDILOJA Ca. Ltda.
Telefax: 593-7-2611418
San Cayetano Alto s/n
www.ediloja.com.ec
edilojainfo@ediloja.com.ec
Loja-Ecuador
Derecho de autor 000450
Primera edicin
Sptima reimpresin
ISBN-978-9942-00-614-1

Reservados todos los derechos conforme a la ley. No est permitida la reproduccin total o parcial de esta gua, ni su tratamiento informtico,
ni la transmisin de ninguna forma o por cualquier medio, ya sea electrnico, mecnico, por fotocopia, por registro u otros mtodos, sin el
permiso previo y por escrito de los titulares del Copyright.
Abril, 2013

2. ndice
1. Datos informativos
2. ndice
3. Introduccin.................................................................................................................................. 5
4. Lineamientos generales del Modelo Educativo basado en
competencias y crditos acadmicos UTPL-ECTS............................................ 6
4.1 Competencias genricas .......................................................................................................... 7
4.2 Competencias especficas ........................................................................................................ 7

5. Bibliografa................................................................................................................................... 7
5.1 Bsica .......................................................................................................................................... 7
5.2 Complementaria ....................................................................................................................... 7

6. Orientaciones generales para el estudio............................................................. 9


7. Proceso de enseanza-aprendizaje para el logro de
competencias............................................................................................................................... 11
PRIMER BIMESTRE
7.1 Planificacin para el trabajo del alumno ............................................................................ 11
7.2 Sistema de evaluacin ............................................................................................................. 13
7.3 Orientaciones especficas para el aprendizaje por competencias ................................... 14
UNIDAD I: PROBLEMAS Y SOLUCIONES....................................................................................................... 14

1.1 Aplicacin de la lgica en la programacin......................................................................... 16


1.2 Principios en la elaboracin de enunciados......................................................................... 17
1.3 Comprensin y especificacin del problema........................................................................ 18
1.4 Identificacin de entradas, procesos y salidas..................................................................... 19
Autoevaluacin 1................................................................................................................................. 20
UNIDAD II: NATURALEZA DE LOS DATOS..................................................................................................... 21

2.1 Naturaleza de los datos........................................................................................................... 21


2.2 Expresiones y datos.................................................................................................................. 22
2.3 Dominios..................................................................................................................................... 22
2.4 Tipos de operadores.................................................................................................................. 22
2.5 Reglas de precedencia.............................................................................................................. 24
Autoevaluacin 2................................................................................................................................. 25
UNIDAD III: ALGORITMOS.......................................................................................................................... 26

3.1 Ciclo de desarrollo..................................................................................................................... 26


3.2 Determinacin de requerimientos........................................................................................ 28
3.3 Estructuracin de pasos del algoritmo.................................................................................. 29
3.4 Resolucin de problemas mediante algoritmos.................................................................. 30
Autoevaluacin 3................................................................................................................................. 32

Gua didctica: Lgica de la Programacin

PRELIMINARES

PRIMER BIMESTRE
7.1 Planificacin para el trabajo del alumno ............................................................................ 33
7.2 Sistema de evaluacin ............................................................................................................. 33
7.3 Orientaciones especficas para el aprendizaje por competencias ................................... 35
UNIDAD IV: ESTRUCTURAS DE DECISIN Y BUCLES...................................................................................... 36

4.1 Flujos de programa..................................................................................................................... 36


4.2 Estructuras selectivas................................................................................................................... 38
4.3 Bucles............................................................................................................................................. 39
4.4 Estructuras de control anidadas................................................................................................ 40
4.5 Pruebas de Escritorio................................................................................................................... 42
Autoevaluacin 4................................................................................................................................. 48
UNIDAD V: DIAGRAMAS DE FLUJO.............................................................................................................. 49

5.1 Elementos de un diagrama de flujo......................................................................................... 49


5.2 Elaboracin de diagramas de flujo........................................................................................... 51
5.3 Ejercicios con diagramas de flujo.............................................................................................. 60
Autoevaluacin 5................................................................................................................................. 69
UNIDAD VI: DESARROLLO DE PROBLEMAS DE PROGRAMACIN................................................................... 70

6.1 Abstraccin de ejercicios de programacin............................................................................. 70


6.2 Componentes de una aplicacin................................................................................................ 74
6.3 Desarrollo de aplicaciones sencillas......................................................................................... 75
Autoevaluacin 6................................................................................................................................. 60

8. Solucionario.................................................................................................................................. 81
9. Glosario............................................................................................................................................ 83

UNIVERSIDAD TCNICA PARTICULAR DE LOJA

La Universidad Catlica de Loja

PRELIMINARES

Gua didctica: Lgica de la Programacin

3. Introduccin
Estimado estudiante, queremos darle la ms cordial bienvenida a esta su Universidad, particularmente
a la carrera de Ingeniera en Informtica. Aprovechamos la oportunidad para felicitarlo por haber
confiado en esta prestigiosa institucin educativa.
Nuestros nombres son: Patricio Abad y Stalin Caldern, estaremos con ustedes para guiar el proceso de
aprendizaje en la asignatura de Lgica de la Programacin, cualquier duda e inquietud estamos a sus
rdenes para responderle.
Lgica de Programacin es una materia troncal con seis crditos que se ubica en el primer ciclo de la
carrera de Ingeniera en Informtica y se ha elaborado enfocndose en el desarrollo de las competencias
bsicas para el diseo de algoritmos a travs del pensamiento lgico aplicado a la resolucin de
problemas por computadora.
El desarrollo de habilidades de programacin no se logra sino con la induccin de una forma de
pensamiento que ayuda a identificar los aspectos relevantes de un problema y representarlo en una
notacin formal que permita establecer una solucin para el mismo. Como veremos ms adelante,
todas las personas somos capaces de resolver problemas de diferentes maneras, pero encuentran
muchas dificultades al momento de traducir este problema a un lenguaje algortmico y es precisamente
este aspecto el que la materia de Lgica de la Programacin intenta resolver, sin esto es muy difcil
avanzar con otras asignaturas en la lnea de programacin, y de all su importancia vital para el resto
de la carrera.
Los contenidos se encuentran organizados en unidades y distribuidos equitativamente para los dos
bimestres. Se abordar en la unidad 1 los principios de la resolucin de problemas mediante la
abstraccin de las salidas, el proceso de clculo y las entradas requeridas; En la unidad 2 se estudiar la
naturaleza de los datos, su representacin y sus operaciones; para la unidad 3 tenemos los algoritmos
que le permite al estudiante adquirir las bases para representar, su proceso de construccin, verificacin
y depuracin.
El segundo bimestre comprende la unidad 4 que abarca el uso de la seleccin y ciclos repetitivos,
la unidad 5 versa sobre la representacin de los algoritmos en diagramas de flujos y culmina con la
unidad 6 consolidando todos los contenidos en la creacin de aplicaciones sencillas susceptibles de
programacin. Adems se considera el uso de herramientas de programacin visual que le permitirn
concentrarse en la lgica de programacin antes que en la sintaxis de un lenguaje particular, esto con
el nimo de que pueda aplicar luego esta lgica con cualquier lenguaje de programacin.
Un aspecto importante que debemos mencionar es que la lgica de la programacin no se limita a
un lenguaje de programacin especfico, es por tanto independiente del lenguaje y para escribir los
algoritmos utilizaremos dos herramientas fundamentales que son el pseudocdigo (miniespecificaciones)
y los diagramas de flujo, los cuales puede dibujar y probar en una herramienta muy importante
desarrollada por la academia de pilotos de la fuerza area norteamericana llamada Raptor.
Thomas Alba Edison deca que los genios son 1% de inspiracin y 99% de sudor, la cual es una
mxima aplicable a esta materia, pues se requiere estudiar el fundamento terico, comprenderlo y
luego comenzar a desarrollar ejercicios. Muchos otros autores afirman que a programar se aprende
programando, as que le animamos a aplicar estos principios en su estudio, es posible que encuentre
algunas dificultades, que deber superar para alcanzar los objetivos propuestos.

UNIVERSIDAD TCNICA PARTICULAR DE LOJA La Universidad Catlica de Loja

Gua didctica: Lgica de la Programacin

PRELIMINARES

4. Lineamientos generales del Modelo Educativo basado en


competencias y crditos acadmicos UTPL- ECTS

Sr. Estudiante recuerde que usted ha iniciado su formacin de tercer nivel con un sistema educativo
basado en el desarrollo de competencias a travs de crditos acadmicos. Este modelo le convierte
a usted en protagonista de su propia formacin y al profesor en mediador de las experiencias de
aprendizaje.
Surge entonces la necesidad de que tenga claro dos conceptos fundamentales competencia y crdito
acadmico.

Qu es una competencia? Entendemos por competencia el conjunto de actitudes, habilidades


y conocimientos que el alumno adquiere e incorpora segn sus caractersticas personales y
experiencias laborales y, que se ponen de manifiesto en el desempeo de la actividad profesional.
Las competencias se adquieren a lo largo del proceso formativo de la carrera y se desagregan en
objetivos de aprendizaje propuestos en cada asignatura.

Elementos de una competencia. Tres son los elementos que podemos distinguir en toda
competencia:
Actitudes: son predisposiciones y comportamientos ante situaciones concretas.
Habilidades: son destrezas para ejecutar con xito tareas, utilizar procedimientos y realizar
trabajos. Se desarrollan a travs de la prctica y la experiencia.
Conocimientos: constituyen los contenidos cientficos, conceptuales, tericos, conocidos
tambin como el aprendizaje acadmico.

Qu es un crdito acadmico UTPL / ECTS en la Modalidad a Distancia?

Un crdito acadmico es la unidad de medida del trabajo del estudiante, implica 32 horas
de trabajo del alumno (29 horas de trabajo autnomo y 3 horas de interaccin)1.

Los crditos acadmicos que el estudiante ir acumulando en el transcurso de la carrera


involucran: aprendizaje autnomo (estudio personal), tareas de investigacin, interaccin en
el Entorno Virtual de Aprendizaje (EVA), participacin en tutoras, videoconferencias y otros
eventos acadmicos (Jornadas, seminarios, cursos, congresos avalados por la UTPL), prcticas
acadmicas, pasantas preprofesionales y de vinculacin con la colectividad; actividades de
evaluacin; as como la realizacin del trabajo de titulacin.

El modelo adoptado por la UTPL contempla dos tipos de competencias: genricas y especficas.
Competencias Genricas: Son aquellas capacidades (actitudes, habilidades y
conocimientos) comunes a todas las profesiones que se ofrecen en la UTPL. Constituyen
una parte fundamental del perfil que el estudiante debe desarrollar durante su formacin.

1. CONESUP (2008): Reglamento del Rgimen Acadmico del Sistema Nacional de Educacin Superior, art. 18.

UNIVERSIDAD TCNICA PARTICULAR DE LOJA

La Universidad Catlica de Loja

Gua didctica: Lgica de la Programacin

PRELIMINARES

Competencias Especficas: son propias de la titulacin, aportan a la cualificacin especfica


para la profesin, dndole consistencia social y profesional al perfil formativo.

Estructura general del programa formativo

Las Unidades Acadmicas o Escuelas de la UTPL han estructurado el programa formativo contemplando
cinco mbitos o bloques de asignaturas: Formacin Bsica (10%); Genricas de carrera (15%); Troncales
(35%) Complementarias (10%); Libre configuracin (10%) y adems, el Practicum que comprende las
Pasantas preprofesionales y de vinculacin con la colectividad y Practicum Acadmico (20%).

4.1 Competencias genricas



Capacidad de abstraccin, anlisis y sntesis.


Capacidad para identificar, plantear y resolver problemas.

4.2 Competencias especficas


Estas se encuentran detalladas en la planificacin de cada bimestre.

5. Bibliografa
5.1 Bsica

Ramrez, F. (2007): Introduccin a la Programacin. Algoritmos y su implementacin en VB.net,


C#, Java y C++, Mxico, Alfaomega.
El autor del libro Felipe Ramrez tiene mucha experiencia en capacitacin de tecnologa para las
empresas, es director de contenidos de Aprenda Practicando. El texto se ha seleccionado debido
a que la forma como plantea los contenidos es didctica y fcil de seguir, adems tiene muchos
ejercicios y autoevaluaciones que lo hacen ideal para un estudiante a distancia. El enfoque
prctico le da mucha relevancia frente a otros textos similares.

Abad, M. y Caldern, J. (2009): Gua didctica de Lgica de la Programacin, Ecuador, Editorial


UTPL

Gua didctica diseada para el estudio de la Lgica de la Programacin en la carrera de Ingeniera


en Informtica de la Modalidad Abierta y a Distancia de la Universidad Tcnica Particular de
Loja.

5.2 Complementaria

Cairo, O. (2005): Metodologa de la programacin algoritmos, diagramas de flujo y programas,


Mxico, Alfaomega.

Contiene muchos ejercicios y algoritmos que se pueden usar para complementar los que posee
el texto base, es ideal para la parte prctica de cualquiera de los captulos del la materia. Tiene
un desarrollo especial en lo referente a diagramas de flujo.
UNIVERSIDAD TCNICA PARTICULAR DE LOJA La Universidad Catlica de Loja

Gua didctica: Lgica de la Programacin

PRELIMINARES

Lipschutz, S. (1983): Matemticas para computacin, Colombia, McGraw-Hill.

A pesar de ser una edicin con bastantes aos por delante, tiene valiosa informacin sobre
aritmtica del computador, lgica matemtica, desarrollo de algoritmos y su representacin en
diagramas de flujos, contiene muchos ejercicios.

Paniagua, E., Snchez, J. y Martn, F. (2003), Lgica Computacional, Espaa, Thomson.


Excelente texto para el estudio de la lgica matemtica y su aplicacin en el mbito de las ciencias
de la computacin, se lo puede utilizar como complemento del captulo 1 de la materia.

DIRECCIONES ELECTRNICAS

Carlisle, M. (2009): Welcome to the raptor home page , [En lnea] Disponible en: http://raptor.
martincarlisle.com/ [Consulta 12-06-2009]

Sitio de descarga de raptor, donde se publican adems las ltimas novedades del producto, aqu
encontrar tambin la versin de raptor orientada a objetos.

UNIVERSIDAD TCNICA PARTICULAR DE LOJA

La Universidad Catlica de Loja

PRELIMINARES

Gua didctica: Lgica de la Programacin

6. Orientaciones generales para el estudio


Estimado Estudiante:
El estudio de la programacin de computadores es una tarea compleja que requiere el desarrollo de
algunas habilidades de pensamiento orientadas a la solucin de problemas descomponindolos en
partes manejables, lo cual aprenderemos durante el presente curso.
Para conseguir este propsito es necesario que tenga una dedicacin peridica que le permita aprender
y desarrollarlas, por ello le sugerimos no menos de 8 horas semanales que podran variar en funcin de
sus habilidades y conocimientos previos.
A continuacin se le propone algunas orientaciones que le servirn en su proceso de aprendizaje:
En primera instancia recordarle que usted cuenta con los siguientes recursos para el aprendizaje:
1.

La gua didctica: Le orientar sobre cmo y qu temas estudiar, adems contiene ejercicios de
autoevaluacin que le permitirn medir su grado de comprensin y la necesidad de tutora por
parte del docente. Muchos estudiantes empiezan estudiando directamente el texto, pero como
ver ms adelante no es recomendable hacerlo.

2.

El texto bsico: Le servir para desarrollar los contenidos principales conforme se lo indica en la
gua didctica. Vale acotar que no todos los captulos del texto se consideran para la asignatura y
tampoco cubre todos los contenidos por lo que el estudio debe hacerse siguiendo las instrucciones
de la gua didctica. Los captulos del 10 al 14 los puede usar para iniciar el estudio de la lgica
de la programacin en alguno o en todos los lenguajes de programacin propuestos.

3.

El Entorno Virtual de Aprendizaje: Donde podr interactuar con sus profesores a travs de
una orientacin del trabajo semanal, uso de mensajera electrnica para resolver inquietudes,
foros, desarrollo de ejercicios prcticos, publicacin de recursos, todo este trabajo tendr una
valoracin de 2 puntos.

4.

La Tutora personal: Es un tiempo semanal que como profesores dedicamos para atender las
inquietudes en relacin a los contenidos o desarrollo de trabajos, para ello se publicar un horario
en el cual podrn asistir personalmente o contactarse va telefnica, el mismo que se detalla en la
cartula de la evaluacin a distancia.

5.

Los trabajos a distancia: Son actividades tericas y prcticas que acompaan a la gua didctica de
cada una de las materias, le permiten aplicar y reforzar los conocimientos adquiridos mediante su
desarrollo, y debe enviarlos a su profesor. La entrega de estos trabajos con su respectiva cartula
es obligatoria y no recuperable, lo cual significa que si no entrega alguno de los mismos no tendr
opcin a la evaluacin presencial, su valoracin es de 4 puntos que sumados a la calificacin de
participacin en el EVA totalizan 6 puntos.

6.

El Software para el desarrollo de aplicaciones: Los estudiantes contarn con herramientas de


software que les permitirn realizar prcticas y validar los resultados de sus ejercicios. Este
software se lo incluir en un disco compacto que se entrega con la presente gua didactica.

UNIVERSIDAD TCNICA PARTICULAR DE LOJA La Universidad Catlica de Loja

Gua didctica: Lgica de la Programacin

PRIMER
PRELIMINARES
BIMESTRE

Al finalizar cada bimestre usted debe presentarse a una evaluacin presencial en su centro universitario,
la cual se califica sobre 14 puntos, que sumados a los 6 puntos de los trabajos a distancia le dan un
total de 20 puntos por bimestre. Usted debe obtener una nota mnima de 14 sobre 20, de lo contrario
deber rendir una evaluacin supletoria que reemplaza a la nota bimestral. Para aprobar debe tener
un mnimo de 28 puntos.
Como mtodo de estudio, le recomendamos que lea detenidamente los contenidos de la gua didctica
y siga fielmente las instrucciones dadas, lo ms importante es realizar prcticas no limitndose a lo
que dice el texto, sino que es recomendable que idee sus propios problemas lo cual lo har sentirse
mucho ms familiarizado con la mecnica de la materia. Puesto que dispondr de herramientas para
la computadora utilcelas en todo momento.

10

UNIVERSIDAD TCNICA PARTICULAR DE LOJA

La Universidad Catlica de Loja

OBJETIVOS DE
APRENDIZAJE

CRONOGRAMA
ACTIVIDADES DE
RECURSOS
ORIENTATIVO
APRENDIZAJE
DIDCTICOS
Unidades /Temas
Tiempo estimado
Unidad 1: Problemas y
Semana 1y 2
Disponer de
Aplicar los
Lectura
Texto bsico
Soluciones
fundamentos
principios de
comprensiva
Gua Didctica
16 horas de
matemticos,
la lgica en
Desarrollo de
Entorno Virtual
1.1 Aplicacin de la lgica autoestudio
econmicos,
la resolucin
actividades
de Aprendizaje:
en la programacin.
8 horas de
estadsticos
de problemas
recomendadas en la
foros, actividades,
interaccin
y financieros
computacionales. 1.2 Principios en la
gua didctica
documentos.
elaboracin de
necesarios para
Identificar y
Interaccin con el
enunciados.
interpretar,
Telfono
comprender un
EVA
1.3 Comprensin y
seleccionar, valorar
problema para
Correo electrnico
especificacin del
el uso y desarrollo
Inicio del desarrollo
llegar a su solucin.
problema.
tecnolgico y sus
de la evaluacin a
1.4 Identificacin de
aplicaciones.
distancia.
entradas, procesos y
Analizar las
salidas.
necesidades de
Semana 3

Determinar
los
Unidad
2:Representacin
Lectura
conocimiento
tipos
de
datos
que
de
los
Datos
comprensiva
necesarias para
8 horas
de
mejor
se
ajusten
resolver un
Desarrollo de
autoestudio
para la resolucin 2.1 Naturaleza de los
problema.
actividades
4 horas de
de problemas
datos.
recomendadas en la
interaccin
mediante
2.2 Expresiones y datos.
gua didctica
algoritmos.
2.3 Dominios.
Continuar con
2.4 Tipos de operadores.
Resolver
el desarrollo de
2.5 Reglas de precedencia.
expresiones
la evaluacin a
aritmticas, lgicas
distancia
y relacionales
Participacin del
mediante el uso
foro propuesto en
de las reglas de
el EVA
precedencia de los
operadores.

COMPETENCIAS
ESPECFICAS

CONTENIDOS

7.1 Planificacin para el trabajo del alumno

PRIMER BIMESTRE

7. Proceso de enseanza-aprendizaje para el logro de competencias

Participacin en los
foros.

Evaluaciones
presenciales

Evaluaciones a
distancia

Autoevaluaciones
por unidades en la
gua didctica

EVALUACIN

PRIMER BIMESTRE

Gua didctica: Lgica de la Programacin

UNIVERSIDAD TCNICA PARTICULAR DE LOJA La Universidad Catlica de Loja

11

12

Aplicar la lgica
matemtica en
el contexto de
las Ciencias de
la Computacin,
con proyeccin, al
diseo de circuitos,
programacin,
anlisis y desarrollo
de algoritmos.

Comprender,
analizar y resolver
problemas
aplicando los
mtodos de
la ciencia y la
ingeniera.

Identificar de
forma clara los
requerimientos de
usuario.

Reconocer las
fases del ciclo
de desarrollo de
software.

UNIVERSIDAD TCNICA PARTICULAR DE LOJA

Unidad de la 1a la 3

Semana 7 y 8

Preparacin para la
prueba presencial del
primer bimestre.

Finalizar el
desarrollo de
la evaluacin a
distancia.

Semana 4, 5 y 6 Lectura
comprensiva
3.1 Ciclo de desarrollo
24 horas de
Desarrollo de
3.2 Determinacin de
autoestudio
actividades
requerimientos
12 horas de
recomendadas en la
3.3 Estructuracin de pasos interaccin
gua didctica
del algoritmo
Participacin del
3.4 Resolucin de
foro propuesto en
problemas mediante
el EVA
algoritmos
Unidad 3: Algoritmos

Gua didctica: Lgica de la Programacin


PRIMER BIMESTRE

La Universidad Catlica de Loja

Criterios

Pruebas mixtas:
objetivas y ensayo
x

Esfuerzo e inters en los


trabajos
Respeto a las personas
y a las normas de
comunicacin
x

Creatividad e iniciativa
x

x
x

Emite juicios de valor


argumentadamente
x

Dominio del contenido


x

TOTAL

Conocimientos
Anlisis y profundidad en
el desarrollo de los temas

Para aprobar la asignatura se requiere obtener un puntaje mnimo de 28/40 puntos, que equivale al 70%.

Interaccin en el
EVA

Cumplimiento, puntualidad
y responsabilidad
x

Contribucin en el trabajo
colaborativo y de equipo

Habilidades

Presentacin, orden y
ortografa

Actitudes
Investigacin (cita fuentes
de consulta)

PORCENTAJE

14

20 puntos en cada bimestre

En actividades especifcas tanto


presenciales como en el EVA.

70%

Complementa la evaluacin a
distancia, mximo en 1 punto.

30%

20%

10%

Estrategia de aprendizaje*

PUNTAJE

Tenga presente que la finalidad de la valoracin cualitativa es principalmente formativa; sin embargo,
en circunstancias especiales podra afectarle positiva o negativamente en su calificacin cuantitativa.

Sr. estudiante:

(perodo octubre- febrero) o 15 de mayo (perodo abril-agosto).

** Recuerde: que la evaluacin a distancia del primer bimestre consta de dos partes: una objetiva y otra de ensayo, debe desarrollarla y entregarla en su respectivo Centro Universitario hasta el 15 de noviembre

* Son estrategias de aprendizaje, no tienen calificacin; pero debe responderlas con el fin de autorregular su proceso de aprendizaje

3. Coevaluacin

Prueba
Presencial

Ensayo

Objetiva

Evaluacin a
Distancia**

Comportamiento tico

1. Autoevaluacin y actividades
recomendadas.

Formas de evaluacin

2. Heteroevaluacin

Aporta con criterios y


soluciones

7.2 Sistema de evaluacin


PRIMER BIMESTRE

Gua didctica: Lgica de la Programacin

UNIVERSIDAD TCNICA PARTICULAR DE LOJA La Universidad Catlica de Loja

13

Gua didctica: Lgica de la Programacin

PRIMER BIMESTRE

7.3 Orientaciones especficas para el aprendizaje por competencias


UNIDAD I
PROBLEMAS Y SOLUCIONES

El trabajo del pensamiento se parece a la perforacin de un pozo:


el agua es turbia al principio, ms, luego se clarifica.
- Proverbio Chino

Estimado(a) estudiante:
Iniciamos nuestro estudio con este interesante proverbio, que nos da una pauta de cmo es el proceso
de aprendizaje de la lgica de programacin, con ello le invitamos a poner especial inters en su
estudio y a no desesperarse si las cosas no se ven fciles al inicio, esto no debe preocuparle porque
lograr mayor claridad conforme vaya avanzando con el desarrollo de los ejercicios.

Para el estudio de la presente Unidad trabajaremos con el captulo 3 del texto bsico y
opcionalmente los libros de lgica planteados en la bibliografa, si puede disponer de ellos sera
importante que los use para reforzar los temas planteados.
Una de las habilidades de pensamiento ms importante para aprender a programar es la abstraccin
del problema, la cual podemos decir que es la capacidad de identificar partes en las que podemos
dividir un problema para trabajar sobre ellas en la bsqueda de la solucin.
Cuando el problema se refiere a programacin, en trminos generales estas partes se pueden considerar
como entradas, proceso, almacenamiento y salida (fig. 1.1), que son los tareas bsicas que realiza el
computador.

ENTRADAS

PROCESO

SALIDA

ALMACENAMIENTO

Fig. 1.1 Funciones bsicas del computador

La capacidad de abstraer un problema es innata en el ser humano y se desarrolla en mayor o menor


medida en funcin de la complejidad de los problemas que debemos resolver, tambin tiene mucho
que ver la creatividad, de hecho cuando tenemos que enfrentarnos a un problema, podemos resolverlo
de diferentes maneras, es muy difcil que dos personas lo hagan del mismo modo.

14

UNIVERSIDAD TCNICA PARTICULAR DE LOJA

La Universidad Catlica de Loja

Gua didctica: Lgica de la Programacin

PRIMER BIMESTRE

Analice el siguiente ejemplo.

Ejemplo 1.1
Problema: Calcule la edad de una persona.
Anlisis del problema:

Debe solicitar la fecha de nacimiento y restarla de la fecha actual, el resultado debe expresarse
en aos, meses y das. Hasta aqu el asunto parece fcil, pero si lo analizamos con ms detalle
la operacin de restar fechas es un poco ms compleja que la resta comn, de hecho no puedo
restar directamente las dos fechas como si se tratase de dos nmero cualquiera, las fechas son
nmeros compuestos por tres componentes, que seran los aos, los meses y los das, los cuales
debo restarlos por separado.
Calcular la edad que tiene una persona nacida el 12 de abril de 1985 al 15 de mayo de 2009.
Abstrayendo los datos tendramos:
Fecha actual: 2009-05-15
Fecha de nacimiento: 1985-04-12
Si aplicamos el clculo requerido tendramos que ejecutar las siguientes operaciones:
Ao

Mes

Da

Fecha actual

2009

05

15

Fecha de nacimiento

1985

04

12

Edad

0024

01

03

Solucin: La persona tiene 24 aos, 1 mes y 3 das.


El mtodo de clculo seleccionado aparentemente funciona, pero qu sucedera si debemos
calcular lo mismo para otra persona, cuya fecha de nacimiento es 22 de diciembre de 1980, si
aplicamos el mismo mtodo los resultados seran:
Ao

Mes

Da

Fecha actual

2009

05

15

Fecha de nacimiento

1980

12

22

Edad

0029

-7

-7

Si interpretamos la respuesta tendramos que la edad de la persona es 29 aos, -7 meses y 7 das, lo cual no resulta lgico porque nadie tiene una edad negativa, este debido a que no
podemos realizar restas cuando la fecha de nacimiento es mayor a la fecha actual, en este caso
toca aplicar las siguientes reglas:
1.

Si el da de nacimiento es mayor al da actual, debo pedir prestado 30 das al mes para


poder efectuar la operacin y puesto que he convertido un mes en treinta das tengo que
restarle un mes a la fecha actual.

UNIVERSIDAD TCNICA PARTICULAR DE LOJA La Universidad Catlica de Loja

15

Gua didctica: Lgica de la Programacin

PRIMER BIMESTRE

2.

Si el mes de nacimiento es mayor al mes de la fecha actual, debo pedir prestado un ao


expresado en 12 meses y sumarlos al mes actual, luego hay que restar ese ao que se
convirti en meses al ao actual.

3.

Si luego de realizar todas las operaciones obtenemos un ao en negativo, hay inconsistencia


en los datos por lo tanto no se puede calcular la edad de alguien que todava no nace.

Solucin:
Luego del anlisis realizado, vamos a realizar el clculo correspondiente

Ao

Mes

Da

2009 -1 = 2008

5-1 = 4 + 12 = 18

15+30 = 45

Fecha actual

2009

05

15

Fecha de nacimiento

1980

12

22

Edad

0028

23

Prestamos

Por tanto la persona en realidad tendra 28 aos, 6 meses y 23 das.


Esta solucin podra no ser la nica, pero es correcta.
El problema puede complicarse ms cuando se pide que consideremos los aos bisiestos en los cuales
el mes de febrero tiene 29 das en lugar de 28. Sera capaz de plantear una solucin considerando
este problema? Lo invito a solucionarlo en papel y lpiz.
Ahora qu dificultades tuvo para encontrar la solucin? Cuando se trata de encontrar la solucin una
de las dificultades ms importantes es la representacin del problema en un lenguaje formal como
puede ser el lenguaje matemtico, para poder procesarlo, en esta tarea nos ayudan la lgica y la
matemtica.
Es por ello que nuestro estudio va a comenzar estudiando el papel de la lgica matemtica
en el planteamiento y solucin de problemas.

1.1 Aplicacin de la lgica en la programacin


Comencemos revisando al apartado Lgica del captulo 3 del texto bsico para ver cmo la lgica de
proposiciones nos ayuda a abstraer premisas de un problema y obtener de ella algunas conclusiones.
Luego de revisar el captulo indicado vale recalcar nuevamente la importancia del razonamiento para
poder obtener las proposiciones y llegar a conclusiones.
El estudio de la lgica va ms all del planteamiento de silogismos como se lo ha mostrado en este
apartado, el extracto presentado aqu constituye solamente una parte para comprender como empata
la lgica matemtica con la lgica de programacin.
Segn lo establece Ramrez, la lgica nos ayuda a tener un pensamiento ms ordenado siguiendo
algunas reglas que hacen que el mismo sea ms lgico.

16

UNIVERSIDAD TCNICA PARTICULAR DE LOJA

La Universidad Catlica de Loja

Gua didctica: Lgica de la Programacin

PRIMER BIMESTRE

Si no logramos un pensamiento fundamentado en la razn, corremos el riesgo de lanzar planteamientos


sin la debida argumentacin, lo cual no ayuda a resolver los problemas, y muchas de las soluciones
propuestas adolecern fallas que se vern reflejadas en nuestros programas.

Desarrolle el ejercicio 03.01 del texto bsico.

Como habr notado al obtener conclusiones a partir de las premisas, los enunciados pueden ser
verdaderos, falsos, correctos o incorrectos. El valor de verdad corresponde a su comparacin con la
realidad y la correccin tiene que ver con la argumentacin que sustenta dicha conclusin.
Los ejercicios hasta ahora analizados en el texto son relativamente sencillos, pero en la prctica nos
encontramos con situaciones ms complejas, por lo tanto el razonamiento lgico debe apoyarse en un
gran nmero de equivalencias y reglas de inferencia que permiten llegar a conclusiones verdaderas o
falsas.
Estudie ahora los apartados Lgica de Programacin con sus secciones Aplicacin de la
lgica en programacin y Finalidad de los enunciados del proceso del captulo 3 del
texto bsico.
Como bien menciona el autor, la Lgica de la Programacin es una habilidad o competencia que
permite obtener algoritmos susceptibles de implementarse en un lenguaje de programacin.
Muchas personas tienen facilidad para inferir algoritmos rpidamente, pero como podemos darnos
cuenta el uso adecuado de los silogismos, ayuda a formar esta capacidad. Si usted ha tenido la
oportunidad de estudiar Lgica Matemtica, seguramente habr sentido que no le sirve de mucho para
programacin, lo cual segn lo estamos analizando no es cierto, y lo ms interesante es que le ayuda a
ordenar las ideas para obtener algoritmos eficientes a partir de los enunciados.
Aunque todava no hemos desarrollado ningn algoritmo, hemos podido establecer las salidas
esperadas, los datos de entrada y el proceso de clculo requerido, as como tambin ha establecer si la
informacin que hemos obtenido es suficiente y correcta como para poder resolver el problema que
tenemos en mente.
Si se ha fijado, tenemos diferentes tipos de enunciados que es necesario plantear para poder establecer
las condiciones de un problema; mientras ms grande y complejo es el problema, requerimos una
mayor cantidad de enunciados, los cuales es preciso ubicar en alguna de las tres categoras que son
entradas, proceso y salidas.
1.2 Principios en la elaboracin de enunciados
Como ya hemos mencionado en el apartado anterior, la clave para resolver de manera lgica un
problema es la adecuada elaboracin de enunciados. En esta seccin vamos a analizar los principios
que ubican a los enunciados en entradas, proceso y salidas.
Para el estudio de este tema, tome su texto bsico y lea el subtema Principios en la elaboracin
de enunciados.

UNIVERSIDAD TCNICA PARTICULAR DE LOJA La Universidad Catlica de Loja

17

Gua didctica: Lgica de la Programacin

PRIMER BIMESTRE

Muy probablemente habr tenido experiencia programando bien sea en el colegio, en su trabajo,
o ahora que est estudiando para obtener su ttulo, si corresponde a este ltimo caso, seguramente
reconocer estos principios en algunas de las caractersticas de los algoritmos, de all la importancia de
que antes de resolver un problema, comience planteando los enunciados de acuerdo a cada uno de
los procesos estudiados.
Para medir el grado de comprensin que ha obtenido respecto de la elaboracin de enunciados,
srvase desarrollar el ejercicio 03.02, note que no es necesario haber estudiado el captulo 1 del
texto bsico para hacerlo. Adicionalmente resuelva las preguntas del captulo 3.
1.3 Comprensin y especificacin del problema
Muchos autores inician el estudio de la programacin con situaciones triviales como por ejemplo
resolver el problema de sumar dos nmeros, lo cual la mayora de las veces resulta contraproducente
porque se subestima la verdadera naturaleza de los problemas de programacin.
Qu complejidad se puede encontrar en el problema de sumar dos nmeros o en el de encontrar
el mayor de dos nmeros? Sera posible plantear enunciados para este tipo de problemas? Lo ms
seguro es que pueda poner uno o dos pero no tendr necesidad de desarrollar grandes habilidades de
pensamiento para hacerlo.
Los problemas de programacin reales suelen tener mayor grado de complejidad y se prestan muy
bien para realizar la identificacin de las entradas, proceso y salida. Por ello consideramos importante
comenzar con problemas no triviales que permitan desde el inicio poner en prctica la mayora de los
principios.
Como se ver ms adelante el proceso de programacin inicia con una etapa de anlisis en la cual se
busca identificar todas las caractersticas del problema que incluyen: el contexto del dominio que nos
permitira conocer datos, reglas que acompaan al problema en cuestin y las restricciones de entradas
o salidas que debemos respetar.
1.4 Identificacin de entradas procesos y salida
Tal como se mencion anteriormente la resolucin de un problema de programacin implica la
identificacin de entradas, procesos y salidas, las cuales deben cumplir con las caractersticas indicadas
en la seccin 1.2 de la presente gua.
El anlisis del problema contrario a lo que el sentido comn dictara, debe comenzar con la identificacin
de la SALIDAS esperadas, es decir los resultado que esperamos tener de nuestra solucin. En esta
etapa entonces debemos elaborar los enunciados correspondientes a las salidas que normalmente
corresponderan a los enunciados de resultado.
El siguiente paso es idear el proceso que nos permita llegar al resultado deseado. Los enunciados
del PROCESO, corresponderan a la asignacin de valores, enunciados de clculo y enunciados
condicionales.
Finalmente debemos identificar las ENTRADAS requeridas para poder realizar los clculos. Los enunciados
en esta categora normalmente corresponden con enunciados de asignacin de valores y enunciados
de valor preexistente. La figura 1.2 ilustra grficamente esta forma de analizar el problema.

18

UNIVERSIDAD TCNICA PARTICULAR DE LOJA

La Universidad Catlica de Loja

Gua didctica: Lgica de la Programacin

PRIMER BIMESTRE

Entradas

Proceso

Salidas

1
2

Etapas en la resolucin de un problema


Ejemplo 1.2
Intentemos aplicar los principios de la elaboracin de enunciados al ejemplo 1.1 de la gua didctica
valindonos de la estrategia aqu planteada.
Enunciados de las Salidas

La edad debe expresarse en aos, meses y das.

La edad en aos no debe ser menor que cero.

La edad en meses no puede ser menor que cero.

La edad en meses no puede ser mayor que once.

La edad en das no puede ser menor que cero.

La edad en das no puede ser mayor que treinta.

Enunciados del proceso


Para calcular la edad se debe restar la fecha de nacimiento de la fecha actual.

La fecha debe descomponerse en aos, meses y das.

Se debe comenzar restando los das.

Si el da de nacimiento es mayor al da actual debe solicitar un mes expresado en das a los meses
de la fecha actual, con lo cual se suman 30 das al da actual y se resta un mes al mes actual.

En segunda instancia debe restarse los meses.

Si el mes de nacimiento es mayor que el mes de la fecha actual, debe solicitar un ao expresado
en meses a la fecha actual, con lo cual se suman 12 meses al mes actual y se resta un ao a ao
actual.

Finalmente se resta los aos.

Enunciados de la entrada

Para el clculo de la edad es necesario ingresar la fecha de nacimiento y la fecha actual.

Las fechas actual y de nacimiento deben ingresarse en tres nmeros cada una que representan
ao, mes y da.

La fecha de nacimiento nunca puede ser mayor que la fecha actual.

Un ao tiene 12 meses.

Un mes tiene 28, 30 0 31 das.

UNIVERSIDAD TCNICA PARTICULAR DE LOJA La Universidad Catlica de Loja

19

Gua didctica: Lgica de la Programacin

PRIMER BIMESTRE

Los meses del ao pueden tener valores del 1 al 12.

Los das del mes pueden tener valores del 1 al 31.

EJERCICIOS
Trabajemos ahora para reforzar los conocimientos adquiridos, desarrollando el siguiente ejercicio.
1.

Considere el siguiente problema y elabore los enunciados relacionados con la entrada, procesos
y salidas: se desea entregar una cantidad de dinero en dlares con la menor cantidad de billetes
y monedas.
Ya realiz el ejercicio? Qu bien!
!Continuemos

Autoevaluacin 1
Hemos concluido el estudio de la primera unidad. Conviene comprobar cunto ha logrado asimilar
de los temas revisados en esta parte, para lo cual es necesario que desarrolle el examen rpido del
captulo 3 del texto bsico. Verifique sus respuestas con el solucionario que se encuentra al final de la
gua didctica.

20

UNIVERSIDAD TCNICA PARTICULAR DE LOJA

La Universidad Catlica de Loja

Gua didctica: Lgica de la Programacin

PRIMER BIMESTRE

UNIDAD II
NATURALEZA DE LOS DATOS
El propsito de la presente unidad es conocer la importancia del uso de los datos al momento de
resolver problemas computacionales, as como tambin aprender a elegir los tipos de datos que mejor
se adapten al contexto del problema que estamos tratando de resolver para lograr un mayor rendimiento
en la ejecucin de nuestros algoritmos.
La temtica abordada en esta unidad est vinculada con los captulos 4 y 5 del texto
bsico.
2.1 Naturaleza de los datos
Antes de revisar y desarrollar un algoritmo, es necesario aprender a utilizar los datos que sern procesados
y transformados en resultados (informacin) por dichos algoritmos. Los datos son representaciones
simblicas no significativas que sirven como punto de partida para poder resolver un problema
computacional.
A continuacin se muestran los diferentes tipos de valores que se pueden manejar en un
computador:
Tipo de valor

Descripcin

Numricos

Permiten realizar clculos aritmticos

Cadena

Permite manejar una serie de caracteres como


un solo valor

Fecha

Permiten almacenar fechas del calendario

Booleanos

Permite almacenar
Verdadero-Falso

Nulos

Ausencia de valor

BLOB

Representacin binaria
imgenes, sonidos, etc.

valores

binarios.

para

1-0,

almacenar

A continuacin usted podr darse cuenta en qu punto intervienen los datos, considerando la
arquitectura general de un computador.

Datos

Procesamiento

Informacin

Figura 2.1 Arquitectura general de un computador


Un dato por s mismo no constituye informacin, es el procesado de los datos lo que nos proporciona
informacin.2

2. Wikipedia (2009): Dato, [En lnea] Disponible en: http://es.wikipedia.org/wiki/Datos [Consulta 25-06-2009]

UNIVERSIDAD TCNICA PARTICULAR DE LOJA La Universidad Catlica de Loja

21

Gua didctica: Lgica de la Programacin

2.2

PRIMER BIMESTRE

Expresiones y variables
Para comprender cmo escribir expresiones, srvase estudiar el apartado Expresiones
y Variables del captulo 4 de su texto bsico.

Una vez que ha realizado la lectura del apartado sugerido, podemos concluir que una expresin en
trminos generales es la representacin de un clculo necesario para la obtencin de un resultado; a
continuacin se presenta ejemplos de diferentes tipos de expresiones:
4
UTPL
8+2

Expresin absoluta
Expresin absoluta
Expresin compuesta

nom_variable

RAM
Por otro lado, una variable es una referencia lgica a una posicin fsica de la memoria RAM, tal como
se esquematiza a continuacin:
En donde: nom_variable corresponde al nombre de la variable que referencia al valor 4 (expresin
absoluta), que est almacenado fsicamente en una celda de la memoria RAM.
2.3

Dominios

Una vez que haya revisado los contenidos del libro en relacin a los dominios y sus tipos, podemos
concluir que un dominio es el conjunto de valores vlidos para un dato. Antes de implementar un
algoritmo se debe definir correctamente el dominio de los datos que vayamos a usar, para de esta
forma evitar que se ingresen valores incorrectos. Por ejemplo: si deseamos almacenar la edad en
aos de una persona, claramente podemos darnos cuenta que el rango de valores vlidos estaran
comprendidos entre 0 y 130, este rango corresponder al dominio, evitando as que se ingrese valores
mayores o tipos de datos diferentes que vayan afectar la ejecucin del algoritmo o en su defecto que
provoquen almacenar informacin incorrecta.
2.4

Tipos de operadores

Luego de haber identificado en su texto bsico los tipos de operadores que se puede usar en una
expresin, podemos concluir diciendo que un operador es un smbolo que tiene una funcin predefinida
(suma, resta, multiplicacin, mayor que, etc.); los mismos que nos permiten construir expresiones
compuestas, como las que se muestran a continuacin:
A = (b * h)
A = (b * h) / 2
Y = x^2 + 5

22

UNIVERSIDAD TCNICA PARTICULAR DE LOJA

La Universidad Catlica de Loja

Gua didctica: Lgica de la Programacin

PRIMER BIMESTRE

Los operadores se clasifican de acuerdo a su funcin, as tenemos la siguiente clasificacin:


Operadores aritmticos
Operador

Accin

Suma

Resta

Multiplicacin

Divisin

Exponencial
Operadores de asignacin

Operador

Accin

Igual que
Operadores relacionales o comparativos

Operador

Accin

Igual que

<

Menor que

>

Mayor que

<=

Menor o igual que

>=

Mayor o igual que

!=

Distinto a
Operadores Lgicos

Operador

Accin

NOT

Negacin

AND

Conjuncin (Y)

OR

Disyuncin (O)

Es importante sealar que el resultado de las operaciones lgicas, es decir expresiones que contengan
operadores comparativos o lgicos, est determinado por las tablas de verdad correspondientes a cada
una de ellas, tal como se puede apreciar a continuacin:3
Operador NOT
A

NOT A

3. Wikipedia (2009): Tablas de valores de verdad, [En lnea] Disponible en: http://es.wikipedia.org/wiki/Tabla_de_valores_de_verdad [Consultado 15-06-2009]

UNIVERSIDAD TCNICA PARTICULAR DE LOJA La Universidad Catlica de Loja

23

Gua didctica: Lgica de la Programacin

PRIMER BIMESTRE

Operador AND
A

A AND B

Operador OR

2.5

A OR B

Reglas de precedencia
Estimado estudiante, le sugiero realizar una lectura comprensiva del apartado de reglas
de precedencia y tenga muy en cuenta los diferentes tipos que menciona el texto bsico,
finalmente complemntelos con lo que a continuacin se cita:

Los operadores de una expresin se evalan, en general, de acuerdo al siguiente orden:


1. Parntesis (comenzando por los ms internos)
2. Signo
3. Potencias
4. Productos y divisiones
5. Sumas y restas
6. Relacionales
7. Negacin
8. Conjuncin
9. Negacin
Para poder entender el funcionamiento de las reglas de precedencia, desarrollaremos el siguiente
ejercicio: tenemos la expresin: ((3 + 2) * 2 - 4) / 2 * 5, del cual debemos obtener su resultado, a
continuacin resolveremos dicha expresin paso a paso, tomando en cuenta el orden de precedencia
de los operadores.

24

Expresin inicial

((3 + 2) * 2 - 4) / 2 * 5

Se resuelve (3 + 2)

(5 * 2 - 4) / 2 * 5

Se resuelve 5 * 2

(10 - 4) / 2 * 5

Se resuelve (10 - 4)

6/2*5

Se resuelve 6 / 2

3*5

Se resuelve 3 * 5

15

UNIVERSIDAD TCNICA PARTICULAR DE LOJA

La Universidad Catlica de Loja

Gua didctica: Lgica de la Programacin

PRIMER BIMESTRE

Ejercicio 2.1
Resolver la siguiente expresin teniendo en cuenta las reglas de precedencia.
Expresin

12 / 4 * (7 - 5) / 3 * (4 3)

EJERCICIOS
Es hora de trabajar en los siguientes ejercicios.
1.

Desarrolle los ejercicios del apartado Ejercicio 04.04 del texto bsico.

2.

Desarrolle los ejercicios del apartado Ejercicio 05.01 del texto bsico.

3.

Dados los valores de: X = 1, Y = 4, Z = 10, resolver la siguiente expresin tomando en cuenta
el orden de los operadores.
2 * X + 0.5 * Y 1 / 5 * Z

Autoevaluacin 2
Una vez terminada esta unidad, midamos su nivel de comprensin resolviendo el examen rpido del
captulo 4 del texto bsico.

UNIVERSIDAD TCNICA PARTICULAR DE LOJA La Universidad Catlica de Loja

25

Gua didctica: Lgica de la Programacin

PRIMER BIMESTRE

UNIDAD III
ALGORITMOS
El propsito de la presente unidad es la de explicar en forma general el proceso de desarrollo de software
con todas sus fases y lo que se realiza en cada una de ellas, para que usted tenga una referencia de lo
que implica desarrollar una aplicacin que cumpla con todas las expectativas del usuario. Tambin se
revisar la estructura de un algoritmo y cmo debemos implementarlos aplicndolos a la resolucin de
problemas de la vida real.

La temtica abordada en esta unidad est vinculada con el captulo 6 del texto bsico.

3.1 Ciclo de desarrollo


El desarrollo de aplicaciones informticas involucra una serie de fases que se tienen que ir cumpliendo
para la obtencin del producto final. El conjunto de estas fases se conoce con el nombre de Ciclo de
Desarrollo. Existen diversos autores y metodologas que plantean sus propias fases y denominaciones
para el ciclo de desarrollo, pero podemos resumirlas en las siguientes:
1. Anlisis
2. Diseo
3. Codificacin
4.

Pruebas e implantacin

5. Mantenimiento
Revisemos ahora las actividades que se realizan en cada una de las fases del ciclo de
desarrollo, as como tambin los entregables que se deben generar en cada fase, para
ello srvase estudiar los apartados del captulo 6 de su texto bsico: Procedimiento de
creacin de un programa e Implementacin prctica del ciclo de desarrollo.
Una vez que haya concluido con la revisin de los apartados del texto base, puede darse cuenta que
el desarrollo de una aplicacin informtica para la automatizacin de procesos de negocio no es nada
trivial, por lo que se requiere de un gran equipo de trabajo y de una adecuada planificacin para lograr
el objetivo final.
En la actualidad dos de las metodologas de software ms usadas para el desarrollo de sistemas
informticos de nivel empresarial son MSF (Microsoft Solution Framework) y RUP (Rational Unified
Process). Estas metodologas constituyen un marco referencial que se debe ajustar para cada equipo,
proyecto y empresa. A continuacin se presenta las fases que proponen dichas metodologas.

26

UNIVERSIDAD TCNICA PARTICULAR DE LOJA

La Universidad Catlica de Loja

PRIMER BIMESTRE

Gua didctica: Lgica de la Programacin

Figura 3.1. Modelo de Procesos del MSF4

Figurar 3.2. Modelo de Procesos del RUP5

4. Microsoft. (2002): MSF Process Model v. 3.1, [En lnea] Disponible en: http://www.microsoft.com/msf [Consulta 1506-2009]
5. Jacob, I., Booch, G. y Rumbaugh, J. (2004), El Proceso Unificado de Desarrollo de Software, Espaa, Pearson Educacin.

UNIVERSIDAD TCNICA PARTICULAR DE LOJA La Universidad Catlica de Loja

27

Gua didctica: Lgica de la Programacin

3.2

PRIMER BIMESTRE

Determinacin de requerimientos

Vamos a iniciar este tema definiendo lo que es un requerimiento. La definicin que aparece en [IEEE,
1990] es la siguiente:
Una condicin o capacidad que un usuario necesita para resolver un problema o lograr un
objetivo.
Para poder determinar de forma clara los requerimientos del cliente, usted debe revisar
el apartado Analizar el caso real del captulo 6 de su texto bsico, en donde se explica
en forma detallada y ordenada las actividades que debe realizar para poder completar
de forma acertada la etapa de obtencin o determinacin de requerimientos.
Es importante sealar tambin que la gran cantidad de calificativos que se aplican al trmino
requerimiento muestran distintos aspectos ortogonales que a menudo se consideran aisladamente.
Para intentar clarificar la situacin, se puede identificar tres dimensiones en las que se pueden clasificar
los requerimientos; estas tres dimensiones son:

mbito: Indica en qu mbito se debe entender el requerimiento. En general, y siguiendo entre


otras las propuestas de [IEEE, 1997], [DOD, 1994] y [DAV, 1993], un mbito de sistema indica
que el requerimiento debe cumplirse a nivel de sistema, entendiendo por sistema un conjunto
de hardware y software.

Caracterstica que define: Clasifica los requerimientos en funcin de la naturaleza de la


caracterstica del sistema deseada que se especifica. La clasificacin ms habitual suele ser la
de requerimientos funcionales (qu funciones debe realizar el sistema) y no funcionales (otras
caractersticas del sistema).

Audiencia: Indica la audiencia a la que est dirigido el requerimiento, es decir, las personas
que deben ser capaces de entenderlo. En general, se pueden distinguir dos tipos de audiencia,
los clientes y usuarios, que no tienen por que tener formacin en ingeniera del software, y los
desarrolladores de software. Cuando la audiencia est formada por clientes y usuarios, la forma
ms habitual de definir los requerimientos es mediante lenguaje natural. En el caso de que
la audiencia prevista est formada por desarrolladores de software, los requerimientos suelen
expresarse mediante un modelo, normalmente utilizando tcnicas estructuradas, orientadas a
objetos o formales.

28

UNIVERSIDAD TCNICA PARTICULAR DE LOJA

La Universidad Catlica de Loja

Gua didctica: Lgica de la Programacin

PRIMER BIMESTRE

Figura 3.3. Dimensiones de los requerimientos6


3.3 Estructuracin de pasos del algoritmo
Estimado estudiante, para este tema, estudie el apartado Algoritmos del captulo 6 de
su texto bsico, incluidos los ejercicios.
Antes de desarrollar nuestro primer algoritmo, es preciso dar una definicin:
Un algoritmo es un conjunto de pasos ordenados lgicamente que permiten realizar un tarea.
En base a esta definicin podemos determinar el siguiente proceso al momento de construir nuestros
algoritmos:
1.
2.
3.

Identificar los datos de entrada.


Determinar el procesamiento al que deben someterse los datos de entrada.
Identificar los resultados que se esperan.

Por ejemplo: Se requiere calcular el rea de un terreno rectangular cuyas dimensiones son:
Largo:
Ancho:

10 metros
20 metros

En base a estos datos elaborar un algoritmo que permita presentar el rea de dicho terreno.
1.

Identificamos los datos de entrada:


Dimensiones del terreno (largo y ancho)

2.

Identificamos el proceso que debemos seguir para calcular el rea, en este caso, ser:
rea = largo * ancho

6. Monografas. (2004): Dimensiones de la Ingeniera de Requerimientos, [En lnea] Disponible en: http://www.monografias.
com/trabajos26/sistema-documentacion/sistema-documentacion2.shtml [Consulta 15-06-2009]
UNIVERSIDAD TCNICA PARTICULAR DE LOJA La Universidad Catlica de Loja

29

Gua didctica: Lgica de la Programacin

3.

PRIMER BIMESTRE

Presentamos el resultado (rea) al usuario

Note que el algoritmo est compuesto de esos 3 pasos principales, an no se ha utilizado los tipos de
datos ni la creacin de variables, este tema ser cubierto en la siguiente seccin de la gua, aqu nos
limitamos a ver nicamente la estructuracin general del algoritmo.
Bien, realicemos el siguiente ejercicio.
Ejercicio 3.1

Elaborar un algoritmo que permita determinar el rea de un tringulo equiltero cuyo lado es
5 cm.

3.4 Resolucin de problemas mediante algoritmos


Revise los ejercicios resueltos en su texto bsico, los mismos que se encuentran en el apartado
Analizando los casos y diseando sus algoritmos del captulo 6, para que complete la
resolucin de los problemas que se plantean a continuacin:

Ejercicio 3.2
El programa debe mostrar el factorial de un nmero ingresado por el usuario. El factorial de un
nmero entero positivo se define como el producto de todos los nmeros naturales anteriores
o iguales a l. Por ejemplo:
5! = 5 * 4 * 3 * 2 * 1 = 120
El smbolo ! indica factorial.
Utilice los espacios siguientes para el desarrollo.
Anlisis del caso
rea del conocimiento
Matemtica elemental
Anlisis de los elementos del todo

30

UNIVERSIDAD TCNICA PARTICULAR DE LOJA

La Universidad Catlica de Loja

Gua didctica: Lgica de la Programacin

PRIMER BIMESTRE

Unidades de funcionalidad
ID

Unidad de funcionalidad

Prioridad

Obligatoriedad

Interfaz

Algoritmo
1

Inicio

2
3
4
5
6
Simulacin
Supongamos que ingresamos el nmero 4, el programa debera mostrar lo siguiente:

Ingrese el nmero para obtener su factorial: 4

El factorial de 4 es 24

UNIVERSIDAD TCNICA PARTICULAR DE LOJA La Universidad Catlica de Loja

31

Gua didctica: Lgica de la Programacin

SEGUNDO
PRIMER BIMESTRE
BIMESTRE

EJERCICIOS
Una vez que usted ha profundizado en los temas de la unidad, es el momento que desarrolle su primer
ejercicio de algoritmos.
1.

Desarrolle el caso 6: Regla de tres simple, del apartado Ejercicio 06.01 del texto bsico.

Autoevaluacin 3
Felicitaciones Ha concluido el primer bimestre slo le falta revisar su nivel de comprensin de los
algoritmos resolviendo el examen rpido del captulo 6 del texto bsico.

32

UNIVERSIDAD TCNICA PARTICULAR DE LOJA

La Universidad Catlica de Loja

Comprender,
analizar y resolver
problemas
aplicando los
mtodos de
la ciencia y la
ingeniera.

Analizar las
necesidades de
conocimiento
necesarias para
resolver un
problema.
Unidad 5. Diagramas de
flujo

5.1 Elementos de un
Emplear los
diagrama de flujo
diagramas de flujo
5.2 Elaboracin de
en la resolucin de
diagramas de flujo
problemas.
5.3 Ejercicios con
diagramas de flujo

Conocer la
simbologa de los
diagramas de flujo.

OBJETIVOS DE
APRENDIZAJE

8 horas de
autoestudio
4 horas de
prcticas

Semana 12

Participacin del
foro propuesto en
el EVA

Continuar con
el desarrollo de
la evaluacin a
distancia

Desarrollo de
actividades
recomendadas en la
gua didctica

Lectura
comprensiva

CRONOGRAMA
ACTIVIDADES DE
ORIENTATIVO
APRENDIZAJE
Unidades /Temas
Tiempo estimado
Disponer de
Elaborar algoritmos Unidad 4: Estructuras de Semana 9, 10 y 11 Lectura
decisin y Bucles
fundamentos
que permitan
comprensiva
24 horas de
matemticos,
la resolucin
Desarrollo de
4.1 Flujos de programa
autoestudio
econmicos,
de problemas
actividades
4.2 Estructuras selectivas
12 horas de
estadsticos
utilizando
recomendadas en la
4.3 Bucles
interaccin
y financieros
estructuras de
gua didctica
necesarios para
seleccin y control. 4.4 Estructuras de control
Interaccin con el
anidadas
interpretar,
Utilizar pruebas
EVA
4.5 Pruebas de Escritorio
seleccionar, valorar
de escritorio para
el uso y desarrollo
Inicio del desarrollo
validar la ejecucin
tecnolgico y sus
de la evaluacin a
de los algoritmos
aplicaciones.
distancia.

COMPETENCIAS
ESPECFICAS

CONTENIDOS

7.1 Planificacin para el trabajo del alumno

SEGUNDO BIMESTRE

Correo electrnico

Telfono

Entorno Virtual
de Aprendizaje:
foros, actividades,
documentos.

Gua Didctica

Texto bsico

RECURSOS
DIDCTICOS

Participacin en los
foros.

Evaluaciones
presenciales

Evaluaciones a
distancia

Autoevaluaciones
por unidades en la
gua didctica

EVALUACIN

SEGUNDO BIMESTRE

Gua didctica: Lgica de la Programacin

UNIVERSIDAD TCNICA PARTICULAR DE LOJA La Universidad Catlica de Loja

33

34
Unidad de la 4a la 6

Unidad 6. Desarrollo
Aplicar la lgica
Desarrollar
de problemas de
matemtica en
aplicaciones
programacin
el contexto de
sencillas utilizando
las Ciencias de
herramientas de
6.1 Abstraccin de
la Computacin,
programacin.
ejercicios de
con proyeccin, al
programacin
diseo de circuitos,
6.2 Componentes de una
programacin,
aplicacin
anlisis y desarrollo
6.3 Desarrollo aplicaciones
de algoritmos.
sencillas
Finalizar el
desarrollo de
la evaluacin a
distancia.
Semana 15 y 16 Preparacin para la
prueba presencial del
segundo bimestre.

Semana 13 y 14 Desarrollo de
actividades
16 horas de
recomendadas en la
autoestudio
gua didctica
8 horas de
Participacin del
interaccin
foro propuesto en
el EVA

Gua didctica: Lgica de la Programacin

UNIVERSIDAD TCNICA PARTICULAR DE LOJA

SEGUNDO BIMESTRE

La Universidad Catlica de Loja

Criterios

Pruebas mixtas:
objetivas y ensayo
x

Esfuerzo e inters en los


trabajos
Respeto a las personas
y a las normas de
comunicacin
x

Creatividad e iniciativa
x

x
x

Emite juicios de valor


argumentadamente
x

Dominio del contenido


x

TOTAL

Conocimientos
Anlisis y profundidad en
el desarrollo de los temas

Para aprobar la asignatura se requiere obtener un puntaje mnimo de 28/40 puntos, que equivale al 70%.

Interaccin en el
EVA

Cumplimiento, puntualidad
y responsabilidad
x

Contribucin en el trabajo
colaborativo y de equipo

Habilidades

Presentacin, orden y
ortografa

Actitudes
Investigacin (cita fuentes
de consulta)

PORCENTAJE

14

20 puntos en cada bimestre

En actividades especifcas tanto


presenciales como en el EVA.

70%

Complementa la evaluacin a
distancia, mximo en 1 punto.

30%

20%

10%

Estrategia de aprendizaje*

PUNTAJE

Tenga presente que la finalidad de la valoracin cualitativa es principalmente formativa; sin embargo,
en circunstancias especiales podra afectarle positiva o negativamente en su calificacin cuantitativa.

Sr. estudiante:

** Recuerde: que la evaluacin a distancia del segundo bimestre consta de dos partes: una objetiva y otra de ensayo, debe desarrollarla y entregarla en su respectivo Centro Universitario en la fecha establecida.

* Son estrategias de aprendizaje, no tienen calificacin; pero debe responderlas con el fin de autorregular su proceso de aprendizaje

3. Coevaluacin

Prueba
presencial

Ensayo

Objetiva

Evaluacin a
distancia**

Comportamiento tico

1. Autoevaluacin y actividades
recomendadas.

Formas de evaluacin

2. Heteroevaluacin

Aporta con criterios y


soluciones

7.2 Sistema de evaluacin


SEGUNDO BIMESTRE

Gua didctica: Lgica de la Programacin

UNIVERSIDAD TCNICA PARTICULAR DE LOJA La Universidad Catlica de Loja

35

Gua didctica: Lgica de la Programacin

SEGUNDO BIMESTRE

7.3 Orientaciones especficas para el aprendizaje por competencias


UNIDAD IV
ESTRUCTURAS DE DECISIN Y BUCLES
El propsito de la presente unidad es dar a conocer el funcionamiento y utilidad de las estructuras
de decisin y control, as como tambin su uso en el desarrollo de algoritmos para la resolucin de
problemas. Se revisar tambin mecanismos que le permitan comprobar si el algoritmo desarrollado
funciona o no correctamente.

La temtica abordada en esta unidad est vinculada con el captulo 7 del texto bsico.

4.1 Flujos de programa


Es preciso iniciar dando una definicin de lo que es un programa: Secuencia lgica de instrucciones
que manipulan o procesan un conjunto de datos para obtener resultados que corresponden a la
solucin del problema.
En base a esta definicin podemos indicar que la ejecucin o flujo de un programa consiste en la
realizacin secuencial del conjunto de instrucciones desde la primera a la ltima y de una en una. Este
orden de realizacin nicamente ser alterado mediante las estructuras de decisin y control (bucles).
Los procesos que se pueden llevar a cabo en un programa pueden ser de tipo aritmtico o lgico,
incluyndose algunas operaciones de manejo de caracteres y operaciones de entrada y salida.
Una vez que tenemos clara la definicin de Programa y cmo es su flujo o ejecucin, ahora pasaremos
a revisar los componentes o partes principales que lo conforma, en el siguiente cuadro podemos
observar que bsicamente un programa est compuesto por dos bloques, uno de declaraciones y otro
de instrucciones.
Declaraciones

Declaraciones
Entrada de datos
PROGRAMA

Proceso
Instrucciones

Salida de resultados

Figura 4.1 Estructura de un programa

36

UNIVERSIDAD TCNICA PARTICULAR DE LOJA

La Universidad Catlica de Loja

Gua didctica: Lgica de la Programacin

SEGUNDO BIMESTRE

Bloque de declaraciones
En l se especifican todas las variables que sern usadas por nuestro programa o algoritmo. Se debe
indicar el nombre de la variable, el tipo de dato y su dominio. Por ejemplo, si queremos declarar la
variable base, debemos hacerlo de la siguiente manera:
(Nombre variable, Smbolo Tipo de dato [Dominio])
(base, i[1-n])
En donde, base corresponde al nombre de la variable, i al tipo de dato entero y 1-n al dominio, es decir
en este caso, nmeros mayores o iguales a 1.
Para conocer los smbolos de los tipos de datos, srvase revisar el apartado Representacin
abstracta de tipos base del captulo 4 de su texto base.

Bloque de instrucciones
Est formado por el conjunto de operaciones que se han de realizar para la obtencin de los resultados
deseados. Segn lo indicado en la Figura 4.1, tenemos los siguientes tipos de operaciones:
a.

Entrada de datos.- La constituyen todas las instrucciones que toman los datos de entrada desde
un dispositivo externo y los almacenan en la memoria central para que puedan ser procesados.

b.

Procesamiento de datos.- Est formado por las instrucciones que modifican los datos a partir de
su estado inicial (datos de entrada) hasta el estado final (resultados).

c.

Salida de resultados.- Conjunto de instrucciones que toman los datos finales (resultados) de la
memoria central y los enva a los dispositivos externos.

Ahora bien, procederemos a adoptar un estndar al momento de escribir nuestras instrucciones que
formarn parte del programa o algoritmo. De acuerdo al tipo de instruccin u operacin que vayamos
a emplear, tenemos lo siguiente:
a. Declaracin

(Nombre variable, Smbolo tipo de dato [Dominio])


(lado, i[1-n])

b.

Cambio de estado (Asignacin)


Nombre de variable Expresin
lado 10
c.

Lectura de datos (Peticin)

>> Nombre de variable


>> lado

UNIVERSIDAD TCNICA PARTICULAR DE LOJA La Universidad Catlica de Loja

37

Gua didctica: Lgica de la Programacin

d.

Muestra de datos

<< Expresin
<< lado

SEGUNDO BIMESTRE

Estimado estudiante, usted debe revisar el apartado Operaciones a nivel dato del captulo
7 de su texto bsico.

4.2 Estructuras selectivas


Las estructuras selectivas permiten realizar la evaluacin de expresiones lgicas, para controlar la
ejecucin de una o ms instrucciones. Existen principalmente dos tipos de estructuras selectivas o
condicionales que son:
a.

Condicional simple
Si Expresin lgica entonces

Instrucciones a ejecutar si la expresin lgica es True (verdadera)
Fin si
Ejemplo:
Si edad >= 18 entonces

>> Usted es mayor de edad
Fin si

b.

Condicional compuesto
Si Expresin lgica entonces

Instrucciones a ejecutar si la expresin lgica es True (verdadera)
De lo contrario

Instrucciones a ejecutar si la expresin lgica es False (falsa)
Fin si
Ejemplo:
Si edad >= 18 entonces

>> Usted es mayor de edad
De lo contrario

>> Usted es menor de edad
Fin si

38

UNIVERSIDAD TCNICA PARTICULAR DE LOJA

La Universidad Catlica de Loja

Gua didctica: Lgica de la Programacin

SEGUNDO BIMESTRE

Para aclarar estos conceptos, por favor proceda a realizar la lectura del apartado Estructuras
de decisin del captulo 7 de su texto bsico.

4.3 Bucles
Los bucles tambin conocidos como ciclos repetitivos o estructuras de control, permiten realizar la
ejecucin de un conjunto de instrucciones de manera repetitiva mediante la evaluacin de una o ms
condiciones lgicas o por medio de un contador asociado. Antes de proceder a revisar los bucles que
usaremos en el desarrollo de nuestros algoritmos, es preciso aclarar dos conceptos clave al trabajar con
ciclos repetitivos, estos conceptos son: contadores y acumuladores.
a. Contadores
Un contador es una variable que se utiliza para contar cualquier evento que pueda ocurrir dentro
de un programa. Generalmente se suele contar desde 0 y con incrementos de uno en uno.
Para utilizar correctamente un contador primero de lo debe inicializar y luego incrementar; as
tenemos:
contador 0

Inicializacin

contador contador + 1

Incremento de 1 en 1

b. Acumuladores
Un acumulador es una variable que se utiliza para acumular elementos sucesivos con una misma
operacin. Generalmente se usan para calcular sumas o productos. Al igual que los contadores primero
se los debe inicializar y luego realizar la operacin de acumulacin; as tenemos:
suma 0
suma suma + expresin
Una vez que hemos revisado lo que es un contador y un acumulador, podemos empezar a
estudiar los bucles (loop), para ello lo invito a realizar la lectura del apartado Estructuras de
Control del captulo 7 de su texto bsico.
Cabe sealar que dependiendo del lenguaje de programacin que se use, existen varios ciclos repetitivos
que podemos emplear, sin embargo son derivaciones de los dos tipos de bucles que explicaremos a
continuacin.
a.

Bucles de comparacin al inicio


Inicializacin del contador
Mientras Expresin lgica Entonces

Uso del contador

Instrucciones a ejecutar si la Expresin lgica es True (verdadera)
Fin Mientras

UNIVERSIDAD TCNICA PARTICULAR DE LOJA La Universidad Catlica de Loja

39

Gua didctica: Lgica de la Programacin

SEGUNDO BIMESTRE

Ejemplo: Escribir los nmeros dgitos.


numero 0
Mientras numero < 10 Entonces

<< numero

numero numero +1
Fin Mientras
El resultado del ejemplo es:
0 1
b.

Bucles de comparacin al final


Inicializacin del contador
Inicio

Instrucciones a ejecutar si la Expresin lgica es True (verdadera)

Uso del contador
Hasta que Expresin lgica
Ejemplo: Escribir los nmeros dgitos.
numero 0
Inicio

<< numero

numero numero +1
Hasta que numero >= 10
El resultado del ejemplo es:
0

Como puede darse cuenta el resultado en los dos ejemplos es el mismo, por lo que podemos usar en este
caso particular cualquiera de los dos bucles, ahora bien, lo invito a contestar la siguiente interrogante
una vez que haya realizado la lectura del apartado Estructuras de Control de su texto bsico, Cul es
la diferencia entre un bucle de comparacin al inicio y un bucle de comparacin al final?
4.4 Estructuras de control anidadas
Se conoce como estructuras de control anidadas a la combinacin o uso de las estructuras de decisin y/
o ciclos repetitivos (bucles) en la elaboracin de un algoritmo. En otras palabras, cuando una estructura
de control se coloca dentro de otra, se dice que est anidada.
Las estructuras de control pueden anidarse en tantos niveles como se desee. A fin de que las estructuras
anidadas sean ms fciles de leer, utilizaremos como una prctica habitual el aplicar sangra al cuerpo
de cada una de las instrucciones anidadas.

40

UNIVERSIDAD TCNICA PARTICULAR DE LOJA

La Universidad Catlica de Loja

Gua didctica: Lgica de la Programacin

SEGUNDO BIMESTRE

Ejemplo 4.1
Determinar si la edad de una persona es la correcta para sufragar.
Si edad >= 18 entonces

Si edad < 65 entonces

<< Usted debe sufragar obligatoriamente

Caso Contrario

<< Usted puede sufragar opcionalmente
Fin Si
Caso Contrario
<< Usted no puede sufragar
Fin Si
Como usted puede apreciar en el ejemplo 4.1, se ha utilizado anidamiento en la estructura de
decisin (condicional) para resolver el problema en mencin. Cabe indicar tambin que existen
varias soluciones a dicho problema, las mismas que estn relacionadas con la capacidad de cada
persona para comprender, encontrar y plasmar dichas soluciones en un algoritmo. Esta capacidad se
desarrolla mediante la prctica continua, por lo que lo invito desde ya a plasmar los conocimientos
aqu aprendidos, mediante la realizacin de ejercicios que permitan potenciar su habilidad para la
resolucin de problemas computacionales.
Ahora bien, una vez que hemos estudiado las estructuras de decisin y bucles, estamos en la capacidad
de desarrollar algoritmos que nos permitan resolver diferentes tipos de problemas, para ello vamos a
hacer uso de las Miniespecificaciones, que tambin son conocidas como Pseudocdigo, es decir un
lenguaje neutral, que sin llegar a la rigidez de la sintaxis de un lenguaje de programacin ni a la fluidez
del lenguaje coloquial, permite codificar un programa o algoritmo con mayor agilidad.
Estimado estudiante, lo invito a realizar la lectura del Apartado Miniespecificaciones del
captulo 7 de su texto bsico.
Una vez que usted ha realizado la lectura indicada es posible que hayan surgido algunas
dudas, mismas que intentaremos aclarar con el ejemplo siguiente.

Ejemplo 4.2
Traducir a miniespecificacin el ejemplo 4.1 sobre la edad de una persona para sufragar.

UNIVERSIDAD TCNICA PARTICULAR DE LOJA La Universidad Catlica de Loja

41

Gua didctica: Lgica de la Programacin

SEGUNDO BIMESTRE

Observe el siguiente planteamiento.


1

INICIO:

(edad, i[1..160])

<< Ingrese su edad en aos:

>> edad

Si edad >= 18 entonces

Si edad < 65 entonces

<< Usted debe sufragar obligatoriamente

Caso Contrario

<< Usted puede sufragar opcionalmente

6
7
8
9
10

Fin Si

11

Caso Contrario

12

<< Usted no puede sufragar

13

Fin Si

14

:FIN

En la miniespecificacin podemos observar las siguientes instrucciones:


(edad, i[1..160])
Declaracin de la variable edad
<< Ingrese su edad en aos:
Presentacin de un mensaje
>> edad
Lectura de datos sobre la variable edad

-
-
-

4.5 Pruebas de escritorio


En la seccin anterior usted aprendi a desarrollar algoritmos utilizando las miniespecificaciones, ahora
bien lo que necesitamos saber es si nuestro algoritmo funciona correctamente, en decir si hace lo que
tiene que hacer cmo podemos verificar este cometido?, para poder comprobar esto, nos valemos de
las pruebas de escritorio que no son ms que pruebas manuales que permiten visualizar el estado de
las variables durante la ejecucin del programa, lo que nos permitir saber en donde se encuentra el
error, para proceder a su correccin.
Estimado estudiante, para comprender el ejercicio que a continuacin est resuelto,
usted debe revisar primero los ejercicios de su texto bsico en el captulo 7, en el
apartado Miniespecificaciones de los casos prcticos.
Para llevar a cabo las pruebas de escritorio, vamos a resolver el siguiente ejemplo:

42

UNIVERSIDAD TCNICA PARTICULAR DE LOJA

La Universidad Catlica de Loja

SEGUNDO BIMESTRE

Gua didctica: Lgica de la Programacin

Ejemplo 4.3

Elaborar un algoritmo utilizando miniespecificaciones, que permita leer el nombre y el sueldo mensual
de 4 empleados, se debe presentar el nombre y el sueldo del empleado que ms gana as como tambin
del que menos gana. Si se repite el mayor o menor sueldo se presenta el primero que se encuentre.
Para resolver este problema, primero debemos identificar claramente cules van a ser las salidas, el
proceso y las entradas, para poder desarrollar con xito la miniespecificacin; as tenemos:
Enunciados de las Salidas

Se debe presentar el nombre y el sueldo mensual del empleado que ms gana.

Se debe presentar el nombre y el sueldo mensual del empleado que menos gana.

Si se repite el mayor o menor sueldo se debe presentar el primero que se encuentre.

Enunciados del proceso


Se debe hacer uso de un bucle para solicitar el ingrese de los 4 empleados.

Para obtener el empleado que ms gana, se debe comparar los datos ingresados mediante un
condicional y dependiendo si el sueldo ingresado es mayor al anterior, se lo almacena en una
variable, que finalmente ser la que se presente como resultado final, al terminar la ejecucin del
bucle.

Para obtener el empleado que menos gana, se debe comparar los datos ingresados mediante un
condicional y dependiendo si el sueldo ingresado es menor al anterior, se lo almacena en una
variable, que finalmente ser la que se presente como resultado final, al terminar la ejecucin del
bucle.

Enunciados de la entrada

Se debe ingresar el nombre de 4 empleados junto con su sueldo mensual.

Una vez que tenemos claro lo antes mencionado, necesitamos declarar variables para almacenar el
nombre del empleado y su sueldo mensual, tambin necesitamos variables para almacenar el nombre
de la persona que ms gana y su sueldo, as como tambin el nombre de la persona que menos gana
y su sueldo. Luego tenemos que ir comparando el sueldo de cada empleado que se ingresa para poder
determinar el mayor y menor valor, para ello emplearemos la estructura de decisin, y para controlar
que nos ingrese 4 empleados nos valdremos del bucle de comparacin al inicio (Mientras). En base a
todo esto procedemos a escribir nuestra miniespecificacin.

UNIVERSIDAD TCNICA PARTICULAR DE LOJA La Universidad Catlica de Loja

43

Gua didctica: Lgica de la Programacin

SEGUNDO BIMESTRE

INICIO:

(nombre,x(50))

(sueldo,d[0-n])

(nombreMaySueldo,x(50))

(sueldoMayor,d[0-n])

(nombreMenSuedo,x(50))

(sueldoMenor,d[0-n])

(num, i[0-n])

<< Ingrese el nombre y el sueldo

10

>> nombre

11

>> sueldo

12

nombreMaySueldo nombre

13

sueldoMayor sueldo

14

nombreMenSuedo nombre

15

sueldoMenor sueldo

16

num 2

17

18

num num +1

19

<< Ingrese el nombre y el sueldo

20

>> nombre

21

>> sueldo

22

Si sueldo > sueldoMayor entonces

23

sueldoMayor sueldo

24

nombreMaySueldo nombre

25

26

27

sueldoMenor sueldo

28

nombreMenSueldo nombre

29

Fin Si

30

Fin Si

31

Fin Mientras

32


<< El empleado que ms gana es: + nombreMaySueldo + con un sueldo de: $ +
sueldoMayor

33


<< El empleado que menos gana es: + nombreMenSueldo + con un sueldo de: $ +
sueldoMayor

34

:FIN

Mientras num <= 4 entonces

Caso Contrario
Si sueldo < sueldoMenor entonces

Una vez que hemos escrito la miniespecificacin, realizamos la prueba de escritorio, para verificar si
nuestro algoritmo es o no correcto. Para ello indicaremos mediante el uso de tablas el estado (valor) de
las variables durante la ejecucin del programa.
Supongamos que ingresamos los datos de los siguientes 4 empleados:

44

UNIVERSIDAD TCNICA PARTICULAR DE LOJA

La Universidad Catlica de Loja

Gua didctica: Lgica de la Programacin

SEGUNDO BIMESTRE

Nombre: Luis

Sueldo mensual: $ 700

Nombre: Mara

Sueldo mensual: $ 800

Nombre: Jos

Sueldo mensual: $ 400

Nombre: Jorge

Sueldo mensual: $ 1000

A la lnea 16, la tabla lucira as:


Variable

Valor

nombre

Luis

sueldo

700

nombreMaySueldo

Luis

sueldoMayor

700

nombreMenSueldo Luis
sueldoMenor

700

num

En la primera repeticin dentro del bucle Mientras entre la lnea 17 y 31, el resultado sera el
siguiente:
Variable

Valor

nombre

Mara

sueldo

800

nombreMaySueldo

Mara

sueldoMayor

800

nombreMenSueldo Luis
sueldoMenor

700

num

En la segunda repeticin dentro del bucle Mientras entre la lnea 17 y 31, el resultado sera el
siguiente:
Variable

Valor

nombre

Jos

sueldo

400

nombreMaySueldo

Mara

sueldoMayor

800

nombreMenSueldo Jos
sueldoMenor

400

num

UNIVERSIDAD TCNICA PARTICULAR DE LOJA La Universidad Catlica de Loja

45

Gua didctica: Lgica de la Programacin

SEGUNDO BIMESTRE

En la tercera repeticin dentro del bucle Mientras entre la lnea 17 y 31, el resultado sera el
siguiente:
Variable

Valor

nombre

Jorge

sueldo

1000

nombreMaySueldo

Jorge

sueldoMayor

1000

nombreMenSueldo Jos
sueldoMenor

400

num

A la lnea 32, tendremos:


El empleado que ms gana es: Jorge con un sueldo de: $ 1000

A la lnea 33, tendremos:


El empleado que menos gana es: Jos con un sueldo de: $ 400

Con lo que podemos concluir que el algoritmo es correcto gracias a la prueba de escritorio que hemos
ejecutado.

EJERCICIOS 4.1
En base al ejercicio del clculo de la edad de una persona explicado en la Unidad 1 de la
presente gua didctica, realice las pruebas de escritorio, siguiendo la miniespecificacin
propuesta para dicho problema. Utilizar los siguientes datos de prueba:
Fecha de nacimiento:
Fecha actual:

01/10/1985
03/07/2009

INICIO:

(anio_n, i[1900-2009])

(mes_n, i[1-12])

(dia_n, i[1-31])

(anio_a, i[1900-2009])

(mes_a, i[1-12])

(dia_a, i[1-31])

(edad_a, i[0-150])

(edad_m, i[0-12])

10

(edad_d, i[0-31])

11

<<Ingrese la fecha de nacimiento en aos, meses y das

46

UNIVERSIDAD TCNICA PARTICULAR DE LOJA

La Universidad Catlica de Loja

Gua didctica: Lgica de la Programacin

SEGUNDO BIMESTRE

12

>> anio_n

13

>> mes_n

14

>> dia_n

15

<<Ingrese la fecha actual en aos, meses y das

16

>> anio_a

17

>> mes_a

18

>> dia_a

19

Si dia_n > dia_a entonces

20

dia_a dia_a + 30

21

mes_a mes_a -1

22

23

edad_d dia_a dia_n

24

25

mes_a mes_a + 12

26

anio_a anio_a 1

27

28

edad_m mes_a mes_n

29

Si anio_n > anio_a entonces

30

<< Error: la fecha de nacimiento es mayor a la actual

31

Caso Contrario

32

edad_a anio_a anio_n

33

<< Edad: + edad_a + edad_m + edad_d

34

Fin Si

35

:FIN

Fin Si
Si mes_n > mes_a entonces

Fin Si

UNIVERSIDAD TCNICA PARTICULAR DE LOJA La Universidad Catlica de Loja

47

Gua didctica: Lgica de la Programacin

SEGUNDO BIMESTRE

EJERCICIOS
Le recuerdo que la asignatura es prctica, por ello lo invito a desarrollar el siguiente ejercicio.
1.

Desarrolle el caso 6: Regla de tres simple, en el apartado Ejercicio 07.01 del texto bsico.

Autoevaluacin 4
Qu tanto logr comprender de este tema? Mida su avance resolviendo el examen rpido del captulo
7 del texto bsico.

48

UNIVERSIDAD TCNICA PARTICULAR DE LOJA

La Universidad Catlica de Loja

Gua didctica: Lgica de la Programacin

SEGUNDO BIMESTRE

UNIDAD V
DIAGRAMAS DE FLUJO
Una vez que ha aprendido cmo resolver problemas utilizando las diferentes herramientas de la lgica
de programacin, vamos a continuar nuestro estudio con una tcnica visual de programacin conocida
como Diagramas de flujo de programa, la cual le ayudar a comprender mejor la manera de resolver
problemas de programacin.

El propsito de este captulo es ensearle a utilizar los diagramas de flujo de programas


utilizando el estndar ANSI/ISO 5887-1985 para diagramas de flujo, por lo que usaremos como
referencia el captulo 8 del texto bsico.
Comencemos estudiando algunos preliminares sobre este tema en al apartado
Diagramas de flujo del captulo 8, solamente hasta las Reglas para la elaboracin de
un diagrama de flujo .
Como habr notado, los diagramas de flujo de programa son una poderosa herramienta para expresar
la lgica de la programacin, pero se debe tener en cuenta algunos principios que se plantean
efectivamente en el texto, otro aspecto es que los smbolos a usarse deben corresponder a una notacin
estndar para que todos entiendan lo que se quiere expresar con el mismo.
En este punto podra ser til plantearse la interrogante Si ya puedo escribir miniespecificaciones, para
qu me sirven los diagramas de flujo? El texto menciona que para hacer los diagramas de flujo, no es
necesario tener la miniespecificacin, y esto es verdad, pero cul de los dos debo usar?, es necesario
desarrollar ambos?
La respuesta a estas preguntas las podemos encontrar en los siguientes planteamientos:
1.

La notacin visual ayuda a tener una apreciacin completa de la solucin que difiere de la
obtenida en las miniespecificaciones, esto gracias a una mejor visualizacin lograda con el uso
de los smbolos grficos.

2.

La notacin estndar permite una comunicacin ms efectiva, lo cual convierte a los diagramas
de flujo en una excelente herramienta para documentar los programas.

3.

La lgica de programacin debe expresarse en un lenguaje independiente de cualquier lenguaje


de programacin, las mini especificaciones tienden a inclinarse a uno u otro lenguaje lo cual
incide en el cdigo de la miniespecificacin, en tanto que los diagramas de flujo son totalmente
independientes de cualquier lenguaje de programacin.

En base a estas premisas, obtenga sus propias conclusiones.


5.1

Elementos de un diagrama de flujo

Un diagrama de flujo bsicamente est conformado por smbolos y reglas. Si usted recapitula un poco,
se dar cuenta de que hay correspondencia entre estos smbolos y las sentencias vlidas de un programa,
por lo que se puede dibujar un diagrama de flujo a partir de una miniespecificacin o hacerlo sin ella.

UNIVERSIDAD TCNICA PARTICULAR DE LOJA La Universidad Catlica de Loja

49

Gua didctica: Lgica de la Programacin

SEGUNDO BIMESTRE

En cuanto a los smbolos, los Diagramas de Flujo de Programa tienen 4 categoras que son:

De datos (entrada/salida), ingresar o mostrar datos.

De preparacin de datos.

De proceso.

Especiales.

ENTRADA/SALIDA DE DATOS
Para entrada o salida de datos se usa el smbolo
al cual se le debe indicar si se trata de un ingreso
de datos (GET) o una presentacin de datos (PUT), aunque esto en realidad no corresponde al estndar,
tal como lo menciona el autor del libro, por lo que se puede usar otro tipo de notacin para indicar si
se trata de una entrada o una salida. Otro aspecto que no se menciona en el libro es la posibilidad de
combinar un mensaje de solicitud de datos con una entrada de datos, en realidad sera una entrada de
datos acompaada de un mensaje de peticin para el usuario como lo podemos apreciar en la figura
5.1, en la cual se ha colocado dos posibilidades para el ingreso de los datos.
En la prctica muchos programadores que se enfocan en la solucin de un problema consideran que no
es necesario colocar mensajes de entrada de datos, puesto que esos son detalles de implementacin,
en tal virtud podra ser suficiente utilizar PUT para mostrar resultados y GET para obtener valores en
cuyo caso se colocar nicamente el nombre de las variables en las que se almacenarn los datos.

s
In g re se u n
n m e ro

E
In g re se u n
n m e ro , n u m

E
num

Figura 5.1 Formas de utilizar le smbolo de entrada/salida de datos


SIMBOLO DE PROCESOS
En esta categora tenemos varios smbolos de proceso que tal como se encuentra explicado en el texto
bsico, son usados en la mayora de notaciones, en este punto simplemente comentaremos algunos
aspectos.
Si lo piensa un poco, la preparacin de datos definida en smbolo
, podra bien realizarse con el
smbolo de proceso
, no habra problema en hacerlo, pero la preparacin de datos normalmente
no forma parte del problema, es por ello que al tratarse de programacin visual se tiene una visin ms
clara del problema si se diferencian este tipo de procesos.

50

UNIVERSIDAD TCNICA PARTICULAR DE LOJA

La Universidad Catlica de Loja

Gua didctica: Lgica de la Programacin

SEGUNDO BIMESTRE

Con relacin al smbolo


vale realizar una aclaracin importante, puesto que en la descripcin
se habla de un proceso nominado, que en trminos un poco ms cercanos a nuestra jerga, seran
invocaciones a subrutinas las cuales son partes de programa que cumplen una tarea y concluyen
devolviendo el control al programa desde el que fueron llamadas.
El smbolo
se usa para representar procesos que se ejecutan al mismo tiempo, en la mayora
de programas de procesamiento de datos no es tan usual que esto suceda puesto que la mayora
de situaciones se procesan de manera secuencial, en otros contextos el uso de procesos paralelos es
indispensable, quiz uno de los campos donde mayor aplicacin tienen este tipo de procesamiento
son los juegos en donde cada elemento tiene su comportamiento independiente de las acciones del
usuario, es decir no esperan una orden del usuario para actuar sino, que funcionan principalmente
controlados por eventos que normalmente pueden estar relacionados con el tiempo o alguna accin
proveniente del exterior que les obliga a cambiar de comportamiento.
Con relacin a los smbolos
se usan para establecer los lmites y las condiciones de
ejecucin de un bucle o tambin denominados ciclos repetitivos que estudi en el captulo anterior.
Las lneas de flujo se usan para unir smbolos y nos ayudan a establecer el orden de ejecucin de las
instrucciones contenidos en los smbolos, estas lneas deben terminar en una punta de flecha para
indicar de a dnde va el flujo, adems se debe considerar que el orden de lectura normalmente suele
ser de izquierda a derecha y de arriba hacia abajo, adems estas lneas siempre deben dibujar se en
ngulos rectos.
SIMBOLOS ESPECIALES
Se llaman especiales porque si bien no representan ningn proceso, nos ayudan a identificar el inicio
o el final
, o la continuacin de una seccin de diagrama
debido a que es muy grande
para colocarlo todo junto.
Otro smbolo que se puede usar en la categora de especial es el smbolo de anotacin
cuyo
uso es importante para clarificar varias secciones del programa con comentarios respecto de la lgica
utilizada o alguna consideracin importante, este smbolo es particularmente importante en secciones
del diagrama cuyo nivel de complejidad es alto.
El uso de la notacin estndar como mencionbamos anteriormente tiene radical importancia, por
lo tanto consideraremos como mala prctica el no usar los smbolos definidos o inventar otro tipo de
notacin.
5.2

Elaboracin de diagramas de flujo

El desarrollo de diagramas de flujo puede realizarse de dos maneras, la primera es partir de una
miniespecificacin y la segunda es hacerlo directamente sin ella, en cualquiera de los dos casos
debemos tener en cuenta la necesidad de realizar el anlisis correspondiente del problema, tal como
aprecibamos en el captulo 1 de la presente gua didctica, sin este anlisis resultar muy complicado
tratar de resolver cualquier problema.
Vale acotar adems que cualquier instruccin dada en miniespecificacin tiene su contraparte en
los diagramas de flujo, por lo que la traduccin podra realizarse de manera directa y viceversa. Una
diferencia fundamental es que tanto en las miniespecificaciones conocidas tambin como pseudocdigo
y el cdigo de un programa en un lenguaje cualquiera es preciso realizar pasos previos como la
UNIVERSIDAD TCNICA PARTICULAR DE LOJA La Universidad Catlica de Loja

51

Gua didctica: Lgica de la Programacin

SEGUNDO BIMESTRE

declaracin de variables donde se especifica el tipo de dato y tamao de las variables que se van a
usar, en los diagramas de flujo esto no es necesario, puesto que como mencionamos antes son detalles
de implementacin.
Para aprender cmo escribir diagramas de flujo, remtase a la seccin Cmo elaborar
un diagrama de flujo de programa del captulo 8, y estudie detenidamente los primeros
diagramas que le van indicando cada una de las estructuras bsicas de un diagrama de
flujo.
En la seccin del libro indicada, se ha mostrado como construir un diagrama de flujo para un programa
que lea nmeros del 1 al 10 hasta que se ingrese el nmero 7, y adems se lo ha hecho a partir de
una miniespecificacin. Ahora es posible que se est preguntando si ya tengo la miniespecificacin,
para qu hago el diagrama?, para responder a esta pregunta le voy a proponer un ejemplo para que lo
analice y luego veamos lo que piensa.
Se desea desarrollar un diagrama de flujo para un programa que sea capaz de decir si un nmero es
perfecto. Se considera que un nmero es perfecto cuando la sumatoria de todos sus divisores exactos
es igual al mismo nmero.
La miniespecificacin para este algoritmo sera la siguiente:
1

INICIO:

(num, i[0-n])

(cnt, i[0-n])

(sum, i[0-n])

<< Ingrese el nmero

>> num

cnt 1

sum 0

Mientras cnt <= num entonces

10

Si num % cnt =0 entonces

11

<< cnt

12

sum sum + cnt

13

Fin si

14

Cnt = cnt + 1

15

Fin mientras

16

Si sum = num entonces

17

<< El nmero es perfecto

18
19

Fin si
:FIN

Si traducimos esta miniespecificacin a diagrama de flujo obtendramos el diagrama de la figura 5.2, en


el cual se puede apreciar con mayor claridad cul es la lgica de programacin utilizada, esto a pesar
de que el cdigo de la miniespecificacin es bastante corto, el seguimiento del programa se facilita
considerablemente en el diagrama.
El programa seleccionado para este ejercicio es relativamente sencillo, sin embargo se presta para
mostrar las diferencias entre una y otra tcnica de representar la lgica de la programacin.

52

UNIVERSIDAD TCNICA PARTICULAR DE LOJA

La Universidad Catlica de Loja

Gua didctica: Lgica de la Programacin

SEGUNDO BIMESTRE

Inicio

num

cnt

sum

0
Verifica si cnt es d ivisor d e
num , m ediante la b usqueda
del residuo d e la d ivisin , si
este e s 0, e s divisor e xcto

cnt < num

(num % cnt) = 0

Si

cnt

sum

sum + cnt

no

cnt = cnt +
1

cnt

sum = num

si

El num ero
es p erfecto

no
El nm ero
no e s
perfecto

fin

Figura 5.2 Diagrama de flujo de programa para encontrar si un nmero es perfecto


Como seguramente se habr dado cuenta, los diagramas de flujo permiten hacer un seguimiento ms
claro de la lgica utilizada para resolver el problema. Qu podra responder ahora respecto de las
preguntas planteadas anteriormente?
Ahora, trabajemos sobre la otra estrategia para desarrollar los diagramas de flujos, que sera dibujar el
diagrama sin hacer la miniespecificacin.

UNIVERSIDAD TCNICA PARTICULAR DE LOJA La Universidad Catlica de Loja

53

Gua didctica: Lgica de la Programacin

SEGUNDO BIMESTRE

Ejemplo 5.1
Resolver mediante un diagrama de flujo el ejemplo 1.2 del clculo de la edad de una persona que
planteamos en la unidad 1, en este caso no vamos a tener como punto de referencia la miniespecificacin,
sino el anlisis del problema que bsicamente lo desarrollamos planteando enunciados para las salidas,
el proceso y las entradas requeridas.
En este caso como el anlisis del problema ya fue realizado, vamos a comenzar plasmando en el
diagrama las entradas, luego el proceso y finalmente las salidas, esto significa que para analizar el
problema, debemos partir desde las salidas, pero para ya idear la solucin, debemos comenzar en
sentido contrario.
Comencemos desarrollando nuestro diagrama con las entradas, para ello repliquemos los enunciados
de la parte de entrada, pero numerndolos para poder explicarlo mejor:
Enunciados de la entrada
1.

Para el clculo de la edad es necesario ingresar la fecha de nacimiento y la fecha actual.

2.

Las fechas actual y de nacimiento deben ingresarse en tres nmeros cada una que representan
ao, mes y da.

3.

La fecha de nacimiento nunca puede ser mayor que la fecha actual.

4.

Un ao tiene 12 meses.

5.

Un mes tiene 28, 30 31 das.

6.

Los meses del ao pueden tener valores del 1 al 12.

7.

Los das del mes pueden tener valores del 1 al 31.

En primer lugar todo diagrama de flujo debe comenzar con el smbolo de inicio (figura 5.3), de la
siguiente manera:
Inicio

Figura 5.3 Inicio de un diagrama de flujo

Luego realizamos la entrada de datos recogiendo los enunciados 1,2, 4 y 5, en este caso no nos
estamos preocupando por los mensajes de entrada para el usuario, ni por la validacin de los valores
mximos y mnimos de cada mes, sin embargo se ha colocado comentarios en el diagrama para que el
programador sepa los detalles de cmo se que se debe implementar.

54

UNIVERSIDAD TCNICA PARTICULAR DE LOJA

La Universidad Catlica de Loja

Gua didctica: Lgica de la Programacin

SEGUNDO BIMESTRE

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 ient , validando 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

Figura 5.4 Diagrama de flujo parcial calculo edad, enunciados entrada


En cuanto a las entradas hemos considerado todos los enunciados, excepto el nmero 3, el cual nos
plantea que la fecha de nacimiento nunca puede ser mayor a la fecha actual, aunque se puede disear
instrucciones para validarlo en la entrada, quiz sera ms conveniente verificarlo ms adelante para
reducir un poco la lgica, puesto que de todos modos vamos a comparar los aos, los meses y los
das. Otra opcin puede ser el desarrollo de subrutina que se encargue de esta validacin, la cual
explicaremos en el siguiente captulo.
Dicho esto vamos a proceder a trabajar con los enunciados relacionados con el proceso, igualmente los
numeramos para referenciarlos mejor:
Enunciados del proceso
1.

Para calcular la edad se debe restar la fecha de nacimiento de la fecha actual.

2.

La fecha debe descomponerse en aos, meses y das.

3.

Se debe comenzar restando los das.

4.

Si el da de nacimiento es mayor al da actual debe solicitar un mes expresado en das a los meses
de la fecha actual, con lo cual se suman 30 das al da actual y se resta un mes al mes actual.

5.

En segunda instancia debe restarse los meses.

6.

Si el mes de nacimiento es mayor que el mes de la fecha actual, debe solicitar un ao expresado
en meses a la fecha actual, con lo cual se suman 12 meses al mes actual y se resta un ao a ao
actual.

7.

Finalmente se resta los aos.

Para la elaboracin del diagrama comencemos con los enunciados 1,2, 3 y 4, lo cual significa que
debemos hacer una resta comenzando por los das y necesitamos tres variables para guardar aos,
meses y das que corresponden a la edad. Acogiendo el enunciado 4 planteamos en primera instancia
la pregunta respecto si el da de nacimiento es mayor al da actual, y en caso de serlo sumamos 30 das
al da de nacimiento y restamos los mismos 30 das expresados en meses al mes de nacimiento para
equilibrar las operaciones, con lo cual finalmente procedemos a realizar la resta.

UNIVERSIDAD TCNICA PARTICULAR DE LOJA La Universidad Catlica de Loja

55

Gua didctica: Lgica de la Programacin

SEGUNDO BIMESTRE

Solicitar ao , m es y da de
nacim iento , va lidando que
cum plan con sus va lores
m xim os y m nim os

Inicio

Anio_n,
m es_n,
dia_n

Anio_a,
m es_a,
dia_a

Solicitar ao , m es y da
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

m es_a - 1

NO

edad_d

dia_a dia_n

Figura 5.5 Diagrama de flujo parcial clculo edad. Procesando los meses
Ahora procedemos a hacer lo mismo con los meses, slo que en lugar de sumarle 30 das, debemos
sumarle 12 meses de un ao, los cual nos lleva a restarle 1 al ao de nacimiento para no alterar los
datos, el diagrama resultante se encuentra en la figura 5.6.
Para culminar con los enunciados del procesamiento, vamos a trabajar con los aos, y puesto que
hemos postergado hasta aqu el control del enunciado 3 de la entrada, que dice que la fecha de
nacimiento, no puede ser mayor a la fecha actual, lo implementaremos con la verificacin de que
el ao de nacimiento no sea mayor que el ao actual, y en caso de serlo, notificaremos un error,
adems aqu consideramos los enunciados de la salida, que bsicamente nos dicen que la edad se debe
expresar en formato de ao, mes y da, que no puede haber edades negativas, ni tampoco meses o das
que superen el lmite establecido. El diagrama resultante se muestra en la figura 5.7.

56

UNIVERSIDAD TCNICA PARTICULAR DE LOJA

La Universidad Catlica de Loja

Gua didctica: Lgica de la Programacin

SEGUNDO BIMESTRE

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

Inicio

Anio _n,
m es_n,
dia _n

Anio _a,
m es_a,
dia _a

dia _n > dia_a

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

SI

dia _a

dia_a + 30

m es_a

m es_a - 1

m es_a

m es_a + 12

NO

edad_d

dia _a dia _n

m es _n > m es_a

anio_a

NO

edad_m

SI

_anio_a - 1

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

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

Inicio

Anio _n,
m es_n,
dia _n

Anio _a,
m es_a,
dia _a

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

SI

m es_a

dia_a + 30

m es_a

m es _a - 1

NO

edad_d

dia _a dia _n

m es _n > m es_a

m es_a + 12

anio_a

NO
edad_m

m es_a m es_n

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

_anio_a - 1

Gua didctica: Lgica de la Programacin

SEGUNDO BIMESTRE

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

dia_n

anio_a

mes_a

dia_a

edad_a edad_m edad_d Salida

anio_n mes_n

dia_n

anio_a

mes_a

dia_a

edad_a edad_m edad_d Salida

anio_n mes_n

dia_n

anio_a

mes_a

dia_a

edad_a edad_m edad_d Salida

Caso II

Caso III

Luego de haber probado el funcionamiento del diagrama de flujo, trate de responder a las siguientes
interrogantes:
1.

Funciona bien para todos los casos?

2.

Hay algn error de concepcin que hace que los resultados no siempre sean exactos?

3.

Hay alguna manera alterna de desarrollar el diagrama de flujo?

4.

Se puede simplificar la solucin?

5.

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

5.3

SEGUNDO BIMESTRE

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.

El sueldo debe expresarse en dlares.

2.

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

Gua didctica: Lgica de la Programacin

SEGUNDO BIMESTRE

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

Gua didctica: Lgica de la Programacin

SEGUNDO BIMESTRE

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

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

Gua didctica: Lgica de la Programacin

SEGUNDO BIMESTRE

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 stas le vamos a llamar capas. En la siguiente tabla vamos establecer
la correspondencia entre las funciones y las capas.
Funcin

Capa

Descripcin

Entrada

Interfaz de Corresponde a los elementos en pantalla u otro dispositivo que permite que
usuario
el usuario ingrese informacin.

Proceso

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.

Almacenamiento

Datos

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.

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

Gua didctica: Lgica de la Programacin

SEGUNDO BIMESTRE

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

Gua didctica: Lgica de la Programacin

SEGUNDO BIMESTRE

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

SI

m es_a

dia_a + 30

m es_a

m es _a - 1

NO

edad_d

dia _a dia _n

m es _n > 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

Descripcin

Interfaz de
usuario

Ventanas
Formularios
Botones
Cuadros de texto
Listas combinadas
Listas

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.

Lgica de
proceso

Funciones
Procedimientos
Clases
Mdulos
Variables
Constantes

Elementos de cdigo que construye el programador a los cuales les


asigna la responsabilidad de procesar y validar la informacin.

Datos

Archivos
Tablas

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

Gua didctica: Lgica de la Programacin

SEGUNDO BIMESTRE

se las conoce como subrutinas y si recuerda el captulo 5, la llamada a las mismas se representa con el
smbolo
. Las subrutinas hacen que los programas sean mucho ms eficientes.
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

Descripcin

abs(n)

Devuelve el valor absoluto de n, es decir ignora el signo


de positivo o negativo.

sqrt(n)

Obtiene la raz cuadrada de n.

sqr (n)

Obtiene el cuadrado de n.

random(n)

Obtiene un nmero aleatorio comprendido entre 0 y n.

log(n)

Devuelve el logaritmo de n.

exp (n)

Devuelve el antilogaritmo de n.

ln()

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.

Mostrar la palabra con las letras que adivin y guiones en aquellas que no acert, esto por cada
letra que ingresa el usuario.

2.

Si adivina la palabra en la cantidad de intentos datos, debe felicitar al usuario.

3.

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

Gua didctica: Lgica de la Programacin

SEGUNDO BIMESTRE

Proceso:
1.

Debe contar con una lista de palabras para seleccionar una de ellas aleatoriamente.

2.

Cada letra correcta se muestra en pantalla.

3.

Cada error cometido produce un paso hacia el ahorcamiento del mueco.

4.

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.

Un programa principal desde donde empieza a ejecutarse la aplicacin.

2.

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

Gua didctica: Lgica de la Programacin

SEGUNDO BIMESTRE

Tabla 6.2 Lista de diagramas y subdiagramas que conforman la aplicacin


Nombre

Propsito

Llamado desde

main

Programa principal, desde aqu se No debe tener llamadas.


ejecuta toda la aplicacin.

crear_lista

Crea la lista de palabras en una inicializar_juego.


matriz.

inicializar_palabra

Rellena con guiones la palabra que se inicializar_juego.


le muestra al usuario.

ahorcar

Dibuja paso a paso el mueco del main.


juego.

escribir

Dibuja la palabra donde constan main.


las letras acertadas y guiones en las
dems.

inicializar_juego

Crea el entorno de datos necesario main .


para poder comenzar el juego.

crear_interfaz

Crea la interfaz grfica.

main .

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

Gua didctica: Lgica de la Programacin

SOLUCIONARIO

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

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

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

UNIDAD 4
Parte 1

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

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

6. V
7. F
8. F
9. F
10. V
UNIDAD 3
Parte 1
1. c
2. a
3. c
4. a
5. 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

Gua didctica: Lgica de la Programacin

GLOSARIO

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


vt/2012-10-26

UNIVERSIDAD TCNICA PARTICULAR DE LOJA La Universidad Catlica de Loja

83

Vous aimerez peut-être aussi