1. A. DEFINICIÓN En matemáticas, lógica, ciencias de la computación y disciplinas relacionadas, un algoritmo, 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. 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. 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. B. CARACTERISTICAS: - Finitos: Debe acabar en algún momento. - Eficientes: Deben ocupar la mínima memoria y minimizar el tiempo de ejecución. - Legibles: El texto que lo describe debe ser claro, tal que permita entenderlo y leerlo fácilmente. - Modificables: Estarán diseñados de modo que sus posteriores modificaciones sean fáciles de realizar, incluso por programadores diferentes a sus propios autores. - Modulares: La filosofía utilizada para su diseño debe favorecer la división del problema en módulos pequeños. - Único punto de entrada, único punto de salida: A los algoritmos y a los módulos que lo integran se entra por un sólo punto, inicio, y se sale por un sólo punto también, fin. C. MÈTODOS QUE SE PUEDEN UTILIZAR PARA REPRESENTAR UN ALGORITMO. Un algoritmo se puede representar por medio de dos formas, a través de Pseudocódigo o de Diagramas de Flujo. Para la presentación de los algoritmos que hasta ahora se han utilizado en el texto se han representado a través de Pseudocódigo, significa escribir las instrucciones del algoritmo en lenguaje natural, tal y como lo expresamos de manera cotidiana, este procedimiento facilita su escritura. D. DIAGRAMA DE FLUJO Son representaciones graficas de los pasos necesarios que conllevan a la solución algorítmica de un problema. Para diseñarlos se utilizan determinados símbolos o figuras que representa una acción dentro del procedimiento. Estos símbolos se han normalizado o estandarizado para representar los pasos del algoritmo. Cada paso se representa a través del símbolo adecuado, que se van uniendo con flechas, denominadas líneas de flujo, que a su vez indican el orden en que los pasos deben ser ejecutados. D1. SIMBOLOS E. CLASES DE ALGORITMO Cualitativos: Son aquellos en los que se describen los pasos utilizando palabras. -Son todos aquellos pasos o instrucciones descritos por medio de palabras que sirven para llegar a la obtención de una respuesta o solución de un problema cualquier Cuantitativos: Son aquellos en los que se utilizan cálculos numéricos para definir los pasos del proceso. -Son aquellos pasos o instrucciones que involucran cálculos numéricos para llegar a un resultado satisfactorio E1. EJEMPLOS Cualitativo: 1. Algoritmo para insertar tarjeta SIM en un celular. Datos: conjunto de piezas iniciales (celular, tarjeta SIM) INICIO Paso 1. Abra la tapa de la ranura de la tarjeta SIM. Paso 2. Inserte la tarjeta SIM en la ranura. Paso 3. Asegúrese que el área de contacto de la tarjeta esté orientada hacia arriba y que la esquina biselada esté orientada hacia el dispositivo. Paso 4. Presione la tarjeta. Paso 5. Cierre la tapa de la ranura de la tarjeta. FIN Cuantitativo: 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 F. VARIABLE Son elementos que toman valores específicos de un tipo de datos concreto. La declaración de una variable puede realizarse comenzando con dar. Principalmente, existen dos maneras de otorgar valores iniciales a variables: 1. Mediante una sentencia de asignación. 2. Mediante un procedimiento de entrada de datos (por ejemplo: 'read'). F1. COMO DAR VALOR El valor puede cambiar durante la ejecución del algoritmo, pero nunca varía su nombre y su tipo. Antes de usar una variable hay que definirla o declararla, al hacerlo hay que dar su nombre y su tipo. El nombre que le damos tiene que ser un nombre significativo, va a ser un conjunto de caracteres que dependiendo del lenguaje hay restricciones. Tiene que empezar por una letra, y el tamaño depende del lenguaje. Identificador: Palabra que no es propia del lenguaje. El valor de la variable si al declararla no se la inicializa, en algunos lenguajes toma una por defecto. En cualquier caso el valor de la variable podemos darle uno inicial o podemos ir variándolo a lo largo de la ejecución. G. CONSTANTES Una constante es un dato numérico o alfanumérico que no cambia durante todo el desarrollo del algoritmo o durante la ejecución del programa. Es un objeto de valor invariable. Para expresar una constante se escribe explícitamente su valor. G1. EJEMPLOS a) PI = 3.1416 b) E = 2.718228 c) IVA = 0.13 H. PSEUDOCÓDIGO. El pseudocódigo es una descripción de alto nivel de un algoritmo que emplea una mezcla de lenguaje natural con algunas convenciones sintácticas propias de lenguajes de programación, como asignaciones, ciclos y condicionales, aunque no está regido por ningún estándar. Es utilizado para describir algoritmos en libros y publicaciones científicas, y como producto intermedio durante el desarrollo de un algoritmo, como los diagramas de flujo, aunque presentan una ventaja importante sobre estos, y es que los algoritmos descritos en pseudocódigo requieren menos espacio para representar instrucciones complejas. H1. CARACTERISTICAS. Se puede ejecutar en un ordenador Es una forma de representación sencilla de utilizar y de manipular. Facilita el paso del programa al lenguaje de programación. Es independiente del lenguaje de programación que se vaya a utilizar. Es un método que facilita la programación y solución al algoritmo del programa. H2. OPERADORES. + Suma - Resta * Multiplicación / División DIV División entera MOD Modulo (resto de la división entera) ^ Potencia