Está en la página 1de 89

ÍNDICE

PRELIMINARES
BIMESTRE
PRIMER
SEGUNDO
BIMESTRE
SOLUCIONARIO
Informática

GLOSARIO
Modalidad Abierta y a Distancia

MULTIMEDIA
RECURSOS
Lógica de la Programación
Guía didáctica
6 créditos
Titulación
Ciclo

1 ƒ Informática

La Universidad Católica de Loja

Área Técnica
ÍNDICE
PRELIMINARES
MODALIDAD ABIERTA Y A DISTANCIA

BIMESTRE
PRIMER
Ciencias de la Computación y Electrónica
Sección Tecnologías Avanzadas de la Web y SBC

SEGUNDO
BIMESTRE
Lógica de la Programación
Guía didáctica

SOLUCIONARIO
6 créditos

GLOSARIO
Titulación Ciclo

ƒ Informática I

MULTIMEDIA
RECURSOS

Autores:
Marco Patricio Abad Espinoza
Jorge Stalin Calderón Bustamante

18106

La Universidad Católica de Loja


Asesoría virtual:
www.utpl.edu.ec
ÍNDICE
PRELIMINARES
BIMESTRE
PRIMER
SEGUNDO
BIMESTRE
SOLUCIONARIO
GLOSARIO
MULTIMEDIA
RECURSOS
LÓGICA DE LA PROGRAMACIÓN
Guía didáctica
Marco Patricio Abad Espinoza
Jorge Stalin Calderón Bustamante

© UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA

Maquetación y diseño digital:


Ediloja Cía. Ltda.
Telefax: 593-7-2611418
San Cayetano Alto s/n
www.ediloja.com.ec
edilojainfo@ediloja.com.ec
Loja-Ecuador

Cuarta edición

ISBN digital-978-9942-04-137-1

Reservados todos los derechos conforme a la ley. No está permitida la reproducción total o parcial de esta guía, ni su tratamiento informático,
ni la transmisión de ninguna forma o por cualquier medio, ya sea electrónico, mecánico, por fotocopia, por registro u otros métodos, sin el
permiso previo y por escrito de los titulares del Copyright.

21 de octubre, 2010
ÍNDICE
PRELIMINARES
2. Índice

BIMESTRE
PRIMER
2. Índice ............................................................................................................................................................ 4

3. Introducción............................................................................................................................................. 6

4. Lineamientos generales del Modelo Educativo basado en competencias

SEGUNDO
BIMESTRE
y créditos académicos UTPL- ECTS............................................................................................. 7

4.1. Competencias genéricas ....................................................................................................... 8


4.2. Competencias específicas..................................................................................................... 8
5. Bibliografía .............................................................................................................................................. 9

SOLUCIONARIO
5.1. Básica .......................................................................................................................................... 9
5.2. Complementaria ..................................................................................................................... 9
6. Orientaciones generales para el estudio............................................................................. 10

7. Proceso de enseñanza-aprendizaje para el logro de competencias ................ 12

GLOSARIO
PRIMER BIMESTRE

7.1. Planificación para el trabajo del alumno ........................................................................ 12


7.2. Sistema de evaluación .......................................................................................................... 14
7.3. Orientaciones específicas para el aprendizaje por competencias ........................... 15

MULTIMEDIA
RECURSOS
UNIDAD 1. PROBLEMAS Y SOLUCIONES ........................................................................................... 15

1.1. Aplicación de la lógica en la programación.................................................................... 17


1.2. Principios en la elaboración de enunciados ................................................................... 18
1.3. Comprensión y especificación del problema.................................................................. 19
1.4. Identificación de entradas procesos y salida.................................................................. 19
Autoevaluación 1 ................................................................................................................................ 21

UNIDAD 2. NATURALEZA DE LOS DATOS .......................................................................................... 22

2.1. Naturaleza de los datos ......................................................................................................... 22


2.2. Expresiones y variables ......................................................................................................... 23
2.3. Dominios.................................................................................................................................... 23
2.4. Tipos de operadores ............................................................................................................... 23
2.5. Reglas de precedencia ........................................................................................................... 25
Autoevaluación 2 ................................................................................................................................ 26
ÍNDICE
PRELIMINARES
UNIDAD 3. ALGORITMOS ..................................................................................................................... 27

3.1. Ciclo de desarrollo................................................................................................................... 27


3.2. Determinación de requerimientos .................................................................................... 29

BIMESTRE
3.3. Estructuración de pasos del algoritmo ............................................................................ 30

PRIMER
3.4. Resolución de problemas mediante algoritmos ........................................................... 31
Autoevaluación 3 ................................................................................................................................ 33

SEGUNDO BIMESTRE

SEGUNDO
BIMESTRE
7.4. Planificación para el trabajo del alumno ........................................................................ 34
7.5. Orientaciones específicas para el aprendizaje por competencias ........................... 36

UNIDAD 4. ESTRUCTURAS DE DECISIÓN Y BUCLES ........................................................................ 36

SOLUCIONARIO
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
Autoevaluación 4 ................................................................................................................................ 47

GLOSARIO
UNIDAD 5. DIAGRAMAS DE FLUJO..................................................................................................... 48

5.1. Elementos de un diagrama de flujo .................................................................................. 48


5.2. Elaboración de diagramas de flujo .................................................................................... 50
5.3. Ejercicios con diagramas de flujo ....................................................................................... 59

MULTIMEDIA
RECURSOS
Autoevaluación 5 ................................................................................................................................ 69

UNIDAD 6. DESARROLLO DE PROBLEMAS DE PROGRAMACIÓN ................................................. 70

6.1. Abstracción de problemas de programación ................................................................. 70


6.2. Componentes de una aplicación ........................................................................................ 74
6.3. Desarrollo de aplicaciones sencillas .................................................................................. 75
Autoevaluación 6 ................................................................................................................................ 80
8. Solucionario ............................................................................................................................................. 81

9. Glosario ....................................................................................................................................................... 87

10. Recursos educativos multimedia .............................................................................................. 88


ÍNDICE
Guía didáctica: Lógica de la Programación

PRELIMINARES
3. Introducción

Estimado estudiante, queremos darle la más cordial bienvenida a esta su Universidad, particularmente a
la carrera de Ingeniería en Informática. Aprovechamos la oportunidad para felicitarlo por haber confiado
en esta prestigiosa institución educativa.

BIMESTRE
PRIMER
Nuestros nombres son: Patricio Abad y Stalin Calderón, estaremos con ustedes para guiar el proceso de
aprendizaje en la asignatura de Lógica de la Programación, cualquier duda e inquietud estamos a sus
órdenes para responderle.

Lógica de Programación es una materia troncal con seis créditos que se ubica en el primer ciclo de la

SEGUNDO
BIMESTRE
carrera de Ingeniería en Informática y se ha elaborado enfocándose en el desarrollo de las competencias
básicas para el diseño de algoritmos a través del pensamiento lógico aplicado a la resolución de
problemas por computadora.

El desarrollo de habilidades de programación no se logra sino con la inducción de una forma de

SOLUCIONARIO
pensamiento que ayuda a identificar los aspectos relevantes de un problema y representarlo en una
notación formal que permita establecer una solución para el mismo. Como veremos más 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 algorítmico y es precisamente este
aspecto el que la materia de Lógica de la Programación intenta resolver, sin esto es muy difícil avanzar
con otras asignaturas en la línea de programación, y de allí su importancia vital para el resto de la carrera.

GLOSARIO
Los contenidos se encuentran organizados en unidades y distribuidos equitativamente para los
dos bimestres. Se abordará en la unidad 1 los principios de la resolución de problemas mediante la
abstracción de las salidas, el proceso de cálculo y las entradas requeridas; En la unidad 2 se estudiará la
naturaleza de los datos, su representación y sus operaciones; para la unidad 3 tenemos los algoritmos
que le permite al estudiante adquirir las bases para representar, su proceso de construcción, verificación

MULTIMEDIA
RECURSOS
y depuración.

El segundo bimestre comprende la unidad 4 que abarca el uso de la selección y ciclos repetitivos,
la unidad 5 versa sobre la representación de los algoritmos en diagramas de flujos y culmina con la
unidad 6 consolidando todos los contenidos en la creación de aplicaciones sencillas susceptibles de
programación. Además se considera el uso de herramientas de programación visual que le permitirán
concentrarse en la lógica de programación antes que en la sintaxis de un lenguaje particular, esto con el
ánimo de que pueda aplicar luego esta lógica con cualquier lenguaje de programación.

Un aspecto importante que debemos mencionar es que la lógica de la programación no se limita a un


