Está en la página 1de 56

Tema III: Técnicas de diseño de algoritmos

UNIVERSIDAD ESTATAL A DISTANCIA

ESCUELA DE CIENCIAS EXACTAS Y NATURALES

Roberto Morales Hernández

Guía de estudio para el curso


Lógica para computación
Código: 3071

San José, Costa Rica


2008

I
Tema III: Técnicas de diseño de algoritmos

Producción académica y
asesoría pedagógica:
Ana María Sandoval Poveda

Encargado de cátedra:
Roberto Morales Hernández

Especialista en contenidos:
Nuria Rodríguez Sama

Diseño de esquemas:
Roberto Morales Hernández

Trazo de esquemas:
Ana María Sandoval Poveda

Corrección filológica:
Fiorella Monge Lezcano

II
Tema III: Técnicas de diseño de algoritmos

Tabla de contenidos

Presentación ........................................................................................ IV
Objetivo general ................................................................................... V
Requisitos del curso ............................................................................... V
Material de apoyo ................................................................................. VI
Desglose de capítulos por tema .............................................................. VI
Consejos de estudio ............................................................................VIII
Tema 3 Técnicas de diseño de algoritmos ................................................. 1
Propósitos del tema .......................................................................... 1
Guía para el capítulo 6 ...................................................................... 3
Sumario ..................................................................................... 3
Comentarios generales ................................................................. 4
Ejercicios sugeridos ............................................................... 13
Guía para el capítulo 7 .................................................................... 24
Sumario ................................................................................... 24
Comentarios generales ............................................................... 26
Ejercicios sugeridos ............................................................... 37
Referencias bibliográficas ..................................................................... 45
Referencias electrónicas de consulta para el estudiante ............................ 47

III
Tema III: Técnicas de diseño de algoritmos

Presentación

El curso Lógica para computación pretende que los estudiantes, que


inician la carrera de Informática administrativa desarrollen el proceso
lógico mental. Esta habilidad les permitirá conocer las herramientas
necesarias para incursionar en el mundo de la programación de
computadoras.

Este curso es introductorio y pretende proporcionarle las bases


necesarias para enfrentar las materias del programa de estudios.

A lo largo de este curso, usted se enfrentará a varios temas


complementarios entre sí. A continuación se le ofrece una breve
descripción de ellos.
1. El primer tema se denomina Definiciones básicas de

computación. Con este tema, se busca que el estudiante


adquiera los conocimientos básicos para identificar la estructura
básica de una computadora y los diferentes componentes que la
forman. También se estudiarán los lenguajes de programación y
los diferentes códigos utilizados para trabajar en computación.
2. El segundo tema recibe el nombre de Introducción a la lógica

de programación. Los conocimientos trabajados en los capítulos


de este tema le permitirán explicar los elementos de la lógica, su
empleo en las labores de programación de computadoras y en la
resolución de los ejercicios planteados.
3. El tercer tema, Técnicas de diseño de algoritmos, le dará la

oportunidad de utilizar diferentes técnicas de construcción de


algoritmos que resuelvan casos reales de programación y
orientados a datos y a miniespecificaciones (documentación).

IV
Tema III: Técnicas de diseño de algoritmos

4. El cuarto tema corresponde a Desarrollo de diagramas de

flujo. Lo estudiado en este tema le dará la posibilidad de


desarrollar diagramas de flujo con estándares establecidos a nivel
internacional y complementos de programación visual.
5. El quinto y último tema corresponde a la Implementación de

algoritmos en diferentes lenguajes de programación. En


esta parte del curso, se trabajará con el uso de la lógica y los
algoritmos para resolver problemas de diversa complejidad
empleando los lenguajes de programación: C++ y Java.

Objetivo general

El propósito general de este curso es introducirlo en el uso de algoritmos


que le permitan resolver problemas. Los problemas pueden ser tanto
específicos como de propósito general y para su resolución se requiere
una comprensión e implementación de la lógica, que se consigue con la
aplicación de técnicas actuales de desarrollo de software orientado a
objetos y la consideración criterios de calidad apropiados para su
solución.

Requisitos del curso

Este curso es introductorio y corresponde al primer acercamiento a la


Informática. Como tal, no tiene requisitos y es parte del plan de
diplomado de la carrera de Informática administrativa.

V
Tema III: Técnicas de diseño de algoritmos

Material de apoyo

Para trabajar los cinco temas de este curso requerirá de los siguientes
materiales:
 Unidad didáctica: RAMÍREZ, FELIPE (2007). Introducción a la
programación. Algoritmos y su implementación en Visual
Basic.NET, C#, C++ y Java. Segunda edición. México D.F.:
Alfaomega Grupo Editor.
 Folleto de orientaciones generales para este curso específico:
MORALES HERNÁNDEZ, ROBERTO (2008). Orientaciones para el curso
Lógica para computación. San José: EUNED.
 Esta guía de estudio: MORALES HERNÁNDEZ, ROBERTO (2008). Guía de
Estudio para el curso Lógica para computación. EUNED.

Desglose de capítulos por tema

El curso Lógica para computación está compuesto por los cinco temas
que se detallaron anteriormente. Estos temas se estudian a través de 11
capítulos de la unidad didáctica.

El siguiente cuadro le indica qué capítulos corresponden a cada tema por


estudiar:
Números
Tema Capítulo
de página

Tema 1: Definiciones básicas de computación


 La computadora y los niveles de datos 1 1 – 16
 Lenguajes de programación y su clasificación 2 17 – 34

Tema 2: Introducción a la lógica de programación


 Introducción a la lógica de programación 3 35 – 54
 La naturaleza de los datos 4 55 – 74

VI
Tema III: Técnicas de diseño de algoritmos

 Operadores y reglas de precedencia 5 75 – 92


Tema 3: Técnicas de diseño de algoritmos
 Algoritmos para el análisis de casos reales 6 93 – 134
 Algoritmos orientados a datos y 7 135 – 174
miniespecificaciones
Tema 4: Desarrollo de diagramas de flujo
 Diagramas de flujo 8 175 – 208
 Programación visual usando Raptor 9 209 – 266
Tema 5: Implementación de algoritmos en diferentes
lenguajes de programación
 Implementación de algoritmos en C++ 12 335 – 366
 Implementación de algoritmos en Java 13 367 – 441

Cada uno de los temas de la unidad didáctica cuenta con sus propios
objetivos de estudio, contenidos, actividades y exámenes para la
autoevaluación. En esta guía encontrará orientaciones para su estudio y
ayudas adicionales para potenciar la comprensión de los temas. Los
cinco temas tienen una estructura similar:
 Objetivos de estudio para el tema. Son diferentes de los que
propone el autor de la unidad didáctica, pues se adaptan a las
necesidades de la carrera Informática administrativa de la UNED.
 Una guía de lectura para cada capítulo que forma el tema en
estudio. Todos los temas se componen por dos o más capítulos de
la unidad didáctica. Las guías de lectura incluyen:
o Un sumario que detalla los aspectos que se estudiarán.
o Un índice que señala las páginas de la unidad didáctica que
debe abarcar en su estudio.
o Cometarios generales sobre los contenidos. En esta sección
encontrará actividades, esquemas resumen y conceptos
relacionados con los temas.

VII
Tema III: Técnicas de diseño de algoritmos

o Ejercicios sugeridos de la unidad didáctica con sus


correspondientes respuestas. Aquí, se incluye una guía
de análisis de los mapas mentales de la unidad didáctica y
las respuestas de los exámenes cortos.
 Un cierre correspondiente a los capítulos que abarca el tema.

Es necesario recordarle que todos estos recursos se complementan con


la ayuda en línea que encontrará en el sitio del curso. Todas las
indicaciones para utilizarlo las encontrará en Las orientaciones para el
curso.

Consejos de estudio
Colaboración
Lic. Ana María Sandoval Poveda

Probablemente usted tiene una manera de estudiar que ha probado a lo


largo de los años y sabe la calidad de resultados que obtiene con ella.
De todas maneras, nunca está de más contar con algunas
recomendaciones al respecto.
 Prepárese antes de comenzar a estudiar. Procure buscar un lugar
