Dsof 1070 PDF

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 191

Modalidad Abierta

y a Distancia
CCCCCCC CC
Tecnologías de la información

Algoritmos y Resolución de Problemas


Guía didáctica

La Universidad Católica de Loja

Área Técnica
MODALIDAD ABIERTA Y A DISTANCIA

Departamento de Ciencias de la Computación y Electrónica


Sección Tecnologías Avanzadas de la Web y SBC

Algoritmos y Resolución de Problemas


Guía didáctica

Carrera Ciclo

ƒ Tecnologías de la información I

Autoras:
María del Carmen Cabrera L.
Gladys Alicia Tenesaca L.

La Universidad Católica de Loja


Asesoría virtual:
www.utpl.edu.ec
ALGORITMOS Y RESOLUCIÓN DE PROBLEMAS
Guía Didáctica
María del Carmen Cabrera L.
Gladys Alicia Tenesaca L.

UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA

4.0, CC BY-NY-SA

Diagramación y diseño digital:


EDILOJA Cía. Ltda.
Telefax: 593-7-2611418
San Cayetano Alto s/n
www.ediloja.com.ec
[email protected]
Loja-Ecuador

Primera edición
ISBN digital - 978-9942-25-297-5

La versión digital ha sido acreditada bajo la licencia Creative Commons 4.0, CC BY-NY-SA:
Reconocimiento-No comercial-Compartir igual; la cual permite: copiar, distribuir y comunicar
públicamente la obra, mientras se reconozca la autoría original, no se utilice con fines comerciales
y se permiten obras derivadas, siempre que mantenga la misma licencia al ser divulgada. https://
creativecommons.org/licenses/by-nc-sa/4.0/deed.es

27 Febrero, 2018
2. Índice

2. Índice 4

3. Introducción 6

4. Bibliografía 8

4.1. Básica 8

4.2. Complementaria 8

5. Orientaciones generales para el estudio 10

6. Proceso de enseñanza-aprendizaje para el logro de competencias 14

PRIMER BIMESTRE

UNIDAD 1. FUNDAMENTOS DE ALGORITMOS Y SU REPRESENTACIÓN 14

1.1. Concepto de Lógica 14

1.2. Algoritmo 15

1.3. Sistema 20

1.4. Concepto de algoritmo en el marco de la Lógica 21

1.5. Lógica de programación 21

1.6. Lenguajes de programación: sintaxis básicas. 21

1.7. Diagramas de flujo y su representación 25

Autoevaluación 1 38

UNIDAD 2. DATOS E INFORMACIÓN 42

2.1. Datos e información 42

2.2. Bit y Byte 43

2.3. Múltiplos y Submúltiplos del Byte 43

2.4. Operadores 45

2.5. Expresiones 54

2.6. Variables y tipos predefinidos 57

Autoevaluación 2 65
UNIDAD 3. CICLO DE DESARROLLO Y PRIMITIVAS ALGORÍTMICAS 68

3.1. Ciclo de desarrollo de un programa 68

3.2. Primitivas algorítmicas 73

3.3. Diseño de miniespecificaciones 77

3.4. Pruebas de escritorio 84

Autoevaluación 3 86

SEGUNDO BIMESTRE

UNIDAD 4. ESTRUCTURAS LÓGICAS CONDICIONALES 90

4.1. Estructura lógica condicional simple. 91

4.2. Estructura lógica condicional compuesta. 93

4.3. Estructura lógica Dependiendo De 96

Autoevaluación 4 102

UNIDAD 5. ESTRUCTURAS LÓGICAS REPETITIVAS 110

5.1. Estructura lógica repetitiva Mientras que – Hacer 111

5.2. Estructura lógica repetitiva Hacer - Hasta 114

5.3. Estructura lógica repetitiva Para 118

5.4. Estructuras lógicas repetitivas anidadas 122

Autoevaluación 5 133

UNIDAD 6. ESTRUCTURAS DE DATOS 137

6.1. Arreglos unidimensionales 138

6.2. Arreglos bidimensionales o matrices 144

Autoevaluación 6 154

7. Solucionario 157

8. Glosario 179

9. Referencias bibliográficas 186

10. Anexos 187


Guía Didáctica: Algoritmos y Resolución de Problemas PRELIMINARES

3. Introducción

Estimados estudiantes, reciban un cordial saludo de bienvenida a esta su


universidad, expresamos nuestra felicitación por haber elegido y confiado en
la Universidad Técnica Particular de Loja. Es un gusto para nosotros guiar
el proceso de aprendizaje en la asignatura de Algoritmos y Resolución de
Problemas, cualquier duda e inquietud estamos a sus órdenes para responderle.

Algoritmos y Resolución de Problemas es una asignatura de primer ciclo


que corresponde a la unidad de organización curricular básica, su campo de
formación es praxis profesional con 120 horas de planificación dentro de la
carrera de Tecnologías de la Información de la Modalidad Abierta y a Distancia
de UTPL. Esta asignatura 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.

Dentro de la carrera de Tecnologías de la Información, es muy importante


considerar que el desarrollo de habilidades para resolver un problema
computacional no se logra sino con la adquisición de una forma de pensamiento
que tiene la capacidad de abstracción, de encontrar patrones, de ordenar de
manera operativa, de identificar los componentes de un problema y representarlo
en una notación formal que permita establecer una solución para el mismo. Todas
las personas nos enfrentamos día a día a un sin número de problemas y somos
capaces de resolverlos de diferentes maneras, pero existen muchas dificultades al
momento de traducir este problema a un lenguaje algorítmico.

Intentar resolver lo mencionado es justamente el objetivo principal de la


asignatura de Algoritmos y Resolución de Problemas. Con las competencias
adquiridas al finalizar las asignatura, estarán en la posibilidad no solo de
aprender a programar, sino de entender cómo funcionan los distintos lenguajes
computacionales y, por tanto, entender cómo funciona la computadora. De igual

6 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas PRELIMINARES

manera, los conocimientos adquiridos los podrán aplicar a la resolución de los


problemas que se les presenten en el transcurso de la carrera.

Los contenidos han sido organizados en unidades y distribuidos equitativamente


para los dos bimestres. Se abordará en la unidad 1 los fundamentos de algoritmos
y su representación; en la unidad 2 se estudiará la naturaleza de los datos, su
representación y sus operaciones, y la unidad 3 se enfoca en el ciclo de vida
del desarrollo de un programa y las primitivas algorítmicas básicas para la
resolución de problemas. El segundo bimestre comprende la unidad 4 que abarca
el uso de las estructuras lógicas y condicionales, la unidad 5 las estructuras
lógicas repetitivas y finalmente completamos las temáticas planificadas en la
unidad 6 con el estudio de las estructuras de datos, arreglos unidimensionales y
bidimensionales.

La programación no es un arte, es una técnica. Cualquiera que pueda pensar


podrá analizar, cualquiera que pueda analizar podrá generar algoritmos, quien
pueda generar algoritmos podrá generar modelos de datos, y quien pueda
generar modelos de datos podrá generar miniespecificaciones, codificar y probar
programas (Ramírez, 2007)

Al iniciar esta asignatura hay mucho por descubrir y aprender, lo que cada uno
quiera dar hace la diferencia. Si del tiempo planificado para sus estudios invierten
el 101% y no el 99% en los 365 días del año, se darán cuenta que el 1% de
dedicación adicional será su impulso para culminar con éxitos su carrera.

99% nuestro tiempo en 365 días → 0,99365 = 0,03


101% nuestro tiempo en 365 días → 1,01365 = 37,8

Entonces estimado estudiante no hay excusas. Lo invitamos a ponerse a trabajar.


Damos inicio a la asignatura, ¡Bienvenidos!.

7 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas PRELIMINARES

4. Bibliografía

4.1. Básica

Mancilla, A., Ebratt, R. y Capacho, J. (2014). Diseño y construcción de algoritmos.


Barranquilla Universidad del Norte.

Este libro contiene un compendio detallado y sistemático que sirve para el


análisis, diseño y construcción de algoritmos.

Cabrera, M. y Tenesaca, G. (2017). Guía didáctica de Algoritmos y Resolución de


Problemas. Loja. Universidad Técnica Particular de Loja.

La guía didáctica está diseñada para brindar los conocimientos necesarios


sobre la resolución de problemas mediante el diseño de algoritmos. Explica
cómo representar la solución de un problema a través de diagramas de
flujo y miniespecificaciones. Además se enfoca en el uso de estructuras
lógicas de condición, de repetición y estructuras de datos. La presente guía
proporciona ejercicios y actividades recomendadas que ayudan a reforzar
los conocimientos adquieridos sobre las temáticas planificadas.

4.2. Complementaria

Farrell, J. (2013). Introducción a la programación lógica y diseño. México.


Cengege Learning Editores.

Su propósito es dar las bases y los conceptos del pensamiento lógico.


Este recurso servirá de apoyo para solventar dudas sobre los fundamentos
de algoritmos, naturaleza de los datos, estructuras lógicas condicionales,
estructuras lógicas repetitivas y estructuras de datos.

8 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas PRELIMINARES

Ramírez, F. (2007). Introducción a la programación : algoritmos y su


implementación en VB.Net, C#, Java y C++. México D. F Alfaomega Grupo
Editor SA.

El presente libro pretende que el lector consiga familiarizarse rápidamente


con el lenguaje, aprendiendo sus fundamentos y descubriendo cómo
utilizarlo para desarrollar diferentes tipos de aplicaciones. La unidad 3,
ciclo de desarrollo y primitivas algorítmicas, se ha realizado en base a este
recurso.

Zapata, L. (2012). Desarrollo del pensamiento analítico y sistemático: Guía


práctica para aprender a programar por competencias. Medellín Politécnico
Colombiano.

Guía práctica para aprender a programar por competencias. Este recurso


apoyará en las siguientes temáticas: declaración de variables y tipos de
datos, estructuras lógicas y estructuras de control, diagramas de flujo y
codificación de programas.

9 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas PRELIMINARES

5. Orientaciones generales para el estudio

El estudio de la asignatura de Algoritmos y Resolución de Problemas es una tarea


que requiere el desarrollo de algunas habilidades orientadas a descomponer un
problema en partes manejables para dar una solución óptima al mismo. Además,
se debe considerar que esta asignatura es de primer nivel y se convierte en la
base para continuar con éxito la malla de la carrera.

Con el objetivo de posibilitar un aprendizaje significativo y exitoso, a continuación


se detalla el material de estudio y los recursos que utilizaremos durante el
transcurso de la asignatura:

▪▪ El plan docente: Proporciona una planificación semanal a detalle, con


las actividades a desarrollar durante del ciclo académico, por lo que es
importante que se utilice este recurso para organizar de mejor manera su
tiempo de dedicación.

▪▪ La guía didáctica: Le orientará sobre cómo y qué temas estudiar, además


contiene actividades recomendadas y ejercicios de autoevaluación que
le permitirán fortalecer y medir su grado de comprensión conforme vaya
avanzando en la asignatura.

▪▪ El texto básico: Contiene los temas principales conforme se lo indica en la


guía didáctica. Es importante aclarar 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.

▪▪ El Entorno Virtual de Aprendizaje (EVA): Es el medio por el cual se podrá


interactuar con su docente y compañeros. En este entorno encontrará las
orientaciones académicas de cada unidad por semana, además de las
actividades síncronas y asíncronas planificadas. El EVA ayudará también a

10 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas PRELIMINARES

resolver inquietudes mediante el uso de la mensajería instantánea, foros,


chats, entre otros.

▪▪ La tutoría personal: Los docentes dedicamos un horario de tutoría al


estudiante. Tiempo para atender las inquietudes en relación a los contenidos
o desarrollo de las tareas, actividades recomendadas, entre otras. Para ello,
el docente publicará un anuncio en la plataforma virtual EVA con el horario
en el puede considerar como recurso la planificación del plan docente..

▪▪ La tarea bimestral: Es una actividad teórica y práctica que acompaña a


la guía didáctica de cada asignatura. La tarea bimestral no es obligatoria,
pero tiene una valoración de 6 puntos que sumados a la calificación de
participación en el EVA (4 puntos) en actividades síncronas o asíncronas,
dan un total de 10 puntos a la nota final de cada bimestre. Esta tarea debe
ser enviada en las fechas definidas en el calendario académico de MAD.

▪▪ Evaluación presencial: Al finalizar cada bimestre debe presentarse a la


evaluación presencial en su centro universitario. Esta evaluación se califica
sobre10 puntos, que sumados a los 10 puntos de la tarea bimestral y las
actividades en el EVA le dan un total de 20 puntos por bimestre.

Antes de iniciar el estudio de esta asignatura se recomienda considerar las


siguientes sugerencias y recomendaciones:

• Estudiar en un ambiente ordenado, con poco ruido, buena iluminación


y temperatura. Con esto, garantiza que en sus momentos de estudio no
pierda la concentración con facilidad.

• Utilice técnicas de lectura comprensiva, como una lectura general


para revisar las temáticas de cada unidad, y lecturas analíticas para
identificar los aspectos más relevantes.

11 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas PRELIMINARES

• Mantener un aprendizaje activo, utilizando técnicas de estudio como:


elaboración de resúmenes, esquemas, mapas conceptuales, subrayado
u otra estrategia de aprendizaje.

• Organizar su tiempo, de tal manera que evite dejar para el último


momento el desarrollo de las actividades previstas. Se sugiere dedicar
al menos 8 horas semanales para el estudio de esta asignatura.
Para esta planificación es importante considerar sus ocupaciones,
habilidades y conocimientos, llevando un orden y dedicación es posible
cumplir con esta planificación.

• Estudiar cada una de las temáticas planteadas de forma secuencial,


asegurándose de no avanzar a la siguiente temática si aún tiene alguna
duda. Para esto, tanto el plan docente como los recursos de apoyo son
de mucha utilidad.

• Dedicarse periódicamente a la revisión del texto básico, guía didáctica,


así como los anuncios, directrices y recursos que se subirán en el
Entorno de Aprendizaje Virtual (EVA).

• La asignatura tiene una naturaleza práctica, por lo que es


recomendable realizar la mayor cantidad de ejercicios sin limitarse a los
ejercicios propuestos en la guía didáctica. El texto básico provee una
cantidad de ejercicios por desarrollar, es importante analizar y realizar
dichos ejercicios para fortalecer cada una de la unidades establecidas
para la asignatura.

• Es conveniente, que realice las actividades recomendadas y


autoevaluaciones propuestas en la guía didáctica, esto le permitirá
reforzar su proceso de aprendizaje.

• Se recomienda que desarrolle la tarea conforme vaya avanzando en el


estudio. En el plan docente se planifica el desarrollo de la misma por
semana con el objetivo de cumplir con los plazos establecidos.

12 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas PRELIMINARES

• Se recomienda realizar todas las actividades síncronas y asíncronas


planificadas por el docente en el transcurso de la asignatura. Estas
actividades tienen dos objetivos, ayudar a fortalecer el conocimiento y
dar una valoración para la aprobación de la asignatura.

• Es importante conocer que en el transcurso del ciclo académico,


existen tres momentos de evaluación presencial: el primer bimestre:
que corresponde a los contenidos desarrollados en los primeros
dos meses (ocho semanas) del período académico. En el segundo
bimestre: considera los contenidos desarrollados en los siguientes dos
últimos meses (ocho semanas) del período académico. Evaluación
final: dirigida a los estudiantes que no alcanzaron el puntaje mínimo de
aprobación de 28 puntos sobre 40 puntos (28/40).

• Finalmente, recordar su auto motivación y perseverancia para superar


las dificultades que se presenten en el camino de su aprendizaje. Pero
es importante recordar los horarios de tutoría y el chat permanente
de consulta. Esto le ayudará a no sentirse solo ya que cuenta con un
equipo de docentes para apoyarlo.

13 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas PRIMER BIMESTRE

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

PRIMER BIMESTRE

UNIDAD 1. FUNDAMENTOS DE ALGORITMOS Y SU REPRESENTACIÓN

“Para tener éxito, tus deseos de triunfar deberían


ser más grandes que tu miedo de fracasar”.
Bill Cosby.

Estimado estudiante:

Iniciamos el estudio de esta asignatura y le pido que vaya al título de la primera


unidad del texto básico. La lectura del mismo le permite saber de qué se trata la
temática y tener una visión general acerca del contexto del marco de Lógica de la
Programación. La primera unidad del texto está enfocada a analizar el desarrollo
tecnológico como el desarrollo de las formas de razonamiento humano. Por ello lo
invitamos a revisar la presente unidad.

En la presente unidad revisaremos el Capítulo 1: Marco


conceptual de la Lógica de programación del texto
básico, así mismo, puede ayudarse de los libros de Lógica
planteados en la bibliografía complementaría, si puede
disponer de ellos sería importante que los use para reforzar
los temas planteados.

1.1. Concepto de Lógica

Lógica es una rama de la filosofía que estudia de manera formal las deducciones
válidas que se derivan de un sistema de razonamiento fundamentado en un

14 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas PRIMER BIMESTRE

conjunto de reglas, es decir, la Lógica investiga la relación de consecuencia que


se da entre una serie de premisas y la conclusión de un argumento correcto.

En el texto nos habla de términos importantes de Lógica por ello lo invitamos a


que lea la sección 1 en la página 1 del texto básico.

¿Cómo le fue con la lectura? Espero haya sido un buen comienzo. Podemos,
entonces, seguir con el siguiente tema de la página 2 del texto básico que es muy
interesante y le permitirá avanzar en su estudio.

1.2. Algoritmo

Un algoritmo es como una secuencia de instrucciones que representan un


modelo de solución para determinado tipo de problema. Según el texto básico un
Algoritmo representa un conjunto finito de reglas bien definidas en su lógica de
control que permiten la solución de un problema en una cantidad finita de tiempo.
En la Figura 1 se observa las cuatro reglas para desarrollar un algoritmo.

1 2
1 Reglas de Entrada Reglas intermedias "
- Punto inicial - Proceso
- Cálculo

4 3
%
Reglas de finalización Proceso lógico
- Punto final - Respuesta de usuario

Figura 1. Reglas de un algoritmo


Fuente: Mancilla, (2014)
Elaboración: Cabrera, M.; Tenesaca, G., (2018)

15 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas PRIMER BIMESTRE

A continuación detallamos el conjunto de reglas:

• Una(s) regla (s) de entrada(s) al algoritmo o punto inicial del algoritmo.


• Una o un conjunto de reglas intermedias (reglas de proceso o de
cálculo)
• Un conjunto o una regla de finalización de algoritmo, que asegure su
terminación.
• Exactitud en el proceso lógico de organización de las reglas a fin de dar
respuestas al usuario.

A continuación, lo invitamos a revisar el siguiente ejemplo propuesto, el mismo le


permitirá poner en práctica lo aprendido, en especial al desarrollar un algoritmo
utilizando un conjunto de reglas.

Ejemplo 1.1 Crear las reglas en las que permita crear un barco de papel.

Tenemos una hoja de papel, cuyo tamaño es A4.


Análisis:
Se tiene la hoja de tamaño A4 que permita construir un barco de papel.
Solución:

1. Primero debe doblar la hoja en la mitad (largo de hoja)


2. Nuevamente doblar la hoja en la mitad
3. Se abre el pliegue anterior y se realiza 2 nuevos pliegues desde
las esquinas y deberán coincidir con la línea central marcada
anteriormente.
4. Se procede a doblar hacia arriba los bordes inferiores que han quedado
del paso anterior, una para cada lado de la hoja.
5. Introducir los extremos sobrantes que han quedado de los pasos
anteriores, doblar uno interiormente bajo del otro, en ambos extremos
sobrantes.
6. Abrir y doblar de tal forma que forme un cuadrado y doblar las
esquinas, para lo cual se recomienda una distancia de 1 cm entre los
dos pliegues.

16 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas PRIMER BIMESTRE

7. Abrir el hueco que se forma abajo del barco y se pliega en el otro


sentido del papel.
8. Finalmente, estirar de los dos extremos de los pliegues formando el
barco de papel.

La Figura 2 muestra los pasos enunciados en el apartado anterior del ejemplo 1.1
Análisis para construir un barco de papel, el ejercicio es desarrollado con el fin de
comprender el término de algoritmo como “secuencia de instrucciones”.

Figura 2. Algoritmo armar un barco de papel.


Fuente: https://es.pinterest.com/pin/564005553307105984/

A continuación se propone el siguiente ejemplo, lo que permitirá poner en práctica


lo aprendido.

Ejemplo 1.2 Calcular el área de un terreno rectangular.

Sean a y b los lados del rectángulo, cuyos lados son a= 30 metros (alto) y b= 40
metros (largo), diseñe un conjunto de reglas para determinar el área del terreno.

17 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas PRIMER BIMESTRE

Análisis:

Figura 3. Rectángulo
Elaboración: Cabrera, M.; Tenesaca, G., (2018)

El área A del rectángulo se determina con A = ancho x alto, en este caso tenemos
A = a x b.

Solución:

• Primero: Se requiere una regla mediante la cual obtengamos los datos


de entrada. Entonces R1 es igual a obtener a y b.

• Segundo: Se necesita la segunda regla R2 que calcule el valor del área


del terreno de forma rectangular, de acuerdo a la ecuación de cálculo A
= a x b, por tanto: R2 = Calcular el valor de área A que es igual a alto a
por el ancho b del rectángulo.

• Finalmente, es necesaria una tercera regla R3 que muestre el resultado


del cálculo. Luego, R3 = Muestre el valor de área (A) calculada.

• Finalmente, organizamos de una forma lógica las reglas definidas


anteriormente. Es decir, su ejecución manual es R1 → R2 → R3, si y solo
si se realiza la secuencia de las reglas con el fin de lograr el cálculo del
área del terreno rectangular, cuyo valor es, por ejemplo:

R = a x b = 30 x 40 = 120

18 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas PRIMER BIMESTRE

El valor de 120 induce que de acuerdo a los primeros datos de entrada a = 30, b =
40 , la respuesta del Área es exacta = 120
Finalmente podemos ver en la Tabla 1. Un resumen del algoritmo para determinar
el área de rectángulo

Tabla 1. Algoritmo para determinar el área del terreno rectángulo.

Entrada Proceso Salida


R1 R2 R3
Obtener a y b Calcular valor Presentar el valor de Ʌ
A=axb
Fuente: Mancilla, (2014)
Elaboración: Cabrera, M.; Tenesaca, G., (2018)

El problema puede complicarse más cuando se pide determinar el área de


un paralelepípedo. ¿Sería capaz de plantear una solución considerando este
problema? Lo invitamos a solucionarlo en papel.

Una vez culminada la presente sección, es importante que


estudie ahora los apartados del Capítulo 1: sección 1.1 y 1.2
del texto básico.

Además, si todavía tiene inquietudes respecto a la temática, a continuación lo


invitamos a revisar los siguiente recurso de apoyo, que le explica ¿qué es un
algoritmo?

Recursos de apoyo
Para fortalecer los conocimientos adquiridos se recomienda
revisar el siguiente recurso audiovisual.
• http://purl.org/taw-sbc-utpl/algorithm/unit1/v1_algortimos

¿Pudo acceder al enlace?. Ahora respondamos la pregunta: ¿Qué es un


algoritmo? En el recurso de apoyo se define a un algoritmo como una serie
de pasos o instrucciones finitas y ordenadas que sirven para dar solución
a un problema, un algoritmo debe ser preciso y sin ambigüedades. Un

19 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas PRIMER BIMESTRE

algoritmo debe tener siempre inicio y fin, entre el inicio y el fin debe estar las
instrucciones o pasos.

Existen dos tipos de algoritmos cualitativo y cuantitativo; el algoritmo cualitativo


es aquel que describe situaciones de la vida cotidiana por ejemplo “algoritmo
para encender un computador”, algoritmo cuantitativo es aquel que realiza
operaciones matemáticas que tiene procesos, tiene entrada que es procesada
para generar una salida por ejemplo “algoritmo para determinar la edad de
una persona”. Además en el recurso existe una tarea planteada, lo invitamos a
desarrollar el ejercicio. ¡Adelante, que lo están haciendo muy bien!

¿Qué le pareció la temática?. Ahora bien, para reforzar su aprendizaje sobre


algoritmos, lo invitamos a estudiar la sección 1.2.2 – Algoritmo del texto básico.
Esta sección le ayudará a comprender de mejor manera el siguiente tema de
estudio: Sistema

1.3. Sistema

Existen muchos puntos de vista para definir un sistema, entre ellas una definición
genérica de sistema es que debe ser capaz de ser absorbido por un sistema
mayor como una de sus partes.

Una definición más enfocada al punto de vista informático es: Sistema se


refiere a las interacciones de componentes de diferentes formas, tales como
técnicas o instruccionales. Una de las características de la definición de
sistema es la generación de información, a continuación se propone una
definición.

Información: Es considerada como un conjunto organizado de datos derivados


de un sistema en operación.

Para reforzar la temática, revisar los apartados del Capítulo


1: Concepto de Sistema del texto básico.

20 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas PRIMER BIMESTRE

Para fortalecer su aprendizaje sobre Sistema lo invitamos a estudiar la sección


1.3 Concepto de sistema del texto básico. Esto nos ayudará a comprender de
mejor manera el siguiente tema de estudio: conceptos de algoritmo, lógica de
programación y lenguajes de programación.

1.4. Concepto de algoritmo en el marco de la Lógica

Desde el punto de vista de la Lógica, un algoritmo conduce a identificar que, la


resolución de problemas factibles de ser tratados por máquinas de procesamiento
electrónica de datos o computador inicia en el sistema de razonamiento humano.

1.5. Lógica de programación

La lógica de programación es una herramienta que combina los campos de


la lógica humana, la algoritmia y la ciencia de la computación en un sentido
informático, para consolidar las capacidades del ingeniero en identificar, formular
y resolver problemas en Ingeniería.

Este tema se profundiza con la lectura del texto básico en la página 12 de la


sección 1.4 Concepto de algoritmo en el marco de la lógica.

1.6. Lenguajes de programación: sintaxis básicas.

Basados en Ramírez, (2007) los lenguajes de programación son estructuras


simbólicas que nos permiten disponer de los dispositivos de una computadora.
El objetivo primordial de un lenguaje de programación es, hacernos pues la
vida más sencilla, proporcionando formas humanamente comprensibles.

Sin la existencia de lenguajes de programación de alto nivel, sería imposible la


elaboración de programas tan útiles y complejos como Microsoft Word o Microsoft
Excel, los lenguajes de programación tienen los siguientes elementos que
presentan la Tabla 2:

21 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas PRIMER BIMESTRE

Tabla 2. Elementos de los lenguajes de programación1

Elemento Descripción Ejemplo


Estructuras Presenta la forma general Public class Coche {
de código en que debe escribirse un private String nombre;
programa, con el fin de private int idDrawable;
delimitar los bloques de código1 public String getNombre( ) {
que lo componen, en una forma return nombre;
ordenada y sistemáticas. }
}
Palabras Son palabras con significado Generalmente son palabras en inglés,
reservadas dentro del lenguaje de que en el caso de ser verbos están
programación que no podrán en infinitivo: palabras como PRINT, o
ser utilizadas más que en DELETE.
el sentido original en el que
fueron creadas. Símbolos que
provocarán un comportamiento
predecible.
Expresiones Son valores expresados de Class Sumas {
forma entendible para el public static void main (String args [])
lenguaje de programación. {
Generalmente los datos String bienvenida=”Bienvenido a
de tipo numérico no tienen UTPL”
problemas, ya que se escriben int b=7;
como normalmente los int Alberto=8;
entendemos. Las expresiones int resultado;
textuales, llamadas cadenas resultado= b+alberto
son secuencias de caracteres // esta es la línea de expresión
generalmente delimitadas por System.out.println(bienvenida);
comillas simples o dobles, System.out.println(“El resultado
dependiendo del lenguaje. es: ” +bienvenida);
}
}

1 Bloque de código: conjunto de líneas de código que pueden ser consideradas como unidad
independiente de ejecución

22 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas PRIMER BIMESTRE