lenguaje de programación específico, es por tanto independiente del lenguaje y para escribir los algoritmos
utilizaremos dos herramientas fundamentales que son el pseudocódigo (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 aérea norteamericana llamada Raptor.

Thomas Alba Edison decía que los genios son 1% de inspiración y 99% de sudor, la cual es una máxima
aplicable a esta materia, pues se requiere estudiar el fundamento teórico, 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.

6
ÍNDICE
Guía didáctica: Lógica de la Programación

4. Lineamientos generales del Modelo Educativo basado en

PRELIMINARES
competencias y créditos académicos UTPL- ECTS

Sr. Estudiante recuerde que usted ha iniciado su formación de tercer nivel con un sistema educativo
basado en el desarrollo de competencias a través de créditos académicos. Este modelo le convierte
a usted en protagonista de su propia formación y al profesor en mediador de las experiencias de

BIMESTRE
aprendizaje.

PRIMER
Surge entonces la necesidad de que tenga claro dos conceptos fundamentales competencia y crédito
académico.

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

SEGUNDO
BIMESTRE
y conocimientos que el alumno adquiere e incorpora según sus características personales y
experiencias laborales y, que se ponen de manifiesto en el desempeño 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.

SOLUCIONARIO
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

GLOSARIO
trabajos. Se desarrollan a través de la práctica y la experiencia.

 Conocimientos: constituyen los contenidos científicos, conceptuales, teóricos, conocidos


también como el aprendizaje académico.

MULTIMEDIA
• ¿Qué es un crédito académico UTPL / ECTS en la Modalidad a Distancia?

RECURSOS
Un crédito académico es la unidad de medida del trabajo del estudiante, implica 32 horas de
trabajo del alumno (29 horas de trabajo autónomo y 3 horas de interacción)1.

Los créditos académicos que el estudiante irá acumulando en el transcurso de la carrera


involucran: aprendizaje autónomo (estudio personal), tareas de investigación, interacción en el
Entorno Virtual de Aprendizaje (EVA), participación en tutorías, videoconferencias y otros eventos
académicos (Jornadas, seminarios, cursos, congresos avalados por la UTPL), prácticas académicas,
pasantías preprofesionales y de vinculación con la colectividad; actividades de evaluación; así
como la realización del trabajo de titulación.

El modelo adoptado por la UTPL contempla dos tipos de competencias: genéricas y específicas.

 Competencias Genéricas: 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 formación.

1. CONESUP (2008): Reglamento del Régimen Académico del Sistema Nacional de Educación Superior, art. 18.

7
ÍNDICE
Guía didáctica: Lógica de la Programación

 Competencias Específicas: son propias de la titulación, aportan a la cualificación específica

PRELIMINARES
para la profesión, dándole consistencia social y profesional al perfil formativo.

• Estructura general del programa formativo

Las Unidades Académicas o Escuelas de la UTPL han estructurado el programa formativo contemplando
cinco ámbitos o bloques de asignaturas: Formación Básica (10%); Genéricas de carrera (15%); Troncales
(35%) Complementarias (10%); Libre configuración (10%) y además, el Practicum que comprende las

BIMESTRE
PRIMER
Pasantías preprofesionales y de vinculación con la colectividad y Practicum Académico (20%).

4.1. Competencias genéricas

• Capacidad de abstracción, análisis y síntesis.

SEGUNDO
BIMESTRE
• Capacidad para identificar, plantear y resolver problemas.

4.2. Competencias específicas

Estas se encuentran detalladas en la planificación de cada bimestre.

SOLUCIONARIO
GLOSARIO
MULTIMEDIA
RECURSOS

8
ÍNDICE
Guía didáctica: Lógica de la Programación

PRELIMINARES
5. Bibliografía

5.1. Básica

BIMESTRE
• Ramírez, F. (2007): Introducción a la Programación. Algoritmos y su implementación en VB.net, C#,

PRIMER
Java y C++, México, Alfaomega.

El autor del libro Felipe Ramírez tiene mucha experiencia en capacitación de tecnología 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 didáctica y fácil de seguir, además tiene muchos

SEGUNDO
BIMESTRE
ejercicios y autoevaluaciones que lo hacen ideal para un estudiante a distancia. El enfoque
práctico le da mucha relevancia frente a otros textos similares.

• Abad, M. y Calderón, J. (2009): Guía didáctica de Lógica de la Programación, Ecuador, Editorial UTPL

SOLUCIONARIO
Guía didáctica diseñada para el estudio de la Lógica de la Programación en la carrera de Ingeniería
en Informática de la Modalidad Abierta y a Distancia de la Universidad Técnica Particular de Loja.

5.2. Complementaria

• Cairo, O. (2005): Metodología de la programación algoritmos, diagramas de flujo y programas,

GLOSARIO
México, Alfaomega.

Contiene muchos ejercicios y algoritmos que se pueden usar para complementar los que posee el
texto base, es ideal para la parte práctica de cualquiera de los capítulos del la materia. Tiene un
desarrollo especial en lo referente a diagramas de flujo.

MULTIMEDIA
• Lipschutz, S. (1983): Matemáticas para computación, Colombia, McGraw-Hill.

RECURSOS
A pesar de ser una edición con bastantes años por delante, tiene valiosa información sobre
aritmética del computador, lógica matemática, desarrollo de algoritmos y su representación en
diagramas de flujos, contiene muchos ejercicios.

• Paniagua, E., Sánchez, J. y Martín, F. (2003), Lógica Computacional, España, Thomson.

Excelente texto para el estudio de la lógica matemática y su aplicación en el ámbito de las ciencias
de la computación, se lo puede utilizar como complemento del capítulo 1 de la materia.

DIRECCIONES ELECTRÓNICAS

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

Sitio de descarga de raptor, donde se publican además las últimas novedades del producto, aquí
encontrará también la versión de raptor orientada a objetos.

9
ÍNDICE
Guía didáctica: Lógica de la Programación

PRELIMINARES
6. Orientaciones generales para el estudio

Estimado Estudiante:

El estudio de la programación de computadores es una tarea compleja que requiere el desarrollo de

BIMESTRE
PRIMER
algunas habilidades de pensamiento orientadas a la solución de problemas descomponiéndolos en
partes manejables, lo cual aprenderemos durante el presente curso.

Para conseguir este propósito es necesario que tenga una dedicación periódica que le permita aprender
y desarrollarlas, por ello le sugerimos no menos de 8 horas semanales que podrían variar en función de
sus habilidades y conocimientos previos.

SEGUNDO
BIMESTRE
A continuación se le propone algunas orientaciones que le servirán en su proceso de aprendizaje:

En primera instancia recordarle que usted cuenta con los siguientes recursos para el aprendizaje:

SOLUCIONARIO
1. La guía didáctica: Le orientará sobre cómo y qué temas estudiar, además contiene ejercicios de
autoevaluación que le permitirán medir su grado de comprensión y la necesidad de tutoría por
parte del docente. Muchos estudiantes empiezan estudiando directamente el texto, pero como
verá más adelante no es recomendable hacerlo.

2. El texto básico: Le servirá para desarrollar los contenidos principales conforme se lo indica en la

GLOSARIO
guía didáctica. Vale acotar que no todos los capítulos 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 guía didáctica. Los capítulos del 10 al 14 los puede usar para iniciar el estudio de la lógica de
la programación en alguno o en todos los lenguajes de programación propuestos.

MULTIMEDIA
RECURSOS
3. El Entorno Virtual de Aprendizaje: Donde podrá interactuar con sus profesores a través de una
orientación del trabajo semanal, uso de mensajería electrónica para resolver inquietudes, foros,
desarrollo de ejercicios prácticos, publicación de recursos, todo este trabajo tendrá una valoración
de 2 puntos.

4. La Tutoría personal: Es un tiempo semanal que como profesores dedicamos para atender las
inquietudes en relación a los contenidos o desarrollo de trabajos, para ello se publicará un horario
en el cual podrán asistir personalmente o contactarse vía telefónica, el mismo que se detalla en la
carátula de la evaluación a distancia.

5. Los trabajos a distancia: Son actividades teóricas y prácticas que acompañan a la guía didáctica 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 carátula
es obligatoria y no recuperable, lo cual significa que si no entrega alguno de los mismos no tendrá
opción a la evaluación presencial, su valoración es de 4 puntos que sumados a la calificación de
participación en el EVA totalizan 6 puntos.

6. El Software para el desarrollo de aplicaciones: Los estudiantes contarán con herramientas de


software que les permitirán realizar prácticas y validar los resultados de sus ejercicios. Este software
se lo incluirá en un disco compacto que se entrega con la presente guía didactica.

10
ÍNDICE
Guía didáctica: Lógica de la Programación

Al finalizar cada bimestre usted debe presentarse a una evaluación presencial en su centro universitario,

PRELIMINARES
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 mínima de 14 sobre 20, de lo contrario deberá
rendir una evaluación supletoria que reemplaza a la nota bimestral. Para aprobar debe tener un mínimo
de 28 puntos.

Como método de estudio, le recomendamos que lea detenidamente los contenidos de la guía didáctica
y siga fielmente las instrucciones dadas, lo más importante es realizar prácticas no limitándose a lo

BIMESTRE
PRIMER
que dice el texto, sino que es recomendable que idee sus propios problemas lo cual lo hará sentirse
mucho más familiarizado con la mecánica de la materia. Puesto que dispondrá de herramientas para la
computadora utilícelas en todo momento.

SEGUNDO
BIMESTRE
Nota importante:
Por su participación en ciertas actividades del EVA en cada bimestre, usted
podrá obtener un punto que complementará la nota obtenida en la evaluación
a distancia; esto quiere decir que si obtiene en la misma menos de 6 puntos

SOLUCIONARIO
podrá incrementar su nota (hasta 6 puntos) por medio de la participación y los
ejercicios que su tutor(a) le propondrá en el EVA.

GLOSARIO
MULTIMEDIA
RECURSOS

11
7. Proceso de enseñanza-aprendizaje para el logro de competencias

Guía didáctica: Lógica de la Programación


PRIMER BIMESTRE

7.1. Planificación para el trabajo del alumno

CONTENIDOS CRONOGRAMA
COMPETENCIAS OBJETIVOS DE ACTIVIDADES DE RECURSOS
ORIENTATIVO EVALUACIÓN
ESPECÍFICAS APRENDIZAJE Unidades /Temas APRENDIZAJE DIDÁCTICOS
Tiempo estimado
• Disponer de • Aplicar los Unidad 1: Problemas y Semana 1y 2 • Lectura • Texto básico • Autoevaluaciones
fundamentos principios de Soluciones comprensiva por unidades en la
• Guía Didáctica
matemáticos, la lógica en 16 horas de guía didáctica
• Desarrollo de
económicos, la resolución 1.1 Aplicación de la lógica autoestudio • Entorno Virtual
actividades • Evaluaciones a
estadísticos de problemas en la programación. 8 horas de de Aprendizaje:
recomendadas en la distancia
y financieros computacionales. 1.2 Principios en la interacción foros, actividades,
guía didáctica
necesarios para elaboración de documentos. • Evaluaciones
• Identificar y
interpretar, enunciados. • Interacción con el presenciales
comprender un • Teléfono
seleccionar, valorar 1.3 Comprensión y EVA
problema para • Participación en los
el uso y desarrollo especificación del • Correo electrónico
llegar a su solución. • Inicio del desarrollo foros.
tecnológico y sus problema.
de la evaluación a
aplicaciones. 1.4 Identificación de
distancia.
entradas, procesos y
• Analizar las
salidas.
necesidades de
• Determinar los Unidad 2:Representación Semana 3 • Lectura
conocimiento
tipos de datos que de los Datos comprensiva
necesarias para
mejor se ajusten 8 horas de
resolver un • Desarrollo de
para la resolución 2.1 Naturaleza de los datos. autoestudio
problema. actividades
de problemas 2.2 Expresiones y datos. 4 horas de
recomendadas en la
mediante 2.3 Dominios. interacción
guía didáctica
algoritmos. 2.4 Tipos de operadores.
2.5 Reglas de precedencia.
12

RECURSOS SEGUNDO PRIMER


GLOSARIO SOLUCIONARIO PRELIMINARES ÍNDICE
MULTIMEDIA BIMESTRE BIMESTRE
• Resolver • Continuar con
expresiones el desarrollo de

Guía didáctica: Lógica de la Programación


aritméticas, lógicas la evaluación a
y relacionales distancia
mediante el uso
• Participación del
de las reglas de
foro propuesto en el
precedencia de los
EVA
operadores.
• Comprender, • Reconocer las Unidad 3: Algoritmos Semana 4, 5 y 6 • Lectura
analizar y resolver fases del ciclo comprensiva
problemas de desarrollo de 3.1 Ciclo de desarrollo 24 horas de
• Desarrollo de
aplicando los software. 3.2 Determinación de autoestudio
actividades
métodos de requerimientos 12 horas de
• Identificar de recomendadas en la
la ciencia y la 3.3 Estructuración de pasos interacción
forma clara los guía didáctica
ingeniería. del algoritmo
requerimientos de
3.4 Resolución de • Participación del
• Aplicar la lógica usuario.
problemas mediante foro propuesto en el
matemática en
algoritmos EVA
el contexto de
las Ciencias de • Finalizar el
la Computación, desarrollo de
con proyección, al la evaluación a
diseño de circuitos, distancia.
programación,
análisis y desarrollo
de algoritmos.
Preparación para la
Unidad de la 1a la 3 Semana 7 y 8 prueba presencial del
primer bimestre.
13

RECURSOS SEGUNDO PRIMER


GLOSARIO SOLUCIONARIO PRELIMINARES ÍNDICE
MULTIMEDIA BIMESTRE BIMESTRE
ÍNDICE
Guía didáctica: Lógica de la Programación

7.2. Sistema de evaluación

PRELIMINARES
Formas de evaluación 2. Heteroevaluación
Evaluación a Evaluación

1. Autoevaluación *
distancia ** presencial

3. Coevaluación
Interacción en el EVA
Parte de ensayo

Prueba objetiva
Parte objetiva

BIMESTRE
PRIMER
Competencia: criterio
Comportamiento ético X X X X X

SEGUNDO
BIMESTRE
Cumplimiento, puntualidad,
Actitudes

X X X X X
responsabilidad
Esfuerzo e interés en los trabajos X X X X X
Respeto a las personas y a las
X
normas de comunicación

SOLUCIONARIO
Creatividad e iniciativa X X
Habilidades

Contribución en el trabajo
X
colaborativo y de equipo
Presentación, orden y ortografía X X
Emite juicios de valor
X X
argumentadamente

GLOSARIO
Dominio del contenido X X X X X
Conocimientos

Investigación (cita fuentes de


X
consulta)
Aporta con criterios y soluciones X X

MULTIMEDIA
Análisis y profundidad en el

RECURSOS
X X
desarrollo de temas
Máximo 1 punto

PORCENTAJE 10% 20% 30% 70%


Estrategia de
aprendizaje

presenciales y en el
distancia)***
evaluación a
(completa la

Puntaje 2 4 6 14
Actividades

EVA

TOTAL 20 puntos
Para aprobar la asignatura se requiere obtener un puntaje mínimo de 28/40 puntos, que equivale al 70%.

* Son estrategias de aprendizaje, no tienen caliicación; pero debe responderlas con el in de autocomprobar su
proceso de aprendizaje.
** Recuerde que la evaluación a distancia consta de dos partes: una objetiva y otra de ensayo, debe desarrollarla y
entregarla en su respectivo centro universitario.
*** Su tutor(a) le planteará una o más actividades en el EVA que serán caliicadas por un punto en total. Este solo
computará para complementar la nota del trabajo a distancia, es decir, si Ud. logra menos de seis puntos en el mismo
podrá aumentar dicha nota (hasta completar los 6 puntos) con esas actividades en el EVA.

Señor estudiante:
Tenga presente que la inalidad de la valoración cualitativa
es principalmente formativa.

14
ÍNDICE
Guía didáctica: Lógica de la Programación

PRELIMINARES
7.3. Orientaciones específicas para el aprendizaje por competencias

UNIDAD 1. PROBLEMAS Y SOLUCIONES

BIMESTRE
PRIMER
El trabajo del pensamiento se parece a la perforación de un pozo:
el agua es turbia al principio, más, luego se clarifica.
- Proverbio Chino

SEGUNDO
BIMESTRE
Estimado(a) estudiante:

Iniciamos nuestro estudio con este interesante proverbio, que nos da una pauta de cómo es el proceso
de aprendizaje de la lógica de programación, con ello le invitamos a poner especial interés en su estudio
y a no desesperarse si las cosas no se ven fáciles al inicio, esto no debe preocuparle porque logrará mayor

SOLUCIONARIO
claridad conforme vaya avanzando con el desarrollo de los ejercicios.

Para el estudio de la presente Unidad trabajaremos con el capítulo 3 del texto básico
y opcionalmente los libros de lógica planteados en la bibliografía, si puede disponer de ellos sería
importante que los use para reforzar los temas planteados.

GLOSARIO
Una de las habilidades de pensamiento más importante para aprender a programar es la abstracción 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 búsqueda de la solución.

MULTIMEDIA
RECURSOS
Cuando el problema se refiere a programación, en términos generales estas partes se pueden considerar
como entradas, proceso, almacenamiento y salida (fig. 1.1), que son los tareas básicas que realiza el
computador.

ENTRADAS SALIDA
PROCESO

ALMACENAMIENTO

Fig. 1.1 Funciones básicas del computador

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


medida en función de la complejidad de los problemas que debemos resolver, también tiene mucho
que ver la creatividad, de hecho cuando tenemos que enfrentarnos a un problema, podemos resolverlo
de diferentes maneras, es muy difícil que dos personas lo hagan del mismo modo.

15
ÍNDICE
Guía didáctica: Lógica de la Programación

Analice el siguiente ejemplo.

PRELIMINARES
Ejemplo 1.1

Problema: Calcule la edad de una persona.


Análisis del problema:

BIMESTRE
PRIMER
• Debe solicitar la fecha de nacimiento y restarla de la fecha actual, el resultado debe expresarse
en años, meses y días. Hasta aquí el asunto parece fácil, pero si lo analizamos con más detalle
la operación de restar fechas es un poco más compleja que la resta común, de hecho no puedo
restar directamente las dos fechas como si se tratase de dos número cualquiera, las fechas son
números compuestos por tres componentes, que serían los años, los meses y los días, los cuales

SEGUNDO
BIMESTRE
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 tendríamos:

SOLUCIONARIO
Fecha actual: 2009-05-15
Fecha de nacimiento: 1985-04-12

Si aplicamos el cálculo requerido tendríamos que ejecutar las siguientes operaciones:

Año Mes Día


Fecha actual 2009 05 15

GLOSARIO
Fecha de nacimiento 1985 04 12
Edad 0024 01 03

Solución: La persona tiene 24 años, 1 mes y 3 días.

MULTIMEDIA
RECURSOS
El método de cálculo seleccionado aparentemente funciona, pero ¿qué sucedería si debemos
calcular lo mismo para otra persona, cuya fecha de nacimiento es 22 de diciembre de 1980, si
aplicamos el mismo método los resultados serían:

Año Mes Día


Fecha actual 2009 05 15
Fecha de nacimiento 1980 12 22
Edad 0029 -7 -7

Si interpretamos la respuesta tendríamos que la edad de la persona es 29 años, -7 meses y -7 días,


lo cual no resulta lógico 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 día de nacimiento es mayor al día actual, debo pedir prestado 30 días al mes para
poder efectuar la operación y puesto que he convertido un mes en treinta días tengo que
restarle un mes a la fecha actual.

16
ÍNDICE
Guía didáctica: Lógica de la Programación

2. Si el mes de nacimiento es mayor al mes de la fecha actual, debo pedir prestado un año

PRELIMINARES
expresado en 12 meses y sumarlos al mes actual, luego hay que restar ese año que se
convirtió en meses al año actual.

3. Si luego de realizar todas las operaciones obtenemos un año en negativo, hay inconsistencia
en los datos por lo tanto no se puede calcular la edad de alguien que todavía no nace.

Solución:

BIMESTRE
PRIMER
Luego del análisis realizado, vamos a realizar el cálculo correspondiente

Año Mes Día


Prestamos 2009 -1 = 2008 5-1 = 4 + 12 = 18 15+30 = 45

SEGUNDO
BIMESTRE
Fecha actual 2009 05 15
Fecha de nacimiento 1980 12 22
Edad 0028 6 23

SOLUCIONARIO
Por tanto la persona en realidad tendría 28 años, 6 meses y 23 días.

Esta solución podría no ser la única, pero es correcta.

El problema puede complicarse más cuando se pide que consideremos los años bisiestos en los cuales
el mes de febrero tiene 29 días en lugar de 28. ¿Sería capaz de plantear una solución considerando este

GLOSARIO
problema? Lo invito a solucionarlo en papel y lápiz.

Ahora ¿qué dificultades tuvo para encontrar la solución? Cuando se trata de encontrar la solución una de
las dificultades más importantes es la representación del problema en un lenguaje formal como puede
ser el lenguaje matemático, para poder procesarlo, en esta tarea nos ayudan la lógica y la matemática.

MULTIMEDIA
RECURSOS
Es por ello que nuestro estudio va a comenzar estudiando el papel de la lógica matemática
en el planteamiento y solución de problemas.

1.1. Aplicación de la lógica en la programación

Comencemos revisando al apartado Lógica del capítulo 3 del texto básico para ver cómo la lógica de
proposiciones nos ayuda a abstraer premisas de un problema y obtener de ella algunas conclusiones.

Luego de revisar el capítulo indicado vale recalcar nuevamente la importancia del razonamiento para
poder obtener las proposiciones y llegar a conclusiones.

El estudio de la lógica va más 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 lógica matemática con la lógica de programación.

Según lo establece Ramírez, la lógica nos ayuda a tener un pensamiento más ordenado siguiendo
algunas reglas que hacen que el mismo sea más lógico.

17
ÍNDICE
Guía didáctica: Lógica de la Programación

Si no logramos un pensamiento fundamentado en la razón, corremos el riesgo de lanzar planteamientos

PRELIMINARES
sin la debida argumentación, lo cual no ayuda a resolver los problemas, y muchas de las soluciones
propuestas adolecerán fallas que se verán reflejadas en nuestros programas.

Desarrolle el ejercicio 03.01 del texto básico.

BIMESTRE
PRIMER
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 comparación con la
realidad y la corrección tiene que ver con la argumentación que sustenta dicha conclusión.

Los ejercicios hasta ahora analizados en el texto son relativamente sencillos, pero en la práctica nos
encontramos con situaciones más complejas, por lo tanto el razonamiento lógico debe apoyarse en un

SEGUNDO
BIMESTRE
gran número de equivalencias y reglas de inferencia que permiten llegar a conclusiones verdaderas o
falsas.

Estudie ahora los apartados Lógica de Programación con sus secciones Aplicación de la

SOLUCIONARIO
lógica en programación y Finalidad de los enunciados del proceso del capítulo 3 del
texto básico.

Como bien menciona el autor, la Lógica de la Programación es una “habilidad” o “competencia” que
permite obtener algoritmos susceptibles de implementarse en un lenguaje de programación.

Muchas personas tienen facilidad para inferir algoritmos rápidamente, pero como podemos darnos

GLOSARIO
cuenta el uso adecuado de los silogismos, ayuda a formar esta capacidad. Si usted ha tenido la
oportunidad de estudiar Lógica Matemática, seguramente habrá sentido que no le sirve de mucho para
programación, lo cual según lo estamos analizando no es cierto, y lo más interesante es que le ayuda a
ordenar las ideas para obtener algoritmos eficientes a partir de los enunciados.

MULTIMEDIA
RECURSOS
Aunque todavía no hemos desarrollado ningún algoritmo, hemos podido establecer las salidas
esperadas, los datos de entrada y el proceso de cálculo requerido, así como también ha establecer si la
información 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 más grande y complejo es el problema, requerimos una mayor
cantidad de enunciados, los cuales es preciso ubicar en alguna de las tres categorías que son entradas,
proceso y salidas.

1.2. Principios en la elaboración de enunciados

Como ya hemos mencionado en el apartado anterior, la clave para resolver de manera lógica un problema
es la adecuada elaboración de enunciados. En esta sección vamos a analizar los principios que ubican a
los enunciados en entradas, proceso y salidas.

Para el estudio de este tema, tome su texto básico y lea el subtema Principios en la elaboración
de enunciados.

18
ÍNDICE
Guía didáctica: Lógica de la Programación

Muy probablemente habrá tenido experiencia programando bien sea en el colegio, en su trabajo, o ahora

PRELIMINARES
que está estudiando para obtener su título, si corresponde a este último caso, seguramente reconocerá
estos principios en algunas de las características 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 comprensión que ha obtenido respecto de la elaboración de enunciados,


sírvase desarrollar el ejercicio 03.02, note que no es necesario haber estudiado el capítulo 1 del

BIMESTRE
PRIMER
texto básico para hacerlo. Adicionalmente resuelva las preguntas del capítulo 3.

1.3. Comprensión y especificación del problema

Muchos autores inician el estudio de la programación con situaciones triviales como por ejemplo resolver

SEGUNDO
BIMESTRE
el problema de sumar dos números, lo cual la mayoría de las veces resulta contraproducente porque se
subestima la verdadera naturaleza de los problemas de programación.

¿Qué complejidad se puede encontrar en el problema de sumar dos números o en el de encontrar


el mayor de dos números? ¿Sería posible plantear enunciados para este tipo de problemas? Lo más

SOLUCIONARIO
seguro es que pueda poner uno o dos pero no tendrá necesidad de desarrollar grandes habilidades de
pensamiento para hacerlo.

Los problemas de programación reales suelen tener mayor grado de complejidad y se prestan muy
bien para realizar la identificación de las entradas, proceso y salida. Por ello consideramos importante
comenzar con problemas no triviales que permitan desde el inicio poner en práctica la mayoría de los
principios.

GLOSARIO
Como se verá más adelante el proceso de programación inicia con una etapa de análisis en la cual se
busca identificar todas las características del problema que incluyen: el contexto del dominio que nos
permitiría conocer datos, reglas que acompañan al problema en cuestión y las restricciones de entradas
o salidas que debemos respetar.

MULTIMEDIA
RECURSOS
1.4. Identificación de entradas procesos y salida

Tal como se mencionó anteriormente la resolución de un problema de programación implica la


identificación de entradas, procesos y salidas, las cuales deben cumplir con las características indicadas
en la sección 1.2 de la presente guía.

El análisis del problema contrario a lo que el sentido común dictaría, debe comenzar con la identificación
de la SALIDAS esperadas, es decir los resultado que esperamos tener de nuestra solución. En esta
etapa entonces debemos elaborar los enunciados correspondientes a las salidas que normalmente
corresponderían a los enunciados de resultado.

El siguiente paso es idear el proceso que nos permita llegar al resultado deseado. Los enunciados del
PROCESO, corresponderían a la asignación de valores, enunciados de cálculo y enunciados condicionales.

Finalmente debemos identificar las ENTRADAS requeridas para poder realizar los cálculos. Los
enunciados en esta categoría normalmente corresponden con enunciados de asignación de valores y
enunciados de valor preexistente. La figura 1.2 ilustra gráficamente esta forma de analizar el problema.

19
ÍNDICE
Guía didáctica: Lógica de la Programación

PRELIMINARES
Entradas Proceso Salidas

BIMESTRE
3

PRIMER
1

Etapas en la resolución de un problema

Ejemplo 1.2

SEGUNDO
BIMESTRE
Intentemos aplicar los principios de la elaboración de enunciados al ejemplo 1.1 de la guía didáctica
valiéndonos de la estrategia aquí planteada.

SOLUCIONARIO
Enunciados de las Salidas

• La edad debe expresarse en años, meses y días.


• La edad en años 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.

GLOSARIO
• La edad en días no puede ser menor que cero.
• La edad en días no puede ser mayor que treinta.

Enunciados del proceso

MULTIMEDIA
RECURSOS
• Para calcular la edad se debe restar la fecha de nacimiento de la fecha actual.
• La fecha debe descomponerse en años, meses y días.
• Se debe comenzar restando los días.
• Si el día de nacimiento es mayor al día actual debe solicitar un mes expresado en días a los meses
de la fecha actual, con lo cual se suman 30 días al día 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 año expresado en
meses a la fecha actual, con lo cual se suman 12 meses al mes actual y se resta un año a año actual.
• Finalmente se resta los años.

Enunciados de la entrada

• Para el cálculo de la edad es necesario ingresar la fecha de nacimiento y la fecha actual.


• Las fechas actual y de nacimiento deben ingresarse en tres números cada una que representan
año, mes y día.
• La fecha de nacimiento nunca puede ser mayor que la fecha actual.
• Un año tiene 12 meses.
• Un mes tiene 28, 30 0 31 días.

20
ÍNDICE
Guía didáctica: Lógica de la Programación

• Los meses del año pueden tener valores del 1 al 12.

PRELIMINARES
• Los días del mes pueden tener valores del 1 al 31.

EJERCICIOS

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

BIMESTRE
PRIMER
1. Considere el siguiente problema y elabore los enunciados relacionados con la entrada, procesos
y salidas: se desea entregar una cantidad de dinero en dólares con la menor cantidad de billetes y
monedas.

SEGUNDO
BIMESTRE
¿Ya realizó el ejercicio? ¡Qué bien!
!Continuemos¡

Autoevaluación 1

SOLUCIONARIO
Hemos concluido el estudio de la primera unidad. Conviene comprobar cuánto ha logrado asimilar
de los temas revisados en esta parte, para lo cual es necesario que desarrolle el examen rápido del
capítulo 3 del texto básico. Verifique sus respuestas con el solucionario que se encuentra al final de la

GLOSARIO
guía didáctica.

MULTIMEDIA
RECURSOS
Ir a solucionario

21
ÍNDICE
Guía didáctica: Lógica de la Programación

UNIDAD 2. NATURALEZA DE LOS DATOS

PRELIMINARES
El propósito de la presente unidad es conocer la importancia del uso de los datos al momento de resolver
problemas computacionales, así como también 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
ejecución de nuestros algoritmos.

BIMESTRE
PRIMER
La temática abordada en esta unidad está vinculada con los capítulos 4 y 5 del texto
básico.

2.1. Naturaleza de los datos

SEGUNDO
BIMESTRE
Antes de revisar y desarrollar un algoritmo, es necesario aprender a utilizar los datos que serán procesados
y transformados en resultados (información) por dichos algoritmos. Los datos son representaciones
simbólicas no significativas que sirven como punto de partida para poder resolver un problema
computacional.

SOLUCIONARIO
A continuación se muestran los diferentes tipos de valores que se pueden manejar en un computador:

Tipo de valor Descripción


Numéricos Permiten realizar cálculos aritméticos
Cadena Permite manejar una serie de caracteres como

GLOSARIO
un solo valor
Fecha Permiten almacenar fechas del calendario
Booleanos Permite almacenar valores binarios. 1-0,
Verdadero-Falso
Nulos Ausencia de valor

MULTIMEDIA
RECURSOS
BLOB Representación binaria para almacenar
imágenes, sonidos, etc.

A continuación usted podrá darse cuenta en qué punto intervienen los datos, considerando la
arquitectura general de un computador.

Datos Procesamiento Información

Figura 2.1 Arquitectura general de un computador

“Un dato por sí mismo no constituye información, es el procesado de los datos lo que nos proporciona
información”.2

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

22
ÍNDICE
Guía didáctica: Lógica de la Programación

2.2. Expresiones y variables

PRELIMINARES
Para comprender cómo escribir expresiones, sírvase estudiar el apartado “Expresiones y
Variables” del capítulo 4 de su texto básico.

Una vez que ha realizado la lectura del apartado sugerido, podemos concluir que una expresión en
términos generales es la representación de un cálculo necesario para la obtención de un resultado; a
continuación se presenta ejemplos de diferentes tipos de expresiones:

BIMESTRE
PRIMER
4 Expresión absoluta
“UTPL” Expresión absoluta
8+2 Expresión compuesta

SEGUNDO
BIMESTRE
nom_variable 4

SOLUCIONARIO
RAM

Por otro lado, una variable es una referencia lógica a una posición física de la memoria RAM, tal como se
esquematiza a continuación:

GLOSARIO
En donde: nom_variable corresponde al nombre de la variable que referencia al valor 4 (expresión
absoluta), que está almacenado físicamente en una celda de la memoria RAM.

2.3. Dominios

MULTIMEDIA
RECURSOS
Una vez que haya revisado los contenidos del libro en relación a los dominios y sus tipos, podemos
concluir que un dominio es el conjunto de valores válidos 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 años de una
persona, claramente podemos darnos cuenta que el rango de valores válidos estarían 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 ejecución del algoritmo o en su defecto que provoquen
almacenar información incorrecta.

2.4. Tipos de operadores

Luego de haber identificado en su texto básico los tipos de operadores que se puede usar en una expresión,
podemos concluir diciendo que un operador es un símbolo que tiene una función predefinida (suma,
resta, multiplicación, mayor que, etc.); los mismos que nos permiten construir expresiones compuestas,
como las que se muestran a continuación:

A = (b * h)
A = (b * h) / 2
Y = x^2 + 5

23
ÍNDICE
Guía didáctica: Lógica de la Programación

Los operadores se clasifican de acuerdo a su función, así tenemos la siguiente clasificación:

PRELIMINARES
Operadores aritméticos

Operador Acción
- Suma
+ Resta
* Multiplicación

BIMESTRE
PRIMER
/ División
^ Exponencial

Operadores de asignación

SEGUNDO
BIMESTRE
Operador Acción
= Igual que

Operadores relacionales o comparativos

SOLUCIONARIO
Operador Acción
= Igual que
< Menor que
> Mayor que
<= Menor o igual que

GLOSARIO
>= Mayor o igual que
!= Distinto a

Operadores Lógicos

Operador Acción

MULTIMEDIA
RECURSOS
NOT Negación
AND Conjunción (Y)
OR Disyunción (O)

Es importante señalar que el resultado de las operaciones lógicas, es decir expresiones que contengan
operadores comparativos o lógicos, está determinado por las tablas de verdad correspondientes a cada
una de ellas, tal como se puede apreciar a continuación:3

Operador NOT

A NOT A
V F
F V

3. Wikipedia (2009): Tablas de valores de verdad, [En línea] Disponible en: http://es.wikipedia.org/wiki/Tabla_de_va-
lores_de_verdad [Consultado 15-06-2009]

24
ÍNDICE
Guía didáctica: Lógica de la Programación

Operador AND

PRELIMINARES
A B A AND B
V V V
V F F
F V F
F F F

BIMESTRE
PRIMER
Operador OR

A B A OR B
V V V
V F V

SEGUNDO
BIMESTRE
F V V
F F F

SOLUCIONARIO
2.5. 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
básico, finalmente compleméntelos con lo que a continuación se cita:

Los operadores de una expresión se evalúan, en general, de acuerdo al siguiente orden:

GLOSARIO
1. Paréntesis (comenzando por los más internos)
2. Signo
3. Potencias
4. Productos y divisiones
5. Sumas y restas

MULTIMEDIA
RECURSOS
6. Relacionales
7. Negación
8. Conjunción
9. Negación

Para poder entender el funcionamiento de las reglas de precedencia, desarrollaremos el siguiente


ejercicio: tenemos la expresión: ((3 + 2) * 2 - 4) / 2 * 5, del cual debemos obtener su resultado, a
continuación resolveremos dicha expresión paso a paso, tomando en cuenta el orden de precedencia
de los operadores.

Expresión 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

25
ÍNDICE
Guía didáctica: Lógica de la Programación

PRELIMINARES
Ejercicio 2.1

Resolver la siguiente expresión teniendo en cuenta las reglas de precedencia.

Expresión 12 / 4 * (7 - 5) / 3 * (4 – 3)

BIMESTRE
PRIMER
SEGUNDO
BIMESTRE
EJERCICIOS

Es hora de trabajar en los siguientes ejercicios.

SOLUCIONARIO
1. Desarrolle los ejercicios del apartado Ejercicio 04.04 del texto básico.
2. Desarrolle los ejercicios del apartado Ejercicio 05.01 del texto básico.
3. Dados los valores de: X = 1, Y = 4, Z = 10, resolver la siguiente expresión tomando en cuenta el
orden de los operadores.

GLOSARIO
2 * X + 0.5 * Y – 1 / 5 * Z

Autoevaluación 2

MULTIMEDIA
RECURSOS
Una vez terminada esta unidad, midamos su nivel de comprensión resolviendo el examen rápido del
capítulo 4 del texto básico.

Ir a solucionario

26
ÍNDICE
Guía didáctica: Lógica de la Programación

UNIDAD 3. ALGORITMOS

PRELIMINARES
El propósito 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 aplicación que cumpla con todas las expectativas del usuario. También se
revisará la estructura de un algoritmo y cómo debemos implementarlos aplicándolos a la resolución de
problemas de la vida real.

BIMESTRE
PRIMER
La temática abordada en esta unidad está vinculada con el capítulo 6 del texto básico.

SEGUNDO
BIMESTRE
3.1. Ciclo de desarrollo

El desarrollo de aplicaciones informáticas involucra una serie de fases que se tienen que ir cumpliendo
para la obtención del producto final. El conjunto de estas fases se conoce con el nombre de Ciclo de
Desarrollo. Existen diversos autores y metodologías que plantean sus propias fases y denominaciones

SOLUCIONARIO
para el ciclo de desarrollo, pero podemos resumirlas en las siguientes:

1. Análisis
2. Diseño
3. Codificación
4. Pruebas e implantación

GLOSARIO
5. Mantenimiento

Revisemos ahora las actividades que se realizan en cada una de las fases del ciclo de
desarrollo, así como también los entregables que se deben generar en cada fase, para ello
sírvase estudiar los apartados del capítulo 6 de su texto básico: Procedimiento de creación

MULTIMEDIA
RECURSOS
de un programa e Implementación práctica del ciclo de desarrollo.

Una vez que haya concluido con la revisión de los apartados del texto base, puede darse cuenta que
el desarrollo de una aplicación informática para la automatización de procesos de negocio no es nada
trivial, por lo que se requiere de un gran equipo de trabajo y de una adecuada planificación para lograr
el objetivo final.

En la actualidad dos de las metodologías de software más usadas para el desarrollo de sistemas
informáticos de nivel empresarial son MSF (Microsoft Solution Framework) y RUP (Rational Unified
Process). Estas metodologías constituyen un marco referencial que se debe ajustar para cada equipo,
proyecto y empresa. A continuación se presenta las fases que proponen dichas metodologías.

27
ÍNDICE
Guía didáctica: Lógica de la Programación

PRELIMINARES
BIMESTRE
PRIMER
SEGUNDO
BIMESTRE
Figura 3.1. Modelo de Procesos del MSF4

SOLUCIONARIO
GLOSARIO
MULTIMEDIA
RECURSOS

Figurar 3.2. Modelo de Procesos del RUP5

4. Microsoft. (2002): MSF Process Model v. 3.1, [En línea] Disponible en: http://www.microsoft.com/msf [Consulta
15-06-2009]
5. Jacob, I., Booch, G. y Rumbaugh, J. (2004), El Proceso Uniicado de Desarrollo de Software, España, Pearson Edu-
cación.