bien iluminado. De ser posible ubíquese en un lugar solitario y
acondicionado para trabajar. Tenga a mano papel, lápices,
lapiceros, los materiales del curso y, llegado el momento, una
computadora.
 Por diversas razones, es posible que requiera dedicar al estudio
horas en las que se encuentra un poco cansada o cansado. Intente
descansar un poco antes de estudiar, pues así le será más sencillo
concentrarse.
 Determine de antemano el tiempo que dedicará al estudio. Procure
repartir el estudio de cada tema en varios días de la semana, esto

VIII
Tema III: Técnicas de diseño de algoritmos

le dará oportunidad de asimilar poco a poco los contenidos que le


permitirán alcanzar los objetivos.
 Lea detalladamente Las orientaciones del curso. En este
documento encontrará un cronograma de actividades (página 9)
en el que se detalla el ritmo de lectura que debe seguir para
realizar todas las actividades en el tiempo adecuado.
 Recuerde que al estudiar con una unidad didáctica impresa la
lectura es el primer instrumento que debe utilizar. Siempre es
recomendable un ejercicio de pre-lectura o lectura exploratoria.
Esto consiste en revisar rápidamente el tema por trabajar, los
subtemas que lo forman, las imágenes que complementan el texto
y las actividades que deberá realizar al concluir el estudio.
Desarrollar este ejercicio, le proporcionará un “panorama” de cada
tema.
 Algunas personas tienen un estilo de aprendizaje visual. Para ellas
el subrayado suele ser de mucha ayuda. La técnica de subrayar
las ideas principales le puede ayudar a localizarlas rápidamente
cuando deba utilizarlas nuevamente. Es necesario evitar la
tentación de subrayar todo el texto, pues esto no le ayudará en
situaciones posteriores.
 Otra técnica que le proporciona buenos resultados a las personas
con estilo de aprendizaje visual es la elaboración de
representaciones gráficas, tales como: esquemas, mapas
mentales, mapas conceptuales o ilustraciones comentadas. Las
personas con un estilo de aprendizaje kinestésico (relacionado con
el movimiento y los gestos) también se benefician del uso de estas
técnicas.
 Para las personas con un estilo de aprendizaje auditivo, puede ser
beneficioso leer el texto en voz alta y explicar oralmente y con sus
propias palabras los conceptos que estudia.

IX
Tema III: Técnicas de diseño de algoritmos

 Cuando se estudia a distancia es normal que se estudie mucho


material en poco tiempo. Ante esta situación, es recomendable
que se tenga a mano una hoja o un documento electrónico para
anotar todas las consultas que surjan. Posiblemente, muchas de
estas preguntas las responderá usted conforme avance en el
estudio de los temas, por lo que se recomienda tachar las que
pueda contestar sin ayuda. Ante la eventualidad de dejar alguna
duda sin respuesta, es preferible tener un registro y revisarlo
constantemente para formular las preguntas en el momento
adecuado.
 Cada vez que lea una sección de la unidad didáctica es
recomendable que determine cuál o cuáles son las ideas más
importantes, cómo las usaría usted para su labor en el área de la
Informática y cómo se relacionan con lo que estudió en los temas
anteriores. Esto le permitirá detectar las conexiones entre los
conceptos y la dependencia de unos con otros.
 Recuerde que usted tiene la posibilidad de aclarar sus dudas en las
tutorías presenciales, la plataforma virtual del curso, por medio de
un correo electrónico y demás servicios del PADD, o al llamar a la
cátedra durante las horas de atención a estudiantes.

X
Tema III: Técnicas de diseño de algoritmos

TEMA 3
Técnicas de diseño de algoritmos

Propósitos del tema

Es importante, para su labor futura, que usted conozca y aprenda la


teoría general de las técnicas de diseño de algoritmos en la lógica de
programación.

Diseñar programas para computadoras es una tarea cotidiana en el


quehacer de los profesionales de la informática. Utilizar las técnicas
correctas y dominar su uso, cobra un significado relevante, si se desea
programar con un alto grado de calidad.

Con el estudio de este tema, se pretende facilitar el acercamiento al


diseño de algoritmos, para ello se trabajará con los siguientes objetivos:

 Crear programas de cómputo.


 Implementar el proceso del ciclo de desarrollo en el mundo real.
 Analizar casos del mundo real para determinar requerimientos de
desarrollo de los clientes.
 Estructurar algoritmos de forma documental.
 Transformar algoritmos a su versión orientada a los datos.
 Explicar cuáles operaciones se pueden realizar con los datos dentro
de un programa.
 Utilizar las estructuras de decisión y control en el desarrollo de
procesos computarizados.
 Explicar el concepto de arreglos.
 Elaborar miniespecificaciones según un formato específico.

1
Tema III: Técnicas de diseño de algoritmos

 Explicar en qué consisten las pruebas de escritorio y cómo hacerlas.

Para alcanzar estos objetivos es necesario que estudie los capítulos 6 y


7 del libro Introducción a la programación de Felipe Ramírez.

2
Tema III: Técnicas de diseño de algoritmos

Guía para el capítulo 6

Este capítulo corresponde al tema Algoritmos para el análisis de casos


reales, los contenidos a trabajar son los siguientes:

Sumario
 Algoritmos para el análisis de casos reales
Procedimiento de creación de un programa
Implementación práctica del ciclo de desarrollo
Exposición de casos prácticos
Analizar el caso real
Algoritmos
Analizando los casos y diseñando sus algoritmos

Estos temas los encontrará distribuidos de la siguiente manera:

Subtema Páginas
Procedimiento de creación de un programa 95
Ciclo de desarrollo 95 – 96
Relevancia de las fases 97
Implementación práctica del ciclo de desarrollo 98 – 100
Exposición de casos prácticos 100 – 102
Analizar el caso real 102
Determinar los requerimientos del cliente 103 – 106
Determinar el alcance del programa 106 – 108
Determinar la interfaz y el comportamiento del sistema 108 – 109
Algoritmos 109 – 110
Analizando los casos y diseñando sus algoritmos 110 – 119
Mapa mental del capítulo 6 130

3
Tema III: Técnicas de diseño de algoritmos

Comentarios generales

Este tema busca enfocar el uso de los procedimientos para diseñar


algoritmos. Además, promueve que se respete el orden de un modelo de
cascada, que involucra procesos como: análisis, diseño, codificación,
pruebas e implementación.

Cada parte del proceso tiene su especial relevancia en el diseño de


programas ya que lleva a cumplir un objetivo: crear una solución para
resolver una problemática planteada. El concepto de algoritmo se
introduce en este tema debido a que es la forma utilizada para diseñar
una posible respuesta a los problemas de programación.

Después de realizar las lecturas correspondientes a los temas


procedimiento de creación de un programa (páginas 95 – 98) e
implementación práctica del ciclo de desarrollo (98 – 100), procure
responder a las siguientes interrogantes:

¿Conoce los pasos necesarios para crear un programa de cómputo?

¿Puede ordenar, de manera correcta, los pasos para crear un programa


de computadora?

¿Aplica, correctamente, la metodología para crear programas de


cómputo?

Si respondió sí a estas preguntas, probablemente comprendió


correctamente el proceso de creación de un programa de cómputo.

4
Tema III: Técnicas de diseño de algoritmos

El procedimiento para la creación de un programa de computadora se


muestra en la página 95 de la unidad didáctica. En el siguiente diagrama
de flujo se muestra otra representación de este proceso:

Esquema 1. Creación de un programa.

Después de analizar este esquema, considere las siguientes preguntas:


¿Le parecen lógicos los pasos a seguir?, ¿qué cambiaría en esta
secuencia?, según su experiencia, ¿agregaría alguna otra fase?

En resumen, el modelo básico para la creación de un programa de


computación es el siguiente:
 Leer el enunciado del problema.
 Desarrollar el algoritmo.
 Crear el diagrama de flujo.
 Codificar el programa.
 Probar el funcionamiento del programa.

5
Tema III: Técnicas de diseño de algoritmos

Es necesario considerar que la etapa de lectura del enunciado esta


directamente relacionada con el análisis del problema; es decir que esta
etapa permite formular posibles soluciones, detectar qué datos
proporcionara el usuario, qué procedimientos o rutinas se deben
realizar, etc.