Elemento Descripción Ejemplo


Símbolos Son los caracteres A esta categoría pertenecen típicamente
especiales (generalmente no más los operadores aritméticos (+,-,*, /) y de
de dos), que provocan un comparación (<,>, <>,=).
comportamiento predecible
dentro de un programa.
Sintaxis Es la forma ordenada en que se //Aplicación Hola UTPL de ejemplo
deben especificar la palabras class HolaUTPL {
reservadas, las expresiones y public static void main (String args []
los símbolos especiales, a fin ){
de que tengan significado para System.out (‘ Hola UTPL’ );
el lenguaje de programación. }
Generalmente que no se }
respetar las reglas de sintaxis
de un lenguaje provoca errores
en los programas.
Semántica Son las reglas que determinan Un ejemplo en el que la semántica
el significado que ha de dársele toma relevancia es cuando se utiliza
a una palabra reservada, en algunos lenguajes el símbolo de
expresión o símbolo especial, igualdad (=); dependiendo de la sintaxis
dependiendo del contexto de utilizada el símbolo de igualdad puede
sintaxis en que se encuentran. asignar un valor, o bien indicar una
comparación en la que deseamos saber
si un valor es igual a otro.
Fuente: Mancilla, (2014)
Elaboración: Cabrera, M.; Tenesaca, G., (2018)

Ahora, lo invitamos a revisar el siguiente ejemplo propuesto esto le permitirá


poner en práctica lo aprendido. El ejemplo 1.3 realiza la suma de dos números en
lenguaje de programación Java, en el mismo se detalla la sintaxis y la estructura
que se utiliza para desarrollar un programa.

23 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas PRIMER BIMESTRE

Ejemplo 1.3 Programa que suma dos números

import java.lang.*;
import java.io.*;
import java.util.*;
public class Sumas {
public static void main(String[] args) {
int a=0, b=0;
int sum;
Scanner Teclado= new Scanner (System.in);
System.out.println("Ingrese el primer número");
a=Teclado.nextInt();
System.out.println("Ingrese el segundo valor");
b=Teclado3.nextInt();

sum=a+b;

System.out.println("La suma de los dos números es:"+sum);


}
}
Es momento de reforzar lo aprendido con el desarrollo de algunos ejercicios
propuestos y recursos de apoyo que le ayudarán a fortalecer la elaboración de
diagramas de flujo.

Recursos de apoyo
Para fortalecer los conocimientos adquiridos se recomienda
revisar el siguiente recurso audiovisual.
• http://purl.org/taw-sbc-utpl/algorithm/unit1/v2_programacion

¿Pudo revisar el recurso? ¿Qué le pareció? Interesante! ¡Verdad!. La


explicación le ayudará a diferenciar los principios básicos de programación,
definiciones como: Lógica es tener idea del camino más fácil para lograr
nuestro objetivo, en programación siempre está sujeto a decidir entre varias

24 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas PRIMER BIMESTRE

alternativas distintas, entonces se debe analizar cada alternativa y ver la mejor


decisión.

Otras definiciones importantes de conocer es

¿Qué es un programa?

Un programa es un conjunto de instrucciones que logran un objetivo al ser


ejecutadas, el objetivo es el programa.

¿Qué es programación?

Programación es crear una serie de pasos o instrucciones para que un


problema pueda ser resuelto.

Conceptos que elementales conocer y saber diferenciar. Si desea avanzar o


tener más información puede seguir el canal de subscripción ya que esto le
ayudará a fortalecer su estudio. Éxitos estimado estudiante.

La revisión de los recursos de apoyo le ayudará a comprender de mejor manera el


siguiente tema de estudio: Diagramas de flujo y su representación, cabe recalcar
que este tema no se encuentra en el texto básico, por ello lo invitamos a revisar la
bibliografía complementaria.

1.7. Diagramas de flujo y su representación

Un diagrama de flujo es una representación visual del tratamiento de un


problema; como mínimo, un diagrama de flujo muestra las operaciones
realizadas dentro del proceso que pretende la solución del problema y la
secuencia en la que son realizadas dichas operaciones.

Los diagramas de flujo generalmente son elaborados en las fases iniciales del
ciclo de vida de desarrollo (análisis, diseño), dado que facilitan la comunicación
entre los desarrolladores y los clientes; una de sus mayores virtudes es que

25 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas PRIMER BIMESTRE

facilitan el entendimiento de la lógica del problema a resolver, transformando


problemas grandes y complejos en una serie ordenada de actividades por realizar.

1.7.1. Ventajas de los diagramas de flujo

A continuación la Figura 4 presenta las diferentes ventajas de utilizar diagramas


de flujo. Para la elaboración de diagramas de flujo se puede utilizar Microsoft Visio
o Raptor, entre otros.

Son una de las mejores


Son generalmente Permiten el análisis de
formas de comunicar la
conocidos e un problema de forma
lógica de un programa
interpretados. abstracta.
o sistema.

Apoyan al proceso de
depuración de programas,
Son aceptados como
Sirven como referencia sobre todo en la solución
documentación técnica
para los de problemas relacionados
para los programas y
programadores. con la lógica del programa,
desarrollos.
mismos que el compilador
es incapaz de detectar.

Facilitan las funciones


de mantenimiento a los
programas, al
exponerlos de una
forma clara y lógica.

Figura 4. Ventajas de los diagramas de flujo.


Elaboración: Cabrera, M.; Tenesaca, G., (2018)

En el tema de diagramas de flujo y sus ventajas destaca la importancia que tiene


cada uno de los símbolos para desarrollar un algoritmo, ahora es importante
conocer que cada uno de estos símbolos se basan a un Estándar ANSI/ISO
5807-1985 que distingue cada uno de los tipos de diagramas que existen, en el
siguiente tema revisamos esta temática.

26 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas PRIMER BIMESTRE

1.7.2. Estándar ANSI/ISO 5807-1985 para diagramas de flujo

De acuerdo al estándar ANSI/ISO 5807-1985 de la (American National Standard


Institute), los diferentes tipos de diagramas de flujo son los siguientes.

• Diagramas de flujo de datos (data flowchart).


• Diagramas de flujo de programas (program flowchart).
• Diagramas de flujo de sistemas (system flowchart).
• Diagrama de flujo de red (program network chart).
• Diagramas de recursos de sistemas (system resources chart).

El estándar ANSI/ISO 5807-1985 define un diagrama de flujo como la


representación gráfica de la definición, análisis y métodos de solución de
problemas, en el cual los símbolos son utilizados para representar operaciones,
datos, flujos, equipo. Un símbolo es una representación gráfica asociada a un
concepto de funcionalidad determinado. Dicha asociación, para ser efectiva, debe
ser generalmente entendida y aceptada.

El estándar propone símbolos para todos los tipos de diagramas, pero hace la
distinción respecto a los símbolos que aplican para cada tipo de diagrama en
particular. Desde luego, para nuestro interés nos centramos en los diagramas de
flujo de programas. Un diagrama de flujo de programa contiene los siguientes
elementos:

• Símbolos de procesamiento que definen la ruta que seguirá el


programa tomando en cuenta condiciones lógicas.
• Líneas de flujo que indican el flujo de control de las operaciones.
• Símbolos especiales que facilitan la lectura y escritura del diagrama de
flujo.

Hasta ahora hemos revisado los 5 tipos de diagramas de flujo, a continuación en


la sección 1.7.3 estudiaremos los símbolos más utilizados en los diagramas de
flujo.

27 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas PRIMER BIMESTRE

1.7.3. Símbolos utilizados en los diagramas de flujo

De acuerdo al estándar ANSI/ISO 5807-1985 los símbolos se dividen en las


siguientes categorías:

• Símbolos de datos(data symbols)


• Símbolos de proceso (process symbols)
• Símbolos de líneas (line symbols)
• Símbolos especiales (special symbols)

La Tabla 3 presenta un resumen descriptivo de los símbolos y las categorías de


los diagramas de flujo de programas..

Tabla 3. Símbolos y categorías de los diagramas de flujo de los programas

Símbolo Categoría Nombre y utilidad

De datos Símbolo de datos (data): Representa los datos de


entrada y salida.
Operaciones que soporta:
• Petición de datos
• Muestra de datos.
De proceso Símbolo de datos (process): Representa cualquier
operación de procesamiento por ejemplo: la
ejecución de una o más operaciones que resultan
en un cambio de valor, forma o ubicación de la
información; también puede tratarse de operaciones
para determinar una o más rutas que puede seguir
el flujo del programa (sin que sea una decisión)
Operaciones que soporta:
• Declaraciones
• Cambios de estado.

28 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas PRIMER BIMESTRE

Símbolo Categoría Nombre y utilidad

De proceso Símbolo de proceso definido(Predefined Process)


Representa un proceso nominado que consiste en
una o más operaciones especificadas en otro lado,
como podría ser una subrutina, una clase o un
módulo externo. Puede ser utilizado para evitar la
mezcla de operaciones de diferente nivel.
Operaciones que soporta:
• Llamado a procedimiento.
De proceso Símbolo de Preparación (Preparation)
Este símbolo representa una modificación o
instrucción que afecta la actividad subsecuente,
aunque no forma parte del problema. Ejemplo
de esto sería una variable de trabajo o inicializar
contadores y acumuladores.
Operaciones que soporta:
• Cambios de estado
De proceso Símbolo Modo paralelo (Parallel mode)
Representa la sincronización de dos operaciones
que deben realizarse de forma dependiente
(paralelo). El uso del modo paralelo hace obligatorio
que para realizar un proceso sea necesaria la
conclusión de otro proceso.
Operaciones que soporta:
• Cambios de estado
De proceso Símbolo de decisión y ciclo (Loop limit)
Representa el inicio y fin de un bucle. La decisión
a evaluar se encontrará en el límite inicial o en el
final, dependiendo del tipo de ciclo que se esté
utilizando.
Operaciones que soporta:
• Estructuras de control

29 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas PRIMER BIMESTRE

Símbolo Categoría Nombre y utilidad

De línea Símbolo Línea de flujo (Line)


Representa el flujo de datos y el control de la
operación programa. Representa la secuencia
lógica en que se desarrolla las operaciones.
De línea Símbolo Línea punteada (Dashed Line)
Representa una relación alternativa entre dos
o más símbolos. Es útil para representar una
conexión poco común entre dos o más elementos.
Especiales Símbolo Conector (Connector)
Traslada el control del programa a otra parte dentro
del mismo diagrama. Cada conector deberá contar
con un identificador único.
Especiales Símbolo Terminador (Terminator)
Representa la salida o la entrada al diagrama.
Al menos se debe tener una entrada al diagrama
(inicio), y al menos una terminación (fin).
Especiales Símbolo Anotación (Annotation)
Agrega explicaciones que clarifiquen de forma
descriptiva el funcionamiento del diagrama y sus
elementos.

Fuente: Mancilla, (2014)


Elaboración: Cabrera, M.; Tenesaca, G., (2018)

1.7.4. ¿Cómo elaborar un diagrama de flujo en un programa?

El desarrollo de diagramas de flujo puede realizarse de dos formas, la primera es


partir de una mini especificació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.

Revisemos el siguiente ejemplo propuesto que se desarrolla partiendo desde una


miniespecificación a un diagrama flujo.

30 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas PRIMER BIMESTRE

Ejemplo 1.4 Se desea desarrollar un algoritmo que muestre el proceso de


comprar o plantar flores en la primavera

Nro Miniespecificación
1 Inicio
2 //se solicita preguntar

3 <<“¿Plantaremos flores este año?”


4 //Si es si entonces se condiciona

5 Si (“Plantaremos flores este año”) entonces


6 Escriba “Comprar flores para macetas”
7 Si (Se predice frio esta noche) entonces
8 Si (la temperatura es de 50° F) entonces
9 Escriba “Poner las flores al aire libre durante el día”
10 Sino
11 Escriba “Mantener las flores de las macetas cubiertas durante el día”
12 Fin Si
13 Fin Si

Diagrama de flujo

No Si

No Si

No Si

31 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas PRIMER BIMESTRE

Como se muestra en el diagrama de flujo anterior permite hacer un seguimiento


más claro de la lógica utilizada para resolver el problema, para la solución del
problema (caso real) se utiliza las estructuras de decisión y de proceso que
ayudan a tener claro el desarrollo de la solución.

A continuación, se presenta el ejemplo 1.5 propuesto lo que ayudará a reforzar lo


aprendido.

Ejemplo 1.5 Se desea desarrollar un diagrama de flujo para un programa que


indique si un número ingresado es perfecto. Se considera un número perfecto
cuando la sumatoria de todos sus divisores exactos es igual al mismo número.

Tabla 4. Miniespecificación del problema

Nro Miniespecificación
1 Inicio
2 //declaración de variables

3 num, i[0-n], i[0 - n] // número a determinar si es perfecto


4 cnt, i[0-n], i[0 - n] // contador del ciclo repetitivo
5 sum, i[0-n], i[0 - n] // variable que almacena divisores exacto
6 //inicialización de variables
7 cont ← 1, sum ← 0
8 //se solicita que se ingrese el número para determinar si es número perfecto
9 << “Ingrese el número a determinar si es perfecto”
10 >>num
11 Mientras (cnt <= num) entonces //determinar si número es perfecto
12 Si ((num % cnt)=0) entonces
13 <<cnt
14 sum=sum+cnt
15 Sino
16 cnt=cnt+1
17 Fin si
18 Fin Mientras
19 Si( sum=num) entonces
20 <<”El número es perfecto”
21 Fin si
22 Fin

32 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas PRIMER BIMESTRE

Si traducimos esta miniespecificación a diagrama de flujo obtendríamos el


diagrama que se presenta en la Figura 5, en el cual se puede apreciar con
claridad la lógica de programación utilizada, a pesar de que el código en la
miniespecificación es corto, el seguimiento del diagrama se facilita en el diagrama
de flujo.

No

Si

No

Si

Si

No

Figura 5. Diagrama de flujo para determinar si un número es perfecto


Fuente: (Calderón B, 2010)
Elaboración: Cabrera, M.; Tenesaca, G., (2018)

33 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas PRIMER BIMESTRE

En primer lugar todo diagrama de flujo debe iniciar con el símbolo de inicio, de la
de siguiente manera:

Figura 6. Inicio de Diagrama de flujo determinar si un número es perfecto.


Elaboración: Cabrera, M.; Tenesaca, G., (2018)

Luego, se realiza la petición de datos, se almacena en la variable num el


número ingresado por teclado. Seguido de ello, el diagrama de proceso realiza la
asignación del valor de 1 a la variable cnt y a sum se asigna el valor de 0.

Figura 7. Inicio de Diagrama de flujo determinar si un número es perfecto.


Elaboración: Cabrera, M.; Tenesaca, G., (2018)

Una vez realizada la asignación y presentación de variables, se realiza el control


mediante el proceso de decisión en la que compara si la división exacta de (num
/ cnt) =0, si esto es verdadero muestra el valor de cnt y realiza el proceso de
asignar a sum el valor de sum + cnt, caso contrario que sea falso lo que debe
realizar es preparar una modificación que afecte el estado de las variables e
iniciar la decisión a evaluar.

34 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas PRIMER BIMESTRE

Figura 8. Inicio de Diagrama de flujo determinar si un número es perfecto.


Elaboración: Cabrera, M.; Tenesaca, G., (2018)

En la siguiente parte del diagrama de flujo de la Figura 9, se realiza la


comparación con el símbolo de decisión que compara si la variable sum = num
si esto es verdadero a través del símbolo de datos presenta que “El número es
perfecto”, caso contrario en esa comparación es falso entonces presenta con
símbolo de datos “El número no es perfecto”

35 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas PRIMER BIMESTRE

Figura 9. Decisión de Diagrama de flujo determinar si un número es perfecto.


Elaboración: Cabrera, M.; Tenesaca, G., (2018)

Finalmente, una vez determinado si el número es o no perfecto finalizamos el


proceso y fin del diagrama de flujo con el mismo símbolo terminador.

Figura 10. Decisión de Diagrama de flujo determinar si un número es perfecto.


Elaboración: Cabrera, M.; Tenesaca, G., (2018)

A continuación se presenta el siguiente recurso con una explicación más amplia


sobre la elaboración de diagramas de flujo.

Recursos de apoyo
Para fortalecer los conocimientos adquiridos se recomienda
revisar el siguiente recurso audiovisual.
• http://purl.org/taw-sbc-utpl/algorithm/unit1/v3_diagramas

36 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas PRIMER BIMESTRE

Bien en el primer recurso estudiamos que es un algoritmo y los tipos de


algoritmos que existen, bueno pues ahora en este recurso estudiaremos

¿Qué es un Diagrama de flujo.

Un diagrama de flujo es otra herramienta que ayuda a representar los


algoritmos de forma gráfica con una simbología específica.

¿Para qué sirve los diagramas de flujo?, Los diagramas de flujo son
considerados como un entregable en la fase de diseño, y ayudan a
esquematizar de mejor manera un algoritmo. Son de mucha ayuda para
que los programadores puedan entender el problema a codificar. Estimado
estudiante, si tiene más inquietudes puede consultar a su Docente mediante el
chat de tutoría permanente. ¡Continuamos con la asignatura!

Recuerde realizar las actividades planteadas como


interacción en el EVA para fortalecer sus conocimientos,
además obtendrá retroalimentación de sus tutores y demás
compañeros.

37 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas PRIMER BIMESTRE

Autoevaluación 1

Estimado estudiante, hemos concluido el estudio de la primera unidad,


continuaremos con el siguiente tema, no sin antes comprobar lo aprendido hasta
ahora realizando la autoevaluación.

Seleccione la respuesta según corresponda:

1. El desarrollo de la Informática como ciencia, estudia el tratamiento de:

a. Ficheros
b. Información
c. Programas

2. Traslada el control del programa a otra parte dentro del mismo diagrama.

a. Símbolo conector
b. Símbolo de línea de flujo
c. Proceso

3. Realiza un conjunto de pasos cuya ejecución para dar la solución del


problema puede ser ejecutada manualmente, mecánicamente o utiliza una
máquina de procesamiento electrónico de datos.

a. Sistema
b. Lenguaje de programación
c. Algoritmo

38 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas PRIMER BIMESTRE

4. Es una ventaja ser generalmente conocidos e interpretados :

a. Diagramas de flujo
b. Miniespecificación
c. Sistema

5. Es utilizado para procesar información y obtener resultados, capaz de


ejecutar cálculos y tomar decisiones a velocidades millones o cientos de
millones más rápidas que puedan hacerlo los seres humanos.

a. Sistema computacional
b. Computadora
c. Lenguaje de programación

6. Son los caracteres (generalmente no más de dos), que provocan un


comportamiento predecible dentro de un programa Ítem.

a. Variables
b. Palabras reservadas
c. Símbolos especiales

7. Generalmente son elaborados en las fases iniciales del ciclo de vida de


desarrollo (análisis, diseño).

a. Diagramas de flujo
b. Lenguajes de programación
c. Símbolo de datos

8. En un diagrama de flujo, el paralelogramo es el símbolo de diagrama de flujo


que representa

a. Petición de datos
b. Proceso definido
c. Operación de decisión

39 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas PRIMER BIMESTRE

