You are on page 1of 16

1Algoritmo

Emiliana Delmoral
Abril 2017.
Universidad Nacional Experimental de Guayana
Seccin 1
Computacin
Algoritmos

Un algoritmo se puede definir como una secuencia de instrucciones que representan un

molde de solucin para determinado tipo de problemas. O bien como un conjunto de

instrucciones que realizadas en orden conducen a obtener la solucin del problema.

Para realizar un programa es conveniente el diseo o definicin previa del algoritmo. El

diseo de algoritmos requiere creatividad y conocimientos profundos de la tcnica de

programacin. ``en la ciencia de la computacin y en la programacin o las computadoras. Un

lenguaje de programacin es solo un medio para expresar un algoritmo y una computadora es

solo un procesador para ejecutarlo.

Los algoritmos son independientes del lenguaje de programacin. En cada problema el

algoritmo puede escribirse y luego ejecutarse el lenguaje diferente de programacin. El

algoritmo es la infraestructura de cualquier solucin, escrita en cualquier lenguaje de

programacin.

Representacin 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, se mantienen independientes

de un lenguaje de programacin especfico.

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.

Los algoritmos pueden ser creados de dos formas:

1) pseudocdigo.- Es un conjunto pequeo y claro de instrucciones; en secuencia, que permite

llevar a cabo una tarea.

2) Diagrama de flujo.- Es la representacin de la secuencia, a travs de smbolos, de la tarea que

se va a realizar.

Un ejemplo de algoritmo es el que realizamos para cambiar una llanta a un automvil:

Inicio

Aflojar tornillos de las llantas

Levantar el coche con el gato

Sacar los tornillos de las llantas

Quitar la llanta

Poner la llanta de repuesto

Poner los tornillos

Bajar el gato

Apretar los tornillos

Fin

1) ALGORITMO EXPRESADO EN PSEUDOCODIGO


Definicin

Mucho se habla del pseudocdigo en las carreras de Analista de Sistemas y Programacin. Pero

no existe mucha bibliografa al respecto.

Comencemos aclarando que no es una forma de programacin. Se trata de una herramienta que

los analistas de sistemas utilizan para comunicar a los programadores la estructura del programa

que van a realizar, de forma de tener una idea bien clara de lo que se necesita programar.

Digamos que el pseudocdigo es una forma de diagramar un algoritmo para resolver un

determinado problema, sin atenerse a ningn lenguaje de programacin en especial.

Un algoritmo es un conjunto de procedimientos que permiten resolver un problema.

En vez de escribir el programa directamente en un lenguaje de programacin determinado (C,

Basic, etc.), crearemos un borrador entendible para todos, para luego de tener bien en claro lo

que se debe hacer, pasar a la programacin propiamente dicha.

El pseudocdigo se refiere a crear un cdigo para orientar a los programadores, pero sin la

sintaxis ni la estructura propia de ningn lenguaje.

Utilizacin en la prctica

En el trabajo de un analista de sistemas, una de las partes ms trabajosas es la de determinar qu

es lo que necesitan de un sistema los usuarios finales. Se dedican muchas horas a hacer un

relevamiento de los datos que sern necesarios, los tipos de procesamientos, las salidas, etc. Y

debe existir una realimentacin entre el diseo y el usuario, para garantizar que el sistema

cumpla con los requisitos del usuario.

Supongamos que tenemos un sistema para una empresa que utiliza una interfaz grfica en Visual

Basic, algunas aplicaciones especficas en C, y pginas PHP para trabajo va Internet.

Seguramente que crear un diagrama especfico para cada lenguaje sera una tarea tediosa.
Gracias a esta herramienta, podemos reunir a todos los programadores, dar las pautas de trabajo,

y mediante el pseudocdigo, cada programador sabr lo que hace el sistema, y podr escribir el

cdigo correspondiente.

Incluso dos programadores que dominen el mismo lenguaje pueden tener metodologas de

trabajo distintas. Un problema puede ser resuelto de muchas maneras, cada una ms o menos

eficiente que la otra, pero todas cumplen con el objetivo.