Para lograr el desarrollo del algoritmo, el primer paso consiste en la


creación del algoritmo; es decir que deben clasificarse todas las rutinas
de manera secuencial, de esta forma se obtendrá un modelo que guíe la
creación del programa. Los diagramas de flujo son la representación
gráfica del algoritmo, y están constituidos por símbolos estándar.

Codificar el programa implica traducir el algoritmo y el flujograma


(Flujograma es otro nombre dado a los diagramas de flujo y consiste en
representar gráficamente hechos, situaciones, movimientos o relaciones
de todo tipo, por medio de símbolos.) a un lenguaje de programación,
por lo que, las personas que desarrollen esta actividad deben conocer el
lenguaje.

Cuando se prueba el programa se verifica el funcionamiento de las


rutinas y procedimientos; es decir, se ratifica que el programa haga lo
que debe hacer.

Analizar el caso real

En la figura 06.02 de la página 100, encontrará el modelo del proceso


de implementación del ciclo de desarrollo; en otras palabras, el modelo
usado para llevar a cabo ciertos pasos manuales y automatizados. Los
pasos manuales que se explican en este capítulo son:
1. Analizar el caso real 2. Elaborar el algoritmo

6
Tema III: Técnicas de diseño de algoritmos

El análisis del caso tiene tres objetivos:


1. Determinar de forma clara los requerimientos del cliente
En la página 103 encontrará algunos ejemplos de las solicitudes
recibidas y lo que quiere realmente el cliente. ¿Ha pasado por una
experiencia semejante? Para evitar inconvenientes en este sentido, se
sugieren las siguientes acciones (referidas a los pasos que detalla la
unidad didáctica):
a. Importancia del análisis: estar seguro de lo que el cliente pide.
b. Diferenciando al cliente del cliente: clarificar qué persona recibe
los beneficios del programa.
c. Preparación previa: adquirir conocimiento de la disciplina a que
pertenece al problema a resolver (contabilidad, ventas,
compras, suministros, inventarios, entre otros).
d. Proceso de análisis: debe investigar, documentar, ver el todo y
entenderlo, separar lo que entiende y lo que no; esto implica
preguntar y relacionar todo entre sí.
e. Validación de requerimientos: preguntar al cliente si la
información y requisitos que solicitó son los que se planificó
trabajar.

2. Determinar el alcance del programa


En la página 106 encontrará el detalle de este paso. Al elaborar un
programa considere las siguientes características:
a. Buscar una cantidad de funcionalidad mínima, suficiente y
necesaria.
b. Delimitar claramente los requerimientos del cliente y traducirlos
en unidades de funcionalidad.
c. Verificar que se obtengan los resultados y comportamientos
específicos que el cliente desea que el programa realice.

7
Tema III: Técnicas de diseño de algoritmos

d. Comprobar que cada unidad tenga un identificador, una


prioridad y una obligatoriedad.
e. No incluir ni más ni menos funciones que las acordadas.

3. Determinar la interfaz y comportamiento esperado del programa


La teoría correspondiente a este objetivo la encontrará en la página 108.
Al estudiarla considere los siguientes aspectos:
a. La interfaz: es el medio para que el usuario y el programa se
comuniquen, debe proveer datos correctos y completos. La
interfaz debe ser sencilla de entender, que promueva su uso,
permitir que se agreguen estándares, que admita validar
dominios, poseer una secuencia lógica y una cantidad mínima,
suficiente y necesaria para el procesamiento y
almacenamiento.
b. Simulación: es una representación breve del comportamiento
que esperamos del programa. Debe hacerse en forma
documental. Con ciertos datos de entrada se espera una salida
determinada, si no sucede se puede corregir. Se pueden usar
prototipos.

En resumen, al realizar el análisis del caso siga estos pasos:


1. Determinar el área del conocimiento en la que trabajará.
2. Analizar los elementos del todo.
3. Definir las unidades de funcionalidad.
4. Construir la interfaz.
5. Elaborar el algoritmo correspondiente.
6. Realizar la simulación.
7. Verificar la interfaz de salida.

8
Tema III: Técnicas de diseño de algoritmos

Según lo estudiado en Algoritmos (páginas 109 – 119) para el análisis


de casos reales, complete la siguiente información. Imprima esta página
y trabaje en ella.

Fase Definición Interrogantes


que se plantean
Análisis

Diseño

Codificación

Pruebas e implementación

Documentación

9
Tema III: Técnicas de diseño de algoritmos

Lo estudiado en los temas de este capítulo, prepara el camino para el


diseño de algoritmos. Antes de enfrentarse a los de la unidad didáctica,
considere los siguientes ejemplos de algoritmos:

 Diseñar un algoritmo para cambiar la rueda de un auto.

Inicio
{comprobar el estado de la gata}
Si la gata del auto está dañada
entonces llamar a la estación de servicio
sino meter la gata en su alojamiento
repetir la operación siguiente
Aflojar los tornillos de las ruedas
hasta_que todos los tornillos estén aflojados
repetir
Levantar la gata
hasta_que la rueda pueda girar libremente
Quitar los tornillos
Quitar la rueda
Poner rueda de repuesto y tornillos
Bajar la gata
repetir
Apretar los tornillos
hasta_que estén apuntados todos los tornillos
fin_si
Fin

10
Tema III: Técnicas de diseño de algoritmos

 Realizar el algoritmo para cruzar una calle por un paso de peatones.

Inicio
Observar hacia la izquierda y hacia la derecha
Mientras están pasando vehículos
Esperar
Mirar a la derecha y a la izquierda
fin _ mientras
Cruzar la calle
Fin

Hay un tema que la unidad didáctica no trata en forma específica, es la


documentación para los programa de cómputo. En esta sección de
la guía de estudio se trabajará con este tema.

Aunque este tema no es tratado específicamente en el libro, sí se


especifican algunos temas como: análisis de casos, área del
conocimiento, análisis de los elementos del todo, interfaz, algoritmo y
simulación, que son elementos que ayudan a comprender mejor cómo
se llega a una solución.

La documentación comprende el material que se emplea para describir


un programa. En general, la documentación se divide en dos grupos:

1. La documentación para el usuario consiste en la descripción,


sin términos técnicos, sobre la utilización del programa. Esta reseña dice
al usuario:
 En qué consiste el programa (introducción).
 Cómo instalar el programa.

11
Tema III: Técnicas de diseño de algoritmos

 De qué modo responder a la información solicitada para interactuar


con el programa.
 Cómo interpretar la salida generadas por el programa.
 Cómo interpretar los mensajes de error que proporciona el programa.

2. La documentación técnica describe la forma en que está


organizado el programa, la manera cómo funciona y los términos
técnicos utilizados en su confección. Esta documentación esta dirigida
principalmente a los programadores que posteriormente corregirán
errores y modificarán el programa. La documentación técnica tiene dos
partes y son las siguientes:
 El código fuente documentado está formado por el código del
programa con comentarios que describen cómo funciona cada
sección y las razones por las que el programador original tomó
ciertas decisiones de diseño.
 El manual de referencia está formador por la descripción
detallada de las acciones del programa en respuesta a cada uno de
los mandatos del usuario.

Nota: la mejor manera de documentar el trabajo consiste en generar la


documentación a medida que avanza el proceso de desarrollo del
programa. Significa que debe registrarse el trabajo a medida que se
desarrolle el código. De esta forma, los motivos que se encuentran
detrás del código, siempre estarán presentes en la mente y no habrá
necesidad de recordar por qué se manejó el código de una manera en
particular.

12
Tema III: Técnicas de diseño de algoritmos

EJERCICIOS SUGERIDOS

Ejercicios Página
06.01 120
Mapa mental 130
Terminología 131
Preguntas 131
Examen rápido 133

Ejercicio 06.01

1. Caso 6: Regla de tres simple

Para trabajar adecuadamente este tema es importante hacer un buen análisis


del caso; para eso es necesario tener claro el trabajo que debe realizarse. Por
esto es preciso determinar ¿qué es la regla de tres simple?

Regla de tres simple