9. Relacione el término con la forma apropiada (Ver figura 11

1. Conector a

2. Límite de bucle b

3. Decisión c

4. Terminador d

5. Proceso e

Figura 11. Accesibilidad Universal


Elaboración: Cabrera, M.; Tenesaca, G., (2018)

a. 1a, 2b, 3d, 4e, 5c


b. 1c, 2e, 3b, 4d, 5a
c. 1e, 2c, 3a, 4d, 5b

40 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas PRIMER BIMESTRE

10. Complete el siguiente diagrama de flujo, para que permita pedir un mensaje
al usuario y luego presente el mismo en pantalla.

Diagrama de flujo a Diagrama de flujo b Diagrama de flujo c

a. Diagrama de flujo a
b. Diagrama de flujo b
c. Diagrama de flujo c

¿Cómo le fue en la autoevaluación? Seguramente muy bien,


pero para que esté seguro compare sus respuestas de la
parte objetiva con las que constan en el SOLUCIONARIO
que está al final de la guía didáctica. Si hubiera
discrepancias o dudas, vuelva a leer estos temas a fin de
que pueda cubrir los vacíos y reforzar su aprendizaje.

Ahora, es momento de iniciar el aprendizaje de la Unidad


dos, con el tema Datos e Información.

41 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas PRIMER BIMESTRE

UNIDAD 2. DATOS E INFORMACIÓN

“Nunca consideres el estudio como una


obligación, sino como una oportunidad para entrar
en el bello y maravilloso mundo del saber.”
Albert Einstein

Señor estudiante, es un gusto iniciar nuevamente el desarrollo de esta segunda


unidad. En esta ocasión, haremos una explicación más detallada de la
representación de la información en la computadora que justamente utiliza para
construir los códigos de la computadora. Además revisar las definiciones de
variables, tipos de datos, operadores y las expresiones que se utiliza para realizar
y presentar en un programa.

2.1. Datos e información

Los datos constituyen la “materia prima” de la información. Un dato representa un


número, una letra o un carácter que puede tener o no significado para quién lo
recibe. Si tomamos un conjunto de datos es muy posible que no trasmita ningún
mensaje entendible o que no tenga relación entre sus elementos, es decir, los
datos no representan información o no tiene significado. Los datos no tienen la
capacidad de representar información por sí solos.

La información es la asociación coherente y con significado dentro de un


contexto definido de datos individuales o de un conjunto de datos. Por lo
tanto la información siempre tendrá significado para quien la recibe. Para una
empresa la información representa el “activo más valioso” que posee.

Para que la computadora interprete los datos deben estar en un lenguaje


codificado como es sistema numérico binario (0 y 1).

0 1 1 0 1 0 0 1 1 0 1 0 0 1 1 0 1

Figura 12. Datos en arreglo lineal del sistema binario


Elaboración: Cabrera, M.; Tenesaca, G., (2018)

42 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas PRIMER BIMESTRE

La Figura 12 muestra como los datos se almacenan en la memoria de la


computadora en forma de arreglo lineal de ceros y unos

2.2. Bit y Byte

Bit: Digito binario (Binary digit), es considerado la unidad más pequeña de


información; es utilizado fundamentalmente en operaciones booleanas conocidas
como: AND, OR, NOT y XOR. Sin embargo, se necesita más de un bit para la
representación de datos (números, letras, símbolos), revisemos el siguiente
concepto.

Se denomina Byte e octeto a un conjunto de ocho bits, en los que se almacena


números binarios de ocho dígitos, el byte es la unidad básica de medida de la
capacidad de la memoria o cualquier dispositivo de almacenamiento de una
computadora.

¿Qué le pareció la temática?. Ahora bien, para reforzar su aprendizaje sobre


datos e información, lo invitamos a estudiar la sección 2.1 - Bit y Byte del texto
básico en las páginas 34 y 35. Esto nos ayudará a comprender de mejor manera
el siguiente tema de estudio: múltiplos y submúltiplos del byte. ¡Avancemos!

2.3. Múltiplos y Submúltiplos del Byte

Los múltiplos del byte son: Word (Palabra), Half Word (Media Palabra), Double
Word (Doble palabra). Un Word es el número máximo de bits con los que trabaja
un procesador de manera simultánea.

Los únicos submúltiplos del byte son el nibble y el bit. Un nibble es un conjunto
de cuatro bits, conocido también como “cuarteto o semiocteto”, que permite
representar un número binario de cuatro dígitos.

Los múltiplos del byte más conocidos por la frecuencia que se utiliza cuando se
especifica la capacidad de almacenamiento de los dispositivos como son: kilobyte,
megabyte, gigabyte y terabyte. Los prefijos (kilo, mega, giga, tera) están definidos

43 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas PRIMER BIMESTRE

en el Sistema Internacional de Medidas (SI). La Tabla 5 presenta un resumen


de los múltiplos y submúltiplos del Byte que le ayudará a comprender de mejor
manera este tema.

Tabla 5. Múltiplos y submúltiplos del byte.

Múltiplos / Submúltiplos N° de bytes N° de bits

Bit(b) 2-3 20
Nibble 2-1 22
Byte(B) 20 23
Half Word / Media Palabra 21 24
Word / Palabra (P) 22 25
Double Word / Doble Palabra 23 26
Kilobyte (KB) 210 213
Megabyte (MB) 220 223
Gigabyte (GB) 230 233
Terabyte (TB) 240 243
Petabyte (PB) 250 253
Exabyte (EB) 260 263
Zetabyte(ZB) 270 273
Yottabyte(YB) 280 283
Fuente: Mancilla, (2014)
Elaboración: Cabrera, M.; Tenesaca, G., (2018)

La Tabla 5 muestra 3 campos que describen el nombre del Múltiplo y submúltiplo


con sus respectivas abreviaturas, número de bytes binario con la potencia que
posee y el tercer campo el valor binario elevado a la potencia de bits.

Revise y analice ahora los ejercicios propuestos acerca


conversión de múltiplos y submúltiplos de Byte que se
encuentran en la sección 2.2.1 de texto básico.

En esta sección se analiza un tema muy importante acerca de las unidades


de los datos, con ello nos da firmes conocimientos para avanzar y comprender
el siguiente tema: tipos de operadores y expresiones. ¡Continuemos con el
desarrollo de la unidad!

44 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas PRIMER BIMESTRE

2.4. Operadores

Luego de haber identificado los tipos de operadores que se pueden usar en


una expresión, se puede concluir 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. Los operadores se clasifican en
aritméticos, relacionales y lógicos.

2.4.1. Operadores Aritméticos

Se utilizan para formar expresiones cuyo resultado será un valor numérico. Junto
con las variables de tipo numérico dan lugar a las expresiones aritméticas.

La Tabla 6 muestra denominación y descripción de los operadores aritméticos.

Tabla 6. Operadores Aritméticos

Acción Operador
Suma +
Resta, negación -
Multiplicación .,*
Potenciación ^
División real /
División real DIV
MOD Residuo de la división entera
Fuente: Mancilla, (2014)
Elaboración: Cabrera, M.; Tenesaca, G., (2018)

Recuerde:
El operador DIV es la parte entera del cociente de una división y el
operador MOD el residuo de esta división. Por ejemplo
7/2 = 3.5 entonces...
7 DIV 2 = 3
y para los residuos 7/2 deja de residuo 1
entonces para representarlo 75 MOD 2 = 1

45 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas PRIMER BIMESTRE

2.4.2. Operadores Relacionales o Condicionales

Se utilizan para formar expresiones booleanas, es decir, expresiones que al ser


evaluadas producen un valor booleano: VERDADERO o FALSO. Los operadores
relacionales son los que permiten comparar expresiones, una en relación a la
otra, proporcionando un valor de falso (False), verdadero (True), o nulo (Null),
dependiendo si la comparación es una verdad o no.

La Tabla 7 describe los operadores relacionales clásicos que se pueden utilizar en


una expresión, sentencia.

Tabla 7. Operadores Relacionales

Operador Verdadero SI Falso si


< (Menor que) expresión1 < expresión2 expresión1 >= expresión2
<= (Menor o igual que) expresión1 <= expresión2 expresión1 > expresión2
>(Mayor que ) expresión1 > expresión2 expresión1 <= expresión2
>= (Mayor o igual que ) expresión1 >= expresión2 expresión1 < expresión2
= (Igual a) expresión1 = expresión2 expresión1 <> expresión2
<>(Distinto de) expresión1 <> expresión2 expresión1 = expresión2
Fuente: Mancilla, (2014)
Elaboración: Cabrera, M.; Tenesaca, G., (2018)

El resultado de la comparación será Null si cualquiera de las expresiones


comparadas es Null. La forma en que se resuelven este tipo de operadores es la
siguiente:

Resultado = Expresión1 Operador Expresión2

Expresión1 y Expresión2 pueden ser cualquier tipo de expresiones comparables


entre sí. El resultado será siempre lógico (True, False), o nulo (Null).

46 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas PRIMER BIMESTRE

Algunos ejemplos del uso de estos operadores son:

“A” = “B” retorna False


1 > 0.5 retorna True
2 >= 2 retorna True
“S” < “s” retorna True

En el caso de los datos de tipo cadena, tome en cuenta que las letras
mayúsculas, para efectos de comparación para efectos de comparación, tienen un
valor en código ASCII menor a las minúsculas, y por tanto, son menores. Siendo
así, la “A” es menor que la “ a”, pero “z” es mayor a “A”.

2.4.3. Operadores Lógicos o Booleanos

Los operadores lógicos son aquellos que sirven para unir o negar condiciones,
produciendo un valor lógico. Combinan sus operandos (proposiciones simples
o compuestas) de acuerdo con las reglas del Álgebra de Boole. El objetivo es
producir un nuevo valor (FALSO o VERDADERO) que se convierta en el valor de
la expresión. Las condiciones para control de flujo son expresiones de este tipo.

La Tabla 8 describe los operadores booleanos más utilizados con la respectiva


expresión lógica.

Tabla 8. Operadores Booleanos

Exp. Lógica
Nombre Operador Comportamiento
simbólica
Negación Not Niega el resultado de una condición. Revierte el valor; ¬
si la condición que afecta es True producirá False, y
viceversa.
Disyunción And Cuando de entre dos condiciones, las dos deben ser ^
True para que en su conjunto la expresión sea True.
Conjunción Or Cuando de entre dos condiciones, al menos una debe v
ser True para que en su conjunto la expresión sea True.
Fuente: Mancilla, (2014)
Elaboración: Cabrera, M.; Tenesaca, G., (2018)

47 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas PRIMER BIMESTRE

2.4.4. Operador de Asignación

El operador de asignación es el que permite asignar un valor a una variable. El


operador clásico de asignación es el signo de igual ( =).

Variable = Valor

Donde “Variable” es una variable y Valor, una expresión válida para el tipo de
dato de Variable. Desde el punto de vista de la lógica simbólica, la asignación se
representa con el símbolo “←”, que indica que una expresión pasa a una variable.
La Tabla 9 muestra los símbolos del operador de asignación y la expresión lógica
simbólica.

Tabla 9. Operadores de Asignación

Nombre Operador Comportamiento Exp. Lógica simbólica


Asignación ← Almacena valores en una variable Variable ← Expresión
Asignación = Almacena valores en una variable Variable = Expresión
Fuente: Mancilla, (2014)
Elaboración: Cabrera, M.; Tenesaca, G., (2018)

Para el análisis de operadores booleanos y asignación se requiere conocer la


prioridad que debe existir en desarrollar cada término de una expresión, por ello,
es importante revisar la siguiente temática, reglas de precedencia.

2.4.5. Reglas de precedencia

Podemos definir a la precedencia como la característica de una expresión


compuesta de resolverse con anterioridad a otras expresiones. Existen los
siguientes tipos de precedencia: implícita, posicional y explícita.

48 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas PRIMER BIMESTRE

Precedencia implícita

La precedencia implícita es aquella inherente a los operadores y la categoría a la


que pertenecen.

• La precedencia implícita por categoría: se presenta cuando hay


expresiones que contienen operadores de más de una categoría
(aritméticos, comparativos y lógicos). Por regla general se resuelven
antes las expresiones que involucran operadores aritméticos, a
continuación se resuelven las expresiones que involucran operadores
de comparación y por último se resuelven las expresiones que
involucran operadores lógicos.

• La precedencia implícita por operador: La precedencia implícita por


operador es la que tiene un operador respecto a los operadores de su
misma categoría. En el caso de los operadores de comparación, todos
tienen la misma precedencia implícita por operador. Los operadores
aritméticos se evalúan en el siguiente orden de prioridad, que a
continuación la Tabla 10 presenta.

Tabla 10. Orden de prioridad de Operadores Aritméticos y Lógicos

Aritméticos Lógicos
Exponenciación Not
Multiplicación And
División Or
Adición y substracción Negatividad
Fuente: Mancilla, (2014)
Elaboración: Cabrera, M.; Tenesaca, G., (2018)

En los temas anteriores estudiamos los tipos de precedencia, ¡Ahora! Lo


invitamos a revisar el ejemplo 2.1 con el fin de ampliar su aprendizaje de forma
práctica.

49 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas PRIMER BIMESTRE

Ejemplo 2.1 Resuelva el siguiente problema aplicando operadores aritméticos

Imagine que se quiere comprar dos productos, uno por 200 pesos y otro de 500
pesos, a los cuales habrá que aplicarles el 15% de impuestos. Vea como se
resolvería la siguiente expresión compuesta.

Tabla 11. Solución del problema

Expresión Solución
200+500*1 + 0,15 Se resuelve primero las expresiones que involucran la multiplicación
200 + 500 + 0,15 Luego se resuelve las sumas, en orden de izquierda a derecha
700 + 0,15
700,15 Expresión resuelta
Fuente: Mancilla, (2014)
Elaboración: Cabrera, M.; Tenesaca, G., (2018)

El ejemplo anterior demuestra como la procedencia de los operadores nos puede


llevar a errores de cálculo difíciles de detectar. Lo que realmente queríamos era
sumar el precio de los productos y multiplicar por 1.15, cosa que no sucedió.

Considerar que para el desarrollo de una expresión también


se analiza el tipo de precedencia basado en la posición
que se encuentre el operador (de izquierda a derecha) y se
debe tomar en cuenta para la resolución de los ejercicios.
Revisemos ahora la siguiente regla de precedencia
posicional.

Se puede ayudar en el texto básico en la sección 2.4


Operadores, que se encuentran en las páginas 42 hasta la
página 49.

50 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas PRIMER BIMESTRE

Precedencia posicional

La precedencia posicional se presenta cuando se tienen varias expresiones que


involucran operadores de la misma precedencia implícita, y consisten en que se
resuelven expresiones de izquierda a derecha.

El ejemplo anterior ilustró precedencia posicional, dado que al encontrarse puras


sumas (operadores de igual procedencia) se resolvieron en orden de izquierda a
derecha.

Precedencia explícita

La precedencia explícita es aquella que se provoca mediante el uso de paréntesis.


Aquella que se encierra en paréntesis en una expresión es obligada a resolverse
sin respetar otras reglas de precedencia respecto a lo que está afuera de los
paréntesis, sin embargo, lo que está entre paréntesis sigue sujeto a las reglas de
precedencia implícitas y posicionales.

Veamos cómo podríamos resolver el ejemplo que dio resultados incorrectos.

Ejemplo: Imagine que se quiere comprar dos productos, uno por 200 pesos y otro
de 500 pesos, a los cuales habrá que aplicarles el 15% de impuestos. Vea como
se resolvería la siguiente expresión compuesta.

Tabla 12. Solución del problema

Expresión Solución
(200 + 500) * (1 + 0,15) Se resuelve primero las expresiones que se encuentren
700* (1 + 0,15) entre paréntesis. Como son sumas, se resuelven atendiendo
precedencia posicional
(700)* 1,15 Finalmente queda la multiplicación que realmente
pretendemos
805 Expresión resuelta
Fuente: Mancilla, (2014)
Elaboración: Cabrera, M.; Tenesaca, G., (2018)

51 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas PRIMER BIMESTRE

NOTA: No olvide que por más larga que parezca una expresión, todos los
operadores actúan sobre dos expresiones, y de dos en dos, hasta dejar un solo
valor final.

A continuación. Los ejemplo 2.2 y 2.3 resuelto le indica el desarrollo de las


expresión mediante el uso de las precedencias.

Ejemplo 2.2 Resuelva el siguiente problema aplicando operadores aritméticos

2+25*1+12/1

Tabla 13. Solución del problema

Expresión Solución
2+ 25*1 + 12/1 Se resuelve primero las expresiones que tiene prioridad como la
multiplicación y luego la división.
2 + 25*1 + 12/1 Se realiza la multiplicación
2 + 25 + 12/1
2 + 25 + 12/1 Se realiza la división
2 + 25 + 12
2 + 25 + 12 Finalmente queda la suma que realmente pretendemos
39 Expresión resuelta
Fuente: Mancilla, (2014)
Elaboración: Cabrera, M.; Tenesaca, G., (2018)

Ejemplo 2.3 Resuelva el siguiente problema aplicando operadores aritméticos,


booleanos.

((“A” = ”aA”) or (2 * 5 * 40 < 40) and (1^2 = 2 * 1))

52 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas PRIMER BIMESTRE

Tabla 14. Solución del problema

Expresión Solución
((“A”=”aA”) or (2*5*40<40) and (1^2=2*1)) Se resuelve primero las expresiones que

tiene prioridad como la multiplicación.


((“A”=”aA”) or (400 < 40) and (1^2=2)) Se realiza la multiplicación, se resuelve la
potencia
((“A”=”aA”) or (400 < 40) and (1=2)) Se resuelve el contenido de paréntesis
((“A”=”aA”) or (400 < 40) and (1=2)) Se resuelve los valores booleanos,
F F F primer el operador or
Se resuelve los valores booleanos, el
F and F operador and Finalmente queda F or F
que realmente pretendemos
F Expresión resuelta
Fuente: Mancilla, (2014)
Elaboración: Cabrera, M.; Tenesaca, G., (2018)

¿Cómo le fue con los ejercicios propuestos?. Si todavía tiene inquietudes respecto
a la temática, a continuación lo invitamos a revisar los siguientes recursos de
apoyo que se enfocan en el uso de operaciones y reglas de precedencia.

Recursos de apoyo
Para fortalecer los conocimientos adquiridos se recomienda
revisar los siguientes recursos.
• http://purl.org/taw-sbc-utpl/algorithm/unit2/v1_operadores
• http://purl.org/taw-sbc-utpl/algorithm/unit2/v2_precedencia

Luego de revisar los recursos de apoyo, hemos aclarado las temáticas de


operadores y reglas de precedencia. Con el primer recurso nos queda más
claro que existen 3 tipos de operadores: aritméticos, relacionales y lógicos son
muy importantes para la programación.

Los operadores aritméticos (jerarquía de operaciones) son: suma(+), resta(-),


multiplicación(*), división(/) y potencia(^). Los operadores relacionales son:
mayor que (>), menor que(<), mayor o igual que(>=), menor igual que(<=),

53 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas PRIMER BIMESTRE

diferente(!=) e igual(==). Los operadores lógicos son: conjunción (AND),


disyunción (OR) y Negación (NOT), los tres operadores son muy importantes
para crear condiciones, denominados también operadores booleanos los
cuales van arrojar los resultados Verdadero o Falso es decir (1,0). En el
recurso se explica cómo funciona cada uno de estos operadores.

El segundo recurso, nos recuerda la importancia de conocer las operaciones


básicas de matemáticas ya que la programación está basada en gran parte en
las matemáticas puras, por ejemplo, realizar un programa para conocer cuánto
dinero le queda a una máquina de casino, aquí se requiere una operación
básica de suma y resta. Pero es importante recordar que existen 4 reglas al
programar expresiones matemáticas que son: i) Una expresiones van en una
sola línea, ii) La computadora resuelve en orden jerárquico. ¡Recuerde! que
primero se resuelve la potencia, luego multiplicación y división, tercero suma y
resta, en el ejemplo muestra un ejemplo de este caso de orden jerárquico. iii)
En caso de querer establecer otro orden se utiliza paréntesis. iv) Si hay varios
paréntesis se resuelve primero lo más interno, es decir, si tiene paréntesis
anidado debe resolver el que está más interno de la expresión tomando en
cuenta el orden jerárquico matemático. En los recursos de apoyo se plantean
algunos ejercicios, si desea reforzar lo aprendido puede resolverlos. ¡Adelante!

Ahora bien, continuemos con la siguiente temática: Expresiones.

2.5. Expresiones

Estimado estudiante, para comprender de mejor manera


la presente temática revisar previamente la sección 2.5
Expresiones, en el Capítulo 2 del texto básico.

Una vez revisados los contenidos propuestos en el texto básico, vamos a reforzar
los conocimientos adquiridos en el uso de expresiones. A continuación se
presenta la definición de expresión:

54 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas PRIMER BIMESTRE

Una expresión es una relación entre variables y operadores relacionales,


aritméticos y/o lógicos.

Así también las expresiones están clasificadas en: aritméticas, relacionales y


lógicas como se detalla en la siguiente Figura 13.

Figura 13. Tipos de expresiones


Fuente: Mancilla, (2014)
Elaboración: Cabrera, M.; Tenesaca, G., (2018)

Para la creación de cada uno de los diferentes tipos de expresiones se utilizan


operadores tanto matemáticos como lógicos, los mismos que se presentan en la
Tabla 15.

55 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas PRIMER BIMESTRE

Tabla 15. Operadores matemáticos y lógicos

Operadores matemáticos Operadores lógicos


+ Suma or (˅) o
- Resta and (˄) y
* Producto ~ negación
/ División (DIV) > mayor que
% Residuo (MOD) < menor que
⊂ Subconjunto = igual
⊆ Subconjunto o igual ≥ mayor o igual que
^ Potenciación ≤ menor o igual que
() Paréntesis ≠ diferente
[] Corchetes ↔ si y solo si
{} Llaves → si entonces

Se debe considerar que para resolver una expresión se necesita conocer el


orden de precedencia de los operadores aritméticos y lógicos que la conforman.
En la Tabla 10 de la sección 2.4.5 se detallan las reglas de precedencia por
cada operador de manera general. A continuación, lo invitamos a revisar el
siguiente ejemplo propuesto que le permitirá poner en práctica lo aprendido sobre
expresiones.

Ejemplo 2.4 Resolver la siguiente expresión:

~ (“casa” = “caza” ˅ (20 * 30 * 50 > 10 * 40) ^ (30^2 > 15^4))


→ ~ (“casa” = “caza” ˅ (20 * 30 * 50 > 10 * 40) ^ (30^2 > 15^4))
→ ~ (“casa” = “caza” ˅ (600 * 50 > 10 * 40) ^ (30^2 > 15^4))
→ ~ (“casa” = “caza” ˅ (30000 > 10 * 40) ^ (30^2 > 15^4))
→ ~ (“casa” = “caza” ˅ (30000 > 400) ^ (30^2 > 15^4))
→ ~ (“casa” = “caza” v (True) ^ (30^2 > 15^4))
→ ~ (“casa” = “caza” ˅ (True) ^ (900 > 15^4))
→ ~ (“casa” = “caza” ˅ (True) ^ (900 > 50625))
→ ~ (“casa” = “caza” ˅ (True) ^ (False))
→ ~ (“casa” = “caza” ˅ False)
→ ~ (False ˅ False)
→ ~ (False)
True
56 MODALIDAD ABIERTA Y A DISTANCIA
Guía Didáctica: Algoritmos y Resolución de Problemas PRIMER BIMESTRE

Como se observa en el desarrollo del ejercicio anterior, se considera la


precedencia de cada operado para ir resolviendo paso a paso la expresión dada
hasta llegar a su mayor simplificación.

Para fortalecer la temáticas de operadores y expresiones lo invitamos a realizar


los siguientes ejercicios propuestos.

Ejercicios propuestos
Para a = 3, b = 2 y c = 7, resolver lo siguiente:
• ( a + b) / (b *( c/3)) > (b (a * c))
• ((a > b) v (a < c)) ˄ ((a = c) v (a > = b))

Para revisar la resolución de los ejercicios propuestos


ingresar al siguiente enlace. http://purl.org/taw-sbc-utpl/
algorithm/unit2/solutions

¿Qué le pareció la temática sobre expresiones? Ahora bien, para reforzar su


aprendizaje es conveniente estudiar la sección 2.5 - Expresiones del texto básico.
Esto nos ayudará a comprender de mejor manera el siguiente tema de estudio:
variables y tipos de datos.

2.6. Variables y tipos predefinidos

En la presente sección se estudia los fundamentos en la creación de variables.


Además, se explica los tipos de datos y dominios con los que se puede definir una
variable.

Para el inicio de la presente temática es importante que


revise la sección de Variables y tipos predefinidos del
Capítulo 2 del texto básico.

A continuación iniciamos esta sección con la definición de variables.

57 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas PRIMER BIMESTRE

2.6.1. Variables

Una variable es un conjunto de bytes en la memoria, referenciada por un


nombre donde se almacena el valor correspondiente a un dato de un tipo de
dato específico.

El valor de una variable puede ser modificado en cualquier momento, bien por una
asignación directa o bien como resultado de alguna expresión.

Figura 14. Definición de variables


Fuente: Mancilla, (2014)
Elaboración: Cabrera, M.; Tenesaca, G., (2018)

Una variable correctamente definida requiere:

• Nombre
• Tipo de dato y dominio: numérico, carácter, cadena de caracteres o
booleano.
• Un valor inicia (opcional)

Reglas para definir el nombre de una variable

Se debe considerar las siguientes reglas para definir correctamente el nombre de


una variable:

• Siempre iniciar con una letra.


• Se recomienda que debe componerse de letras y números.

58 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas PRIMER BIMESTRE

• No contener espacios en blanco ni caracteres generales (incluyendo


letras acentuadas y signos regionales) a excepción del guión bajo ( _ ).
• No mayor a 32 caracteres.
• Deben ser representativos del valor que almacena. Por ejemplo, si se
quiere almacenar el área de un cuadrado, la variable sería: area.

Recuerde:
Cuando una variable se ha declarado de un cierto tipo de dato,
solamente puede asignársele datos del mismo tipo.

A continuación presentamos algunos ejemplos que le ayudarán a representar un


problema dado a través de variables.

Ejemplo 2.5 Representar la nota del primer parcial de un estudiante

Tabla 16. Definición de variables

Variables correctas Variables incorrectas


nota1parcial 1notaparcial
notaPrimerParcial nota-primerparcial
nota_primerparcial n1p
nota_1p nota del primer parcialdelestudiante

¿Con lo aprendido, considera ya está en la capacidad de definir ¿qué es una


variable?. Si tiene aún alguna duda le sugiero revisar la sección 2.3.1 – Variables,
del texto básico.

Una vez que tenemos claro cómo definir una variable, podemos continuar con la
siguiente temática: naturaleza de los datos.

2.6.2. Naturaleza de los datos

La naturaleza de los datos nos hace referencia a los tipos de valores que se
pueden asignar a una variable. Para esto debemos considerar las siguientes
propiedades de los datos:

59 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas PRIMER BIMESTRE

• Tipo de dato: Permite a una variable almacenar una determinada


naturaleza de dato.
• Dominio: Es el conjunto de valores válidos que es posible que el dato
adquiera. El dominio evita el ingreso de datos equivocados.
• Opcionalidad: Es la necesidad que se tiene que una variable tenga
valor.
• Valor: Es el valor que se le asigna a una variable.

A continuación vamos a revisar los diferentes tipos de datos que se utilizan en la


definición de variables.

Tipos de datos

Los tipos de datos son clasificados en tres grandes grupos: numéricos, cadena
y lógicos. En la siguiente Figura 15 observamos los diferentes tipos de datos por
cada grupo y un ejemplo por cada uno de ellos.

Figura 15. Tipos de datos


Fuente: Mancilla, (2014)
Elaboración: Cabrera, M.; Tenesaca, G., (2018)

Datos numéricos: Este tipo de dato pertenece al conjunto de los números, y son
de longitud fija. Los datos numéricos son: Enteros y Reales.

Datos cadena: Los datos del tipo carácter están contenidos en el conjunto finito
de caracteres: alfabéticos, numéricos y especiales. Y por otro lado, los datos tipo
cadena de caracteres son sucesiones de caracteres con longitud finita y variable.

60 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas PRIMER BIMESTRE

Datos lógicos: Los datos tipo lógico pueden tomar uno de los dos valores
booleanos: VERDADERO (true) o FALSO (false). La correspondencia binaria para
estos dos valores es: 1 para VERDADERO y 0 para FALSO.

Tipos predefinidos

Cada uno de los lenguajes de programación tienen tipo de datos predefinidos para
ser usados por los desarrolladores. En la Tabla 17 podemos observar los tipos
predefinidos más utilizados en los lenguajes de programación C++ y Java.

Tabla 17. Operadores matemáticos y lógicos

Tipos de datos C++ Java


Byte short byte
Entero int int
long long
Real float float
double double
Cadena char char
string String
Booleano bool boolean

Para el estudio de la presente asignatura, vamos a utilizar la simbología que


se describe en la Tabla 18. Esta simbología nos permitirá representar los tipos
de datos que utilizaremos en la definición de variables a nivel de algoritmos y
miniespecificaciones.

Tabla 18. Simbología para representar tipos de datos

Tipos de datos Símbolo Abstracto


Byte b
Entero i
Real d
Cadena x(n) Dónde n es la longitud en caracteres de la cadena.
Booleano l
Fecha f

61 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas PRIMER BIMESTRE

Una vez aprendidos los diferentes tipos de datos, a continuación se presentan los
dominios de lo datos que puede tomar un tipo de dato asociado a una variable.

Dominio de los datos

En el desarrollo de algoritmos, el dominio de los datos es el conjunto de


valores válidos para un dato. La definición del dominio de datos para una
variable evita el ingreso de datos equivocados.

Podemos especificar los dominios considerando tres aspectos importantes: tipo,


regla de negocios y relación con otros datos como podemos observar en la Figura
16.

Figura 16. Tipo de dominios


Fuente: Mancilla, (2014)
Elaboración: Cabrera, M.; Tenesaca, G., (2018)

Si aún tenemos dudas sobre esta temática, lo invitamos a revisar la sección 2.3 –
Variables y tipos predefinidos del texto básico. Y para reforzar lo aprendido vamos
a realizar los siguientes ejercicios.

62 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas PRIMER BIMESTRE

Declaraciones de variables, tipo de dato y dominio

Para declarar una variable se debe considerar: el nombre de la variable, tipo de


dato y dominio de dato.

<nombre_variable>, <tipoDato>[<dominio>]

A continuación presentamos algunos ejemplos de declaración de variables con su


tipo de dato y dominio en base a un problema dato.

Ejemplo 2.6 Declarar una variable para determinar el sueldo mensual de una
persona.

Declaración en Miniespecificación
sueldo_mensual, d[1 - n]
sueldoMensual, d[1 - n]

Ejemplo 2.7 Declara una variable para almacenar la siguiente información, “El
usuario ha sido registrado”.

Declaración en Miniespecificación
informacion, x(50)

Ejemplo 2.8 Declara una variable que permita almacenar una clave compuesta
por 6 letras y 4 números.

Declaración en Miniespecificación
clave, x(10) [6{A-Z}, 4{0-9}]

Para fortaleces esta temática, ahora lo invitamos a revisar los siguientes recursos
de apoyo sobre: ¿qué es una variable?, su representación y uso.

63 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas PRIMER BIMESTRE

Recursos de apoyo
Para fortalecer los conocimientos adquiridos se recomienda
revisar los siguientes recursos audiovisuales.
• http://purl.org/taw-sbc-utpl/algorithm/unit2/v3_variables
• http://purl.org/taw-sbc-utpl/algorithm/unit2/v4_variables

¿Qué le parecieron los recursos de apoyos?. Esperamos hayan servido para


aclarar las dudas pendientes. Ahora bien, con la revisión del recurso de apoyo
ya estamos en la capacidad de responder a la pregunta ¿Para qué me sirve
una variable?. Como revisamos en los recursos de apoyo, las variables sirven
para identificar una datos específico que ha sido o será almacenado en la
memoria del computador.

Por ejemplo, llevando esto a la vida real, supongamos que queremos guardar
en la refrigeradora leche, debemos primero buscar un recipiente que permita
realizar esta acción, y debe ajustarse a los requerimientos de lo que se desea
almacenar. Un requerimiento sería que el recipiente no debe tener agujeros,
o sino la leche se derramaría. Una vez encontrado el recipiente idóneo,
almacenamos la leche y cuando necesitemos la leche accedemos al lugar
donde fue guardada dentro de la refrigeradora. Haciendo una equivalencia,
podemos decir que en este ejemplo la variable es el recipiente, la leche es el
valor que almacenamos y la refrigeradora es la memoria de la computadora
donde almacenamos cada variable. ¡Mucho más claro, verdad!.

Felicidades!!, se ha concluido con la segunda unidad. Ahora se puede medir lo


aprendido con la siguiente autoevaluación.

64 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas PRIMER BIMESTRE

Autoevaluación 2

Responda las siguientes preguntas de opción múltiple y seleccione la respuesta


correcta para cada una de ellas.

1. Corresponden a un carácter del sistema hexadecimal van desde (016) al (F16)

a. Bit
b. Double Word
c. Nibble

2. Se desea almacenar el costo de un producto, ¿qué tipo de dato se debe


usar, tomando en cuenta el contexto que se presenta?

a. Byte
b. Decimal
c. Entero

3. ¿Cuál de las siguientes expresiones retorna un valor igual a True?

a. “C” = “c”
b. 7 >= 7
c. 4+5=9-1

4. ¿Qué dominio es el correcto para almacenar los datos referentes a la edad


de una persona?

a. b[0-110]
b. b[0-10]
c. b[18-100]

65 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas PRIMER BIMESTRE

5. La precedencia que se provoca mediante el uso de paréntesis, se conoce


como:

a. Posicional
b. Implícita
c. Explícita

6. Tenemos la siguiente expresión: (a - b < 3 - c) and (c * 1 == a - b)

Donde a = 2 , b = 4 , c = 6. Determine el valor resultante.


a. Verdadero
b. Falso
c. Nulo

7. Los nombres de variables deben cumplir algunas reglas, del siguiente


listado, indique cuales pertenecen a estas reglas:

1. Siempre iniciar con letra


2. Puede contener caracteres especiales
3. Contener espacio y caracteres especiales opcionalmente
4. Puede contener vocales tildadas
5. Máximo 32 caracteres de longitud
6. Representativo al valor que guarda.

a. 1,5,6
b. 1,2,5,6
c. 1,4,5

8. Seleccione la representación abstracta de dominio para una clave formada


por una letra “Z” y 5 números. Ningún número puede ser 0

a. X(6) [1 {Z}, 5 {0-9}]


b. X(6) [1 {A-Z}, 5 {1-9}]
c. X(6) [1 {Z}, 5 {1-9}]

66 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas PRIMER BIMESTRE

9. ¿Cuál de las siguientes opciones no describe el tipo de dato de una


variable?

a. Los valores que puede contener ésta


b. Qué operaciones pueden realizarse con ella
c. El ámbito de la misma

10. Si
costoProducto y precioProducto son variables numéricas y


nombreProducto es una variable cadena. ¿Cuál de las siguientes
declaraciones no es válida?

a. costoProducto = 100
b. precioProducto = “24.95”
c. costoProducto = precioProducto - 10

Estimado estudiante para comprobar sus respuesta puede


ir al solucionario que se encuentra al final de la guía. Si sus
respuestas han sido correctas, Felicidades!!. Y sino, no se
desanime!, puede revisar las temáticas nuevamente y volver
a contestar.

Hemos concluido la Unidad 2, sigamos avanzando en


nuestros conocimientos con la Unidad 3: Ciclo de desarrollo
y primitivas algorítmicas.

67 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas PRIMER BIMESTRE

UNIDAD 3. CICLO DE DESARROLLO Y PRIMITIVAS ALGORÍTMICAS

Nuestra mayor debilidad reside en rendirnos. La


forma más segura de tener éxito es intentarlo una
vez más.
Thomas A. Edison.

Estimado estudiante en la presente unidad se explica el


ciclo de desarrollo de un programa con todas sus fases y
lo que se realiza en cada una de ellas. También se revisa
las primitivas básicas lógicas, el diseño de algoritmos y
miniespecificaciones.

3.1. Ciclo de desarrollo de un programa

El ciclo de desarrollo de un programa esta compuesto por cuatro fases: Análisis,


diseño, codificación y pruebas e implementación. La Figura 17 presenta el ciclo de
desarrollo de un programa.

Figura 17. Ciclo de desarrollo de un programa


Fuente: Ramirez, (2017)
Elaboración: Cabrera, M.; Tenesaca, G., (2018)

68 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas PRIMER BIMESTRE

El desarrollo de cada una de estas fases debe responder a una pregunta y


