Capitulo 1
Problemas, algoritmos y
programas
Los conceptos que se desarrollarán a continuación son fundamentales en la
mecanización del cálculo, objetivo de gran importancia en el desarrollo cultural
humano que, además, ha adquirido una relevancia extraordinaria con la aparición y posterior universalización de los computadores. Problemas, algoritmos
y programas forman el tronco principal en quese fundamentan los estudios de
computación.
Dado un problema P , un algoritmo A es un conjunto de reglas, o instrucciones, que definen cómo resolver P en un tiempo finito.
Aunque "cambiar una rueda pinchada a un coche" es un problema que
incluso puede estudiarse y resolverse en el ámbito informático, no es el tipo
de problema que habitualmente se resuelve utilizando un computador. Por su
mismaestructura, y por las unidades de entrada/salida que utilizan, los ordenadores están especializados en el tratamiento de secuencias de información
(codificada), como por ejemplo series de números, de caracteres, de puntos de
una imagen, muestras de una señal, etc.
Ejemplos más habituales de las clases de problemas que se plantearán en
el ámbito de la programación a pequeña escala y, por lo tanto, enel de este
libro, se pueden encontrar en el campo del cálculo numérico, del tratamiento de
palabras y de la representación gráfica, entre muchos otros. Algunos ejemplos
de ese tipo de problemas son los siguientes:
Determinar el producto de dos números multidígito a y b.
Determinar la raíz cuadrada positiva del número 2.
Determinar la raíz cuadrada positiva de un número n cualquiera.
9
10Capítulo 1
Problemas, algoritmos y programas
Determinar si el número n, entero mayor que 1, es primo.
Dada la lista de palabras l, determinar las palabras repetidas.
Determinar si la palabra p es del idioma castellano.
Separar silábicamente la palabra p.
Ordenar y listar alfabéticamente todas las palabras del castellano.
Dibujar en la pantalla del ordenador un círculo de radio r.
Como se puedeobservar, en la mayoría de las ocasiones, los problemas se
definen de forma general, haciendo uso de identificadores o parámetros (en los
ejemplos esto es así excepto en el segundo problema, que es un caso particular del tercero). Las soluciones proporcionadas a esos problemas (algoritmos)
tendrán también esa característica.
A veces los problemas están definidos de forma imprecisa puesto que los
sereshumanos podemos, o bien recabar nueva información sobre ellos, o bien
realizar presunciones sobre los mismos. Cuando un problema se encuentra definido de forma imprecisa introduce una ambigüedad indeseable, por ello, siempre que esto ocurra, se deberá precisar el problema, eliminando en lo posible
su ambigüedad. Así, por ejemplo, cuando en el problema tercero se desea determinar la raíz cuadradapositiva de un número n, se puede presuponer que
dicho número n es real y no negativo, por ello, redefiniremos el problema del
modo siguiente: determinar la raíz cuadrada positiva de un número n, entero
no negativo, cualquiera.
Ejemplos de algoritmos pueden encontrarse en las secuencias de reglas
aprendidas en nuestra niñez, mediante las cuales realizamos operaciones básicas de números multidígitocomo, por ejemplo, sumas, restas, productos y
divisiones. Son algoritmos ya que definen de forma precisa la resolución en
tiempo finito de un problema de índole general.
Como ejemplos adicionales, se muestran a continuación algunos algoritmos
para la solución de problemas de la lista anterior:
Ejemplo 1.1. Considérese el problema : ¿es n, entero mayor que uno, un
número primo?.
Como se recordará unnúmero primo es aquel que sólo es divisible por el
mismo o por la unidad. Los siguientes son posibles algoritmos para resolver
este problema:
El primer algoritmo (que se muestra en la figura 1.1) consiste en la descripción de una enumeración de los números anteriores a n comprobando, para
cada uno, la divisibilidad del propio n por el número considerado.
11
Algoritmo 1.Considerar todos los...
Regístrate para leer el documento completo.