Sunteți pe pagina 1din 9

1.

- ALGORITMOS Y PROGRAMAS
1.1.- Introduccin
Algunas personas pueden pensar que un ordenador realiza tareas de dificultad superior a la inteligencia humana, pero lo cierto es que un ordenador no tiene ninguna inteligencia. No es ms que una mquina creada por el hombre que no hace ningn trabajo que no haya sido determinado por l previamente. Un ordenador es una mquina de tipo electrnico que solo puede efectuar tres tipos de operaciones bsicas: operaciones aritmticas sencillas comparaciones de valores almacenar y recuperar informacin.

Adems, estas operaciones slo las ejecuta en el momento en que se le ordene y en la forma en que se le indique. El ordenador nos obedece pero no tiene inteligencia propia. Eso s, su velocidad de operacin es superior a la humana, nunca se cansa y tiene menos posibilidades de cometer un error. Podemos decir, por tanto, que las caractersticas de un ordenador son:

Rapidez en la ejecucin de las operaciones Precisin en la resolucin de los problemas Memoria, ya que puede almacenar gran cantidad de informacin.

Nuestro objetivo ser, para un problema determinado, disear una solucin que pueda ser realizada por el ordenador.

1.2.- Algoritmos
Un algoritmo es un conjunto de acciones ordenadas que se deben realizar para resolver un problema o hacer una tarea determinada. Como el ordenador es incapaz de tomar ninguna decisin sin que se le especifique, es necesario que el algoritmo elegido para resolver un problema mediante ordenador sea claro y contemple todas y cada una de las situaciones que puedan presentarse durante su ejecucin.

Tema 1

Cualquier actividad de la vida cotidiana se puede describir mediante algoritmos. Veamos algunos ejemplos: Ejemplo 1:

Vamos a hacer un algoritmo que describa como se pone en movimiento un coche. En un principio podramos pensar que una solucin vlida sera: 1.- Poner el motor en marcha 2.- Meter la primera Pero esta solucin no es la ms adecuada. Conviene desglosar el problema en instrucciones simples y completas, indicando claramente el orden en que deben ejecutarse. Por este motivo, un algoritmo ms correcto sera el siguiente: Inicio del algoritmo: 1.- Pisar el embrague con el pie izquierdo 2.- Poner el coche en punto muerto 3.- Dar a la llave de contacto 4.- Pisar el embrague con el pie izquierdo 5.- Meter la primera marcha 6.- Quitar el freno de mano 7.- Levantar el pie del embrague a la vez que se pisa el acelerador con el pie derecho Fin del algoritmo Se dice que este algoritmo tiene estructura secuencial porque todas sus rdenes se ejecutan segn la secuencia en que estn escritas. Ejemplo 2:

Escribir el algoritmo que indique las acciones que hay que realizar cuando se llama a un telfono que tiene contestador. Inicio del algoritmo 1.- Descolgar el telfono 2.- Esperar a que haya lnea 3.- Marcar el nmero de telfono 4.- Si sale el contestador dejar un mensaje, si no, hablar con la persona 5.- Colgar el telfono Fin del algoritmo La instruccin cuarta no es imperativa porque no obliga a ejecutar una orden, sino que dependiendo de que se cumpla o no una condicin (que salte el contestador), se ejecuta una accin u otra. Decimos por tanto que la instruccin cuarta tiene una estructura condicional.

Tema 1

3er. algoritmo: Escribir un algoritmo con los pasos que hay que seguir para fichar una serie de libros nuevos en una biblioteca. Inicio del algoritmo 1.- Hacer la ficha de un libro nuevo 2.- Sellar el libro 3.- Ponerle la referencia 4.- Colocarlo en la estantera correspondiente 5.- Mientras haya ms libros repetir los pasos 1, 2, 3 y 4 Fin del algoritmo Observamos que hay un grupo de instrucciones que se repiten mientras se cumple una condicin (que haya ms libros). Tenemos, por tanto, una estructura repetitiva. De todos estos ejemplos podemos concluir que un buen algoritmo debe: estar bien definido, de forma que si se ejecuta varias veces con los mismos datos se obtengan los mismos resultados. Tener un punto de inicio. tener en cuenta todas las posibles situaciones que puedan plantearse. ser de fcil lectura e interpretacin. tener un nico final. estar diseado de forma independiente del lenguaje de programacin que vaya a emplearse.

1.3.- Aplicaciones informticas. Su ciclo de vida.


Se llama aplicacin informtica a uno o varios programas relacionados entre s, los cuales realizan una determinada tarea automticamente utilizando un sistema informtico. Tendremos en cuenta que un programa es un conjunto de rdenes que, utilizando unos datos de entrada los transforma y obtiene unos datos de salida o resultados. ENTRADA ALGORITMO DE RESOLUCIN SALIDA Para hacer las nminas de los empleados: Entrada Datos de los empleados. Estn en papel o en mquina.