El pseudocdigo elimina estas diferencias, dando libertad a los programadores para que puedan

ajustarse a su metodologa de trabajo.

Generalmente, este cdigo se escribe con la participacin de todos los programadores. Esto

representa la ventaja de que muchas opiniones ayudan a elegir la mejor entre todas, logrando una

solucin efectiva y eficaz al problema planteado.

Ejemplo

Pseudocdigo

2) EXPRESAR UN ALGORITMO CON UN DIAGRAMA DE FLUJO

DIAGRAMA DE FLUJO

Es un esquema para representar grficamente un algoritmo. Se basan en la utilizacin de diversos

smbolos para representar operaciones especficas, es decir, es la representacin grafica de las

distintas operaciones que se tienen que realizar para resolver un problema, con indicacin

expresa el orden lgico en que deben realizarse.

Se les llama diagramas de flujo porque los smbolos utilizados se conectan por medio de flechas

para indicar la secuencia de operacin. Para hacer comprensibles los diagramas a todas las

personas, los smbolos se someten a una normalizacin; es decir, se hicieron smbolos casi

universales, ya que, en un principio cada usuario podra tener sus propios smbolos para
representar sus procesos en forma de Diagrama de flujo. Esto trajo como consecuencia que slo

aquel que conoca sus smbolos, los poda interpretar. La simbologa utilizada para la elaboracin

de diagramas de flujo es variable y debe ajustarse a un patrn definido previamente.

El diagrama de flujo representa la forma ms tradicional y duradera para especificar los detalles

algortmicos de un proceso. Se utiliza principalmente en programacin, economa y procesos

industriales.

Para realizar los diagramas de flujo utilizamos distintas figuras geomtricas en forma de caja de

texto, que sirven para distinguir el tipo de tareas que se ejecutan, las flechas indican el flujo del

proceso y se valen de determinada simbologa especfica para facilitar su comprensin

Por otra parte, un algoritmo consta de tres partes, secciones

mdulos principales, en la siguiente figura podemos observar las secciones que constituyen un

algoritmo.

Secciones de un algoritmo

El mdulo 1.- representa la operacin o accin que permite el ingreso de los datos del programa.

El mdulo 2.- representa la operacin o conjunto de operaciones secuenciales, cuyo objetivo es

obtener la solucin al problema.

El mdulo 3.- representa una operacin o conjunto de operaciones que permiten comunicar al

exterior el o los resultados alcanzados.

Pseudocdigo

El pseudocdigo (o falso lenguaje) es comnmente utilizado por los programadores para omitir

secciones de cdigo o para dar una explicacin del paradigma que tom el mismo programador

para hacer sus cdigos, esto quiere decir que el pseudocdigo no es programable sino facilita la

programacin.
El principal objetivo del pseudocdigo es el de representar la solucin a un algoritmo de la forma

ms detallada posible, y a su vez lo ms parecida posible al lenguaje que posteriormente se

utilizar para la codificacin del mismo

El pseudocdigo utiliza para representar las acciones sucesivas palabras reservadas en ingls

(similares a sus homnimos en los lenguajes de programacin), tales como estar, begin, end,

stop, if-then-else, while, repeat-until.etc.

Es un lenguaje de especificacin de algoritmos. El uso de tal lenguaje hace el paso de

codificacin final (esto es, la traduccin a un lenguaje de programacin) relativamente fcil.

El pseudocdigo naci como un lenguaje similar al ingls y era un medio representar

bsicamente las estructuras de control de programacin estructurada. Se considera un primer

borrador, dado que el pseudocdigo tiene que traducirse posteriormente a un lenguaje de

programacin. Cabe sealar que el pseudocdigo no puede ser ejecutado por una computadora.

Segn Anala Lanzillotta: "Considerado como un lenguaje falso, el pseudocdigo es un lenguaje

intermedio entre nuestro lenguaje y el de programacin, debido a que quien lo utiliza se gua por

una serie de normas pero sin llegar a usar una estructura tan rgida como la del lenguaje de

programacin.

