Vous êtes sur la page 1sur 14

Lenguaje algoritmo: Hasta este momento todo lo que hemos visto es

prcticamente teora, lleg la hora de plasmar nuestros algoritmos de alguna


forma que sean claros para cualquier personaque necesite leerlos. Muchas veces
los infotmticos se saltan este paso y llegan directamente a la implementacion en
algn lenguaje de programacin; para ello se necesita tener mucha practica y
memoria fotografica, ya que muchas veces se omiten pasos que a la hora de
implementarlos en algn lenguaje producen que el programa no llege a la solucion
que habiamos planteado como ptima.
De esta manera se han creado lenguajes que puedan representar nuestros
algoritmos y que de esa manera se construya una solucion correcta sin omitir
algunos pasos. Imaginense que si se desea crear un algoritmo para que un robot
solde una pieza en una ensambladora de automviles y la persona encargada de
implementar el algoritmo olvida, por muy obvio que sea, comprobar si las piezas
estn en su lugar, obviamente podria terminar en tragedia.
Asi que la gente que se encarga de los estndares en cuanto a lo que se refiere a
las tecnologas de la informacion vio la necesidad de representar algoritmos sin
tener que referirse a un lenguaje de programacin en especfico.
Graficos
Este tipo de lenguaje tiende a representar a los algoritmos de una forma grafica.
De esta manera se hace mas facil la representacin de cada uno de los procesos
que debe llevar a cabo una computadora para resolver problema.
Diagramas de Flujo
Sin lugar a duda el lenguaje algortmico grfico ms comn son los Diagramas de
Flujo. stos pueden definirse como esquemas usados para representar
grficamente un proceso. Pero no slo se utilizan para representar procesos
informaticos, tambien en otras reas como la economia, la administracion,
procesos industriales, etc.
A continuacion explicaremos los smbolos ms comunes que se utilizan en la
informtica para representar diagramas de flujo.

Existen otros simbolos ms especificos para otro tipo de procesos, pero en su


mayoria ya no se usan porque representaban procesos en dispositivos que hoy en
da son obsoletos, como grabar en cinta magntica o leer una tarjeta perforada.

No graficos
Los lenguajes algoritmicos no graficos generalmente son utilizados para
representar procesos informaticos ya mas especificos. Dicho de otra forma, para
representar la codificacion de un programa sin la necesidad de conocer un
lenguaje de programacion especifico.
Pseudocodigo
Sin lugar a duda, el pseudocodigo es el lenguaje algoritmico no grafico mas
utilizado hasta la fecha. Cualquier persona que se diga que tiene experiencia
como programador, alguna vez se ha visto en la necesidad de representar sus
programas en pseudocodigo.
El pseudocodigo significa que vas a convertir tu algoritmo en un lenguaje escrito
que se entienda sin utilizar la sintaxis y la gramatica de un lenguaje de
programacion en especifico. Existen diferencias entre las normas de como debe
realizarse correctamente un pseudocodigo debido a que, como no es
necesariamente un lenguaje de programacion, debe adaprtarse a las necesidades
del algoritmo en si; por eso varios autores definen su propia sintaxis y gramatica
de forma diferente.
Datos
En un pseudocodigo los datos se dan por creados desde el momento en el que
son utilizados, asi que no es necesario avisar que variables vamos a ocupar a lo
largo de nuestro algoritmo, ni que tipo de datos es el que se va a almacenar dentro
de l; pero, una ves que se a utilizado una variable para almacenar cierto tipo de
dato debe seguir siendo usada para este tipo. Por ejemplo, si al inicio de nuestro
pseudocodigo declaramos que vamos a usar una variable que llamaremos A y le
asignamos un valor numrico entero como 8, la variable A en el resto del
algoritmo deber solamente poder alamacenar datos numricos enteros.
El lenguaje natural es el lenguaje que hablamos todos los das, nuestra forma de
comunicarnos por excelencia. Aunque para nosotros sea un gesto sencillo, casi
inconsciente, el habla es un proceso que implica millones de conexiones
neuronales y complejos procesos corporales de captacin y comprensin. El
lenguaje natural se diferencia de otros en que surge de modo espontneo entre la
gente. As, por ejemplo, aunque el ordenador usa lenguajes propios para
comunicarse entre si, estos han sido diseados, esto es, impuestos. Tampoco
sera un lenguaje natural el esperato, por ejemplo, un idioma inventado y creado
de modo artificial (ni el lfico o el klingon tampoco, por supuesto).

