You are on page 1of 23

Definicin formal

En general, no existe ningn consenso definitivo en cuanto a la definicin


formal de algoritmo. Muchos autores los sealan como listas de instrucciones
para resolver un clculo o un problema abstracto, es decir, que un nmero
finito de pasos convierten los datos de un problema (entrada) en una
solucin (salida). Sin embargo cabe notar que algunos algoritmos no
necesariamente tienen que terminar o resolver un problema en particular. Por
ejemplo, una versin modificada de la criba de Eratstenes que nunca
termine de calcular nmeros primos no deja de ser un algoritmo.
A lo largo de la historia varios autores han tratado de definir formalmente a
los algoritmos utilizando modelos matemticos. Esto fue realizado por Alonzo
Church en 1936 con el concepto de "calculabilidad efectiva" basada en su
clculo lambda y por Alan Turing basndose en la mquina de Turing. Los
dos enfoques son equivalentes, en el sentido en que se pueden resolver
exactamente los mismos problemas con ambos enfoques. Sin embargo,
estos modelos estn sujetos a un tipo particular de datos como son nmeros,
smbolos o grficas mientras que, en general, los algoritmos funcionan sobre
una vasta cantidad de estructuras de datos. En general, la parte comn en
todas las definiciones se puede resumir en las siguientes tres propiedades
siempre y cuando no consideremos algoritmos paralelos.
Tiempo secuencial. Un algoritmo funciona en tiempo discretizado
paso a paso, definiendo as una secuencia de estados
"computacionales" por cada entrada vlida (la entrada son los datos
que se le suministran al algoritmo antes de comenzar).
Estado abstracto. Cada estado computacional puede ser descrito
formalmente utilizando una estructura de primer orden y cada
algoritmo es independiente de su implementacin (los algoritmos son
objetos abstractos) de manera que en un algoritmo las estructuras de
primer orden son invariantes bajo isomorfismo.
Exploracin acotada. La transicin de un estado al siguiente queda
completamente determinada por una descripcin fija y finita; es decir,
entre cada estado y el siguiente solamente se puede tomar en cuenta
una cantidad fija y limitada de trminos del estado actual.
En resumen, 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. Esta amplia
definicin abarca tanto a algoritmos prcticos como aquellos que solo
funcionan en teora, por ejemplo el mtodo de Newton y la eliminacin de
Gauss-Jordan funcionan, al menos en principio, con nmeros de precisin
infinita; sin embargo no es posible programar la precisin infinita en una
computadora, y no por ello dejan de ser algoritmos. 10 En particular es posible
considerar una cuarta propiedad que puede ser usada para validar la tesis de
Church-Turing de que toda funcin calculable se puede programar en una
mquina de Turing (o equivalentemente, en un lenguaje de programacin
suficientemente general):10
Aritmetizabilidad.
Solamente
operaciones
calculables estn disponibles en el paso inicial.

innegablemente

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, 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.
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
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*1/2).
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
Algoritmos como funciones

Esquemtica de
hamiltoniano.

un

algoritmo

solucionando

un

problema

de

ciclo

