Sunteți pe pagina 1din 11

Unidad 1 / Escenario 1

Lectura Fundamental

Introducción al pensamiento
algorítmico

Contenido

1 Problema

2 Algoritmo

Palabras clave:
Problema, algoritmo, procesador, finito.
Introducción
Uno de los principales objetivos de este módulo es que el estudiante aprenda a identificar y resolver
distintos tipos de problemas que involucran un componente algorítmico, con el fin de tener una base
conceptual sólida y un conjunto apropiado de habilidades en el momento de cursar el módulo de
Programación de Computadores.

El primer paso para enfrentarse a los distintos tipos de problemas, que se contemplarán a lo largo
del curso, es ponerse de acuerdo acerca de qué es un problema, qué es un algoritmo y cómo están
relacionados. Primero, se conceptualizará qué es un problema, cuáles son sus componentes y se
propondrá una clasificación básica de los problemas. Luego, se revisará el concepto de algoritmo
como herramienta y sus principales características.

Todos los días, y casi que en cada momento, estamos tomando decisiones: tenemos un conocimiento
parcial de la información y a partir de allí queremos ejecutar una acción que maximice nuestro
bienestar; esto ocurre, por ejemplo, cuando salimos a la calle a tomar un bus, cuando estamos
planeando nuestras vacaciones, y cuando vamos al supermercado y vemos una oferta enorme de
toda clase de productos. Si logramos tomar conciencia del proceso e identificar sus componentes
y la forma en que interactúan, tendremos una comprensión del mundo desde el punto de vista de
la ingeniería y estaremos preparados no solo para tomar mejores decisiones, sino para enfrentar
problemas más complicados.

POLITÉCNICO GRANCOLOMBIANO 2
1. Problema
Existen múltiples definiciones de problema, algunas de ellas muy intuitivas y dictadas por los
eventos de la cotidianidad. Puede definirse un problema como una dificultad, un obstáculo o un
inconveniente; como un evento que nos separa de un estado natural de tranquilidad; como una
situación que nos plantea interrogantes, etc. Todas estas definiciones son correctas, pero no son muy
útiles a la hora de abordar un problema desde el enfoque algorítmico, por ello, la definición adoptada
para este curso será un poco diferente.

1.1. Definición

Desde este momento y a lo largo del curso se definirá problema a partir de dos preguntas: 1) ¿Qué
conozco? y 2) ¿Qué quiero saber? También podremos nombrar a estas dos preguntas en términos
de entradas y salidas o en términos de datos e información, respectivamente. La figura 1 presenta un
diagrama representativo del concepto de problema.

¿Qué conozco? ¿Qué quiero saber?


Entradas Salidas
Datos Información

Figura 1. Diagrama representativo de un problema


Fuente: Elaboración propia

Es importante notar que en el esquema hay otros componentes aparte de las preguntas: hay una caja
en el medio y dos flechas, una entrando y otra saliendo de la caja. Estos elementos no hacen parte del
problema, pero serán de ayuda para realizar otras definiciones más adelante.

Para mayor claridad se exponen un par de ejemplos. El primero es un problema como aquellos
desarrollados en los cursos de álgebra de la educación secundaria. El segundo es un ejemplo que
podría presentarse en la vida real.

Nota: no es de interés en esta unidad resolver estos problemas; únicamente son usados para ilustrar
qué es un problema.

POLITÉCNICO GRANCOLOMBIANO 3
1.1.1. Ejemplo 1

Un granjero tiene conejos y gallina;, el número total de cabezas de los animales suma 83, mientras
que la suma de las patas de los animales es 298, ¿cuántos conejos y cuántas gallinas tiene el granjero?

Aquí se pueden encontrar las dos partes del problema: ¿qué conozco? y ¿qué quiero saber? Para
hacerlo más claro, se reescribe el enunciado anterior con la información conocida en color verde y la
información solicitada en color rojo.

Un granjero tiene conejos y gallinas; el número total de cabezas de los animales suma 83, mientras
que la suma de las patas de los animales es 298, ¿cuántos conejos y cuántas gallinas tiene el granjero?

Ahora, se sugiere pensar en las siguientes situaciones: ¿qué pasaría si se borrará el texto escrito en
verde y quedará únicamente el escrito en rojo?, ¿qué tal si el texto escrito en rojo ya no estuviese y
solamente se presentase el texto en verde?

En cualquiera de los dos casos no existiría la definición de problema. Podría decirse que el texto
corresponde a una anécdota, a un cuento, a una adivinanza, a una situación descontextualizada; no
obstante, en ninguno de los escenarios planteados sería posible identificar un problema.

1.1.2. Ejemplo 2

