domingo, 3 de octubre de 2010

Algoritmos

La principal razón para que las personas aprendan lenguajes y técnicas de programación es utilizar la computadora como una herramienta para resolver problemas. La resolución de un problema exige al menos los siguientes pasos:

1. Definición o análisis del problema.
2. Diseño del algoritmo.
3. Transformación del algoritmo en un programa.
4. Ejecución y validación del programa.

Uno de los objetivos fundamentales dee este libro es el aprendizaje y diseño de algoritmos. Este capítulo introduce al lector en el concepto de algoritmo y de programa, así como las herramientas que permiten “dialogar” al usuario con la máquina: los lenguajes de programación.

Un algoritmo es un método para resolver un problema. Aunque la popularización del término ha llegado con el advenimiento de la era informática, algoritmo proviene de Mohammed al–Khowarizmí,

El conjunto de instrucciones que especifican la secuencia de operaciones a realizar, en orden, para resolver un sistema específico o clase de problemas, se denomina algoritmo. En otras palabras, un algoritmo es una fórmula para la resolución de un problema.

CARACTERÍSTICAS DE LOS ALGORITMOS

Las características fundamentales que debe cumplir todo algoritmo son:

• Un algoritmo debe ser preciso e indicar el orden de realización de cada paso.
• Un algoritmo debe estar definido. Si se sigue un algoritmo dos veces, se debe obtener el mismo resultado cada vez.
• Un algoritmo debe ser finito. Si se sigue un algoritmo, se debe terminar en algún momento; es decir, debe tener un número finito de pasos.

La definición de un algoritmo debe describir tres partes: Entrada, proceso y salida.

PROGRAMAS



Un programa es un conjunto de instrucciones que una vez ejecutadas realizarán una o varias tareas en una computadora. Sin programas, estas máquinas no pueden funcionar correctamente. Al conjunto general de programas, se le denomina software y así, se refiere al equipamiento lógico o soporte lógico de una computadora digital.

Generalmente su código fuente lo escriben profesionales conocidos como programadores. Se escribe en un lenguaje que sigue uno de los siguientes dos paradigmas: imperativo o declarativo y que posteriormente puede ser convertido en una imagen ejecutable por un compilador. Cuando se pide que el programa sea ejecutado, el procesador ejecuta instrucción por instrucción.

De acuerdo a sus funciones, se clasifican en software de sistema y software de aplicación. En los computadores actuales, al hecho de ejecutar varios programas de forma simultánea y eficiente, se le conoce como multitarea.

Datos

DATOS, TIPOS DE DATOS

El primer objetivo de toda computadora es el manejo de la información o datos. Estos datos pueden ser las cifras de ventas de un supermercado o las calificaciones de una clase. Un dato es la expresión general que describe los objetivos con los cuales opera una computadora.

La mayoría de las computadoras pueden trabajar con varios tipos (modos) de datos. Los
algoritmos y los programas correspondientes operan sobre datos.
La acción de las instrucciones ejecutables de las computadoras en cambios en los valores de las partidas de datos. Los datos de entrada se transforman por el programa, después de las etapas intermedias, en datos de salida.

En el proceso de solución de problema el diseño de la estructura de datos es tan importante como el diseño del algoritmo y del programa que se basa en el mismo.
Existen dos clases de tipos de datos: simples (sin estructura) y compuestos (estructurados).
Los distintos tipos de datos se representan en diferentes formas en la computadora. A nivel de máquina, un dato es un conjunto o secuencia de bits (dígitos 0 y 1). Los lenguajes de alto nivel permiten basarse en abstracciones e ignorar los detalles de la representación interna. Aparece el concepto de tipo de datos, así como su representación.

Los tipos de datos simples son los siguientes:

• numéricos (integer, real),
• lógicos (bolean),
• carácter (char, string).

Datos numéricos

El tipo numéricos es el conjunto de los valores numéricos. Éstos pueden representarse en dos formas distintas.

• Tipo numérico entero (integer),
• Tipo numérico real (real).

Enteros: El tipo entero es un subconjunto finito de los número enteros. Los enteros son
números complejos, no tienen componentes fraccionarios o decimales y pueden ser negativos o positivos.

Reales: El tipo real consiste en un subconjunto de los números reales. Los números reales siempre tienen un punto decimal y pueden ser positivos o negativos. Un número real consta de un entero y una parte decimal.

Datos lógicos (booleanos)

El tipo lógico –también denominado booleano– es aquel dato que solo puede tomar uno de dos valores: cierto o verdadero (true) y falso (false).
Este tipo de datos se utiliza para representar las alternativas (si/no) a determinadas condiciones. Por ejemplo, cuando se pide si un valor entero es par, la respuesta será verdadera o falsa, según sea par o impar.

Datos tipo carácter y tipo cadena

El tipo carácter es el conjunto finito y ordenado de caracteres que la computadora reconoce. Un dato tipo carácter contiene un solo carácter.

Los caracteres que reconocen las diferentes computadoras no son estándar; sin embargo, la mayoría reconoce los siguientes caracteres alfabéticos y numéricos:

Caracteres alfabéticos (A, B,C, . . . , Z) (a, b, c, . . . , z),
Caracteres numéricos (1, 2, . . . , 9, 0),
Caracteres especiales (+ , – , * , / , ^ , . , ; . < , >, $ , . . . ).

Una cadena (string) de caracteres es una sucesión de caracteres que se encuentran delimitados por una comilla (apóstrofo) o dobles comillas, según el tipo de lenguaje de programación. La longitud de una cadena de caracteres es el número de ellos comprendidos entre los separadores o limitadores. Algunos lenguajes tienen datos tipo cadena.

CONSTANTES VARIABLES


Los programas de computadora contiene ciertos valores que no deben cambiar durante la ejecución del programa. Tales valores se llaman constantes. De igual forma, existen otros valores que cambiarán durante la ejecución del programa; a estos valores se les llama variables.

Una constante es una partida de datos (objetos) que permanecen sin cambios durante todo el desarrollo del algoritmo o durante la ejecución del programa.

Una variable es un objeto o partida de datos cuyo valor puede cambiar durante el desarrollo del algoritmo o ejecución del programa.

Dependiendo del lenguaje, hay diferentes tipos de variables, tales como enteras, reales, carácter, lógicas y de cadena.

Una variable que es de un cierto tipo puede tomar únicamente valores de ese tipo. Una variable de carácter, por ejemplo, puede tomar como valor sólo caracteres, mientras que una variable entera puede tomar sólo valores enteros.
Si se intenta asignar un valor de un tipo a una variable de otro tipo se producirá un error de tipo.

Una variable se identifica por los siguientes atributos: nombre que lo asigna y tipo que describe el uso de la variable.

Los nombres de las variables, a veces conocidos como identificadores, suelen constar de varios caracteres alfanuméricos, de los cuales el primero normalmente es una letra. No se deben utilizar - aunque lo permita el lenguaje,- como nombres de identificadores palabras reservadas del lenguaje de programación.