lunes, 25 de febrero de 2013

Algoritmos

Algoritmo

Podemos denominar algoritmo a un grupo finito de operaciones organizadas de manera lógica y ordenada que nos permite solucionar un problema. Se trata de una serie de instrucciones o reglas establecidas que, por medio de una sucesión de pasos, permiten llegar  a una solución.
Los algoritmos permiten trabajar a partir de un estado básico o inicial y, tras seguir los pasos propuestos, llegar a una solución. Cabe resaltar que, si bien los algoritmos suelen estar asociados al ámbito matemático (ya que permiten, por citar casos concretos, averiguar el cociente entre un par de dígitos o determinar cuál es el máximo común divisor entre dos cifras pertenecientes al grupo de los enteros), aunque estos no siempre implican la presencia de números.1

Diagrama de flujo

Un diagrama de flujo es la representacion grafica de el algoritmo y tiene las siguientes caracteristicas:
Un diagrama de flujo siempre tiene un único punto de inicio y un único punto de término.
Las siguientes son acciones previas a la realización del diagrama de flujo:
1. Identificar las ideas principales a ser incluidas en el diagrama de flujo. Deben estar presentes el autor o responsable del proceso, los autores o responsables del proceso anterior y posterior y de otros procesos interrelacionados, así como las terceras partes interesadas.
2. Definir qué se espera obtener del diagrama de flujo.
3. Identificar quién lo empleará y cómo.
4. Establecer el nivel de detalle requerido.
5. Determinar los límites del proceso a describir.

Los pasos a seguir para construir el diagrama de flujo son:

1. Establecer el alcance del proceso a describir. De esta manera quedará fijado el comienzo y el final del diagrama. Frecuentemente el comienzo es la salida del proceso previo y el final la entrada al proceso siguiente.

2. Identificar y listar las principales actividades/subprocesos que están incluidos en el proceso a describir y su orden cronológico.
3.Si el nivel de detalle definido incluye actividades menores, listarlas también.
4. Identificar y listar los puntos de decisión.
5. Construir el diagrama respetando la secuencia cronológica y asignando los correspondientes símbolos.
6. Asignar un título al diagrama y verificar que esté completo y describa con exactitud el proceso elegido  

 
Datos
 
En los programas que diseñemos, casi siempre manejaremos datos de diversas clases de información, tales como textos o números. Cada una de estas clases de información son los tipos de datos. Turbo Pascal puede distinguir entre tres tipos de datos, y son éstos los que definen la clase de información que se puede contener en las variables o constantes que se van a utilizar en un programa.
Los tipos de datos que el lenguaje Pascal reconoce, utilizan nombres en el idioma inglés, además, estos nombres también son comunes en la mayoría de los lenguajes de programación, por los tanto sí usted aprende a identificarlos aquí, pordrá también familiarizarse con ellos en cualquier otro lenguaje de programación. Veamos a continuación una explicación sobre cuáles son estos tres tipos de datos.

Datos Alfanuméricos

Los datos de tipo alfanumérico, permiten representar un solo carácter o una secuencia de carácteres del código ASCII, posibilitando expresar una información de forma descriptiva. Para los principiantes en la programación, le aclaramos que le llamamos carácter a cualquiera de las letras del alfabeto, símbolos especiales, números o espacio en blanco que se escriben en la pantalla. En la siguiente tabla se muestran los dos tipos de datos alfanuméricos que Turbo Pascal reconoce:

Tipo Descripción Carácteres maximos Ejemplos Tamaño
Char Carácter unico 1 'a', 'A', 'B', 'b', '$', '9', ' ' 1 Byte
String Cadena de carácteres 255 'Estoy feliz' 255 Byte
'Hola, bienvenidos'
'Tutorial de progoramación'

Los datos alfanuméricos de tipo string (cadenas de caracteres) admiten una longitud maxima de 255 caracteres, osea 255 Bytes. Si durante la ejecución de un programa se intenta asingnar un número mayor de caracteres a una variable de este tipo de datos, solo se reconocerán el número máximo de carácteres soportados y los demás serán ignorados, también es posible al momento de declarar las variables, limitar el número de carácteres que esta almacenara con el fin ahorar espacio.

Datos numéricos