Un algoritmo se puede concebir como una funcin que transforma los datos
de un problema (entrada) en los datos de una solucin (salida). Ms aun, los
datos se pueden representar a su vez como secuencias de bits, y en general,
de smbolos cualesquiera. Como cada secuencia de bits representa a un
nmero natural (vase Sistema binario), entonces los algoritmos son en
esencia funciones de los nmeros naturales en los nmeros naturales que s
se pueden calcular. Es decir que todo algoritmo calcula una funcin
donde cada nmero natural es la codificacin de un problema o
de una solucin.
En ocasiones los algoritmos son susceptibles de nunca terminar, por
ejemplo, cuando entran a un bucle infinito. Cuando esto ocurre, el algoritmo
nunca devuelve ningn valor de salida, y podemos decir que la funcin
queda indefinida para ese valor de entrada. Por esta razn se considera que
los algoritmos son funciones parciales, es decir, no necesariamente definidas
en todo su dominio de definicin.

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.
Anlisis de algoritmos
Como medida de la eficiencia de un algoritmo, se suelen estudiar los
recursos (memoria y tiempo) que consume el algoritmo. El anlisis de
algoritmos se ha desarrollado para obtener valores que de alguna forma
indiquen (o especifiquen) la evolucin del gasto de tiempo y memoria en
funcin del tamao de los valores de entrada.
El anlisis y estudio de los algoritmos es una disciplina de las ciencias de la
computacin y, en la mayora de los casos, su estudio es completamente
abstracto sin usar ningn tipo de lenguaje de programacin ni cualquier otra
implementacin; por eso, en ese sentido, comparte las caractersticas de las
disciplinas matemticas. As, el anlisis de los algoritmos se centra en los
principios bsicos del algoritmo, no en los de la implementacin particular.
Una forma de plasmar (o algunas veces "codificar") un algoritmo es escribirlo
en pseudocdigo o utilizar un lenguaje muy simple tal como Lexico, cuyos
cdigos pueden estar en el idioma del programador.
Algunos escritores restringen la definicin de algoritmo a procedimientos que
deben acabar en algn momento, mientras que otros consideran
procedimientos que podran ejecutarse eternamente sin pararse, suponiendo
el caso en el que existiera algn dispositivo fsico que fuera capaz de
funcionar eternamente. En este ltimo caso, la finalizacin con xito del
algoritmo no se podra definir como la terminacin de este con una salida
satisfactoria, sino que el xito estara definido en funcin de las secuencias
de salidas dadas durante un periodo de vida de la ejecucin del algoritmo.
Por ejemplo, un algoritmo que verifica que hay ms ceros que unos en una
secuencia binaria infinita debe ejecutarse siempre para que pueda devolver
un valor til. Si se implementa correctamente, el valor devuelto por el
algoritmo ser vlido, hasta que evale el siguiente dgito binario. De esta
forma, mientras evala la siguiente secuencia podrn leerse dos tipos de
seales: una seal positiva (en el caso de que el nmero de ceros sea mayor
que el de unos) y una negativa en caso contrario. Finalmente, la salida de
este algoritmo se define como la devolucin de valores exclusivamente
positivos si hay ms ceros que unos en la secuencia y, en cualquier otro
caso, devolver una mezcla de seales positivas y negativas.
Ejemplo de algoritmo
El problema consiste en encontrar el mximo de un conjunto de nmeros.
Para un ejemplo ms complejo vase Algoritmo de Euclides.
Descripcin de alto nivel
Dado un conjunto finito de nmeros, se tiene el problema de encontrar el
nmero ms grande. Sin prdida de generalidad se puede asumir que dicho
conjunto no es vaco y que sus elementos estn numerados como
.
Es decir, dado un conjunto
se pide encontrar
para todo elemento que pertenece al conjunto .

tal que

Para encontrar el elemento mximo, se asume que el primer elemento ( ) es


el mximo; luego, se recorre el conjunto y se compara cada valor con el valor

del mximo nmero encontrado hasta ese momento. En el caso que un


elemento sea mayor que el mximo, se asigna su valor al mximo. Cuando
se termina de recorrer la lista, el mximo nmero que se ha encontrado es el
mximo de todo el conjunto.
Descripcin formal
El algoritmo puede ser escrito de una manera ms formal en el siguiente
pseudocdigo:
Algoritmo Encontrar el mximo de un conjunto
funcin max( )
//

es un conjunto no vaco de nmeros//

//
es el nmero de elementos de

para hasta hacer


si
entonces

devolver

//

Sobre la notacin:

"" representa una asignacin:


el valor de ;

"devolver" termina el algoritmo y devuelve el valor a su derecha (en


este caso, el mximo de ).