28
ÍNDICE
Guía didáctica: Lógica de la Programación

3.2. Determinación de requerimientos

PRELIMINARES
Vamos a iniciar este tema definiendo lo que es un requerimiento. La definición que aparece en [IEEE,
1990] es la siguiente:

Una condición 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

BIMESTRE
PRIMER
el apartado “Analizar el caso real” del capítulo 6 de su texto básico, en donde se explica
en forma detallada y ordenada las actividades que debe realizar para poder completar
de forma acertada la etapa de obtención o determinación de requerimientos.

Es importante señalar también que la gran cantidad de calificativos que se aplican al término

SEGUNDO
requerimiento muestran distintos aspectos ortogonales que a menudo se consideran aisladamente.

BIMESTRE
Para intentar clarificar la situación, 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

SOLUCIONARIO
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.

• Característica que define: Clasifica los requerimientos en función de la naturaleza de la


característica del sistema deseada que se especifica. La clasificación más habitual suele ser la

GLOSARIO
de requerimientos funcionales (qué funciones debe realizar el sistema) y no funcionales (otras
características 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 formación en ingeniería del software, y los

MULTIMEDIA
RECURSOS
desarrolladores de software. Cuando la audiencia está formada por clientes y usuarios, la forma
más 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 técnicas estructuradas, orientadas a
objetos o formales.

29
ÍNDICE
Guía didáctica: Lógica de la Programación

PRELIMINARES
BIMESTRE
PRIMER
SEGUNDO
BIMESTRE
SOLUCIONARIO
Figura 3.3. Dimensiones de los requerimientos6

3.3. Estructuración de pasos del algoritmo

Estimado estudiante, para este tema, estudie el apartado “Algoritmos” del capítulo 6
de su texto básico, incluidos los ejercicios.

GLOSARIO
Antes de desarrollar nuestro primer algoritmo, es preciso dar una definición:

Un algoritmo es un conjunto de pasos ordenados lógicamente que permiten realizar un tarea.

En base a esta definición podemos determinar el siguiente proceso al momento de construir nuestros

MULTIMEDIA
RECURSOS
algoritmos:

1. Identificar los datos de entrada.


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

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

Largo: 10 metros
Ancho: 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. Monografías. (2004): Dimensiones de la Ingeniería de Requerimientos, [En línea] Disponible en: http://www.monograias.
com/trabajos26/sistema-documentacion/sistema-documentacion2.shtml [Consulta 15-06-2009]

30
ÍNDICE
Guía didáctica: Lógica de la Programación

3. Presentamos el resultado (Área) al usuario

PRELIMINARES
Note que el algoritmo está compuesto de esos 3 pasos principales, aún no se ha utilizado los tipos de
datos ni la creación de variables, este tema será cubierto en la siguiente sección de la guía, aquí nos
limitamos a ver únicamente la estructuración general del algoritmo.

Bien, realicemos el siguiente ejercicio.

BIMESTRE
PRIMER
Ejercicio 3.1

Elaborar un algoritmo que permita determinar el área de un triángulo equilátero cuyo lado es
5 cm.

SEGUNDO
BIMESTRE
3.4. Resolución de problemas mediante algoritmos

Revise los ejercicios resueltos en su texto básico, los mismos que se encuentran en el apartado

SOLUCIONARIO
“Analizando los casos y diseñando sus algoritmos” del capítulo 6, para que complete la
resolución de los problemas que se plantean a continuación:

Ejercicio 3.2

GLOSARIO
El programa debe mostrar el factorial de un número ingresado por el usuario. El factorial de un
número entero positivo se define como el producto de todos los números naturales anteriores
o iguales a él. Por ejemplo:

5! = 5 * 4 * 3 * 2 * 1 = 120

MULTIMEDIA
RECURSOS
El símbolo ! indica factorial.

Utilice los espacios siguientes para el desarrollo.

Análisis del caso

Área del conocimiento

Matemática elemental

Análisis de los elementos del todo

31
ÍNDICE
Guía didáctica: Lógica de la Programación

Unidades de funcionalidad

PRELIMINARES
ID Unidad de funcionalidad Prioridad Obligatoriedad
1

BIMESTRE
PRIMER
Interfaz

SEGUNDO
BIMESTRE
SOLUCIONARIO
Algoritmo

1 Inicio
2
3

GLOSARIO
4
5
6

MULTIMEDIA
RECURSOS
Simulación

Supongamos que ingresamos el número 4, el programa debería mostrar lo siguiente:

Ingrese el número para obtener su factorial: 4

El factorial de 4 es 24

32
ÍNDICE
Guía didáctica: Lógica de la Programación

PRELIMINARES
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 básico.

BIMESTRE
PRIMER
Autoevaluación 3

SEGUNDO
BIMESTRE
¡Felicitaciones¡ ¡Ha concluido el primer bimestre ¡ sólo le falta revisar su nivel de comprensión de los
algoritmos resolviendo el examen rápido del capítulo 6 del texto básico.

SOLUCIONARIO
Ir a solucionario

GLOSARIO
MULTIMEDIA
RECURSOS

33
SEGUNDO BIMESTRE

Guía didáctica: Lógica de la Programación


.

7.4. Planificación para el trabajo del alumno

CONTENIDOS CRONOGRAMA
COMPETENCIAS OBJETIVOS DE ACTIVIDADES DE RECURSOS
ORIENTATIVO EVALUACIÓN
ESPECÍFICAS APRENDIZAJE Unidades /Temas APRENDIZAJE DIDÁCTICOS
Tiempo estimado
• Disponer de • Elaborar algoritmos Unidad 4: Estructuras de Semana 9, 10 y 11 • Lectura • Texto básico • Autoevaluaciones
fundamentos que permitan decisión y Bucles comprensiva por unidades en la
• Guía Didáctica
matemáticos, la resolución 24 horas de guía didáctica
• Desarrollo de
económicos, de problemas 4.1 Flujos de programa autoestudio • Entorno Virtual
actividades • Evaluaciones a
estadísticos utilizando 4.2 Estructuras selectivas 12 horas de de Aprendizaje:
recomendadas en la distancia
y financieros estructuras de 4.3 Bucles interacción foros, actividades,
guía didáctica
necesarios para selección y control. 4.4 Estructuras de control documentos. • Evaluaciones
interpretar, anidadas • Interacción con el presenciales
• Utilizar pruebas • Teléfono
seleccionar, valorar 4.5 Pruebas de Escritorio EVA
de escritorio para • Participación en los
el uso y desarrollo • Correo electrónico
validar la ejecución • Inicio del desarrollo foros.
tecnológico y sus
de los algoritmos de la evaluación a
aplicaciones.
distancia.

• Analizar las • Conocer la Unidad 5. Diagramas de Semana 12 • Lectura


necesidades de simbología de los flujo comprensiva
conocimiento diagramas de flujo. 8 horas de
• Desarrollo de
necesarias para 5.1 Elementos de un autoestudio
• Emplear los actividades
resolver un diagrama de flujo 4 horas de prácticas
diagramas de flujo recomendadas en la
problema. 5.2 Elaboración de
en la resolución de guía didáctica
diagramas de flujo
• Comprender, problemas.
5.3 Ejercicios con diagramas • Continuar con
analizar y resolver
de flujo el desarrollo de
problemas
la evaluación a
aplicando los
distancia
métodos de
la ciencia y la • Participación del
ingeniería. foro propuesto en el
34

EVA

RECURSOS SEGUNDO PRIMER


GLOSARIO SOLUCIONARIO PRELIMINARES ÍNDICE
MULTIMEDIA BIMESTRE BIMESTRE
• Aplicar la lógica • Desarrollar Unidad 6. Desarrollo Semana 13 y 14 • Desarrollo de
matemática en aplicaciones de problemas de actividades

Guía didáctica: Lógica de la Programación


el contexto de sencillas utilizando programación 16 horas de recomendadas en la
las Ciencias de herramientas de autoestudio guía didáctica
la Computación, programación. 6.1 Abstracción de 8 horas de
• Participación del
con proyección, al ejercicios de interacción
foro propuesto en el
diseño de circuitos, programación
EVA
programación, 6.2 Componentes de una
análisis y desarrollo aplicación • Finalizar el
de algoritmos. 6.3 Desarrollo aplicaciones desarrollo de
sencillas la evaluación a
distancia.
Unidad de la 4a la 6 Semana 15 y 16 Preparación para la
prueba presencial del
segundo bimestre.
35

RECURSOS SEGUNDO PRIMER


GLOSARIO SOLUCIONARIO PRELIMINARES ÍNDICE
MULTIMEDIA BIMESTRE BIMESTRE
ÍNDICE
Guía didáctica: Lógica de la Programación

PRELIMINARES
7.5. Orientaciones específicas para el aprendizaje por competencias

UNIDAD 4. ESTRUCTURAS DE DECISIÓN Y BUCLES

BIMESTRE
El propósito de la presente unidad es dar a conocer el funcionamiento y utilidad de las estructuras

PRIMER
de decisión y control, así como también su uso en el desarrollo de algoritmos para la resolución de
problemas. Se revisará también mecanismos que le permitan comprobar si el algoritmo desarrollado
funciona o no correctamente.

SEGUNDO
BIMESTRE
La temática abordada en esta unidad está vinculada con el capítulo 7 del texto básico.

SOLUCIONARIO
4.1. Flujos de programa

Es preciso iniciar dando una definición de lo que es un programa: Secuencia lógica de instrucciones que
manipulan o procesan un conjunto de datos para obtener resultados que corresponden a la solución
del problema.

GLOSARIO
En base a esta definición podemos indicar que la ejecución o flujo de un programa consiste en la
realización secuencial del conjunto de instrucciones desde la primera a la última y de una en una. Este
orden de realización únicamente será alterado mediante las estructuras de decisión y control (bucles).
Los procesos que se pueden llevar a cabo en un programa pueden ser de tipo aritmético o lógico,
incluyéndose algunas operaciones de manejo de caracteres y operaciones de entrada y salida.

MULTIMEDIA
RECURSOS
Una vez que tenemos clara la definición de Programa y cómo es su flujo o ejecución, ahora pasaremos
a revisar los componentes o partes principales que lo conforma, en el siguiente cuadro podemos
observar que básicamente 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
ÍNDICE
Guía didáctica: Lógica de la Programación

Bloque de declaraciones

PRELIMINARES
En él se especifican todas las variables que serán 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, Símbolo Tipo de dato [Dominio])