obtener los entregables necesarios para dar solución al problema planteado. A
continuación describimos cada una de estas fases.

3.1.1. Fase de análisis

El análisis consiste en descomponer el todo en sus partes, con el fin de


comprender el problema.

En esta fase interviene el analista de sistemas y es el encargado de analizar


detalladamente el problema planteado para determinar las posibles soluciones y
levantar los requerimientos necesarios para resolver el mismo.

Esta fase es muy importante debido a que si el análisis esta equivocado,


las siguientes fases desarrollarán un diseño, codificación e implementación
equivocado y que no cumpla con los requerimientos del cliente.

En la fase de análisis se debe responder la pregunta: ¿Qué quiere automatizar


el cliente?. Y el entregable principal en esta fase son los algoritmos.

En esta fase se tiene como objetivos realizar lo siguiente:

• Identificar claramente los requerimientos del cliente. Este objetivo


consiste en conocer y documentar lo que el cliente espera del
programa a desarrollar.

• Identificar y definir el alcance del programa. Consiste en determinar


las unidades de funcionalidades suficientes y necesarias para cubrir las
necesidades del cliente. Las funcionalidades deben tener:

♦♦ Un identificador.
♦♦ Una prioridad.
♦♦ Una obligatoriedad.

69 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas PRIMER BIMESTRE

• Determinar la interfaz y el comportamiento del programa. La


interfaz es el medio por el cual el usuario y la aplicación se comunican.
La interfaz debe tener las siguientes características:

♦♦ Sencilla de entender.
♦♦ De uso intuitivo.
♦♦ Diseñada bajo estándares.
♦♦ Validar los dominios.
♦♦ Tener una secuencia lógica de sus elementos.
♦♦ Preguntar la cantidad mínima, suficiente y necesaria para el
procesamiento o almacenamiento.

3.1.2. Fase de diseño

La fase de diseño es la segunda más importante en el ciclo de desarrollo de un


programa. Tiene por objetivo traducir técnicamente los requerimientos del cliente
obtenidos en la fase de análisis a una forma abstracta y estandarizada.

El resultado de la fase de análisis es el diseño de miniespecificaciones, diagramas


de flujo y pruebas de escritorio. Estos entregables servirán como materia prima
para la fase de codificación.

Algo importante en esta fase es que no se deben modificar los requerimientos del
cliente, ni agregar ni eliminar los requerimientos.

En la fase de diseño se debe responder a la siguiente pregunta: ¿Cómo se


puede automatizar lo que quiere el cliente?.

70 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas PRIMER BIMESTRE

3.1.3. Fase de codificación

La fase de codificación consiste en codificar bajo un lenguaje de programación


los documentos obtenidos la fase de diseño. Hay un sin número de lenguajes de
programación disponibles. El lenguaje de programación puede ser un requisito del
cliente o una sugerencia del equipo de desarrollo. En esta fase se debe responder
a la siguiente preguntas: ¿Cómo se representa las especificaciones de diseño
en un lenguaje de programación?. El entregable en esta fase es el código
fuente.

Para tener una perspectiva de los lenguajes de programación más utilizados, lo


invitamos a revisar los siguientes recursos de apoyo que presentan un ranking
actual de los lenguajes de programación.

Recursos de apoyo
En los siguientes enlaces se presentan un ranking de los lenguajes de
programación:
• http://purl.org/taw-sbc-utpl/algorithm/unit2/programmingLanguages1
• http://purl.org/taw-sbc-utpl/algorithm/unit2/programmingLanguages2

Luego de haber revisado los recursos de apoyo, ahora ya conocemos cuales


son los lenguajes de programación más utilizados a nivel mundial. Estos
lenguajes son: Python, Java, C y C++ ubicados en los primeros puestos.
Ahora bien, en el transcurso de la asignatura y la carrera se enseñaran varios
de estos lenguajes de programación, pero no debe ser una limitante para
aprender nuevos lenguajes que les permitan ampliar su perfil profesional.

71 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas PRIMER BIMESTRE

3.1.4. Fase de pruebas e implementación

La fase de pruebas es fundamental para el éxito del ciclo de desarrollo. En esta


fase se realiza la verificación de que el programa desarrollado cumpla con los
requisitos planteados en la fase de análisis y las especificaciones de diseño.

Cuando un el programa no cumple con las especificaciones, se habla de un


error lógico, es decir, que los resultados del programa no son los deseados. Aquí
interviene un nuevo proceso, la depuración. La depuración ayuda a probar un
programa sobre varios conjuntos de datos para de esta forma encontrar y corregir
los errores presentados.

La fase de pruebas está a cargo generalmente del equipo de calidad de la


empresa. Ellos son los que dan el visto bueno y aprobación del programa y se
hacen la siguiente pregunta: ¿Los programas cumplen a la perfección las
especificaciones de diseño?.

Recuerde:
Un programa que no tiene errores de sintaxis no necesariamente
está libre de errores lógicos.

La fase de implementación inicia una vez que se haya probado y depurado


detalladamente el programa y aprobado por el equipo de control de calidad. Esta
fase también se llama “puesta en producción” que significa poner el programa ya
a disposición de usuario final.

En el caso que existan nuevos requerimiento interviene la fase de mantenimiento


del programa. En esta fase se realizan los nuevos cambios solicitados. Cuando se
realizan estos cambios a los programas existentes se repite el ciclo de desarrollo.
Esto significa que los cambios involucran: análisis, diseño, codificación, pruebas e
implementación.

Recuerde:
Si el programa original requiere una cantidad considerable de
modificaciones, es recomendable dar de baja el programa y
empezar el ciclo de desarrollo para uno nuevo.

72 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas PRIMER BIMESTRE

Para revisar con mayor profundidad 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, es recomendable revisar los apartados del capítulo 6
del recurso bibliográfico complementario (Ramírez, 2007)

Una vez comprendida cada una de las fases, a continuación iniciamos la temática
de primitivas algorítmicas.

3.2. Primitivas algorítmicas

La presente sección se enfoca al estudio de las primitivas algorítmicas para el


desarrollo de algoritmos y miniespecificaciones como los entregables de la fase
de análisis y diseño del ciclo de desarrollo de programas.

Estimado estudiante, previo al inicio de la presente unidad,


es importante que revise los contenidos del Capítulo 3:
Primitivas Algorítmicas del texto básico.

La lógica de la programación esta compuesta por un conjunto de estructuras


lógicas de control algorítmico que desempeñan funciones básicas de entrada,
asignación, proceso y salida en la resolución de problemas. Éstas estructuras
lógicas son conocidas como primitivas algorítmicas.

Una primitiva lógica para la construcción de algoritmos es una instrucción


lógica que permite la ejecución de una o varias acciones en el computador.
Acciones que, a su vez, pueden ser otras primitivas lógicas y que en un
momento dado son codificadas y reciben el nombre de instrucciones de un
lenguaje de programación.

Los algoritmos están conformados por un conjunto de primitivas. Para explicar


estas primitivas se realiza el siguiente ejercicio:

73 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas PRIMER BIMESTRE

Ejemplo 3.1: Calcular el área de un triángulo.

Análisis:

b h
El área de un triángulo (AT) se define por la expresión matemática AT= *
2
donde b es la base del triángulo y h su altura. Para calcular la expresión AT, se
requiere necesariamente de su base y altura.

El siguiente paso es identificar las entradas, el proceso y la salida, como se


muestra en la Figura 18.

Figura 18. Entrada, proceso y salida de un programa


Elaboración: Cabrera, M.; Tenesaca, G., (2018)

A continuación se explica cada una de las primitivas básicas en base al ejercicio


planteado.

Primitivas de inicio y fin: Son las primitivas que delimitan el inicio y fin de
un algoritmo. A continuación se puede observar su representación a nivel de
algoritmo y diagrama de flujo.

74 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas PRIMER BIMESTRE

Algoritmo Diagrama de flujo


Inicio
Decimal: AT, b, h
Leer b
Leer h
b*h
Calcular el área: AT=
2

Escribir “El área es:”, AT


Fin

Primitivas de entrada: Son las primitivas de lectura o entrada de datos. Se


identifican por acciones de lectura (Leer) de datos que ingresan al computador
sobre una o un conjunto de variables, como se observa a continuación.

Algoritmo Diagrama de flujo


Inicio
Decimal: AT, b, h
Leer b
Leer h
b*h
Calcular el área: AT=
2

Escribir “El área es:”, AT


Fin

75 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas PRIMER BIMESTRE

Primitivas de asignación: Son las estructuras lógicas primitivas representadas


por las asignaciones de valores. Estos valores pueden ser de inicialización o
como resultado de la operaciones lógicas y aritméticas dentro del proceso.

Para realizar la asignación de valores tanto en algoritmos y miniespecificaciones


el símbolo (=) es sustituido por (←).

b h b*h
AT= * AT
2 2

Esta asignación se puede observar en el siguiente algoritmo y diagrama de flujo.

Algoritmo Diagrama de flujo


Inicio
Decimal: AT, b, h
Leer b
Leer h
b*h
Calcular el área: AT
2

Escribir “El área es:”, AT


Fin

Primitiva de salida: Son las primitivas de salida de datos representadas por


las variables que contienen los resultados de las operaciones de asignación.
Se identifican por las acciones de escritura (Escritura) como se muestra a
continuación.

76 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas PRIMER BIMESTRE

Algoritmo Diagrama de flujo


Inicio
Decimal: AT, b, h
Leer b
Leer h
Calcular el área: AT = (b *
h)/2
Escribir “El área es:”, AT

Fin

Una vez comprendidas las primitivas básicas, ingresar al siguiente recurso para
revisar la codificación del ejercicio propuesto con un lenguaje de programación.

Codificación
Ingresar al siguiente enlace para ver la codificación en un
lenguaje de programación del ejercicio propuesto:
http://purl.org/taw-sbc-utpl/algorithm/unit3/coding

3.3. Diseño de miniespecificaciones

Una miniespecificación es la representación abstracta y simbólica que muestra


de mejor manera las operaciones que un programa debe hacer con los datos.

La miniespecificación es el paso siguiente al desarrollo de algoritmos. Se la


considera además como una herramienta para la especificación sistemática
de procesos computacionales, sin dejar de ser entendible por humanos. Las
principales características de la miniespecificaciones son:

77 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas PRIMER BIMESTRE

• Debe tener un inicio y un fin.


• Debe tener líneas numeradas.
• Es independiente de los lenguajes de programación.
• Contiene un cuadro básico de instrucciones que pueden ser
representadas en cualquier lenguaje.
• Se describen mayormente con representaciones simbólicas.

Además una miniespecificación por lo general debe tener la siguiente estructura:


• Inicio.
• Declaración de variables: se coloca todas las variables a utilizar con su
tipo de dato y dominio.
• Inicialización de variables: se asigna el valor inicial a cada variable
dependiendo del problema a resolver.
• Entrada de datos: se realiza las peticiones de los datos de entrada.
• Proceso: se realiza todas las operaciones establecidas.
• Salida: se presenta los resultados obtenidos en el proceso.
• Fin.

Utilizando el ejemplo 3.1, a continuación se presentan los cambios que se realizan


al convertir un algoritmos a miniespecificación:
• Las declaraciones de los datos se transforman en declaraciones de
memoria.
• Se inicializa los datos declarados.

Algoritmo Miniespecificación
Inicio Inicio
//declaración de variables //declaración de variables
Decimal: AT, b, h AT, d[0 – n]
Leer b b, d [0 – n ]
Leer h h, d [0 – n ]
b*h //inicialización de variables
Calcular el área: AT
2
AT ← 0, b ← 0, h ← 0

Escribir “El área es:”, AT


Fin

78 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas PRIMER BIMESTRE

• Para el ingreso o lectura de datos se reemplaza Leer por dos símbolo


mayor que (>>).

Algoritmo Miniespecificación
Inicio Inicio
//declaración de variables //declaración de variables
Decimal: AT, b, h AT, d[0 – n]
//lectura de datos b, d [0 – n ]
Leer b h, d [0 – n ]
Leer h //inicialización de variables
b*h AT ← 0, b ← 0, h ← 0
Calcular el área: AT
2
//lectura de datos
>> b
Escribir “El área es:”, AT
>> h
Fin

• Los cálculos se transforma en asignaciones.

Algoritmo Miniespecificación
Inicio Inicio
//declaración de variables //declaración de variables
Decimal: AT, b, h AT, d[0 – n]
b, d [0 – n ]
//lectura de datos h, d [0 – n ]
Leer b //inicialización de variables
Leer h AT ← 0, b ← 0, h ← 0
//lectura de datos
//proceso >> b
b*h >> h
Calcular el área: AT
2
//proceso
b*h
Escribir “El área es:”, AT AT
2
Fin
Fin

79 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas PRIMER BIMESTRE

• Para la presentación o escritura de datos se reemplaza la palabra


Escribir por dos signos menor que (<<).

Algoritmo Miniespecificación
Inicio Inicio
//declaración de variables //declaración de variables
Decimal: AT, b, h AT, d[0 – n]
b, d [0 – n ]
//lectura de datos h, d [0 – n ]
Leer b //inicialización de variables
Leer h AT ← 0, b ← 0, h ← 0
//lectura de datos
//proceso >> b
b*h >> h
Calcular el área: AT
2
//proceso
b*h
//escritura de datos AT
2
Escribir “El área es:”, AT
//escritura de datos
Fin
<< “El área es:”, +AT
Fin

• Las decisiones se transforman en primitivas lógicas condicionales no


repetitivas. Ver unidad 4.

• Los cálculos reiterativos se transforman en primitivas lógicas


condicionales repetitivas. Ver unidad 5.

Recuerde:
Una aspecto importante en el diseño de algoritmos y
miniespecificaciones es la identación. Indentar significa dar
tabulaciones a la derecha conforme se lo requiera para ir
ordenando y agrupando cada línea en base a lógica diseñada. La
identación es utilizado para mejorar la legibilidad al momento de
leer y analizar un algoritmo, miniespecificación o código fuente.
Ejemplo:

80 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas PRIMER BIMESTRE

Código sin identar Código identado


Inicio Inicio
//declaración de variables //declaración de variables
AT, d[0 – n] AT, d[0 – n]
b, d [0 – n ] b, d [0 – n ]
h, d [0 – n ] h, d [0 – n ]
//inicialiación de variables //inicialización de variables
AT ← 0, b ← 0, h ← 0 AT ← 0, b ← 0, h ← 0
//lectura de datos //lectura de datos
>> b >> b
>> h >> h
//proceso //proceso
b*h b*h
AT AT
2 2
Si (AT > 20) entonces Si (AT > 20) entonces
//escritura de datos //escritura de datos
<< “El área es:”, +AT << “El área es:”, +AT
Fin_Si Fin_Si
Fin Fin

Para comprender de mejor manera el diseño de algoritmos y miniespecificaciones


se desarrolla el siguiente ejercicio.

Ejemplo 3.2: Calcular el puntaje total del examen de un estudiante.

Se requiere conocer el puntaje total del examen de un estudiante. Para esto,


se debe solicitar el número de respuestas correctas, incorrectas, en blanco y el
nombre del estudiante. Por cada respuesta correcta se le acreditará 4 puntos, por
respuesta incorrecta se le restara 1 punto y las respuestas en blanco tendrán una
valoración de 0 puntos. Presentar el nombre del estudiante y el puntaje total del
examen.

81 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas PRIMER BIMESTRE

Algoritmo Nro Miniespecificación


Inicio 1  Inicio
//declaración de variables 2 //declaración de variables
Cadena: nombre 3 nombre, x[40]
Entero: r_correctas, r_incorrectas, 4 r_correctas, i[0-n]
r_blanco 5 p_correctas, d[0-n]
Decimal: p_correctas, p_ 6 r_incorrectas, i[0-n]
incorrectas, p_total 7 p_incorrectas, d[0-n]
//lectura de datos 8 r_blanco, i[0-n]
Leer nombre 9 p_total, d [0-n]
Leer r_correctas 10 //inicialización de variables
Leer r_incorrectas 11 r_correctas ← 0
Leer r_blanco 12 r_incorrectas ← 0
//proceso 13 r_blanco ← 0
Calcular: p_correctas ← r_ 14 p_total ← 0
correctas * 4 15 //lectura de datos
Calcular: p_incorrectas ← r_ 16 << “Ingrese el nombre del estudiantes”
incorrectas*(-1) 17 >> nombre
Calcular: p_total ← p_correctas + 18 << “Ingrese el número de respuestas
p_incorrectas 19 correctas”
//salida de datos 20 >> r_correctas
Escribir nombre 21 << “Ingrese el número de respuestas
Escribir pTotal 22 incorrectas”
Fin
23 >> r_incorrectas
24 << “Ingrese el número de respuestas en
25 blanco”
26 >> r_blanco
27 //proceso
28 p_correctas ← r_correctas * 4
29 p_incorrectas ← r_incorrectas * (-1)
30 p_total ← p_correctas + p_incorrectas
31 //salida de datos
32 <<”El puntaje del estudiante”, +nombre,
33 “es:”,
34 +pTotal, “puntos”
35  Fin

82 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas PRIMER BIMESTRE

Algoritmo Nro Miniespecificación


Diagrama de flujo

En el ejercicio 3.2 podemos observar la transformación de algoritmo a


miniespecificación, y de miniespecificación a diagrama de flujo. Esto se realiza
en base a las directrices dadas en la presente sección. Es importante considerar
la fluidez del proceso al momento de dar solución al problema planteado. Por
ejemplo, la declaración e inicialización de variables se debe realizar previo a la
lectura de datos, al igual que el proceso de los datos se debe realizar previo a la
salida de datos.

A continuación puede encontrar la codificación del problema desarrollado

Codificación
Ingresar al siguiente enlace para ver la codificación en un
lenguaje de programación del ejercicio propuesto:
http://purl.org/taw-sbc-utpl/algorithm/unit3/coding

83 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas PRIMER BIMESTRE

3.4. Pruebas de escritorio

En la sección anterior se han desarrollado algoritmos utilizando


miniespecificaciones. Ahora bien, necesitamos comprobar si el algoritmo funciona
correctamente, en decir si hace lo que tiene que hacer. Para esto se utiliza
las pruebas de escritorio. Las pruebas de escritorio no son más que pruebas
manuales que permiten validar al detalle cada línea del algoritmo y si se diera el
caso permitirá saber en donde se encuentra el error para poder corregir.

Para realizar la prueba de escritorio se debe crear una tabla con todas las
variables del algoritmo. De esta forma se irá visualizando los cambios de valor
dentro de cada una de ellas.

A continuación presentamos la prueba de escritorio del ejercicio 3.2.

Variables
valo nombre r_correctas p_correctas r_incorrectas p_incorrectas r_blanco p_total
res 0 0 0 0 0 0
Juan 13 7 2
Ríos
52 -7 45

Salida: El puntaje total de Juan Ríos es 45 puntos

Para fortalecer esta sección es conveniente realizar los siguientes ejercicios


propuestos.
Ejercicios propuestos
Desarrolle el algoritmo, miniespecificación, diagrama de flujo y
prueba de escritorio de los siguiente problemas.
▪ Un estudiante desea obtener el promedio de sus notas. Para eso
se debe ingresar la nota de talleres, trabajos extraclase y examen
final. Identificar dentro del algoritmos las primitivas de entrada,
asignación y salida.
▪ Se requiere leer un número de tres cifras y presentar el número
de unidades, decenas y centenas que éste tiene.

84 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas PRIMER BIMESTRE

Para revisar la resolución de los ejercicios propuestos


ingresar al siguiente enlace. http://purl.org/taw-sbc-utpl/
algorithm/unit3/solutions

Si todavía tiene inquietudes respecto a la temática, a continuación lo invitamos a


revisar los siguientes recursos de apoyo que da una explicación más amplia sobre
el diseño de miniespecificaciones.

Recursos de apoyo
Para comprender de mejor manera el diseño de
miniespecificaciones revisar el siguiente recurso:
• http://purl.org/taw-sbc-utpl/algorithm/unit3/v1_miniespecificacion

Luego de revisar el recurso de apoyo, ahora con mayor seguridad


estamos en la capacidad de responder preguntas como: ¿Qué es una
miniespecificación?, ¿Para qué me sirven las miniespecificaciones?, ¿Es lo
mismo la miniespecificación que un algoritmo?. Lo invitamos a responder estas
preguntas, sin olvidar que una miniespecificación, también conocida como
Pseudocódigo, es una representación abstracta y simbólica, que sin llegar
a la rigidez de la sintaxis de un lenguaje de programación ni a la fluidez del
lenguaje natural, permite codificar un programa o algoritmo con mayor agilidad.

Recuerde que es importante realizar las actividades


planteadas como interacción en el Entorno Virtual de
Aprendizaje. Recuerde que con ello además de afirmar sus
conocimientos obtendrá retroalimentación de sus tutores y
demás compañeros.

¿Ya realizó los ejercicios propuestos y reviso los recursos de apoyo? ¡Qué bien!.
Ahora, para medir la comprensión de las temáticas estudiadas, realice la siguiente
autoevaluación.

85 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas PRIMER BIMESTRE

Autoevaluación 3

Analice las siguientes preguntas de opción múltiple y seleccione la respuesta


correcta.

1. ¿Cuál es el orden correcto de las fases desarrollo de un programa?

a. Análisis, Codificación, Diseño, Pruebas e Implementación


b. Codificación, Análisis, Diseño, Pruebas e Implementación.
c. Análisis, Diseño, Codificación, Pruebas e Implementación

2. En el ciclo de desarrollo de un programa, la fase en la cual se analiza una


situación del mundo real, ¿a qué fase hace referencia?

a. Diseño
b. Pruebas e Implementación
c. Análisis

3. En el ciclo de desarrollo de un programa. ¿Cuál es la fase que se caracteriza


por ser importante para el cliente, más que para el desarrollador.?

a. Pruebas e Implementación
b. Codificación
c. Diseño

4. En el ciclo de desarrollo de un programa, cuál de las fases da respuesta a la


siguiente pregunta: ¿Cómo se puede automatizar lo que quiere el cliente?

a. Diseño
b. Codificación
c. Análisis

86 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas PRIMER BIMESTRE

5. ¿Cuál es el concepto apropiado para definir un algoritmo de programación?

a. Conjunto ordenado y finito de asignaciones, procesos, cálculos y


decisiones que permiten a un programa satisfacer una unidad de
funcionalidad dada.
b. Conjunto ordenado e infinito de asignaciones, procesos, cálculos
y decisiones que permiten a un programa satisfacer una unidad de
funcionalidad dada.
c. Conjunto sin ordenar y finito de asignaciones, procesos, cálculos y
decisiones que permiten a un programa satisfacer una unidad de
funcionalidad dada.

6. Si tenemos como entregable la aceptación del programa que hemos


realizado. ¿A qué fase del ciclo de desarrollo de un programa estamos
haciendo referencia?

a. Análisis
b. Diseño
c. Pruebas e Implementación

7. Se desea desarrollar un algoritmo para calcular el costo de un terreno


rectangular, cuyo valor se calcula multiplicando el área del terreno por el
valor del metro cuadrado más el 5% de este valor que corresponde al pago
de impuestos.

El algoritmo es el siguiente:

1. Inicio
2. Se solicita las dimensiones del terreno (largo y ancho)
3. Se calcula el área del terreno.
4. Se calcula el valor del terreno.
5. Se calcula el valor del impuesto.
6. Se calcular el total sumando el valor del terreno + el impuesto calculado
7. Fin.

87 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas PRIMER BIMESTRE

Evalúe el algoritmo y determine ¿qué información le falta para poder resolver


el problema?

a. El área del terreno.


b. El costo por metro cuadrado.
c. El valor del impuesto.

8. Se desea desarrollar un algoritmo que permita mostrar las tablas de restar


de un número, solo en el caso que el mismo esté entre 5 y 20. El algoritmo
debe presentar un mensaje en caso que no haya seleccionado un número
dentro del rango establecido. Seleccione la opción correcta para el caso
presentado:

a. 1) Inicio
2) Se pregunta la tabla del número que se desea
3) Si la tabla está entre 5 y 20, entonces se procede a imprimir la tabla
de restar indicada
4) Si la tabla no está en el rango, entonces se procede a mostrar un
mensaje de error en pantalla
5) Fin

b. 1) Inicio
2) Se pregunta la tabla del número que se desea
3) Si la tabla está entre 5 y 19, entonces se procede a imprimir la tabla
de restar indicada
4) Si la tabla no está en el rango, entonces se procede a mostrar un
mensaje de error en pantalla
5) Fin

c. 1) Inicio
2) Se pregunta la tabla del número que se desea
3) Si la tabla está entre 5 y 20, entonces se procede a mostrar un
mensaje de error en pantalla

88 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas PRIMER BIMESTRE

4) Si la tabla no está en el rango, entonces se procede a imprimir la


tabla de restar indicada
5) Fin

Estimado estudiante al final de la guía se encuentra


el solucionario para verificar las respuestas de la
autoevaluación. Si sus respuestas han sido correctas,
Felicidades!!. Si hemos fallado en alguna respuesta puede
reforzar sus conocimientos con los recursos de apoyo.

Con esto hemos terminado los contenidos del Primer


Bimestre. Lo invitamos a continuar con el mismo entusiasmo
de aprender en el Segundo Bimestre.

89 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas SEGUNDO BIMESTRE

SEGUNDO BIMESTRE

UNIDAD 4. ESTRUCTURAS LÓGICAS CONDICIONALES

Cree en ti mismo y en lo que eres. Se consciente


de que hay algo en tu interior que es más grande
que cualquier obstáculo.
-Christian D. Larson

Estimado estudiante ¿Estamos listos para continuar?


Muy bien, avancemos. Ahora, lo invitamos a insertarnos
en el estudio de este importante tema de Estructuras
lógicas condicionales en ellas aprenderemos a plantear
expresiones lógicas, para controlar la ejecución de una o
más instrucciones. El objetivo de la presente unidad es dar
a conocer el funcionamiento y utilidad de las estructuras
lógicas. La más clásica de las estructuras de decisión es la
condicional simple.

Las estructuras lógicas condicionales comparan el valor de una (algunas)


variable (s) contra el valor de otra (s) variable(s) para que en base al resultado de
esta comparación, se siga un curso de acción (instrucción) dentro del programa.
Cabe mencionar que la comparación se puede hacer contra otra variable o contra
una constante, según se necesite.

Para reforzar más su aprendizaje sobre estructuras condicionales lo invitamos a


estudiar el capítulo 3 en la sección 3.3 Estructura lógica condicional simple del
texto básico. Esto nos ayudará a comprender de mejor manera este tema.

90 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas SEGUNDO BIMESTRE

4.1. Estructura lógica condicional simple.

El condicional simple es aquella en la que solo especificamos el bloque de


código que deseamos que se ejecute, si la expresión lógica de la operación de
comparación resuelve por verdadero (True). En otras palabras, es una condición
que toma el control lógico que dependiendo de las respuestas de cumplimiento a
la condición sea verdadero se debe realizar la instrucción del caso. La siguiente
Figura muestra la estructura lógica condicional simple en sintaxis y diagrama de
flujo. Es fundamental revisar y diferenciar las estructuras de decisión, ya que son
la base para comprende las siguientes temáticas. ¡Sigamos adelante!.

Sintaxis: Diagrama de flujo


Si (expresión lógica) entonces
Parte del algoritmo a
ejecutar si la expresión es
verdadera (True)
Fin Si

Recuerde:
Cuando la condición lógica es verdadera (True) realiza la
ejecución de la instrucción.

Revisar el ejemplo 4.1 y el recurso de apoyo que le ayudarán a fortalecer el


aprendizaje en estructuras de control.

Ejemplo 4.1 Determinar que un número sea impar

Para el presente ejemplo se desarrolla la Miniespecificación, Algoritmo, Diagrama


de flujo y prueba de escritorio.

91 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas SEGUNDO BIMESTRE

Primero, Un número es impar si y solo si no es par, es decir si la división entre 2


es diferente de 0.