En informtica desde siempre se ha buscado que los ordenadores fuesen capaces


de comprender el lenguaje humano, de modo que pudiesen obedecer rdenes
directas del hombre. Sin embargo, aunque la gramtica es sencilla de asimilar
para los ordenadores, no asi el resto de variables. El timbre de cada persona, casi
nico, el tono, los ademanes y gestos... etc, todos ellos forman parte del lenguaje
natural humano, y son mucho ms difcilmente entendibles para un ordenador. Los
avances tecnolgicos, sin embargo ya permiten que se hayan hecho ciertos
experimentos con xito de captacin de gestos, y reconocimiento de voz.
Estos avances individuales han permitido que haya surgido con fuerza una rama
de la informtica, llamada procesamiento del lenguaje natural, que busca
precisamente permitir que los ordenadores sean capaces de captar la informacin
transmitida por una persona y trasladarla luego a otra, interactuando con ella con
su mismo lenguaje, o al menos, de un modo inteligible. El fin ltimo sera un
ordenador capaz de razonar y aprender como un ser humano, y para ello el primer
paso es que pueda recibir informacin y comunicarla como tal. Es por eso que
esta rama se haya ubicada dentro de la inteligencia artificial, si bien el
procesamiento de lenguaje natural no busca tanto que el equipo aprenda de la
comunicacin como que sea capaz por medio de mecanismos y lenguajes
programados, de entender al hombre y transformar las palabras humanas en algo
comprensible
para
l.
Sin embargo el procesamiento de lenguaje natural plantea muchos problemas: los
mltiples significados de cada palabra, los acentos de cada zona, la jerga de cada
lugar, expresiones tpicas, lenguaje ambiguo, ironas... etc, etc, son cosas que an
estn solventndose. Para un ordenador, una frase de 10 palabras es un nmero
enorme de posibilidades. No slo tiene que mirar esas 10 palabras, sino sus
posibles significados, y como cada una de ellas se relaciona con las dems. Si
alguien est familiarizado con las matemticas esa frase de tan slo 10 palabras
escondera 10! posibilidades a estudiar (esto es 10x9x8x7x6x5x4x3x2x1 =
3.628.800),
y
eso
en
el
mejor
de
los
casos.
A nivel prctico, los buscadores ms importantes ya saben diferenciar ciertos tipos
de preguntas o frases hechas para conseguir resultados de bsquedas ms
optimizados, sin embargo de momento cuando buscamos algo en la red usamos
ms las palabras clave que pensamos darn mejores resultados que realmente las
expresiones que usaramos si le preguntsemos a alguien en la calle. Existe pues
una desviacin importante que se intenta corregir aplicando el lenguaje natural a
los
parmetros
de
bsqueda.

Concepto de Algoritmo y Programacin.

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. Los algoritmos son el objeto
de estudio de la algoritmia.

Un algoritmo es cualquier cosa que funcione paso a paso, donde cada paso se
pueda describir sin ambigedad y sin hacer referencia a una computadora en
particular, y adems tiene un lmite fijo en cuanto a la cantidad de datos que se
pueden leer/escribir en un solo paso.

Es una formula para resolver un problema es un conjunto de acciones o secuencia


de operaciones que ejecutadas en un determinado orden resuelven el problema.
Existen n algoritmos, hay que coger el ms efectivo. Trata de resolver problemas
mediante programas.

El programa: Codificacin del algoritmo en un lenguaje de programacin.

Lenguaje algoritmo y programacin.

Instrucciones en una computadora y sus tipos:

Una instruccin es cada paso de un algoritmo, pero que lo ejecuta el ordenador.


Un programa es un conjunto de instrucciones que ejecutadas ordenadamente
resuelven un problema.

Tipos de instrucciones:
E/S: Pasar informacin del exterior al interior del ordenador y al revs.
Aritmtico-lgicas: Aritmticas: +,-,*,... ; Lgicas: or, and, <, >, ...

Selectivas: Permiten la seleccin de una alternativa en funcin de una condicin.


Repetitivas: Repeticin de un nmero de instrucciones un nmero finito de veces.

Tipos de lenguajes:
Lenguaje mquina: Todo se programa con 1 y 0, que es lo nico que entiende el
ordenador.
Ventaja: No necesita ser traducido.

