Sie sind auf Seite 1von 16

Instituto Tecnológico Acapulco Algoritmia

Conceptos Básicos Y Metodología Para La Solución De


Problemas Por Medio De Computadoras

1.1 Definición De Lenguaje


1.2 Definición De Algoritmo
1.3 Algoritmo Cotidiano
1.4 Definición De Lenguaje Algorítmico
1.5 Historia Y Aplicación De Los Lenguajes Algorítmicos
1.6 Definición De Problemas
1.7 Análisis De Los Datos
1.8 Diseño De La Solución
1.9 Codificación
1.10 Prueba y Depuración
1.11 Documentación
1.12 Mantenimiento

1.1 Definición De Lenguaje

Unidad I
Instituto Tecnológico Acapulco Algoritmia

Lenguaje

Medio de comunicación entre los seres humanos a través de signos orales y


escritos que poseen un significado. También podría decirse que es cualquier
procedimiento que sirve para comunicarse, representado mediante símbolos y
caracteres específicos

Desde El Punto De Vista Informático El Lenguaje Es:

La representación por medio de signos, símbolos y caracteres que existe entre la


comunicación de la PC.

Lenguajes De Programación

Son los lenguajes utilizados para escribir programas de computadoras que puedan
ser entendidos por ellas.
Los lenguajes de programación se clasifican en tres grandes categorías:

- Máquina
- Bajo nivel (ensamblador) y
- Alto nivel

Lenguaje Máquina

Unidad I
Instituto Tecnológico Acapulco Algoritmia

Es el lenguaje propio de la computadora, basado en la lógica binaria, de ceros y


unos (00010111). Este lenguaje resulta difícil de utilizar para las personas; ya
que el programador debe introducir todos y cada uno de los comandos y datos
en forma binaria, y una operación sencilla como comparar el contenido de un
registro con los datos situados en una ubicación del chip de memoria puede
tener el siguiente formato: 11001010 00010111 11110101 00101011.

La programación en lenguaje máquina es una tarea tan tediosa y consume tanto


tiempo que muy raras veces lo que se ahorra en la ejecución del programa
justifica los días o semanas que se han necesitado para escribir el mismo.

Lenguaje De Bajo Nivel


(Ensamblador)

Como vimos anteriormente la programación en lenguaje máquina es difícil por ello


se necesitan lenguajes que faciliten este proceso. Por este motivo han sido
diseñados los lenguajes de bajo nivel.

Estos lenguajes dan a cada instrucción un mnemónico, como por ejemplo


STORE, ADD o JUMP. Los lenguajes de bajo nivel permiten crear programas
muy rápidos, pero que son a menudo difíciles de aprender. Esta abstracción da
como resultado un lenguaje de muy bajo nivel que es específico de cada
microprocesador:

El Lenguaje Ensamblador

Al asignar un código mnemotécnico a cada comando en lenguaje máquina, es


posible escribir y depurar o eliminar los errores lógicos y de datos en los
programas escritos en lenguaje ensamblador, empleando para ello sólo una
fracción del tiempo necesario para programar en lenguaje máquina.

En el lenguaje ensamblador, cada comando mnemotécnico y sus operadores


simbólicos equivalen a una instrucción de máquina. Un programa ensamblador

Unidad I
Instituto Tecnológico Acapulco Algoritmia

traduce el código fuente, a código objeto y, a continuación ejecuta el programa,


todo esto gracias a un intérprete o a un compilador.

Sin embargo, el lenguaje ensamblador puede utilizarse con un solo tipo de chip de
CPU o microprocesador, por lo que los programas escritos en un bajo nivel son
prácticamente específicos para cada procesador.
Si se quiere ejecutar el programa en otra máquina con otra tecnología, será
necesario rescribir el programa desde el principio.

Así que los programadores necesitaban un método abreviado en el que un


enunciado simbólico pudiera representar una secuencia de numerosas
instrucciones en lenguaje máquina, y un método que permitiera que el mismo
programa pudiera ejecutarse en varios tipos de máquinas. Estas necesidades
llevaron al desarrollo de lenguajes de alto nivel.

Lenguaje de alto nivel

Los llamados lenguajes de alto nivel son los que se emplean con mayor frecuencia
como lenguajes de programación, porque permiten expresar los algoritmos de una
manera y con un estilo fácilmente reconocible por parte de diversos
programadores y usuarios; debido a que están formados por elementos de
lenguajes naturales, como el inglés utilizando términos del tipo LIST, PRINT u
OPEN como comandos.