Nro Algoritmo Diagrama de flujo


1  Inicio
2 //declaración de variables
3 num, i[0 - n] //número a determinar
4 si es impar
5 //se ingresa el número para saber si
6 es impar
7 Leer num
Si
8 //calcula el factorial
9 Si (num %2≠0) entonces
10 Escriba “El número es impar”
11 Fin_Si
12  Fin

Miniespecificación

Nro Miniespecificación
1 Inicio
2 <<”Ingrese el número” //Leer el número en la variable entera
3 >>numero
4 Si (numero %2 ≠0) entonces //Condicional que verifica si el número dado es impar
5 //Instrucción o instrucción que se ejecuta si la condición es verdadera
6 <<"El número leído es impar", numero
7 Fin si //Cierre del condicional Si
8 Fin

92 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas SEGUNDO BIMESTRE

Prueba de escritorio

Variables
num Salida presentar
5 Número es impar
8
17 Número es impar
Valores
49 Número es impar
50
2
11 Número es impar

¿Cómo le fue con los ejercicios propuestos?. Si todavía tiene inquietudes respecto
a la temática, a continuación lo invitamos a revisar el siguiente recurso de apoyo.

Codificación
Ingresar al siguiente enlace para ver la codificación en un
lenguaje de programación del ejercicio propuesto:
http://purl.org/taw-sbc-utpl/algorithm/unit5/coding

Ahora bien, para reforzar su aprendizaje sobre estructuras lógicas condicionales


lo invitamos a estudiar la sección 3.3 – Estructura lógica condicional simple del
texto básico, que se encuentra en la página 67.

Continuamos con el tema de estructuras lógicas de condicionales compuesta,


por ello en sus apuntes ya puede anotar las diferencias entre las condicionales
simples estudiadas en el apartado anterior y la estructura condicional compuesta.

4.2. Estructura lógica condicional compuesta.

La condicional compuesta es aquella que, además de especificar el bloque


de código que deseamos se ejecute si la expresión lógica de la operación de
comparación resuelve por verdadero (True), especificamos también el bloque
de código que deseamos que se ejecute si la expresión lógica de la operación

93 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas SEGUNDO BIMESTRE

de comparación resuelve falso (False). La siguiente Figura muestra a detalle


la estructura sintáctica y el diagrama de flujo de esta estructura de control
compuesta.

Sintaxis: Diagrama de flujo


Si (expresión lógica) entonces
Parte del algoritmo a ejecutar si la expresión
<Condición> F
es verdadera (True)
De lo contrario V
< Instrucciones >
Parte del algoritmo a ejecutar si la expresión
< Instrucciones >
es falsa (False)
Fin Si
!

Vamos a revisar el siguiente ejemplo propuesto.

Ejemplo 4.2 Revise la temperatura ambiental. Sí es mayor a 25°C decidir ir a la


playa sino esperar al buen tiempo.

Nro Algoritmo Diagrama de flujo


1  Inicio
2 //declaración de variables
3 temperatura, i[0 - n] // Valor de
4 temperatura ambiental
5 //ingresar el número para saber
6 si es impar
7 Leer temperatura
8 //Evalúa la temperatura
9 Si (temperatura >25) entonces
10 Escriba “Ir a la playa” Si
11 Sino
12 Escriba “Esperando al No
13 buen tiempo”
14 Fin_Si
15 Fin
16  //presenta el resultado de la
17  evaluación según la condición
18  cuando es verdadera o falsa

94 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas SEGUNDO BIMESTRE

Miniespecificación

Nro Miniespecificación
1 Inicio
2 (temperatura, i[1..n])
3 << ”Ingrese la temperatura ambiental” //Leer la variable entera temperatura
4 >> temperatura
5 Si (temperatura > 25) entonces //Valida si la temperatura es mayor a 25
6 //Instrucción o primitiva que se ejecuta si la condición es verdadera
7 <<“Ir a la playa!!!”
8 Sino
9 //Instrucción o primitiva que se ejecuta si la condición es falsa
10 << “Esperando al buen tiempo…”
11 Fin Si //Cierre del condicional Si
12 Fin

Prueba de escritorio

Variables
temperatura Salida presentar
27 Ir a la playa
10 Esperando al buen tiempo
26 Ir a la playa
Valores
28 Ir a la playa
29 Ir a la playa
11 Esperando al buen tiempo
30 Ir a la playa

Como se puede observar en el ejemplo el Si-sino en el diagrama muestra la


condición (temperatura es > 25) Si es Verdadera el diagrama indica la instrucción
de presentar “Ir a la playa!!!” Sino es decir si es Falso el diagrama indica la
instrucción de presentar “Esperar al buen tiempo…”

¿Muy sencillo verdad? Ahora seguimos con el mismo ejemplo codificado.

95 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas SEGUNDO BIMESTRE

Codificación
Ingresar al siguiente enlace para ver la codificación en un
lenguaje de programación del ejercicio propuesto:
http://purl.org/taw-sbc-utpl/algorithm/unit5/coding

Recuerde:
La estructura condicional compuesta a su vez puede anidar otra
estructura simple o compuesta.

Es recomendable revisar los contenidos del texto básico en la sección 3.3 –


Estructura lógica condicional simple y conocer claramente la diferencia entre los
esquemas y reglas de cada estructura simple y compuesta. ¡Avancemos!

4.3. Estructura lógica Dependiendo De

La estructura Dependiendo_De (ó según sea) permite ejecutar un conjunto de


sentencias o primitivas, en la que el cumplimiento de la condición de la estructura
en mención, hace posible la ejecución de las instrucciones entre muchas
alternativas; no solo para el cumplimiento verdadero de la condición, sino por el
cumplimiento de la condición cuando es falsa. Es conocida como ‘Switch case’,
también interpretada como tener un menú de opciones ya que el usuario deberá
escoger una de las opciones, ya que las variables pueden tomar diferentes
valores.

96 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas SEGUNDO BIMESTRE

Sintaxis: Diagrama de flujo


Dependiendo_De (opción) haga
Opción 1:
<Expresión>
Instrucción para opción 1
Fin Caso 1 <Instrucciones>
Opción 2:
Instrucción para opción 2 Caso 2 <Instrucciones>

Fin
Caso 3 <Instrucciones>
Opción 3:
Instrucción para opción 3
Fin
.
.
.
Opción n:
Instrucción para opción n
Fin
Fin Dependiendo_ De

Ahora, vamos a revisar el ejemplo 4.3 propuesto para comprender la estructura


lógica Dependiendo_De.

Ejemplo 4.3 Se desea determinar qué vocal se ingresa y la letra que representa.

Nro Algoritmo
1 Inicio
2 //declaración de variables
3 vocal, char[a…u] // Variable para determinar la vocal que corresponde
4 Leer vocal //se ingresa la letra para evaluar a vocal corresponde
5 //Evalúa el caso
6 Dependiendo_De (vocal) haga
7 Opción a:
8 Escriba “La vocal que ingreso es a”
9 break;
10 Opción e:
11 Escriba “La vocal que ingreso es e”
12 break;

97 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas SEGUNDO BIMESTRE

Nro Algoritmo
13 Opción i:
16 Escriba “La vocal que ingreso es i”
17 break;
18 Opción o:
19 Escriba “La vocal que ingreso es o”
20 break;
21 Opción u:
22 Escriba “La vocal que ingreso es u”
23 break;
25 default:
27 Escriba “Ha ingresado datos incorrectos”
28 Fin Dependiendo_De
29 Fin
30 //presenta el resultado de la evaluación

Diagrama de flujo

98 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas SEGUNDO BIMESTRE

Miniespecificación

Nro Miniespecificación
1 Inicio
2 (vocal, char [a…u])
3 <<”Ingrese la vocal ” // Leer la vocal
4 Dependiendo De (vocal) haga //Pregunta condicional si la temperatura es mayor a
5 25
6 Opción ‘a’:
7 Escriba “Se ha ingresado la letra a”
8 break;
9 Opción ‘e’:
10 Escriba “Se ha ingresado la letra e”
11 break;
12 Opción ‘i’:
13 Escriba “Se ha ingresado la letra i”
14 break;
15 Opción ‘o’:
16 Escriba “Se ha ingresado la letra o”
17 break;
18 Opción ‘u’:
19 Escriba “Se ha ingresado la letra u”
20 break;
21 Default;
22 Escriba “Error”
23 Fin Dependiendo_De
24 Fin

Prueba de escritorio

Variables
Opción Salida presentar
a La letra que escribió es a
e La letra que escribió es e
i La letra que escribió es i
Valores
a La letra que escribió es a
L Ha ingresado datos incorrectos
o La letra que escribió es o
u La letra que escribió es u

99 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas SEGUNDO BIMESTRE

¿Cómo le fue con los ejercicios propuestos?. Si todavía tiene inquietudes respecto
a la temática, a continuación lo invitamos a revisar el siguiente recurso de apoyo.

Codificación
Ingresar al siguiente enlace para ver la codificación en un
lenguaje de programación, del ejercicio propuesto:
http://purl.org/taw-sbc-utpl/algorithm/unit4/coding

A continuación, lo invitamos a realizar los siguientes ejercicios propuestos.

Ejercicios propuestos
Mida su avance realizando los ejercicios del capítulo 3
sección 3.10 – Ejercicio propuestos del texto básico.

Para revisar la resolución de los ejercicios propuestos


ingresar al siguiente enlace: http://purl.org/taw-sbc-utpl/
algorithm/unit4/solutions

¿Cómo le fue con los ejercicios propuestos?. Si todavía tiene inquietudes respecto
a la temática, a continuación lo invitamos a revisar el siguiente recurso de apoyo
sobre estructuras condicionales.

Recursos de apoyo
Revisar el siguientes recurso:
http://purl.org/taw-sbc-utpl/algorithm/unit4/v1_estructuras-
condicionales

¿Revisó el recurso de apoyo? ¡Muy bien!. Con este recurso hemos reforzado
algunos aspectos muy importantes en el uso de estructuras condicionales, a
continuación hacemos un resumen de estos aspectos:

• El resultado de evaluar una condición dentro de la estructura siempre nos


dará valores booleanos, es decir un valor de VERDAD o un valor FALSO,
de esto depende la ejecución de instrucciones dentro de la estructura.

100 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas SEGUNDO BIMESTRE

• Se puede utilizar dentro de la condición operadores de comparación


relacionados para comparar dos operandos del mismo tipo. Los
operandos más utilizados son: =, >, <, >=, <= y <>.

• Cuando utilizamos el operador AND, dos condiciones deben ser


verdaderas para que ocurra una acción resultante.

• Con el operador OR, al menos una de las dos condiciones debe ser
verdadera para que se presente una acción resultante.

• Y, Cuando combinamos los operadores AND y OR en una expresión,


debemos recordar que el operador AND tiene mayor precedencia.

¡Felicidades!. Hemos terminado la presente unidad. Ahora bien, continuemos con


la misma dedicación a la unidad 5: Estructuras lógicas repetitivas. ¡Éxitos!

Estimado estudiante es importante realizar las actividades


planteadas como interacción en el Entorno Virtual de
Aprendizaje. Recuerde que con ello además de afirmar sus
conocimientos obtendrá retroalimentación de sus tutores y
demás compañeros.

A continuación lo invitamos a realizar la siguiente


autoevaluación para medir sus conocimientos.

101 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas SEGUNDO BIMESTRE

Autoevaluación 4

Hemos concluido el estudio de la cuarta unidad, continuaremos con el


siguiente tema, no sin antes comprobar lo aprendido hasta ahora, realizando la
autoevaluación.

1. Cuando la condición es verdadera, solo se ejecutan las primitivas de control


diseñadas en la parte verdadera de la condición (p1, p2, p3, . . ., pi, . . ., pn);
y cuando la condición es falsa se ejecutan solo las estructuras de control
diseñadas en la parte falsa de cumplimiento de la condición (q1, q2, q3, . . .,
qi, . . ., qn).

a. Condicional simple
b. Condicional compuesta
c. Bucle Para

2. Cuál es la estructura lógica que es útil en el diseño de algoritmos que


requieren el diseño de menús de opciones, o diseños que requieran la
modularización parcial de la lógica de control del algoritmo.

a. Condicional simple
b. Condicional compuesta
c. Dependiendo_De

102 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas SEGUNDO BIMESTRE

3. Cuál de las siguientes instrucciones le permitirá incrementar el salario de un


empleado en un 25% siempre y cuando gane 750 dólares o más.

a. Alternativa 1
Si salario >= 750 entonces
salario = (salario * 0.25)
Fin Si

b. Alternativa 2
Si salario >= 750 entonces
salario = salario + (salario * 0.25)
Fin Si

c. Alternativa 3
Si (salario > 750) entonces
salario = salario + (salario * 0.25)
Fin Si

103 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas SEGUNDO BIMESTRE

4. Se desea genera un programa que permita determinar si alguien es mayor


de edad en Ecuador (desde los 18 años). Si es mayor de edad presentar
la edad, en caso que no sea mayor de edad, presentar un mensaje de
“incorrecto”.

¿Cuál de las siguientes sentencias permite obtener el resultado deseado?


a. Alternativa 1
Si edad > 18 entonces
>> edad
Sino
<< “incorrecto”
Fin Si

b. Alternativa 2
Si edad >= 18 entonces
>> edad
Sino
<< “incorrecto”
Fin Si

c. Alternativa 3
Si edad >= 18 entonces
<< edad
Sino
<<“incorrecto”
Fin Si

104 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas SEGUNDO BIMESTRE

5. Seleccionar el algoritmo que permita determinar si un usuario que adquiere 3


productos su costo final es mayor a 200 dólares se realiza un descuento de
15%, el algoritmo debe mostrar el total, descuento.

a. Alternativa 1
Inicio
Ingrese precio de 3 productos
>>prod1,
>>prod2,
>>prod3
total = prod1 + prod2 + prod3
Si (total > 200) entonces
desc = total x 15%
Fin si
total = total - desc
<<”El total es”, total
<<”El descuento por su compra es”, desc
Fin

b. Alternativa 2
Inicio
Ingrese precio de 3 productos
>>prod1,
>>prod2,
>>prod3
total = prod1 + prod2 + prod3
Si (total > 200) entonces
desc = total x 15%
Fin si
Total = Total + desc
<<”El total es”, total
<<”El descuento por su compra es”, desc
Fin

105 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas SEGUNDO BIMESTRE

c. Alternativa 3
Inicio
Ingrese precio de 3 productos
>>prod1,
>>prod2,
>>prod3
total = prod1 + prod2 + prod3
Si (total < 200) entonces
desc = total x 15%
total = total - desc
Fin si
<<”El total es”, total
<<”El descuento por su compra es”, desc
Fin

6. Determine las respuestas de los siguientes enunciados según correspondan


es V o F.

La “condición” se refiere a una decisión que se debe tomar en la lógica de


control ( )

La “decisión” implica la solución a una pregunta que se estructura en ciclo de


repetición. ( )

7. En base a las siguientes expresiones, determinar que estructura de decisión


o control se está usando:

