Todos deberíamos saber crear algoritmos

Resumen

Un gran descubrimiento resuelve un gran problema, pero en la solución de todo problema, hay un cierto descubrimiento. El problema que se plantea puede ser modesto; pero, si se pone a prueba la curiosidad que induce a poner en juego las facultades inventivas, si se resuelve por propios medios, se puede experimentar el encanto del descubrimiento y el goce del triunfo. Experiencias de este tipo, para los alumnos de bachillerato, puede determinar una afición por el trabajo intelectual e imprimirle una huella imperecedera en la mente y en el carácter. Tal interés puede ser mayor que el que uno puede sospechar sin reflexión previa. El espacio dedicado en los periódicos, revistas o medios de información a los crucigramas y otros acertijos parece demostrar que el público dedica un cierto tiempo a resolver problemas sin ningún interés práctico. Detrás del deseo de resolver este o aquel problema que no aporta ventaja material alguna, debe haber una honda curiosidad, un deseo de comprender los caminos y medios, los motivos y procedimientos de la solución. Un método para resolver problemas con el uso de la computadora son los algoritmos.


Palabras clave: Descubrimiento, resolver, problema, solución, mente, curiosidad, procedimientos, método, computadora, algoritmos

Abstract

A great discovery solves a great problem, but in the solution of every problem, there is a certain discovery. The problem that arises may be modest; but if the curiosity of invoking inventive faculties is put to the test, if it is solved by its own means, one can experience the charm of discovery and the enjoyment of triumph. Experiences of this kind, for high school students, can determine a fondness for intellectual work and imprint an imperishable imprint on the mind and character. Such interest may be greater than one may suspect without prior reflection. The space devoted to newspapers, magazines or media to crosswords and other puzzles seems to show that the public devotes a certain amount of time to solve problems without any practical interest. Behind the desire to solve this or that problem that does not bring any material advantage, there must be a deep curiosity, a desire to understand the ways and means, the motives and procedures of the solution. One method to solve problems with the use of the computer is the algorithms.


Keywords: Maximato, diarchy, government, politics, six-year plan.


Introducción

El propósito de este es proporcionar a los alumnos que recién inician sus estudios en el área de computación unos conceptos, los cuales les ayuda a comprender y resolver problemas con los algoritmos. En el área de programación existen diferentes herramientas que auxilian en la solución de problemas, pero seleccionar una de ellas para comenzar a introducir al estudiante en el área se vuelve un poco complicado, dado que cada uno posee ventajas y desventajas; éstas son percibidas por los estudiantes, y si adoptan alguna herramienta con mayor facilidad, presentan cierto rechazo hacia otras, por considerarlas más complicadas. Por tal motivo, hablaremos de las tres herramientas para tratar de ayudar a los estudiantes a desarrollar una lógica apropiada para el planteamiento y solución de problemas (pseudocódigo, diagramas de flujo, y diagramas de Nassi-Schneiderman).

Los problemas que se plantean están enfocados en utilizar las tres estructuras básicas de la programación (secuencial, decisiones y ciclos), de tal forma que el alumno se vaya enrolando paso a paso en la solución a problemas cada vez más complejos.

Definitivamente el objetivo de este no es establecer un patrón para resolver problemas, tan solo es el de proporcionar ayuda a los alumnos para desarrollar una lógica apropiada mediante la utilización de una de las herramientas para la solución de problemas, los cuales, posteriormente, podrán ser implementados en la computadora mediante un lenguaje de programación.

Desarrollo

Para Implementar la solución de un problema mediante el uso de una computadora es necesario establecer una serie de pasos que permitan resolver un problema, a este conjunto de pasos se le denomina algoritmo, el cual debe tener como característica final la posibilidad de transcribirlo fácilmente a un lenguaje de programación.

Un algoritmo, aparte de tener como característica la facilidad para transcribirlo, debe ser:

Además de esto, se debe considerar que el algoritmo, que posteriormente se transformará en un programa de computadora, debe considerar los siguientes partes:

Las herramientas o técnicas de programación que más se utilizan y que se emplearán para la representación de algoritmos son dos:

Y alternativamente se presentan soluciones de problemas donde se utilicen:

Identificadores

Los identificadores son los nombres que se les asignan a los objetos, los cuales se pueden considerar como variables o constantes.

Constante

Un identificador se clasifica como constante cuando el valor que se le asigna a este identificador no cambia durante la ejecución o proceso de solución del problema.

Variables

Los identificadores de tipo variable son todos aquellos objetos cuyo valor cambia durante la ejecución o proceso de solución del problema.

Pseudocódigo

Esta herramienta permite pasar casi de manera directa la solución del problema a un lenguaje de programación específico. El pseudocódigo es una serie de pasos bien detallados y claros que conducen a la resolución de un problema.

Diagramas de flujo