En Basic, el lenguaje de alto nivel más conocido, los comandos se introducen


desde el teclado, desde un programa residente en la memoria o desde un
dispositivo de almacenamiento, y son interceptados por un programa que los
traduce a instrucciones en lenguaje máquina.
Asimismo, presentan una ventaja fundamental: la facilidad de poder ser
transportados de una máquina a otra sin necesidad de realizar grandes cambios
en ellos, por lo que se dice que son independientes de la máquina empleada.

Unidad I
Instituto Tecnológico Acapulco Algoritmia

A este grupo pertenecen los lenguajes más conocidos, tales como el APL,
FORTRAN, PASCAL, COBOL, LISP, PROLOG, C, ADA, PL/I.

Sin embargo, tanto los lenguajes de alto nivel como los de bajo nivel, no son
entendibles directamente por la máquina, sino que necesitan ser traducidos a
instrucciones en lenguaje máquina que entiendan las computadoras por lo que es
necesario disponer de una interfase con el lenguaje máquina para que el
programa sea ejecutable. Al respecto existen dos tipos fundamentales de
interfase, que son:

a) Compiladores
b) Intérpretes

Un compilador es:

Un traductor que facilita la comunicación entre el programador y la máquina, por


medio de un proceso de transformación llamado compilación.

De esta manera traduce un programa íntegro a lenguaje máquina antes de su


ejecución, por lo cual se ejecutan con tanta rapidez como si hubiesen sido
escritos directamente en lenguaje máquina.

El compilador es el más eficaz para la mayor parte de las máquinas, puesto que
presenta la ventaja de de que cada una de las sentencias del programa es
interpretada y traducida al lenguaje máquina solo una vez.

Un compilador crea una lista de instrucciones de código máquina, el código objeto,


basándose en un código fuente.
El código objeto resultante es un programa rápido y listo para funcionar, pero que
puede hacer que falle el ordenador si no está bien diseñado.

COMPILACIÓN

.
Unidad I
Código Código Programa
Fuente objeto Ejecutable
Instituto Tecnológico Acapulco Algoritmia

Un intérprete es:

Es un programa que se traduce línea por línea bajo la misma plataforma.

Es Un traductor pero más lento que los compiladores ya que no producen un


código objeto, sino que recorren el código fuente una línea cada vez. Cada línea
se traduce a código máquina y se ejecuta. Cuando la línea se lee por segunda
vez, como en el caso de los programas en que se reutilizan partes del código,
debe compilarse de nuevo. Aunque este proceso es más lento, es menos
susceptible de provocar fallos en la computadora

1.2 Definición De Algoritmo

ALGORITMO

Unidad I
Instituto Tecnológico Acapulco Algoritmia

Un algoritmo es una serie de pasos lógicos para realizar una acción, programa o
tarea ya que es el primer paso para realizar un programa.
Y tiene ciertas características que son:

 Preciso. Esto quiere decir que debe indicar el orden en cada paso.
 Definido. Es decir, si se sigue dos veces, obtiene el mismo resultado cada
vez.
 Finito. Que tiene fin, o sea un número definido de pasos.

Ejemplos de algoritmos son:

 Instrucciones para montar una bicicleta


 Hacer una receta de cocina
 Obtener el máximo común divisor de dos números, etc.

Los algoritmos se pueden expresar por fórmulas, diagramas de flujo, y


pseudocódigos. Ésta última representación es la más utilizada en lenguajes
estructurados como Turbo Pascal.

1.3 Algoritmo Cotidiano

Un 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.
Unidad I
Instituto Tecnológico Acapulco Algoritmia

1.4 Definición De Lenguaje Algorítmico

Para definir el lenguaje algorítmico:

Cabe recordar que el conjunto de todas las operaciones a realizar, y el orden en


el que deben efectuarse, se le denominan algoritmo.
Así que el lenguaje algorítmico es aquel por medio del cual se realiza un
análisis previo del problema a resolver y encontrar un método que permita
resolverlo.

1.5 Historia Y Aplicación De Los Lenguajes Algorítmicos

Al igual que los idiomas sirven de vehículo de comunicación entre los seres
humanos, existen lenguajes que realizan la comunicación entre los seres humanos
y las computadoras.
Estos lenguajes permiten expresar los programas o el conjunto de instrucciones
que el operador humano desea que la computadora ejecute.

Los lenguajes de computadoras toman diferentes formas; los de las primeras