(base, i[1-n])

BIMESTRE
PRIMER
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, números mayores o iguales a 1.

Para conocer los símbolos de los tipos de datos, sírvase revisar el apartado “Representación
abstracta de tipos base” del capítulo 4 de su texto base.

SEGUNDO
BIMESTRE
Bloque de instrucciones

SOLUCIONARIO
Está formado por el conjunto de operaciones que se han de realizar para la obtención de los resultados
deseados. Según 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

GLOSARIO
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 envía a los dispositivos externos.

MULTIMEDIA
RECURSOS
Ahora bien, procederemos a adoptar un estándar al momento de escribir nuestras instrucciones que
formarán parte del programa o algoritmo. De acuerdo al tipo de instrucción u operación que vayamos
a emplear, tenemos lo siguiente:

a. Declaración

(Nombre variable, Símbolo tipo de dato [Dominio])


(lado, i[1-n])

b. Cambio de estado (Asignación)

Nombre de variable ←Expresión


lado ← 10

c. Lectura de datos (Petición)

>> Nombre de variable


>> lado

37
ÍNDICE
Guía didáctica: Lógica de la Programación

d. Muestra de datos

PRELIMINARES
<< Expresión
<< lado

Estimado estudiante, usted debe revisar el apartado “Operaciones a nivel dato” del capítulo
7 de su texto básico.

BIMESTRE
PRIMER
4.2. Estructuras selectivas

Las estructuras selectivas permiten realizar la evaluación de expresiones lógicas, para controlar la

SEGUNDO
BIMESTRE
ejecución de una o más instrucciones. Existen principalmente dos tipos de estructuras selectivas o
condicionales que son:

a. Condicional simple

SOLUCIONARIO
Si Expresión lógica entonces
Instrucciones a ejecutar si la expresión lógica es True (verdadera)
Fin si

Ejemplo:

GLOSARIO
Si edad >= 18 entonces
>> “Usted es mayor de edad”
Fin si