Para trabajar este tema hay que diferenciar los conceptos razón y
proporción. Se llama razón al cociente entre dos números y se llama
proporción a la igualdad de dos razones. Por ejemplo, la división de 4

por 2 es la razón de 4 a 2 y se representa . El cociente de esta

división es el mismo de , por lo que la igualdad es una

proporción.

En una proporción , los números a y d son llamados extremos

y los números b y c medios.

13
Tema III: Técnicas de diseño de algoritmos

La propiedad fundamental de las proporciones señala que “en una


proporción el producto de los extremos es igual al producto de los
medios”; en otras palabras .

Si se conocen tres números de los cuatro que forman una proporción, es


posible establecer una ecuación lineal para averiguar el dato
desconocido. Este procedimiento se conoce con el nombre de regla de
tres; por ejemplo:

es una proporción. Para determinar el valor de x basta

considerar la propiedad fundamental de las proporciones:

a. Análisis del caso

 Área de conocimiento
Matemáticas

 Área de los elementos del todo


 Calcular la proporción de un número respecto a otros que actúan como
referencia de la proporción.
 Si se conocen tres números, de los cuatro que forman una proporción,
es posible averiguar el dato desconocido.
 Para determinar el valor de x basta considerar la propiedad

fundamental de las proporciones:

14
Tema III: Técnicas de diseño de algoritmos

b. Relación de unidades de funcionalidad


ID Unidad de funcionalidad Prioridad Obligatoriedad
1 Recopilar 3 números o porcentajes y Alta sí
encontrar el valor de la incógnita.

c. Interfaz
Valor para el primer elemento 1: _______
Valor para el segundo elemento 2: _______
Valor para el tercer elemento 3: _______
<<Se muestra el resultado del programa>>

d. Algoritmo
1. Inicio
2. Se pregunta por el valor del primer elemento.
3. Se pregunta por el valor del segundo elemento.
4. Se pregunta por el valor del tercer elemento.
5. Se calcula la incógnita, se multiplica el segundo elemento por el tercero y el
resultado de la multiplicación se divide por el primer elemento.
6. Se muestra el resultado.
7. Fin.

• Simulación
Suponga que desea resolver el siguiente problema: Si un verdulero vende
12 kg de tomate a 3 600 (colones), ¿a qué precio venderá 5 kg de tomate?
Primer elemento: 12
Segundo elemento: 3 600
Tercer elemento: 5

La razón es igual a la razón , por lo que la proporción es

válida. El término desconocido se puede determinar utilizando la regla de tres:

15
Tema III: Técnicas de diseño de algoritmos

2. Caso 7: Cálculo del área de un polígono compuesto

Para evitar confusiones en la solución de este problema, considere la


información del recuadro.

Para saber el área de un polígono en particular es preciso conocer la


fórmula adecuada. Considere las siguientes variables:

A = área b = base
l = lado h = altura

El área del triángulo:

El área del rectángulo:


El área del cuadrado:

Vale aclarar que un cuadrado es un rectángulo, con la particularidad de


que las 2 medidas requeridas para el cálculo del área son iguales.

a. Análisis del caso

 Área de conocimiento
Matemáticas, Geometría

 Área de los elementos del todo


 Calcular el área de un polígono.
 Se tiene un cuadrado perfecto (A)
 Fórmula área = lado por lado
 Tres triángulos rectángulos congruentes iguales (B, C, E).
 Fórmula área = base por altura dividido por entre 2.
 Un rectángulo (D)

16
Tema III: Técnicas de diseño de algoritmos

 Fórmula área = base por altura

b. Relación de unidades de funcionalidad


ID Unidad de funcionalidad Prioridad Obligatoriedad
1 Calcular el área de un polígono Alta sí
compuesto de un cuadrado, tres
triángulos y un rectángulo.

c. Interfaz
Valor del lado del cuadrado: ______
Valor de la altura el triangulo: ______
Valor de la altura del rectángulo: ______
<<Se muestra el resultado del programa>>

d. Algoritmo
1. Inicio
2. Se pregunta el lado del cuadrado.
3. Se pregunta la altura del triangulo.
4. Se pregunta la altura del rectángulo.
5. Se calcula el área del cuadrado A.
6. Se calcula el área del triángulo B.
7. El área del triángulo B se multiplica por 3.
8. Se calcula el área del rectángulo D.
9. Se suma el área del cuadrado, el área del rectángulo y el producto del
área del triángulo multiplicada por 3.
10. Se muestra el valor de la suma, que corresponde al área del polígono
compuesto.
11. Fin.

17
Tema III: Técnicas de diseño de algoritmos

• Simulación
Suponga los siguientes valores para la figura de la página 123: el lado del
cuadrado es 5, la altura del triángulo es 4 y la altura del rectángulo es 3, los
cálculos serán los siguientes:

Cuadrado
Figura A: Área = 52
= 25

Triángulos
Figura B: Área = 5 * 4 / 2
= 10
Área figura B = área figura C = área figura E

Rectángulo
Figura D: Área = 5 * 3
= 15

El área del polígono compuesto es igual a 70 unidades de área.

3. Caso 8: Determinando un descuento

a. Análisis del caso

 Área de conocimiento
Contabilidad, ventas

 Área de los elementos del todo


 Calcular descuentos.
 Los clientes normales un 10% de descuento.
 Los clientes premier un 15% de descuento.

18
Tema III: Técnicas de diseño de algoritmos

 Monto de compra menor o igual a 1 000, 5% descuento adicional.


 Monto de compra menor o igual a 2 000, 10% descuento adicional.
 Monto de compra mayor a 2 000, 15% descuento adicional.
 Descuento mínimo 15% cliente normal.
 Descuento máximo 30% cliente premier.
 Información de los precios de 5 artículos.
 Utilizar arreglos.

b. Relación de unidades de funcionalidad


ID Unidad de funcionalidad Prioridad Obligatoriedad
1 Calcular el porcentaje descuento (según Alta Sí
el tipo de cliente, normal o premier; y
según el monto de la compra), se recibe
el precio de 5 artículos.

c. Interfaz
Tipo de cliente: ________
Precio artículo 1: ________
Precio artículo 2: ________
Precio artículo 3: ________
Precio artículo 4: ________
Precio artículo 5: ________
<<Resultado del programa>>

d. Algoritmo
1. Inicio.
2. Se declara un arreglo de 5 posiciones. Ventas (serán 5 entradas).
3. Se pregunta el precio del artículo 1 y se guarda en Ventas (1).
4. Se pregunta el precio del artículo 2 y se guarda en Ventas (2).
5. Se pregunta el precio del artículo 3 y se guarda en Ventas (3).
6. Se pregunta el precio del artículo 4 y se guarda en Ventas (4).
7. Se pregunta el precio del artículo 5 y se guarda en Ventas (5).
8. Se calcula el monto total de la venta sumando los 5 precios.
9. Se pregunta el tipo de cliente.

19
Tema III: Técnicas de diseño de algoritmos

10. Si el cliente es normal y la venta es igual o menor a 1 000 el descuento


es 15%.
11. Si el cliente es normal y la venta es igual o menor a 2 000 el descuento
es 20%.
12. Si el cliente es normal y la venta es mayor a 2 000 el descuento es 25%.
13. Si el cliente es premier y la venta es igual o menor a 1 000 el descuento
es 20%.
14. Si el cliente es premier y la venta es igual o menor a 2 000 el descuento
es 25%.
15. Si el cliente es premier y la venta es mayor a 2 000 el descuento es
30%.
16. Calcular la venta total igual a venta menos descuento.
17. Fin.

e. Simulación
En este caso debe simularse la venta a un cliente normal y la venta a un
cliente premier. Se hará primero la del cliente normal.
e.1 Cliente normal, suponga que los precios de los artículos, en el arreglo
ventas, son:
1 000 300 400 500 400
Monto total de la venta es 2 600.
El cliente es normal.
Entonces se le aplica un descuento del 25%.
Venta total es igual 2 600 menos 650 de descuento total 1 950.

e.2. Cliente premier, suponga que los precios de los artículos, en el arreglo
ventas, son:
400 300 200 100 150
Monto total de la venta es 1 150.
El cliente es premier.
Entonces se le aplica un descuento del 25%.
Venta total es igual 1 150 menos 287,50 de descuento total 862,50.

