Documentos de Académico
Documentos de Profesional
Documentos de Cultura
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
IV
Tema III: Técnicas de diseño de algoritmos
Objetivo general
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.
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.
VI
Tema III: Técnicas de diseño de algoritmos
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
Consejos de estudio
Colaboración
Lic. Ana María Sandoval Poveda
VIII
Tema III: Técnicas de diseño de algoritmos
IX
Tema III: Técnicas de diseño de algoritmos
X
Tema III: Técnicas de diseño de algoritmos
TEMA 3
Técnicas de diseño de algoritmos
1
Tema III: Técnicas de diseño de algoritmos
2
Tema III: Técnicas de diseño de algoritmos
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
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
4
Tema III: Técnicas de diseño de algoritmos
5
Tema III: Técnicas de diseño de algoritmos
6
Tema III: Técnicas de diseño de algoritmos
7
Tema III: Técnicas de diseño de algoritmos
8
Tema III: Técnicas de diseño de algoritmos
Diseño
Codificación
Pruebas e implementación
Documentación
9
Tema III: Técnicas de diseño de algoritmos
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
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
11
Tema III: Técnicas de diseño de algoritmos
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
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
proporción.
13
Tema III: Técnicas de diseño de algoritmos
Área de conocimiento
Matemáticas
14
Tema III: Técnicas de diseño de algoritmos
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
15
Tema III: Técnicas de diseño de algoritmos
A = área b = base
l = lado h = altura
Área de conocimiento
Matemáticas, Geometría
16
Tema III: Técnicas de diseño de algoritmos
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
Área de conocimiento
Contabilidad, ventas
18
Tema III: Técnicas de diseño de algoritmos
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
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
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
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.
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.
Note que en la página 132 hay una sección para que haga sus
anotaciones sobre el tema, sus preguntas y sus dudas.
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
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
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
Comentarios generales
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}
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
Expresiones de algoritmo
Significado Ejemplo
orientado a datos
Estructura de control
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.
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
htm.
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
EJERCICIOS SUGERIDOS
Ejercicio Página
07.01 165
Mapa mental 171
Terminología 172
Preguntas 172
Examen rápido 173
Ejercicio 07.01
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
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
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
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.
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
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.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
Referencias electrónicas
de consulta para el estudiante