Sei sulla pagina 1di 19

Introduccin

En el presente trabajo pretendo presentar una serie de conceptos y


definiciones propios del estudio de los Algoritmos, su anlisis y diseo, adems
podremos encontrar algunos de sus componentes, anlisis y diseo. Tambin
veremos los diferentes tipos de formas y tamaos o medidas en que se pueden
almacenar y representar los datos y estructuras en un algoritmo.

INDICE

1) Problema
2) Definicin de Algoritmo
3) Caractersticas del Algoritmo
4) Tipos de Datos
5) Elementos del Algoritmo
6) Diagrama de Flujos
7) Pseudocdigos
8) Diagrama Nassi - Schneiderman

DESARROLLO

1) Definicin del Problema:


En informtica la solucin de un problema es relacionada con la estructuracin
de algoritmos para la elaboracin de programas que resuelvan los mismos.
Existen varias fases para que la solucin de un problema por medio de la
programacin se lleve a cabo.
Anlisis del problema: Se visualiza y plantea cual es el problema.
Diseo del algoritmo: En base al problema planteado se elabora una serie de
pasos e instrucciones detalladas para obtener una solucin.
Codificacin: Es la escritura del algoritmo en un lenguaje de programacin.
Verificacin y depuracin: Se buscan los errores de las etapas anteriores y se
eliminan.
Ejecucin: Se ejecuta y comprueba el programa en el computador.
Mantenimiento: Son los cambios o correcciones de errores en el programa una
vez finalizado.
2) Definicin de algoritmo
Es un nmero finito de pasos procedimentales que especifican cmo resolver
un problema, expresado en lenguaje natural, por ejemplo el castellano.
3) Caractersticas de los algoritmos:
Finitos: Debe acabar en algn momento.
Eficientes: Deben ocupar la mnima memoria y minimizar el tiempo de ejecucin.
Legibles: El texto que lo describe debe ser claro, tal que permita entenderlo y
leerlo fcilmente.
Modificables: Estarn diseados de modo que sus posteriores modificaciones
sean fciles de realizar, incluso por programadores diferentes a sus propios
autores.

Modulares: La filosofa utilizada para su diseo debe favorecer la divisin del


problema en mdulos pequeos.
nico punto de entrada, nico punto de salida: Los algoritmos y los mdulos
que lo integran entran por un slo punto, inicio, y se sale por un slo punto
tambin, fin.
4) Tipos de Datos:
Todos los datos tienen un tipo asociado con ellos. Un dato puede ser un simple
carcter, tal como 3+4, un valor entero tal como 35. El tipo de dato determina la
naturaleza del conjunto de valores que puede tomar una variable.
Datos Numricos:
Son aqullos que representan una cantidad o valor determinado. Su
representacin se lleva a cabo en los formatos ya conocidos (enteros, punto y
fracciones decimales si estas existen).
Estos pueden representarse en dos formas distintas:
Tipo Numrico Entero (integer).
Tipo Numrico Real (real).

Enteros:
Es un conjunto finito de los nmeros enteros. Los enteros son nmeros
completos, no tienen componentes fraccionarios o decimales y pueden ser
negativos y positivos.
Algunos ejemplos son:
37
-10 9
15.25
50

Reales:

Consiste en un subconjunto de los nmeros reales. Estos nmeros siempre


tienen un punto decimal y pueden ser positivos o negativos. Un nmero real
consiste de un nmero entero y una parte decimal.
Algunos ejemplos son:
0.52 664.32
6.579 8.0
-9.3 -47.23
Cadenas:
Son los datos que representan informacin textual (palabras, frases, smbolos,
entre otros). No representan valor alguno para efectos numricos.
Pueden distinguirse porque son delimitados por apstrofes o comillas.
Se clasifica en dos categoras:
Datos tipo carcter (char)
Datos tipo Cadena (string)
Datos Tipo Carcter:
Es un conjunto finito y ordenado de caracteres que la computadora reconoce.
Un dato de este tipo contiene solo un carcter.
Reconoce los siguientes caracteres:
Caracteres Alfabticos (A,B,C,Z,a,b,cz)
Caracteres Numricos (0,1,2,9)
Caracteres Especiales (+, -, *, /, ^, . , ;, <, >, $, .)
Datos Tipo Cadena (string):
Es una sucesin de caracteres que se encuentran delimitados por una comilla
(apstrofe) o dobles comillas, segn el tipo de lenguaje de programacin. La
longitud de una cadena de caracteres es el nmero de ellos comprendidos entre
los separadores o delimitadores.
Ejemplos:
Hola Mortimer
12 de octubre de 1496