Una persona se encuentra en la ciudad de Bogotá y desea viajar hacia Valledupar; sabe que puede
realizar el viaje por aire o por tierra. El tiquete de avión más barato que puede conseguir le cuesta
$350,000 y le permite estar en su destino en 60 minutos; por otro lado, el viaje en bus le cuesta
$105,000 y le toma 22 horas. Dado que el viajero tiene un presupuesto ilimitado y le urge viajar a
Valledupar, ¿qué decisión debería tomar?

De nuevo, los dos componentes de un problema están presentes. Antes de continuar la lectura, se
sugiere detenerse un momento e identificar mentalmente cuáles son estos componentes. Como
en el primer ejemplo, se presenta el texto correspondiente a lo que se conoce en verde y el texto
correspondiente a lo que se desea saber en rojo.

Una persona se encuentra en la ciudad de Bogotá y desea viajar hacia Valledupar; sabe que puede
realizar el viaje por aire o por tierra. El tiquete de avión más barato que puede conseguir le cuesta
$350,000 y le permite estar en su destino en 60 minutos; por otro lado, el viaje en bus le cuesta
$105,000 y le toma 22 horas. Dado que el viajero tiene un presupuesto ilimitado y le urge viajar a
Valledupar, ¿qué decisión debería tomar?

POLITÉCNICO GRANCOLOMBIANO 4
Se pide al lector que haga el ejercicio de determinar qué sucedería en la situación en que el texto
verde estuviese ausente y que de igual forma lo haga para el caso en que faltase el texto rojo.

¿Sabía qué...?
Muchas de las situaciones que enfrentamos todos los días, en las que debemos
decidir, pueden ser modeladas como un problema a través de estas dos sencillas
preguntas.

1.2. Tipos de problemas

Existen varias formas de clasificar los problemas, algunas serán presentadas más adelante en este
curso; por ahora, se hablará de los problemas como específicos o generales. Obsérvese el siguiente
ejemplo de problema.

1. Ana María nació y vive en Colombia, donde la mayoría de edad se alcanza a los dieciocho años.
Ana María tiene 17 años, ¿es ella mayor de edad?

Ahora revise este otro planteamiento.

2. Ana María nació y vive en Colombia, donde la mayoría de edad se alcanza a los dieciocho años.
Ana María tiene X años, ¿es ella mayor de edad?

Los dos planteamientos son muy similares, casi son iguales; sin embargo, hay un pequeño detalle. En el
segundo enunciado, con respecto al primero, se reemplaza el número 17 por la letra X, ¿qué significa eso?
El número 17 es un dato constante, lo que implica que el problema planteado en el enunciado 1 siempre
será resuelto con base en ese valor y que el resultado será el mismo. Por otra parte, X es un dato variable,
uno que puede cambiar su valor cada vez que se resuelva el problema y que provocará que el resultado
pueda ser distinto cada vez. Por ejemplo, si X fuese 13, la pregunta ¿es Ana María mayor de edad? Se
respondería con una negativa, mientras que si X fuese 25, la respuesta sería afirmativa.

POLITÉCNICO GRANCOLOMBIANO 5
Cuando un problema está planteado con todos sus datos constantes, se habla de un problema específico;
mientras que si el problema contiene al menos un dato variable, se tiene un problema general.

Cómo mejorar...
Es recomendable que por algunos días y cada vez que se tenga un rato de ocio,
tome cualquier problema cotidiano y piense cómo podría modelarse a través
de las dos preguntas mencionadas anteriormente. Adicionalmente, se puede
clasificar el problema como específico o general.

2. Algoritmo
Una definición inicial y no tan formal de algoritmo podría ser la de un método que transforma lo que
conozco (entradas) en lo que quiero saber (salidas). De esta forma, se pueden identificar todos los
elementos que fueron diagramados en la definición de problema.

¿Qué conozco? PROCESADOR ¿Qué quiero saber?


Entradas Salidas
ALGORITMO
Datos Información

Figura 2. Diagrama representativo de un problema


Fuente: Elaboración propia

El lector debería notar que, además de algoritmo, aparece el término procesador. El procesador es la
herramienta o entidad que almacena y ejecuta el algoritmo.

POLITÉCNICO GRANCOLOMBIANO 6
Si el algoritmo es una receta para preparar un pastel, el procesador es el cocinero; si el algoritmo es un
programa, el procesador es el computador; si el algoritmo es una ruta para esquivar el tráfico pesado
de una ciudad, el procesador es el conductor. Finalmente, solamente falta descifrar qué significan las
dos flechas: simplemente demuestran flujo; los datos entran al procesador para ser modificados por el
algoritmo y convertirse en información que sale del procesador.

De manera más formal, se puede definir un algoritmo como un conjunto ordenado y finito de
operaciones que permite hallar la solución de un problema.