Algoritmo sueldo base + complementos + (horas extra * precio/horas extra). Salida informe impreso con los datos de la nmina.

El proceso que se sigue desde el planteamiento de un problema hasta que se tiene una solucin instalada en el ordenador funcionando correctamente se denomina ciclo de vida de una aplicacin informtica.

Tema 1

Dicho proceso tiene varias fases agrupadas en dos bloques bien diferenciados: fases de diseo y fases de instalacin.

1.3.1.- Diseo de programas.


Aqu se incluyen las fases encaminadas a la creacin del programa, para las que no se necesita usar el ordenador. Fase de Anlisis. Consiste en la descripcin de: - el equipo a utilizar. - personal informtico. - estudio de los datos de entrada. - estudio de los datos de salida. - relacin entre la entrada y la salida. - descomposicin del problema en mdulos. El resultado de esta fase es la especificacin del problema formada por la documentacin que recoge todos los aspectos citados. Fase de Programacin. El resultado es un algoritmo con el conjunto de acciones que deber ejecutar el ordenador. Para su elaboracin se aplicara alguna tcnica, as como para su representacin. Fase de Codificacin. En esta fase se transcribe el algoritmo resultante de la fase anterior a un lenguaje de programacin concreto. Al resultado obtenido se le denomina programa.

1.3.2.- Instalacin y explotacin de programas.


En estas fases se har la instalacin y la puesta a punto de los programas en el ordenador. Fase de Edicin Consiste en la escritura del programa fuente (escrito en el lenguaje de programacin elegido) en un soporte de almacenamiento. Se hace con la ayuda de un programa llamado editor. Fase de Compilacin. Es la traduccin del programa fuente a lenguaje mquina (entendido por el ordenador y compuesto por 0 y 1), obtenindose el programa objeto. Para ello se utilizan programas compiladores o intrpretes, que comprueban la correcta sintaxis del programa.

Tema 1

Fase de Montaje. En los programas compilados es necesario aadir al programa objeto algunas subrutinas del sistema o subprogramas externos que se hayan compilado separadamente. De ello se encarga el programa montador (linker).El resultado es el programa ejecutable. Fase de Prueba de Ejecucin. Consiste en ejecutar el programa varias veces con datos de prueba para asegurar su correcto funcionamiento Fase de Explotacin y Mantenimiento. La explotacin es el uso habitual de la aplicacin por los usuarios. Paralelamente se realizar su mantenimiento, consistente en la comprobacin peridica de su funcionamiento y en su actualizacin cuando sea necesario.

FASES DE DISEO problema


ANLISIS

especificacin

PROGRAMACION algoritmo

CODIFICACIN programa

Tema 1

FASES DE INSTALACIN Y EXPLOTACIN DEL PROGRAMA


EDICIN Programa fuente COMPILACIN Programa objeto MONTAJE Programa ejecutable PRUEBA DE EJECUCIN Aplicacin EXPLOTACIN Y MANTENIMIENTO

1.4.-Programacin
La programacin es una de las etapas ms importantes del ciclo de vida de una aplicacin informtica y requiere un determinado mtodo de trabajo. Las herramientas que utilizaremos para trabajar son los lenguajes de programacin, a travs de los cuales codificaremos los programas.

1.4.1.- Lenguajes de Programacin


Un lenguaje de programacin es una notacin para escribir programas y as poder comunicarnos con el ordenador para darle las ordenes adecuadas con las que realizar un determinado proceso. Los lenguajes de programacin se clasifican en:
Lenguaje mquina: es el que entiende el ordenador y est compuesto nicamente por los dgitos binarios (bits) 1 y 0.

Tema 1

Lenguaje ensamblador: en este lenguaje cada instruccin equivale a una instruccin en lenguaje mquina, utilizando para su escritura palabras con smbolos mnemotcnicos en lugar de bits. No existe un nico lenguaje ensamblador, sino que depende del procesador del ordenador. Esto constituye un inconveniente, junto a que el programador debe conocer perfectamente el hardware del equipo. Sin embargo tanto el lenguaje ensamblador como el lenguaje mquina gozan de la mnima ocupacin de memoria y mnimo tiempo de ejecucin. Lenguajes de alto nivel: se aproximan al lenguaje natural, habitualmente al ingls. Son, adems independientes de la mquina, pudiendo utilizarse un mismo programa en distintos equipos. Existen multitud de lenguajes de este tipo: C, Pascal, Basic, Fortran... El principal inconveniente es que son ms lentos en su ejecucin Y ocupan ms memoria.