Implementacin
En lenguaje C++:
int max(int c[], int n)
{
int i, m = c[0];
for (i = 1; i < n; i++)
if (c[i] > m) m = c[i];
return m;

significa que la variable

toma

Introduccin
Se pueden utilizar muchos lenguajes para programar una computadora. El
ms bsico es el lenguaje de mquina, una coleccin de instrucciones muy
detallada que controla la circuitera interna de la maquina. Este es el dialecto
natural de la maquina. Muy pocos programas se escriben actualmente en
lenguaje de maquina por dos razones importantes: primero, porque el
lenguaje de maquina es muy incomodo para trabajar y segundo porque la
mayora de las maquinas se pide programar en diversos tipos de lenguajes,
que son lenguajes de alto nivel, cuyas instrucciones son ms compatibles
con los lenguajes y la forma de pensar humanos como lo es el lenguaje c
que adems es de propsito general.
Debido a que los programas diseados en este lenguaje se pueden ejecutar
en cualquier maquina, casi sin modificaciones. Por tanto el uso del lenguaje
de alto nivel ofrece tres ventajas importantes, sencillez, uniformidad y
portabilidad.
1.1. Lenguaje de programacin: Sistema de smbolos y reglas que permite
la construccin de programas con los que la computadora puede operar as
como resolver problemas de manera eficaz.
Estos contienen un conjunto de instrucciones que nos permiten realizar
operaciones de entrada / salida, calculo, manipulacin de textos, lgica /
comparacin y almacenamiento / recuperacin.
Los lenguajes de programacin se clasifican en:

Lenguaje Mquina: Son aquellos cuyas instrucciones son


directamente entendibles por la computadora y no necesitan
traduccin posterior para que la CPU pueda comprender y ejecutar el
programa. Las instrucciones en lenguaje maquina se expresan en
trminos de la unidad de memoria ms pequea el bit (dgito binario 0
1).

Lenguaje de Bajo Nivel (Ensamblador): En este lenguaje las


instrucciones se escriben en cdigos alfabticos conocidos como
mnemotcnicos para las operaciones y direcciones simblicas.

Lenguaje de Alto Nivel: Los lenguajes de programacin de alto nivel


(BASIC, pascal, cobol, fortran, etc.) son aquellos en los que las
instrucciones o sentencias a la computadora son escritas con palabras
similares a los lenguajes humanos (en general en ingles), lo que
facilita la escritura y comprensin del programa.

1.2. Algoritmo. La palabra algoritmo se deriva de la traduccin al latn de la


palabra rabe alkhowarizmi, nombre de un matemtico y astrnomo rabe
que escribi un tratado sobre manipulacin de nmeros y ecuaciones en el
siglo IX.

La solucin a cualquier problema de cmputo involucra la ejecucin de una


serie de acciones en orden especfico. Un procedimiento para resolver un
problema en trminos de: a) Las acciones a ejecutarse y b) el orden en el
cual estas acciones deben ejecutarse se llama algoritmo.
Un ejemplo de un algoritmo para llegar a la escuela
a.
b. Salir de la cama
c. Quitarse la pijamas
d. Darse un bao
e. Vestirse
f. Desayunar
1.3 Programa.
o

o Secuencia de instrucciones mediante las cuales se ejecutan


diferentes acciones de acuerdo con los datos que se estn
procesando.
o

o Es un algoritmo desarrollado para ser utilizado por la


computadora
o

o Expresin de un algoritmo en un lenguaje preciso que puede


llegar a entender una mquina de cmputo.
g. Utilizar el transporte ( autobs, carro , bicicleta, etc)
2. Fases para la creacin de un programa.
2.1 Definicin del Problema
Esta fase est dada por el enunciado del problema, el cual requiere una
definicin clara y precisa. Es importante que se conozca lo que se desea que
realice la computadora; mientras esto no se conozca del todo no tiene mucho
caso continuar con la siguiente etapa.
2.2 Anlisis del Problema
Una vez que se ha comprendido lo que se desea de la computadora, es
necesario definir:
Los datos de entrada.
Cul es la informacin que se desea producir (salida)
Los mtodos y frmulas que se necesitan para procesar los datos.

Una recomendacin muy practica es el que nos pongamos en el lugar de la


computadora y analicemos que es lo que necesitamos que nos ordenen y en
que secuencia para producir los resultados esperados.
2.3 Diseo del Algoritmo
Las caractersticas de un buen algoritmo son:
Debe tener un punto particular de inicio.
Debe ser definido, no debe permitir dobles interpretaciones.
Debe ser general, es decir, soportar la mayora de las variantes que se
puedan presentar en la definicin del problema.
Debe ser finito en tamao y tiempo de ejecucin.
2.4 Codificacin
La codificacin es la operacin de escribir la solucin del problema (de
acuerdo a la lgica del diagrama de flujo o pseudocdigo), en una serie de
instrucciones detalladas, en un cdigo reconocible por la computadora, la
serie de instrucciones detalladas se le conoce como cdigo fuente, el cual se
escribe en un lenguaje de programacin o lenguaje de alto nivel.
2.5 Prueba y Depuracin
Los errores humanos dentro de la programacin de computadoras son
muchos y aumentan considerablemente con la complejidad del problema. El
proceso de identificar y eliminar errores, para dar paso a una solucin sin
errores se le llama depuracin.
La prueba consiste en la captura de datos hasta que el programa no
presente errores (los ms comunes son los sintcticos y lgicos).
2.6 Documentacin
Es la gua o comunicacin escrita es sus variadas formas, ya sea en
enunciados, procedimientos, dibujos o diagramas.
A menudo un programa escrito por una persona, es usado por otra. Por ello
la documentacin sirve para ayudar a comprender o usar un programa o para
facilitar futuras modificaciones (mantenimiento).
La documentacin se divide en tres partes:
Documentacin Interna
Documentacin Externa
Manual del Usuario