Enunciado cualquiera
Nota: Los smbolos disponibles para la formulacin de caracteres y de
cadenas son aqullos que se encuentran en el codigo ASCII.
ASCII (American
Standard
Code for
Information
Interchange).
Lgicos:
Tambin se les denomina Booleano, es aqul dato que solo puede tomar uno de
dos valores: falso y verdadero.
Se utiliza para representar las alternativas (si/no) a determinadas condiciones.
Por ejemplo, cuando se pide si un valor entero sea primo, la respuesta ser
verdadera o falsa, segn sea.
Las categoras y tipos que se mencionaron anteriormente se conocen como
Tipos Simples, puesto que no poseen una estructura compleja.
En forma adicional, cada lenguaje puede proporcionar la utilizacin de Tipos
Compuestos, siendo estos, datos que tienen una estructura predeterminada.
Tipos Compuestos:
Entre los principales tipos compuestos se encuentran los siguientes:
Subrango:
Son aqullos en los que se especifica con precisin el intervalo de valores
vlidos para un dato.
Ejemplos:
0..100
'A'..'Z'

(son
(son

enumerativos
enumerativos

de
de

tipo
tipo

entero)
cadena)

Los Reales no son vlidos para crear enumerativos, ya que su intervalo no est
definido.
Enumerativos:
Son aqullos en los que se definen individualmente los valores para un dato.

Ejemplos:
(0,25,40,52)

Siempre

deben

ponerse

entre

parntesis.

Definidos por el Usuario:


Son aqullos que el programador crea para satisfacer las necesidades del
programa en diseo.

5) Elementos de los algoritmos:


Constante:
Es parte de la memoria en la que almacena un valor numrico o alfanumrico
que no cambia durante la ejecucin del programa.
Existen dos tipos de constante:
a)

Numricas: solo contiene nmeros.


Ejemplos:
PI = 3,14159
meses = 12
b) Alfanumricas o de Carcter: Pueden contener letras, nmeros y caracteres
especiales.
Ejemplos:
Ciudad = Chone
Pas = Ecuador
NOTA: Para asignar un valor a una variable o constante alfanumrica, dicho valor
debe estar encerrado entre comillas.

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').

Ejemplos:
...
i:=1;
read(n);

while i < n do begin


(* cuerpo del bucle *)
i := i + 1
end;
...
Expresiones:
Es una combinacin de Variables, Constantes y literales de tipos compatibles
entre s, estos elementos estn combinados mediante Operadores vlidos; la
expresin ms simple est formada por un nico elemento (variable, literal o
constante) sin ningn operador. Es posible tener expresiones aritmticas
(combinando expresiones de tipo entero y/o real), expresiones lgicas
(combinando expresiones de tipo lgico) y expresiones de tipo caracter. A
continuacin se muestran algunas expresiones tpicas:
2 * pi * r
v/t
(a>5) and (a<10)
Sub + cadena
Toda expresin tiene asociada un tipo que se corresponde con el tipo del valor
que devuelve la expresin cuando se evala, por lo que habr tantos tipos de
expresiones como tipos de datos.
Acumuladores:
En los algoritmos acumular significa multiplicar una variable por s misma y por
una (variable, constante o expresin).
Contador:
Es una variable cuyo valor se incrementa o decrementa en una cantidad
constante en cada iteracin.
El contador puede ser positivo(incrementos, uno en uno) o
negativo(decrementos, uno en uno). Se dice tambin descontar.

Interruptor:
Es una variable que puede tomar diversos valores durante la ejecucin de un
programa y que permite comunicar informacin desde una parte a otra del mismo.

Bucle:
Es un segmento de un algoritmo o programa, cuyas instrucciones se repiten un
nmero determinado de veces mientras se cumple una determinada condicin
(existe o es verdadera la condicin). Se debe establecer un mecanismo para
determinar las tareas repetitivas. Este mecanismo es una condicin que puede ser
verdadera o falsa y que comprueba cada vez a cada paso o iteracin del bucle.
Consta de tres partes:
Decisin,
Cuerpo del bucle
Salida del bucle.
Estructura:
Estructura secuencial:
Es aquella en la que una accin (instruccin) sigue a la otra en el orden en el
que estn escritas.
Estructuras de control:
Son parte fundamental de cualquier lenguaje. Sin ellas, las instrucciones de un
programa slo podran ejecutarse en el orden en que estn escritas (orden
secuencial). Las estructuras de control permiten modificar este orden. Hay dos
categoras de estructuras de control:
Condicionales o bifurcaciones:
Permiten que se ejecuten conjuntos distintos de instrucciones, en funcin de
que se verifique o no determinada condicin.

Bucles o repeticiones:
Permiten que se ejecute repetidamente un conjunto de instrucciones, bien un
nmero pre-determinado de veces, o bien hasta que se verifique una determinada
condicin.
Estructura condicional simple: IF
Este es el tipo ms sencillo de estructura condicional. Sirve para implementar
acciones condicionales.

Estructura condicional doble: IF ELSE