1. Si ((area >= 10) or (area = 50) entonces


2. << area <-- area + 1000
3. Fin Si

a. Acumulador
b. Condicional compuesta
c. Condicional simple

106 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas SEGUNDO BIMESTRE

8. Se desea generar un programa que permite obtener y presentar el cubo de


un número, siempre y cuando el número sea menor a 60, caso contrario
debería obtener y presentar el cuadrado del número indicado.

¿Cuál de las siguientes sentencias permite obtener el resultado deseado?

Sentencia 1
Si numero < 60 entonces
cuadrado <-- numero ^ 2
<< cuadrado
Sino
cubo <-- numero ^ 3
<< cubo
Fin Si

Sentencia 2
Si numero < 60 entonces
cuadrado <-- numero ^ 3
<< cuadrado
Sino
cubo <-- numero ^ 2
<< cubo
Fin Si

Sentencia 3
Si numero <= 60 entonces
cuadrado <-- numero ^ 3
<< cuadrado
Sino
cubo <-- numero ^ 2
<< cubo
Fin Si

107 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas SEGUNDO BIMESTRE

9. Se desea generar un programa que permita determinar si alguien tiene la


edad para entrar a la universidad en un país (el país tiene como ley que
los estudiantes pueden ingresar a la universidad sólo si tienen 20 años, en
ningún otro caso). Si la persona cumple con la edad presentar un mensaje
de “ingreso exitoso”, en caso que no tenga la de edad presentar un mensaje
de “edad incorrecta”

a. Si edad > 20 entonces


<< “ingreso exitoso”
Sino
<< “edad incorrecta”
Fin Si

b. Si edad >= 20 entonces


<< “ingreso exitoso”
Sino
<< “edad incorrecta”
Fin Si

c. Si edad == 20 entonces
<< “ingreso exitoso”
Sino
<< “edad incorrecta”
Fin Si

10. Cuál es la estructura en la que cada alternativa es disyuntiva y se ejecuta


independiente de las otras.

a. Condicional simple
b. Condicional DD
c. Condicional compuesta

108 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas SEGUNDO BIMESTRE

Estimado estudiante para comprobar sus respuesta puede ir


al SOLUCIONARIO que se encuentra al final de la guía. Si
sus respuestas han sido correctas, Felicidades!!, podemos
avanzar a la siguiente unidad. De no ser así, lo invitamos a
revisar nuevamente los contenidos para que pueda solventar
sus dudas y reforzar su aprendizaje.

109 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas SEGUNDO BIMESTRE

UNIDAD 5. ESTRUCTURAS LÓGICAS REPETITIVAS

Si escuchas una voz dentro de ti que dice “no


puedes pintar”, entonces pinta, y la voz será
silenciada.
-Vincent Van Gogh.

Estimado estudiante, previo al inicio de la presente unidad,


es importante que revise los contenidos del Capítulo 3:
Primitivas Algorítmicas del texto básico.

Las estructuras lógicas repetitivas llamadas también bucles o ciclos repetitivos,


permiten realizar la 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 iniciar con las estructuras lógicas repetitivas, se debe conocer los
conceptos de dos elementos importantes para definir estas estructuras: contador
y acumulador.

Contador
Un contador es una variable cuyo valor se incrementa o decrementa en una
cantidad constante con la finalidad de contar sucesos o acciones internas de
un ciclo repetitivo. Por lo general un contador es inicializado desde 0 o 1 y va
incrementado de uno en uno. Tanto la inicialización y el incremento del contador
dependen también del problema a resolver.
contador ← 1 → Inicialización
contador ← contador + 1 → Incremento

Acumulador
Un acumulador es una variable que suma sobre sí misma un conjunto de valores,
para de esta forma almacenar la suma de todos ellos en una sola variable.
suma ← 0 → inicialización
suma ← suma + expresión → acumulador

110 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas SEGUNDO BIMESTRE

Recuerde:
La diferencia entre un contador y un acumulador es que mientras
el primero va aumentando en una cantidad fija que por lo general
es de uno en uno, el acumulador va aumentando en una cantidad
variable.

5.1. Estructura lógica repetitiva Mientras que – Hacer

La estructura Mientras que – Hacer es una estructura lógica repetitiva de


comparación al inicio. Las instrucciones se realizan siempre y cuando la expresión
lógica sea verdadera, caso contrario el ciclo repetitivo terminará.

Sintaxis: Diagrama de flujo


Inicializa el contador
Mientras (condición) hacer
Instrucción 1
Instrucción 2

Instrucción n
incremento del contador
Fin_Mientras
Ejemplo:
sum ← 0
i←1
Mientras (i <= 7) hacer
suma ← suma + i
<< i
i ← i +1
Fin_Mientras
<< suma
Salida
i→1234567
suma → 28

111 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas SEGUNDO BIMESTRE

Ejemplo 5.1 Calcular el factorial de un número ingresado por teclado utilizando la


estructura lógica repetitiva Mientras que – Hacer

Análisis: El factorial de un número entero positivo es el producto de todos los


números enteros positivos desde 1 hasta n. Se define matemáticamente como
n!, que equivale a n! = 1 * 2 * 3 * 4 * 5 * … * (n – 1) * n. Por ejemplo, se solicita
obtener el factorial de 6, el resultado quedaría:

6! = (1 * 2 * 3 * 4 * 5 * 6) = 720

A continuación se presenta el algoritmo, miniespecificación y diagrama de flujo

Nro Algoritmo Diagrama de flujo


1  Inicio
2 //declaración de variables
3 cont, i[0 - n] //contador del ciclo repetitivo
4 num, i[0 - n] //número a obtener el
5 factorial
6 factorial, i[0 - n] //almacena el factorial
7 //inicialización de variables
8 cont ← 1, num ← 0, factorial ← 1
V
9 //se ingresa el número para obtener su
10 factorial
F
11 Leer num
12 //calcula el factorial
13 Si (num ≤ 0) entonces F

14   Escriba "El número no es un entero


15  positivo" V

16 Sino
17   Mientras (cont ≤ num) entonces
18 factorial ← factorial * cont
19 cont ← cont + 1
20  Fin_Mientras
21 Fin Si
22 //presenta el factorial del número
23 ingresado
24 Escribir factorial
25  Fin

112 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas SEGUNDO BIMESTRE

Nro Miniespecificación
1 Inicio
2 //declaración de variables
3 cont, i[0 - n] //contador del ciclo repetitivo
4 num, i[0 - n] //número a obtener el factorial
5 factorial, i[0 - n] //variable que almacena el factorial
6 //inicialización de variables
7 cont ← 1, num ← 0, factorial ← 1
8 //se solicita que se ingrese el número para obtener su factorial
9 << "Ingrese el número a obtener el factorial"
10 >> num
11 //calcula el factorial
12 Si (num ≤ 0) entonces
13 Escriba "El número no es un entero positivo"
14 Sino
15 Mientras (cont ≤ num) entonces
16 factorial ← factorial * cont
17 cont ← cont + 1
18 Fin_Mientras
19 Fin Si
20 //presenta el factorial del número ingresado
21 << “El factorial de”, +num, “es”, +factorial
22 Fin

Prueba de escritorio

Variables
num cont factorial
6 1 1
1
2 2
Valores
3 6
4 24
5 120
6 720

113 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas SEGUNDO BIMESTRE

Codificación
Ingresar al siguiente enlace para ver la codificación en un
lenguaje de programación del ejercicio propuesto:
http://purl.org/taw-sbc-utpl/algorithm/unit5/coding

Recuerde:
Cuando no se conoce el número de veces que tiene que repetirse
el ciclo repetitivo, este se convierte en un dato de entrada y
se tiene que pedir al usuario que lo ingrese. Además se debe
considerar que las condición debe llegar en algún momento a ser
Falsa sino se convertiría en un LOOP (ciclo repetitivo infinito, es
decir que nunca termina).

¿Qué le pareció la temática?. Ahora bien, para reforzar su


aprendizaje sobre el ciclo repetitivo Mientras que – Hacer, lo
invitamos a estudiar la sección 3.7 – Estructura lógica repetitiva
Mientras que, del texto básico. Avanzamos con la estructura lógica
repetitiva Hacer – Hasta.

5.2. Estructura lógica repetitiva Hacer - Hasta

La estructura Hacer – Hasta es una estructura lógica repetitiva de comparación


al final. Las instrucciones se realizan siempre y cuando la expresión lógica sea
verdadera, caso contrario el ciclo repetitivo terminará.

114 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas SEGUNDO BIMESTRE

Sintaxis Diagrama de flujo


Inicializa el contador
Hacer
Instrucción 1
Instrucción 2 …
Instrucción n
incremento del contador
Hasta (condición)
Ejemplo:
sum ← 0
i←0
Hacer
suma ← suma + i
<< i
i ← i +1
Hasta (i > 7)
<< suma
Salida
i→0123456
suma → 21

Recuerde:
La estructura lógica repetitiva Hacer – Hasta se ejecuta al menos
una vez, aunque la condición no se cumpla.

A continuación, lo invitamos a analizar el siguiente ejercicio.

Ejemplo 5.2 Calcular el factorial de un número ingresado por teclado utilizando la


estructura lógica repetitiva Hacer – Hasta

Análisis: Revisar el análisis del Ejemplo 5.1. A continuación se presenta el


algoritmo, miniespecificación y diagrama de flujo.

115 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas SEGUNDO BIMESTRE

Nro Algoritmo Diagrama de flujo


1  Inicio
2 //declaración de variables
3 cont, i[0 - n] //contador del ciclo
4 repetitivo
5 num, i[0 - n] //número a obtener el
6 factorial
6 factorial, i[0 - n] //almacena el factorial
7 //inicialización de variables
8 cont ← 1, num ← 0, factorial ← 1
9 //se ingresa el número para obtener su
10 factorial
11 Leer num
12 //calcula el factorial
13 Si (num ≤ 0) entonces
14   Escriba "El número no es un
15   entero positivo"
16 Sino
17  Hacer
18 factorial ← factorial * cont
19 cont ← cont + 1
20   Hasta (cont > num)
21 Fin Si
22 //presenta el factorial del número
23 ingresado
24 Escribir factorial
25 Fin

116 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas SEGUNDO BIMESTRE

Nro Miniespecificación
1 Inicio
2 //declaración de variables
3 cont, i[0 - n] //contador del ciclo repetitivo
4 num, i[0 - n] //número a obtener el factorial
5 factorial, i[0 - n] //variable que almacena el factorial
6 //inicialización de variables
7 cont ← 1, num ← 0, factorial ← 1
8 //se solicita que se ingrese el número para obtener su factorial
9 << "Ingrese el número a obtener el factorial"
10 >> num
11 //calcula el factorial
12 Si (num ≤ 0) entonces
13 Escriba "El número no es un entero positivo"
14 Sino
15 Hacer
16 factorial ← factorial * cont
17 cont ← cont + 1
18 Hasta (cont > num)
19 Fin Si
20 //presenta el factorial del número ingresado
21 << “El factorial de”, +num, “es”, +factorial
22 Fin

Prueba de escritorio

Variables
num cont factorial
6 1 1
1
2 2
Valores
3 6
4 24
5 120
6 720

117 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas SEGUNDO BIMESTRE

Codificación
Ingresar al siguiente enlace para ver la codificación en un
lenguaje de programación del ejercicio propuesto:
• http://purl.org/taw-sbc-utpl/algorithm/unit5/coding

Recuerde:
Cuando el contador es inicializado en 1 la condición en la
estructura repetitiva Mientras debe ser menor e igual (≤) que el
límite. Y cuando el contador es inicializado en 0 la condición de la
estructura repetitiva Mientras debe ser únicamente menor (<) al
límite.

¿Cómo le fue con el análisis del ejercicio planteado?. Para solventar alguna duda
revisar la sección 3.8 – Estructura lógica repetitiva Hacer – Hasta, del texto base.
Una vez comprendida la temática, podemos pasar al siguiente tema de estudio:
estructura lógica repetitiva Para.

5.3. Estructura lógica repetitiva Para

La estructura repetitiva Para permite la ejecución de un conjunto de estructuras


de control de una forma repetitiva que se ubican dentro del Para. A diferencia de
los otros ciclos repetitivos, la estructura Para tiene primitivas internas como la
inicialización del contador, la condición lógica y el incremento del contador.

118 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas SEGUNDO BIMESTRE

Sintaxis: Diagrama de flujo


Para (contador, condición, incremento) Hacer
Instrucción 1
Instrucción 2

Instrucción n
Fin_Para
Ejemplo:
sum ← 0
Para (i←1, i <= 7, 1)
suma ← suma + i
<< i
Fin_Para
<< suma
Salida
i→1234567
suma → 28

A continuación se presenta un ejemplo utilizando la estructura repetitiva Para.

Ejemplo 5.3 Calcular el factorial de un número ingresado por teclado utilizando la


estructura lógica repetitiva Para.

Análisis: Revisar el análisis del Ejemplo 5.1 A continuación se presenta el


algoritmo, miniespecificación y diagrama de flujo.

119 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas SEGUNDO BIMESTRE

Nro Algoritmo Diagrama de flujo


1  Inicio
2 //declaración de variables
3 cont, i[0 - n] //contador del
4 ciclo repetitivo
5 num, i[0 - n] //número a
6 obtener el factorial
7 factorial, i[0 - n] //almacena el V

8 factorial
F

9 //inicialización de variables
10 num ← 0, factorial ← 1 F

11 //se ingresa el número para V

12 obtener su factorial
V
13 Leer num
14 Si (num ≤ 0) entonces //
15 calcula el factorial
16   Escriba "El número no es
17   un entero positivo"
18 Sino
19   Para (cont ← 0, num, 1)
20 factorial = factorial *
21 cont
22   Fin Para
23 Fin Si
24 //presenta el factorial del
25 número ingresado
26 Escribir factorial
27 Fin

120 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas SEGUNDO BIMESTRE

Nro Miniespecificación
1 Inicio
2 //declaración de variables
3 cont, i[0 - n] //contador del ciclo repetitivo
4 num, i[0 - n] //número a obtener el factorial
5 factorial, i[0 - n] //variable que almacena el factorial
6 cont ← 1, num ← 0, factorial ← 1 //inicialización de variables
7 << "Ingrese el número a obtener el factorial" // se ingrese el número para obtener
8 su factorial
9 >> num
10 Si (num <= 0) entonces
11 Escriba "El número no es un entero positivo"
12 Sino
13 Para (cont ← 1, cont <= num, cont++) entonces
14 factorial ← factorial * cont //calcula el factorial
15 Fin_Para
16 Fin Si
17 << “El factorial de”, +num, “es”, +factorial //presenta el factorial del número
18 ingresado
19 Fin

Prueba de escritorio

Variables
num cont Factorial
6 1 1
1
2 2
Valores
3 6
4 24
5 120
6 720

Codificación
Ingresar al siguiente enlace para ver la codificación en un
lenguaje de programación del ejercicio propuesto:
• http://purl.org/taw-sbc-utpl/algorithm/unit5/coding

121 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas SEGUNDO BIMESTRE

¿Qué le pareció la temática?. Si aún tiene inquietudes sobre esta estructura,


revisar la sección 3.6 – Estructura lógica repetitiva Para, del texto básico. Ahora
bien, iniciamos el es estudio de las estructuras lógicas repetitivas anidadas.

5.4. Estructuras lógicas repetitivas anidadas

Se conoce como estructuras anidadas cuando una estructura está dentro de otra
estructura. Se pueden anidar estructuras lógicas de decisión así como estructuras
lógicas de repetición. Para una mayor comprensión de esta sección, se desarrolla
el siguiente ejercicio.

Ejemplo 5.4 Diseñe un algoritmo que sume todos los número primos que hay
entre 1 a N. El límite de números a verificar lo ingresa el usuario.

A continuación se presenta el algoritmo, miniespecificación y diagrama de flujo

122 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas SEGUNDO BIMESTRE

Nro Miniespecificación
1 Inicio
2 //declaración de variables

3 cont, i[0 - n] //contador del primer ciclo repetitivo


4 cont1, i[0 - n] //contador del segundo ciclo repetitivo
5 lim, i[0 - n] //limite de número a verificar
6 num, i[0 - n] //número a verificar si es primo
7 divisor, i[0 - n] //variable que almacena el número de divisores
8 suma, i[0 - n] //variable que almacena la suma de los números primos
9 cont ← 1, cont1 ← 1, num ← 0, divisor ← 1, suma ← 0 //inicialización de variables
10 // se ingrese el limite de números

11 Escribir "Ingrese el límite de los números a verificar si son primos"


12 Leer lim
13 Mientras (cont ≤ lim) entonces
14 num ← cont
15 Si (num = = 1) entonces
16 Escribir "El número", +num, "es primo"
17 suma ← suma + num
18 Sino
19 Mientras (cont1 ≤ num) entonces
20 Si ((num % cont1) == 0) entonces
21 divisor ← divisor + 1
22 Fin_Si
23 cont1 ← cont1 + 1
24 Fin_Mientras
25 Si (divisor == 2) entonces
26 Escribir "El número", +num, "es primo"
27 suma ← suma + num
28 Sino
29 Escribir "El número", +num, "no es primo"
30 Fin_Si
31 cont1 ← 1, divisor ← 0
32 Fin_Si
33 cont ← cont + 1
34 Fin_Mientras //presenta la suma de los primos
35 Escribir "El suma de los números primos entre 1 y", +lim, "es:", +suma
36 Fin

123 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas SEGUNDO BIMESTRE

Diagrama de flujo

F V

124 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas SEGUNDO BIMESTRE

Nro Miniespecificación
1 Inicio
2 //declaración de variables
3 cont, i[0 - n] //contador del primer ciclo repetitivo
4 cont1, i[0 - n] //contador del segundo ciclo repetitivo
5 lim, i[0 - n] //limite de número a verificar
6 num, i[0 - n] //número a verificar si es primo
7 divisor, i[0 - n] //variable que almacena el número de divisores
8 suma, i[0 - n] //variable que almacena la suma de los números primos
9 cont ← 1, cont1 ← 1, num ← 0, divisor ← 1, suma ← 0 //inicialización de variables
10 // se ingrese el limite de números
11 << "Ingrese el límite de los números a verificar si son primos"
12 >> lim
13 Mientras (cont ≤ lim) entonces
14 num ← cont
15 Si (num = = 1) entonces
16 << "El número", +num, "es primo"
17 suma ← suma + num
18 Sino
19 Mientras (cont1 ≤ num) entonces
20 Si ((num % cont1) == 0) entonces
21 divisor ← divisor + 1
22 Fin_Si
23 cont1 ← cont1 + 1
24 Fin_Mientras
25 Si (divisor == 2) entonces
26 << "El número", +num, "es primo"
27 suma ← suma + num
28 Sino
29 << "El número", +num, "no es primo"
30 Fin_Si
31 cont1 ← 1
32 divisor ← 0
33 Fin_Si
34 cont ← cont + 1
35 Fin_Mientras
36 << "El suma de los números primos entre 1 y", +lim, "es:", +suma //presenta la
37 suma de los primos
38 Fin

125 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas SEGUNDO BIMESTRE

Prueba de escritorio

Variables
lim cont num cont1 divisor suma salida
7 1 1 1 0 1 “El 1 es primo”

2 2 2 1
2
0 3 “El 2 es primo”

3 3 1 1
2 -
3 2
4 0 6 “El 3 es primo”

4 4 1 1
2 2
3 -
4 3

Valores 5 0 - “El 4 no es primo”

5 5 1 1
2 -
3 -
4 -
5 2
6 0 11 “El 5 es primo”

6 6 1 1
2 2
3 3
4 -
5 -
6 4
7 0 - “El 6 no es primo”

126 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas SEGUNDO BIMESTRE

Variables
7 7 1 1
2 -
3 -
4 -
Valores
5 -
6 -
7 2
8 0 18 “El 7 es primo”

Codificación
Ingresar al siguiente enlace para ver la codificación en un
lenguaje de programación del ejercicio propuesto:
• http://purl.org/taw-sbc-utpl/algorithm/unit5/coding

Ejemplo 5.5 Resolver la siguiente serie y obtener la sumatoria total utilizando la


estructura repetitiva Mientras - Hacer:

1 + 2 + 4 + 3 + 7 + 4 + 10 + 5 + … + n

Análisis: Para resolver el problema planteado, como primer paso se debe


identificar la secuencia de la serie. Se observa que los términos ubicados en la
posición impar de la serie van incrementando en 3 y los términos en la posición
par de la serie incrementan en 1. Para esto, es recomendable definir dos variables
que vayan generando cada término. Además, no se da un límite establecido de la
serie, por lo cual el limite será un dato de entrada. Considerar también que en una
sumatoria, se debe definir una variable que acumule la suma de cada término. A
continuación se presenta el algoritmo, miniespecificación y diagrama de flujo

127 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas SEGUNDO BIMESTRE

Nro Algoritmo
1 Inicio
2 //declaración de variables
3 Entero: cont, lim, t_par, t_imp, s_par, s_imp, suma
4 //inicialización de variables
5 cont ← 1, t_par ← 1, t_imp ← -2, s_par ← 0, s_imp ← 0, suma ← 0
6 //entrada de datos
7 Escribir “Ingrese el limite de la serie”
8 Leer lim
9 Mientras (cont ≤ lim) entonces //proceso
10 Si (cont % 2 == 0) entonces
11 Calcular: t_par ← t_par + 1
12 Calcular: s_par ← s_par + t_par
13 Sino
14 Calcular: t_imp ← t_imp + 3
15 Calcular: s_imp ← s_imp + t_imp
16 Fin_Si
17 cont ← cont + 1
18 Fin_Mientras
19 Calcular: suma ← s_par + s_imp
20 //salida
21 Escribir “La suma total de la serie es:”, +suma
22 Fin

128 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas SEGUNDO BIMESTRE

Diagrama de flujo

129 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas SEGUNDO BIMESTRE

Nro Miniespecificación
1 Inicio
2 //declaración de variables
3 cont, i[0 - n] //contador del ciclo repetitivo
4 lim, i[0 - n] //limite de la serie
5 t_par, i[0 - n] //término par de la serie
6 t_imp, i[0 - n] //término impar de la serie
7 s_par, i[0 - n] //suma de los términos pares
8 s_imp, i[0 - n] //suma de los términos impares
9 suma, i[0 - n] //suma total de la serie
10 //inicialización de variables
11 cont ← 1, t_par ← 1, t_imp ← -2, s_par ← 0, s_imp ← 0, suma ← 0
12 //entrada de datos
13 << “Ingrese el limite de la serie”
14 >> lim
15 //proceso
16 Mientras (cont ≤ lim) entonces
17 Si (cont % 2 == 0) entonces
18 t_par ← t_par + 1
19 s_par ← s_par + t_par
20 Sino
21 t_imp ← t_imp + 3
22 s_imp ← s_imp + t_imp
23 Fin_Si
24 cont ← cont + 1
25 Fin_Mientras
26 suma ← s_par + s_imp
27 //salida
28 << “La suma total de la serie es:”, +suma
29 Fin

Prueba de escritorio

Variables
lim cont t_par s_par t_impar s_imp suma
5 1 1 0 -2 0 0
1 1
2 2 2
Valores
3 4 5
4 3 5
5 7 12
6 17

130 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas SEGUNDO BIMESTRE

Codificación
Ingresar al siguiente enlace para ver la codificación en un
lenguaje de programación del ejercicio propuesto:
http://purl.org/taw-sbc-utpl/algorithm/unit5/coding

A continuación se presentan algunos ejercicios propuestos y recursos de apoyo


que le ayudarán a fortalecer los ciclos repetitivos aprendidos.

Ejercicios propuestos
• Desarrolle de los ejercicios propuestos 3.10.2 del texto
básico, los ejercicios pares entre el 22 al 40.

Para revisar la resolución de los ejercicios propuestos


ingresar al siguiente enlace: http://purl.org/taw-sbc-utpl/
algorithm/unit5/solutions

Si todavía tiene inquietudes respecto a la temática y para fortalecer lo aprendido,


a continuación lo invitamos a revisar los siguientes recursos de apoyo sobre las
estructuras lógicas repetitivas.

Recursos de apoyo
Revisar los siguientes recursos:
• http://purl.org/taw-sbc-utpl/algorithm/unit5/v1_mientras-hacer
• http://purl.org/taw-sbc-utpl/algorithm/unit5/v2_bucles
• http://purl.org/taw-sbc-utpl/algorithm/unit5/v3_estructuras-control

131 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas SEGUNDO BIMESTRE

¿Ya revisó los recursos de apoyo?. ¡Muy bien!. Ahora lo invitamos a


responder las siguientes interrogantes, ¿para qué me sirven las estructuras
lógicas repetitivas?, ¿se puede anidar y combinar varias estructuras lógicas
repetitivas?. Como apoyo para responder estas interrogantes, debemos
considerar que las estructuras lógicas repetitivas, también llamadas ciclos
repetitivos o bucles, nos permiten repetir una instrucción o una secuencia
de instrucciones, un número determinado de veces mientras se cumpla una
condición. Y dependiendo del problema podemos utilizar la estructura que se
adapte y nos dé una solución más eficiente.

Estimado estudiante es importante realizar las actividades


planteadas como interacción en el Entorno Virtual de
Aprendizaje. Recuerde que con ello además de afirmar sus
conocimientos obtendrá retroalimentación de sus tutores y
demás compañeros.

A continuación lo invitamos a realizar la siguiente autoevaluación para medir sus


conocimientos.

132 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas SEGUNDO BIMESTRE

Autoevaluación 5

Analice las siguientes preguntas de opción múltiple y seleccione la respuesta


correcta.

1. Un contador da un seguimiento al número de:

a. Estructuras de ciclo dentro de un programa


b. Veces que se acumula una variable
c. Ciclos de máquina requeridos para un segmento de un programa

2. Agregar el valor de 1 a una variable también se llama:

a. Reiniciar
b. Incrementar
c. Decrementar

3. Por lo común, el valor agregado a una variable acumuladora es:

a. El mismo para cada iteración


b. El valor de 1
c. Diferente por cada iteración

133 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas SEGUNDO BIMESTRE

4. Cuáles de las siguientes afirmaciones son verdaderas sobre las estructuras


Mientras que, y Hacer Hasta

a. La estructura mientras se ejecuta siempre y cuando se cumpla la


condición
b. La estructura hacer-hasta nunca se ejecuta si la condición no se
cumple
c. La estructura mientras se ejecuta independiente de la condición
d. La estructura hacer-hasta se ejecuta al menos una vez así la condición
no se cumpla

5. De las siguientes ideas presentadas, cuál es el concepto apropiado para


describir una estructuras de control anidadas?

a. Cuando se coloca una estructura de control fuera de otra


b. Cuando se coloca una variable dentro de otra
c. Cuando se coloca una estructura de control dentro de otra

6. En base a la siguiente miniespecificación, determine cuál es el valor


resultante de i?

i←0
limite ← 5
Mientras i <= limite hacer
I←i+1
Fin_Mientras
<< i
a. 4
b. 5
c. 6

134 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas SEGUNDO BIMESTRE

7. De la siguiente lista de estructuras de control. ¿Cuál es la que posee la


característica que permite que el proceso se ejecute al menos una vez?

a. Bucle de comparación al inicio


b. Bucle de comparación al final
c. Bucle de comparación ilimitado

8. Si se ejecuta la siguiente miniespecificación y se desarrolla las pruebas de


escritorio ¿Qué secuencia de números se genera?

i←0
limite ← 24
Mientras i < limite hacer
Si i%6 == 0 entonces
<< i
Fin Si
i=i+3
Fin mientras
a. 0, 6, 12, 18, 24
b. 6, 12, 18, 24
c. 0, 6, 12, 18

9. Las siguientes sentencias imprimen los numero del 1 al 20. ¿Qué se


necesita cambiar en la estructura Mientras del mismo para que se convierta
en un ciclo infinito?

1 Inicio
2 numero1, i[1 – n]
3 numero1 ← 1
4 Mientras numero1 <= 20 hacer
5 << numero1
6 numero1 ← numero1 + 1
7 Fin_Mientras
8 Fin

135 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas SEGUNDO BIMESTRE

a. En la línea 6 cambiar por: numero1 ← numero1 + 20


b. Eliminar la línea 6
c. En la línea 6 cambiar por: numero1 ← numero1 * 20

10. Cuál es el concepto apropiado para describir una estructura lógica repetitivas
o bucle?

a. Permite realizar la evaluación de expresiones lógicas, para controlar la


ejecución de una o más instrucciones
b. Permite realizar la ejecución de un conjunto de instrucciones de
manera repetitiva mediante la evaluación de una o más expresiones
lógicas
c. Permite realizar la evaluación de expresiones lógicas, para controlar la
ejecución de una o más instrucciones

Estimado estudiante para comprobar sus respuesta puede ir


al SOLUCIONARIO que se encuentra al final de la guía. Si
sus respuestas han sido correctas, Felicidades!!, podemos
avanzar a la siguiente unidad. De no ser así, lo invitamos a
revisar nuevamente los contenidos para que pueda solventar
sus dudas y reforzar su aprendizaje.

Finalmente, para culminar con las temáticas planificadas


para la presente asignatura vamos a dar inicio con la Unidad
6.

136 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas SEGUNDO BIMESTRE

UNIDAD 6. ESTRUCTURAS DE DATOS

Lo único que se interpone entre tú y tu sueño es


la voluntad de intentarlo y la creencia de que es
posible conseguirlo.
Joel Brown.

Estimado estudiante, estamos en la última unidad de


la asignatura. ¡Felicitaciones!, ahora lo invitamos a
estudiar la presente unidad en la que podremos aprender
temas importantes como vectores unidimensionales,
bidimensionales y multidimensionales.

Continuemos con perseverancia, que la meta está muy


cerca!

En esta unidad es importante tener presente que un arreglo son estructuras


de datos (variable) consistentes en un conjunto de datos del mismo tipo. Los
arreglos poseen un tamaño que es la cantidad de objetos del mismo tipo que
puede almacenar. Es conocido como arreglo o array indistintamente.

La Figura 19 muestra un definición de un arreglo, sus componentes y tipos de


arreglos.

Figura 19. Componentes y tipos de arreglos


Fuente: Mancilla, (2014)

137 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas SEGUNDO BIMESTRE

La Figura 19 presenta los atributos que tiene un arreglo, entre ellos el tamaño n, el
índice j, de igual forma, como toda variable un arreglo tiene características cómo
Nombre, tipo, dirección y contenido.

Tamaño: indica el número de elementos que se almacenan en el arreglo.

Subíndice: es un puntero que permite acceder a un elemento específico del


arreglo. Recuerde que el subíndice es un valor numérico.

Los arreglos se almacenan de forma interna, en la memoria del computador, de


manera secuencial como muestra a continuación:

A: a1 a2 … Ai-1 ai ai+1 … ak-1 ak

Clasificación de arreglos, según su dimensión:


• Unidimensionales
• Bidimensionales

6.1. Arreglos unidimensionales

Ahora bien, para reforzar su aprendizaje en esta sección arreglos


unidimensionales lo invitamos a estudiar la sección 4.1 – Concepto de vector
unidimensional del texto básico desde la página 212. Esto nos ayudará a
comprender de mejor manera. ¡Avancemos!

Un arreglo o array, también denominado vector o fila, vector es un tipo de


datos estructurados compuesta por un conjunto de elementos, de tamaño fijo y
elementos homogéneos (del mismo tipo), los cuales son direccionados por un
único subíndice, el cual está organizado linealmente, con el fin de almacenar
un arreglo de informaciones que se disponen secuencialmente de una forma
contigua dentro del vector.

Por su organización, el vector recibe también el nombre de arreglo


unidimensional. Los vectores de una sola dimensión (o arreglos unidimensionales)
son la base para el concepto de arreglo bidimensional.

138 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas SEGUNDO BIMESTRE

Componentes de vector unidimensional

La Figura 20 detalla cada uno de los componentes de vector o arreglo


unidimensional, además a continuación se detalla cada uno que son:

• Nombre del vector, que identifica la estructura de datos llamada vector,


arreglo lineal o unidimensional.
• El subíndice, que direcciona los contenidos de la información del vector.
• Las informaciones contenidas en las direcciones ubicadas por el
subíndice del vector.
• Rango de almacenamiento del vector, desde el punto inicial hasta un
punto final o tope del vector.

La figura 20 muestra el esquema del vector A

Figura 20. Representación esquemática de un vector.


Tomada de: Mancilla (2014)

El nombre del vector es A, lo que identifica la totalidad de la estructura como un


arreglo unidimensional.

Las direcciones, o posiciones, del vector son subíndices, para este caso
dispuestos de una forma lineal, o sea, unos a continuación de otros, denotados
por 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 para este caso. Los subíndices son totalmente
diferentes a los contenidos de informaciones, los cuales se identifican así: A [1]
= 10; en la primera (1) dirección del vector se encuentra la información 10, en

139 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas SEGUNDO BIMESTRE

tanto que en la quinta (5) dirección del vector se encuentra la información 50. Se
recalca que en la dirección siete (7) del vector o A [7] se encuentra la información
7, pero su semántica es diferente, porque un concepto es el subíndice y otro
concepto totalmente diferente es la información que direcciona el subíndice del
vector.

El rango de almacenamiento del vector A parte de una posición inicial subíndice


uno (1) y llega una posición de dirección final (10).

Los subíndices dispuestos de una forma lineal 1, 2, 3, . . ., 10, permiten la


organización en secuencia de las informaciones contenidas en el vector A;
secuencia de informaciones que conducen a identificar que en la organización
presentada la información 78 precede a la información 50, pero la información 78
es sucesora de la información 56; por esta razón, si 4 es el subíndice del vector
en análisis, entonces A[4] = 78, y el subíndice sucesor de 4 es el 5, luego A[5] =
50, de lo cual se puede inferir correctamente que 78 precede a 50; ahora bien,
estando en A[4] = 78, el subíndice predecesor de 4 es 3 y A[3] = 56, de lo cual se
puede concluir que la información 78 es sucesora de la información 56 para este
caso. Se identifica el vector en su conjunto como estructura organizada por su
nombre (A), en tanto que las informaciones contenidas en el vector se denotan
por A[i], variando el subíndice i en el rango desde el valor 1 hasta el valor 10 para
este ejemplo.

Recuerde:
En base a la identidad del vector y teniendo en cuenta su
subíndice asociado, las estructuras de control lógicas Mientras
que, Para o Haga Hasta se utilizan para controlar los subíndices
del vector desde el contenido de la posición inicial hasta la
posición final del contenido almacenado dentro del vector.

Sintaxis: < tipo ><variable> [N]

Se declara un arreglo de nombre <variable > con N elementos de tipo <tipo>, (N


es una constante). Ejemplo int B [20].

140 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas SEGUNDO BIMESTRE

A continuación vamos a revisar el ejemplo 6.1 propuesto lo que permitirá poner en


práctica lo aprendido.

Ejemplo 6.1 Diseñe un algoritmo que rellene un vector A con los números pares
comprendidos entre 1 y 20 y los muestre en pantalla en ascendente.

Análisis: La cantidad de pares que existen entre 1 y 20 son 10 elementos, se


determina que un número es par cuando la división entre un número entre 2 su
residuo es 0. Se debe rellenar el arreglo con números pares y luego presentar el
arreglo con sus elementos pares.

Nro Algoritmo
1 Inicio
2 // Declarar de variables
3 (A[10]) // Declarar el arreglo A con 10 elementos debido que si ingresamos números
4 pares de del 1 a 20 van a existir 10 números pares.
5 (i, i[0..n]) // Declarar el arreglo A
6 i<-0; // Inicializa i=0, será utilizado como contador
7 (x, i[1..n]) // Declarar variable x que genera lo números de 1 al 20
8 Para (x ← 1, x ≤ 20, x++) // Inicia bucle para, que trabaja con variable x inicia en
9 1 hasta 20
10 Si((x mod 2)==0) // Condición que evalué si el valor de x es par
11 A[i] = x; // Si es par entonces el valor de x se almacena en el arreglo A[i],
12 cuando i inicia en la posición o
13 i = i + 1; // Cada vez que se repite una interacción de número par i se
14 incrementa
15 fin Si // Finaliza la condición
16 fin Para // Finaliza bucle para,
17 // Finaliza el ciclo ya que gira hasta llegar a x=20 y tendrá almacenados
18 // Imprimir en pantalla en orden ascendente al arreglo A
19 Para(x ← 0, (x = i - 1), x++) // Inicia bucle para, con la variable x que inicia desde 0
20 hasta (i-1) por qué? Debido que i tienen la contabilización exacta de cuantos números
21 pares existen, necesita repetir la cantidad de veces el iterador para que imprima todos
22 los números que se encuentran dentro del arreglo A
23 << presentar “A[x]”; //Imprimir en pantalla en orden ascendente al arreglo A
24 Fin_para // Finaliza bucle para
25 Fin

141 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas SEGUNDO BIMESTRE

Miniespecificación

Nro Miniespecificación
1 Inicio
2 // Declarar de variables

3 (A[10]) // Declarar el arreglo A con 10 elementos debido que si ingresamos números


4 pares de del 1 a 20 van a existir 10 números pares.

5 (i, i[0..n]) // Declarar el arreglo A


6 i=0; // Inicializa i=0, será utilizado como contador
7 (x, i[1..n]) // Declarar variable x que genera lo números de 1 al 20
8 Para (x=1 hasta 20) // Inicia bucle para, que trabaja con variable x inicia en 1 hasta 20
9 Si((x mod 2)==0) // Condición que evalué si el valor de x es par
10 A[i]=x; // Si es par entonces el valor de x se almacena en el arreglo A[i], cuando
11 i inicia en la posición o

12 i=i+1; // Cada vez que se repite una interacción de número par i se incrementa
13 finSi // Finaliza la condición
14 fin_para // Finaliza bucle para,
15 // Finaliza el ciclo ya que gira hasta llegar a x=20 y tendrá almacenados

16 // Imprimir en pantalla en orden ascendente al arreglo A

17 Para(x=0 hasta (x=i-1)) // Inicia bucle para, con la variable x que inicia desde 0 hasta
18 (i-1) por qué? Debido que i tienen la contabilización exacta de cuantos números pares

19 existen, necesita repetir la cantidad de veces el iterador para que imprima todos los

20 números que se encuentran dentro del arreglo A

21 << presentar “A[x]”; / Imprimir en pantalla en orden ascendente al arreglo A


22 Fin_para // Finaliza bucle para

23 Fin

142 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas SEGUNDO BIMESTRE

Prueba de escritorio

Variables
A[10] i x
0 1 (1 mod 2)==0 no
A[0] = 2 1 2 (2 mod 2)==0 si
3 (3 mod 2)==0 no
A[1]=4 2 4 (4 mod 2)==0 si
5 (5 mod 2)==0 no
A[2]=6 3 6 (6 mod 2)==0 si
7 (7 mod 2)==0 no
A[3]=8 4 8 (8 mod 2)==0 si
9 (9 mod 2)==0 no
Valores A[4]=10 5 10 (10 mod 2)==0 si
11 (11 mod 2)==0 no
A[5]=12 6 12 (12 mod 2)==0 si
13 (13 mod 2)==0 no
A[6]=14 7 14 (14 mod 2)==0 si
15 (15 mod 2)==0 no
A[7]=16 8 16 (16 mod 2)==0 si
17 (17 mod 2)==0 no
A[8]=18 9 18 (18 mod 2)==0 si
19 (19 mod 2)==0 no
A[9]=20 10 20 (20 mod 2)==0 si

¿Cómo le fue con los ejercicios propuestos?. Si todavía tiene inquietudes respecto
a la temática, a continuación lo invitamos a revisar el siguiente recurso de apoyo.

Codificación
Ingresar al siguiente enlace para ver la codificación en un
lenguaje de programación del ejercicio propuesto:
• http://purl.org/taw-sbc-utpl/algorithm/unit6/coding

Es importante que revise y desarrolle los ejercicios


propuestos que se encuentran en capítulo 4 del texto
básico, con esto puede apoyarse para consolidar más su
aprendizaje en este tema. ¡Adelante!

143 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas SEGUNDO BIMESTRE

6.2. Arreglos bidimensionales o matrices

Estimado estudiante, previo al inicio de la presente temática,


es importante que revise los contenidos del Capítulo 4,
sección 4.2: Arreglos bidimensionales, del texto básico.

A continuación se realiza la explicación de la temática y el desarrollo de ejercicios


para su mejor comprensión.

Los arreglos bidimensionales o también llamados matrices, son estructura


de datos organizadas en forma de tabla, es decir, en filas y columnas. Cada
elemento tiene una posición que se identifica mediante dos índices: el de su
fila y el de su columna.

Un arreglo bidimensional tiene los siguientes elementos:

• Nombre del arreglo, identifica la estructura de datos.


• Un primer subíndice, representa las filas del arreglo.
• Un segundo subíndice, representa las columnas del arreglo.
• La intersección entre las filas y columnas, que genera un espacio de
almacenamiento para almacenar un elemento de información o valor.

A continuación se presenta la sintaxis que se va a utilizar para definir arreglos


bidimensionales ya sea al momento de desarrollar algoritmos, miniespecificación
o diagramas de flujo.

Algoritmo Miniespecificación Diagrama de flujo


Declaración A [50, 50] A (50, 50), i [1 – n]

Asignación A [i, j] ← 10 A (i, j) ← 10

144 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas SEGUNDO BIMESTRE

En la Figura 21 se puede observar los elementos que conforman un arreglo


bidimensional o matriz.

Donde, i es el subíndice para la filas y j el subíndice para las columnas.

Columna 1 Columna 2 Columna 4 Columna 5


Fila 1 11 12 13 14
3 24 63 34
Fila 2 21 22 23 24
113 44 7 56
Fila 3 31 32 33 34
58 12 79 77
Fila 4 41 42 43 44
43 201 303 91

i, j

Figura 21. Elementos de un arreglo bidimensional


Fuente: Mancilla, (2014)
Elaboración: Cabrera, M.; Tenesaca, G., (2018)

Importante:
Para leer, realizar operaciones y recorrer un arreglo bidimensional
se requiere de estructuras de control repetitivas que permitan
avanzar por cada una de las posiciones de la matriz. Se puede
utilizar las estructuras de control: Para, Mientras que o Hacer
Hasta.

Luego de haber analizado los componentes de un arreglo bidimensional,


continuamos con el desarrollo de ejercicios para fortalecer lo aprendido.

Ejemplo 6.1 Leer las matrices A y B, obtener la suma en una nueva matriz C y
presentar la matriz C.

145 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas SEGUNDO BIMESTRE

Análisis:

Dadas dos matrices A y B de n elementos se solicita realizar la suma de las dos


matrices y obtener una nueva matriz C. La suma de matrices sobre la matriz C se
obtiene C = A + B.

Supongamos que el tamaño de las matrices es n = 3, entonces el resultado de la


suma sería:

C = A + B
3 6 14 2 3 9 1 3 5
19 12 24 = 12 7 15 + 7 6 9
10 8 21 8 0 11 2 8 10

Figura 22. Suma de matrices


Elaboración: Cabrera, M.; Tenesaca, G., (2018)

Cada elemento de la matriz C es el resultado de la suma del elemento de la matriz


A con el elemento de la matriz B, en la misma posición, esto se representa:

C (i, j) = A(i, j) + B(i, j), donde i y j son menor o igual a n. En el ejemplo, para
obtener las filas de la matriz C se realiza lo siguiente:

Fila 1

C (1, 1) = A(1, 1) + B(1, 1) → C (1, 1) = 2 + 1 → C (1, 1) = 3


C (1, 2) = A(1, 2) + B(1, 2) → C (1, 2) = 3 + 3 → C (1, 2) = 6
C (1, 3) = A(1, 1) + B(1, 1) → C (1, 1) = 2 + 1 → C (1, 1) = 14

Fila 2

C (2, 1) = A(2, 1) + B(2, 1) → C (2, 1) = 2 + 1 → C (2, 1) = 3


C (2, 2) = A(2, 2) + B(2, 2) → C (2, 2) = 3 + 3 → C (2, 2) = 6
C (2, 3) = A(2, 1) + B(2, 1) → C (2, 1) = 2 + 1 → C (2, 1) = 3

146 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas SEGUNDO BIMESTRE

Fila 3

C (3, 1) = A(3, 1) + B(1, 1) → C (3, 1) = 2 + 1 → C (3, 1) = 3


C (3, 2) = A(3, 2) + B(1, 2) → C (3, 2) = 3 + 3 → C (3, 2) = 6
C (3, 3) = A(3, 1) + B(1, 1) → C (3, 1) = 2 + 1 → C (3, 1) = 3

Entendido el problema planteado, se debe encontrar la lógica para automatizar el


proceso realizado. Para esto, consideremos los siguientes puntos:

• Se requiere el tamaño de las matrices a sumar, el mismo puede ser


definido dentro del algoritmo o como dato de entrada solicitado al
usuario. En el caso de las matrices cuadradas es suficiente con solicitar
una vez el tamaño (n). Caso contrario se deberá solicitar tanto el
número de filas (n) como el número de columnas (m).

• Se requiere dos variables de tipo contador, que serán los subíndices


de la matriz, en este caso i para recorrer las filas y j para recorrer las
columnas.

• Se requiere estructuras repetitivas anidadas, la primera estructura


recorrerá las filas y la otra estructura las columnas. Recuerde que por
cada fila que se recorra se recorrerá todas las columnas.

• Finalmente se debe considerar las operaciones necesarias para


resolver el problema, para el ejemplo planteado sería la suma de
matrices.

A continuación se presenta el algoritmo, miniespecificación y diagrama de flujo de


ejercicio planteado.

147 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas SEGUNDO BIMESTRE

Algoritmo
Inicio
//declaración de variables
Entero: A [100, 100], b [100, 100], C [100, 100] //declaración de matrices
Entero: n //tamaño de las matrices
Entero: i //subíndice para las filas
Entero: j // subíndice para las columnas
//inicialización de variables
i ← 1, j ← 1, n ← 0
//se solicita el tamaño de las matrices
Escribir "Ingrese el tamaño para las matrices A, B y C"
Leer n
//Ingreso de la matriz A
Para (i ← 1, n, 1) entonces
Escribir “Ingrese los elementos de la fila”, i
Para (j← 1, n, 1) entonces
Leer A[i,j]
Fin_Para
Fin_Para
//Ingreso de la matriz B → Con la estructura Para no es necesario reiniciar el contador
Para (i ← 1, n, 1) entonces
Escribir “Ingrese los elementos de la fila”, i
Para (j← 1, n, 1) entonces
Leer B[i,j]
Fin_Para
Fin_Para
//Calcular la suma de las matrices A y B en una matriz resultante C
Para (i ← 1, n, 1) entonces
Para (j← 1, n, 1) entonces
Calcular: C[i,j] ← A[i,j] + B[i,j]
Fin_Para
Fin_Para
//Presentar la matriz resultante C
Para (i ← 1, n, 1) entonces
Para (j← 1, n, 1) entonces
Escribir “El elemento de la matriz C en”, i, “,”, j, “es”, C[i, j]
Fin_Para
Fin_Para
Fin

148 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas SEGUNDO BIMESTRE

Diagrama de flujo

F
V V

F V

149 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas SEGUNDO BIMESTRE

Nro Miniespecificación
1 Inicio
2 //declaración de variables
3 A [100, 100], i [1 – n] //declaración de matriz A
4 B [100, 100], i [1 – n] //declaración de matriz B
5 C [100, 100] , i [1 – n] //declaración de matriz C
6 n, i[1 - n] //tamaño de las matrices
7 i, i[1 - n] //subíndice para las filas
8 j, i[1 - n] //subíndice para las columnas
9 //inicialización de variables
10 i ← 1, j ← 1, n ← 0
11 //se solicita el tamaño de las matrices
12 << "Ingrese el tamaño para las matrices A, B y C"
13 >> n
14 //Ingreso de la matriz A
15 Para (i ← 1, n, 1) entonces
16 Escribir “Ingrese los elementos de la fila”, i
17 Para (j← 1, n, 1) entonces
18 >> A[i, j]
19 Fin_Para
20 Fin_Para
21 //Ingreso de la matriz B → Con la estructura Para no es necesario reiniciar el contador
22 Para (i ← 1, n, 1) entonces
23 Escribir “Ingrese los elementos de la fila”, i
24 Para (j← 1, n, 1) entonces
25 >> B[i,j]
26 Fin_Para
27 Fin_Para
28 //Calcular la suma de las matrices A y B en una matriz resultante C
29 Para (i ← 1, n, 1) entonces
30 Para (j← 1, n, 1) entonces
31 C[i,j] ← A[i,j] + B[i,j]
32 Fin_Para
33 Fin_Para
34 //Presentar la matriz resultante C
35 Para (i ← 1, n, 1) entonces
36 Para (j← 1, n, 1) entonces
37 << “El elemento de la matriz C en”, +i, “,”, +j, “es”, +C[i, j]
38 Fin_Para
39 Fin_Para
40 Fin

150 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas SEGUNDO BIMESTRE

Prueba de escritorio

Variables
n i j A [i, j] B [i, j] C [i, j]
3 1 1 2
2 3
3 5
2 1 12
2 7
3 15
3 1 8
2 0
3 11

1 1 1
2 3
3 5
2 1 7
Valores
2 6
3 9
3 1 2
2 8
3 10

1 1 3
2 6
3 14
2 1 19
2 13
3 24
3 1 10
2 8
3 21

151 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas SEGUNDO BIMESTRE

Codificación
Ingresar al siguiente enlace para ver la codificación en un
lenguaje de programación del ejercicio propuesto:
http://purl.org/taw-sbc-utpl/algorithm/unit6/coding

¿Qué le pareció la temática sobre arreglos bidimensionales?. Si aún quedan


dudas pendientes, es conveniente que nuevamente revise la sección 4.3
del texto básico – Algoritmos resueltos, así como los recursos bibliográficos
complementarios.

A continuación se presentan algunos ejercicios propuestos para poner en práctica


lo aprendido.

Ejercicios propuestos
De los ejercicios propuestos en la sección 4.4 – Ejercicios
propuestos, del texto básico, desarrolle los ejercicios
impares entre el 1 al 20.

Para revisar la resolución de los ejercicios propuestos


ingresar al siguiente enlace: http://purl.org/taw-sbc-utpl/
algorithm/unit6/solutions

¿Ha desarrollado con éxito los ejercicios propuestos?. Si tiene alguna inquietud
todavía, los siguientes recursos de apoyo sobre estructuras de datos le ayudarán
a fortalecer las temáticas planteadas en esta unidad.

Recursos de apoyo
Revisar el siguiente recurso:
http://purl.org/taw-sbc-utpl/algorithm/unit6/v1_matrices

152 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas SEGUNDO BIMESTRE

Luego de revisar el recurso de apoyo, conocemos con mayor seguridad


la importancia de las estructuras de datos. Ahora nos podemos hacer una
pregunta fundamental, ¿Cuál es la función de una estructura de datos?. Como
observamos en el recurso de apoyo, las estructuras de datos nos permiten
almacenar un conjunto de valores en la memoria de la computador, es decir
que si necesitamos recuperar un valor que ha sido ingresado y almacenado
en un arreglo, unidimensional o bidimensional, podemos acceder fácilmente,
únicamente debemos conocer la ubicación en la que se encuentra el elemento.

Llevando esto a la vida real, imagine que usted guarda carpetas de


documentación en un archivador, y cada carpeta es etiquetada con una letra.
Si queremos acceder a cierta información, debemos ir al archivador que sería
el equivalente al arreglo o matriz, y buscamos la letra donde se encuentra
la carpeta con la documentación, que sería equivalente a la ubicación del
elemento en el arreglo. Una vez ahí únicamente extraemos la información que
necesitamos.

¡Mucho más claro, verdad!. Continuemos con la siguiente actividad.

Estimado estudiante ¿Ya realizó los ejercicios propuestos?


¡Qué bien!. A continuación lo invitamos a realizar la siguiente
autoevaluación para medir sus conocimientos.

Recuerde también que es importante realizar las actividades


planteadas como interacción en el Entorno Virtual de
Aprendizaje para afirmar sus conocimientos obtendrá
retroalimentación de sus tutores y demás compañeros.

153 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas SEGUNDO BIMESTRE

Autoevaluación 6

Analice las siguientes preguntas de opción múltiple y seleccione la respuesta


correcta.

1. Un subíndice es:

a. Un elemento del arreglo


b. Nombre alterno de un arreglo
c. Número que indica la posición de un elemento en un arreglo

2. Cada valor de datos en un arreglo se llama:

a. Tipo de dato
b. Subíndice
c. Elemento

3. Es un tipo de datos estructurados compuesta por un conjunto de elementos,


de tamaño fijo y elementos homogéneos (del mismo tipo), los cuales son
direccionados por un único subíndice

a. Arreglo bidimensional
b. Arreglo unidimensional
c. multidimensional

154 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas SEGUNDO BIMESTRE

4. Cuál de las siguientes opciones es correcta para presentar los elementos de


un arreglo bidimensional (A).

a. Para (i ← 1, n, 1) entonces
Para (j← 1, n, 1) entonces
<< A[i, j]
Fin_Para
Fin_Para
b. i←1
Para (j← 1, n, 1) entonces
A[i, j] ← 0
Fin_Para
c. Para (i ← 1, n, 1) entonces
j← 1
<< A[i, j]
Fin_Para

5. ¿Cuál es el resultado de la siguiente miniespecificación?

1. Inicio
2. A [100, 100], i [1 – n]
3. n, i, j, i[1 – n]
4. n ← 3
5. Para (i ← 1, n, 1) entonces
6. Para (j← 1, n, 1) entonces
7. A[i, j] ← 0
8. Fin_Para
9. Fin_Para
10. Fin

a. Asigna a la primera fila y primera columna el valore de 0.


b. Asigna a la última fila y última columna el valore de 0.
c. Asigna a todos los elemento de la matriz el valor de 0

155 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas SEGUNDO BIMESTRE

6. Con la siguiente miniespecificación identifique a qué elementos de la matriz


se les asigna el valor de 1.

1. Inicio
2. n, i, j, i[1 – n], A [100, 100]
3. n←3
4. Para (i ← 1, n, 1) entonces
5. Para (j← 1, n, 1) entonces
6. Si (i + j) == (n + 1) entonces
7. A[i, j] ← 1
8. Fin_Si
9. Fin_Para
10. Fin_Para
11. Fin

a. Los elementos de la diagonal principal


b. Los elementos de la triangular inferior
c. Los elementos de la diagonal secundaria

Estimado estudiante al final de la guía se encuentra el


SOLUCIONARIO, para solventar alguna duda lo invitamos a
revisar nuevamente los contenidos para que pueda reforzar
su aprendizaje.

Felicidades!! Hemos culminado los contenidos planificados


en la asignatura. Este es un gran paso en el inicio de su
carrera profesional, esperamos que el aprendizaje obtenido
en la materia sea de gran ayuda en el siguiente ciclo.

Le deseamos muchos éxitos en el transcurso de su vida


universitaria.

156 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas SOLUCIONARIO

7. Solucionario

Autoevaluación 1
Pregunta Respuesta Retroalimentación
1 b La opción correcta es la b, dado que la Informática como
ciencia estudia el tratamiento de la información a través de
máquinas de procesamiento electrónico de datos al servicio
de una sociedad digital y global, se basa tanto en la tecnología
como en la capacidad racional humana.
Revisar el texto básico, sección 1.1 – Concepto de lógica.
2 a La opción correcta es la a, el símbolo conector. Este es un
símbolo especial dentro de los diagramas de flujo y tiene como
función trasladar el control del programa a otra parte dentro
del mismo diagrama. Cada conector deberá contar con un
identificador único.
Revisar la guía didáctica, sección 1.7.2 – Estándar ANSI/ISO
5807 – 1985 para diagramas de flujo.
3 c La opción correcta es la c porque un algoritmo es un conjunto
finito de reglas bien definidas en su lógica de control que
permiten la solución de un problema en una cantidad finita
de tiempo. En la resolución del problema con las reglas
mencionadas, el algoritmo realiza un conjunto de pasos
cuya ejecución para dar la solución del problema puede ser
ejecutada manualmente, mecánicamente o utilizando una
máquina de procesamiento electrónico de datos.
Revisar el texto básico, sección 1.2.2 – Algoritmos.
4 a Esta ventaja corresponde a los diagramas de flujo, debido
a que un diagrama de flujo es uno de los entregables más
comunes en la fase de análisis de un programa y sirven como
referencia para que sean interpretados por los programadores.
Por lo tanto la opción correcta es la a.
Revisar la guía didáctica, sección 1.7.1 – Ventajas de los
diagramas de flujo.

157 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas SOLUCIONARIO

Autoevaluación 1
Pregunta Respuesta Retroalimentación
5 b La opción correcta es la b, debido a que una computadora es
un dispositivo electrónico, utilizado para procesar información
y obtener resultados, capaz de ejecutar cálculos y tomar
decisiones a velocidades millones o cientos de millones más
rápidas que puedan hacerlo los seres humanos.
Revisar el texto básico, sección 1.5 – Máquinas de
procesamiento electrónico de datos.
6 c Esta definición corresponde a los símbolos especiales, la
opción c. A la categoría de símbolos especiales pertenecen
típicamente los operadores aritméticos (+,-,*, /) y de
comparación (<,>, <>,=).
Revisar la guía didáctica, sección 1.6 – Lenguajes de
programación – sintaxis básicas.
7 a Los diagramas de flujo es uno de los entregables en la fases
de análisis y diseño en el ciclo de desarrollo de un programa,
dado que facilitan la comunicación entre los desarrolladores y
los clientes. Por lo tanto la opción correcta es la a.
Revisar la guía didáctica, sección 1.7 – Diagramas de flujo y su
representación
8 a La opción a es la correcta dado que un paralelogramo es un
símbolo de datos que representa los datos de entrada y salida.
Y soporta las operaciones de petición y muestra de datos.
Revisar la guía didáctica, sección 1.7.3 – Símbolos utilizados
en los diagramas de flujo.

158 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas SOLUCIONARIO

Autoevaluación 1
Pregunta Respuesta Retroalimentación
9 b La relación de los términos con su símbolos quedaría:

Por consiguiente la opción b es la correcta.


Revisar sección la guía didáctica, sección 1.7.3 – Símbolos
utilizados en los diagramas de flujo.

159 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas SOLUCIONARIO

Autoevaluación 1
Pregunta Respuesta Retroalimentación
10 a Los pasos a seguir para resolver el problema son:
1. Mostrar en pantalla un mensaje donde se solicite que el
usuario ingrese el mensaje a mostrar.
2. Se lee el mensaje ingresado por el usuario
3. Se presenta el mensaje en pantalla.
El algoritmo para resolver el problema es:
1. Inicio
2. Escribir “Ingresar el mensaje a mostrar en pantalla”
3. Leer mensaje
4. Escribir mensaje
5. Fin
A continuación se presenta la solución en diagrama de flujo,
por lo tanto la opción correcta es la a:

160 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas SOLUCIONARIO

Autoevaluación 2
Pregunta Respuesta Retroalimentación
1 c La opción correcta es c porque el Nibble es conocido como
“cuarteto o semiocteto”, que permite representar un número
binario de cuatro dígitos. Estos números van desde el 0000
(016) al 1111 (F16) y corresponden a un carácter del sistema
numérico hexadecimal.
Las opciones a y b son incorrectas.
Revisar la guía didáctica, sección 2.3 – Múltiplos y
submúltiplos del byte. Y del texto básico, la sección 2.2
Múltiplos y submúltiplos.
2 b La opción correcta es b porque el tipo de dato que se puede
usar es decimal porque debe almacenar el valor de un
producto y puede contener valores de 0 a 10; la opción a no es
correcta, byte por que recuerde solo almacena un conjunto de
ocho bits; la opción c es un tipo de variable que admite todos.
Revisar el sección 2.2 – Múltiplos y submútiblos del byte. de
la guía didáctica. Y del texto básico, la sección 2.2 Múltiplos y
submúltiplos.
3 b La opción b es correcta debido que 7 >= 7 retorna valor True
porque haciendo razonamiento sabemos que 7 es mayor
igual a 7; la opción a no es correcta ya que el carácter C
(mayúscula) no es igual c (minúscula); la opción c no es
correcta ya que desarrollando las operaciones matemáticas 9
no es igual 8.
Revisar la guía didáctica, sección 2.5 – Expresiones. Y el texto
básico, sección 2.5 – Expresiones.
4 a La opción a es correcta, porque la edad de una persona es de
0 hasta 110 años de edad; la opción b no puede ser ya que el
rango de edad es muy bajo desde de 0 a 10; la opción c no es
correcta, una persona no puede tener edad desde los 18 hasta
los 100 años de edad.
Revisar la guía didáctica, sección 2.6.2 – Naturaleza de los
datos. Y la bibliografía complementaria (Ramírez, 2007),
capítulo 4 – Naturaleza de los datos.

161 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas SOLUCIONARIO

Autoevaluación 2
Pregunta Respuesta Retroalimentación
5 c La opción correcta es c, precedencia explícita se provoca
mediante el uso de paréntesis, aquello que se encierra en
un paréntesis en una expresión es obligado a resolverse sin
respetar otras reglas de precedencia respecto a lo que está
afuera de los paréntesis; la opción a no es correcta porque
la procedencia posicional se presenta cuando tiene varias
expresiones; la opción b no es correcta porque la precedencia
implícita es aquella inherente a los operadores y la categoría a
la que pertenecen.
Revisar la guía didáctica, sección 2.4.5 Reglas de precedencia.
Y la bibliografía complementaria (Ramírez, 2007), capítulo 4.
6 b La expresión (a - b < 3 - c) and (c * 1 == a - b) es Falso, porque
reemplazando los valores de a = 2 , b = 4 , c = 6 genera en la
primera parte (-2 <4 == -2), lo cual genera inconsistencia de
valor. Por lo tanto la opción b es la correcta.
7 a La reglas para definir correctamente el nombre de una variable
son las numerales:
1) Siempre iniciar con letra, 5) Máximo 32 caracteres de
longitud, y 6) Representativo al valor que guarda.
Además se debe considerar las siguientes: Se recomienda
que debe componerse de letras y números, No contener
espacios en blanco ni caracteres generales (incluyendo letras
acentuadas y signos regionales) a excepción del guión bajo ( _
).
Revisar la guía didáctica, sección 2.6.1 – Variables. Y el texto
básico, sección 2.3 – Variables y tipos predefinidos.