Documentacin Interna: Son los comentarios o mensaje que se


aaden al cdigo fuente para hacer mas claro el entendimiento de un
proceso.

Documentacin Externa: Se define en un documento escrito los


siguientes puntos:

Descripcin del Problema


Nombre del Autor
Algoritmo (diagrama de flujo o pseudocdigo)
Diccionario de Datos
Cdigo Fuente (programa)

Manual del Usuario: Describe paso a paso la manera como funciona el


programa, con el fin de que el usuario obtenga el resultado deseado.

2.7 Mantenimiento
Se lleva a cabo despus de terminado el programa, cuando se detecta que
es necesario hacer algn cambio, ajuste o complementacin al programa
para que siga trabajando de manera correcta. Para poder realizar este
trabajo se requiere que el programa este correctamente documentado.
PROGRAMACIN
LOS DATOS Y OPERACIONES BSICAS.
1. IDENTIFICADOR. Un identificador es una serie de caracteres formados
por letras, dgitos y el carcter subrayado ( _ ) que no inicie con dgito, asi
mismo es el nombre que damos a todo lo que manipulamos dentro de un
programa (variables, constantes, funciones, etc). Por ejemplo variables,
constantes, funciones, tipos definidos por el usuario etc.
2. TIPOS DE DATOS. Todos los datos tienen un tipo asociado con ellos. Un
dato puede ser un simple carcter, tal como b, un valor entero tal como 35. El
tipo de dato determina la naturaleza del conjunto de valores que puede tomar
una variable.

3. VARIABLES. Una variable es un identificador que puede tomar diferentes


valores dependiendo del tipo que esta se declare.
Una variable es un identificador que puede cambiar de valor durante la
ejecucin de un programa.
Una variable es una posicin de memoria donde se puede almacenar un
valor para uso de un programa.
5. INICIALIZACIN DE VARIABLES

Inicializar una variable es el darle un valor despus que se ha declarado pero


antes de que se ejecuten las sentencias en las que se emplea.
6. CONSTANTES. Constantes son los valores que no pueden ser
modificados. En C, pueden ser de cualquier tipo de datos.
Adems de los ejemplificados anteriormente, Podemos crear constantes de
caracteres con barra invertida. Estos corresponden a los caracteres que son
imposibles introducir desde el teclado.
7. OPERADORES
Un operador es un smbolo que indica al compilador que realice
manipulaciones lgicas o matemticas especficas.
Los operadores del mismo nivel de precedencia son evaluados por el
compilador de izquierda a derecha. Por supuesto, se puede utilizar
parntesis para ordenar la evaluacin.
Tambin, conviene utilizar parntesis para hacer ms claro el orden en que
se producen las evaluaciones, tanto para la persona que lo elabora o para
los que despus tengan que seguir el programa.
Operadores Lgicos:
Estos operadores se utilizan para establecer relaciones entre valores lgicos.
Estos valores pueden ser resultado de una expresin relacional.
Operadores Lgicos
And Y
Or O
Not Negacin
Prioridad de los Operadores Lgicos
Not
And
Or
Operadores de Asignacin. Los operadores de asignacin se utilizan para
formar expresiones de asignacin, en las que se asigna el valor de una
expresin a un identificador. ***** Por definir el operador de asignacin** .
Cada expresin toma un valor que se determina tomando los valores de las
variables y constantes implicadas y la ejecucin de las operaciones
indicadas.
Una expresin consta de operadores y operandos. Segn sea el tipo de
datos que manipulan, se clasifican las expresiones en:

Aritmticas

Relacinales

Lgicas