b. Condicional compuesto

MULTIMEDIA
RECURSOS
Si Expresión lógica entonces
Instrucciones a ejecutar si la expresión lógica es True (verdadera)

De lo contrario
Instrucciones a ejecutar si la expresión lógica 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
ÍNDICE
Guía didáctica: Lógica de la Programación

PRELIMINARES
Para aclarar estos conceptos, por favor proceda a realizar la lectura del apartado “Estructuras
de decisión” del capítulo 7 de su texto básico.

4.3. Bucles

Los bucles también conocidos como ciclos repetitivos o estructuras de control, permiten realizar la

BIMESTRE
PRIMER
ejecución de un conjunto de instrucciones de manera repetitiva mediante la evaluación de una o más
condiciones lógicas 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.

SEGUNDO
BIMESTRE
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:

SOLUCIONARIO
contador ← 0 Inicialización

contador ← contador + 1 Incremento de 1 en 1

GLOSARIO
b. Acumuladores

Un acumulador es una variable que se utiliza para acumular elementos sucesivos con una misma
operación. Generalmente se usan para calcular sumas o productos. Al igual que los contadores primero
se los debe inicializar y luego realizar la operación de acumulación; así tenemos:

MULTIMEDIA
suma ← 0

RECURSOS
suma ← suma + expresión

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 capítulo 7 de su texto básico.

Cabe señalar que dependiendo del lenguaje de programación que se use, existen varios ciclos repetitivos
que podemos emplear, sin embargo son derivaciones de los dos tipos de bucles que explicaremos a
continuación.

a. Bucles de comparación al inicio

Inicialización del contador


Mientras Expresión lógica Entonces
Uso del contador
Instrucciones a ejecutar si la Expresión lógica es True (verdadera)

39
ÍNDICE
Guía didáctica: Lógica de la Programación

Fin Mientras

PRELIMINARES
Ejemplo: Escribir los números dígitos.

numero ← 0
Mientras numero < 10 Entonces

numero ←numero +1
<< numero

Fin Mientras

BIMESTRE
PRIMER
El resultado del ejemplo es:

0 1 2 3 4 5 6 7 8 9

b. Bucles de comparación al final

SEGUNDO
BIMESTRE
Inicialización del contador
Inicio
Instrucciones a ejecutar si la Expresión lógica es True (verdadera)

SOLUCIONARIO
Uso del contador
Hasta que Expresión lógica

Ejemplo: Escribir los números dígitos.

numero ← 0
Inicio

GLOSARIO
numero ←numero +1
<< numero

Hasta que numero >= 10

El resultado del ejemplo es:

MULTIMEDIA
RECURSOS
0 1 2 3 4 5 6 7 8 9

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 básico, ¿Cuál es la
diferencia entre un bucle de comparación al inicio y un bucle de comparación al final?

4.4. Estructuras de control anidadas

Se conoce como estructuras de control anidadas a la combinación o uso de las estructuras de decisión
y/o ciclos repetitivos (bucles) en la elaboración 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 más fáciles de leer, utilizaremos como una práctica habitual el aplicar sangría al cuerpo de
cada una de las instrucciones anidadas.

40
ÍNDICE
Guía didáctica: Lógica de la Programación

PRELIMINARES
Ejemplo 4.1

Determinar si la edad de una persona es la correcta para sufragar.

Si edad >= 18 entonces

BIMESTRE
PRIMER
Si edad < 65 entonces
<< “Usted debe sufragar obligatoriamente”
Caso Contrario
<< “Usted puede sufragar opcionalmente”
Fin Si
Caso Contrario

SEGUNDO
BIMESTRE
<< “Usted no puede sufragar”
Fin Si

Como usted puede apreciar en el ejemplo 4.1, se ha utilizado anidamiento en la estructura de decisión

SOLUCIONARIO
(condicional) para resolver el problema en mención. Cabe indicar también que existen varias soluciones a
dicho problema, las mismas que están relacionadas con la capacidad de cada persona para comprender,
encontrar y plasmar dichas soluciones en un algoritmo. Esta capacidad se desarrolla mediante la
práctica continua, por lo que lo invito desde ya a plasmar los conocimientos aquí aprendidos, mediante
la realización de ejercicios que permitan potenciar su habilidad para la resolución de problemas
computacionales.

GLOSARIO
Ahora bien, una vez que hemos estudiado las estructuras de decisión 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 también son conocidas como Pseudocódigo, es decir un
lenguaje neutral, que sin llegar a la rigidez de la sintaxis de un lenguaje de programación ni a la fluidez
del lenguaje coloquial, permite codificar un programa o algoritmo con mayor agilidad.

MULTIMEDIA
RECURSOS
Estimado estudiante, lo invito a realizar la lectura del Apartado “Miniespecificaciones” del
capítulo 7 de su texto básico.

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 miniespecificación el ejemplo 4.1 sobre la edad de una persona para sufragar.

41
ÍNDICE
Guía didáctica: Lógica de la Programación

Observe el siguiente planteamiento.

PRELIMINARES
1 INICIO:
2 (edad, i[1..160])
3 << “Ingrese su edad en años: ”
4 >> edad
5 Si edad >= 18 entonces

BIMESTRE
PRIMER
6
Si edad < 65 entonces
7
<< “Usted debe sufragar obligatoriamente”
8

SEGUNDO
BIMESTRE
Caso Contrario
9
<< “Usted puede sufragar opcionalmente”
10 Fin Si

SOLUCIONARIO
11 Caso Contrario
12 << “Usted no puede sufragar”
13 Fin Si
14 :FIN

En la miniespecificación podemos observar las siguientes instrucciones:

GLOSARIO
- (edad, i[1..160]) Declaración de la variable edad
- << “Ingrese su edad en años: Presentación de un mensaje
- >> edad Lectura de datos sobre la variable edad

MULTIMEDIA
RECURSOS
4.5. Pruebas de escritorio

En la sección 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 ¿cómo podemos verificar este cometido?, para poder comprobar esto, nos valemos de
las pruebas de escritorio que no son más que pruebas manuales que permiten visualizar el estado de las
variables durante la ejecución del programa, lo que nos permitirá saber en donde se encuentra el error,
para proceder a su corrección.

Estimado estudiante, para comprender el ejercicio que a continuación está resuelto,


usted debe revisar primero los ejercicios de su texto básico en el capítulo 7, en el
apartado “Miniespecificaciones de los casos prácticos”.

Para llevar a cabo las pruebas de escritorio, vamos a resolver el siguiente ejemplo:

42
ÍNDICE
Guía didáctica: Lógica de la Programación

PRELIMINARES
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 más gana así como también
del que menos gana. Si se repite el mayor o menor sueldo se presenta el primero que se encuentre.

BIMESTRE
PRIMER
Para resolver este problema, primero debemos identificar claramente cuáles van a ser las salidas, el
proceso y las entradas, para poder desarrollar con éxito la miniespecificación; así tenemos:

Enunciados de las Salidas

• Se debe presentar el nombre y el sueldo mensual del empleado que más gana.

SEGUNDO
BIMESTRE
• 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

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

• Para obtener el empleado que más 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 ejecución del

GLOSARIO
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 ejecución del
bucle.

MULTIMEDIA
RECURSOS
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, también necesitamos variables para almacenar el nombre
de la persona que más gana y su sueldo, así como también 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 decisión, y para controlar que
nos ingrese 4 empleados nos valdremos del bucle de comparación al inicio (Mientras). En base a todo
esto procedemos a escribir nuestra miniespecificación.

43
ÍNDICE
Guía didáctica: Lógica de la Programación

1 INICIO:

PRELIMINARES
2 (nombre,x(50))
3 (sueldo,d[0-n])
4 (nombreMaySueldo,x(50))
5 (sueldoMayor,d[0-n])
6 (nombreMenSuedo,x(50))
7 (sueldoMenor,d[0-n])

BIMESTRE
PRIMER
8 (num, i[0-n])
9 << “Ingrese el nombre y el sueldo”
10 >> nombre
11 >> sueldo
12 nombreMaySueldo ← nombre
sueldoMayor ← sueldo

SEGUNDO
BIMESTRE
13
14 nombreMenSuedo ← nombre
15 sueldoMenor ← sueldo
16 num ← 2
17 Mientras num <= 4 entonces

SOLUCIONARIO
18 num ← num +1
19 << “Ingrese el nombre y el sueldo”
20 >> nombre
21 >> sueldo
22 Si sueldo > sueldoMayor entonces
sueldoMayor ← sueldo

GLOSARIO
23
24 nombreMaySueldo ← nombre
25 Caso Contrario
26 Si sueldo < sueldoMenor entonces
27 sueldoMenor ← sueldo
nombreMenSueldo ← nombre

MULTIMEDIA
28

RECURSOS
29 Fin Si
30 Fin Si
31 Fin Mientras
32 << “El empleado que más gana es: ” + nombreMaySueldo + “con un sueldo de: $ ” + sueldoMayor
33 << “El empleado que menos gana es: ” + nombreMenSueldo + “con un sueldo de: $” + sueldoMayor
34 :FIN

Una vez que hemos escrito la miniespecificación, 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 ejecución del programa.

Supongamos que ingresamos los datos de los siguientes 4 empleados:


Nombre: Luis Sueldo mensual: $ 700
Nombre: María Sueldo mensual: $ 800
Nombre: José Sueldo mensual: $ 400
Nombre: Jorge Sueldo mensual: $ 1000

44
ÍNDICE
Guía didáctica: Lógica de la Programación

A la línea 16, la tabla luciría así:

PRELIMINARES
Variable Valor
nombre Luis
sueldo 700
nombreMaySueldo Luis
sueldoMayor 700

BIMESTRE
PRIMER
nombreMenSueldo Luis
sueldoMenor 700
num 2

En la primera repetición dentro del bucle Mientras entre la línea 17 y 31, el resultado sería el siguiente:

SEGUNDO
BIMESTRE
Variable Valor
nombre María
sueldo 800

SOLUCIONARIO
nombreMaySueldo María
sueldoMayor 800
nombreMenSueldo Luis
sueldoMenor 700
num 3

GLOSARIO
En la segunda repetición dentro del bucle Mientras entre la línea 17 y 31, el resultado sería el siguiente:

Variable Valor
nombre José

MULTIMEDIA
RECURSOS
sueldo 400
nombreMaySueldo María
sueldoMayor 800
nombreMenSueldo José
sueldoMenor 400
num 4

En la tercera repetición dentro del bucle Mientras entre la línea 17 y 31, el resultado sería el siguiente:

Variable Valor
nombre Jorge
sueldo 1000
nombreMaySueldo Jorge
sueldoMayor 1000
nombreMenSueldo José
sueldoMenor 400
num 5

45
ÍNDICE
Guía didáctica: Lógica de la Programación

A la línea 32, tendremos:

PRELIMINARES
“El empleado que más gana es: Jorge con un sueldo de: $ 1000”

A la línea 33, tendremos:

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

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

PRIMER
ejecutado.

EJERCICIOS 4.1

SEGUNDO
BIMESTRE
En base al ejercicio del cálculo de la edad de una persona explicado en la Unidad 1 de la presente
guía didáctica, realice las pruebas de escritorio, siguiendo la miniespecificación propuesta para
dicho problema. Utilizar los siguientes datos de prueba:

Fecha de nacimiento: 01/10/1985

SOLUCIONARIO
Fecha actual: 03/07/2009

1 INICIO:
2 (anio_n, i[1900-2009])
3 (mes_n, i[1-12])
4 (dia_n, i[1-31])

GLOSARIO
5 (anio_a, i[1900-2009])
6 (mes_a, i[1-12])
7 (dia_a, i[1-31])
8 (edad_a, i[0-150])
9 (edad_m, i[0-12])

MULTIMEDIA
RECURSOS
10 (edad_d, i[0-31])
11 <<”Ingrese la fecha de nacimiento en años, meses y días”
12 >> anio_n
13 >> mes_n
14 >> dia_n
15 <<”Ingrese la fecha actual en años, meses y días”
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 Fin Si
23 edad_d ← dia_a – dia_n
24 Si mes_n > mes_a entonces
25 mes_a ← mes_a + 12
26 anio_a ← anio_a – 1
27 Fin Si

46
ÍNDICE
Guía didáctica: Lógica de la Programación

28 edad_m ← mes_a – mes_n

PRELIMINARES
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

BIMESTRE
PRIMER
35 :FIN

SEGUNDO
BIMESTRE
SOLUCIONARIO
GLOSARIO
MULTIMEDIA
RECURSOS
EJERCICIOS

Le recuerdo que la asignatura es práctica, 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 básico.

Autoevaluación 4

¿Qué tanto logró comprender de este tema? Mida su avance resolviendo el examen rápido del capítulo
7 del texto básico.

Ir a solucionario

47
ÍNDICE
Guía didáctica: Lógica de la Programación

UNIDAD 5. DIAGRAMAS DE FLUJO

PRELIMINARES
Una vez que ha aprendido cómo resolver problemas utilizando las diferentes herramientas de la lógica
de programación, vamos a continuar nuestro estudio con una técnica visual de programación conocida
como Diagramas de flujo de programa, la cual le ayudará a comprender mejor la manera de resolver
problemas de programación.

BIMESTRE
PRIMER
El propósito de este capítulo es enseñarle a utilizar los diagramas de flujo de programas
utilizando el estándar ANSI/ISO 5887-1985 para diagramas de flujo, por lo que usaremos como
referencia el capítulo 8 del texto básico.

SEGUNDO
BIMESTRE
Comencemos estudiando algunos preliminares sobre este tema en al apartado
“Diagramas de flujo” del capítulo 8, solamente hasta las “Reglas para la elaboración de
un diagrama de flujo “.

SOLUCIONARIO
Como habrá notado, los diagramas de flujo de programa son una poderosa herramienta para expresar
la lógica de la programación, pero se debe tener en cuenta algunos principios que se plantean
efectivamente en el texto, otro aspecto es que los símbolos a usarse deben corresponder a una notación
estándar para que todos entiendan lo que se quiere expresar con el mismo.

En este punto podría 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

GLOSARIO
necesario tener la miniespecificación, y esto es verdad, pero ¿cuál de los dos debo usar?, ¿es necesario
desarrollar ambos?

La respuesta a estas preguntas las podemos encontrar en los siguientes planteamientos:

MULTIMEDIA
RECURSOS
1. La notación visual ayuda a tener una apreciación completa de la solución que difiere de la
obtenida en las miniespecificaciones, esto gracias a una mejor visualización lograda con el uso de
los símbolos gráficos.

2. La notación estándar permite una comunicación más efectiva, lo cual convierte a los diagramas de
flujo en una excelente herramienta para documentar los programas.

3. La lógica de programación debe expresarse en un lenguaje independiente de cualquier lenguaje


de programación, las mini especificaciones tienden a inclinarse a uno u otro lenguaje lo cual
incide en el código de la miniespecificación, en tanto que los diagramas de flujo son totalmente
independientes de cualquier lenguaje de programación.

En base a estas premisas, obtenga sus propias conclusiones.

5.1. Elementos de un diagrama de flujo

