Você está na página 1de 5

Algoritmos y Programacin:

Es un conjunto prescrito 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. Dados un estado inicial y una entrada, siguiendo los pasos sucesivos se llega a un
estado final y se obtiene una solucin.
Un algoritmo es el medio por el que se explica cmo puede resolverse un problema, mediante
aproximaciones paso a paso. e puede formular de muchas formas con el cuidado de que no
exista ambig!edad.
CARACTERISTICAS DE LOS ALGORITMOS
"as principales caracter#sticas de los algoritmos son$
i. El algoritmo debe ser sencillo e indicar el orden de realizacin de cada paso
ii. Un algoritmo debe estar definido.
iii. El algoritmo de ser finito.
Un algoritmo describe la transformacin de una entrada en la
salida
"a entrada se refiere a algo que existe y es utilizado por el
algoritmo para transformarlo en los resultados que uno
planifica.
Lenguaje e algor!tmica y Programacin
"enguaje m%quina$ &odo se programa con ' y (, que es lo )nico que entiende el
ordenador.
*entaja$ +o necesita ser traducido.
,nconveniente$ "a dificultad, la confusin, para corregir errores, es propia de cada m%quina.
De bajo nivel o ensamblador$ e utilizan mnemot-cnicos .abreviaturas/.
*entaja$ +o es tan dif#cil como el lenguaje m%quina.
,nconvenientes$ 0ada m%quina tiene su propio lenguaje, necesitamos un proceso de traduccin.
El programa escrito en ensamblador se llama programa fuente y el programa que se
obtiene al ensamblarlo se llama programa objeto.
"enguajes de alto nivel$ "os m%s cercanos al lenguaje humano.
Partes e un algoritmo
&odo algoritmo debe obedecer a la estructura b%sica de un sistema, es decir$ entrada, proceso y
salida.
Entrada$
0orresponde al insumo, a los datos necesarios que requiere el proceso para ofrecer los resultados
esperados.
1roceso
1asos necesarios para obtener la solucin del problema o la situacin planteada.
alida
2esultados arrojados por el proceso como solucin.
En el ejemplo del algoritmo de la sumatoria de los dos n)meros, tenemos$
Entrada$ *alores de de las variables 3 y 4.
1roceso$ 3signar a la variable uma, el valor de 3 mas el valor de 4.
alida$ ,mpresin del valor de la variable uma, que contiene la sumatoria de los valores de 3 y 4.
Caracter!sticas y elementos "ara construir un algoritmo
#aria$les
on elementos que toman valores espec#ficos de un tipo de datos concreto. "a declaracin de una
variable puede realizarse comenzando con %ar. 1rincipalmente, existen dos maneras de otorgar
valores iniciales a variables$
'. 5ediante una sentencia de asignacin.
6. 5ediante un procedimiento de entrada de datos .por ejemplo$ 7read7/.
Ejemplo$
...
i:=1;
read(n);
while i < n do begin
(* cuerpo del bucle *)
i := i + 1
end;
...
Estructuras secuenciales
"a estructura secuencial es aquella en la que una accin sigue a otra en secuencia. "as
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. "a 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. "a asignacin se puede clasificar de la siguiente forma$
'. Sim"les$ 0onsiste en pasar un valor constante a una variable .a 8 '9/
6. Contaor$ 0onsiste en usarla como un verificador del n)mero de veces que se realiza un
proceso .a 8 a : '/
;. Acumulaor$ 0onsiste en usarla como un sumador en un proceso .a 8 a : b/
<. De tra$ajo$ Donde puede recibir el resultado de una operacin matem%tica que involucre
muchas variables .a 8 c : b=6></.
Un ejemplo de estructura secuencial, como obtener el %rea de un tri%ngulo$
Inicio
...
float b, h, a;
printf("iga la ba!e");
!canf(""f", #b);
printf("iga la altura");
!canf(""f", #h);
a = (b*h)$%;
printf("&l 'rea del tri'ngulo e! "f", a)
...
(in
&ormas e re"resentar un algoritmo: Lenguaje 'atural( "seuocigo y
iagrama e )lujo
"os algoritmos pueden ser expresados de muchas maneras, incluyendo al lenguaje
natural, pseudocdigo, diagramas de flujo y lenguajes de programacin entre otros. "as
descripciones en lenguaje natural tienden a ser ambiguas y extensas. El usar pseudocdigo y
diagramas de flujo evita muchas ambig!edades del lenguaje natural. Dichas expresiones son
formas m%s estructuradas para representar algoritmos? no obstante, se mantienen independientes
de un lenguaje de programacin espec#fico.
"a descripcin de un algoritmo usualmente se hace en tres niveles$
'. Descri"cin e alto ni%el. e establece el problema, se selecciona un modelo
matem%tico y se explica el algoritmo de manera verbal, posiblemente con ilustraciones y
omitiendo detalles.
6. Descri"cin )ormal. e usa pseudocdigo para describir la secuencia de pasos que
encuentran la solucin.
;. Im"lementacin. e muestra el algoritmo expresado en un lenguaje de programacin
espec#fico o alg)n objeto capaz de llevar a cabo instrucciones.
&ambi-n es posible incluir un teorema que demuestre que el algoritmo es correcto, un an%lisis de
complejidad o ambos.
Diagrama e )lujo
Diagrama de flujo que expresa un algoritmo para calcular la ra#z cuadrada de un n)mero x
"os diagramas de flujo son descripciones gr%ficas de algoritmos? usan s#mbolos conectados con
flechas para indicar la secuencia de instrucciones y est%n regidos por ,@.
"os diagramas de flujo son usados para representar algoritmos pequeAos, ya que abarcan mucho
espacio y su construccin es laboriosa. 1or su facilidad de lectura son usados como introduccin a
los algoritmos, descripcin de un lenguaje y descripcin de procesos a personas ajenas a la
computacin.
Pseuocigo
El pseudocdigo .falso lenguaje, el prefijo pseudo significa falso/ es una descripcin de alto nivel
de un algoritmo que emplea una mezcla de lenguaje natural con algunas convenciones sint%cticas
propias de lenguajes de programacin, como asignaciones, ciclos y condicionales, aunque no est%
regido por ning)n est%ndar. Es utilizado para describir algoritmos en libros y publicaciones
cient#ficas, y como producto intermedio durante el desarrollo de un algoritmo, como los Bdiagramas
de flujo, aunque presentan una ventaja importante sobre estos, y es que los algoritmos descritos en
pseudocdigo requieren menos espacio para representar instrucciones complejas.
El pseudocdigo est% pensado para facilitar a las personas el entendimiento de un algoritmo, y por
lo tanto puede omitir detalles irrelevantes que son necesarios en una implementacin.
1rogramadores diferentes suelen utilizar convenciones distintas, que pueden estar basadas en la
sintaxis de lenguajes de programacin concretos. in embargo, el pseudocdigo, en general, es
comprensible sin necesidad de conocer o utilizar un entorno de programacin espec#fico, y es a la
vez suficientemente estructurado para que su implementacin se pueda hacer directamente a partir
de -l.
3s# el pseudodocdigo cumple con las funciones antes mencionadas para representar algo
abstracto los protocolos son los lenguajes para la programacin. 4usque fuentes m%s precisas
para tener mayor comprensin del tema.
Sistemas )ormales
"a teor#a de autmatas y la teor#a de funciones recursivas proveen modelos matem%ticos que
formalizan el concepto de algoritmo. "os modelos m%s comunes son la m%quina de
&uring, m%quina de registro y funciones CDrecursivas. Estos modelos son tan precisos como
un lenguaje m%quina, careciendo de expresiones coloquiales o ambig!edad, sin embargo se
mantienen independientes de cualquier computadora y de cualquier implementacin.
Im"lementacin
5uchos algoritmos son ideados para implementarse en un programa. in embargo, los algoritmos
pueden ser implementados en otros medios, como una red neuronal, un circuito el-ctrico o un
aparato mec%nico y el-ctrico. 3lgunos algoritmos inclusive se diseAan especialmente para
implementarse usando l%piz y papel. El algoritmo de multiplicacin tradicional, el algoritmo de
Euclides, lacriba de Eratstenes y muchas formas de resolver la ra#z cuadrada son slo algunos
ejemplos.
Tra*a e un algoritmo +corria en )r!o,
"a tra*a de un algoritmo .o programa/ indica la secuencia de acciones .instrucciones/ de su
ejecucin, as# como, el valor de las variables del algoritmo .o programa/ despu-s de cada accin
.instruccin/.