Este tipo de estructura permite implementar condicionales en los que hay dos
acciones alternativas.
Estructura condicional mltiple: IF - ELSEIF - ELSE
En su forma ms general, la estructura IF - ELSEIF - ELSE permite implementar
condicionales ms complicados.
Estructura de repeticin indexada: FOR
Este tipo de estructura permite implementar la repeticin de un cierto conjunto
de instrucciones un nmero pre-determinado de veces.
Estructura repetitiva condicional: WHILE
Permite implementar la repeticin de un mismo conjunto de instrucciones
mientras que se verifique una determinada condicin: el nmero de veces que se
repetir el ciclo no est definido.
Estructura de eleccin entre varios casos: SWITCH
Este tipo de estructura permite decidir entre varios caminos posibles, en funcin
del valor que tome una determinada instruccin.
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:
Inicio y fin.
Asignacin: Dar un valor a una variable.
Lectura / escritura: Introducir o sacar informacin por dispositivos E/S.
Instrucciones de bifurcacin: Alternan el orden de ejecucin del programa.
Salto a otra instruccin que no es la siguiente.
Bifurcacin incondicional: El salto se produce siempre que el programa vaya a
esa instruccin: Go to Ir a.

Bifurcacin condicional: Se ejecutan un conjunto de instrucciones u otras


dependiendo del valor devuelto al evaluar una condicin.
6) Diagramas de flujo:
Es un diagrama que utiliza smbolos (cajas) estndar y que tiene los pasos del
algoritmo escritos en cajas unidas por flechas, denominadas lneas de flujo, que
indican la secuencia en que se deben ejecutar.
Ejemplos:
Diagrama de Flujo N 1

Diagrama de Flujo N 2

Diagrama de Flujo N 3

7) Pseudocdigo:
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.
Ejemplo N 1:
Realizar el pseudocdigo de un programa que permita calcular el rea de un
rectngulo. Se debe introducir la base y la altura para poder realizar el clculo.

Programa; rea
Entorno: BASE, ALTURA, AREA son nmero enteros
Algoritmo:
escribir Introduzca la base y la altura
leer BASE, ALTURA
calcular AREA = BASE * ALTURA
escribir El rea del rectngulo es AREA
Finprograma
Ejemplo N 2:
Realizar el pseudocdigo que permita al usuario introducir por teclado dos
notas, calculando la suma y el producto de las notas.
Programa: SumaProducto
Entorno: NOTA1,NOTA2,SUMA,PRODUCTO son nmeros enteros
Algoritmo:
escribir Introduzca las notas
leer NOTA1,NOTA2
calcular SUMA = NOTA1 + NOTA2
calcular PRODUCTO = NOTA1 * NOTA2
escribir La suma de las dos notas es: SUMA
escribir El producto de las dos notas es :PRODUCTO
Finprograma
Ejemplo N 3:
Realizar el pseudocdigo de un programa que permita saber si un nmero es
mayor, menor o igual a cero.
Programa: ComparaNmeros
Entorno: NUMERO es un nmero entero
Algoritmo:
Escribir Introduzca un nmero
leer NUMERO
SI NUMERO>0 ENTONCES
escribir El nmero introducido es positivo
SI NO
SI NUMERO<0 ENTONCES
escribir El nmero introducido es negativo
SI NO
escribir El nmero es cero
FINSI
FINSI
Finprograma

8) Diagrama Nassi-Schneiderman:
Es una tcnica para la especificacin de algoritmos que combina la descripcin
textual del pseudocdigo con la representacin grfica del diagrama de flujo.

Ejemplos:

1)

2)

3)

Conclusin

Luego de realizar este trabajo he visto como los algoritmos son una de las
herramientas ms complejas y aplicables en el rea de la informtica y el mundo
de los computadores.
Las tcnicas de desarrollo de algoritmos nos permiten encontrar la mejor
solucin a los problemas que se nos presentan y deben ser solucionados por el
computador, estas tcnicas estn orientadas para utilizarse en cada uno de los
niveles de complejidad y variedad o alternativas para las cuales se aplican los
algoritmos.

BIBLIOGRAFIA
http://www.slideshare.net/BorisSalleg/algoritmo-variables-constantes-tipos-dedatos-y-asignacion
http://genaro11.blogspot.com/2013/03/algoritmos-tipos-de-datos.html
http://pastranamoreno.files.wordpress.com/2012/05/introduccion-algoritmos.pdf
http://mimosa.pntic.mec.es/~flarrosa/pseudoco.pdf
http://johnnjc.blogspot.com/2013/06/elementos-de-un-algoritmo-constantes.html
http://es.wikipedia.org/wiki/Algoritmo#Variables
http://informaticaiutav.wikispaces.com/Algoritmo+y+Diagramas+de+flujo
http://www.slideshare.net/Silvanac/algoritmos-y-programas-unidad1
http://departamento.us.es/edan/php/asig/LICFIS/LFIPC/Tema5FISPC0809.pdf
http://html.rincondelvago.com/algoritmos-y-programas.html
https://sites.google.com/site/stigestionydesarrollo/recuperacion/recuperaciongestion/tema-2-el-control-de-gestion/afadfasdf
http://arantxa.ii.uam.es/~jmmartinez/Pseudocodigo.htm
http://apuntesg01a12.blogspot.com/2009/01/diagrama-nassi-schneiderman.html