20
Tema III: Introducción a la lógica de programación

Analizar el mapa mental

El mapa mental de la página 130 de la unidad didáctica corresponde a la visión


particular del autor del libro. Con lo estudiado en el tema anterior, este
capítulo y su experiencia en el campo, podría elaborar un mapa diferente a
ese. Como es un mapa mental, depende directamente de la persona que lo
elaboró.

Una forma de analizar esta estructura es seguir los pasos que se detallan a
continuación:
• Elabore una lista de los temas, estudiados en este capítulo, que considere
más importantes para el tema Algoritmos para el análisis de casos
reales.
• ¿Todos los temas están completamente cubiertos?, anote las preguntas que
tenga al respecto.
• Verifique en el mapa mental la ubicación que el autor hizo de cada tema y
observe las relaciones que hay entre ellos y el resto del mapa.
• Compruebe que se abarcaran los objetivos de la página 93 de la unidad
didáctica. ¿Qué hizo falta ahondar para lograr lo propuesto por el autor?,
¿podría usted responder a esas dudas?
• Proponga su propio mapa para este capítulo.

Terminología

En la página 131 se encuentra el índice analítico del capítulo.

Lea los términos y conceptos que se incluyen e intente definirlos con sus
propias palabras; haga uso de los usos cotidianos de algunos de estos
términos para ayudarse en la tarea de acrecentar el significado de cada uno.

Si tiene problemas para definir alguno de los términos, búsquelo en la página


que se indica al lado de él y revise la teoría que se explica al respecto.
Tema III: Introducción a la lógica de programación

Preguntas

Posibles respuestas:
6.1 Una de las opciones es declinarse por los analistas, en ese caso la
respuesta podría ser la siguiente: “considero que el análisis es lo más
importante para el diseño de programas, pero sin duda cuando se presentan
errores en la realización del análisis se reflejan en los programas”.

6.2 Una posible respuesta es: que los analistas se apeguen a procedimientos
exitosos de análisis, uno de las recientes propuestas, y que aparentemente ha
eliminado en gran medida el margen de error, es Lenguaje Unificado de
Modelado (UML por su nombre en inglés).

6.3 Una posible respuesta es: “No siento que disminuya su capacidad de
análisis, sino que la televisión genera desintegración familiar, adicción a los
programas que se presentan y que se pierda de vista lo real y palpable”.
Existen otras respuestas probables, lo necesario es que se argumente para
sostener el juicio de valor.

6.4 Posible respuesta: “No es un carácter, es la capacidad que tiene el ser


humano de tomar en cuenta todas las variables de una situación y a partir del
análisis de ésta se encuentra una solución”. Para responder que sí habría que
justificar esa afirmación.

Note que en la página 132 hay una sección para que haga sus
anotaciones sobre el tema, sus preguntas y sus dudas.

Aprovéchelo y utilice las herramientas de aprendizaje en línea para


comentar sus ideas y aclarar sus dudas.
Tema III: Introducción a la lógica de programación

Examen rápido

Parte 1 Parte 2
1) (c) 6) F
2) (a) 7) V
3) (c) 8) V
4) (a) 9) V
5) (b) 10) V
Tema III: Introducción a la lógica de programación

Guía para el capítulo 7

Este capítulo trata de Algoritmos orientados a datos y


miniespecifiaciones. Este capítulo y el 6 conforman toda la materia
correspondiente al tema 3 de Técnicas de diseño de algoritmos.

Los contenidos de este capítulo le permitirán ahondar un poco más en


los algoritmos. Aquí se estudian los siguientes temas:

Sumario
 Algoritmos orientados a datos y miniespecificaciones
Algoritmos orientados a datos
Operaciones a nivel dato
Estructuras de decisión y control
Arreglos
Miniespecificaciones
Miniespecificaciones de los casos prácticos
Pruebas de escritorio

Para el logro de los objetivos planteados, es necesario que usted estudie


los siguientes temas de la unidad didáctica:

Subtema Páginas
Algoritmos orientados a los datos 136 – 137
Transformando algoritmos a su versión 138
orientada a datos
Operaciones a nivel dato 139
Declaración 140
Cambio de estado 140 – 141
Muestra de datos 142 – 143
Tema III: Introducción a la lógica de programación

Estructuras de decisión y control 143 – 144


Estructuras de decisión 144 – 145
Contadores y acumuladores 145 – 146
Estructuras de control 146 – 149
Anidamiento 149 – 150
Arreglos 150 – 152
Miniespecificaciones 152
Cómo elaborar una miniespecificación 153 – 154
Miniespecificaciones de los casos prácticos 154 – 163
Prueba de escritorio 163 – 165
Mapa mental del capítulo 7 171
Tema III: Introducción a la lógica de programación

Comentarios generales

Los algoritmos orientados a datos pretenden representar, en forma


abstracta, los tipos de datos (páginas de la 66 a la 68 del capítulo 4) que
se pueden utilizar en ellos. Es necesario manejar esta información, pues
los datos que forman el algoritmo se convertirán a un lenguaje de
programación. Aunque un algoritmo no orientado a datos es
comprensible para el ser humano, para el computador no lo es. Por eso
es preciso facilitar el paso del algoritmo a una expresión de
programación.

Un concepto relacionado con los algoritmos orientados a datos es el


pseudocódigo. Un pseudocódigo es un lenguaje intermedio entre
nuestro lenguaje humano y el lenguaje de programación de
computadoras. El principal objetivo del pseudocódigo es representar la
solución a un algoritmo de la forma más detallada posible, y a su vez lo
más parecida al lenguaje que posteriormente se utilizara para la
codificación del mismo. Al escribir con este lenguaje se hace una
pseudoprogramación.

A continuación se muestran algunos ejemplos de palabras para construir


algoritmos en pseudocódigo. Estudie los siguientes cuadros:
Pseudocódigo (lenguaje)
Inicio Entonces Repetir Sumar
Fin Si_no Hasta _ que =
Leer Según Procedimiento …
Escribir Desde Entero (* *)
Establecer Para Carácter { }
Si Mientras Incrementar
Cuadro 1. Términos de un pseudocódigo.
Tema III: Introducción a la lógica de programación

Considere el siguiente ejemplo del uso de un pseudocódigo:

Sumar una serie de enteros positivos

Algoritmo SumaEnteros
Inicio
Leer cantidad {cantidad de número}
establecer contador a 0 (*de números*)
establecer suma a 0
repetir hasta que contador = cantidad
leer (cantidad)
sumar numero a suma
incrementar contador en 1
fin {fin de repetir hasta que}
escribir (‘La suma es:’ suma)
fin {final del programa}

Note que el formato utilizado no corresponde a ningún lenguaje de


programación, pero indica cuáles son los pasos que debe seguir el
programa a elaborar.

A partir de la página 139, se trabaja el tema Operaciones a nivel de


datos. En esta guía de estudio encontrará un resumen de las diferentes
estructuras que se utilizan para en los algoritmos orientados a datos, con
sus respectivos ejemplos.

Expresiones de algoritmo orientado a


Significado Ejemplo
datos
Inicializar y terminar un algoritmo
Inicio Inicio del algoritmo. Inicio
Fin Fin del algoritmo. Fin
Cuadro 2. Iniciar y terminar un algoritmo.

