Sei sulla pagina 1di 8

Algoritmo

Los diagramas de flujo sirven para representar algoritmos de manera grfica.


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-Juarismi1 ) 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. 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
En la vida cotidiana, se emplean algoritmos frecuentemente para resolver
problemas. Algunos ejemplos son los manuales de usuario, que muestran
algoritmos para usar un aparato, o las instrucciones que recibe un trabajador por
parte de su patrn. Algunos ejemplos en matemtica son elalgoritmo de
multiplicacin, para calcular el producto, el algoritmo de la divisin para calcular el
cociente de dos nmeros, el algoritmo de Euclidespara obtener el mximo comn
divisor de dos enteros positivos, o el mtodo de Gauss para resolver un sistema
de ecuaciones lineales.
Medios de expresin de un algoritmo
Los algoritmos pueden ser expresados de muchas maneras, incluyendo
al lenguaje
natural, pseudocdigo, diagramas
de
flujo y lenguajes
de
programacin entre otros. Las descripciones en lenguaje natural tienden a ser
ambiguas y extensas. El usar pseudocdigo y diagramas de flujo evita muchas
ambigedades del lenguaje natural. Dichas expresiones son formas ms

estructuradas para representar algoritmos; no obstante,


independientes de un lenguaje de programacin especfico.

se

mantienen

La descripcin de un algoritmo usualmente se hace en tres niveles:


1. Descripcin de alto nivel. Se establece el problema, se selecciona un
modelo matemtico y se explica el algoritmo de manera verbal,
posiblemente con ilustraciones y omitiendo detalles.
2. Descripcin formal. Se usa pseudocdigo para describir la secuencia de
pasos que encuentran la solucin.
3. Implementacin. Se muestra el algoritmo expresado en un lenguaje de
programacin especfico o algn objeto capaz de llevar a cabo
instrucciones.
Tambin es posible incluir un teorema que demuestre que el algoritmo es correcto,
un anlisis de complejidad o ambos.
Diagrama de flujo

Diagrama de flujo que expresa un algoritmo para calcular la raz cuadrada de un


nmero
Artculo principal: Diagrama de flujo

Los diagramas de flujo son descripciones grficas de algoritmos; usan smbolos


conectados con flechas para indicar la secuencia de instrucciones y estn regidos
por ISO.
Los diagramas de flujo son usados para representar algoritmos pequeos, ya que
abarcan mucho espacio y su construccin es laboriosa. Por 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.
Pseudocdigo
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 sintcticas propias de lenguajes de
programacin, como asignaciones, ciclos y condicionales, aunque no est regido
por ningn estndar. Es utilizado para describir algoritmos en libros y
publicaciones cientficas, y como producto intermedio durante el desarrollo de un
algoritmo, como los diagramas 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. Programadores diferentes suelen utilizar convenciones
distintas, que pueden estar basadas en la sintaxis de lenguajes de programacin
concretos. Sin embargo, el pseudocdigo, en general, es comprensible sin
necesidad de conocer o utilizar un entorno de programacin especfico, y es a la
vez suficientemente estructurado para que su implementacin se pueda hacer
directamente a partir de l.
As el pseudocdigo cumple con las funciones antes mencionadas para
representar algo abstracto los protocolos son los lenguajes para la programacin.
Busque fuentes ms precisas para tener mayor comprensin del tema.
Sistemas formales[editar]
La teora de autmatas y la teora de funciones recursivas proveen modelos
matemticos que formalizan el concepto de algoritmo. Los modelos ms comunes
son la mquina de Turing,mquina de registro y funciones -recursivas. Estos
modelos son tan precisos como un lenguaje mquina, careciendo de expresiones

coloquiales o ambigedad, sin embargo se mantienen independientes de cualquier