9. PALABRAS RESERVADAS.
Son palabras que tienen un significado especial para el lenguaje y no se
pueden utilizar como identificadores.
10. COMENTARIOS.
Los comentarios pueden aparecer en cualquier parte del programa, mientras
estn situados entre los delimitadores /* comentario */. Los comentarios son
tiles para identificar los elementos principales de un programa o para
explicar la lgica subyacente de estos.
Un diagrama de flujo es la representacin grfica de un algoritmo. Tambin
se puede decir que es la representacin detallada en forma grfica de como
deben realizarse los pasos en la computadora para producir resultados.
Esta representacin grfica se da cuando varios smbolos (que indican
diferentes procesos en la computadora), se relacionan entre s mediante
lneas que indican el orden en que se deben ejecutar los procesos.
Los smbolos utilizados han sido normalizados por el instituto norteamericano
de normalizacin (ANSI).

Recomendaciones para el diseo de Diagramas de Flujo.


Un diagrama de flujo es la representacin grfica de un algoritmo. Tambin
se puede decir que es la representacin detallada en forma grfica de como
deben realizarse los pasos en la computadora para producir resultados.
Esta representacin grfica se da cuando varios smbolos (que indican
diferentes procesos en la computadora), se relacionan entre si mediante
lneas que indican el orden en que se deben ejecutar los procesos.

Los smbolos utilizados han sido normalizados por el instituto norteamericano


de normalizacin (ANSI).

Todo diagrama debe tener un inicio y un fin.

Se deben se usar solamente lneas de flujo horizontales y/o verticales.

Se debe evitar el cruce de lneas utilizando los conectores.

Se deben usar conectores solo cuando sea necesario.

No deben quedar lneas de flujo son conectar.

Se deben trazar los smbolos de manera que se puedan leer de arriba


hacia abajo y de izquierda a derecha.

Todo texto escrito dentro de un smbolo deber ser escrito claramente,


evitando el uso de muchas palabras.

Evitar la terminologa de un lenguaje de programacin o maquina.

Utilizar comentarios ya sea al margen o mediante el smbolo grafico


comentarios para que este sea entendible por cualquier persona que
lo consulte.

Si el diagrama abarca mas de una hoja es conveniente enumerarlo e


identificar de donde viene y a donde se dirige.

2. Pseudocdigo
Mezcla de lenguaje de programacin y espaol (o ingles o cualquier otro
idioma) que se emplea, dentro de la programacin estructurada, para realizar
el diseo de un programa. En esencial, el pseudocdigo se puede definir
como un lenguaje de especificaciones de algoritmos.
Es la representacin narrativa de los pasos que debe seguir un algoritmo
para dar solucin a un problema determinado. El pseudocdigo utiliza
palabras que indican el proceso a realizar.

El pseudocdigo se concibi para superar las dos principales desventajas del


Diagrama de Flujo: el diagrama de flujo es lento de crear y difcil de modificar
sin un nuevo redibujo. Por otra parte el pseudocdigo es mas fcil de utilizar
ya que es similar al lenguaje natural.
Al contrario de los lenguajes de programacin de alto nivel como Pascal o
Basic no existe un conjunto de reglas que definan con precisin lo que es y lo
que no es pseudocdigo. Varia de un programador a otro.
El pseudocdigo requiere de ciertos smbolos que ya tienen significado
preciso y establecido a los que se les conoce como palabras clave. Es
necesario que exista una palabra clave para la seleccin y otra para la
iteracin condicional, as como para las instrucciones adicionales y otras
estructuras de control.
Programacin estructurada
Mtodo disciplinado de escribir programas que sean claros, que se
demuestren que son correctos y fciles de modificar
Un programa se compone de:
a.
b. Estructuras de datos.- Los hechos reales, representacin en forma
de datos, manera en que se organizan los datos.
c. Operaciones primitivas elementales.- Son acciones que se ejecutan
sobre los datos para transformarlos en informacin.
d. Estructuras de control.- Son los mtodos que existen para dirigir el
flujo de acciones que la computadora deber ejecutar sobre los datos
manejados por el programa.
Estructura de control secuencial
La computadora ejecutar automticamente enunciados uno despus del
otro, en el orden en el cual se han escrito de inicio a fin.

Ejemplo Sumar dos nmeros:


Pseudocdigo
Inicio

Entero a,b,c declara las variables a utilizar


Leer a,b solicita el valor de a y b
c= a+b suma a y b y lo almacena en c
Imprimir c muestra el resultado almacenado en la variable c
fin
Diagrama de flujo

