viernes, 17 de abril de 2009

CAPITULO 5

ESTRUCTURAS ALGORITMICAS

Grupo de formas de trabajo, que mediante la manipulación de variables permiten realizar ciertos procesos específicos para llegar a la solución de problemas.Estas estructuras se clasifican de acuerdo con su complejidad en:

ESTRUCTURAS SECUENCIALES

La estructura secuencial es aquella en la que una acción (instrucción) sigue a otra en secuencia. Las tareas se suceden de tal modo que la salida de una es la entrada de la siguiente y así sucesivamente hasta el fin del proceso.

- Asignación: 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 asignación se puede clasificar de la siguiente forma:· Simples: pasar un valor constate a una variable (a=15)· Contador: usarla como un verificador del numero de veces que se realiza un proceso (a=a+1)· Acumulador: usarla como un sumador en un proceso (a=a+b)· De trabajo: Donde puede recibir el resultado de una operación matemática que involucre muchas variables (a=c+b*2/4).

- Lectura: Consiste en recibir desde un dispositivo de entrada un valor. Esta operación se representa en un pseudocodigo así:Leer a, bDonde “a” y “b” son las variables que recibirán los valores.

-Escritura: Consiste en mandar por un dispositivo de salida un resultado o mensaje así:Escribe “El resultado es:”, RDonde “El resultado es:” es un mensaje que se desea aparezca y R es una variable que contiene un valor.


ESTRUCTURAS CONDICIONALES

Las estructuras condicionales comparan una variable contra otro(s) valor(es), para que en base al resultado de esta comparación, se siga un curso de acción dentro del programa. La comparación se puede hacer contra otra variable o contra una constante, según se necesite.

Existen dos tipos básicos, las simples y las múltiples.

· Simples: se les conoce como “Tomas de decisión”. Estas tomas de decisión tienen la siguiente forma:

Si entonces
Acción(es)
Fin-si

· Dobles: permiten elegir entre dos opciones o alternativas posibles en función del cumplimiento o no de una determinada condición.
Se representa de la siguiente forma:

Si entonces
Acción(es)
Si no Acción(es)
Fin-si
Donde:Si………………… Indica el comando de comparación
Condición………… Indica la condición a evaluar
Entonces……..…… Precede a las acciones a realizar cuando se cumple la condición
Acción(es)………… Son las acciones a realizar cuando se cumple o no la condición
Si no……………… Precede a las acciones a realizar cuando no se cumple la condición

· Múltiples: son tomas de decisión especializadas que permiten comparar una variable contra distintos posibles resultados, ejecutando para cada caso una serie de instrucciones específicas.
La forma común es la siguiente:

Si entonces
Acción(es)
Si no
Si entonces
Acción(es)
Si no..
Varias condiciones


ESTRUCTURAS CÍCLICAS

Son aquellos en cuya solución es necesario utilizar un mismo conjunto de acciones que se puedan ejecutar una cantidad especifica de veces. Esta cantidad puede ser fija (previamente determinada por el programador) o puede ser variable (estar en función de algún dato dentro del programa).

Los ciclos se clasifican en:

· Ciclos con un Numero Determinado de Iteraciones (Hacer-Para)
Son aquellos en que el número de iteraciones se conoce antes de ejecutarse el ciclo. La forma de esta estructura es la siguiente:

Hacer para V.C = L.I a L.S
Accion1
Accion2 ...
Acción N
Fin-para

Donde:V.C Variable de control del ciclo
L.I Limite inferir
L.S Límite superior
En este ciclo la variable de control toma el valor inicial del ciclo y el ciclo se repite hasta que la variable de control llegue al límite superior.

· Ciclos con un Numero Indeterminado de Iteraciones ( Hacer-Mientras, Repetir-Hasta)
Son aquellos en que el número de iteraciones no se conoce con exactitud, ya que esta dado en función de un dato dentro del programa.

·Hacer-Mientras: Esta es una estructura que repetirá un proceso durante “N” veces, donde “N” puede ser fijo o variable. Para esto, la instrucción se vale de una condición que es la que debe cumplirse para que se siga ejecutando. Cuando la condición ya no se cumple, entonces ya no se ejecuta el proceso. La forma de esta estructura es la siguiente:

Hacer mientras
Accion1
Accion2 ..
AccionN
Fin-mientras