¿Sabía qué...?
la palabra algoritmo tiene su origen en el nombre de un matemático árabe, Al-
Khwarizmi, que vivió entre 780 y 850 d. C. (Anthes, 2008)

2.1. Partes de un algoritmo

Un algoritmo contiene tres partes (Joyanes y Zahonero, 2014):

1. Entradas

2. Instrucciones

3. Salidas

Las entradas y las salidas muchas veces corresponden a lo que conozco y lo que quiero saber de un
problema; sin embargo, en algunas situaciones pueden llegar a divergir un poco de estos conceptos. Las
instrucciones deben estar ordenadas, pues si esta condición no se cumple, no puede existir el algoritmo.

2.2. Ejemplo

Uno de los ejemplos más recurrentes de algoritmo son las recetas de cocina, como la de freír un
huevo, que se expone a continuación.

POLITÉCNICO GRANCOLOMBIANO 7
Entradas: un huevo, una sartén, fuego, sal, aceite.

Instrucciones:

1. Poner la sartén en el fuego

2. Verter aceite en la sartén

3. Esperar un minuto para que el aceite se caliente

4. Verter el huevo en la sartén

5. Esperar tres minutos para que se cocine

6. Apagar el fuego

7. Agregar sal al gusto

Salida: un huevo frito

Este es un ejemplo muy trivial, pero servirá para aclarar varios puntos. Primero, nótese que el
algoritmo propuesto tiene muchas fallas, así que se tomará el ejemplo más para ilustrar errores
comunes que para demostrar lo que debería ser un buen algoritmo. Se debe diferenciar, entonces,
qué está bien y qué está mal.

¿Qué está bien en el caso del algoritmo para freír un huevo?

• Tiene los tres componentes nombrados como partes del algoritmo, es decir, entradas,
instrucciones y salidas.

• Las instrucciones están escritas de forma ordenada, es decir, se puede determinar con certeza
qué acción ejecutar primero y cuál sería la última dado que es una lista numerada.

• Necesita de un procesador para ser ejecutado. En este caso, el procesador sería un cocinero.

¿Qué está mal en el caso del algoritmo para freír un huevo?

El algoritmo no es preciso. Suponga que el procesador será una persona que no tiene ninguna noción
de cocinar y en el paso cuatro usted le indica que debe verter el huevo en la sartén, ¿qué podría pasar?
Que nuestro cocinero neófito ponga el huevo en la sartén incluyendo la cáscara. ¿Es esto culpa del
procesador? No, la responsabilidad es de la persona que diseñó el algoritmo. Este último aspecto es
muy importante no solo en este curso, sino en muchos otros que se estudian en programas afines a la
tecnología, la ingeniería y las ciencias básicas.

POLITÉCNICO GRANCOLOMBIANO 8
2.3. Características de un algoritmo

Las siguientes tres características son deseables en un algoritmo:

1. Debe ser finito. Esto no aplica solamente para el número de instrucciones; también implica que
el algoritmo debe alcanzar un final en algún momento.

2. Debe estar bien definido. Esto significa que, si se ejecuta el algoritmo en múltiples ocasiones
con el mismo conjunto de datos de entrada, se debe obtener siempre un mismo conjunto de
datos de salida. Ejemplo: si el algoritmo suma las cantidades seis y cuatro en mil repeticiones
diferentes, debe obtenerse el número diez todas las veces; si en una sola ocasión el resultado
cambia, el algoritmo no estaría bien definido.

3. Debe ser preciso. El algoritmo no puede ser ambiguo, debe indicar inequívocamente cuáles son
las operaciones que debe ejecutar el procesador y cómo deben ser ejecutadas.

POLITÉCNICO GRANCOLOMBIANO 9
Referencias
Anthes, G. (2008). Back to Basics: Algorithms. Computerworld, 42(13), 30-31.

Joyanes, L. y Zahonero, I. (2014). Programación en C, C++, Java y UML. México D.F.: McGraw-Hill
/ Interamericana.

POLITÉCNICO GRANCOLOMBIANO 10
INFORMACIÓN TÉCNICA

Módulo: Pensamiento Algorítmico


Unidad 1: El Pensamiento Algorítmico y Los Datos
Escenario 1: Introducción al pensamiento algorítmico

Autor: Javier Fernando Niño Velásquez

Asesor Pedagógico: Jeiner Leandro Velandia


Diseñador Gráfico: Felipe Puentes
Asistente: Leidy Alejandra Morales Eslava

Este material pertenece al Politécnico Grancolombiano. Por


ende, es de uso exclusivo de las Instituciones adscritas a la Red
Ilumno. Prohibida su reproducción total o parcial.

POLITÉCNICO GRANCOLOMBIANO
POLITÉCNICO GRANCOLOMBIANO 11

S-ar putea să vă placă și