1. ALGORITMOS
Un algoritmo (del griego y latín, dixit algorithmus y este a su vez del matemático persa Al-
Juarismi1) es un conjunto preescrito 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.
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 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
En resumen, un algoritmo es cualquier cosa que funcione paso a paso, donde cada paso se
pueda describir sin ambigüedad y sin hacer referencia a una computadora en particular, y
además tiene un límite fijo en cuanto a la cantidad de datos que se pueden leer/escribir en un
solo paso. Esta amplia definición abarca tanto a algoritmos prácticos como aquellos que solo
funcionan en teoría, por ejemplo el método de Newton y la eliminación de Gauss-Jordan
funcionan, al menos en principio, con números de precisión infinita; sin embargo no es
posible programar la precisión infinita en una computadora, y no por ello dejan de ser
algoritmos.10 En particular es posible considerar una cuarta propiedad que puede ser usada
para validar la tesis de Church-Turing de que toda función calculable se puede programar en
una máquina de Turing (o equivalentemente, en un lenguaje de programación
suficientemente general)
Símbolos:
2. DIAGRAMA DE FLUJO
El Diagrama de de Flujo es una representación gráfica de la secuencia de pasos que se
realizan para obtener un cierto resultado. Este puede ser un producto, un servicio, o bien
una combinación de ambos.
3. 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.
Tipos de Diagrama de Flujo:
• Formato vertical: En él, el flujo o la secuencia de las operaciones, va de arriba hacia
abajo. Es una lista ordenada de las operaciones de un proceso con toda la
información que se considere necesaria, según su propósito.
• Formato horizontal: En él, el flujo o la secuencia de las operaciones, va de izquierda a
derecha.
• Formato panorámico: El proceso entero está representado en una sola carta y puede
apreciarse de una sola mirada mucho más rápido que leyendo el texto, lo que facilita
su comprensión, aún para personas no familiarizadas. Registra no solo en línea
vertical, sino también horizontal, distintas acciones simultáneas y la participación de
más de un puesto o departamento que el formato vertical no registra.
• Formato Arquitectónico: Describe el itinerario de ruta de una forma o persona sobre el
plano arquitectónico del área de trabajo. El primero de los flujogramas es
eminentemente descriptivo, mientras que los utilizados son fundamentalmente
representativos.
Símbolos utilizados:
Se utiliza para para representar el inicio y el fin de un
algoritmo. También puede representar una parada o
una interrupción programada que sea necesaria
realizar en un programa.
Se utiliza para un proceso determinado, es el que se
utiliza comúnmente para representar una instrucción, o
cualquier tipo de operación que origine un cambio de
valor
Se utiliza para representar una entrada o salida de
información, que sea presentada o registrada por medio
de un periférico.
4. Es utilizado para la toma de decisiones, ramificaciones,
para la indicacion de operaciones lógicas o de comparación
entre datos
Este es utilizado para enlazar dos partes cualesquiera de un
diagrama a través de un conector de salida y un conector de
entrada. Esta forma un enlace en la misma página del diagrama.
Este es utilizado para enlazar dos partes de un diagrama pero que
no se encuentren en la misma pagina.
5. SEUDOCODIGOS
En ciencias de la computación, y analisis numérico el pseudocódigo (o falso lenguaje) es una
descripción de un algoritmo informático de programación de alto nivel compacto e informal
que utiliza las convenciones estructurales de un lenguaje de programación verdadero, pero
que está diseñado para la lectura humana en lugar de la lectura en máquina, y con
independencia de cualquier otro lenguaje de programación. Normalmente, el pseudocódigo
omite detalles que no son esenciales para la comprensión humana del algoritmo, tales como
declaraciones de variables, código específico del sistema y algunas subrutinas. El lenguaje
de programación se complementa, donde sea conveniente, con descripciones detalladas en
lenguaje natural, o con notación matemática compacta. Se utiliza pseudocódigo pues este es
más fácil de entender para las personas que el código de lenguaje de programación
convencional, ya que es una descripción eficiente y con un entorno independiente de los
principios fundamentales de un algoritmo. Se utiliza comúnmente en los libros de texto y
publicaciones científicas que se documentan varios algoritmos, y también en la planificación
del desarrollo de programas informáticos, para esbozar la estructura del programa antes de
realizar la codificación efectivamente. No existe una sintaxis estándar para el pseudocódigo,
aunque los cincos IDE's que manejan pseudocódigo tengan su sintaxis propia. Aunque sea
parecido, el pseudocódigo no debe confundirse con los programas esqueleto que incluyen
código ficticio, que pueden ser compilados sin errores. Los diagrama de flujo y UML pueden
ser considerados como una alternativa gráfica al pseudocódigo, aunque sean más amplios
en papel.
Muchas veces, en los libros de texto y publicaciones científicas relacionadas con la
informática y la computación numérica, se utilizan pseudocódigo en la descripción de
algoritmos, de manera que todos los programadores puedan entenderlo, aunque no todos
conozcan el mismo lenguaje de programación. Generalmente, en los libros de texto, hay una
explicación que acompaña la introducción que explica las convenciones particulares en uso.
El nivel de detalle del pseudocódigo puede, en algunos casos, acercarse a la de formalizar
los idiomas de propósito general.
6. Un programador que tiene que aplicar un algoritmo específico, sobre todo uno
desfamiliarizado, generalmente comienza con una descripción en pseudocódigo, y luego
"traduce" esa descripción en el lenguaje de programación meta y lo modifica para que
interactúe correctamente con el resto del programa. Los programadores también pueden
iniciar un proyecto describiendo la forma del código en pseudocódigo en el papel antes de
escribirlo en su lenguaje de programación, como ocurre en la estructuración de un enfoque
de Top-down y Bottom-up arriba hacia abajo.
Las principales características de este lenguaje son:
1. Se puede ejecutar en un ordenador (con un IDE como por ejemplo SLE, LPP, PilatoX,
PSeInt o Seudocódigo)
2. Es una forma de representación sencilla de utilizar y de manipular.
3. Facilita el paso del programa al lenguaje de programación.
4. Es independiente del lenguaje de programación que se vaya a utilizar.
5. Es un método que facilita la programación y solución al algoritmo del programa.
Todo documento en pseudocódigo debe permitir la descripción de:
1. Instrucciones primitivas.
2. Instrucciones de proceso....
3. Instrucciones de control.
4. Instrucciones compuestas.
5. Instrucciones de descripción.
Estructura a seguir en su realización:
1. Cabecera.
1. Programa.
2. Módulo.
3. Tipos de datos.
4. Constantes.
5. Variables.
2. Cuerpo.
1. Inicio.
2. Instrucciones.
3. Fin.
CODIGO
7. Definimos básicamente como Código a todo el conjunto de instrucciones que hace en un
sistema operativo determinado la capacidad de Codificar y Descodificar el conjunto
organizado de datos (Información) que es recibido y enviado, de forma de que pueda ser
mostrado al usuario a través de una interfaz gráfica o dando una respuesta lógica y deseada
entre el Origen ( también denominado Fuente) y el Destino de la acción realizada.
En el caso de los ordenadores, ya hemos dicho que la aserción más conocida es la de
Código Fuente, teniendo en su contraparte al que es conocido como Código Objeto, siendo
los siguientes:
• Código Fuente: Consiste en un texto de variable longitud que está escrito en un
Lenguaje de Programación, el cual es entendible conociendo sus reglas y sus
condiciones, siendo éste solamente una referencia “teórica” ya que no ordena ni
ejecuta acciones concretas hacia el ordenador
• Código Objeto: Muy por el contrario, este es el lenguaje que es percibido e
interpretado por el ordenador (llevándolo mediante un debido procesamiento al Código
Binario de ceros y unos, es decir, transmisión o no de electricidad), generado por un
Compilador, también conocido como Ensamblador, que se encarga de interpretar y
traducir el Código Fuente.
8. Además de esta clasificación básica, podemos definir otra de las formas en las cuales
podemos englobar en forma general todos los tipos de Código Fuente, dependiendo el
acceso por parte de los usuarios programadores a su totalidad o parcialidad, teniendo
distintas licencias que son convenidas a través de normas explícitas (Términos y
Condiciones)
De este modo, podemos dividir a los Códigos acorde a la siguiente clasificación:
• Código Abierto: Corresponden aquellos que tienen el acceso conocido como Código
Fuente Liberado, en el cual el desarrollo de la aplicación se da por una comunidad
determinada de programadores o bien en forma global, autorizando a su copia,
análisis y modificación en forma completamente libre, sin que necesariamente sea el
autor quien realice estas alteraciones al código original.
• Código Cerrado: En este caso, el Código Fuente solo puede ser modificado por quien
es su Autor registrado, o bien por aquellas personas a las que él mismo ha expresado
su autorización.