· Repetir-Hasta: Esta es una estructura similar en algunas características, a la anterior. Repite un proceso una cantidad de veces, pero la diferencia es que lo hace hasta que la condición se cumple y no mientras, como en el anterior. Por otra parte, esta estructura permite realizar el proceso cuando menos una vez, ya que la condición se evalúa al final del proceso. La forma de esta estructura es la siguiente:

Repetir
Accion1
Accion2…
Hasta

CAPITULO 4

TÉCNICAS PARA LA FORMULACIÓN DE ALGORITMOS


Diagrama de Flujo

Un diagrama de flujo es la representación gráfica de un algoritmo. También se puede decir que es la representación detallada en forma gráfica de como deben realizarse los pasos en la computadora para producir resultados.Esta representación gráfica se da cuando varios símbolos, se relacionan entre si mediante líneas que indican el orden en que se deben ejecutar los procesos.

Recomendaciones para el diseño de Diagramas de Flujo:
Ø Se deben se usar solamente líneas de flujo horizontal y/o vertical.
Ø Se debe evitar el cruce de líneas utilizando los conectores.
Ø Se deben usar conectores solo cuando sea necesario.
Ø Se deben trazar los símbolos de manera que se puedan leer de arriba hacia abajo y de izquierda a derecha.

Pseudocodigo

El pseudocodigo se puede definir como un lenguaje de especificaciones de algoritmos. Es la representación narrativa de los pasos que debe seguir un algoritmo para dar solución a un problema determinado. El pseudocodigo utiliza palabras que indican el proceso a realizar.

Ventajas de utilizar un Pseudocodigo a un Diagrama de Flujo:
*Ocupa menos espacio en una hoja de papel
*Permite representar en forma fácil operaciones repetitivas complejas
*Es muy fácil pasar de pseudocodigo a un programa en algún lenguaje de programación.
*Si se siguen las reglas se puede observar claramente los niveles que tiene cada operación.

Diagramas estructurados

Es como un diagrama de flujo en el que se omiten las flechas de unión y las cajas son contiguas. Las acciones sucesivas se pueden escribir en cajas sucesivas y como en los diagramas de flujo, se pueden escribir diferentes acciones en una caja.
Un algoritmo se representa en la siguiente forma:

inicio
Acción 1
Acción 2…
accion N
Fin

CAPITULO 3

TÉCNICAS DE DISEÑO

TOP DOWN

También conocida como de arriba-abajo y consiste en establecer una serie de niveles de mayor a menor complejidad (arriba-abajo) que den solución al problema. Consiste en efectuar una relación entre las etapas de la estructuración de forma que una etapa jerárquica y su inmediato inferior se relacionen mediante entradas y salidas de informaciónSe utiliza comúnmente para la Simplificación del problema y de los subprogramas de cada descomposición, Las diferentes partes del problema pueden ser programadas de modo independiente e incluso por diferentes personas y por ultimo El programa final queda estructurado en forma de bloque o módulos lo que hace más sencilla su lectura y mantenimiento.

BOTTOM UP

Diseño ascendente en el cual se identifican los procesos que necesitan ser computarizados con forme vayan apareciendo, y así adquirir las herramientas necesarias para satisfacer el problema inmediato.
Cuando la programación se realiza internamente y haciendo un enfoque ascendente, es difícil llegar a integrar los subsistemas al grado tal de que el desempeño global así que muchos de ellos no se solucionan hasta que la programación alcanza la fecha limite para la integración total del sistema.Al tomar un enfoque ascendente el sistema global adolece de ciertas limitaciones, aunque al principio cada subsistema parecía ofrecer lo que se requería.
Limitaciones: Duplicación de esfuerzos para accesar el software y más aun al introducir los datos, se introducen al sistema muchos datos carentes de valor y el más serio inconveniente del enfoque ascendente, es que los objetivos globales de la organización no fueron considerados y en consecuencia no se satisfacen.

CAPITULO 2

ENTIDADES PRIMITIVAS PARA EL DESARROLLO DEALGORITMOS


TIPOS DE DATOS
Ø Todos los datos tienen un tipo asociado con ellos.
Ø Un dato puede ser un simple carácter.
Ø El tipo de dato determina la naturaleza del conjunto de valores que puede tomar una variable.

TIPOS DE DATOS SIMPLES
Ø Datos Numéricos: Permiten representar valores escalares de forma numérica, esto incluye a los números enteros y los reales.
Ø Datos Lógicos: Son aquellos que solo pueden tener dos valores (cierto o falso) ya que representan el resultado de una comparación entre otros datos (numéricos o alfanuméricos).
Ø Datos Alfanuméricos (String): Es una secuencia de caracteres alfanuméricos que permiten representar valores identificables de forma descriptiva, esto incluye nombres de personas, direcciones, etc.

