Sie sind auf Seite 1von 3

Algoritmos Lineales

Un algoritmo es la descripcin unvoca y finita de la secuencia de acciones a ejecutar para resolver un problema. Esta definicin merece ser analizada detenidamente. 'es la descripcin...de la secuencia de acciones': vale decir que el algoritmo no hace, sino que describe (relata, cuenta) lo que se debe hacer. 'unvoca': esto significa que luego de ejecutada una determinada accin, la siguiente est indicada sin ambigedades. Si despus de ejecutada una accin existen dos o ms que podran ejecutarse y no existe un criterio para seleccionar la que corresponde, no es un algoritmo. 'finita': se refiere a que la secuencia de acciones debe finalizar en algn momento, cuando el problema est resuelto. Una secuencia de acciones que podra llegar a ejecutarse indefinidamente, no es un algoritmo. 'para resolver un problema': o sea que antes de desarrollar un algoritmo, debemos conocer el problema que se quiere resolver, es decir, debemos haber hecho la especificacin del mismo.

L E
Fin

os algoritmos pueden expresarse de distintas maneras segn quin vaya a ejecutar las acciones: una gua de costura, una receta de cocina, una hoja de ruta, son algoritmos desarrollados utilizando lenguajes escritos y/o grficos orientados a las personas que los ejecutarn. Un algoritmo que ser ejecutado en una computadora deber ser escrito en un lenguaje de programacin, pero en la etapa de desarrollo se dispone de dos alternativas: el pseudocdigo y los PSD (program structure diagram) tambin llamados estructogramas. l pseudocdigo (pseudo: que parece) es un subconjunto del lenguaje natural que utiliza muy pocas palabras, cada una con un significado nico, y una sintaxis estricta seimilar a los lenguajes de programacin estructurados: Palabra Comienzo Significado Pascal { C

Delimitador que indica que Begin se inicia una secuencia de acciones Delimitador que indica que End finaliza una secuencia de acciones. Accin de obtener el valor Read de una variable (magnitud Readln simbolizada con un identificador)

Leer (<ident>)

getf

Accin de enviar a la salida Write el valor de una variable. Writeln <ident> se reemplaza por el identificador. Ej.: Leer(x);

Escribir (<ident>)

printf

Existen tambin algunos smbolos especiales: Smbolo Uso ;

Pascal

Indica la finalizacin de Separa una accin de Indica la finalizacin una accin. la siguiente. de una accin. <ident> = <expr>

<ident> <expr> Asigna a la variable de <ident> := <expr> la izquierda el valor de la expresin que aparece a la derecha. .

En Pascal se coloca despus del ltimo end para indicar el fin del cdigo.

Ejemplo: El problema SupTrian consiste en el clculo de la superficie de un tringulo. Especificacin Algoritmo 1. SupTrian. 2. Calcular la superficie de un tringulo. 3. b(base), h(altura): nos reales. 4. s(superficie): no real. 5. s = b h / 2 Comienzo leer(b); leer(h); s b h / 2; escribir(s); Fin.

l PSD (program structure diagram), es un modo grfico de representar un algoritmo. En l, cada accin simple se representa como un rectngulo; una secuencia de acciones ser a su vez un rectngulo formado por otros menores (las acciones compuestas que veremos ms adelante tienen otras representaciones). leer(b) leer(h) sbh/2 escribir(s) parentemente, el PSD no agrega nada al pseudocdigo, pero responde a una norma internacional (ISO/IEC ....) por lo que pueden ser intepretados por cualquier persona en cualquier lugar del mundo, la cual podr codificarlo en cualquier lenguaje de programacin. Programa en Pascal Programa en C

Program SupTrian; var b, h, s: real; begin readln(b); readln(h); s := b * h / 2; write(s); end.

#include <stdio.h> main() { float b, h, s; s = b * h / 2; scanf(%e, b); scanf(%e, h); prinf(%e\n, s);

uede verse que en ambos programas aparecen los puntos 2 y 3 de la especificacin (en Pascal b, h, s: real; y en C float b, h, s;) indicando en ambos casos, y de diferente modo, que los identificadores b, h y s representan nmeros reales. Tambin puede verse que el bloque ejecutable en Pascal es prcticamente la traduccin al ingls del pseudocdigo.
NOTA: Los cdigos en Pascal y C se muestran a modo de ejemplo y no forman parte del presente curso.

ueda claro que para poder escribir el algoritmo, debemos primero realizar la especificacin del problema y para codificarlo en un lenguaje de programacin, debemos tener a la vista la especificacin y el algoritmo (en pseudocdigo o PSD).

Y qu sucede si hemos dividido el problema en problemas menores y como consecuencia tenemos varias especificaciones? En ese caso tenemos dos opciones: escribir un solo algoritmo con las acciones necesarias para resolver cada uno de los problemas o escrbir un algoritmo para cada problema. Esta ltima alternativa es la ms recomendable, ya que permitir escribir programas modulares con porciones (procedimientos/funciones) que podrn ser reutilizadas en otros programas. Ejemplo: El problema CantBald permite calcular la cantidad de baldosas necesaria para cubrir un patio rectangular. Para su resolucin es necesario resolver antes los problemas SupRect para calcular la suberficie del patio y SupCuad para calcular la superficie de una baldosa. Especificaciones
1. SupRect. 2. Calcular la superficie de rectngulo. 3. b(base), h(altura): nos reales. 4. s(superficie): no real. 5. s = b h 1. SupCuad. un 2. Calcular la superficie cuadrado. 3. l(lado): n o real; 4. s(superficie): n o real; 5s=ll de 1. CantBald. un 2. Calcular la cantidad de baldosas. 3. Sp(sup. patio), Sb(sup. baldosa): nos reales. 4. Cb(cant. de baldosas): n o entero. 5. Cb = Sp/Sb.

Algoritmos
Comienzo leer(b); leer(h); s b h; escribir(s); Fin. Comienzo leer(l); s l l; escribir(s); Fin. Comienzo leer(Sp); leer(Sb); Cb Sp / Sb; escribir(Cb); Fin.

Das könnte Ihnen auch gefallen