Inconveniente: La dificultad, la confusin, para corregir errores, es propia de cada


mquina.
De bajo nivel o ensamblador: Se utilizan mnemotcnicos (abreviaturas).
Ventaja: No es tan difcil como el lenguaje mquina.

Inconvenientes: Cada mquina 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.
Lenguajes de alto nivel: Los ms cercanos al lenguaje humano.
Ventaja: Son independientes de cada maquina (los compiladores aceptan las
instrucciones estndar, pero tambin tienen instrucciones propias).
Inconveniente: El proceso de traduccin es muy largo y ocupa ms recursos.
Aprovecha menos los recursos internos.

Proceso de traduccin y ejecucin de un programa escrito en un lenguaje a


alto nivel:

Usamos un editor y obtenemos el programa fuente, y el compilador es el que


traduce el programa al lenguaje mquina. El compilador internamente ha sido
diseado para traducir.
El compilador obtiene el programa o el fichero objeto. El compilador tiene que
buscar los errores.

Normalmente no sale un ejecutable, sino que necesita elementos, libreras,


mediante un linkador juntamos el programa objeto y las libreras, y se forma un
programa ejecutable.

Cuando se ejecuta el programa, el cargador lleva al programa a memoria para que


ste pueda ser ejecutable.

Debbuger: Depura el programa ejecutndolo paso a paso, viendo la memoria paso


a paso para encontrar el error.

Compilador
Error
Programa objeto Librerias
Linkador
Ejecutables
Para traducir puedo utilizar el compilador o un interprete, con el compilador cojo
todo el programa al completo y el interprete lee cada instruccin y lo va
ejecutando.
El interprete es ms rpido, pero menos eficiente.
Todos los lenguajes tienen compiladores, pero no todos tienen interpretes.
LISP (Lenguaje de inteligencia artificial) : Slo tiene interpretes.

Partes de un Algoritmo.

Todo algoritmo debe obedecer a la estructura bsica de un sistema, es decir:


entrada, proceso y salida.

ENTRADA: Corresponde al insumo, a los datos necesarios que requiere


el proceso para ofrecer los resultados esperados.

PROCESO: Pasos necesarios para obtener la solucin del problema o la situacin


planteada.

SALIDA: Resultados arrojados por el proceso como solucin.

Caracteristicas y elementos para construir un algoritmo.

Las caractersticas fundamentales que debe cumplir un algoritmo son:

PRECISIN: Indica el orden de realizacin de cada paso dentro del proceso.

DEFINICION: Indica la exactitud y consistencia de los pasos descritos en el


proceso, si el algoritmo se prueba dos veces, en estas dos pruebas, se
debeobtener el mismo resultado.

FINITUD: Indica el nmero razonable de pasos, los cuales deben conllevar a


la finalizacin del proceso y producir un resultado en un tiempo finito.

Al disear un algoritmo se debe tener presente las caractersticas de precisin,


definicin y finitud.

Elementos para construir un Algoritmo.

Instruccin o sentencia.

Dependiendo del origen del material instruccional se habla de instruccin o


sentencia; sta, define una accin o un mandato que se debe realizar, esa accin
o mandato se representa a travs de un comando o lo que es lo mismo palabras
reservadas de un lenguaje de programacin en particular. Una instruccin esta
compuesta por uno o ms comandos (accin), datos, smbolos, variables o
constantes y expresiones, que en conjunto representan una instruccin o
sentencia.

Ejemplo de instruccin:

En la construccin de los programas se estila utilizar una instruccin por lnea. As


mismo, se utiliza la identacin, que no es ms que la alineacin de
aquellas instrucciones dentro de las estructuras que las contienen de manera
ordenada que permita visualizar el inicio y fin de cada bloque de instrucciones.

Si ASISTIO =SI Entonces


Leer Sueldo, Asignar Sueldo = Sueldo + HoraExtra.
Fin Si
Donde:
SI
Representa una estructura condicional utilizada para establecer preguntas
o programar ciertas condiciones.
ASISTIO
Nombre de una Variable lgica que puede obtener slo dos valores SI

o NO. En el ejemplo se programa la condicin de la variables cuando