Expresiones de algoritmo
Significado Ejemplo
orientado a datos
Variables
(NombreVariable, SímboloTipo Declaración de una (lado, i[1-n])
Tema III: Introducción a la lógica de programación

Cuadro 3. Variables.

Expresiones de algoritmo
Significado Ejemplo
orientado a datos
Estructura de decisión
Si ExpresiónLógica Entonces Estructura Si lado >= 1 Entonces
Parte de algoritmo a ejecutar si la de decisión ÁreaCuadrado 
condicional lado^2
ExpresiónLógica es verdadera
simple.
Fin Si Fin Si

Si ExpresiónLógica Entonces Estructura Si lado >= 1 Entonces


Parte de algoritmo a ejecutar si la de decisión ÁreaCuadrado 
ExpresiónLógica es verdadera condicional lado^2
compuesta.
De lo contrario De lo contrario
Parte de algoritmo a ejecutar si la >>“El lado no puede
ExpresiónLógica es falsa ser menor a uno”
Fin Si Fin Si
Cuadro 4. Estructura de decisión.

Expresiones de algoritmo
Significado Ejemplo
orientado a datos

Estructura de control

Inicialización del contador Estructura i0


de control
Bucle de
Mientras ExpresiónLógica comparación Mientras i<= 5
Entonces al inicio. Entonces
Uso de contador ii+1
Parte del algoritmo a ejecutar si <<“El valor de i es : “
la ExpresiónLógica es verdadera +i
Fin Mientras Fin mientras
La salida sería:
El valor de i es: 1
El valor de i es: 2
El valor de i es: 3
El valor de i es: 4
El valor de i es: 5

Inicialización del contador Estructura i1


de control:
Inicio Inicio
bucle de
Tema III: Introducción a la lógica de programación

Cuadro 5. Estructura de control.

Expresiones de algoritmo orientado


Significado Ejemplo
a datos
Arreglos
(NombreVariable(ElementosDelArreglo), Son variables (Gastos
SimboloTipo[Dominio]) que permiten Mensuales(6),
asociar, a i[1-n])
través de un
Representación simbólica de un mismo
elemento: 1º forma de cargar
nombre de
valores en el
variable,
arreglo:
NombreVariable(Subíndice) varias
posiciones GastosMensuales(1)
de memoria,  10 000
Ejemplo: GastosMensuales(3) GastosMensuales(2)
en la página
57 de la guía  8 000
esta la GastosMensuales(3)
representación  4 000
gráfica del GastosMensuales(4)
arreglo.  11 000
GastosMensuales(5)
 8 500
GastosMensuales(6)
 7 000

2º forma de cargar
valores en el
arreglo:
i0
Mientras I <= 60
Entonces
ii+1
<< “El valor del
elemento” + i +
“es:” +
GastosMensuales (i)
Fin Mientras
Cuadro 6. Arreglos.

Entre las páginas 152 y 155, se explica el concepto de


miniespecificaciones. Vale aclarar que estas estructuras ayudan a
Tema III: Introducción a la lógica de programación

representar los datos en forma simbólica, las operaciones que se realizan


y qué se debe hacer con los datos. Las siete características de las
miniespecificaciones se nombran en la página 152.

A continuación se plantea un ejemplo para ver las equivalencias entre un


algoritmo orientado a datos y un algoritmo con miniespecificaciones:

Se desea desarrollar un algoritmo que permita resolver la ecuación de


segundo grado, a partir de los coeficientes numéricos de la ecuación que
debe introducir el usuario. Deben considerarse las restricciones
matemáticas.

Recuerde que la forma general de la ecuación de segundo grado es:


ax2 + bx + c = 0, (a, b, c pertenecen a los números reales y ).
Recuerde que esta fórmula establece que, si existen soluciones, están

dadas por la expresión: y .

Miniespecificación
Algoritmo orientado a datos
Traducción simbólica
1. Inicio 1. Inicio
2. a = 0, b = 0, c = 0, r1 = 0, r2 = 0 2. a  0, b  0, c  0, R1  0, R2  0
3. Leer “Primer Número:”, a 3. >> a
4. Leer “Segundo Número:”, b 4. >> b
5. Leer “Tercer Número:”, c 5. >> c
6. Si a <> 0 y (b^2 – 4ac) >= 0 6. Si (a <> 0)  ((b ^ 2 – 4*a*c) >=0)
entonces entonces
7. r1 = (-b + SQRT (b^2 - 4ac)) / (2a) 7. r1  (-b +SQRT (b^2 – 4*a*c )) / (2*a)

8. r2 = (-b - SQRT (b^2 - 4ac)) / (2a) 8. r2  (-b -SQRT (b^2 – 4*a*c )) / (2*a)
9. Mostrar “Suma:”, r1 9. << “Suma:”, + r1
10. Mostrar “Resta:”, r2 10. << “Resta:”, + r2
Tema III: Introducción a la lógica de programación

11. Sino 11. De lo contrario


12. Mostrar “No se puede resolver” 12. << “No se puede resolver
13. Fin_Si 13. Fin Si
14. Fin 14. :FIN
Cuadro 7. Fórmula general para ecuaciones de segundo grado. Fuente:
http://escrachonormal.com/VerCodigo.php?Area=Algoritmos%20(Logica)&id=Algoritmo
s/Ejercicio_2.txt

Se le recomienda determinar las ventajas de trabajar con cada tipo de


estructura.

La siguientes sección está dedicada a las pruebas de escritorio; inicia


en la página 163 de la unidad didáctica. Para complementar lo estudiado
en la unidad didáctica, trabaje con la siguiente información, adaptada de
http://www.virtual.unal.edu.co/cursos/ingenieria/2001839/modulo1/cap_07/leccion_5.

htm.

La prueba de escritorio es una herramienta útil para entender que hace


un determinado algoritmo, o para verificar que un algoritmo cumple con
las especificaciones solicitadas sin necesidad de ejecutarlo.

Una prueba de escritorio es una ejecución del algoritmo realizada sin el


programa, podría decirse que se hace “a mano”; por lo tanto, se debe
llevar registro de los valores que toma cada una de las variables
involucradas en el mismo en cada parte del proceso. En la unidad
didáctica se ofrece una forma de realizar esta prueba, para
complementar esta información, aquí se le ofrece otra manera de
hacerla.
Tema III: Introducción a la lógica de programación

Considere el siguiente algoritmo y analice la tabla que se ofrece con la


prueba de escritorio. La finalidad es ingresar números y determinar dos
cosas: cuál de los números es menor y la suma de los valores.
Algoritmo para determinar cual de las entradas es el número menor y la
suma de los números ingresados.

suma: entero
entrada: entero
menor: entero

Inicio
leer entrada
menor = entrada
suma = 0
mientras (entrada <> 0) haga
si (entrada < menor) entonces
menor = entrada
fin_si
suma = suma + entrada
leer entrada
fin _ mientras
escribir “valor menor:”
escribir menor
escribir “suma:”
escribir suma
Fin

Procure determinar el proceso descrito en el algoritmo y representarlo


mediante alguna de las otras estructuras que conoce.
Tema III: Introducción a la lógica de programación

Observe en el siguiente cuadro la prueba de escritorio del algoritmo


antes descrito:
Variables Salida
Instrucciones
entrada menor suma Pantalla
leer entrada 10
menor = entrada 10
suma = 0 0
suma = suma + entrada 10
leer entrada 7
menor = entrada 7
suma = suma + entrada 17
leer entrada 9
suma = suma + entrada 26
leer entrada 0
Escribir “valor menor:” valor menor:
Escribir menor 7
Escribir “Suma:” suma:
Escribir suma 26
Cuadro 8. Prueba de escritorio. Fuente:
http://www.virtual.unal.edu.co/cursos/ingenieria/2001839/modulo1/cap_07/leccion_5.htm

Existe otra forma de analizar un problema de programación de


computadoras. Después de entender totalmente el problema a resolver,
se debe realizar una especificación del algoritmo que permite encontrar
su solución. Un algoritmo que no esté claramente especificado puede ser
interpretado de diferentes maneras y al diseñarlo, se puede terminar con
un algoritmo que no sirve para solucionar el problema.

La especificación de un algoritmo se hace mediante una descripción clara


y precisa de tres elementos:
1. Las entradas del algoritmo.

2. Las salidas que proporcionará.


Tema III: Introducción a la lógica de programación

3. La dependencia de las salidas obtenidas con las entradas.

Esta descripción puede ser presentada mediante un diagrama de caja


negra. Observe que el “algoritmo” es como una caja negra en la que no
se puede ver el interior; de allí el nombre de este tipo de diagrama.

Esquema 2. Diagrama de caja negra. Fuente:


http://www.cursosaulavirtual.com.ar/moodle/file.php/3/Analisis_de_Caja_Negra.doc

Considere el siguiente ejemplo:

Problema 1: Construir un algoritmo que calcule el promedio de 4 notas.

Especificación A: (sin diagrama de caja negra)


A.1.- Entradas N1, N2, N3, N4 (notas parciales) de tipo
real
A.2.- Salidas Final (nota final) de tipo real
A.3.-Condiciones Final = (N1 + N2 + N3 + N4)) / 4