1.4.2.- Traductores
Como el ordenador slo comprende el lenguaje mquina, no puede ejecutar directamente los programas que se le suministran en otro lenguaje. Es necesario, por tanto, un programa traductor cuya misin, a parte de convertir un programa escrito en lenguaje de alto nivel a programa en lenguaje mquina, ser identificar los errores sintcticos del programa. Bsicamente existen dos tipos de programas traductores: a) Compiladores - traducen un programa fuente escrito en lenguaje de alto nivel a un programa objeto. Para compilar un programa, ste debe estar totalmente codificado, para poder traducir todo el programa como un bloque y dar el conjunto de errores tambin como un bloque. Hasta que no se obtenga un programa libre de errores no puede ejecutarse. Normalmente, por cada instruccin en lenguaje de alto nivel se generan varias instrucciones en lenguaje mquina por lo que el programa objeto es bastante ms largo que el programa fuente. A continuacin hay que enlazar los diferentes mdulos con las subrutinas que figuran en las libreras para obtener el programa ejecutable. b) Intrpretes - traducen y ejecuta un programa fuente instruccin a instruccin, de forma que una instruccin ser ejecutada antes de traducirse la siguiente. Los compiladores producen un programa objeto, mientras que los intrpretes ejecutan directamente el programa fuente. El proceso de interpretacin no produce, por tanto, ningn fichero de salida ejecutable, nicamente va haciendo instrucciones ejecutables sobre la marcha.

Tema 1

1.4.3.- Calidad de los programas


Para resolver un problema se pueden construir diferentes programas, pero la eleccin del ms adecuado se debe basar en una serie de requisitos de calidad: Legibilidad: debe permitir una lectura clara y ser de fcil comprensin. Fiabilidad: debe ser capaz de recuperarse frente a errores o usos inadecuados. Portabilidad: su diseo debe permitir la codificacin en diferentes lenguajes de programacin y su instalacin en distintos sistemas. Modificabilidad: ha de facilitar su mantenimiento para adaptarlo a una nueva situacin si fuese necesario. Eficiencia: se debe aprovechar al mximo los recursos del ordenador, minimizando la memoria utilizada y el tiempo de ejecucin.

1.4.4.- Errores
Durante el desarrollo de un programa o aplicacin se debe evitar que el producto obtenido presente errores que lo hagan inservible, pues podra darse el caso de que dedicsemos ms tiempo a la correccin de errores que al diseo del programa. Segn el momento en que se detecten podemos clasificarlos en: Errores de compilacin: se detectan en el tiempo de compilacin y corresponden a errores de tipo sintctico, como una palabra mal escrita, una instruccin incompleta,.... Son fciles de corregir, ya que el compilador, mediante un mensaje de error, nos informa en donde estn y en que consisten. Errores de ejecucin: se deben a operaciones no permitidas como dividir un nmero entre 0, utilizar un dato no numrico en donde habra que usar un nmero, etc. Se detectan porque se produce una parada anormal del programa durante su ejecucin. Se dice que el programa ha sido abortado por el sistema. Errores de lgica: se producen cuando los resultados obtenidos por el programa no son correctos. La nica forma de detectarlos es realizando varias ejecuciones de prueba con una gran cantidad de juegos de ensayo y comparar los ensayos producidos por el programa con los obtenidos a mano con esos mismos datos. Errores de especificacin: se originan por un mal entendimiento entre el programador y quien plantea el problema. Se detecta cuando se ha concluido el diseo y la instalacin del programa por lo que su correccin supone repetir gran parte del trabajo realizado.

Tema 1

1.4.5.- Documentacin de un programa


Para facilitar la explotacin y el mantenimiento de un programa es importante que este se acompae de una documentacin amplia, clara y precisa. Segn su ubicacin podemos distinguir dos clases de documentacin.

1.4.5.1.- Documentacin interna


Constituida bsicamente por el listado del programa fuente. Para facilitar su lectura y comprensin debe incluir lo siguiente: a) Comentarios: frases que se insertan en cualquier punto del programa fuente para aclarar el significado de lneas de cdigo que no sean suficientemente claras. Los comentarios son ignorados por el compilador, es decir, no son traducidos al lenguaje mquina y, por tanto, no ocupa memoria. b) Cdigo autodocumentado: las palabras reservadas de los lenguajes de programacin son de gran ayuda, ya que son trminos en ingls que expresan su utilidad. Para mejorar la documentacin interna de un programa se deben tomar adems estas medidas: usar nombres adecuados para los programas y los datos, usar sangrado e intercalacin de lneas en blanco para dar un aspecto ms legible al programa.

1.4.5.2.- Documentacin externa


Es el conjunto de documentos que acompaan a un programa pero sin formar parte de l. Debe incluir: especificacin del anlisis. descripcin del diseo del programa. descripcin de las versiones si las hubiere. descripcin del programa principal y subprogramas. manual del usuario. Manual de mantenimiento

Tema 1