computadora y de cualquier implementacin.
Implementacin
Muchos algoritmos son ideados para implementarse en un programa. Sin
embargo, los algoritmos pueden ser implementados en otros medios, como
una red neuronal, un circuito elctrico o un aparato mecnico y elctrico. Algunos
algoritmos inclusive se disean especialmente para implementarse usando lpiz y
papel. El algoritmo de multiplicacin tradicional, el algoritmo de Euclides, la criba
de Eratstenes y muchas formas de resolver la raz cuadrada son slo algunos
ejemplos.
Variables
Son elementos que toman valores especficos de un tipo de datos concreto. La
declaracin de una variable puede realizarse comenzando con var.
Principalmente, existen dos maneras de otorgar valores iniciales a variables:
1. Mediante una sentencia de asignacin.
2. Mediante un procedimiento de entrada de datos (por ejemplo: 'read').

Ejemplo:
...
i:=1;
read(n);
while i < n do begin
(* cuerpo del bucle *)
i := i + 1
end;
...
Estructuras secuenciales
La 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:
1. Simples: Consiste en pasar un valor constante a una variable (a 15)
2. Contador: Consiste en usarla como un verificador del nmero de veces que
se realiza un proceso (a a + 1)
3. Acumulador: Consiste en usarla como un sumador en un proceso (a a +
b)
4. De trabajo: Donde puede recibir el resultado de una operacin matemtica
que involucre muchas variables (a c + b*2/4).
Un ejemplo de estructura secuencial, como obtener el rea de un tringulo:
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

Pasos para realizar un algoritmo


Para la realizacin de un algoritmo es necesario realizar una secuencia de pasos
para llegar a cumplir con la resolucin de un problema dado. Para ello, definiremos
los siguientes pasos:
1.
Anlisis previo del Problema: Se debe realizar un anlisis del
funcionamiento del problema antes que se realice cualquier algoritmo.
2.
Definicin de Requerimientos: Los problemas a solucionar, esto es, por
ejemplo, el sumar dos nmeros, multiplicar dos matrices, ordenar una lista de
nmeros, generar un reporte, etc.

3.
Identificacin de los Mdulos: La identificacin de los mdulos es tan
importante como la identificacin correcta de los requerimientos, esto porque la
correcta identificacin de los mdulos simplifica considerablemente la realizacin
de los algoritmos que darn solucin a los requerimientos identificados en el paso
anterior.
4.
Realizacin de los Algoritmos: El algoritmo deber cumplir con las
caractersticas que se indicaron para posteriormente implementarse en un
lenguaje de programacin comprensible por una computadora.
5.
Implementacin de los Algoritmos: La implementacin de los algoritmos
se debe realizar en un lenguaje de programacin para que una computadora
pueda comprender las instrucciones que el algoritmo modela para as poder
ejecutarlas y lograr el resultado esperado.
En el ltimo paso ya podemos hablar de una aplicacin o programa de
computadora, que estar compuesto por una serie de instrucciones que
ordenadas una tras otra logran representar los algoritmos diseados y dar as
solucin a los requerimientos identificados.
Ejemplos de algoritmos Secuenciales
1. Escribir un algoritmo que lea las cuatro notas de un estudiante (Cada nota en la
escala
entre
1
y
20)
e
imprima
la
nota
definitiva.
Primero se debe identificar los datos de entrada, es decir cules son los datos
conocidos
en
el
problema.
En
nuestro
caso,
el problema nos dice que lea las cuatro notas de un estudiante, es decir esos son
los
datos
de
entrada.
As
tendramos
que leer las cuatro notas. Ejemplo: leer n1, n2, n3, n4, donde n1 ser la variable
que contendr la nota 1, n2 la nota 2 y asi sucesivamente.
Segundo, debemos identificar qu nos piden. En el problema nos dicen que
imprima
la
nota
definitiva,
es
decir,
esa
es
la informacin de salida. Ejemplo: Imprimir notadef, donde notadef ser la nota
definitiva,
es
decir
el
promedio
de
las
cuatro
notas.
Tercero, debemos plantear la solucin al problema, de tal forma que con los datos
de entrada, obtengamos lo que nos piden. En este caso, la nota definitiva ser
igual al promedio de las cuatro notas, es decir sumamos las cuatro notas y al
resultado
de
la
suma,
lo
dividimos
entre
cuatro.
De esta manera, tendremos nuestro algoritmo:
Inicio
leer
suma
notadef

n1,
n1

n2,
n2
=

n3,
n3

n4
n4
suma/4

