Sunteți pe pagina 1din 9

TEORIA SOBRE ALGORITMOS (Parte I)

Introducción

El computador no solamente es una máquina que puede realizar procesos para


darnos resultados, sin que tengamos la noción exacta de las operaciones que
realiza para llegar a esos resultados. Con el computador también podemos
diseñar soluciones a la medida, de problemas específicos que se nos presenten.
Más aún, si estos involucran operaciones matemáticas complejas y/o repetitivas,
o requieren del manejo de un volumen muy grande de datos. A las soluciones
creadas por computador se les conoce como programas y no son más que una
serie de operaciones que realiza el computador para llegar a un resultado, con
un grupo de datos específicos.
Por lo anterior podemos decir que un programa es el conjunto de instrucciones
escritas de algún lenguaje de programación y que ejecutadas secuencialmente
resuelven un problema específico. Para poder realizar programas, además de
conocer la metodología para solucionar problemas, también debemos conocer, de
manera específica las funciones que puede realizar el computador y las formas
en que se pueden manejar los elementos que hay en el mismo.

El procesamiento de información en el computador puede representarse así:

Datos de entrada Proceso Salida


1. Metodología para la solución de problemas por medio de
computador:
 Definición del Problema: Esta fase está dada por el enunciado del problema, el cual
requiere una definición clara y precisa. Es importante que se conozca lo que se desea
que realice el computador; mientras esto no se conozca del todo, no tiene mucho caso
continuar con la siguiente etapa.
 Análisis del Problema: Una vez que se ha comprendido lo que se desea de la PC, es
necesario definir:
 Los datos de entrada.

 La información que se desea producir (salida)

 Los métodos y fórmulas que se necesitan para procesar los datos.

 Diseño del Algoritmo: Consiste en diseñar la serie de pasos organizados que describe
el proceso que se debe seguir, para dar solución al problema específico. Las
características de un buen algoritmo son:
 Debe tener un punto particular de inicio.

 Debe ser definido, no debe permitir dobles interpretaciones.

 Debe ser general, soportar las variantes que se puedan presentar en la definición

del problema.
 Debe ser finito en tamaño y tiempo de ejecución.

 Codificación: Es la operación de escribir la solución del problema (de acuerdo a la


lógica del diagrama de flujo o pseudocódigo), en una serie de instrucciones detalladas
(código fuente), en un lenguaje reconocible por el computador (lenguaje de
programación de alto nivel).
 Prueba y Depuración: Los errores humanos dentro de la programación del
computador son muchos y aumentan considerablemente con la complejidad del
problema. El proceso de identificar y eliminar errores, para dar paso a una solución
sin errores se le llama depuración.
 Documentación: Es la guía o comunicación escrita en sus variadas formas, ya sea en
enunciados, procedimientos, dibujos o diagramas. A menudo un programa escrito por
una persona, es usado por otra. Por ello la documentación sirve para ayudar a
comprender o usar un programa o para facilitar futuras modificaciones
(mantenimiento).
 Mantenimiento: Se lleva a cabo después de terminado el programa, cuando se detecta
que es necesario hacer algún cambio, ajuste o complementación al programa para que
siga trabajando de manera correcta. Para poder realizarlo se requiere que el
programa este correctamente documentado.
2. Lenguajes de programación:

2.1. Lenguaje: Es una serie de símbolos que sirven para transmitir uno o más
mensajes (ideas) entre dos entidades diferentes. A la transmisión de mensajes
se le conoce comúnmente como comunicación. La comunicación es un proceso
complejo que requiere una serie de reglas simples, pero indispensables para
poderse llevar a cabo. Las dos principales reglas son:
 Los mensajes deben correr en un sentido a la vez.

 Deben existir 4 elementos: emisor, receptor, medio de comunicación y mensaje.

2.2. Lenguaje de Programación: Es un conjunto de símbolos, caracteres y