El objetivo al que apunta es que quien lo pone en prctica se centre ms en la solucin del

algoritmo o el diseo de un software que en el programa que utiliza para crearlo. Y esto es

posible porque es ms fcil de manipular ya que no tiene que tener en mente el lenguaje en s y

adems, ms fcil de codificar.

Por ejemplo, si alguien tiene que hacer un software con un fin determinado, utiliza un

pseudocdigo propio en donde confluyen frases del lenguaje coloquial y algunas palabras de
programacin, y una vez que se logra concretar el software, se puede pasar al escaln siguiente

que es el de la transformacin al lenguaje de programacin formal que se vaya a utilizar.

De esta manera, al ser un lenguaje intermedio, no tiene una composicin estandarizada por lo

que no todos los programadores utilizan la misma sintaxis con exactitud. Pero a la vez, como es

una herramienta que est un paso previo al lenguaje formal de programacin, es fcil de

transformar al que ser ejecutado en la computadora.

Organigrama

Un organigrama es un esquema de la estructura de responsabilidades dentro de una empresa. En

el mismo se representan los diversos departamentos o individuos con sus respectivas

responsabilidades. El organigrama de esta manera refleja las distintas relaciones que se tienen

entre las distintas unidades operativas de una empresa como una forma de dar cuenta de la forma

en la que la misma acta internamente. Existen distintos tipos de organigramas, es decir, distintas

formas de representar la estructura de una organizacin, cada uno de los cuales tiene su propia

finalidad y su objetivo especfico; no obstante, todos ellos comparten la intencin de ser un

reflejo de la composicin de una organizacin de personas.

En trminos generales, conocer un organigrama nos dar una idea panormica de todas las

responsabilidades existentes en un organismo. Es decir que existirn distintos elementos

jerarquizados, distintas relaciones dispuestas visualmente que darn una idea lo suficientemente

cabal de la forma en que dicha organizacin se compone y tiende a funcionar. Este tipo de

circunstancia debe mostrarse de una forma resumida y de fcil acceso, casi intuitiva. De esta

manera, cualquier individuo podra informarse con facilidad de las funciones que deberan

desempear cada persona y cada unidad existente, circunstancia de gran relevancia ante la

existencia de un problema laboral.


Desde una perspectiva visual, los organigramas pueden disponerse de modo vertical, horizontal o

en una variante que agrupe las anteriores; esto significa que las estructuras jerrquicas se

representarn de arriba abajo, de izquierda a derecha o de manera mixta. Ahora bien, es

importante sealar que los organigramas pueden orientarse a finalidades diversas, circunstancia

que de alguna manera alterar su composicin; as, desde esta perspectiva pueden agregar una

suma variable de informacin, considerando en este caso quien deber informarse con los

mismos, si se requiere precisin o es preferible la sntesis en la forma en que se presentan los

datos.

Los organigramas son usualmente utilizados por entidades con fines de lucro, pero exceden este

mbito. En efecto, los mismos tambin pueden ser usados para representar la estructura de

distintos organismos pblicos u organizaciones sin fines de lucro. En este sentido, cumplen la

misma funcin de brindar informacin de utilidad ante un posible interesado. No obstante, pese a

su vigencia, tambin es importante hacer notar que el origen de su uso debe rastrearse en un

momento histrico bastante distante del actual, en donde la tecnologa y las ciencias de la

informacin eran completamente inexistentes y en donde exista un gran nfasis en las

representaciones visuales ante la falta de otra herramienta.

El diagrama Nassi-Shneiderman

Refleja la descomposicin del problema en una forma simple usando cajas anidadas para

representar cada uno de los subproblemas.

Cuenta con un conjunto limitado de smbolos para representar los pasos del algoritmo, por ello se

apoya en expresiones del lenguaje natural; sin embargo, dado que el lenguaje natural es muy

extenso y se presta para la ambigedad, solo se utiliza un conjunto de palabras, a las que se

denomina palabras reservadas. Las palabras reservadas ms utilizadas son:


Inicio Fin Leer Escribir

Mientras Repita Hasta Para

