CLASIFICACIÓN DE ALGORITMOS: Los algoritmos se pueden clasificar en cuatro tipos: Algoritmo computacional: Es un algoritmo que puede ser ejecutado en una computadora. Ejemplo: Fórmula aplicada para un cálculo de la raíz cuadrada de un valor x. Un algoritmo computacional es una serie de instrucciones lógicamente consecutivas cuya finalidad es un resultado que desee el usuario Ejemplo: UNA SUMA variable X variable Y asigna 5 a X (X = 5) asigna 6 a Y (Y = 6) SUMA X + Y Imprime Resultado de SUMA (11)
Algoritmo no computacional: Es un algoritmo que no requiere de una computadora para ser ejecutado. Ejemplo: Instalación de un equipo de sonido. Es un conjunto de instrucciones que se deben ejecutar en secuencia para lograr algo. Aunque se aplican en todas las áreas de la vida, se aplican mucho en ciencias de la computación. Ejemplo: COMO CAMBIAR LA LLANTA A UN AUTOMÒVIL 1. Estacionar 2. Sacar el gato hidráulico y la llave de tuercas 3. Aflojar las tuercas 4. colocar el gato y levantar el vehículo 5. retirar la llanta 6. colocar la de repuesto 7. colocar y apretar las tuercas 8. bajar el vehículo
9. Guardar todo 10. seguir circulando
Algoritmo cualitativo: Un algoritmo es cualitativo cuando en sus pasos o instrucciones no están involucrados cálculos numéricos. Ejemplos: Las instrucciones para desarrollar una actividad física, encontrar un tesoro. Ejemplo de ALGORITMO CUALITATIVO Como hacer una llamada telefónica. Condición: De un teléfono publico. El algoritmo finaliza cuando se realice la l a llamada. Inicio Buscar el numero ¿encontro el numero?: SI: Ir paso 4 NO: ir paso 2 Ubicar el telefono ¿Hay telefono?: Si ir paso 6 NO: ir paso 4 Levantar el auricular. ¿Esta bueno el telefono? Si: Ir paso 10 No ir paso 8 Esperar que levanten la bocina del telefono t elefono ¿tomaron el telefono?: Si: Ir al paso 12 No: Ir paso 15 Preguntar por la persona con quien desea hablar. ¿Esta la persona? : Si: Ir paso 14 NO: Ir paso 15 Hablar con la persona Fin.
No: Ir paso 15
Algoritmo cuantitativo: Una algoritmo es cuantitativo cuando en sus pasos o instrucciones involucran cálculos numéricos. Ejemplo: Solución de una ecuación de segundo grado. Tipos de algoritmos de razonamiento: Algoritmos Estáticos: son los que funcionan siempre igual, independientemente independientemente del tipo de problema tratado. Algoritmos Adaptativos: algoritmos con con cierta capacidad de aprendizaje. Algoritmos Probabilísticos: son algoritmos que no utilizan valores de verdad booleanos sino continuos. Existen varios tipos de algoritmos probabilísticos dependiendo de su funcionamiento, pudiéndose distinguir: § Algoritmos numéricos: que proporcionan una solución aproximada del problema. § Algoritmos de Montecarlo: que pueden dar la respuesta correcta o respuesta erróneas (con probabilidad baja). § Algoritmos de Las Vegas: que nunca dan una respuesta incorrecta: o bien dan la respuesta correcta o informan del fallo. Algoritmo Cotidiano: es la serie de pasos que realizamos en nuestra vida diaria para realizar las diferentes tareas y actividades comunes, desde los pasos al levantarnos, así como ir de compras, etc. Algoritmo Voraz: un algoritmo voraz es aquel que, para resolver un determinado problema, sigue una meta heurística consistente en elegir la opción óptima en cada paso local con la esperanza de llegar a una solución general óptima. Algoritmo Determinista: es un algoritmo que, en términos informales, es completamente predictivo si se conocen sus entradas. Algoritmo Heurístico: es un algoritmo que abandona abandona uno o ambos objetivos; por ejemplo, normalmente encuentran buenas soluciones, aunque no hay pruebas de que la solución no pueda ser arbitrariamente errónea en algunos casos; o se ejecuta razonablemente rápido, aunque no existe tampoco prueba de que siempre será así.
Las heurísticas generalmente son usadas cuando no existe una solución óptima bajo las restricciones dadas (tiempo, espacio, etc.), o cuando no existe del todo. Algoritmo de escalada: la idea básica consiste en comenzar con una mala solución a un determinado problema y, repetidamente, aplicar optimizaciones a la misma hasta que esta sea óptima o satisfaga algún otro requisito Los algoritmos cuantitativos son aquellos en los que se utilizan cálculos numéricos para definir los pasos del proceso.
Ejemplo 1: Suma de dos números a=3 b=4 c=a+b imprimir(c) El resultado de nuestro programa sería: 7
Ejemplo 2: Se quiere calcular el área de un rectángulo, se tiene en cuenta la forma que es (A x B) en la cual a y b son dos de los lados. Se solicita la longitud del lado A. A=8 Se solicita la longitud del lado B. B=13 Luego se multiplica el lado A con el lado B y el resultado es el área del rectángulo. C= AXB C=104 RECUERDE
1. 2. 3. 4.
Determine el problema que se desea resolver. Determine las variables que se van a utilizar en la resolución del problema. Pedir al usuario digitar la información de las variables. El algoritmo dará al final el resultado la solución del problema
Cuál es el uso de los diagramas de flujo y organización: organización: Diagrama de flujo Diagrama de flujo que expresa un algoritmo para calcular la raíz cuadrada de un número x Los diagramas de flujo son descripciones gráficas de algoritmos; usan símbolos conectados con flechas para indicar la secuencia de instrucciones y están regidos por ISO. Los diagramas de flujo son usados para representar algoritmos pequeños, ya que abarcan mucho espacio y su construcción es laboriosa. Por su facilidad de lectura son usados como introducción a los algoritmos, descripción de un lenguaje y descripción de procesos a personas ajenas a la computación. Los algoritmos pueden ser expresados de muchas maneras, incluyendo al lenguaje natural, pseudocódigo, diagramas de flujo y lenguajes de programación entre otros. Las descripciones en lenguaje natural tienden a ser ambiguas y extensas. El usar pseudocódigo y diagramas de flujo evita muchas ambigüedades del lenguaje natural. Dichas expresiones son formas más estructuradas para representar algoritmos; no obstante, se mantienen independientes de un lenguaje de programación específico. Ejemplo:
DIAGRAMAS DE ORGANIZACIÓN Un Diagrama de Organización u Organigrama representa gráficamente el sistema organizativo haciendo énfasis en señalar las unidades organizativas de las relaciones entre ellas. Los aspectos más importantes que muestra un Diagrama de Organización son: - Las unidades organizativas. - Los órganos de dirección colectiva. - El régimen fundamental f undamental de dependencia entre unidades organizativas. Al confeccionar un Diagrama de de Organización se tiene en cuenta los siguientes principios: - Las unidades organizativas más importantes se presentan en la parte superior del gráfico y se añaden debajo en orden descendiente de importancia. - Las unidades que dependen de un jefe común se colocan en un mismo nivel y se vinculan en este por líneas continuas. - Las unidades funcionales aparecen en un plano superior al de las ejecutivas cuando ambas pertenecen a un mismo jefe. - En algunos casos se indica por debajo de cada unidad organizativa sus principales objetivos o tareas. - En el Diagrama de Organización se puede confeccionar en diferentes niveles de detalle. Ejemplo de un Diagrama de Organización.
Uso de los lenguajes de programación: Una vez que se identifica una tarea y se conoce el algoritmo para resolverla, el programador debe codificarlo en una lista de instrucciones, propias de algún lenguaje de computación. Los programas pueden ser escritos en cualquier lenguaje de la amplia gama disponibles. La escogencia del más adecuado, dependerá de factores como la experiencia del programador con un lenguaje, determinar cuál producirá el programa menos complicado, la flexibilidad y la compatibilidad del programa como resultado del lenguaje usado. A continuación se presenta como ejemplo un sencillo programa fuente, escrito en C, el cual, es un lenguaje de programación que llegó a ser muy popular, y justo al lado se explica la acción que realizará la l a computadora en respuesta a los comandos del programa. El programa tiene como finalidad el cálculo del promedio de una lista de cinco números. Instrucciones en Lenguaje C int datos[ ] = { 25, 88, 20, 75, 7 5, 62 }; int nDatos = 5; int promedio ()
Acción de la computadora 1.- Define una matriz (datos) de números enteros y le asigna los valores 25, 88, 20, 75, 62. 2.- Define la variable (nDatos) de tipo entero e ntero y le asigna el valor 5. 3.- Define la función (promedio) que devuelve un número entero.
{ int suma; int prom; int cont; suma = 0;
4.- Define la variable (suma) de tipo entero. 5.- Define la variable (prom) de tipo entero. 6.- Define la variable (cont) de tipo entero. 7.- Asigna a suma el valor 0. 8.- Para cada elemento de la matriz datos, añade for (cont=0; cont