Un diagrama de flujo básicamente está conformado por símbolos y reglas. Si usted recapitula un poco, se
dará cuenta de que hay correspondencia entre estos símbolos y las sentencias válidas de un programa,
por lo que se puede dibujar un diagrama de flujo a partir de una miniespecificación o hacerlo sin ella.

48
ÍNDICE
Guía didáctica: Lógica de la Programación

En cuanto a los símbolos, los Diagramas de Flujo de Programa tienen 4 categorías que son:

PRELIMINARES
• De datos (entrada/salida), ingresar o mostrar datos.
• De preparación de datos.
• De proceso.
• Especiales.

BIMESTRE
ENTRADA/SALIDA DE DATOS

PRIMER
Para entrada o salida de datos se usa el símbolo al cual se le debe indicar si se trata de un ingreso
de datos (GET) o una presentación de datos (PUT), aunque esto en realidad no corresponde al estándar,
tal como lo menciona el autor del libro, por lo que se puede usar otro tipo de notación para indicar si
se trata de una entrada o una salida. Otro aspecto que no se menciona en el libro es la posibilidad de

SEGUNDO
BIMESTRE
combinar un mensaje de solicitud de datos con una entrada de datos, en realidad sería una entrada de
datos acompañada de un mensaje de petición 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 práctica muchos programadores que se enfocan en la solución de un problema consideran que no

SOLUCIONARIO
es necesario colocar mensajes de entrada de datos, puesto que esos son detalles de implementación, en
tal virtud podría 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 almacenarán los datos.

GLOSARIO
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

MULTIMEDIA
RECURSOS
E
num

Figura 5.1 Formas de utilizar le símbolo de entrada/salida de datos

SIMBOLO DE PROCESOS

En esta categoría tenemos varios símbolos de proceso que tal como se encuentra explicado en el texto
básico, son usados en la mayoría de notaciones, en este punto simplemente comentaremos algunos
aspectos.

Si lo piensa un poco, la preparación de datos definida en símbolo , podría bien realizarse con el
símbolo de proceso , no habría problema en hacerlo, pero la preparación de datos normalmente
no forma parte del problema, es por ello que al tratarse de programación visual se tiene una visión más
clara del problema si se diferencian este tipo de procesos.

49
ÍNDICE
Guía didáctica: Lógica de la Programación

Con relación al símbolo vale realizar una aclaración importante, puesto que en la descripción

PRELIMINARES
se habla de un proceso nominado, que en términos un poco más cercanos a nuestra jerga, serían
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 símbolo se usa para representar procesos que se ejecutan al mismo tiempo, en la mayoría
de programas de procesamiento de datos no es tan usual que esto suceda puesto que la mayoría
de situaciones se procesan de manera secuencial, en otros contextos el uso de procesos paralelos es

BIMESTRE
PRIMER
indispensable, quizá uno de los campos donde mayor aplicación 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 acción proveniente
del exterior que les obliga a cambiar de comportamiento.

SEGUNDO
BIMESTRE
Con relación a los símbolos se usan para establecer los límites y las condiciones de ejecución
de un bucle o también denominados ciclos repetitivos que estudió en el capítulo anterior.

Las líneas de flujo se usan para unir símbolos y nos ayudan a establecer el orden de ejecución de las

SOLUCIONARIO
instrucciones contenidos en los símbolos, estas líneas deben terminar en una punta de flecha para
indicar de a dónde va el flujo, además se debe considerar que el orden de lectura normalmente suele ser
de izquierda a derecha y de arriba hacia abajo, además estas líneas siempre deben dibujar se en ángulos
rectos.

SIMBOLOS ESPECIALES

GLOSARIO
Se llaman especiales porque si bien no representan ningún proceso, nos ayudan a identificar el inicio
o el final , o la continuación de una sección de diagrama debido a que es muy grande
para colocarlo todo junto.

Otro símbolo que se puede usar en la categoría de especial es el símbolo de anotación cuyo uso es

MULTIMEDIA
RECURSOS
importante para clarificar varias secciones del programa con comentarios respecto de la lógica utilizada
o alguna consideración importante, este símbolo es particularmente importante en secciones del
diagrama cuyo nivel de complejidad es alto.

El uso de la notación estándar como mencionábamos anteriormente tiene radical importancia, por
lo tanto consideraremos como mala práctica el no usar los símbolos definidos o inventar otro tipo de
notación.

5.2. Elaboración de diagramas de flujo

El desarrollo de diagramas de flujo puede realizarse de dos maneras, la primera es partir de una
miniespecificación y la segunda es hacerlo directamente sin ella, en cualquiera de los dos casos
debemos tener en cuenta la necesidad de realizar el análisis correspondiente del problema, tal como
apreciábamos en el capítulo 1 de la presente guía didáctica, sin este análisis resultará muy complicado
tratar de resolver cualquier problema.

Vale acotar además que cualquier instrucción dada en miniespecificación tiene su contraparte en los
diagramas de flujo, por lo que la traducción podría realizarse de manera directa y viceversa. Una diferencia
fundamental es que tanto en las miniespecificaciones conocidas también como pseudocódigo y el código

50
ÍNDICE
Guía didáctica: Lógica de la Programación

de un programa en un lenguaje cualquiera es preciso realizar pasos previos como la declaración de

PRELIMINARES
variables donde se especifica el tipo de dato y tamaño 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 implementación.

Para aprender cómo escribir diagramas de flujo, remítase a la sección “Cómo elaborar
un diagrama de flujo de programa” del capítulo 8, y estudie detenidamente los primeros
diagramas que le van indicando cada una de las estructuras básicas de un diagrama de
flujo.

BIMESTRE
PRIMER
En la sección del libro indicada, se ha mostrado como construir un diagrama de flujo para un programa
que lea números del 1 al 10 hasta que se ingrese el número 7, y además se lo ha hecho a partir de una
miniespecificación. Ahora es posible que se esté preguntando ¿si ya tengo la miniespecificación, 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.

SEGUNDO
BIMESTRE
Se desea desarrollar un diagrama de flujo para un programa que sea capaz de decir si un número es
perfecto. Se considera que un número es perfecto cuando la sumatoria de todos sus divisores exactos
es igual al mismo número.

SOLUCIONARIO
La miniespecificación para este algoritmo sería la siguiente:

1 INICIO:
2 (num, i[0-n])
3 (cnt, i[0-n])
4 (sum, i[0-n])

GLOSARIO
5 << “Ingrese el número”
6 >> num
7 cnt 1
8 sum 0
9 Mientras cnt <= num entonces

MULTIMEDIA
10 Si num % cnt =0 entonces

RECURSOS
11 << cnt
12 sum sum + cnt
13 Fin si
14 Cnt = cnt + 1
15 Fin mientras
16 Si sum = num entonces
17 << “El número es perfecto”
18 Fin si
19 :FIN

Si traducimos esta miniespecificación a diagrama de flujo obtendríamos el diagrama de la figura 5.2, en


el cual se puede apreciar con mayor claridad cuál es la lógica de programación utilizada, esto a pesar
de que el código de la miniespecificación 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 técnica de representar la lógica de la programación.

51
ÍNDICE
Guía didáctica: Lógica de la Programación

PRELIMINARES
Inicio

num

cnt 1

BIMESTRE
PRIMER
sum 0

Verifica si cnt es d ivisor d e


num , m ediante la b usqueda

SEGUNDO
BIMESTRE
del residuo d e la d ivisión , si
este e s 0, e s divisor e xácto
cnt < num

SOLUCIONARIO
(num % cnt) = 0 Si cnt sum sum + cnt

no

cnt = cnt +

GLOSARIO
1

cnt

MULTIMEDIA
RECURSOS
“El num ero
sum = num si
es p erfecto”

no

“El núm ero


no e s
perfecto”

fin

Figura 5.2 Diagrama de flujo de programa para encontrar si un número es perfecto

Como seguramente se habrá dado cuenta, los diagramas de flujo permiten hacer un seguimiento más
claro de la lógica utilizada para resolver el problema. ¿Qué podría responder ahora respecto de las
preguntas planteadas anteriormente?

Ahora, trabajemos sobre la otra estrategia para desarrollar los diagramas de flujos, que sería dibujar el
diagrama sin hacer la miniespecificación.

52
ÍNDICE
Guía didáctica: Lógica de la Programación

PRELIMINARES
Ejemplo 5.1

Resolver mediante un diagrama de flujo el ejemplo 1.2 del cálculo de la edad de una persona que
planteamos en la unidad 1, en este caso no vamos a tener como punto de referencia la miniespecificación,
sino el análisis del problema que básicamente lo desarrollamos planteando enunciados para las salidas,
el proceso y las entradas requeridas.

BIMESTRE
PRIMER
En este caso como el análisis 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 solución, debemos comenzar en sentido contrario.

Comencemos desarrollando nuestro diagrama con las entradas, para ello repliquemos los enunciados

SEGUNDO
BIMESTRE
de la parte de entrada, pero numerándolos para poder explicarlo mejor:

Enunciados de la entrada

SOLUCIONARIO
1. Para el cálculo 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 números cada una que representan
año, mes y día.
3. La fecha de nacimiento nunca puede ser mayor que la fecha actual.
4. Un año tiene 12 meses.

GLOSARIO
5. Un mes tiene 28, 30 ó 31 días.
6. Los meses del año pueden tener valores del 1 al 12.
7. Los días del mes pueden tener valores del 1 al 31.

MULTIMEDIA
En primer lugar todo diagrama de flujo debe comenzar con el símbolo de inicio (figura 5.3), de la

RECURSOS
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 validación de los valores máximos y
mínimos de cada mes, sin embargo se ha colocado comentarios en el diagrama para que el programador
sepa los detalles de cómo se que se debe implementar.

53
ÍNDICE
Guía didáctica: Lógica de la Programación

PRELIMINARES
Inicio Solicitar año , m es y d ía d e
nacim ient , validando que
cum plan con sus va lores
m áxim os y m ínim os
Anio _n, E
m es_n,
dia _n
Solicitar año , m es y d ía

BIMESTRE
actuales validando que

PRIMER
Anio _a, E cum plan con sus va lores
m es_a, m áxim os y m ínim os
dia _a

Figura 5.4 Diagrama de flujo parcial calculo edad, enunciados entrada

SEGUNDO
BIMESTRE
En cuanto a las entradas hemos considerado todos los enunciados, excepto el número 3, el cual nos
plantea que la fecha de nacimiento nunca puede ser mayor a la fecha actual, aunque se puede diseñar
instrucciones para validarlo en la entrada, quizá sería más conveniente verificarlo más adelante para
reducir un poco la lógica, puesto que de todos modos vamos a comparar los años, los meses y los días.

SOLUCIONARIO
Otra opción puede ser el desarrollo de subrutina que se encargue de esta validación, la cual explicaremos
en el siguiente capítulo.

Dicho esto vamos a proceder a trabajar con los enunciados relacionados con el proceso, igualmente los
numeramos para referenciarlos mejor:

Enunciados del proceso

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

2. La fecha debe descomponerse en años, meses y días.

3. Se debe comenzar restando los días.

MULTIMEDIA
RECURSOS
4. Si el día de nacimiento es mayor al día actual debe solicitar un mes expresado en días a los meses
de la fecha actual, con lo cual se suman 30 días al día 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 año expresado en
meses a la fecha actual, con lo cual se suman 12 meses al mes actual y se resta un año a año actual.

7. Finalmente se resta los años.

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

54
ÍNDICE
Guía didáctica: Lógica de la Programación

PRELIMINARES
Inicio Solicitar año , m es y día de
nacim iento , va lidando que
cum plan con sus va lores
m áxim os y m ínim os
Anio_n, E
m es_n,
dia_n
Solicitar año , m es y día
actuales validando que

BIMESTRE
PRIMER
Anio_a, E cum plan con sus va lores
m es_a, m áxim os y m ínim os
dia_a

SEGUNDO
BIMESTRE
dia_n > dia_a SI dia_a dia_a + 30

m es _a m es_a - 1

SOLUCIONARIO
NO

edad_d dia_a – dia_n

GLOSARIO
Figura 5.5 Diagrama de flujo parcial cálculo edad. Procesando los meses

Ahora procedemos a hacer lo mismo con los meses, sólo que en lugar de sumarle 30 días, debemos
sumarle 12 meses de un año, los cual nos lleva a restarle 1 al año de nacimiento para no alterar los datos,

MULTIMEDIA
RECURSOS
el diagrama resultante se encuentra en la figura 5.6.

Para culminar con los enunciados del procesamiento, vamos a trabajar con los años, 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 verificación de que el año de nacimiento
no sea mayor que el año actual, y en caso de serlo, notificaremos un error, además aquí consideramos
los enunciados de la salida, que básicamente nos dicen que la edad se debe expresar en formato de
año, mes y día, que no puede haber edades negativas, ni tampoco meses o días que superen el límite
establecido. El diagrama resultante se muestra en la figura 5.7.

55
ÍNDICE
Guía didáctica: Lógica de la Programación

Solicitar año , m es y d ía d e

PRELIMINARES
Inicio
nacim iento , va lidando que
cum plan con sus va lores
m áxim os y m ínim os
Anio _n, E
m es_n,
dia _n
Solicitar año , m es y d ía
actuales validando que
Anio _a, E cum plan con sus va lores

BIMESTRE
m es_a,

PRIMER
m áxim os y m ínim os
dia _a

dia _n > dia_a SI dia _a dia_a + 30

SEGUNDO
BIMESTRE
m es_a m es_a - 1
NO

SOLUCIONARIO
edad_d dia _a – dia _n

GLOSARIO
m es _n > m es_a SI m es_a m es_a + 12

anio_a _anio_a - 1
NO

MULTIMEDIA
RECURSOS
edad_m m es_a – m es_n

Figura 5.6 Diagrama de flujo parcial cálculo edad. Procesando los meses

56
ÍNDICE
Guía didáctica: Lógica de la Programación

Inicio Solicitar a ño , m es y día de

PRELIMINARES
nacim iento , validando que
cum plan co n sus v alores
m áxim os y m ínim os
Anio _n, E
m es_n,
dia _n
Solicitar a ño , m es y día
actuales va lidando que
Anio _a, E cum plan con sus v alores
m es_a, m áxim os y m ínim os

BIMESTRE
dia _a

PRIMER
dia _n > dia_a SI dia _a dia_a + 30 m es_a m es _a - 1

SEGUNDO
BIMESTRE
NO

edad_d dia _a – dia _n

SOLUCIONARIO
m es _n > m es_a SI m es_a m es_a + 12 anio_a _anio_a - 1

NO

GLOSARIO
edad_m m es_a – m es_n

S
“Error: La fecha
de n acim iento
anio _n > a nio_a SI
es m ayor a la

MULTIMEDIA
actual”

RECURSOS
NO

edad_a anio _a – anio_n

S
“Edad: “,
edad_a,
edad_m ,
edad_d

F in

Figura 5.7 Diagrama de flujo cálculo edad

57
ÍNDICE
Guía didáctica: Lógica de la Programación

Una vez que hemos completado el diagrama de la figura 5.7, le invito a que ejecute algunas corridas del

