You are currently browsing the tag archive for the ‘algoritmo’ tag.

Vamos a hablar de programación en lenguajes de alto nivel.

Para empezar, repasamos los conceptos de algoritmo y de programa.

Un algoritmo es una secuencia de pasos a seguir para resolver un problema. Es un concepto previo a la programación (algoritmo de multiplicación, algoritmo de Euclides, etc.). La secuencia tiene que ser finita, y el tiempo de ejecución (y por lo tanto, cada uno de los pasos) también. Generará una o más resultados (salidas) y necesitará ninguno o más datos (entradas) para poder generar los primeros.

Un programa es la traducción de un algoritmo a un lenguaje de programación, es decir, a un lenguaje que un ordenador “entiende”.

Por ejemplo, en el caso del algoritmo de Euclides, que calcula el MCD de dos números A y B, utilizamos las propiedad 1) MCD(D,d) = MCD(d,r), donde D es el Dividendo, d es el divisor y r es el resto de la división entera entre D y d. Y que, si r=0 entonces MCD(d,r)=d. Con esto, un posible algoritmo sería:

Datos de entrada: dos enteros A y B
Datos de salida: el MCD

1.- Calcular el resto r de dividir A entre B
2.- Si la r es 0, el MCD es B y acabamos
3.- Colocamos el valor de B en A y el de r en B
4.- Volvemos a 1

Fijémonos que, la primera vez que se ejecuta el paso 1, en el caso de que B fuera mayor que A, el calculo de la división entera hace el swap entre las dos variables.

Ya veremos mas adelante que evitaremos sentencias del tipo 4 (equivalentes al GOTO) simplemente utilizando un bucle.

Con respecto a las fases de creación de programas, hemos visto el modelo en cascada, utilizado en ingeniería del software. La fase de análisis contesta a la pregunta de que debe hacer mi programa, la de diseño a como debo hacerlo (describir el algoritmo) y la implementación no es mas que la traducción de nuestro algoritmo a un programa. La fase de validación consiste en eliminar errores (que pueden ser léxicos, sintácticos o semánticos y que nos harán volver a alguna de las fases anteriores).

Para terminar, y con respecto a la representación de algoritmos (necesaria en el diseño de los mismos) utilizaremos pseudocódigo, aunque también podríamos hacerlo mediante el uso de diagramas de flujo u organigramas. Al final necesitamos una representación (textual o gráfica) de las estructuras secuencial, alternativa e iterativa junto con las operaciones de entrada/salida de los datos.

Anuncios

Un ordenador o computador es una máquina (electrónica) de propósito general: sirve para muchas cosas en función del programa que ejecute. Ordenador viene de ordenar, y computador viene de computar. Básicamente, lo que queremos es resolver problemas.

Un algoritmo es una secuencia ordenada de pasos. La idea existe de mucho antes que los ordenadores: algoritmo de Euclides (como calcular el MCD de dos números,  propuesto a.C.), la formula de la ecuación de segundo grado es un algoritmo. Pero una receta de  cocina también es un algoritmo.

Un programa es la codificación de un algoritmo de manera que pueda ser llevado a cabo por un ordenador. Se debe escribir en un lenguaje que un ordenador entienda. Los lenguajes de programación son “idiomas” que entiende un ordenador. Como cualquier otro  lenguaje, tienen un léxico (palabras del lenguaje), tienen una sintaxis (reglas para construir frases) y poseen una semántica.

Todos los ordenadores actuales están basados en la máquina de Von Neumann: Hay una Unidad Central de Proceso (CPU), una Memória (M) y unos dispositivos de Entrada/Salida (E/S) todos interconectados mediante un Bus. Todo esto forma el hardware (la parte tangible) del ordenador. Pero hay toda una parte no tangible, el software, necesaria para el funcionamiento de mismo: los programas de los que hablábamos.

La CPU es el “cerebro” del computador, o sea, es la que sabe hacer las cosas. Por una parte, sabe hacer cálculos (aritméticos, como sumas, restas, … y lógicos, como and, or, not, etc.), mediante la Unidad Aritmetico-Lógica (ALU), que forma parte de la Unidad de Proceso (PU). Por otra, es la que marca el ciclo de ejecución de las instrucciones, conteniendo la Unidad de Control (CU).

En la memoria es donde se almacena la información. La información fundamental que se guardan son los programas. Pero además, estos programas necesitan datos. Toda esta información está codificada.

Los dispositivos de E/S nos permiten hacer del computador un sistema abierto, ya que nos permite, por una parte, introducir nueva información al sistema, mediante los dispositivos de entrada (un teclado, un ratón, …), y por otra, que el sistema nos pueda hacer llegar la información procesada, mediante los dispositivos de salida (pantalla, …).

El bus permite el flujo de información entre los diferentes componentes.

Con respecto al software, tenemos de dos tipos: software de sistema, necesario para el funcionamiento del mismo: programa de arranque, el sistema operativo, compiladores, depuradores, herramientas de mantenimiento y diagnostico; software de usuario, cualquier programa/aplicación útil para resolver un problema determinado: editor de textos, gestor de bases de datos, navegador, hoja de calculo, herramientas CAD/CAM, etc.

octubre 2019
L M X J V S D
« Oct    
 123456
78910111213
14151617181920
21222324252627
28293031  
Anuncios