ESTRUCTURA DE CONTROL SELECTIVA


Existen tres tipos de estructuras de control selectivas, estas se basan en una
condicin o en una opcin para decidir la parte del programa por el que
pasar.
a.
b. Simple b)Doble o compuesta c)Mltiple
Selectiva simple.- evala una condicin, si esta es verdadera ejecuta la
accin o acciones especificadas, si es falsa no realiza ninguna accin.

Nota: Si existe sola una instruccin o sentencia dentro de la condicin no es


necesario marcarlos con inicio y fin, en caso contrario si, como se muestra en
el diagrama anterior.
Selectiva doble o compuesta.- evala una condicin, si esta es verdadera
ejecuta la accin o acciones especificadas, si es falsa ejecuta otra accin o
acciones.

Nota: Si existe sola una instruccin o sentencia dentro de la condicin no es


necesario marcarlos con inicio y fin como en este caso que la condicin fue
falsa, en caso contrario si, en este ejemplo cuando la condicin fue
verdadera.
Ejemplo: Imprimir si un nmero es positivo o negativo

DIAGRAMAS DE FLUJO
Los diagramas de flujo representan la secuencia o los pasos lgicos para realizar una
tarea mediante unos smbolos. Dentro de los smbolos se escriben los pasos a seguir.
Un diagrama de flujo debe proporcionar una informacin clara, ordenada y concisa de
todos los pasos a seguir.

Nota: Cuando tengas claro como se hacen los diagramas de flujo te recomendamos
que veas el siguiente enlace: Ejemplos de Diagramas de Flujo. Te presentamos 15
diagramas resueltos. Normalmente para realizar un diagrama de flujo primero se hace
lo que se llama el algoritmo. Un algoritmo es una secuencia de PASOS a seguir para
resolver un problema de forma escrita.
Un ejemplo para cocinar un huevo para otra persona sera:
- Pregunto si quiere el huevo frito.
- Si me dice que si, lo frio, si me dice que no, lo hago hervido.
- Una vez cocinado le pregunto si quiere sal en el huevo.
- Si me dice que no lo sirvo en el Plato. Si me dice que si le hecho sal y despus lo
sirvo en el plato.
Ahora que ya sabemos todos los pasos, mediante el algoritmo, podemos hacer un
esquema con estos pasos a seguir. Este esquema ser el Diagrama de Flujo.

Si uno tiene experiencia puede prescindir del algoritmo escrito, pero siempre
tendremos que tenerlo en mente para hacer el diagrama de flujo sin equivocarnos.
Qu son Los Diagramas de Flujo y Para qu se Usan?
Un algoritmo describe una secuencia de pasos para realizar un tarea. El Diagrama de
Flujo es su representacin esquemtica. Los diagramas de flujo representan la
secuencia lgica o los pasos que tenemos que dar para realizar una tarea mediante
unos smbolos y dentro de ellos se describen los pasos ha realizar.
Por la tanto son una excelente herramienta para comprender el proceso a seguir as
como para identificar posibles errores antes del desarrollo final de la tarea. Se usan
para antes de hacer un programa informtico, analizar lo que tiene que hacer un robot,
en los procesos industriales, etc.
Un diagrama de flujo es til en todo aquello que se necesite una previa organizacin
antes de su desarrollo. En la realizacin de un programa informtico es
imprescindible primero realizar el diagrama de flujo, independientemente del
lenguaje de programacin que usemos despus. Una vez que tenemos nuestro
diagrama de flujo solo tendremos que conocer las rdenes del lenguaje que realizan
esas tareas.
Reglas Bsicas Para la Construccin de un Diagrama de Flujo
1. Todos los smbolos han de estar conectados

2. A un smbolo de proceso pueden llegarle varias lneas


3. A un smbolo de decisin pueden llegarle varias lneas, pero slo saldrn dos (Si
o No, Verdadero o Falso).
4. A un smbolo de inicio nunca le llegan lneas.
5. De un smbolo de fin no parte ninguna lnea.
Los smbolos que se usan para realizar los diagramas de flujo son lo siguientes

En el Smbolo de decisin a tomar los valores de salida pueden ser SI o NO o


VERDADERO o FALSO. El smbolo de Inicio o Final del Diagrama puedes ser un
cuadrado con los bordes redondeados o una elipse.
Se pueden utilizar colores para lo smbolos.
Ejemplos de Diagramas de Flujo
Veamos un primer ejemplo muy sencillo.
Queremos hacer un programa informtico que nos sume dos nmero y nos de el
resultado en pantalla.

