Académique Documents
Professionnel Documents
Culture Documents
define algoritmo como un conjunto ordenado y finito de operaciones que permite hallar la solucin
de un problema. Mtodo y notacin en las distintas frmulas del clculo. El algoritmo constituye un
mtodo para resolver un problema mediante una secuencia de pasos a seguir. Dicha secuencia
puede ser expresada en forma de diagrama de flujo con el fin de seguirlo de una forma ms
sencilla.
De acuerdo con el concepto anterior, el algoritmo podra estar incluido en la definicin de programa
de ordenador de la Ley de Propiedad Intelectual (TRLPI), al referirse a ste como toda secuencia
de instrucciones o indicaciones destinadas a ser utilizadas, directa o indirectamente, en un sistema
informtico para realizar una funcin o una tarea o para obtener un resultado determinado,
cualquiera que fuere su forma de expresin y fijacin.
Sin embargo, ciertas caractersticas de los algoritmos hacen que no puedan ser calificados como
programas de ordenador. (Ver recuadro) La consecuencia de estas caractersticas es la exclusin
del algoritmo del mbito de proteccin del derecho de autor, en la medida en que ste constituye
una idea, un mtodo de clculo o una funcin, afectado por el artculo 96.4 del TRLPI.
Por otro lado, Prembulo de la Directiva 91/250/CEE de 1991 sobre la proteccin jurdica de los
programas de ordenador establece que: "en la medida en que la lgica, los algoritmos y los
lenguajes de programacin abarquen ideas y principios, estos ltimos no estarn protegidos con
arreglo a la presente Directiva."
Adems, en un Memorandum de 1994 de la OMPI (WIPO) Organizacin Mundial de la Propiedad
Intelectual, se manifestaba: "Es perfectamente cierto que el derecho de autor no protege los
algoritmos, sino nicamente las expresiones concretas de los mismos. Precisamente por eso, el
derecho de autor puede ofrecer una proteccin apropiada a los programas de ordenador, sin crear
obstculos infranqueables a la creacin independiente de nuevos programas".
No obstante, existen excepciones a nivel jurisprudencial basadas en la doctrina del "look and feel",
que establecen la existencia de plagio cuando se reproduce la estructura, secuencia y disposicin
de los datos integrados en un programa de ordenador. Estas excepciones podran aplicarse en el
caso de combinaciones de algoritmos o cuando el nivel de complejidad de un algoritmo fuese muy
alto.
Algoritmo
En matemticas, lgica, ciencias de la computacin y disciplinas relacionadas,
un algoritmo (del griego y latn, dixit algorithmus y este a su vez del
matemtico persa Al-Juarismi[1] ) es un conjunto preescrito de instrucciones o
reglas bien definidas, ordenadas y finitas que permite realizar una actividad
mediante pasos sucesivos que no generen dudas a quien deba realizar dicha
actividad.[2] Dados un estado inicial y una entrada, siguiendo los pasos
sucesivos se llega a un estado final y se obtiene una solucin. Los algoritmos
son el objeto de estudio de la algoritmia.[1]
Diagrama de flujo
Diagrama de flujo que expresa un algoritmo para calcular la raz cuadrada de
un nmero Artculo principal: Diagrama de flujo.
Ejemplo:
...
i:=1;
read(n);
while i < n do begin
(* cuerpo del bucle *)
i := i + 1
end;
...
Estructuras secuencialesLa estructura secuencial es aquella en la que una
accin sigue a otra en secuencia. Las operaciones se suceden de tal modo que
la salida de una es la entrada de la siguiente y as sucesivamente hasta el fin
del proceso. La asignacin de esto consiste, en el paso de valores o resultados
a una zona de la memoria. Dicha zona ser reconocida con el nombre de la
variable que recibe el valor. La asignacin se puede clasificar de la siguiente
forma:
Inicio
...
float b, h, a;
printf("Diga la base");
scanf("%f", &b);
printf("Diga la altura");
scanf("%f", &h);
a = (b*h)/2;
printf("El rea del tringulo es %f", a)
...
Fin
Algoritmos como funcionesArtculo principal: Teora de la computabilidad.
Cuando una funcin puede ser calculada por medios algortmicos, sin importar
la cantidad de memoria que ocupe o el tiempo que se tarde, se dice que dicha
funcin es computable. No todas las funciones entre secuencias datos son
computables. El problema de la parada es un ejemplo.
Es decir, dado un conjunto se pide encontrar tal que para todo elemento que
pertenece al conjunto .
funcin max()
devolver
Sobre la notacin:
Matemticas
Programacin
Referencias1. Jump up to: a b c d e Brassard, Gilles; Bratley, Paul (1997).
Fundamentos de Algoritmia. Madrid: PRENTICE HALL. ISBN 84-89660-00-X.
2. Jump up to: a b Real Academia Espaola. Diccionario de la lengua espaola
"Conjunto ordenado y finito de operaciones que permite hallar la solucin de un
problema."
3. Jump up to: a b Cormen, Thomas; Leiserson, Charles; Rivest, Ronald; Stein,
Clifford (2009). Introduction to algorithms. Cambridge, Massachusetts: The MIT
Press. ISBN 978-0-262-53305-8.
4.Jump up Ralph P. Grimaldi (1998). Propiedades de los nmeros enteros:
Induccin matemtica. Matemticas Discreta y Combinatoria. Mxico: Addison
Wesley Longman de Mxico. ISBN 968-444-324-2.
5.Jump up Johnsonbaugh, Richard (2005). Introduccin a la teora de
nmeros. Matemticas Discretas. Mxico: PEARSON EDUCACIN. ISBN 970-260637-3.
6.Jump up Carl Reynolds & Paul Tymann (2008). Schaum's Outline of
Principles of Computer Science. McGraw-Hill. ISBN 978-0-07-146051-4.
7. Jump up to: a b Gurevich, Yuri (2000). Sequential Abstract State Machines
capture Sequential Algorithms. ACM Transactions on Computational Logic 1
(1). ISSN 1529-3785, 77-111. http://research.microsoft.com/enus/um/people/gurevich/Opera/141.pdf.
8.Jump up John E. Savage (1987). The Complexity of Computing. Krieger
Publishing Co.. ISBN 089874833X.
9. Jump up to: a b [|Sipser, Michael] (2005). Introduction to the Theory of
Computation (2 edicin). Course Technology. ISBN 978-0534950972.
10. Jump up to: a b Nachum Dershowitz & Yuri Gurevich (2008). A natural
axiomatization of computability and proof of Church's Thesis. Bulletin of
Symbolic Logic 14 (3). ISSN 10798986, 299-350.
http://research.microsoft.com/en-us/um/people/gurevich/Opera/188.pdf.
11.Jump up [|Kelley, Dean] (1995). Teora de Autmatas y Lenguajes
Formales. Prentice Hall. ISBN 0-13-497777-7.
BibliografaFundamentos de Algoritmia, G. Brassard y P. Bratley. (ISBN
848966000X)
The Art of Computer Programming, Knuth, D. E. [quien fue tambin, el creador
del TeX]
Introduction to Algorithms (2nd ed), Cormen, T. H., Leiserson, C. E., Rivest, R. L.
y Stein, C.
1. Debe ser Preciso, porque cada uno de sus pasos debe indicar de manera
precisa e inequvoca que se debe hacer.
2. Debe ser Finito, porque un algoritmo debe tener un nmero limitado de
pasos.
3. Debe ser Definido, porque debe producir los mismos resultados para las
mismas condiciones de entrada.
4. Puede tener cero o ms elementos de entrada.
5. Debe producir un resultado. Los datos de salida sern los resultados de
efectuar las instrucciones.
Entrada de datos, son los datos necesarios que el algoritmo necesita para ser
ejecutado.
Proceso, es la secuencia de pasos para ejecutar el algoritmo.
Salida de resultados, son los datos obtenidos despus de la ejecucin del
algoritmo.
Un programador que tiene que aplicar un algoritmo especfico, sobre todo uno
desfamiliarizado, generalmente comienza con una descripcin en
pseudocdigo, y luego "traduce" esa descripcin en el lenguaje de
programacin meta y lo modifica para que interacte correctamente con el
resto del programa. Los programadores tambin pueden iniciar un proyecto
describiendo la forma del cdigo en pseudocdigo en el papel antes de
escribirlo en su lenguaje de programacin, como ocurre en la estructuracin de
un enfoque de Top-down y Bottom-up arriba hacia abajo.
programa bizzbuzz
procedimiento bizzbuzz
para i := 1 hasta 100 hacer
establecer print_number a verdadero;
Si i es divisible por 3 entonces
escribir "Bizz";
establecer print_number a falso;
Si i es divisible por 5 entonces
escribir "Buzz";
establecer print_number a falso;
Si print_number, escribir i;
escribir una nueva lna;
fin
Pseudocdigo estilo C:
Si i es divisible por 3
escribir "Bizz";
establecer print_number a falso;
Si i es divisible por 5
escribir "Buzz";
establecer print_number a falso;
Si print_number, escribir i;
escribir una nueva lnea;
}
1.Se puede ejecutar en un ordenador (con un IDE como por ejemplo SLE, LPP,
PilatoX, Maruga Script, Seudocdigo o PSeInt. Otros Ides de consideracin son
Inter-P y Algor)
2.Es una forma de representacin sencilla de utilizar y de manipular.
3.Facilita el paso del programa al lenguaje de programacin.
4.Es independiente del lenguaje de programacin que se vaya a utilizar.
5.Es un mtodo que facilita la programacin y solucin al algoritmo del
programa.
Todo documento en pseudocdigo debe permitir la descripcin de:
1.Instrucciones primitivas.
2.Instrucciones de proceso....
3.Instrucciones de control.
4.Instrucciones compuestas.
5.Instrucciones de descripcin.
Estructura a seguir en su realizacin:
1.Cabecera.
1.Programa.
2.Mdulo.
3.Tipos de datos.
4.Constantes.
5.Variables.
2.Cuerpo.
1.Inicio.
2.Instrucciones.
3.Fin.
Definicin de datos del pseudocdigo[editar editar cdigo]La definicin de
datos se da por supuesta, sobre todo en las variables sencillas, si se emplea
formaciones: pilas, colas, vectores o registros, se pueden definir en la cabecera
del algoritmo, y naturalmente cuando empleemos el pseudocdigo para definir
estructuras de datos, esta parte la desarrollaremos adecuadamente.
asigne a el valor de
En este caso hay una serie de condiciones que tienen que ser mutuamente
excluyentes, si una de ellas se cumple las dems tienen que ser falsas
necesariamente, hay un caso si no que ser cierto cuando las dems
condiciones sean falsas.
En este caso hay un Indicador es una variable o una funcin cuyo valor es
comparado en cada caso con los valores "Valori", si en algn caso coinciden
ambos valores, entonces se ejecutarn las Instruccionesi correspondientes. La
seccin en otro caso es anloga a la seccin si no del ejemplo anterior.
El bucle se repite mientras la condicin sea cierta, si al llegar por primera vez
al bucle mientras la condicin es falsa, el cuerpo del bucle no se ejecuta
ninguna vez.
En ambos casos es necesario dejar en claro cules son las entradas para el
algoritmo, esto se hace comnmente colocando estos valores entre parntesis
al principio o bien declarndolo explcitamente con un enunciado. En el caso de
las funciones, es necesario colocar una palabra como regresar o devolver para
indicar cul es la salida generada por el algoritmo. Por ejemplo, el
pseudocdigo de una funcin que permite calcular (un nmero elevado a
potencia ).