lunes, 4 de abril de 2016

CONCEPTOS.
ØDefiniciones de un Algoritmo.
ØClasificación de los Algoritmos.
ØElementos Constitutivos de un Algoritmo.
ØEstructura de un Algoritmo.
ØTécnicas para el diseño de un Algoritmo.
ØOperadores Lógicos.
ØTablas de Verdad. 
DEFINICIONES DE UN ALGORITMO.
ØConjunto ordenado y finito de operaciones que permiten hallar la solución de un problema.
ØSe denomina algoritmo a un grupo finito de operaciones organizadas de manera lógica y organizada.

CLASIFICACIÓN.
ØAlgoritmo Informal
Cuando se hace a través de palabras, es decir, las instrucciones son verbales.
Ej. Las recetas de cocina.
ØAlgoritmo Computacional
Cuando se hace a través de cálculos numéricos.

Ej. La raíz cuadrada de un número.
O según su función, pueden ser:
ØDe Ordenamiento: Secuencian los elementos que ingresan a partir de un cierto orden, en general, según un orden numérico o léxico.
ØDe Búsqueda: Al contrario de realizar operaciones o secuenciar elementos, se dedica a encontrar dentro de una lista que ingresa, uno o vario elementos, en particular que cumplan con el conjunto de condiciones dadas.
ØDe Encaminamiento: Deciden de qué modo se deberá transmitir algo que llega y como seguirá un conjunto de pasos encadenados.
ELEMENTOS CONSTITUTIVOS.
Los elementos básicos constitutivos de un algoritmo son:
ØPalabras reservadas (Inicio, Fin, Si/Entonces, etc.).
ØIdentificadores (Nombres de las variables esencialmente).
ØCaracteres Especiales (Coma, apóstrofo, etc.).
ØConstantes.
ØVariables.
ØExpresiones.

ØInstrucciones.

También existen otros elementos que forman parte de los programas, cuya comprensión y funcionamiento será
vital para el correcto diseño de un algoritmo, y naturalmente la codificación de un programa. Estos son:
ØBucles.
ØContadores.
ØAcumuladores.
ØInterruptores.
ØEstructuras.
ESTRUCTURA.
Ø Cabecera: En la cabecera de un algoritmo se debe de indicar el nombre (identificador) asignado al mismo. La sintaxis es: “Algoritmo <Nombre_del_algoritmo>”.
Ø Declaraciones: En esta sección se  declaran las constantes, los tipos de datos y las variables que se usan en un algoritmo. La sintaxis es la siguiente:
Constantes
 <declaración_de_constantes>
Tipos de datos
 <declaracion_de_tipos_de_datos>
Variables
  <declaración_de_de_variables>
Ø Cuerpo: En el cuerpo se escriben todas las instrucciones del algoritmo la sintaxis es:
Inicio
 <Instrucción 1>
 
 <Instrucción no. de Instrucción>
Fin
Inicio y Fin son palabras reservadas que marcan el principio y el final de la sección del cuerpo, que es donde esta el bloque de instrucciones principal del algoritmo.
TÉCNICAS.
ØAlgoritmo voraz: El algoritmo más sencillo que puede ocurrírsenos es, partiendo de un agregado solución vacío, recorrer el agregado de entrada, y añadir el elemento considerado en cada paso al agregado solución siempre que se cumplan las condiciones derivadas de la propiedad que se apuntó.
ØAlgoritmo divide y vencerás : Un segundo algoritmo que puede ocurrírsenos es dividir el agregado en el número de partes que queramos, siempre que el tamaño sea superior a un tamaño umbral que admitamos. Obtener la solución de cada parte y combinar dichas soluciones para construir la solución al agregado completo. Para el caso de que el tamaño sea inferior o igual a umbral, la solución se obtiene mediante el algoritmo anterior (o cualquier otro conocido que no divida el agregado en partes).
ØAlgoritmo de programación dinámica: Un tercer algoritmo que puede ocurrírsenos es, a partir de la de la relación que establece cómo combinar las soluciones para distintas partes de los datos de entrada, establecer los casos en que puede obtenerse la solución sin utilizar dicha relación (casos base), y partiendo de dichos casos, guardar la solución para los mismos en una matriz de registros (multidimensional), y reconstruir la solución al problema utilizando los valores almacenados en la matriz de registros.
ØAlgoritmo back tracking: Un cuarto algoritmo que puede ocurrírsenos es, interpretando al agregado como un conjunto, obtener todos los subconjuntos del conjunto (cuyo número es 2n), hasta encontrar uno que cumpla con las condiciones impuestas por el problema. Es decir, se trata de realizar una búsqueda exhaustiva. Llamamos árbol de expansión al árbol formado por todas las posibilidades que se estudian. En cada hoja hay una posible solución.En el problema de encontrar el conjunto de pares, nos quedaremos con el subconjunto que tenga el tamaño máximo y en el que todos sean pares.
OPERADORES LÓGICOS.
Los operadores lógicos son operadores que permiten formular condiciones complejas a partir de condiciones simples. Puedes ser de conjunción (y), disyunción (o) y negación (no).
El operador Implica se representa mediante el símbolo ⇒ y se usa para la operación implicación (también llamada “condicional“). A la proposición que se coloca a la izquierda del operador se la llama “antecedente” y a la que se coloca a la derecha de la llama “consecuente“. Esta operación no es conmutativa.
El operador Bicondicional se representa mediante el símbolo ⇔ y se usa para la operación doble implicación (también llamada “equivalencia“).