reglas que le permiten a las personas comunicarse con el computador. Los
lenguajes de programación tienen un conjunto de instrucciones que nos permiten
realizar operaciones de entrada/salida, cálculo, manipulación de textos,
lógica/comparación y almacenamiento/recuperación.

Los lenguajes de programación se clasifican en:

Lenguaje de Máquina

Lenguaje de Bajo Nivel

Lenguaje de Alto Nivel


Lenguaje de Máquina:

Ventaja
Sus instrucciones son directamente
entendibles por el computador y no No necesita La dificultad,
ser traducido. la confusión,
necesitan traducción para que la CPU para corregir
pueda comprenderlas y ejecutarlas. Las errores, es
instrucciones se expresan en términos propia de cada

Desventaja
de la unidad de memoria más pequeña: máquina.
el bit (dígito binario 0 o 1).

Ventaja

Cada máquina
Lenguaje de Bajo Nivel: No es tan tiene su
Ensamblador. Las instrucciones se difícil como el propio
escriben en códigos alfabéticos conocidos lenguaje lenguaje,
máquina. necesitamos
como mnemotécnicos para las

Desventaja
un proceso de
operaciones y direcciones simbólicas. traducción.

Ventaja

Son independientes
Lenguaje de Alto Nivel: de cada máquina El proceso de
Visual Basic, C++, Cobol, JAVA etc. Las (los compiladores traducción es muy
aceptan las largo y ocupa más
instrucciones son escritas con palabras recursos.
instrucciones
similares a los lenguajes humanos (en estándar, pero Aprovecha menos
general en inglés), lo que facilita la también tienen los recursos
internos.
Desventaja

escritura y comprensión del programa. instrucciones


propias).
3. Traductores de lenguaje:

Los traductores de lenguajes son programas que traducen a su vez los programas
fuente escritos en lenguajes de alto nivel a código máquina. Los traductores se
dividen en Compiladores e Intérpretes.

3.1. Intérpretes: Un intérprete es un traductor que toma un


programa fuente escrito en un lenguaje de alto nivel, lo traduce y lo
ejecuta a medida que lo traduce. Es decir, el interpretador toma
cada línea del programa, la traduce, la ejecuta y continúa con la
siguiente hasta terminar. Un lenguaje que soporta un traductor de
tipo intérprete se denomina lenguaje interpretado.

3.2. Compiladores: Un compilador es un programa que traduce un programa


fuente escrito en lenguaje de alto nivel a lenguaje de máquina. El programa
escrito en lenguaje de alto nivel se llama programa fuente y el programa
traducido se llama programa objeto o código objeto. El compilador traduce todo
el programa fuente sin ejecutarlo; luego de la traducción la ejecución puede
realizarse. Lenguajes compilados típicos son: PASCAL, COBOL y C.

Fases de la compilación: El programa objeto obtenido de la compilación no ha


sido traducido a código máquina sino a ensamblador. Para conseguir el programa
de máquina real se debe utilizar un programa llamado montador o enlazador
(linker). El proceso de montaje conduce a un programa en lenguaje máquina
directamente ejecutable.
Por ejemplo, la compilación y ejecución de un Programa en C++ tiene los siguientes
pasos:

1. Escritura del programa fuente con un editor (programa que permite a un


computador actuar como una máquina de escribir electrónica) y guardarlo en
un dispositivo de almacenamiento (un disco).
2. Introducir el programa fuente en memoria.
3. Compilar el programa con el compilador C++.
4. Verificar y corregir errores de compilación (listado de errores).
5. Obtención del programa objeto.
6. El montador obtiene el programa ejecutable.
7. Se ejecuta el programa y si no existen errores, se tendrán las salidas.
Proceso de traducción y ejecución de un programa escrito en un lenguaje a
alto nivel:

Usamos un editor y obtenemos el programa fuente, y el compilador es el que


traduce el programa al lenguaje máquina. El compilador internamente ha sido
diseñado para traducir.

 El compilador obtiene el programa o el archivo objeto. El compilador tiene que