es SI
ENTONCES
Parte de la instruccin o estructura condicional.
LEER SUELDO
Instruccin utilizando el comando cuya accin es la lectura de un campo
o dato.
Asignar SUELDO=
SUELDO+HORAEXTRA
Instruccin de asignacin, permite asignar o calcular el valor que adquirir
una variable.
Fin SI
Cierra la estructura condicional si - entonces - fin si.

Comandos o palabras reservadas.

Todos los lenguajes, naturales o computacionales, tienen palabras que denotan


una accin. Los comandos no son ms que acciones que debe interpretar y
ejecutar el computador. Cada comando conserva una sintaxis determinada, es
decir la forma de utilizarlo. Los lenguajes computacionales tienen en su repertorio
comandos dirigidos al procesamiento de archivos y datos, entre ellos: Leer,
Calcular, Asignar, Clasificar, Imprimir.

Formas de representar un algoritmo: Lenguaje natural, pseucodigo y


diagrama de flujo.

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, se mantienen independientes de un lenguaje de programacin
especfico.

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


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.
Descripcin formal. Se usa pseudocdigo para describir la secuencia de pasos
que encuentran la solucin.
Implementacin. Se muestra el algoritmo expresado en un lenguaje de
programacin especfico o algn objeto capaz de llevar a cabo instrucciones.
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.

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, se mantienen independientes de un lenguaje
de programacin especfico.

El pseudocdigo.

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.

Traza un Algoritmo (corrida en frio).

La traza de un Algoritmo se puede definir como la ejecucin manual de forma


secuencial de las sentencias que lo componen. As, la traza del siguiente algoritmo
es el valor que van adoptando las variables a medida que se va ejecutando un
programa.

La funcin principal que posee realizar la traza de una algoritmo es la de


comprobar que ste funciona correctamente o para realizar la etapa de depuracin
en la que se intenta corregir errores, simplificar el algoritmo al mximo e
incrementar su eficacia y velocidad.
Publicado por brihanyeli en 13:17 No hay comentarios:

Enviar por correo electrnicoEscribe un blogCompartir con TwitterCompartir con


FacebookCompartir en Pinterest
Definicin

de

Diagrama

de

flujo

Un diagrama de flujo es una forma esquemtica de representar ideas y conceptos


en relacin. A menudo, se utiliza para especificar algoritmos de manera grfica.
Se conoce como diagramas de flujo a aquellos grficos representativos que se
utilizan para esquematizar conceptos vinculados a la programacin, la economa,
los procesos tcnicos y/o tecnolgicos, la psicologa, la educacin y casi cualquier
temtica
de
anlisis.

Los diagramas de flujo son mltiples y diversos y pueden abordar muchos temas
distintos de formas tambin muy diferentes. En cualquier caso, el aspecto en
comn entre ellos es la presencia de un vnculo entre los conceptos enunciados y
una interrelacin entre las ideas. Comnmente, se utiliza este tipo de diagramas
para detallar el proceso de un algoritmo y, as, se vale de distintos smbolos para
representar la trayectoria de operaciones precisas a travs de flechas. Siempre
que existe un diagrama de flujo existe un proceso o sistema que pretende ser
graficado a travs de smbolos visuales que, en vez de trminos verbales,
simplifican el funcionamiento de dicho proceso y lo hacen ms claro y evidente al
lector.
Para que el diagrama de flujo tenga sentido como tal, debe existir un camino hacia
una solucin que parte de un nico inicio y arriba a un nico punto final. Con el
propsito de desarrollar un diagrama de estas caractersticas, se recomienda
definir el propsito y destinatario del grfico, identificar las ideas principales,
determinar los lmites y alcance del proceso a detallar, establecer el nivel de
detalle requerido, identificar acciones, procesos y subprocesos, construir el
diagrama y finalmente titularlo con exactitud. Conviene revisar el diagrama para
comprobar
que
cumple
su
objetivo
con
claridad
y
precisin.
Los smbolos ms utilizados en los diagramas de flujo son la flecha (que indica
sentido y trayectoria), el rectngulo (representa un evento o proceso), el rombo
(una
condicin),
el
crculo
(un
punto
de
conexin)
y
otros.

Adems, existen diversos tipos de diagramas. El vertical, en el que la secuencia o


flujo es de arriba hacia abajo; el horizontal, de izquierda a derecha; el panormico,
puede apreciarse de una vez y de forma tanto vertical como horizontal; el
arquitectnico, describe una ruta sobre un plano arquitectnico de trabajo.