Incrementar Decremento Hacer Funcin

Entero Real Carcter Cadena

Lgico Retornar

Smbolos- Los diagramas NS tienen tres smbolos principales: el primero es un

Cuadro que sirve para representar cualquier proceso en el programa; el

Segundo smbolo es una decisin; y el tercero es un cuadro dentro de

Otro cuadro que se utiliza para indicar que se lleva a cabo una interaccin

Las acciones sucesivas se pueden escribir en cajas sucesivas y como en los diagramas de flujo, se

pueden escribir diferentes acciones en una caja.

Tambin como muchas cosas tiene ventajas y desventajas. Sus ventajas son:

Adopta la filosofa de la programacin estructurada, que utiliza un

Enfoque descendente.

Utiliza un nmero limitado de smbolos de tal forma

Que el diagrama de flujo ocupa menos espacio.

Puede leerse con cierta

Finalidad.

Y sus desventajas son:

Deben estar completos y ser muy claros, con el fin de que se

Entiendan y portante como no muchos saben hacerlos los suficientemente claros les fallan.

Estructuras de control

Son las que permiten modificar el flujo de ejecucin de las instrucciones de un programa.
-Las estructuras de control se clasifican en:

a) Secuencia: Ejecucin sucesiva de una o ms operaciones.

b) Seleccin: Se realiza una u otra operacin, dependiendo de una condicin.

c) Iteracin: Repeticin de una o varias operaciones mientras se cumpla una condicin.

-Estructuras de control repetitivas:

*For

*While

*Do while

For:

Se utiliza para ejecutar acciones repetitivas con un nmero conocido de iteraciones.

While:

Se utiliza para ejecutar acciones repetitivas mientras se cumpla o no una condicin. Es ideal

cuando no sabemos previamente el nmero de iteraciones.

Do while:

Se utiliza para ejecutar acciones repetitivas mientras se cumpla o no una condicin. Es ideal

cuando no sabemos previamente el nmero de iteraciones.

Esta estructura de control nos ofrece una ventaja adicional al ciclo while, ya que la sentencia se

ejecutar a por lo menos una vez

Asignaciones

En programacin, tipo de operador que sirve para almacenar un valor en una variable. Por

ejemplo en lenguaje C, numero = 4; El operador de asignacin es = y asigna a la

variable numero el valor 4. No debe confundirse con la igualdad, que suele representarse == en

lenguaje C y otros lenguajes.


El operador de asignacin puede cambiar dependiendo del lenguaje de programacin. Suele

usarse =, pero tambin:=.

Entrada y salida de datos

La entrada de datos consiste en colocar en la memoria principal datos provenientes desde algn

dispositivo de entrada (teclado, disco, etc.) para que la computadora, de acuerdo a un programa,

realice una tarea.

La salida de datos consiste en enviar datos (que, generalmente, son el resultado de un

procesamiento) desde la memoria principal hacia un dispositivo de salida (pantalla, impresora,

disco, etc.).

La siguiente figura muestra un esquema conceptual del equipo de cmputo.

Esquema conceptual del equipo de cmputo

La consola

En los albores de la computacin, el teclado y la pantalla formaban la consola.

En la actualidad, a la combinacin de teclado y pantalla se les sigue considerando como a la

antigua consola.

En C#, la entrada y la salida de datos se pueden manejar a travs de los mtodos de la clase

Consol.

Entrada de datos desde el teclado

Para la entrada de datos por medio del teclado se pueden utilizar los mtodos Read ( ) y

ReadLine ( ) de la clase Consol.

Ejemplos:
System.Console.Read ( ); // Lee el siguiente carcter desde el flujo de la entrada estndar.

System.Console.ReadLine ( ); // Lee la siguiente lnea de caracteres desde el flujo de la entrada

estndar.

Salida de datos hacia la pantalla

La salida de datos hacia la pantalla se puede realizar utilizando los mtodos Write y WriteLine ( )

de la clase Consol.

Ejemplos:

System.Console.Write ( ); // Escribe el siguiente carcter en el flujo de la salida estndar (la