buscar los errores.
 Normalmente no sale un ejecutable, sino que necesita elementos, librerías…
 Mediante un linkador (enlazador) juntamos el programa objeto y las librerías, y
se forma un programa ejecutable.
 Cuando se ejecuta el programa, el cargador lleva al programa a memoria para que
éste pueda ser ejecutable.
 Debbuger: Depura el programa ejecutándolo paso a paso, viendo la memoria paso
a paso para encontrar el error.

Programa fuente (Editor)

Compilador
Para traducir puedo utilizar el
compilador o un intérprete, con
el compilador tomo todo el
programa al completo y el
intérprete lee cada instrucción y Error
lo va ejecutando.
El intérprete es más rápido, pero
menos eficiente.
Todos los lenguajes tienen Programa Objeto Librerías
compiladores, pero no todos
tienen intérpretes.

Linkador (Enlazador)

Ejecutables
4. Programas y algoritmos:

4.1. Programa: Un programa de computador es un conjunto de instrucciones


(órdenes dadas a la máquina) que producirán la ejecución de una determinada
tarea. En esencia, un programa es un medio para conseguir un fin. El fin será
definido como la información necesaria para solucionar un problema.

4.2. Algoritmo: La palabra algoritmo se deriva de la traducción al latín de la


palabra árabe alkhowarizmi, nombre de un matemático y astrónomo árabe que
escribió un tratado sobre manipulación de números y ecuaciones en el siglo IX.
Un algoritmo es una serie de pasos organizados que describe el proceso que se
debe seguir, para dar solución a un problema específico. Los algoritmos pueden
ser de dos tipos:
 Cualitativos: Se describen los pasos utilizando palabras.
 Cuantitativos: Se utilizan cálculos numéricos para definir los pasos del
proceso.

Características:
- Tiene que ser preciso.
- Tiene que estar bien definido.
- Tiene que ser finito.

La programación es adaptar el algoritmo al computador.


El algoritmo es independiente según donde lo implemente.

4.3. Lenguajes Algorítmicos: Están conformados por una serie de símbolos y


reglas usadas para describir los procesos.

Los lenguajes algorítmicos pueden ser: INICIO


LEA N
SI N>5 ENTONCES
 No gráficos: Pseudocódigo. Representan en forma descriptiva los ESCRIBA “MAYOR”

pasos que debe realizar un algoritmo para solucionar el problema. FSI


FIN
El pseudocódigo es una mezcla de lenguaje de programación y
Español (o cualquier otro idioma) que se emplea, en programación estructurada,
para realizar el pre-diseño de un programa. El pseudocódigo usa palabras que
indican cada paso del proceso a realizar.

 Gráficos: Diagrama de flujo. Representan gráficamente los INICIO

pasos que debe realizar un algoritmo para solucionar el problema. LEA N

Esta representación gráfica se da cuando varios símbolos (que


V ESCRIBA
indican diferentes procesos en el computador), se relacionan N>5
“MAYOR”

entre sí mediante líneas que indican el orden en que se deben F

FIN
ejecutar los procesos. Los símbolos que se pueden utilizar han
sido normalizados por el ANSI - Instituto Norteamericano de Normalización.

Ventajas de utilizar pseudocódigo en lugar de diagrama de flujo :


 Ocupa menos espacio en una hoja de papel

 Permite representar en forma fácil operaciones repetitivas complejas

 Es muy fácil pasar pseudocódigo a un programa en algún lenguaje de programación.

 Se pueden observar claramente los niveles que tiene cada operación.

FUENTES DE INFORMACION:
1. JOYANES AGUILAR, LUIS; IGNACION ZAHONERO MARTÍNEZ.
Programación en C, C++, Java y UML,México : McGraw-Hill.,2010.
2. LÓPEZ ROMÁN, LEOBARDO; Programación estructurada y orientada a objetos
/México : Alfaomega,2011.

S-ar putea să vă placă și