EXPRESIONES

Las expresiones son combinaciones de constantes, variables, símbolos de operación, paréntesis y nombres de funciones especiales.Una expresión consta de operadores y operandos.Según sea el tipo de datos que manipulan, se clasifican las expresiones en:- Aritméticas- Relaciónales- Lógicas

OPERADORES Y OPERANDOS
Ø Operadores: Son elementos que relacionan de forma diferente, los valores de una o mas variables y/o constantes. Es decir, los operadores nos permiten manipular valores.

Tipos de Operadores:
-Aritméticos
-Relaciónales
-Lógicos

Ø Operadores Aritméticos: Los operadores aritméticos permiten la realización de operaciones matemáticas con los valores (variables y constantes).

ØOperadores relacionales: Se utilizan para establecer una relación entre dos valores.Ø Compara estos valores entre si y esta comparación produce un resultado de certeza o falsedad (verdadero o falso).
-Los operadores relaciónales comparan valores del mismo tipo (numéricos o cadenas)
-Tienen el mismo nivel de prioridad en su evaluación.
-Los operadores relaciónales tiene menor prioridad que los aritméticos.

Operadores Relaciónales
> Mayor que
< Menor que
> = Mayor o igual que
< = Menor o igual que
< > Diferente
= Igual

OPERADORES LÓGICOS
Estos operadores se utilizan para establecer relaciones entre valores lógicos y pueden ser resultado de una expresión relacional.
Operadores Lógicos
And Y
Or O
Not Negación

PRIORIDAD DE LOS OPERADORES EN GENERAL
1. - ( )
2. - ^
3. - *, /, Mod, Not
4. - +, -, And
5. - >, <, > =, < =, < >, =, Or


IDENTIFICADORES

Los identificadores representan los datos de un programa (constantes, variables, tipos de datos). Un identificador es una secuencia de caracteres que sirve para identificar una posición en la memoria de la computadora, que nos permite acceder a su contenido.

REGLAS PARA FORMAR UN IDENTIFICADOR
Ø Debe comenzar con una letray no deben contener espacios en blanco.
Ø Letras, dígitos y caracteres como la subrayaestán permitidos después del primer carácter.
Ø La longitud de identificadores puede ser de hasta 8 caracteres.
CONSTANTES Y VARIABLES

Constante: Una constante es un dato numérico o alfanumérico que no cambia durante la ejecución del programa.Variable: Es un espacio en la memoria de la computadora que permite almacenar temporalmente un dato durante la ejecución de un proceso, su contenido puede cambia durante la ejecución del programa. Para poder reconocer una variable en la memoria de la computadora, es necesario darle un nombre con el cual podamos identificarla dentro de un algoritmo.

CLASIFICACIÓN DE LAS VARIABLES

Por su Contenido

Ø Variable Numéricas: Son aquellas en las cuales se almacenan valores numéricos, positivos o negativos, es decir almacenan números del 0 al 9, signos (+ y -) y el punto decimal.

Ø Variables Lógicas: Son aquellas que solo pueden tener dos valores (cierto o falso).

Ø Variables Alfanuméricas: Esta formada por caracteres alfanuméricos (letras, números y caracteres especiales).

Por su Uso

Ø Variables de Trabajo: Variables que reciben el resultado de una operación matemática completa y que se usan normalmente dentro de un programa. Ejemplo: Suma=a+b/c

Ø Contadores: Se utilizan para llevar el control del número de ocasiones en que se realiza una operación o se cumple una condición. Con los incrementos generalmente de uno en uno.

Ø Acumuladores: Forma que toma una variable y que sirve para llevar la suma acumulativa de una serie de valores que se van leyendo o calculando progresivamente.

CAPITULO 1

CONCEPTOS BÁSICOS Y METODOLOGÍA PARA LA SOLUCIÓN DE PROBLEMAS POR MEDIO DE COMPUTADORAS


La computadora no solamente es una maquina que puede realizar procesos para darnos resultados, sin que tengamos la noción exacta de las operaciones que realiza para llegar a esos resultados.
A las soluciones creadas por computadora se les conoce como programas y no son más que una serie de operaciones que realiza la computadora para llegar a un resultado, con un grupo de datos específicos.