computadoras, como la ENIAC y la EDSAC, se componían en el lenguaje real de
las máquinas mismas. La dificultad de programar las máquinas de esta manera
limitaba drásticamente su utilidad y proporcionaba un fuerte incentivo para que se
desarrollaran lenguajes de programación más orientados hacia la expresión de
soluciones con la notación de los problemas mismos.

Los primeros lenguajes de programación se conocieron como Lenguajes


Ensambladores, un ejemplo es: TRANSCODE, desarrollado para la computadora
FERUT.

Unidad I
Instituto Tecnológico Acapulco Algoritmia

En los lenguajes ensambladores como mencionamos anteriormente en el apartado


1.1 se define un código especial llamado mnemotécnico para cada una de las
operaciones de la máquina y se introduce una notación especial para especificar
el dato con el cual debe realizarse la operación.

A mediados de los años 60's aparecieron los primeros lenguajes de propósito


general como FORTRAN, FORTRAN IV, ALGOL, COBOL, BASIC, PL/I, ADA, C,
C++, PASCAL, etc. pero el desarrollo de nuevas tecnologías, tanto en arquitectura
de computadoras como en lenguajes de programación, continúa a paso acelerado,
cada vez con mayor velocidad, el panorama está cambiando de una etapa de
sistemas y lenguajes especialmente desarrollados para aplicaciones individuales.
Los lenguajes de programación actuales son los conocidos como Lenguajes
visuales, como por ejemplo Visual Fox, Visual Basic, Visual C.

1.6 Definición De Problemas

Con el fin de resolver un problema utilizando un sistema de cómputo, debe


seguirse una serie de pasos que permiten avanzar por etapas bien definidas hacia
la solución y ejecución de la misma

Unidad I
Instituto Tecnológico Acapulco Algoritmia

Esta serie de fases o pasos deben seguirlas todos los programadores.


Estas etapas son las siguientes

Definición del problema

Análisis de los datos

Diseño de la solución

Codificación

Prueba y depuración
.

Mantenimiento

Definición del problema

La primera fase en la resolución de un problema por computadora es la definición


o análisis del problema. En donde lo más importante es que conozcamos
exactamente lo que debe hacer el programa y "que se desea obtener al final del
proceso”
Para poder definir con precisión el problema se requiere que las especificaciones
de entrada y salida sean descritas con detalle ya que esto es un requisito para
lograr una solución eficaz; por lo que es conveniente hacerse las siguientes
preguntas:
1.- ¿Qué entradas se requieren? (Tipo Y Cantidad)
2.- ¿Cuál es la salida deseada? (Tipo Y Cantidad)
3.- ¿Qué método produce la salida deseada?}

Unidad I
Instituto Tecnológico Acapulco Algoritmia

1.7 Análisis De Los Datos

Una vez que el problema ha sido definido y comprendido, deben analizarse los
siguientes aspectos:
1.- Los resultados esperados.
2.- Los datos disponibles.
3.- Herramientas a nuestro alcance para manipular los datos y alcanzar un
resultado.

Esta sería un diagrama de la resolución de un problema en su más mínima


expresión.

Resolución de un
problema

Definición Diseño Resolución del


de un Del problema con
problema Algoritmo la computadora

Y mientras esto no se comprenda no puede pasarse a la siguiente etapa.

1.8 Diseño De La Solución

Para realizar el diseño de la solución:


Como todos sabemos, una computadora no tiene capacidad para solucionar
problemas más que cuando se le proporcionan los sucesivos pasos a realizar, esto
se refiere a la obtención de un algoritmo que resuelva adecuadamente el
problema.
Unidad I
Instituto Tecnológico Acapulco Algoritmia

En caso de que obtengamos varios algoritmos, seleccionaremos uno de ellos


utilizando criterios ya conocidos.

Esta etapa incluye:


La descripción del algoritmo resultante en un lenguaje natural, en un diagrama de
flujo o natural de programación.

De esta manera, solo se establece la metodología para alcanzar la solución en


forma conceptual, es decir; sin alcanzar la implementación en el sistema de
cómputo.
Así tenemos que la información proporcionada constituye su entrada y la
información producida por el algoritmo constituye su salida.
Los problemas complejos se pueden resolver más eficazmente por la
computadora cuando se dividen en subproblemas que sean más fáciles de
solucionar.
ALGORITMO QUE RESUELVA EL
| PROBLEMA

ALGORITMO RESULTANTE EN
LENGUAJE NATURAL

1.9 Codificación