Especificación B: (con diagrama de caja negra)


Diagrama de caja negra:
N1
N2
algoritmo final
N3
N4
Tema III: Introducción a la lógica de programación

B.1.- Descripción de entradas y Ni: Nota i-ésima con i = 1, 2,


3, 4
salidas
Final: Nota final
B.2.- Tipo de entradas y salidas N1, N2, N3, N4, Final reales
B.3.- Condiciones Final = (N1 + N2 + N3 + N4) / 4
Fuente:
http://www.virtual.unal.edu.co/cursos/ingenieria/2001839/modulo1/cap_07/leccion202.htm

Se le sugiere el siguiente ejercicio: considere el problema anterior, y en


una hoja aparte, escriba el algoritmo con miniespecificaciones.

EJERCICIOS SUGERIDOS

Ejercicio Página
07.01 165
Mapa mental 171
Terminología 172
Preguntas 172
Examen rápido 173

Ejercicio 07.01

1. Caso 6: Regla de tres simple

a) Algoritmo orientado a datos

1 Inicio.
2 Se pregunta por el valor del primer elemento (a, d[1 – n]).
3 Se pregunta por el valor del segundo elemento (b, d[1 – n]).
4 Se pregunta por el valor del tercer elemento (c, d[1 – n]).
5 Se encuentra la incógnita: se multiplica el segundo elemento (b) por el
tercero (c) y se divide por el primero (a), (X, d[1 – n]).
6 Se muestra el resultado de la incógnita (X).
Tema III: Introducción a la lógica de programación

7 Fin.

b) Miniespecificación

1 INICIO:
2 (a, d[1 – n])
3 (b, d[1 – n])
4 (c, d[1 – n])
5 (X, d[1 – n])
6 <<“Valor para primer elemento:”
7 >> (a)
8 <<”Valor para segundo elemento:”
9 >> (b)
10 <<”Valor para tercer elemento:”
11 >> (c)
12 X  (a * b ) / c
13 <<“La incógnita es:” + X
14 :FIN

2. Caso 7: Cálculo del área de un polígono compuesto

a) Algoritmo orientado a datos

1 Inicio.
2 Se pregunta el lado del cuadrado lc, b[1 – n]).
3 Se pregunta la altura del triángulo at, b[1 – n]).
4 Se pregunta la altura del rectángulo (ar, b[1 – n]).
5 Se calcula el área del cuadrado (A, i[1 – n]).
6 Se calcula el área del triángulo (B, i[1 – n]).
7 Se multiplica por 3 el área del triángulo B (ats, i[1 – n])
8 Se calcula el área del rectángulo (D, i[1 – n]).
9 Se suman las áreas: cuadrado(A), tres triángulos (ats) y rectángulo (D).
(área, i[1 – n])
10 Se muestra el valor de la suma, que corresponde al área del polígono
compuesto (área).
Tema III: Introducción a la lógica de programación

11 Fin.

b) Miniespecificación

1 INICIO:
2 (lc, b[1 – n])
3 (at, b[1 – n])
4 (ar, b[1 – n])
5 (A, i[1 – n])
6 (B, i[1 – n])
7 (ats, i[1 – n])
8 (D, i[1 – n])
9 <<“lado del cuadrado:”
10 >> (lc)
11 <<“altura del triángulo:”
12 >> (at)
13 <<“altura del rectángulo:”
14 >> (ar)
15 A  lc ^ 2
16 B  lc * at / 2
17 ats  B * 3
18 D  lc * ar
19 área  A + B + ats
20 <<“El área el polígono compuesto es:” + área
21 :FIN

3. Caso 8: Determinando un descuento

a) Algoritmo orientado a datos


Tema III: Introducción a la lógica de programación

1 Inicio.
2 Se declara un arreglo de 5 posiciones (Ventas (5), d[1 – n]).
3 Se pregunta el precio del artículo 1 (Ventas (1), d[1 – n]).
4 Se pregunta el precio del artículo 2 (Ventas (2), d[1 – n]).
5 Se pregunta el precio del artículo 3 (Ventas (3), d[1 – n]).
6 Se pregunta el precio del artículo 4 (Ventas (4), d[1 – n]).
7 Se pregunta el precio del artículo 5 (Ventas (5), d[1 – n]).
8 Se calcula el monto total de la venta sumando los 5 precios (TV, i[o – n]).
9 Se pregunta el tipo de cliente (TC, c[7]).
10 Si el cliente es normal y la venta es igual o menor a 1 000 el descuento es
15% (D, d[o – n]).
11 Si el cliente es normal y la venta es igual o menor a 2 000 el descuento es
20% (D, d[o – n]).
12 Si el cliente es normal y la venta es mayor a 2 000 el descuento es 25%
(D, d[o – n]).
13 Si el cliente es premier y la venta es igual o menor a 1 000 el descuento
es 20% (D, d[o – n]).
14 Si el cliente es premier y la venta es igual o menor a 2 000 el descuento
es 25% (D, d[o – n]).
15 Si el cliente es premier y la venta es mayor a 2 000 el descuento es 30%
(D, d[o – n]).
16 Calcular la venta total igual a venta menos descuento (V, d[o – n]).
17 Fin.

b) Miniespecificación

1 INICIO:
2 (i, i[o – n])
3 (ventas(5), d[0 – n])
4 (TV, i[o – n])
5 (TC, c[7])
Tema III: Introducción a la lógica de programación

6 (D, d[o – n])


7 (V, d[o – n])
8 TV  0
9 i1
10 inicio
11 <<“Precio para el primer artículo” + i “:”
12 >> Ventas(i)
13 TV  TV + Ventas(i)
14 ii+1
15 Hasta que i > 5
16 <<“Tipo de cliente normal o premier:”
>> (TC)
Si TC = “Normal”  TV <= 1 000 Entonces
D  TV * 0,15
Si TC = “Normal”  TV <= 2 000 Entonces
D  TV * 0,20
Si TC = “Normal”  TV > 2 000 Entonces
D  TV * 0,25
Si TC = “Premier”  TV <= 1 000 Entonces
D  TV * 0,20
Si TC = “Premier”  TV <= 2 000 Entonces
D  TV * 0,25
Si TC = “Premier”  TV > 2 000 Entonces
D  TV * 0,30
Fin si(s)
VV–D
<<“El monto de la venta con el descuento incluido es:” + V
:FIN

Analizar el mapa mental


Tema III: Introducción a la lógica de programación

El mapa que se encuentra en la página 171 de libro de texto es una visión del
autor, se podría reelaborar un mapa con todo lo que usted ha estudiado del
capítulo 7, y ahondar a una verdadera comprensión de los conceptos
expresados.

Una forma de analizar esta estructura es seguir los pasos que se detallan a
continuación:
• Verifique en el mapa mental la ubicación que el autor hizo de cada tema y
observe las relaciones que hay entre ellos y el resto del mapa.
• Elabore una lista de los temas, estudiados en este capítulo, que considere
más importantes para los algoritmos orientados a datos y
minespecificaciones.
• Compruebe que se abarcaran los objetivos de la página 135 de la unidad
didáctica. ¿Qué considera usted que autor del libro paso por alto?
• Proponga su propio mapa para este capítulo.

Terminología

En esta página 172 encontrará un pequeño índice analítico del capítulo. Lea los
términos y conceptos que se incluyen e intente definirlos con sus propias
palabras; no es necesario que los escriba, pero sí que tenga claro lo que
significa cada uno de ellos.

Si tiene problemas para definir alguno de los términos, búsquelo en la página


que se indica al lado de él y revise la teoría que se explica al respecto.

Preguntas

7.1. En esta pregunta puede enumerar las diferentes ventajas que presentan
las miniespecificaciones o los algoritmos orientados a datos. Por ejemplo, puede
indicar que las miniespecificaciones muestran en detalle las operaciones que un
programa puede hacer con los datos y que son una herramienta clave para la
Tema III: Introducción a la lógica de programación