Computadora: Es un dispositivo electrónico utilizado para procesar información y obtener resultados. Los datos y la información se pueden introducir en la computadora como entrada (input) y a continuación se procesan para producir una salida (output).
Proceso de información en la computadora:
Datos de entrada---------------Proceso -------------Datos de salida

Programa: Es el conjunto de instrucciones escritas de algún lenguaje de programación y que ejecutadas secuencialmente resuelven un problema especifico.

LENGUAJE

Es una Serie de símbolos que sirven para transmitir mensajes e ideas entre dos entidades diferentes, esta transmisión de mensajes se conocen como comunicación.La comunicación posee dos reglas : * Los mensajes deben correr en un sentido a la vez.* Debe forzosamente existir 4 elementos: Emisor, Receptor, Medio de Comunicación y Mensaje.

LENGUAJES DE PROGRAMACIÓN
permiten a las personas comunicarse con el computador por medio de un conjunto de símbolos, caracteres y reglas llamados programas.
Los lenguajes de programación tienen un conjunto de instrucciones que nos permiten realizar operaciones de entrada/salida, calculo, manipulación de textos, lógica/comparación y almacenamiento/recuperación.

Ø Lenguaje maquina: sus instrucciones son entendibles por la computadora y no necesitan traducción posterior. Las instrucciones en lenguaje maquina se expresan en términos de la unidad de memoria mas pequeña el bit (dígito binario 0 o 1).

Ø Lenguaje de Bajo Nivel (Ensamblador): las instrucciones se escriben en códigos alfabéticos conocidos como mnemotécnicos para las operaciones y direcciones simbólicas.

Ø Lenguaje de Alto Nivel: son aquellos en los que las instrucciones son escritas con palabras similares a los lenguajes humanos lo que facilita la escritura y comprensión del programa.
ALGORITMOS

Un algoritmo es una serie de pasos organizados que describe el proceso que se debe seguir, para dar solución a un problema específico.

Tipos de Algoritmos
Ø Cualitativos: describen los pasos utilizando palabras.
Ø Cuantitativos: se utilizan cálculos numéricos para definir los pasos del proceso.

Lenguajes Algorítmicos
Ø Gráficos: Es la representación gráfica de las operaciones que realiza un algoritmo (diagrama de flujo).
Ø No Gráficos: Representa en forma descriptiva las operaciones que debe realizar un algoritmo (pseudocodigo).


Metodología para la solución de problemas por medio de computadora

Definición del Problema:
Esta fase está dada por el enunciado del problema, el cual requiere una definición 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.

Análisis del Problema:
Una vez que se ha comprendido lo que se desea de la computadora, es necesario definir:
Los datos de entrada.
Cual es la información que se desea producir (salida).
Los métodos y fórmulas que se necesitan para procesar los datos.
Una recomendación 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.

Diseño del Algoritmo:
Las características de un algoritmo son
· Debe tener un punto particular de inicio.
· Debe ser definido, no debe permitir dobles interpretaciones.
· Debe ser general, es decir, soportar la mayoría de las variantes que se puedan presentar en la definición del problema.
· Debe ser finito en tamaño y tiempo de ejecución.

codificacion:
La codificación es la operación de escribir la solución del problema (de acuerdo a la lógica del diagrama de flujo o pseudocodigo), en una serie de instrucciones detalladas, en un código reconocible por la computadora, la serie de instrucciones detalladas se le conoce como código fuente, el cual se escribe en un lenguaje de programación o lenguaje de alto nivel.

prueba y depuracion:
Depuración: proceso de identificar y eliminar errores, para dar paso a una solución sin errores.

documentacion:
Es la guía o comunicación escrita en 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 documentación sirve para ayudar a comprender o usar un programa o para facilitar futuras modificaciones (mantenimiento).

Ø Documentación Interna: Son los comentarios o mensaje que se añaden al código fuente para hacer mas claro el entendimiento de un proceso.

Ø Manual del Usuario: Describe paso a paso la manera como funciona el programa, con el fin de que el usuario obtenga el resultado deseado.

Ø Documentación Externa: Se define en un documento lo siguiente:
Descripción del ProblemaNombre del AutorAlgoritmo (diagrama de flujo o pseudocodigo)Diccionario de DatosCódigo Fuente (programa) mantenimiento Se lleva acabo después de terminado el programa, cuando se detecta que es necesario hacer algún cambio, ajuste o complementación al programa para que siga trabajando de manera correcta. Para poder realizar este trabajo se requiere que el programa este correctamente documentado