Codificación es la escritura en un lenguaje de programación de la representación


del algoritmo desarrollada en etapas precedentes. Esto se refiere a la obtención
de un programa definitivo que pueda ser comprensible para la máquina.
Cabe destacar que si la codificación original se realizó en papel, previo a la
compilación deberá existir un paso conocido como trascripción.
Y posteriormente, una vez que el algoritmo se ha convertido en un programa
fuente. Este programa fuente debe ser traducido a lenguaje máquina, este proceso
Unidad I
Instituto Tecnológico Acapulco Algoritmia

se realiza con el compilador, y se obtiene el programa objeto, (siempre y cuando el


programa fuente sea correcto) que posteriormente se vuelve un programa
ejecutable.
Estos pasos a continuación se describen de una forma esquematizada:

Algoritmo realizado en Si la Se realiza la:


TRANSCRIPCION
etapas anteriores codificación
se escribió
en papel
Para realizar la conversión
del algoritmo en programa,
se deben sustituir las
PROGRAMA palabras reservadas en
EJECUTABLE español por sus homónimos
en inglés, (hablando de un
lenguaje de alto nivel) y las
operaciones, instrucciones
indicadas en lenguaje
PROGRAMA
natural.
OBJETO

PROGRAMA
FUENTE

COMPILACIÓN CODIFICACIÓN

1.10 Prueba y Depuración

La Prueba se realiza tras la compilación.


Si tras la compilación se presentan errores (errores de compilación) en el
programa fuente, es preciso volver a editar el programa, corregir los errores y
compilar de nuevo, este proceso se repite hasta que no se producen errores.
De esta manera se obtiene el programa objeto, que todavía no es ejecutable
directamente, pero si no contiene errores se debe instruir al sistema para que

Unidad I
Instituto Tecnológico Acapulco Algoritmia

realice la fase de montaje o enlace del programa objeto con las librerías del
programa del compilador; este proceso de montaje produce un programa
ejecutable.

La Depuración es el proceso de encontrar los errores del programa y corregir o


eliminar dichos errores.
Cuando se ejecuta un programa, se pueden producir tres tipos de errores:

1.- Errores de compilación. Se producen normalmente por un uso


incorrecto de las reglas del lenguaje de programación y suelen ser errores de
sintaxis, por lo tanto la computadora no puede comprender la instrucción, y
obviamente no se obtendrá el programa objeto, y el compilador imprimirá una lista
de todos los errores encontrados durante la compilación.

2.- Errores de ejecución. Estos errores se producen por instrucciones que


las computadoras pueden comprender, pero no ejecutar. Ejemplos de éstos son:
una división por cero, y raíces cuadradas de números negativos; por lo que en
este caso se detiene la ejecución del programa y se imprime un mensaje de error.

3.- Errores lógicos. Se producen en la lógica del programa y la fuente del


error suele ser el diseño del algoritmo. Estos errores son los más difíciles de
detectar, ya que el programa puede funcionar y no producir errores de compilación
ni ejecución, y solo puede detectarse cuando se advierte un error por la obtención
de resultados incorrectos.
En este caso se debe volver a la fase del diseño del algoritmo, modificarlo,
cambiar el programa fuente, compilar y ejecutar una vez más.

1.11 Documentación

Unidad I
Instituto Tecnológico Acapulco Algoritmia

La documentación de un problema consta de las descripciones de los pasos a dar


en el proceso de resolución de un problema. La importancia de la documentación
es por su decisiva influencia en el producto final.
Programas pobremente documentados son difíciles de leer, más difíciles de
depurar y casi imposibles de mantener y modificar. Por ello la importancia de la
documentación, sin la documentación es imposible corregir errores futuros o bien
cambiar el programa

La documentación de un programa puede ser de dos tipos:

INTERNA EXTERNA

Esta documentación son los Incluye análisis, diagramas


comentarios o mensajes que de flujo, y/o pseudocódigos,
facilitan el entendimiento del manuales de usuario, con
proceso. instrucciones para ejecutar el
programa y para interpretar
los resultados.

1.12 Mantenimiento

El mantenimiento se define como la modificación del programa por medio de


actualizaciones, que mejoran al programa, corrigiendo errores o bien
actualizándolos para un mejor funcionamiento.
Por ello la documentación es sin duda muy importante para poder llevar a cabo el
mantenimiento.

Unidad I
Instituto Tecnológico Acapulco Algoritmia

Unidad I

Das könnte Ihnen auch gefallen