Imprimir
notadef
Fin
2. Escribir un algoritmo que lea las cuatro notas de un estudiante (en porcentaje)
en cada uno de los tres subproyectos que cursa e imprima la nota definitiva de
cada subproyecto y el promedio de las tres notas definitivas:
Igualmente
se
plantean
las
tres
interrogantes:
Cules son los datos de entrada? Por supuesto las cuatro notas del estudiante
en cada subproyecto. Si son tres subproyectos tendremos 4 * 3 = 12 nota. Las
identificamos as: n1s1 ser la nota 1 del subproyecto 1, n2s1 ser la nota 2 del
subproyecto 1, asi tendramos a n3s1 y n4s1. Para el subproyecto 2 sern: n1s2,
n2s2, n3s2 y n4s2, y para el subproyecto 3: n1s3, n2s3, n3s3 y n4s3.
Qu nos piden? o Cul es la informacin de salida? La nota definitiva en cada
subproyecto y el promedio de las tres notas definitivas.
Cmo lo hago? En nuestro caso, la nota definitiva del estudiante en el
subproyecto 1 viene dado por la sumatoria de todas las notas del subproyecto,
multiplicamos por 4 esa sumatoria y dividimos entre 100 (por ser porcentaje). El
resultado le sumamos 1. As tendramos tres frmulas, uno para cada
subproyecto:
nds1 = (( n1s1 + n2s1 + n3s1 + n4s1 )*4/100) + 1 ser la frmula para calcular la
nota definitiva del subproyecto 1. Para el subproyecto 2 ser:
nds2 = ((n1s2 + n2s2 + n3s2 + n4s2 )*4/100) + 1, y para el subproyecto 3:
nds3
=
((n1s3
+
n2s3
+
n3s3
+
n4s3)*4/100)
+
1
Y por supuesto, la el promedio de las tres notas definitivas la calcularamos de la
manera siguiente:
Prom
=
(nds1
+
nds2
Y el algoritmos sera de la manera siguiente:

nds3

)/3

Inicio
Leer
notas
del
subproyecto
1:
n1s1,n2s1,n3s1,n4s1
calcular nota definitiva: nds1 = (((n1s1 + n2s1 + n3s1 + n4s1)*4)/100) + 1
Imprimir
nota
definitiva
del
subproyecto
1:
imprimir
nds1
Leer
notas
del
subproyecto
2:
n1s2,n2s2,n3s2,n4s2
calcular nota definitiva: nds2 = (((n1s2 + n2s2 + n3s2 + n4s2)*4)/100) + 1
Imprimir
nota
definitiva
del
subproyecto
2:
imprimir
nds2
Leer
notas
del
subproyecto
3:
n1s3,n2s3,n3s3,n4s3
calcular nota definitiva: nds3 = (((n1s3 + n2s3 + n3s3 + n4s3)*4)/100) + 1

Imprimir
nota
definitiva
del
subproyecto
3:
imprimir
nds3
Calcular
promedio:
promedio
=
(nds1
+
nds2
+
nds3)/3
Imprimir
promedio
Fin
3. Escribir un algoritmo que calcule e imprima el area de un tringulo:
Inicio
leer
datos:
base,
altura
Calcular
area:
area
=
(base*altura)/2
Imprimir
base,
altura,
area
fin
4. Un vendedor que tiene su sueldo base, recibe una comisin del 10% del total de
las ventas del mes. l quiere saber cunto ganar en un mes que tuvo tres ventas:
Inicio
leer
sueldobase,
venta1,
venta2,
venta3
subtotal
=
venta1
+
venta2
+
venta3
comision
=
subtotal
*0,10
total
=
sueldobase
+
comision
imprimir
total
fin
5. Una tienda ofrece un 15% de descuento por cada compra. Un cliente desea
saber
cuanto
deber
pagar
por
su
compra:
Inicio
leer
monto
descuento
=
monto
*
0,15
total
=
monto

descuento
imprimir
total
end
6. Si un dolar equivale a 2,15 bolvares. Hacer un algoritmo que imprima en
dlares
una
cantidad
X
de
bolvares.
Inicio
leer
x
cantdolares
=
x/1,15
imprimir
cantdolares
fin

Potrebbero piacerti anche