Documentos de Académico
Documentos de Profesional
Documentos de Cultura
M1 - Pensamiento Algorítmico
M1 - Pensamiento Algorítmico
Área: NEGOCIOS
Introducción ......................................................................................................................................................... 1
1. Introducción al Pensamiento Algorítmico ........................................................................................................ 2
1.1. Introducción ............................................................................................................................................................... 2
1.2. Conceptos de problema, solución y algoritmo. .......................................................................................................... 2
1.2.1. Problema ............................................................................................................................................................. 2
1.2.2. Solución ............................................................................................................................................................... 3
1.2.3. Algoritmo............................................................................................................................................................. 3
2. Datos ................................................................................................................................................................. 6
2.1. Tipo ............................................................................................................................................................................. 6
2.2. Valor ........................................................................................................................................................................... 7
2.2.1. Constantes........................................................................................................................................................... 7
2.2.2. Variables .............................................................................................................................................................. 8
2.2.3. Expresiones ......................................................................................................................................................... 9
2.2.4. Funciones ............................................................................................................................................................ 9
2.3. Tipos de datos primitivos.......................................................................................................................................... 11
2.4. Operaciones sobre datos .......................................................................................................................................... 11
2.4.1. Operadores aritméticos .................................................................................................................................... 11
2.4.2. Operador de concatenación .............................................................................................................................. 12
2.4.3. Operadores de relación ..................................................................................................................................... 12
2.4.4. Operadores lógicos............................................................................................................................................ 12
2.4.5. Evaluación de expresiones ................................................................................................................................ 13
Cierre .................................................................................................................................................................. 16
Área: NEGOCIOS M1
Curso: PENSAMIENTO ALGORÍTMICO
Introducción al pensamiento
algorítmico y datos
Introducción al
Datos
pensamiento algorítmico
Introducción Tipo
Conceptos Valor
Tipos de datos
primitivos
Operación sobre
datos
Área: NEGOCIOS M1
Curso: PENSAMIENTO ALGORÍTMICO Pág. 1
Introducción
En nuestra vida cotidiana cuando realizamos cualquier actividad, en el
trabajo, en nuestro hogar o cuando nos desplazamos desde un punto a otro,
inconscientemente tendemos a establecer una secuencia de pasos en forma
mental y a tomar alguna decisión si sucede lo uno o lo otro. Esta secuencia de
pasos estructurada que muchas veces uno piensa, constituye un proceso que
forma parte de un algoritmo.
Cuando iniciamos un desplazamiento desde nuestro hogar hasta el punto de destino, primero veremos las
alternativas de movilización: bus, automóvil, metro, a pie o bien una combinación de las anteriores, acto
seguido, seleccionaremos mentalmente la alternativa de transporte en función de lo que tengamos disponible,
a la comodidad y al tiempo de viaje. Si, por ejemplo, optamos por viajar en automóvil, podremos elegir alguna
alternativa de ruta preferida hacia el punto de destino y si en el trayecto vemos que está congestionada,
usaremos una ruta diferente que nos puede recomendar la aplicación móvil Waze1 y que iteraremos hasta
llegar al destino.
Ejemplos como el anterior, que aplicamos en nuestra vida cotidiana, son parte del proceso del pensamiento
algorítmico y si analizamos otras situaciones más complejas que nos demandan tiempo para buscar la solución,
podemos construir un resultado basado en un proceso que se alimenta de entradas y entrega salidas que nos
pueden simplificar la vida a través de la automatización de un cálculo o de una rutina.
Iniciamos este módulo con la ansiedad de aprender cómo se puede construir un algoritmo, analizar cuáles son
los datos de entrada que se requieren y los datos de salida que necesito para poder facilitar una solución a una
problemática.
1 waze es la aplicación de tráfico y navegación basada en la comunidad más grande del mundo-https://www.waze.com
Área: NEGOCIOS M1
Curso: PENSAMIENTO ALGORÍTMICO Pág. 2
1.1. Introducción
En cada situación de la vida nos veremos enfrentados a que existe un problema o una problemática asociada
a cualquier actividad que se realice en forma recurrente u ocasional. Cualquiera sea la naturaleza del problema,
siempre se requerirá solucionarlo. Surge de esta manera, la resolución que según indica Joyanes (2006):
La resolución de un problema exige el diseño de un algoritmo que resuelva el problema propuesto. Los pasos
para la resolución de un problema son:
a. Diseño del algoritmo, que describe la secuencia ordenada de pasos —sin ambigüedades— que
conducen a la solución de un problema dado. (Análisis del problema y desarrollo del algoritmo.)
b. Expresar el algoritmo como un programa en un lenguaje de programación adecuado. (Fase de
codificación.)
c. Ejecución y validación del programa por la computadora.
Para llegar a la realización de un programa es necesario el diseño previo de un algoritmo, de modo que sin
algoritmo no puede existir un programa. Los algoritmos son independientes tanto del lenguaje de
programación en que se expresan como de la computadora que los ejecuta. En cada problema el algoritmo se
puede expresar en un lenguaje diferente de programación y ejecutarse en una computadora distinta; sin
embargo, el algoritmo será siempre el mismo. Así, por ejemplo, en una analogía con la vida diaria, una receta
de un plato de cocina se puede expresar en español, inglés o francés, pero cualquiera que sea el lenguaje, los
pasos para la elaboración del plato se realizarán sin importar el idioma del cocinero2.
1.2.1. Problema
El problema nace de una necesidad, de un requerimiento o simplemente de la voluntad
de querer mejorar algo. En situaciones que tienen que ver con el ámbito personal de la
vida cotidiana o bien en situaciones de alguna actividad en particular que se repiten y no
tenemos una solución inmediata, hablamos de que es necesario ocupar alguna solución.
2
Joyanes, A. L. (2006). Programación en C++: algoritmos, estructuras de datos y objetos (2a. ed.). Madrid, ES: McGraw-
Hill España. Retrieved from http://www.ebrary.com
Área: NEGOCIOS M1
Curso: PENSAMIENTO ALGORÍTMICO Pág. 3
1.2.3. Algoritmo
La solución debe establecerse como idea u objetivo general con objetivos específicos y debe ser llevada a una
instancia de desarrollo de una secuencia de pasos. Tal como lo indica Joyanes (2003):
Un algoritmo puede ser definido como la secuencia ordenada de pasos, sin ambigüedades, que conducen a la
solución de un problema dado y puede ser expresado en lenguaje natural, por ejemplo, el castellano.
Todo algoritmo debe ser:
Para diseñar un algoritmo se debe comenzar por identificar las tareas más importantes para resolver el
problema y disponerlas en el orden en el que han de ser ejecutadas. Los pasos en esta primera descripción de
actividades deberán ser refinados, añadiendo más detalles a los mismos e incluso, algunos de ellos, pueden
requerir un refinamiento adicional antes de que podamos obtener un algoritmo claro, preciso y completo. Este
método de diseño de los algoritmos en etapas, yendo de los conceptos generales a los de detalle a través de
refinamientos sucesivos, se conoce como método descendente (top-down).
3
Joyanes, A. L., Rodríguez, B. L., & Fernández, A. M. (2003). Fundamentos de programación: libro de problemas.
Algoritmos, estructuras de datos y objetos (2a. ed.). Madrid, ES: McGraw-Hill España. Retrieved from
http://www.ebrary.com
Área: NEGOCIOS M1
Curso: PENSAMIENTO ALGORÍTMICO Pág. 4
Entrada
Las entradas son:
1. La ropa sucia
2. Monedas de $ 100 y $ 500 para pago de $ 1.300
3. Detergente para lavado de ropa
Ahora vamos a realizar un segundo ejemplo donde se requiere realizar un cálculo simple que muchas veces
puede ocupar un instante de nuestro tiempo y para lo cual también se utilizará un algoritmo:
Área: NEGOCIOS M1
Curso: PENSAMIENTO ALGORÍTMICO Pág. 5
inicio
leer b, a
sb*a/2
escribir s
fin
Otro tipo de problema que podemos encontrar en la práctica, se refiere a que la solución no es muy simple de
calcular en forma mental debido a la cantidad de datos y en consecuencia requiere de un cálculo repetitivo
que se puede realizar con un algoritmo basado en un bucle. Vamos a analizar un nuevo ejemplo, donde se
requiere diseñar un algoritmo que imprima y sume la serie de números 3,6,9,12,...,99.
2. Datos
Cuando analizamos los primeros algoritmos en el Capítulo 1, se necesitaba declarar primero los datos de
entrada, es decir la información que debemos ingresar para alimentar al proceso, por ejemplo, el precio del
servicio de la lavandería o bien la cantidad de detergente que se debe usar de acuerdo con la cantidad de ropa
a lavar. Por otra parte, también en la salida se obtiene un dato, por ejemplo, la ropa limpia. En este contexto
podemos encontrar que en la práctica los datos pueden ser de distintos tipos, puede ser una expresión
numérica del tipo entero, real, lógica o de carácter y también podrán tener un valor que no cambia o bien que
puede ser variable, por lo que los datos pueden ser de varios tipos y pueden tomar valores distintos según
corresponda.
Joyanes4, realiza una sub clasificación de los datos de acuerdo con el tipo y el valor que éstos tienen:
2.1. Tipo
El tipo de un dato determina su forma de almacenamiento en memoria y las operaciones que van a poder ser
efectuadas con él. En principio hay que tener en cuenta que, prácticamente en cualquier lenguaje y por tanto
en cualquier algoritmo, se podrán usar datos de los siguientes tipos:
a. Entero. Subconjunto finito de los números enteros, cuyo rango o tamaño dependerá del lenguaje en
el que posteriormente codifiquemos el algoritmo y de la computadora utilizada.
b. Real. Subconjunto de los números reales limitado no sólo en cuanto al tamaño, sino también en cuanto
a la precisión.
c. Lógico. Conjunto formado por los valores verdadero y falso.
d. Carácter. Conjunto finito y ordenado de los caracteres que la computadora reconoce.
e. Cadena. Los datos (objetos) de este tipo contendrán una serie finita de caracteres, que podrán ser
directamente traídos o enviados a/desde la consola.
4
Joyanes, A. L., Rodríguez, B. L., & Fernández, A. M. (2003). Fundamentos de programación: libro de problemas.
Algoritmos, estructuras de datos y objetos (2a. ed.). Madrid, ES: McGraw-Hill España.
Área: NEGOCIOS M1
Curso: PENSAMIENTO ALGORÍTMICO Pág. 7
Además, los lenguajes permiten al programador definir sus propios tipos de datos. Al definir nuevos tipos de
datos hay que considerar tanto sus posibles valores como las operaciones que van a poder ser efectuadas con
los datos del mismo. Lo usual es que se definan nuevos tipos de datos agrupando valores de otros tipos
definidos previamente o de tipos estándar. Por este motivo se dice que están estructurados. Si todos los valores
agrupados fueran del mismo tipo se consideraría a éste como el tipo base del nuevo tipo estructurado.
Cadena
Carácter
‘Esta cadena contiene
q, w, e, r, t, y, 1, 5, 9
34 caracteres’
2.2. Valor
De acuerdo con el valor que pueden tener los datos, pueden venir expresados como constantes, variables,
expresiones o funciones, por lo que Joyanes5:
2.2.1. Constantes
Son datos cuyo valor no cambia durante todo el desarrollo del algoritmo. Las constantes podrán ser literales o
con nombres, también denominadas simbólicas. Las constantes simbólicas o con nombre se identifican por su
nombre y el valor asignado. Una constante literal es un valor de cualquier tipo que se utiliza como tal.
Tendremos pues constantes:
a. Numéricas enteras: En el rango de los enteros. Compuestas por el signo (+, –) seguido de una serie de
dígitos (0 al 9).
5
Joyanes, A. L., Rodríguez, B. L., & Fernández, A. M. (2003). Fundamentos de programación: libro de problemas.
Algoritmos, estructuras de datos y objetos (2a. ed.). Madrid, ES: McGraw-Hill España.
Área: NEGOCIOS M1
Curso: PENSAMIENTO ALGORÍTMICO Pág. 8
2.2.2. Variables
Una variable es un objeto cuyo valor puede cambiar durante el desarrollo del algoritmo. Se identifica por su
nombre y por su tipo, que podrá ser cualquiera, y es el que determina el conjunto de valores que podrá tomar
la variable. En los algoritmos se deben declarar las variables que se van a usar, especificando su tipo. Según la
forma para la representación del algoritmo elegida la declaración se hará con una simple tabla de variables o
de una forma algo más rígida, especificando:
var
< tipo_de_dato> : < lista_identificadores_de_variable>
donde
<tipo_de_dato> representa un tipo de dato
y
<lista_identificadores_de_variable> deberá ser sustituido por una lista con los nombres de las variables
de dicho tipo separados por comas.
EJEMPLO
Si las variables usan datos del tipo entero y los identificadores son A, B y suma, se tiene:
var
entero: A,B,suma
La asignación de valor a una variable se podrá hacer en modo interactivo mediante una instrucción de lectura
o bien de forma interna a través del operador de asignación.
6
Parte decimal de un logaritmo. http://dle.rae.es/?id=OHkv7dL
Área: NEGOCIOS M1
Curso: PENSAMIENTO ALGORÍTMICO Pág. 9
a. Numéricas. Los operandos que intervienen en ellas son numéricos, el resultado es también de tipo
numérico y se construyen mediante los operadores aritméticos. Se pueden considerar análogas a
las fórmulas matemáticas.
b. Alfanuméricas. Los operandos son de tipo alfanumérico y producen resultados también de dicho
tipo. Se construyen mediante el operador de concatenación, representado por el operador
ampersand (&) o con el mismo símbolo utilizado en las expresiones aritméticas para la suma.
c. Booleanas. Su resultado podrá ser verdadero o falso. Se construyen mediante los operadores
relacionales y lógicos.
2.2.4. Funciones
En los lenguajes de programación existen ciertas funciones predefinidas o internas que aceptan unos
argumentos y producen un valor denominado resultado. Como funciones numéricas, se usarán de las
siguientes:
Tabla Descripción de Funciones7
7
Adaptado de Joyanes, A. L., Rodríguez, B. L., & Fernández, A. M. (2003). Fundamentos de programación: libro de
problemas. Algoritmos, estructuras de datos y objetos (2a. ed.). Madrid, ES: McGraw-Hill España.
http://site.ebrary.com/lib/ippsp/reader.action?ppg=36&docID=10498607&tm=1512052880196
Área: NEGOCIOS M1
Curso: PENSAMIENTO ALGORÍTMICO Pág. 10
“Diseñar un algoritmo que lea cuatro variables y calcule e imprima su producto, su suma y su
media aritmética”.
Lo primero que debemos realizar es definir a qué tipo de datos corresponden los de entrada y salida; en este
caso todos son variables, de los cuales la variable media será del tipo real y todas las demás variables (a, b, c,
d, producto y suma) serán del tipo entero.
Después de leer los cuatro datos de entrada a, b, c y d, asignamos a la variable producto la multiplicación de
las cuatro variables de entrada. A la variable suma le asignamos la suma y a la variable media le asignamos el
resultado de sumar las cuatro variables y dividirlas entre cuatro. Como el operador suma tiene menos prioridad
que el operador división, será necesario encerrar la suma entre paréntesis. También podríamos haber dividido
directamente la variable suma en cuatro.
algoritmo ejercicio
var
entero : a,b,c,d,producto,suma
real : media
inicio
leer (a,b,c,d)
producto ← a * b * c * d
suma ← a + b + c + d
media ← (a + b + c + d) / 4
escribir (producto,suma,media)
fin
Área: NEGOCIOS M1
Curso: PENSAMIENTO ALGORÍTMICO Pág. 11
Otros tipos de datos que pueden ser considerados primitivos ya que la mayoría de los lenguajes de
programación así los proporcionan (aunque no todos) son:
IMPORTANTE
Se debe tener en cuenta que la división real siempre dará un resultado real y que los operadores mod y div sólo
operan con enteros y el resultado es entero.
Área: NEGOCIOS M1
Curso: PENSAMIENTO ALGORÍTMICO Pág. 12
Actúan sobre operandos del mismo tipo y siempre devuelven un resultado de tipo lógico.
Actúan sobre operandos de tipo lógico y devuelven resultados del mismo tipo, determinados por las tablas de
verdad correspondientes a cada uno de ellos.
Tabla de verdad8
a b no a ayb aob
verdad verdad falso verdad verdad
verdad falso falso falso verdad
falso verdad verdad falso verdad
falso falso verdad falso falso
8
Adaptado de Joyanes, A. L., Rodríguez, B. L., & Fernández, A. M. (2003). Fundamentos de programación: libro de
problemas. Algoritmos, estructuras de datos y objetos (2a. ed.). Madrid, ES: McGraw-Hill España.
Área: NEGOCIOS M1
Curso: PENSAMIENTO ALGORÍTMICO Pág. 13
** Exponenciación
no , – Operadores unarios
* , / , div , mod , y Operadores multiplicativos
+,–,o Operadores aditivos
= , <> , > , < , >= , <= Operadores de relación
La evaluación de operadores con la misma prioridad se realizará siempre de izquierda a derecha. Si una
expresión contiene subexpresiones encerradas entre paréntesis, dichas subexpresiones se evaluarán primero.
Para evaluar una expresión solamente se deben seguir tres reglas de prioridad:
PRIORIDADES
IMPORTANTE
Se debe tener en cuenta que la división real siempre dará un resultado real y que los operadores mod y div sólo
operan con enteros y el resultado es entero.
Área: NEGOCIOS M1
Curso: PENSAMIENTO ALGORÍTMICO Pág. 14
b) (6*2) div 3 = 4
Como los operadores * y div tienen la misma prioridad, se elige el operador * con mayor prioridad por
estar más a la izquierda, luego queda entre paréntesis (A*B).
c) (6 div 2)+3 = 6
Como el operador div tiene prioridad sobre el operador +, queda entre paréntesis (A div B).
d) (6*2) mod 3 = 0
Como los operadores * y mod tienen la misma prioridad, se elige el operador * con mayor prioridad
por estar más a la izquierda, luego queda entre paréntesis (A*B).
e) 6+(3 mod 2) = 7
Como el operador mod tiene prioridad sobre el operador +, queda entre paréntesis (C mod B).
f) (6 div 2) div 3 = 1
Como los operadores div y div tienen la misma prioridad, se elige el primer operador div con mayor
prioridad por estar más a la izquierda, luego queda entre paréntesis (A div B).
Área: NEGOCIOS M1
Curso: PENSAMIENTO ALGORÍTMICO Pág. 15
“Como el orden de mayor a menor prioridad de los operadores lógicos es no, y, o, primero queda
entre paréntesis (no C), luego (B y (no C)) y finalmente queda A o ( B y (no C))”.
Para finalizar el módulo y atendiendo a que se han definido los operadores y se han realizado varios ejemplos,
vamos a realizar un algoritmo más complejo que puede realizar una comparación de datos del tipo carácter
que serán ingresados a través de teclado y se requiere que a la salida se escriba un mensaje en pantalla de si
se encuentran en orden alfabético.
EJEMPLO
var
carácter: a,b
inicio
leer (a,b)
si a < b entonces
escribir (‘están en orden alfabético’)
si_no
si a = b entonces
escribir (‘son iguales’)
si_no
escribir (‘no están en orden alfabético’)
fin_si
fin_si
fin
Área: NEGOCIOS M1
Curso: PENSAMIENTO ALGORÍTMICO Pág. 16
Cierre
Al completar el estudio de este módulo hemos conocido y aprendido de los siguientes temas:
a. Estructura de un algoritmo compuesto por los datos de entrada, de salida y el proceso, con el fin de tener
la base necesaria para profundizar con más detalle en las próximas unidades sobre las propiedades y partes
de un algoritmo.
b. Un algoritmo se desarrolla en base a un análisis del problema y el diseño del algoritmo. Este aprendizaje
será bastante útil en las unidades siguientes para poder construir y representar algoritmos a través de
diagramas de flujo.
c. Existen tipos de datos que pueden ser variables, constantes y expresiones que están compuestos por
operandos y operadores aritméticos, lógicos, de relación y concatenación. Todos los componentes
anteriores serán integrados en próxima unidad cuando se vea con más detalle la construcción de
expresiones más complejas del tipo aritméticas y lógicas.
d. Resolución y diseño de algoritmos de cálculo con distintos operadores, variables y tipos de datos en forma
básica con el fin de poder desarrollar en las próximas unidades, tipos de algoritmos basados en
instrucciones repetitivas y relaciones de recurrencia.
Sin duda que los aprendizajes logrados en este módulo servirán como base para profundizar con más detalle
en algoritmos más complejos que serán vistos en las próximas unidades de esta asignatura.
APORTE A TU FORMACIÓN
El resultado del aprendizaje del módulo permitirá al alumno poder comenzar con cualquier tipo de diseño de
algoritmo para buscar una solución a una problemática en la vida cotidiana o en el contexto productivo de una
empresa ya que cuenta con la base del pensamiento algorítmico.
El alumno podrá disponer de las herramientas básicas para comenzar a desarrollar procedimientos que se utilicen en
una empresa para poder resolver múltiples problemáticas o requerimientos y generar los entregables específicos y
generales.