162 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas SOLUCIONARIO

Autoevaluación 2
Pregunta Respuesta Retroalimentación
8 c La opción correcta es c porque la clave formada por una letra
“Z” y 5 números con regla de ningún número puede ser 0 es
X(6) [1 {Z}, 5 {1-9}], debido qué solicita una sola letra Z, 5
números no puede haber 0 entonces el rango es de 1 a 9.
La opción a no es correcta porque en el rango de números
incluye el valor de 0 y la opción b no es correcta por que el
rango de letras incluye más de una letra todo el alfabeto de
A-Z solo necesita 1 letra ”Z”.
Revisar la guía didáctica, sección 2.6.2 – Naturaleza de los
datos. Y la bibliografía complementaria (Ramírez, 2007),
capítulo 4 – Naturaleza de los datos.
9 c No describe el tipo de dato de una variable opción c porque
indica un contexto ambiguo sin relación a tipo de dato.
Revisar la guía didáctica, sección 2.6.2 – Naturaleza de los
datos. Y la bibliografía complementaria (Ramírez, 2007),
capítulo 4 – Naturaleza de los datos.
10 b No es una declaración válida la opción b porque la variable
precioProducto es una variable numérica y se le esta
asignando el valor ”24.95” que es una cadena.
La opción a es una declaración válida porque costoProducto
=100 variable y valor de asignación correcto. Y la opción
c es también una declaración válida porque a la variable
costoProducto le asigna precioProducto -10 que son del mismo
tipo numérico.
Revisar la guía didáctica, sección 2.6.1 – Variables. Y el texto
básico, sección 2.3 – Variables y tipos predefinidos.

163 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas SOLUCIONARIO

Autoevaluación 3
Pregunta Respuesta Retroalimentación
1 c La opción c es la correcta, dado que el ciclo de desarrollo de
un programa nos proporciona cuatro fases que nos permiten
dar solución a un problema de forma más precisa. Estas fases
se siguen de acuerdo al siguiente orden.
1. Fase de análisis
2. Fase de diseño
3. Fase de codificación
4. Fase de pruebas e implementación.
Revisar la guía didáctica, sección 3.1 – Ciclo de desarrollo
de un programa. Y la bibliografía complementaria (Ramírez,
2007), capítulo 6 – Algoritmos para el análisis de casos reales.
2 c La fase de análisis consiste en descomponer el todo en sus
partes, con el fin de comprender y dar solución a problemas de
la vida real. El objetivo es analizar detalladamente el problema
planteado para determinar las posibles soluciones y levantar
los requerimientos necesarios para resolver el mismo. Por lo
tanto la opción c es la correcta.
Revisar la guía didáctica, sección 3.1.1 – Fase de análisis. Y
la bibliografía complementaria (Ramírez, 2007), capítulo 6 –
Algoritmos para el análisis de casos reales.
3 a La opción correcta es la a, debido a que en el ciclo de
desarrollo de un programa, el cliente se involucra en la fase de
pruebas e implementación. En esta fase el cliente puede medir
si el programa cumple con todos los requerimientos solicitados
desde el inicio en la fase de análisis. De no ser así, se debe
revisar nuevamente las fases previas.
Revisar la guía didáctica, sección 3.1.4 – Fase de pruebas e
implementación. Y la bibliografía complementaria (Ramírez,
2007), capítulo 6 – Algoritmos para el análisis de casos reales.

164 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas SOLUCIONARIO

Autoevaluación 3
Pregunta Respuesta Retroalimentación
4 a La opción a es la correcta porque en la fase de diseño se
da respuesta a esta pregunta, y el objetivo de esta fase es
traducir técnicamente los requerimientos del cliente obtenidos
en la fase de análisis a una forma abstracta y estandarizada.
Revisar la guía didáctica, sección 3.1.2 – Fase de diseño. Y
la bibliografía complementaria (Ramírez, 2007), capítulo 6 –
Algoritmos para el análisis de casos reales.
5 a Un algoritmo es un conjunto ordenado y finito de asignaciones,
procesos, cálculos y decisiones que permiten a un programa
satisfacer una unidad de funcionalidad dada.
Un algoritmo no puede estar sin orden, ya que para la
resolución de problemas se necesita seguir una secuencia
lógica de pasos. Y no puede ser infinito dado que nunca se
llegaría a resolver el problema planteado. Por lo tanto la opción
a es la correcta.
Revisar la guía didáctica, sección 3.2 – Primitivas algorítmicas.
Y el texto básico, capítulo 3 – Primitivas algorítmicas.
6 c La opción c es la correcta, dado que la aceptación del
programa se realiza en la fase pruebas e implementación. Es
en esta fase donde el cliente valida si el programa cumple con
los requerimientos solicitados, de ser así acepta el programa,
caso contrario se debe evaluar en las fases anterior porque no
se cumplen todos los requerimientos dados.
Revisar la guía didáctica, sección 3.1.4 – Fase de pruebas e
implementación. Y la bibliografía complementaria (Ramírez,
2007), capítulo 6 – Algoritmos para el análisis de casos reales.

165 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas SOLUCIONARIO

Autoevaluación 3
Pregunta Respuesta Retroalimentación
7 b Para resolver el problema planteado se debe identificar los
datos de entrada, los del proceso y los de salida.
Los datos de entrada son: largo, ancho y costo por metro
cuadrado.

Los procesos a realizarse son: calcular el área del terreno,


calcular el valor del terreno y calcular el descuento.

La salida a obtener: Costo total del terreno.

Como se puede observar en los datos de entrada, en el


algoritmos dado el dato faltante para resolver el problema es el
costo por metro cuadrado.
Por lo tanto la opción correcta es la b.
8 a En base al problema planteado, la opción a es la opción
correcta debido a que cumple con las especificaciones dadas
al inicio por el cliente.
La opción b no cumple con el rango dado. Y la opción c no
cumple debido a que la salida presentada no es la solicitada
por el cliente.

166 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas SOLUCIONARIO