PRELIMINARES
diagrama utilizando algunos casos de prueba para ver si el comportamiento de la solución 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 erróneo)

BIMESTRE
PRIMER
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

SEGUNDO
BIMESTRE
SOLUCIONARIO
Caso II
anio_n mes_n dia_n anio_a mes_a dia_a edad_a edad_m edad_d Salida

GLOSARIO
Caso III
anio_n mes_n dia_n anio_a mes_a dia_a edad_a edad_m edad_d Salida

MULTIMEDIA
RECURSOS
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 algún error de concepción 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 solución?
5. ¿Hace falta algún tipo de validación?

Antes de pasar al siguiente capítulo, complemente su estudio con la sección “Diagramas


de flujo para casos prácticos” del texto básico.

58
ÍNDICE
Guía didáctica: Lógica de la Programación

5.3. Ejercicios con diagramas de flujo

PRELIMINARES
Para la mayoría de desarrolladores y profesores de programación, la única manera de aprender a
programar es programando, esto significa que mientras más 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. Podría 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 solución.

BIMESTRE
PRIMER
EJERCICIOS 5.1

SEGUNDO
Desarrolle un diagrama de flujo para obtener el salario neto de los empleados de una empresa que

BIMESTRE
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%.

SOLUCIONARIO
Para desarrollar este ejercicio léalo detenidamente y elabore en primer lugar los enunciados
correspondientes a las salidas, proceso y entradas.

Enunciados para la salida

GLOSARIO
1. El sueldo debe expresarse en dólares.

2. Como resultado debe mostrarse el sueldo, los impuestos y el valor neto.

3. ______________________________________________________________

4. ______________________________________________________________

MULTIMEDIA
RECURSOS
5. ______________________________________________________________

6. ______________________________________________________________

7. ______________________________________________________________

59
ÍNDICE
Guía didáctica: Lógica de la Programación

Enunciados para el proceso

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

2. ______________________________________________________________

3. ______________________________________________________________

BIMESTRE
PRIMER
4. ______________________________________________________________

5. ______________________________________________________________

6. ______________________________________________________________

7. ______________________________________________________________

SEGUNDO
BIMESTRE
SOLUCIONARIO
Enunciados para la entrada proceso

---------------------------------------------------------------------------------------------------------------------------

---------------------------------------------------------------------------------------------------------------------------

---------------------------------------------------------------------------------------------------------------------------

GLOSARIO
---------------------------------------------------------------------------------------------------------------------------

---------------------------------------------------------------------------------------------------------------------------

---------------------------------------------------------------------------------------------------------------------------

---------------------------------------------------------------------------------------------------------------------------

MULTIMEDIA
RECURSOS
---------------------------------------------------------------------------------------------------------------------------

---------------------------------------------------------------------------------------------------------------------------

---------------------------------------------------------------------------------------------------------------------------

---------------------------------------------------------------------------------------------------------------------------

60
ÍNDICE
Guía didáctica: Lógica de la Programación

Una vez que ha terminado de desarrollar los enunciados, desarrolle el diagrama de flujo empezando por

PRELIMINARES
los enunciados para la entrada de datos, luego para los del procesamiento y finalmente para los de la
salida.

BIMESTRE
PRIMER
SEGUNDO
BIMESTRE
SOLUCIONARIO
GLOSARIO
MULTIMEDIA
RECURSOS

61
ÍNDICE
Guía didáctica: Lógica de la Programación

Luego deberá realizar pruebas de escritorio, ocupe el siguiente espacio para hacerlo. Estas pruebas le

PRELIMINARES
permitirán 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.

BIMESTRE
PRIMER
SEGUNDO
BIMESTRE
SOLUCIONARIO
GLOSARIO
MULTIMEDIA
RECURSOS

62
ÍNDICE
Guía didáctica: Lógica de la Programación

PRELIMINARES
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 algún problema debe corregirlo y probarlo nuevamente, de modo que
se asegure de que funciona.

BIMESTRE
PRIMER
Planteamiento del problema: Se desea desarrollar un algoritmo que permita establecer si un número es
primo. Por definición “En matemáticas, un número primo es un número natural que tiene únicamente
dos divisores naturales distintos: él mismo y el 1”, y además la unidad no se considera como número
primo7.

La estrategia usada para el desarrollo se basa en la definición y consiste en contar el número de divisores

SEGUNDO
BIMESTRE
exactos comprendidos entre la unidad y el número.

In icio

SOLUCIONARIO
num

d ß2

d <= n u m

GLOSARIO
num % d = 0 SI d E xa cto s d E xa cto s + 1

NO

MULTIMEDIA
RECURSOS
d d +1

“El num ero


d E xa cto s = 0 SI
e s p r im o ”

NO

“El núm ero


no e s
p r im o ”

F in

Figura 5.8 Diagrama de flujo para determinar si un número es primo

63
ÍNDICE
Guía didáctica: Lógica de la Programación

Ahora sí, manos a la obra, verifique si el diagrama de flujo funciona con los números 1, 2, 4, 5, 9,11, 13, 33.

PRELIMINARES
Utilice el siguiente espacio para resolver la tarea propuesta:

Pruebas de Escritorio

num d dExactos resultado

BIMESTRE
PRIMER
SEGUNDO
BIMESTRE
SOLUCIONARIO
GLOSARIO
MULTIMEDIA
RECURSOS

7. Wikipedia (2009): Numero Primo , [En línea] Disponible en: http://es.wikipedia.org/wiki/N%C3%BAmero_primo


[Consulta 25-06-2009].

64
ÍNDICE
Guía didáctica: Lógica de la Programación

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

PRELIMINARES
BIMESTRE
PRIMER
SEGUNDO
BIMESTRE
SOLUCIONARIO
GLOSARIO
MULTIMEDIA
RECURSOS

65
ÍNDICE
Guía didáctica: Lógica de la Programación

PRELIMINARES
EJERCICIOS 5.3

El propósito de ejercicio es optimizar el diagrama de modo que se reduzcan el número de ciclos del
bucle. Para darse cuenta qué opciones hay para ello ejecútelo con los mismos datos del ejercicio anterior
para que analice el porqué el número de ciclos es alto. Hay al menos dos forma de optimizarlo.

BIMESTRE
PRIMER
Inicio

num

SEGUNDO
BIMESTRE
esPrim o 1

SOLUCIONARIO
D 2

d <= n um

GLOSARIO
num % d = 0 SI esPrim o 0

NO

MULTIMEDIA
RECURSOS
d d+1

“El num ero


esPrim o = 1
es p rim o”

“El núm ero


no e s
prim o”

F in

Figura 5.9 Diagrama de flujo para verificar si un número es primo

66
ÍNDICE
Guía didáctica: Lógica de la Programación

PRELIMINARES
EJERCICIOS 5.4

Se desea construir un algoritmo que le permita generar una tabla de amortización de préstamos 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.

BIMESTRE
PRIMER
Ahora intente resolver el problema en un diagrama de flujo.

SEGUNDO
BIMESTRE
SOLUCIONARIO
GLOSARIO
MULTIMEDIA
RECURSOS

Luego de ver el problema, es probable no haya podido hacer absolutamente nada por falta de
información, ahora ¿Cómo se supone que debemos resolver este problema?

67
ÍNDICE
Guía didáctica: Lógica de la Programación

De acuerdo a lo estudiado debemos comenzar haciendo el análisis del problema, esto es identificando

PRELIMINARES
y elaborando enunciados para las salidas, proceso y finalmente para las entradas. Luego podemos optar
por desarrollar la miniespecificación o directamente el diagrama de flujo.

BIMESTRE
PRIMER
SEGUNDO
BIMESTRE
SOLUCIONARIO
GLOSARIO
MULTIMEDIA
RECURSOS

68
ÍNDICE
Guía didáctica: Lógica de la Programación

Autoevaluación 5

PRELIMINARES
Ánimo, ya ha concluido la Unidad 5, sólo le falta medir cuánto aprendió en ella, para ello lo invito a
desarrollar el examen rápido del capítulo 8 del texto básico.

BIMESTRE
PRIMER
Ir a solucionario

SEGUNDO
BIMESTRE
SOLUCIONARIO
GLOSARIO
MULTIMEDIA
RECURSOS

69
ÍNDICE
Guía didáctica: Lógica de la Programación

UNIDAD 6. DESARROLLO DE PROBLEMAS DE PROGRAMACIÓN

PRELIMINARES
La práctica de la programación es un arte y una ciencia muy interesante para nosotros como seres
humanos, el hecho de poder diseñar algo que es capaz de procesar la información es de por sí una
creación en la que plasmamos nuestra forma de resolver los problemas.

A lo largo de la presente guía didáctica, nuestro principal interés ha sido el de inducir el pensamiento

BIMESTRE
PRIMER
lógico aplicado a la solución de problemas de programación, en este capítulo vamos a usar todo lo
aprendido para diseñar un pequeño 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 programación visual conocida como RAPTOR, desarrollada por La Academia
Pilotos de las Fuerzas Armadas de los Estados Unidos, en la cual tendrá la oportunidad de diseñar sus

SEGUNDO
BIMESTRE
diagramas de flujo y ejecutarlos para ver los resultados, vale aclarar, que el uso de esta herramienta sirve
únicamente para ayudarle a visualizar cómo funciona la lógica de un programa.

SOLUCIONARIO
Para el desarrollo de los contenidos de esta unidad, utilizaremos el capítulo 9 del texto básico.
Los capítulos 10,11,12 y 13 le enseñan 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. Abstracción de problemas de programación

GLOSARIO
El esquema básico de funcionamiento del computador, como mencionamos en la Unidad 1, es de
entradas, proceso, almacenamiento y salida, por tanto una aplicación 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.

MULTIMEDIA
RECURSOS
Función Capa Descripción
Entrada Interfaz de Corresponde a los elementos en pantalla u otro dispositivo que permite que
usuario el usuario ingrese información.
Proceso Lógica de Código de programa que ejecuta las tareas de procesamiento de una
proceso aplicación. 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.
Almace- Datos Estructura de datos o archivos que guardan la información, aunque se dice
namiento que el almacenamiento es lógico, muchas de las veces se lo conoce como
almacenamiento físico porque se guarda en un disco u otro dispositivo
ocupando espacio físico en disco.
Salida Interfaz de Nos referimos nuevamente a la interfaz de usuario en razón de que la interfaz
usuario sirve para interactuar, esto es ingresar o visualizar información. Muchas de las
veces la salida puede ser un sonido, una impresión o un mensaje.

70
ÍNDICE
Guía didáctica: Lógica de la Programación

Sin importar el tamaño de la aplicación, siempre debemos pensar en estas capas, aunque puede haber

PRELIMINARES
programas que no las requieran, por ejemplo un programa podría no requerir la capa de almacenamiento,
porque no guarda información. Es posible también que existan programas con muchas más capas
debido a la complejidad de los mismos, normalmente esto se da en aplicaciones corporativas, las cuales
tienen en su diseño varias capas, el mismo que se conoce como la arquitectura de la aplicación.

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 interés

BIMESTRE
PRIMER
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 información en disco, eso significa que no tendrá la
capa de datos.

EJERCICIOS 6.1

SEGUNDO
BIMESTRE
Cálculo de la edad de una persona

En el ejemplo del cálculo de la edad de una persona identificamos las siguientes capas. Si no recuerda

SOLUCIONARIO
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 información,
en nuestro diagrama la interfaz de usuario estaría dada por los símbolos de la figura 6.1:

GLOSARIO
Anio _n, E
m es_n,
dia _n

Anio _a, E S S

MULTIMEDIA
“Edad: “, “Error: La fecha

RECURSOS
m es_a,
edad_a, de n acim iento
dia _a
edad_m , es m ayor a la
edad_d actual”

Figura 6.1 Instrucciones del diagrama para interfaz de usuario

Si analiza un poco los diagramas, estos corresponde al símbolo de datos, es decir a las instrucciones de
ingreso ó salida de información. Puesto que en un diagrama no es necesario incluir elementos gráficos
de interfaz, esto se ha omitido acá, pero en los programas es necesario implementar ciertos diseños
de pantallas que resulten más agradables al usuario y le permitan comprender de manera intuitiva el
funcionamiento de la aplicación, a los programas que cumplen con esta característica se los conoce
como amigables. En la figura 6.2 colocamos un ejemplo de cómo podría ser una pantalla para esta
misma aplicación.

71
ÍNDICE
Guía didáctica: Lógica de la Programación

PRELIMINARES
BIMESTRE
PRIMER
SEGUNDO
BIMESTRE
Figura 6.2 Modelos de interfaz de usuario

El ejemplo de la figura 6.2 muestra una interfaz básica en la que las ventanas aparecen conforme se va
ejecutando la aplicación, pero las aplicaciones de software normalmente utilizan modelos de interfaz

SOLUCIONARIO
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.

GLOSARIO
MULTIMEDIA
RECURSOS

Figura 6.3 Modelo de interfaz de usuario avanzado

72
ÍNDICE
Guía didáctica: Lógica de la Programación

Capa de lógica de proceso

PRELIMINARES
A la lógica de procesamiento corresponden los siguientes símbolos, 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
de lo que está pasando internamente. Las instrucciones del diagrama correspondientes a esta capa son
las que se muestran en la figura 6.4

BIMESTRE
dia _n > dia_a SI dia _a dia_a + 30 m es_a m es _a - 1

PRIMER
NO

edad_d dia _a – dia _n

SEGUNDO
BIMESTRE
m es _n > m es_a SI m es_a m es_a + 12 anio_a _anio_a - 1

SOLUCIONARIO
NO

edad_m m es_a – m es_n

GLOSARIO
anio _n > a nio_a

NO

MULTIMEDIA
RECURSOS
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 práctica lo visto en esta sección, realizando los siguientes ejercicios:

• Desarrolle un análisis de capas similar al aplicado al cada uno de los problemas desarrollados en la
sección 5.3 de la guía.

• Diseñe posibles interfaces de usuario para cada uno de los ejercicios de la sección 5.3. Puede usar
Microsoft Visio u otro diagramador para hacerlo.

73
ÍNDICE
Guía didáctica: Lógica de la Programación

6.2. Componentes de una aplicación

PRELIMINARES
Al igual que cualquier producto, el software se compone de una serie de elementos que son fabricados
de código, por tanto los componentes son lógicos. En el apartado anterior abstraíamos las capas que
forman parte de una aplicación en la que hacíamos mención a diferentes instrucciones del diagrama de
flujo, pero estas instrucciones se organizan de manera lógica en diferentes tipos de componentes, los
cuales vamos a listar a continuación.

BIMESTRE
PRIMER
Nombre del
Capa Descripción
componente
Ventanas
Formularios Son objetos propios de interfaz de usuario que normalmente se
Interfaz de Botones los encuentra como librerías de los lenguajes de programación,

SEGUNDO
BIMESTRE
usuario Cuadros de texto o se pueden crear y definir como componentes reutilizables en
Listas combinadas bibliotecas de componentes.
Listas
Funciones
Procedimientos