especificación sistemática de procesos computarizados. Puede agregar que este


tipo de herramientas ayudan al desarrollador en las tareas específicas que debe
codificar.

7.2. Esta es una posible respuesta: sí soy partidario del uso exclusivo de las
miniespecificaciones, por que son comprensibles al ser humano, y son más
cercanas a la tarea de codificar fácilmente a cualquier lenguaje de computación.

7.3. Entre paréntesis encontrará la página en la que puede localizar los


contenidos correspondientes a cada concepto.

Algoritmos (136) Algoritmos orientados a Miniespecificaciones


datos (138) (152)
Son muy útiles por que Son los algoritmos que Es la representación
definen las actividades que ponen en evidencia los abstracta y simbólica
se tienen que desarrollar datos manejados en cada entendible por el ser
para alcanzar un objetivo. una de las actividades a humano, que muestra al
Además definen el orden en desarrollar, así como el máximo los detalles de las
que se tienen que dominio de estos datos. operaciones que un
desarrollar las actividades y Son documento técnicos no programa debe hacer con
el alcance general de las orientados al usuario. los datos, es una
tareas. herramienta clave para la
especificación sistemática
de procesos
computacionales.

7.4.
Algoritmos (136) Algoritmos orientados a Miniespecificaciones
datos (138) (152)
Permiten ver el alcance Son documentos técnicos Es un elemento clave en le
general de las tareas que nos acercan a los proceso de la programación
programadas a desarrollar, proceso de programación. ya que nos acerca mucho a
dan una visión general. los procesos
Tema III: Introducción a la lógica de programación

computacionales en forma
sistematica.

Examen rápido

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

Los algoritmos son una herramienta que el programador utiliza para


facilitar su labor, una de sus ventajas es que es posible diseñar una
solución con un lenguaje parecido al humano y similar al lenguaje de
programación al cual será traducido.

En la unidad didáctica, se establecen algunas estructuras para diseñar


los algoritmos. En esta guía de estudio, se señala que existen otras
técnicas que ayudan a solucionar los problemas planteados en el diseño
de programas de computadoras; entre ellos están el pseudocógico, el
diagrama de caja negra y las pruebas de escritorio. Se le recomienda
que elabore un cuadro comparativo con estas estrategias y determine
ventajas y desventajas de usar cada una de ellas; esto le facilitará el
trabajo al permitirle elegir la técnica más adecuada para cada problema
al que se enfrente.

Se le recomienda diseñar algoritmos para clarificar algunos procesos,


como por ejemplo: análisis de problemas, diseño de estrategias,
codificación, pruebas e implementación de programas y otros.
Tema III: Introducción a la lógica de programación
Tema III: Introducción a la lógica de programación

Referencias utilizadas por el autor

ALEGSA, Diccionario de Informática, Internet y tecnologías. Extraído durante


los meses de octubre y noviembre de 2007 desde:
<http://www.alegsa.com.ar/Diccionario/diccionario.php>.
ATRIA, JOSÉ TULIO, Lógica matemática. Facultad de Ciencias de la Educación de
la Universidad de Carabobo. Extraído en octubre de 2007 desde:
<http://profatria.tripod.com/logicamatematica/>.
BAASE, SARA y GELDER, ALLEN (2002). Algoritmos computacionales. Introducción
al análisis y diseño. Tercera edición, México D.F: Pearson Educación.
BECK, KENT (2002). Una explicación de la programación extrema. Aceptar el
cambio. Madrid: Pearson Educación. S.A.
BLOW, LISA (2000). Fundamentos de Computación. México: Pearson Educación.
Calzado Fernández, Francisco José, Aprende lógica. Extraído en octubre de
2007 desde:
<http://w3.cnice.mec.es/eos/MaterialesEducativos/mem2003/logica/>.
COSTA RICA (1997), Ley No. 6683, Ley de derecho de autor y derechos conexos
Extraído en octubre de 2007 desde: <www.asamblealegislativa.go.cr>.
DEPARTAMENTO DE SISTEMAS Y COMPUTACIÓN, 2.6.1 Operadores aritméticos.
Instituto Tecnológico de La Paz, Baja California Sur. Extraído en
noviembre de 2007 desde:
<http://sistemas.itlp.edu.mx/tutoriales/pascal/u2_2_6_1.html>.
Diseño de páginas web (textos sobre) en
Diseño de páginas web, alojamiento, posicionamiento y dominios.
Extraído en noviembre de 2007 desde:
<http://www.masadelante.com/faq-servidor.htm>.
GUIARTE MULTIMEDIA S.L., Operadores y operandos. Extraído en octubre de 2007:
<http://www.desarrolloweb.com/articulos/2165.php>.
HIGUERA TOLEDANO, MARÍA TERESA, Ejecución y compilación de un programa.
Departamento de Arquitectura de Computadores y Automática de la
Universidad Complutense de Madrid. Extraído en octubre de 2007 desde:
<http://asds.dacya.ucm.es/teresa/FC/T6.pdf>.
Tema III: Introducción a la lógica de programación

INSTITUTO SUPERIOR DE MONTE CRISTO, Análisis de caja negra. Extraído en


noviembre de 2007 desde:
<http://www.cursosaulavirtual.com.ar/moodle/file.php/3/Analisis_de_Caj
a_Negra.doc>.
KUHN, THOMAS (1971). La Estructura de las Revoluciones Científicas 1. Madrid:
Fondo de Cultura Económica S.L.
MATPEC, Desde 0 – conexión a Internet. Extraído en noviembre de 2007 desde:
<http://www.matpec.com.ar/desde0/desde0-2-dial-up.htm>.
MARTIN, JOHN (2003). Lenguajes formales y teoría de la computación. Tercera
edición, México: McGraw-Hill Interamericana.
PINTO ALARCÓN, MÓNICA, Intérpretes [PDF]. Lenguajes y Ciencias de la
Computación, Universidad de Málaga. Extraído en noviembre de 2007
desde:
<http://www.lcc.uma.es/~pinto/apuntes/software%20de%20sistemas/In
terpretes.pdf>.
PRATT, TERRENCE Y ZELKOWITZ, MARVIN (2000). Lenguajes de programación.
Diseño e Implementación. Tercera edición, México D.F.: Prentice Hall
Hispanoamericana S.A.
TUCKER, ALLEN y NOONAN, ROBERT (2003). Lenguajes de programación. Principios
y paradigmas. España: McGraw-Hill Interamericana.
UNIVERSIDAD NACIONAL DE COLOMBIA, 3.5. Pruebas de escritorio. Extraído en
noviembre de 2007 desde:
<http://www.virtual.unal.edu.co/cursos/ingenieria/2001839/modulo1/ca
p_07/leccion_5.htm>.
VALVERDE, AGUSTÍN, Aula de lógica computacional. Universidad de Málaga.
Extraído durante los meses de octubre y noviembre de 2007 desde:
<http://www.matap.uma.es/~valverde/Logica/index.html>.
Tema III: Introducción a la lógica de programación

Referencias electrónicas
de consulta para el estudiante

Actividades de juegos de lógica hoja 8:


http://actividadesinfor.webcindario.com/jle9.htm
Borland Software Corporation: http://www.borland.com/downloads/index.html
Buscadores: www.google.com, www.altavista.com
Dfd ®: http://es.geocities.com/edisonml72/descarga.html
Diccionario de Informática, Internet y tecnologías:
http://www.alegsa.com.ar/Diccionario/diccionario.php.
EDGE Diagrammer: http://es.brothersoft.com/EDGE-Diagrammer-download-
102760.html
Institute for human and machine cognition: http://cmap.ihmc.us/
Java Technology, Sun Microsystems, Inc: http://www.sun.com/java/
Lógica 3D, juego: http://biboz.net/juegos/logica3d/
Recorrido en video de Visio 2003:
http://www.microsoft.com/latam/office/visio/prodinfo/videos.mspx
SmartDraw: http://www.smartdraw.com/specials/diagramasdeflujo.asp?id=45679
Wikipedia, la enciclopedia libre: http://es.wikipedia.org

También podría gustarte