Algoritmo En matemáticas, lógica, ciencias de la computación y disciplinas relacionadas, un algoritmo (del griego y latín, dixit algorithmus y este a su vez del matemático persa Al-Juarismi1 ) es un conjunto prescrito de instrucciones o reglas bien definidas, ordenadas y finitas que permite realizar una actividad mediante pasos sucesivos que no generen dudas a quien deba realizar dicha actividad.2 Dados un estado inicial y una entrada, siguiendo los pasos sucesivos se llega a un estado final y se obtiene una solución. Los algoritmos son el objeto de estudio de la algoritmia.1 En la vida cotidiana, se emplean algoritmos frecuentemente para resolver problemas. Algunos ejemplos son los manuales de usuario, que muestran algoritmos para usar un aparato, o las instrucciones que recibe un trabajador por parte de su patrón. Algunos ejemplos en matemática son el algoritmo de multiplicación, para calcular el producto, el algoritmo de la división para calcular el cociente de dos números, el algoritmo de Euclides para obtener el máximo común divisor de dos enteros positivos, o el método de Gauss para resolver un sistema lineal de ecuaciones. El diagrama de flujo El diagrama de flujo o diagrama de actividades es la representación gráfica del algoritmo o proceso. Se utiliza en disciplinas como programación, economía, procesos industriales y psicología cognitiva. En Lenguaje Unificado de Modelado (UML), un diagrama de actividades representa los flujos de trabajo paso a paso de negocio y operacionales de los componentes en un sistema. Un diagrama de actividades muestra el flujo de control general. En SysML el diagrama de actividades ha sido extendido para indicar flujos entre pasos que mueven elementos físicos (p.ej., gasolina) o energía (p.ej., presión). Los cambios adicionales permiten al diagrama soportar mejor flujos de comportamiento y datos continuos. Estos diagramas utilizan símbolos con significados definidos que representan los pasos del algoritmo, y representan el flujo de ejecución mediante flechas que conectan los puntos de inicio y de fin de proceso. OPERADORES MATEMÁTICOS EN PROGRAMACIÓN. Para escribir un programa dispondremos de una serie de operadores y funciones matemáticas, en general comunes para todos los lenguajes. El uso de estas herramientas tiene en general dos fines: a) Realizar operaciones matemáticas. b) Obtener un resultado verdadero o falso después de haber planteado una hipótesis o situación. Los operadores matemáticos disponibles son los habituales para una calculadora. Para empezar, los básicos suma ( + ), resta ( -), multiplicación ( * ) y división ( / ). Cuando escribamos fórmulas matemáticas debemos prestar atención a: * Las unidades en que se expresan cada uno de los parámetros que intervienen. Conviene comprobar la coherencia dimensional así como realizar una comprobación manual de los resultados devueltos por el ordenador (entiéndase comprobar para tres o cuatro casos, que los resultados obtenidos sin ordenador coinciden con los dados por él). * Especialmente llamamos la atención sobre ángulos: comprobar si se expresan en grados o en radianes; si son grados tener en cuenta si son centesimales o sexagesimales; etc. Los ordenadores normalmente trabajan con ángulos en radianes. * En cuanto a las operaciones aritméticas, convendrá fijarse en la corrección de la fórmula escrita así como que ésta represente realmente la operación que nosotros queremos ejecutar. La escritura en el ordenador habrá de guiarse por los órdenes de prelación habituales en matemáticas, a saber: Exponenciación > Multiplicación y división > Suma y resta Las raíces serán consideradas como exponenciación: Los operadores con igual prioridad se ejecutan de izquierda a derecha en caso de aparecer encadenados. Los paréntesis dan prioridad a las operaciones que encierran. Es recomendable usar paréntesis aún no siendo necesarios si con ello se logra mejorar de forma notable en claridad para interpretación de lo escrito. Ejemplos: NOTACIÓN MATEMÁTICA -> ESCRITURA EN ORDENADOR -> a ^ (1 / 2) + (3 * a) / (b + 5 / (a * d)) o también es válida esta otra expresión a ^ 0.5 + 3 * a / (b + 5 / (a * d)) -> ((a + b ^ (1 / 3)) / ((a + b) / c)) ^ (1 / 2) -> (a + b / c) / (3 + 5 / c) -> 3 * a + b – d * b ^ (-1) Operadores alfanuméricos: Son los utilizados para trabajar con cadenas. Principalmente utilizamos el símbolo "+" para concatenar cadenas. Luego dependiendo del lenguaje puede funcionar o no el símbolo "-" para concatenar cadenas eliminando los espacios en blanco. Operadores relacionales Los operadores relacionales son símbolos que se usan para comparar dos valores. Si el resultado de la comparación es correcto la expresión considerada es verdadera, en caso contrario es falsa. Por ejemplo, 8>4 (ocho mayor que cuatro) es verdadera, se representa por el valor true del tipo básico bolean, en cambio, 8<4 (ocho menor que cuatro) es falsa, false. En la primera columna de la tabla, se dan los símbolos de los operadores relacionales, en la segunda, el nombre de dichos operadores, y a continuación su significado mediante un ejemplo. Operadores lógicos Los operadores lógicos son generalmente empleados con valores lógicos (booleanos); estos operadores devuelven un valor booleano. Sin embargo, los operadores && y || realmente devuelven el valor de uno de sus operandos, por esto si se emplean con valores no booleanos, podrían devolver un valor no booleano. Los operadores lógicos se describen en la siguiente tabla. Operador Uso Descripción && expr1 && expr2 (AND lógico) Devuelve expr1 si la expresión puede convertirse a falso; de otro modo, devuelve expr2. Cuando se emplea con valores booleanos, && devuelve true cuando ambos operandos son verdaderos; si no, devuelve false. || expr1 || expr2 (OR lógico) Devuelve expr1 si puede convertirse a verdadero; de otro modo devuelve expr2. Cuando se emplea con valores booleanos, el operador || devuelve true si alguno de los operandos es verdadero; si ambos operandos son falsos devuelve false. ! !expr (NOT lógico) Devuelve falso si su único operando puede convertirse a verdadero; de otro modo, devuelve verdadero. Me despierto y me levanto de mi cama Tomo mis chanclas y voy al baño pasando por la cocina Agarro mi cepillo dental y le aplico dentífrico Empiezo cepillando mis dientes traseros para finalizar con los delanteros con movimientos circulares Para terminar mi cepillado tomo la ceda dental pasándola por mis dientes y finalizo haciendo gárgaras con listerine.