pantalla).

System.Console.WriteLine ( ); // Escribe la siguiente lnea de caracteres en el flujo de la salida

estndar.

Decisiones: Son estructuras de control que realizan una pregunta la cual retorna verdadero o

falso (evala una condicin) y selecciona la siguiente instruccin a ejecutar dependiendo la

respuesta o resultado. El siguiente enlace nos dar una mejor visin con respecto a las

decisiones:

Opcin mltiple: En este caso hay un Indicador es una variable o una funcin cuyo valor es

comparado en cada caso con los valores "Valor", si en algn caso coinciden ambos valores,

entonces se ejecutarn las Instrucciones correspondientes. La seccin en otro caso es anloga a la

seccin si no del ejemplo anterior. El siguiente enlace nos dar una mejor visin con respecto a la

opcin mltiple:

Ciclos o bucles (repetir hasta, repetir mientras y repetir desde): Es una sentencia que se

realiza repetidas veces a un trozo aislado de cdigo, hasta que la condicin asignada a dicho

bucle deje de cumplirse.


Generalmente, un bucle es utilizado para hacer una accin repetida sin tener que escribir varias

veces el mismo cdigo, lo que ahorra tiempo, deja el cdigo ms claro y facilita su modificacin

en el futuro.

El bucle y los condicionales representan la base de la programacin estructurada. Es una

evolucin del cdigo ensamblador, donde la nica posibilidad de iterar un cdigo era establecer

una sentencia jump (que en los lenguajes de programacin fue sustituida por el "ir a" o GOTO).

Los tres bucles ms utilizados en programacin son el bucle while, el bucle for y el bucle repetir.

El siguiente enlace nos dar una mejor visin con respecto a los ciclos:

Bucle mientras

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.

Bucle repetir

Existen otras variantes que se derivan a partir de la anterior. La estructura de control repetir se

utiliza cuando es necesario que el cuerpo del bucle se ejecuten al menos una vez y hasta que se

cumpla la condicin:

Bucle para

Una estructura de control muy comn es el ciclo para, la cual se usa cuando se desea iterar un

nmero conocido de veces, empleando como ndice una variable que se incrementa (o

decremento).

Es importante recalcar que el pseudocdigo no es un lenguaje estandarizado. Eso significa que

diferentes autores podran dar otras estructuras de control o bien usar estas mismas estructuras,

pero con una notacin diferente. Sin embargo, las funciones matemticas y lgicas toman el

significado usual que tienen en matemtica y lgica, con las mismas expresiones.
Procedimientos

Un procedimiento es un programa que realiza una tarea especfica. Puede recibir cero o ms

valores del programa que llama y devolver cero o ms valores al programa que realiz la

llamada. Un procedimiento est compuesto de un grupo de sentencias a las que se asigna un

nombre (identificador) y constituye una unidad de programa. La tarea asignada al procedimiento

se ejecuta siempre que Pascal encuentra el nombre del procedimiento. Los procedimientos es

obligatorio declararlos y deben ser declarados antes de que puedan ser referenciados en el cuerpo

del programa. En Pascal reciben el nombre de PROCEDURE.

Declaracin de un procedimiento

Al igual que los identificadores, los procedimientos deben declararse dentro del cuerpo del

programa. La declaracin de un procedimiento NO indica a la computadora que ejecute

las instrucciones dadas, sino que indica a la computadora cules son estas instrucciones y dnde

estn localizadas cuando sea necesario.

Cabecera del procedimiento

Proporciona el nombre del mismo y, en caso de existir, una lista de parmetros formales.

Ventajas de utilizar procedimientos

La organizacin de un programa en procedimientos lo hace ms fcil de escribir

y depurar. Los procedimientos no deben exceder de 25 lneas.

Facilita el diseo descendente.

Los procedimientos se pueden ejecutar ms de una vez en un programa y/o en

diferentes programas, ahorrando tiempo de programacin.


El uso de procedimientos facilita la divisin de las tareas entre un equipo

de programadores y se pueden comprobar individualmente.

You might also like