El smbolo de resultado es un smbolo usado en los diagramas para soluciones con el


ordenador. Es el smbolo de salida del resultado por la pantalla del ordenador.
Ves que es muy sencillo, hay que ir poniendo los pasos lgicos que se deben seguir
para realizar la tarea o el programa.
En el ejercicio tenemos el inicio y el fin, una entrada de datos, para meter los 2

nmeros, una operacin a realizar, la suma, y un resultado a mostrar. Cada uno de


esos pasos con su smbolo correspondiente en el diagrama.
Otro

ejemplo

de

un

diagrama

de

flujo

para

una

operacin

sencilla.

Imaginemos que tenemos una lmpara o bombilla y queremos hacer el diagrama de


flujo para saber que hacer cuando esta no funciona.

Hacemos otro?
Bueno vamos hacer uno que nos muestre el resultado del rea de un tringulo en
pantalla.

Como ves en este ni siquiera hemos puesto las operaciones dentro de los smbolos ya
que con la forma del smbolo ya se entiende. No me hemos usado mucho el smbolo
de tomar un decisin, por eso vamos hacer uno en el que nos diga si el nmero es
par o impar:

Si te das cuenta mod significa dividir entre 2. Como ya debes saber si divido un
nmero entre 2 y el resto es 0 el nmero es par. Bien pues hay esta la decisin. Al
dividirlo entre 2 el resto es 0? Hay 2 posibilidades. Si lo es se ve en pantalla "Si es
par", si no lo es se ve en pantalla "No es par". Eso es la toma de decisiones. Adems
los diagramas de flujo no solo valen para informtica, incluso podemos hacer uno
para cocinar un huevo, como vimos al principio.
Bueno ahora vamos hacer uno un poco ms complicado. Tenemos que hacer un
diagrama de flujo para mostrar la suma de los 50 primeros nmeros. Lo primero es
poner a cero la suma y dar el primer nmero a sumar que ser el 0.
Fjate que el diagrama acaba cuando N, que es el nmero en cada momento, es 50.
Mientras no sea 50 el programa vuelve a la tercera secuencia que ser sumarle un
nmero al anterior N = N + 1. Intenta comprenderlo y ver que hace. Puedes realizar
mentalmente el diagrama para el nmero 0 y vers como lo acabas entendiendo.

Ejemplo de diagrama de flujo


Vamos a almacenar en M el mximo de los nmeros que se hayan ledo, el
primero va directamente a M y los N-1 restantes los leemos en A,
comparamos con M y si son mayores cambiamos el mximo temporal.
Al final se escribe el resultado. Vamos a ejecutarlo paso a paso para N=4,
empleando como datos: 2, 3, -1, 7.
(1) Leer N N=4
(2) Leer M M=2
(3) I=N-1=3
(4) Leer A A=3 (5) A>M? SI (6) M=A=3
(7) I=I-1=3-I=2
(8) I=0? NO (4) Leer A A=-1
Un ao es bisiesto si es mltiplo de 4, exceptuando los mltiplos de 100,
que slo son bisiestos cuando son mltiplos adems de 400, por
ejemplo el ao 1900 no fue bisiesto, pero el ao 2000 si lo ser. Hacer
un organigrama que dado un ao A nos diga si es o no bisiesto.

Dados dos nmeros enteros positivos N y D, se dice que D es un divisor


de N si el resto de dividir N entre D es 0. Se dice que un nmero N es
perfecto si la suma de sus divisores (excluido el propio N) es N. Por
ejemplo 28 es perfecto, pues sus divisores (excluido elv28) son: 1, 2, 4,
7 y 14 y su suma es 1+2+4+7+14=28. Hacer un organigrama que dado
un nmero N nos diga si es o no perfecto.

Realiza el diagrama de flujo que simule una caja registradora.

El pseudocdigo para esta caja registradora es:

1
7

Instituto Nacional de Educacin Diversificada INED


Bachillerato en ciencias y letras con orientacin en computacin.
Curso: Produccin de Contenidos Digitales
Profesor Oscar Mauricio Morales
Estudiante: Rubis Augusto Tec Tec
Fecha: 16 02 2016

INTRODUCCIN

You might also like