SOLUCIONARIO
Lógica de Clases Elementos de código que construye el programador a los cuales
proceso Módulos les asigna la responsabilidad de procesar y validar la información.
Variables
Constantes
Archivos Elementos que poseen una estructura que se guarda físicamente
Datos
Tablas en el disco duro con información relacionada a la aplicación.

GLOSARIO
Estos son los componentes que por lo general se encuentra en las aplicaciones de software, y si usted ha
tenido oportunidad de desarrollar alguna aplicación, habrá reconocido algunos de ellos.

Suele ocurrir con mucha frecuencia que en el código de muchas aplicaciones no se distingue las capas

MULTIMEDIA
que indicamos, y esto es un problema sobre todo cuando surgen cosas que hay que corregir, por ello es

RECURSOS
importante desde el inicio tener en cuenta esta estructura para diseñar 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 capítulos posteriores del texto para programación 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 ejecutarán, de modo que
los programadores no pierdan mucho tiempo dándoles forma y se puedan centrar en la capa de
procesamiento.

En la capa de lógica de programación, los componentes tales como las funciones y procedimientos
pueden ser provistos por el lenguaje de programación o desarrollados como parte de la aplicación, por
ello es importante conocer las prestaciones que ofrece un lenguaje determinado para simplificar nuestra
tarea de programación.

Funciones y Procedimientos

Conocemos como funciones y procedimientos a ciertas partes de código que se diseñan para cumplir
una tarea específica y devolver el control a la sección de código que la llamó, en términos generales

74
ÍNDICE
Guía didáctica: Lógica de la Programación

se las conoce como subrutinas y si recuerda el capítulo 5, la llamada a las mismas se representa con el

PRELIMINARES
símbolo . Las subrutinas hacen que los programas sean mucho más eficientes.

Las subrutinas que caen en la denominación de funciones se caracterizan porque siempre devuelven un
valor que es almacenado en una variable o se usan como parte de una expresión, por ejemplo la función
pi() puede devolver el valor de π, en este caso no necesita recibir ningún parámetro de entrada. Por otro
lado las que caen en categoría de procedimientos se caracterizan porque al ser llamadas ejecutan una
acción, pero no retornan ningún valor y por tanto no pueden colocarse como parte de una expresión.

BIMESTRE
PRIMER
En la tabla 6.1 nos permitimos listar algunas de las funciones comunes que la mayoría de lenguajes de
programación suelen traer.

Tabla 6.1 Tabla de funciones comunes en lenguajes de programación

SEGUNDO
BIMESTRE
Función Descripción
abs(n) Devuelve el valor absoluto de n, es decir ignora el signo de
positivo o negativo.
sqrt(n) Obtiene la raíz cuadrada de n.

SOLUCIONARIO
sqr (n) Obtiene el cuadrado de n.
random(n) Obtiene un número 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.

GLOSARIO
Tal como lo imagina el contar con estas funciones hacen que se simplifique considerablemente el
esfuerzo de programación, todos los lenguajes de programación entre ellos java, c++, c#, Visual Basic,
ofrecen un rico conjunto de funciones que se pueden usar en la fase de codificación.

Librerías

MULTIMEDIA
RECURSOS
Para sacar el máximo provecho a estas funciones y procedimientos, lo que se suele hacer es crear
bibliotecas de código, de forma tal que puedan ser utilizadas en más de un programa.

Archivos de datos

Cuando usted desarrolla un aplicación que necesita guardar información tiene dos opciones para hacerlo,
la primera es crear archivos de datos tipo texto o binarios que sólo puede ser leídos por su aplicación 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 diseño 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 guía didáctica encontrará el programa
Raptor,

75
ÍNDICE
Guía didáctica: Lógica de la Programación

Una característica muy importante de Raptor es que le permite dibujar el diagrama de flujo y ejecutarlo,

PRELIMINARES
mostrando además los valores de las variables utilizadas, es decir le ahorra todo el proceso manual,
además entre otras cosas le permite generar código para lenguajes como Ada, Java, C++ o puede
generar un programa ejecutable que funciona como cualquier aplicación.

No queremos extendernos más en el asunto y pongámonos manos a la obra, lo que sí debemos advertirle
es que hay algunas variaciones en los símbolos usados para realizar los diagramas en Raptor, de todos
modos deberá estudiarlo para poder hacer uso de él.

BIMESTRE
PRIMER
Iniciemos instalando el programa Raptor que se encuentra en su disco, si tiene alguna dificultad, consulte
la documentación.

Una vez que ha logrado instalar Raptor, tome el capítulo 9 de su texto básico y desarrolle los
ejemplos y aplicaciones que el autor propone.

SEGUNDO
BIMESTRE
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 más ejercicios y quizá estaría demás decir que

SOLUCIONARIO
programe en raptor todos los ejercicios desarrollados hasta ahora.

Para completar este capítulo, nos hemos permitido desarrollar una aplicación completa en Raptor con el
propósito de que entienda como se construye una aplicación.

Ejemplo 6.1

GLOSARIO
Desarrollar en Raptor un programa para jugar al ahorcado.

Descripción de la aplicación:

MULTIMEDIA
RECURSOS
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 posición, los demás 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 muñeco por cada error cometido, hasta que
el muñeco 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 muñeco ahorcado y termina el juego.

76
ÍNDICE
Guía didáctica: Lógica de la Programación

Proceso:

PRELIMINARES
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 muñeco.
4. Se considera como error a una letra repetida o una letra que no consta en la palabra.

BIMESTRE
PRIMER
Entrada:

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

SEGUNDO
BIMESTRE
Como podrá darse cuenta, los enunciados nos pueden llevar a detalles de implementación
mucho más complejos, pero a medida que se explique la aplicación 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 capítulo del texto básico
indicado, lo retome hasta comprenderlo debidamente.

SOLUCIONARIO
Ahora analicemos los componentes de la aplicación por capas:

CAPA DE INTERFAZ

A este nivel nos hemos permitido desarrollar dos componentes, el primero es una pantalla de

GLOSARIO
ingreso de las letras, y el segundo es una pantalla gráfica que muestra el estado de la palabra
y en caso de cometer errores el dibujo del muñeco ahorcándose. 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.

MULTIMEDIA
RECURSOS

Figura 6.5 Interfaz para el ingreso de datos

77
ÍNDICE
Guía didáctica: Lógica de la Programación

PRELIMINARES
BIMESTRE
PRIMER
SEGUNDO
BIMESTRE
SOLUCIONARIO
GLOSARIO
Figura 6.6 Interfaz gráfica de salida de la aplicación.

MULTIMEDIA
RECURSOS
CAPA DE LÓGICA

A nivel de lógica necesitamos datos predefinidos y varios grupos de instrucciones organizados en


subrutinas, las cuales debemos ir llamando conforme las necesitemos, además debemos hacer uso de
varias funciones de la biblioteca de raptor que nos permitan hacer cosas como seleccionar aleatoriamente
una palabra, inicializar el modo gráfico y dibujar las figuras.

A nivel de diagramas y subdiagramas necesitamos lo siguiente:

1. Un programa principal desde donde empieza a ejecutarse la aplicación.

2. Varios subprogramas con propósitos específicos, 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
ÍNDICE
Guía didáctica: Lógica de la Programación

Tabla 6.2 Lista de diagramas y subdiagramas que conforman la aplicación

PRELIMINARES
Nombre Propósito Llamado desde
main Programa principal, desde aquí se No debe tener llamadas.
ejecuta toda la aplicación.
crear_lista Crea la lista de palabras en una matriz. inicializar_juego.
inicializar_palabra Rellena con guiones la palabra que se inicializar_juego.

BIMESTRE
le muestra al usuario.

PRIMER
ahorcar Dibuja paso a paso el muñeco del main.
juego.
escribir Dibuja la palabra donde constan main.
las letras acertadas y guiones en las

SEGUNDO
demás.

BIMESTRE
inicializar_juego Crea el entorno de datos necesario main .
para poder comenzar el juego.
crear_interfaz Crea la interfaz gráfica. main .

SOLUCIONARIO
CAPA DE DATOS

Aunque la aplicación no guarda la información 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 subíndice
entre corchetes, esto se puede apreciar en el sub diagrama inicializar_lista.

GLOSARIO
Una recomendación 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
instrucción y muestra los valores de las variables.

MULTIMEDIA
RECURSOS
Para visualizar y analizar la aplicación abra el archivo
ahorcado.rap que se encuentra en el CD en la carpeta
ejemplos raptor

EJERCICIOS 6.1

Con lo aprendido en este capítulo, desarrolle un juego en Raptor en el cual teniendo un máximo de 7
intentos la máquina adivina un número del 1 al 100 pensado por el usuario utilizando el método de la
búsqueda binaria. La búsqueda binaria consiste en dividir el rango de números posible en 2 y realizar
dos preguntas, la primera mostrar el número del centro del rango y preguntar si se trata de ese número,
si el usuario dice que es correcto el computador a logrado adivinar el número y termina, en caso de no
ser el número, realiza la segunda pregunta que sería si el número 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 número. Si no lo logra en 7 intentos, el usuario
respondió incorrectamente las preguntas, en este caso debe alertar del particular.

79
ÍNDICE
Guía didáctica: Lógica de la Programación

Con este tema finalizamos la asignatura, y estamos seguros de que les será de gran utilidad para las

PRELIMINARES
asignaturas siguientes, como recomendación final le sugerimos seleccione uno de los lenguajes de
programación desarrollados en el libro y trate de programar en el las soluciones dadas. En el disco
adjunto a la guía hemos incluido algunos de los lenguajes de programación como java y c++ para que
los use en su aprendizaje.

BIMESTRE
Autoevaluación 6

PRIMER
Concluya el estudio de esta materia desarrollando el examen rápido del capítulo 9 del texto básico.

SEGUNDO
BIMESTRE
SOLUCIONARIO
Ir a solucionario

GLOSARIO
MULTIMEDIA
RECURSOS

80
ÍNDICE
Guía didáctica: Lógica de la Programación

PRELIMINARES
8. Solucionario

PRIMER BIMESTRE
Autoevaluación 1

BIMESTRE
PRIMER
Pregunta Respuesta

Parte 1

1. a

SEGUNDO
BIMESTRE
2. b

3. a

SOLUCIONARIO
4. b

5. c

Parte 2

6. V

GLOSARIO
7. F

8. F

9. V

MULTIMEDIA
RECURSOS
10. V

Ir a autoevaluación

81
ÍNDICE
Guía didáctica: Lógica de la Programación

Autoevaluación 2

PRELIMINARES
Pregunta Respuesta

Parte 1

1. c

BIMESTRE
PRIMER
2. a

3. c

4. b

SEGUNDO
BIMESTRE
5. c

Parte 2

6. V

SOLUCIONARIO
7. F

8. F

9. F

GLOSARIO
10. V

MULTIMEDIA
RECURSOS
Ir a autoevaluación

82
ÍNDICE
Guía didáctica: Lógica de la Programación

Autoevaluación 3

PRELIMINARES
Pregunta Respuesta

Parte 1

1. c

BIMESTRE
PRIMER
2. a

3. c

4. a

SEGUNDO
BIMESTRE
5. b

Parte 2

6. F

SOLUCIONARIO
7. F

8. F

9. V

GLOSARIO
10. V

MULTIMEDIA
RECURSOS
Ir a autoevaluación

83
ÍNDICE
Guía didáctica: Lógica de la Programación

SEGUNDO BIMESTRE

PRELIMINARES
Autoevaluación 4
Pregunta Respuesta

Parte 1

BIMESTRE
PRIMER
1. b

2. c

3. a

SEGUNDO
BIMESTRE
4. a

5. c

Parte 2

SOLUCIONARIO
6. F

7. F

8. F

GLOSARIO
9. V

10. F

MULTIMEDIA
RECURSOS
Ir a autoevaluación

84
ÍNDICE
Guía didáctica: Lógica de la Programación

Autoevaluación 5

PRELIMINARES
Pregunta Respuesta

Parte 1

1. a

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

Estructuras de control

Estructuras de d ecisión

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

D eclaraciones

SOLUCIONARIO
Petición d e datos

m uestra

GLOSARIO
Ir a autoevaluación

MULTIMEDIA
RECURSOS

85
ÍNDICE
Guía didáctica: Lógica de la Programación

Autoevaluación 6

PRELIMINARES
Pregunta Respuesta

Parte 1

1. b

BIMESTRE
PRIMER
2. c

3. b

4. b

SEGUNDO
BIMESTRE
5. a

Parte 2

6. F

SOLUCIONARIO
7. V

8. F

9. V

GLOSARIO
10. V

MULTIMEDIA
RECURSOS
Ir a autoevaluación

86
ÍNDICE
Guía didáctica: Lógica de la Programación

PRELIMINARES
9. Glosario

ADA.- Lenguaje de programación orientado a objetos.

Algoritmo.- Secuencia ordenada de pasos que nos permiten realizar alguna actividad.

BIMESTRE
PRIMER
Aplicación.- 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 repetición de una o más instrucciones, existen tres tipos
de bucles, los que evalúan la condición a la entrada, los que evalúan la condición a la salida y los que se
ejecutan un determinado número de veces con la ayuda de un contador.

SEGUNDO
BIMESTRE
Booleano.- Se puede aplicar a una variable o a una expresión cuyo valor puede ser verdadero o falso.
Deriva del Álgebra de Boole.

Condición.- Expresión booleana que se usa para desviar el flujo del programa o terminar un bucle.

SOLUCIONARIO
Constante.- Espacio de memoria capaz de guardar un valor que no cambia durante la ejecución de un
programa. Matemáticamente son valores fijos que se utilizan para realizar diferentes cálculos.

Conclusión.- Resultado al que se llega partiendo de unas premisas y aplicando reglas de inferencia.

C++.- Lenguaje de programación orientado a objetos muy utilizado en el desarrollo de aplicaciones de

GLOSARIO
mediano y bajo nivel, deriva del lenguaje C.

C# (si charp).- Versión de C orientado a objetos desarrollado por Microsoft he incluido en su plataforma
Visual Studio .Net.

MULTIMEDIA
Expresión.- Grupo de constantes y/o variables con operadores que de acuerdo a una sintaxis permite

RECURSOS
realizar la transformación de los datos, sus resultados se almacenan en variables.

Enunciado.- En lógica de programación es una expresión lingüística que establece un pensamiento,


puede ser interrogativo, imperativo o declarativo.

MPAE&JSCB/ vt/ 05-08-09/83


Digitalizado/2014-07-20

87
ÍNDICE
Guía didáctica: Lógica de la Programación

PRELIMINARES
10. Recursos educativos multimedia

Videoconferencias Diapositivas

BIMESTRE
PRIMER
Primer Bimestre Primer Bimestre
1. Análisis de problemas 1. Análisis de problemas

2. Resolución de expresiones 2. Resolución de expresiones

SEGUNDO
BIMESTRE
3. Algoritmo de análisis 3. Algoritmo de análisis

Segundo Bimestre Segundo Bimestre

SOLUCIONARIO
1. Sentencias condicionales 1. Sentencias condicionales

2. Bucles 2. Bucles

3. Pruebas de escritorio 3. Pruebas de escritorio

GLOSARIO
MULTIMEDIA
RECURSOS

88
18106

También podría gustarte