Los datos numéricos son aquellos que nos permiten representar valores escalares o información en forma cuantitativa, permitiendonos realizar operaciones aritmeticas basicas o calculos más avanzados con sus valores. este tipo de datos a su vez se dividen en dos tipos de datos, los cuales estan formados por los números enteros y los números reales.
Los datos de tipo Entero (o Integer en ingles), son los que representan valores numéricos sin parte fraccionaria, estos también se dividen, según su rango de valores, en datos de tipo Byte, Shorting, Integer, Word, y LonggInt. En la tabla siguiente se muestran los distintos tipos de datos Integer, indicando su rango de valores y el tamaño en bytes que ocupan en memoria:

Tipo Descripción Rango de valores Tamaño
Byte Entero corto positivo 0 a 255 1 Byte
Shortint Entero corto -128 a 127 1 Byte
Integer Entero -32.768 a 32.767 2 Bytes
Word Entero positivo 0 a 65535 2 Bytes
LongInt Entero largo -2.147'483.648 a 2.147'483.647 4 Bytes
Hay que tener en cuenta que en la tabla anterior se han formateado los rangos de valores con el punto separador de miles, sin embargo, al momento de asignar un valor a una variable de este tipo de datos hay que hacerlo sin puntos o se generará un error.
En expresiones aritméticas todos los datos tipo entero son compatibles entre si, lo que significa que el compilador permite intercambiarlos, así por ejemplo, a una variable de tipo Integer se le puede asignar el valor de una de tipo LongInt, siempre y cuando este no exceda el rango numérico del tipo Integer.
Los tipos de datos Reales (o Reals en inglés), son los permiten representar valores numéricos formados por una parte entera y una parte fraccionaria, y que pueden ser expersados con notación de coma flotante. Los datos de tipo real también se dividen en otros tipos de datos reales, según la precisión con que pueden presentar sus cifras decimales, tal como se muestran en la siguiente tabla:

Tipo Descripción Rango de valores Dígitos Tamaño
Real Real 2.9x10-39 a 1.7 x1038 11-12 6 Bytes
Single Real de simple precisión 1.5x10-45 a 3.4x1038 7-8 4 Bytes
Double Real de doble precisión 5.0x10-324 a 1.7x10308 15-16 8 Bytes
Extended Real de precisión extendida 3.4x10-4932 a 1.1x104932 19-20 10 Bytes
Comp Real de pecisión compacta -9.2x1018 a 9.2x1018 19-20 8 Bytes
Es importante tener en cuenta que, tanto en los datos de tipo entero como real, si se intenta asignar un valor que está fuera del rango de los valores permitidos se produce un error que se conoce con el nombre de desbordamiento (overflow en inglés), cuando esto ocurre lo habitual es que el programa que se estaba ejecutando deje de funcionar.

Datos Lógicos

Los datos lógicos son aquellos que pueden tomar unicamente uno de dos valores, tales como falso o verdadero, pero no ambos a la vez. Este tipo de datos es producido como el resultado del valor de verdad de las proposiciónes lógicas, asi por ejemplo, podemos evaluar si la expresión A + B = 15 es falsa o vedadera, y dependiendo del valor de su valor de verdad, en un programa se decide que sentencias se van a ejecutar para cada caso.
En Turbo Pascal, existen cuatro tipos de datos lógicos predefinidos, los cuales son Boolean, WordBool, LongBool y ByteBool. Sin embargo, de ellos sólo vamos utilizar el tipo Boolean, que emplea 8 bits, y puede tomar como valores, True para indicar verdadero y False para indicar falso. En nuestro lenguaje natural, los valores True/False equivalen a decir: Si/No, Encendido/Apagado, Activado/Desactivado, etc., y usted puede interpretarlos como mejor le sea conveniente.
En el próximo tema veremos acerca de la variables y constantes, aunque ya para concluir, sobra decir que, es de vital importancia que aprendamos bién sobre cada uno de los tipos de datos vistos en este tema, ya que así podremos definir correctamente el tipo de datos para cada una de las variables y constantes que vayamos a necesitar en nuestros futuros programas.2




1http://www.monografias.com/trabajos15/algoritmos/algoritmos.shtml

2. Tomado de http://turbopascal.webcindario.com/page05.htm

i1 http://marilinrodriguez.bligoo.com.co/que-es-un-algoritmo
  

No hay comentarios:

Publicar un comentario