Los diagramas de flujo son una herramienta que permite representar visualmente qué operaciones se requieren y en qué secuencia se deben efectuar para la solución de un problema dado. Por consiguiente, un diagrama de flujo es la representación gráfica mediante símbolos especiales, do los pasos o procedimientos de manera secuencial y lógica que se deben realizar para la solucionar un problema dado.

Diagramas Nassi-Schneiderman N/S

El diagrama N/S es una técnica en la cual se combina la descripción textual que se utiliza en el pseudocódigo y la representación gráfica de los diagramas de flujo. Este tipo de técnica se presenta de una manera más compacta que las dos anteriores, contando con un conjunto de símbolos muy limitado para la representación de los pasos que se van a seguir por un algoritmo, por consiguiente, para remediar esta situación, se utilizan expresiones del lenguaje natural, sinónimos de las palabras propias de un lenguaje de programación (leer, hacer, escribir, repetir, etcétera).

Estructuras de control

Sin importar qué herramienta o técnica se utilice para la solución de un problema dado, ésta tendrá una estructura, que se refiere a la secuencia en que realizan los operaciones o acciones para resolver el problema; esas estructuras pueden ser: secuenciales, de decisión y de ciclo o repetición. 

Debe tener presente que la solución de un problema dado mediante el uso de una computadora es un sistema, el cual debe tener una entrada de datos, los cuales serán procesados para obtener una salida, que es la solución o información que se busca.

Estructuras secuenciales.

En este tipo de estructuras las instrucciones se realizan o se ejecutan una después de la otra y, por lo general, se espera que se proporcione uno o varios datos, los cuales son asignados a variables para que con ellos se produzcan los resultados que representen la solución del problema que se planteó. Algoritmo que permite determinar la suma de dos números cualquiera.

Inicio

Leer A, B

Hacer S=A+B

Escribir S

Fin

Estructuras Selectivas

Los algoritmos en determinados momentos, requieren ser selectivos en lo que respecta a las acciones que deben seguir, basándose en una respuesta de un determinado cuestionamiento que formuló para la solución del problema planteado.

En los algoritmos para la solución de problemas donde se utiliza estructuras selectivas se emplean frases que están estructuradas de forma adecuada dentro del pseudocódigo.

Si comparación verdadera

Entonces

Hacer acción 1

Sino

Hacer acción 2

Fin de la comparación

Estructuras repetitivas o de ciclo

De igual forma se pueden presentar muchos casos donde el proceso se debe repetir varias veces. Por tal motivo se emplean estructuras denominadas repetitivas, de ciclo o de bucle, e independientemente del nombre que se les aplique, lo que importa es que permiten que un proceso pueda realizarse N veces, donde solo cambien los parámetros que se utilizan en el proceso.

Cuando se requiere que un proceso se efectué de manera cíclica, se emplean estructuras que permiten el control de ciclos, esas estructuras se emplean con base en las condiciones propias de cada problema, los nombres con los que se conocen éstas son: “Mientras que”, “Repite hasta que”, y “Desde, hasta que”.

Para el caso de la estructura “Mientras que”, el ciclo se repite hasta que la condición lógica resulta ser falsa; en tanto que en la estructura “Repite hasta que”, el ciclo se repite siempre y cuando el resultado de la condición lógica sea falso. En la estructura “Mientras que” primero se evalúa y luego se realiza el proceso; y para el caso de “Repite hasta que”, primero se realiza el proceso y luego se evalúa, por consiguiente, este tipo de estructura siempre realizará por lo menos un proceso.

Las estructuras de tipo “Desde, hasta que” se aplican cuando se tiene definido el número de veces que se realizará el proceso dentro del ciclo lo que la hace diferente de las otras es que aquellas se pueden utilizar hasta que las condiciones cambien dentro del mismo ciclo, estas condiciones pueden deberse a un dato proporcionado desde el exterior o bien, al resultado de un proceso ejecutado dentro del mismo, el cual marca el final. Además, en el ciclo “Desde, hasta que”, su incremento es automático, por lo cual no se tiene que efectuar mediante un proceso adicional, como en los otros dos tipos.

La solución de problemas a través de una computadora es una actividad que podemos resolver ayudándonos con una de las tres herramientas. Y los pasos serian; el primero la definición del problema, que es cuando nos queda claro este, el segundo paso el análisis o sea la identificación de los datos que tenemos y los que desconocemos, el tercer paso el diseño de la solución, que es la utilización de las herramientas que acabamos de ver y por último el cuarto paso que es la verificación que son las pruebas de escritorio para encontrar posibles errores.

Bibliografía

Cómo plantear y resolver problemas G. Polya. Editorial Trillas. Decimoquinta reimpresión febrero 1989 impreso en México.

Algoritmos resueltos con diagramas de flujo pseudocódigo ciencias básicas, textos universitarios, Francisco Javier Pinales Delgado, César Eduardo Velázquez Amador, Universidad Autónoma de Aguascalientes. http://www.uaa.mx/direcciones/dgdv/editorial/ Impreso en México.


[a]Profesor Escuela Preparatoria No. 3