Autoevaluación 4
Pregunta Respuesta Retroalimentación
1 b La opción correcta es b Condicional compuesta por que solo
ejecuta las primitivas de control cuando es verdadera y cuando
la condición es falsa; la opción a no es correcta porque solo
ejecuta la condición solo cuando es verdadera; la opción c es
un ciclo repetitivo.
Revisar la guía didáctica, sección 4.2 – Estructura lógica
condicional compuesta. Y el texto básico, sección 3.4 –
Estructura lógica condicional compuesta.
2 c La opción c es correcta ya que Dependiendo_De es una
estructura condicional compuesta que permite la ejecución
de un conjunto de primitivas de control(pi), en la que el
cumplimiento de la condición de la estructura en mención
hace posible la ejecución de las instrucciones entre muchas
alternativas no solo por el cumplimiento verdadero de la
condición, punto por el cual se ejecutan las primitivas p1..
pn sino el cumplimento de la condición cuando es falsa; la
opción a no es correcta porque condicional simple permite
ejecuciones de las primitivas p1…pn si las condición es
verdadera o se cumple; la opción b no es correcta porque solo
ejecuta las primitivas de control cuando es verdadera y cuando
la condición es falsa
Revisar la guía didáctica, sección 4.2 – Estructura lógica
condicional compuesta. Y el texto básico, sección 3.5 –
Estructura lógica Dependiendo De.

167 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas SOLUCIONARIO

Autoevaluación 4
Pregunta Respuesta Retroalimentación
3 b La respuesta correcta es opción b alternativa 2 porque el
problema requiere solucionar el incremento del salario de un
empleado en un 25% siempre y cuando gane 750 dólares o
más, por ello, se aplica una condición simple en la que controla
si el salario es mayor o igual a 750 entonces a la variable
salario se le asigna el valor de salario + (salario *0.25); la
opción a no es correcta porque en la condición simple indica
que si el salario es mayor o igual a 750 entonces a la variable
salario le asigna el valor de (salario *0.25) sin embargo no
almacena el valor de salario; la opción c no es correcta porque
si la condición simple salario es mayor a 750 entonces a
la variable salario le almacena salario +(salario *0.25) y no
almacenaría cuando la variable salario sea igual a 750.
Revisar la sección 4.1 – Estructura lógica condicional, de la
guía didáctica y el texto básico en la sección 3.2 – Concepto
de primitivas básicas.
4 c Respuesta correcta opción c porque en la condición simple Si
la edad es mayor o igual a 18 presenta la edad, caso contrario
presentar incorrecto, la opción a no es correcto porque la
condición indica si la edad es mayor a 18 años presentar
la edad, caso contrario ingresar “incorrecto”, lo que aquí no
realizaría la solución adecuada ya que solo evalúa edad mayor
a 18 o sea puede ser desde 18.1 y no desde igual a 18 y es
cuando también es mayor de edad; la opción b no es correcta
porque la condición indica si la edad es mayor o igual a 18
años presentar la edad, caso contrario ingresar “incorrecto”,
lo que aquí no realizaría la solución adecuada porque lo que
debe hacer es presentar la palabra incorrecto y no ingresar.
Tomar en cuenta los operadores >>, <<.
Revisar la sección 4.1 – Estructura lógica condicional, de la
guía didáctica y el texto básico en la sección 3.2 – Concepto
de primitivas básicas.

168 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas SOLUCIONARIO

Autoevaluación 4
Pregunta Respuesta Retroalimentación
5 b La respuesta correcta es b porque se solicita resolver el
siguiente problema si un usuario que adquiere 3 productos su
costo final es mayor a 200 dólares se realiza un descuento
de 15%, el algoritmo debe mostrar el total, descuento y el
algoritmo los que hace es primero ingresar los 3 productos y
los almacena en 3 variables diferentes, luego a variable total le
asigna la suma de los 3 productos (total= prod1+prod2+prod3)
con ello con la condición simple Si controla (total es mayor a
200) entonces a la variable descuento le asigna total * 15%
de descuento, finalizado el control a la variable total asigna
la suma de total y descuento total=(Total+desc), finalmente
presental los valores de total y descuento.
Las opciones a y c no son correctas.
Revisar la sección 4.1 – Estructura lógica condicional, de la
guía didáctica y el texto básico en la sección 3.2 – Concepto
de primitivas básicas.
6 V, F El primer enunciado es V porque en efecto la condición se
refiere a una decisión que se debe tomar en la lógica de
control y el segundo enunciado es F porque La “decisión”
implica la solución a una pregunta que se estructura en la
condición, no en un ciclo repetitivo.
Revisar la sección 4.1 – Estructura lógica condicional, de la
guía didáctica y el texto básico en la sección 3.3 – Estructura
lógica condicional simple.
7 c La opción correcta es c porque la condición controla el área
según su expresión y presenta el área y sale del ciclo de
control, por tanto es una condicional simple; la opción a no es
correcta; la opción b no es correcta.
Revisar la sección 4.1 – Estructura lógica condicional, de la
guía didáctica y el texto básico en la sección 3.3 – Estructura
lógica condicional simple.

169 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas SOLUCIONARIO

Autoevaluación 4
Pregunta Respuesta Retroalimentación
8 b La opción correcta es b porque se desea resolver un programa
que permite obtener y presentar el cubo de un número,
siempre y cuando el número sea menor a 60, caso contrario
debería obtener y presentar el cuadrado del número indicado,
por ello, la condición simple con la variable número controla
si numero es menor a 60 entonces a la variable cuadrado le
asigna numero elevado a 3(cuadrado <-- numero ^ 3), luego
presentar el valor de cuadrado, sino se cumple la condición
a la variable cubo le asigna numero elevado a 2 (cubo <--
numero ^ 2) y presentar el valor de cubo y finalizar; la opción a
no es correcta; la opción c no es correcta.
Revisar la sección 4.1 – Estructura lógica condicional, de la
guía didáctica y el texto básico en la sección 3.4 – Estructura
lógica condicional compuesta.
9 c La opción de respuesta correcta es c porque se desea dar
solución a un programa que permita determinar si alguien
tiene la edad para entrar a la universidad en un país (el
país tiene como ley que los estudiantes pueden ingresar a
la universidad sólo si tienen 20 años, en ningún otro caso).
Si la persona cumple con la edad presentar un mensaje de
“ingreso exitoso”, en caso que no tenga la de edad presentar
un mensaje de “edad incorrecta”, por ello la solución correcta
es con la condicional simple en la variable edad controla si la
edad es igual a 20 (Si edad == 20 entonces) presentar el texto
“ingreso exitoso” sino se cumple entonces presentar “edad
incorrecta” y finalizar el ciclo de control.
La opción a y b es incorrecta.
Revisar la sección 4.2 – Estructura lógica condicional
compuesta, de la guía didáctica y el texto básico en la sección
3.4 – Estructura lógica condicional compuesta.

170 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas SOLUCIONARIO

Autoevaluación 4
Pregunta Respuesta Retroalimentación
10 b La respuesta correcta es opción b, condicional DD
(Dependiendo_De) compuesta que permite la ejecución de un
conjunto de primitivas de control(pi), en la que el cumplimiento
de la condición de la estructura en mención hace posible la
ejecución de las instrucciones entre muchas alternativas no
solo por el cumplimiento verdadero de la condición, punto por
el cual se ejecutan las primitivas p1..pn sino el cumplimento de
la condición cuando es falsa.
La opción a y c es incorrecta.
Revisar la sección 4.3 – Estructura lógica Dependiendo De, de
la guía didáctica y el texto básico en la sección 3.5 – Estructura
lógica Dependiendo De.

171 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas SOLUCIONARIO

Autoevaluación 5
Pregunta Respuesta Retroalimentación
1 c La opción c es la correcta dado que un contador es una
variable cuyo valor se incrementa o decrementa en una
cantidad constante con la finalidad de contar sucesos o
acciones internas de un ciclo repetitivo. Por lo general un
contador es inicializado desde 0 o 1 y va incrementado de uno
en uno.
Revisar la guía didáctica, unidad 5 – Estructuras lógicas
repetitivas.
2 b Se llama incrementar al proceso de agregar el valor de 1 a
una variable denominada contador. Generalmente se utiliza
para trabajar con estructuras lógicas repetitivas. Por lo tanto la
opción b es la correcta.
Revisar la guía didáctica, unidad 5 – Estructuras lógicas
repetitivas.
3 c La opción c es la correcta debido a que un acumulador es una
variable que suma sobre sí misma un conjunto de valores,
para de esta forma almacenar la suma de todos ellos en una
sola variable. Los valores a almacenar varían en base a los
procesos y operaciones.
Revisar la unidad 5 de la guía didáctica.
4 a, d La diferencia entre la estructura Mientras que – Hacer y la
estructura lógica repetitiva Hacer – Hasta, es que la primera se
ejecuta únicamente si se cumple la condición, mientras que la
segunda se ejecuta al menos una vez, aunque la condición no
se cumpla.
Revisar la sección 5.1 y 5.2 de la guía didáctica. Y la sección
3.7 y 3.8 del texto básico.
5 c La opción c es la correcta, dado que se conoce como
estructuras anidadas cuando una estructura está dentro de
otra estructura. Se pueden anidar estructuras lógicas de
decisión así como estructuras lógicas de repetición.
Revisar la guía didáctica, la sección 5.4 – Estructuras lógicas
repetitivas anidadas.

172 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas SOLUCIONARIO

Autoevaluación 5
Pregunta Respuesta Retroalimentación
6 c Para obtener el valor de la variable i de la miniespecificación
se debe realizar una prueba de escritorio.
1 i ← 0
2 limite ← 5
3 Mientras i <= lim hacer
4 I ← i + 1
5 Fin_Mientras
6 << i

Variables
limite i
5 1
2
Valores 3
4
5
6

La salida de i = 6. Por lo tanto la opción c es la correcta.


7 b El bucle de comparación al final es la estructura lógica que
permite que el proceso se ejecute al menos una vez. La
estructura Hacer–Hasta es un bucle de comparación al final.
Por lo tanto la opción correcta es la b.
Revisar la sección 5.2 – Estructuras lógicas repetitivas Hacer –
Hasta, de la guía didáctica.

173 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas SOLUCIONARIO

Autoevaluación 5
Pregunta Respuesta Retroalimentación
8 c Para obtener la serie de la siguiente miniespecificación se
realiza la prueba de escritorio correspondiente.
1 i ← 0
2 limite ← 24
3 Mientras i < 24 hacer
4 Si i%6 == 0 entonces
5 << i
6 Fin Si
7 i=i+3
8 Fin mientras
Prueba de escritorio

Variables Salida
limite i << i
24 3 0
6
9 6
Valores 12
15 12
18
21 18
24

La serie resultante es: 0, 6, 12, 18. Por lo tanto la opción c es


la correcta.

174 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas SOLUCIONARIO

Autoevaluación 5
Pregunta Respuesta Retroalimentación
9 b Para que la estructura Mientras de la siguiente
miniespecificación se convierta en un bucle infinito, se debe
eliminar la línea 6. Para verificar esto se realiza la prueba de
escritorio.
1 Inicio
2 numero1, i[1 – n]
3 numero1 ← 1
4 Mientras numero1 <= 20 hacer
5 << numero1
6 numero1 ← numero1 + 1 //Eliminar esta línea
7 Fin_Mientras
8 Fin
Prueba de escritorio

Variables Salida
limite numero1 numero1 <= 20 <<numero1
20 1 1 <= 20 → Si 1
1 <= 20 → Si 1
1 <= 20 → Si 1
Valores 1 <= 20 → Si 1
1 <= 20 → Si 1

1 <= 20 → Si 1

Como se puede observar en la prueba de escritorio, el valor


de la variable numero1 nunca incrementa, por lo que siempre
se va a cumplir la condición de que numero1 va a ser menor o
igual que el límite(20). Es por ello, que la opción correcta es la
b.
10 b La opción correcta es la b, debido a que las estructuras lógicas
repetitivas son aquellas que permiten realizar la ejecución de
un conjunto de instrucciones de manera repetitiva mediante la
evaluación de una o más expresiones lógicas.
Revisar la guía didáctica, unidad 5 – Estructuras lógicas
repetitivas.

175 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas SOLUCIONARIO

Autoevaluación 6
Pregunta Respuesta Retroalimentación
1 c Un subíndice es el número que indica la posición de un
elemento dentro de un arreglo.
En los arreglos unidimensionales se utiliza un solo subíndice
→ A[i], donde i es el subíndice. Y en los bidimensionales se
utilizan dos A[i, j], donde i y j son los subíndices.
Revisar la guía didáctica, sección 6.1 – Arreglos
unidimensionales y la sección 6.2 – Arreglos bidimensionales o
matrices.
2 c Uno de los componentes de un arreglo es el elemento, que
es el valor de dato en una posición específica. Por lo tanto la
opción correcta es la c.
Revisar la guía didáctica, sección 6.2 – Arreglos
bidimensionales o matrices.
3 b La opción b es la correcta debido que un arreglo
unidimensional es un tipo de estructura de datos compuesta
por un conjunto de elementos, de tamaño fijo y homogéneos
(del mismo tipo), los cuales son direccionados por un único
subíndice. Caso contrario de los arreglos bidimensionales y
multidimensionales que están dirigidos por 2 o más índices.
Revisar la guía didáctica, sección 6.2 – Arreglos
bidimensionales o matrices.
4 a La opción correcta para presentar los elementos de una matriz
es la opción a.
Para (i ← 1, n, 1) entonces
Para (j← 1, n, 1) entonces
<< A[i, j]
Fin_Para
Fin_Para
La opción b es incorrecta debido a qué únicamente recorre
y presenta los elementos de la primera fila. Y la opción c,
únicamente recorre y presenta los elementos de la primera
columna.

176 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas SOLUCIONARIO

Autoevaluación 6
Pregunta Respuesta Retroalimentación
5 c Para identificar la opción de respuesta correcta se debe realizar la
prueba de escritorio de la miniespecificación.
1Inicio
2 A [100, 100], i [1 – n]
3 n, i, j, i[1 – n]
4 n ← 3
5 Para (i ← 1, n, 1) entonces
6 Para (j← 1, n, 1) entonces
7 A[i, j] ← 0
8 Fin_Para
9 Fin_Para
0Fin
Prueba de escritorio

Variables Salida
n i j A [i, j]
3 1 1 0
2 0
3 0
Valores 2 1 0
2 0
3 0
3 1 0
2 0

Como se puede observar la miniespecificación planteada asigna el


valor de cero a todos los elementos de la matriz A. Por lo tanto la
opción c es la correcta.

0 0 0
0 0 0
0 0 0

177 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas SOLUCIONARIO

Autoevaluación 6
Pregunta Respuesta Retroalimentación
6 c Para identificar a qué elementos de la matriz A se esta
asignando el valor de 1, se debe realizar la prueba de
escritorio de la siguiente miniespecificación
1 Inicio
2 n, i[1 – n]
3 n ← 3
4 Para (i ← 1, n, 1) entonces
5 Para (j← 1, n, 1) entonces
6 Si (i + j) == (n + 1) entonces
7 A[i, j] ← 1
8 Fin_Si
9 Fin_Para
10 Fin_Para
11 Fin

Variables
n i j (i + j) (n + 1) A [i, j]
3 1 1 2 4 --
2 3 4 --
3 4 4 1
2 1 3 4 --
Valores
2 4 4 1
3 5 4 --
3 1 4 4 1
2 5 4 --
3 6 4 --

Una vez terminada la prueba de escritorio observamos que se


ha asignado el valor de 1 a los elementos que conforman la
diagonal secundaria.

-- -- 1
-- 1 --
1 -- --

Finalmente se determina que la opción c es la correcta.

178 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas GLOSARIO

8. Glosario

A continuación se presentan los términos utilizados en la guía didáctica (Farrell,


2013):

acumulador: Variable que se usa para recopilar o acumular valores.

algoritmo: Secuencia de pasos necesarios para resolver cualquier problema.

anidar estructuras: Colocar una estructura dentro de otra.

arreglo: Serie o lista de variables en la memoria de una computadora, todas ellas


tienen el mismo nombre pero se distinguen con subíndices.

bit: Dígito binario; unidad de almacenamiento igual a un octavo de byte.

byte: Una unidad de almacenamiento en computadora; puede contener


cualquiera de 256 combinaciones de 0 y 1 que a menudo representan un carácter.

cadena: Describe datos que no son numéricos.

carácter: Una letra, número o símbolo especial como A, 7 o $.

ciclo: Estructura que repite acciones mientras continúa una condición.

ciclo anidado: Estructura de ciclo dentro de otra; son ciclos dentro de ciclos.

ciclo de desarrollo del programa: Pasos que ocurren durante la vida de un pro-
grama, entre los que se encuentran: planeación, codificación, traducción, prueba,
producción y mantenimiento del programa.

ciclo definido: Aquel para el cual el número de repeticiones es un valor


predeterminado.

179 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas GLOSARIO

ciclo hacer – hasta: Ciclo después de la prueba que itera hasta que la pregunta
que lo con- trola es falsa.

ciclo mientras – hacer: Un ciclo en el que un proceso continúa mientras alguna


condición sigue siendo verdadera.

ciclo externo: Ciclo que contiene un ciclo anidado.

ciclo indefinido: Aquel para el que no es posible predecir el número de


ejecuciones cuando se escribe el programa.

ciclo infinito: Flujo de lógica que se repite sin fin.

ciclo interno: Cuando los ciclos están anidados, el ciclo que está contenido
dentro del otro.

cláusula si – sino: Parte de una decisión que contiene la acción o acciones que
se ejecutan sólo cuando la expresión booleana en la decisión es falsa.

cláusula si-entonces: Parte de una decisión que mantiene la acción resultante


cuando la expresión booleana en la decisión es verdadera.

codificar del programa: Acto de escribir las declaraciones de un programa en un


lenguaje de programación.

código de programa: El conjunto de instrucciones que escribe un programador


en un lenguaje de programación.

código fuente: Declaraciones legibles
de un programa, escritas en un lenguaje


de programación.

comentario del programa: Declaración no ejecutable que colocan los programa-


dores dentro del código para explicar las declaraciones del programa en inglés.
Véase también documentación interna.

180 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas GLOSARIO

compilador: Software que traduce un lenguaje de alto nivel en lenguaje de


máquina
e identifica los errores de sintaxis. Un compilador es parecido a un
intérprete; sin embargo, traduce todas las declaraciones en un programa antes de
ejecutarlas.

constante numérica: Valor numérico específico.

contador: Cualquier variable numérica que se usa para contar el número de


veces
que un evento ha ocurrido.

declaración: Exposición que nombra una variable y su tipo de datos.

declaración de asignación: Aquella que almacena el resultado de cualquier


cálculo ejecutado en su lado derecho en la ubicación nombrada en su lado
izquierdo.

declaración de variables El proceso de nombrar variables del programa y


asignarles un tipo.

declaración fin de estructura: Aquella que designa el final de una estructura de


seudocódigo.

declaración Para: Declaración que puede usarse para codificar ciclos definidos;
también llamada ciclo para. La declaración contiene una variable de control de
ciclo que se inicializa, evalúa y altera en forma automática.

decrementar: Cambiar una variable al disminuirla por un valor constante, con


frecuencia 1.

diagrama de flujo: Representación gráfica de los pasos lógicos que se requieren


para resolver un problema.

elemento: Variable individual de un arreglo.

181 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas GLOSARIO

estructura: Unidad básica de lógica de programación; cada estructura es una


secuencia, selección o ciclo.

estructura dependiendo de: Aquella que evalúa una sola variable contra
múltiples valores, proporcionando acciones separadas para cada ruta lógica.

estructura de ciclo: Aquella que repite acciones mientras una condición de


prueba se mantiene verdadera.

estructura de decisión: Estructura de programa en la que se hace una pregunta


y, dependiendo de la respuesta, se emprende uno de dos cursos de acción.
Luego, sin importar cuál ruta se siga, las rutas se unen y se ejecuta la siguiente
tarea.

estructura de secuencia: Estructura de programa que contiene pasos que se


ejecutan en orden. Una secuencia puede contener cualquier cantidad de tareas,
pero no hay posibilidad de desviarse y de saltarse cual- quiera de las tareas.

estructura de selección: Estructura de programa que contiene una pregunta y


toma uno de dos cursos de acción dependiendo de la respuesta. Entonces, sin
importar cuál ruta se siga, la lógica del programa continúa con la siguiente tarea.

gigabyte: Mil millones de bytes.

incrementar: Cambiar una variable agregándole un valor constante, con


frecuencia

inicializar una variable: Acto de asignar el primer valor a una variable, a menudo
al mismo tiempo en que ésta se crea.

iteración: Otro nombre para una estructura de ciclo.

kilobyte: Aproximadamente 1000 bytes.

182 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas GLOSARIO

lenguaje de programación: Lenguaje como Visual Basic, C#, C++, Java o


COBOL, que se usa para escribir programas.

línea de comandos: La ubicación en una pantalla de computadora donde


se mecanografían entradas para comunicarse con el sistema operativo de la
máquina.

línea de flujo: Flecha que conecta los pasos en un diagrama de flujo.

lógica: Instrucciones que se dan a la computadora en una secuencia específica,


sin omitir ninguna ni agregar superfluas.

megabyte: Un millón de bytes.

memoria de acceso aleatorio (RAM): Almacenamiento interno temporal de la


computadora.

memoria de computadora: Almacena- miento interno temporal dentro de una


computadora.

nibble: Medida de almacenamiento igual a cuatro bits o medio byte.

numérico: Término que describe datos que consisten en números.

números reales: Números de punto flotante.

operador de asignación: Signo de igual; siempre requiere el nombre de una


ubicación de memoria en su lado izquierdo.

operador de comparación relacional: Símbolo que expresa comparaciones


lógicas (booleanas). Algunos ejemplos incluyen =, >, <, >=, <= y <>.

precedencia: Cualidad de una operación que determina el orden en el que se


evalúa.

183 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas GLOSARIO

programa principal: Aquel que se ejecuta de principio a fin y llama a otros


módulos; también se le conoce como método de pro- grama principal.

prueba de escritorio: Proceso de recorrer una solución de programa en papel.

repetición: Otro nombre para una estructura de ciclo.

salida: Describe la operación de recuperar información de la memoria y enviarla


a
un dispositivo, como un monitor o una impresora, de modo que las personas
puedan ver, interpretar y trabajar con los resultados.

seudocódigo: Representación en inglés de los pasos lógicos que se requieren


para resolver un problema.

símbolo de decisión: Aquel que representa una decisión en un diagrama de


flujo; tiene forma de diamante.

símbolo de entrada: Símbolo que indica una operación de entrada y se


representa en los diagramas de flujo como un paralelogramo.

símbolo de entrada/salida: Paralelogramo en los diagramas de flujo.

símbolo de procesamiento: Aquel que se representa como un rectángulo en los


diagramas de flujo.

símbolo de salida: Aquel que indica una operación de salida y se representa


como un paralelogramo en los diagramas de flujo.

símbolo I/O: Símbolo de entrada/salida.

símbolo terminal: Aquel que se usa en cada extremo de un diagrama de flujo; su


forma es una pastilla. También se le llama símbolo inicio/fin.

sintaxis: Reglas de un lenguaje.

184 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas GLOSARIO

sistema de cómputo: Combinación de todos los componentes requeridos para


procesar y almacenar datos usando una computadora.

subíndice: Número que indica la posición de un elemento particular dentro de un


arreglo.

tamaño del arreglo: Número de elementos que puede contener un arreglo.

tipo de datos: La característica de una variable que describe la clase de


valores que puede contener una variable y los tipos de operaciones que pueden
ejecutarse con ella.

unidad central de procesamiento (CPU): Pieza de hardware que procesa datos.

unión de archivos: Acto de combinar dos o más archivos mientras se mantiene


el orden secuencial.

usuarios (o usuarios finales): Personas que trabajan con los programas de


computadora y se benefician de ellos.

valores alfanuméricos: Conjunto de valores que incluyen caracteres alfabéticos,


números y puntuación.

variable: Ubicación de memoria nombrada de un tipo de datos específico, cuyo


contenido puede variar o diferir con el tiempo.

variable de cadena: Aquella que puede contener texto que incluya letras, dígitos
y caracteres especiales como signos de puntuación.

variable de control de ciclo: Aquella que determina si un ciclo continuará.

variable numérica: Aquella que contiene valores numéricos.

185 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas REFERENCIAS BIBLIOGRÁFICAS

9. Referencias bibliográficas

• Lógica para Computación. http://ocw.uned.ac.cr/eduCommons/ciencias-


exactas-y- naturales/logica-para-computacion.

Iconografía

• https://commons.wikimedia.org/wiki/File:Crystal_Clear_app_kedit_
green-pencil.svg
• https://commons.wikimedia.org/wiki/File:Nlyl_reading_man_with_
glasses.svg
• https://commons.wikimedia.org/wiki/File:Stop_hand_orange.svg
• https://commons.wikimedia.org/wiki/File:Stop_hand_nuvola_blue.svg
• https://commons.wikimedia.org/wiki/File:Start_hand.svg
• https://commons.wikimedia.org/wiki/File:Antu_istanbul.svg
• http://aminfotrix.com/wp-content/uploads/2016/12/software.png
• https://upload.wikimedia.org/wikipedia/commons/thumb/4/4d/External-
link-02-12x12.svg/2000px-External-link-02-12x12.svg.png
• https://gregschiller.files.wordpress.com/2015/06/imagebot-
com-2012042714194724316.png

186 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas ANEXOS

10. Anexos

Anexo # 1 Unidad I: Ejercicios resueltos de la sección 1.7 Diagramas de


flujo.
Ejercicio 1: Lo que el programa debe hacer es preguntar por un mensaje de
saludo, para posteriormente mostrar el mensaje que se le proporcionó.

Miniespecificación:

1 Inicio
2 (Mensaje, x(30))
3 <<”Escribir el texto que desea mostrar”
4 >>”Soy UTPL”
5 Fin

Diagrama de flujo

187 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas ANEXOS

Ejercicio 2: Muestra el mayor de dos números num1 y num2 y si son iguales los
muestra a ambos.

Miniespecificación:

1 Inicio
2 (num1, i([0-n])
3 (num2, i([0-n])
4 <<”<Ingrese el primer número”
5 >>num1
6 <<”<Ingrese el segundo número”
7 >>num2
8 Si(num1 = num2) entonces
9 << “Primer número es igual a número 2”
10 Sino
11 Si(num1>num2)
12 << “Primer número es mayor”
13 Sino
14 <<”Segundo número es mayor”
15 Fin si
16 Fin

188 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas ANEXOS

Diagrama de Flujo

189 MODALIDAD ABIERTA Y A DISTANCIA


Guía Didáctica: Algoritmos y Resolución de Problemas ANEXOS

Anexo # 2 Unidad II: Ejercicios resueltos de la sección 2.4 Operadores

Determine la solución correcta para las siguientes expresiones aritméticas


planteadas.

((“A”=”aA”) or (2*5*40 < 40) and (1^2=2*1))


Tabla 19. Solución del problema

Expresión Solución
((“A”=”aA”) or (2*5*40<40) and (1^2=2*1)) Se resuelve primero las expresiones que
tiene prioridad como la multiplicación.
((“A”=”aA”) or (400 < 40) and (1^2=2)) Se realiza la multiplicación, se resuelve
la potencia
((“A”=”aA”) or (400 < 40) and (1=2)) Se resuelve el contenido de paréntesis
((“A”=”aA”) or (400 < 40) and (1=2)) Se resuelve los valores booleanos,
F F F primer operador or
Se resuelve los valores booleanos,
F and F operador and Finalmente queda F or F
que realmente pretendemos
F Expresión resuelta

not((“D”==”D”) and (-1 * 3 * 40 >= 2 * -40))


Tabla 20. Solución del problema

Expresión Solución
not((“D”==”D”) and (-1 * 3 * 40 >= 2 * -40)) Se resuelve primero las expresiones que
tiene prioridad como la multiplicación.
((“A”=”aA”) or (400 < 40) and (1^2=2)) Se realiza la multiplicación, se resuelve la
potencia
((“A”=”aA”) or (400 < 40) and (1=2)) Se resuelve el contenido de paréntesis
((“A”=”aA”) or (400 < 40) and (1=2)) Se resuelve los valores booleanos, primer
F F F operador or
Se resuelve los valores booleanos,
F and F operador and Finalmente queda F or F que
realmente pretendemos
F Expresión resuelta

190 MODALIDAD ABIERTA Y A DISTANCIA


ISBN 978-9942-25-297-5

También podría gustarte