Você está na página 1de 14

INSTITUTO TECNOLOGICO DE TIJUANA

SUBDIRECCIN ACADMICA DEPARTAMENTO DE SISTEMAS Y COMPUTACIN SEMESTRE AGOSTO- DICIEMBRE 2011

Algoritmos y lenguajes de programacin Unidad VI

Palmerin Aguilar Carlos Fidel 10210040

NOMBRE DEL MAESTRO Tellez Bolaos Talia Beatriz

Contenido
6.1 Introduccin. 6.2 Funciones estndar. 6.3 Entrada y salida de datos. 6.4 Funciones definidas por el usuario. 6.5 Pase por valor. 6.6 Pase por referencia. 6.7 Punteros. 6.8 Elaboracin de programas.

Introduccin

La resolucin de problemas complejos se facilita considerablemente si se dividen en problemas ms pequeos (subproblemas). La solucin de estos subproblemas se realiza con subalgoritmos. El uso de subalgoritmos permite al programador desarrollar programas de problemas complejos utilizando el mtodo descendente o top down.

FUNCINES

Una funcin es un tipo de subprograma que calcula como resultado un valor simple y nico a partir de otros valores dados como argumentos. En lneas generales, una funcin se asemeja bastante a la idea matemtica de funcin con argumentos. Definicin de funciones: El primer paso en el manejo de una funcin es declarar su interfaz. Esta declaracin incluye su nombre, los argumentos que necesita con el correspondiente tipo para cada uno de ellos, y el tipo de resultado que proporciona. Cabecera de funcin:PROCEDURE Nombre( Argumentos: Tipo; ...) : TipoResultado Es frecuente que los lenguajes de programacin utilicen la palabra PROCEDURE para designar procedimientos, y la palabra FUNCTION para designar funciones. MODULA-2 es un caso especial, y utiliza la palabra PROCEDURE para designar cualquiera de las dos clases de subprogramas. Estas cabeceras representan la interfaz entre la definicin de la funcin y su utilizacin posterior.

Los nombres de los argumentos son formales, esto quiere decir, que no son variables del programa, sino solo nombres simblicos que sirven para formalizar la definicin posterior de la funcin, permitiendo hacer referencia a los argumentos en la definicin de los clculos. Estas cabeceras representan la interfaz entre la definicin de la funcin y su utilizacin posterior. Los nombres de los argumentos son formales, esto quiere decir que no son variables del programa, sino solo nombres simblicos que sirven para formalizar la definicin posterior de la funcin, permitiendo hacer referencia a los argumentos en la definicin de los clculos. La definicin completa de una funcin se compone de la cabecera, seguida de un cuerpo que tiene la misma estructura que un bloque de programa completo. Este bloque comienza con una parte declarativa y continua con una parte ejecutiva introducida con la palabra clave BEGIN. En la parte declarativa se declaran las constantes y variable para el uso local de la funcin. La parte ejecutiva estar constituida por una secuencia de sentencias. La funcin finalizara con la palabra clave END y a continuacin nuevamente el nombre de la funcin seguida de un punto y coma ( ; )

En las sentencias que constituyen la funcin se puede y se debe hacer uso de los argumentos formales declarados en su interfaz. Esto permite parametrizar los clculos de la funcin para valores particulares de los argumentos. Ejemplo: PROCEDURE Potencia(x: REAL; n: CARDINAL): REAL; VAR k : CARDINAL; p : REAL; BEGIN P: = 1.0; FOR k: = 1 TO n DO P: = p * x END; RETURN p END Potencia;

Uso de funciones Para usar una funcin en los clculos de un programa se invoca dicha funcin escribiendo su nombre y a continuacin, entre parntesis, los valores concretos de los argumentos, separados por comas. Esta invocacin de la funcin representa un valor del tipo de la funcin, que podr ser usado como operando en una expresin aritmtica o en cualquier parte del programa en que sea vlido escribir una expresin de ese tipo. Al invocar una funcin es obligatorio que los valores suministrados para los argumentos correspondan en nmero y tipo con los argumentos en la definicin. La correspondencia de tipo significa que el tipo del argumento en la invocacin sea compatible en asignacin con el tipo de argumento formal. El efecto de la invocacin de una funcin puede describirse en forma simplificada de la siguiente manera Se evalan las expresiones de los valores de los argumentos

o o

Se asignan dichos valores a los correspondientes argumentos formales Se ejecuta el cdigo de la definicin de la funcin, hasta alcanzar una sentencia de retorno El valor retornado se usa en el punto donde se invoc la funcin. Funciones predefinidas ABS (X): Valor Absoluto de un numero CAP (C): Carcter convertido a mayscula CHR (X): Carcter de la tabla de caracteres en la posicin X FLOAT (X): X convertido a valor Real MAX (T): Valor mximo del tipo T MIN (T): Valor mnimo del tipo T ODD (X): Devuelve TRUE cuando el valor de X es impar ORD (X): Posicin que ocupa X en la lista de valores de su tipo TRUNC (R): Valor de R (REAL) truncado a entero

o o o o o o o o o

VAL (T;X): X convertido al tipo T En los argumentos simblicos, X representa un valor numrico, C un carcter, y T un tipo.

FUNCIONES ESTNDAR

o o o o o o o o o

Las funciones definidas en mdulos estndar se denominan funciones estndar y pueden ser utilizadas sin necesidad de escribir su definicin, pero hay que indicar expresamente que se van a utilizar dichas funciones mediante una declaracin IMPORT del mdulo que las contenga. En lo referente a funciones matemticas, se dispone de un mdulo estndar llamado MathLib0. Las funciones matemticas disponibles en este mdulo son las siguientes Exp (x): Exponencial Ln (x): Logaritmo neperiano de X Sin (x): Seno de X Cos (x): Coseno de X Arctan (x): Arcotangente de X sqrt (x): Raiz cuadrada de X Entier (x): Mayor entero de x

Todas estas funciones tienen un argumento REAL y devuelven un valor REAL, excepto entier, que devuelve un valor INTEGER. Procedimientos: Un procedimiento es un subprograma que realiza una determinada accin. A diferencia de las funciones, un procedimiento no tiene como objetivo devolver un valor obtenido por clculo.

Un procedimiento es una forma de subprograma que agrupa una sentencia o grupo de sentencias que realizan una accin, y permiten darles un nombre por el que se puedan identificar posteriormente. Estas sentencias se pueden parametrizar mediante una serie de argumentos.

ENTRADA Y SALIDA DE DATOS En un programa los datos de entrada son los que la computadora va a procesar. Los datos de salida son datos derivados, es decir, obtenidos a partir de los datos de entrada. Por esta razn, a los datos de salida se les considera ms significativos que a los datos de entrada. Ambos tipos de datos son informacin (textos, imgenes, sonidos, vdeos,...) que maneja la computadora. Sin embargo, en un sentido ms filosfico, a los datos de entrada se les considera la materia prima de los datos de salida, considerados estos como la verdadera informacin.

En computacin, entrada/salida, tambin abreviado E/S o I/O, es la coleccin de interfaces que usan las distintas unidades funcionales (subsistemas) de un sistema de procesamiento de informacin para comunicarse unas con otras, o las seales (informacin) enviadas a travs de esas interfaces. Las entradas son las seales recibidas por la unidad, mientras que las salidas son las seales enviadas por sta. El trmino puede ser usado para describir una accin; "realizar una entrada/salida" se refiere a ejecutar una operacin de entrada o de salida. Los dispositivos de E/S los usa una persona u otro sistema para comunicarse con una computadora. De hecho, a los teclados y ratones se los considera dispositivos de entrada de una computadora, mientras que los monitores e impresoras son vistos como

dispositivos de salida de una computadora. Los dispositivos tpicos para la comunicacin entre computadoras realizan las dos operaciones, tanto entrada como salida, y entre otros se encuentran los mdems y tarjetas de red. Es importante notar que la designacin de un dispositivo, sea de entrada o de salida, cambia al cambiar la perspectiva desde el que se lo ve. Los teclados y ratones toman como entrada el movimiento fsico que el usuario produce como salida y lo convierten a una seal elctrica que la computadora pueda entender. La salida de estos dispositivos son una entrada para la computadora. De manera anloga, los monitores e impresoras toman como entrada las seales que la computadora produce como salida.

FUNCIONES DEFINIDAS POR EL USUARIO Las funciones de usuario son, como su nombre indica, las que el propio usuario declara, de igual manera que declara procedimientos. Las funciones nacen con el propsito de ser subprogramas que siempre tienen que devolver algn valor.

Las dos principales diferencias entre procedimientos y funciones son:


Las funciones siempre devuelven un valor al programa que las invoc. Para llamar a un procedimiento se escribe su nombre en el cuerpo del programa, y si los necesita, se incluyen los parmetros entre parntesis. Para invocar una funcin es necesario hacerlo en una expresin. Existen cuatro formas de pasar un argumento a una funcin (subrutina) o procedimiento: por valor, por referencia, por valor-resultado y por nombre.

PASO POR VALOR El paso de parmetros por valor consiste en copiar el contenido de la variable que queremos pasar en otra dentro del mbito local de la subrutina, consiste pues en copiar el contenido de la memoria del argumento que se quiere pasar a otra direccin de memoria, correspondiente al argumento dentro del mbito de dicha subrutina. Se tendrn dos valores duplicados e independientes, con lo que la modificacin de uno no afecta al otro.

PASO POR REFERENCIA El paso de parmetros por referencia consiste en proporcionar a la subrutina a la que se le quiere pasar el argumento la direccin de memoria del dato. En este caso se tiene un nico valor referenciado (o apuntado) desde dos puntos diferentes, el programa principal y la subrutina a la que se le pasa el argumento, por lo que cualquier accin sobre el parmetro se realiza sobre la misma posicin de memoria. . PUNTEROS

Un puntero es un tipo simple que siempre est asociado a otro tipo (punteros a enteros, a reales, a registros, etc.) Se pueden ver los punteros como variables que almacenan direcciones de memoria; de aqu se deduce: Un puntero es un medio para acceder al contenido real apuntado por la variable. La declaracin de un puntero no implica que exista contenido apuntado por el misma. Es necesario crear y destruir explcitamente el contenido apuntado por punteros. Se puede establecer una analoga entre los punteros y las direcciones postales: Una direccin postal permite acceder al lugar fsico indicado. El hecho de disponer de una direccin postal no garantiza que el lugar exista.Para declarar variables de tipo puntero en la notacin algortmica se utiliza la sintaxis siguiente: variable puntero a tipo

ELABORACIN DE PROGRAMAS El desarrollo de un programa o de un conjunto de aplicaciones se basa en un concepto llamado ciclo de vida. Son una serie de etapas o fases que hay que seguir secuencialmente. Las fases o etapas son: Anlisis. Diseo. Codificacin o construccin. Implantacin o explotacin. Mantenimiento.

Paso a explicar las fases:

ANLISIS En esta fase se establece el producto a desarrollar, siendo necesario especificar los procesos y estructuras de datos que se van a emplear. Debe existir

una gran comunicacin entre el usuario y el analista para poder conocer todas las necesidades que precisa la aplicacin. En el caso de falta de informacin por parte del usuario se puede recurrir al desarrollo de prototipos para saber con ms precisin sus requerimientos. En el anlisis estructurado se pueden emplear varias tcnicas como: I. Diagramas de flujo de datos: Sirven para conocer el comportamiento del sistema mediante representaciones grficas. Modelos de datos: Sirven para conocer las estructuras de datos y sus caractersticas. (Entidad relacin y formas normales) Diccionario de datos: Sirven para describir todos los objetos utilizados en los grficos, as como las estructuras de datos. Definicin de los interfaces de usuario: Sirven para determinar la informacin de entrada y salida de datos.

II.

III.

IV.

DISEO En esta fase se alcanza con mayor precisin una solucin optima de la aplicacin, teniendo en cuenta los recursos fsicos del sistema (tipo de ordenador, perifricos, comunicaciones, etc) y los recursos lgicos. (Sistema operativo., programas de utilidad, bases de datos, etc) En el diseo estructurado se pueden definir estas etapas: I. II. III. Diseo externo: Se especifican los formatos de informacin de entrada y salida. (Pantalla y listados) Diseo de datos: Establece las estructuras de datos de acuerdo con su soporte fsico y lgico. (Estructuras en memoria, ficheros y hojas de datos) Diseo modular: Es una tcnica de representacin en la que se refleja de forma descendente la divisin de la aplicacin en mdulos. Est basado en diagramas de flujo de datos obtenidos en el anlisis. Diseo procedimental: Establece las especificaciones para cada modulo, escribiendo el algoritmo necesario que permita posteriormente una rpida codificacin.

IV.

CODIFICACIN Consiste en traducir los resultados obtenidos a un determinado lenguaje de programacin, teniendo en cuenta las especificaciones obtenidas en el cuaderno de carga. Se deben de realizar las pruebas necesarias para comprobar la calidad y estabilidad del programa. Las pruebas se pueden clasificar en: I. II. III. Pruebas unitarias: Sirven para comprobar que cada mdulo realice bien su tarea. Pruebas de interconexin: Sirven para comprobar en el programa el buen funcionamiento en conjunto de todos sus mdulos. Pruebas de integracin: Sirven para comprobar el funcionamiento correcto del conjunto de programas que forman la aplicacin. (el funcionamiento de todo el sistema)

EXPLOTACIN En esta fase se realiza la implantacin de la aplicacin en el sistema o sistemas fsicos donde van a funcionar habitualmente y su puesta en marcha para comprobar el buen funcionamiento. Actividades a tener en cuenta o realizar: 1. Instalacin del/los programa/s. Pruebas de aceptacin al nuevo sistema. Conversin de la informacin del antiguo sistema al nuevo (si hay una aplicacin antigua) Eliminacin del sistema anterior. Al final de esta fase se debe de completar la informacin al usuario respecto al nuevo sistema y su uso. As como facilitarle toda la documentacin necesaria para una correcta explotacin del sistema (manual de ayuda, manual de uso, gua de la aplicacin, etc.)

MANTENIMIENTO

Esta es la fase que completa el ciclo de vida y en ella nos encargaremos de solventar los posibles errores o deficiencias de la aplicacin. Existe la posibilidad de que ciertas aplicaciones necesiten reiniciar el ciclo de vida. Tipos de mantenimiento: I. Mantenimiento correctivo: Consiste en corregir errores no detectados en pruebas anteriores y que aparezcan con el uso normal de la aplicacin. Este mantenimiento puede estar incluido en la garanta o mantenimiento de la aplicacin. Mantenimiento adaptativo: Consiste en modificar el programa a causa de cambio de entorno grfico y lgico en el que estn implantados. (nuevas generaciones de ordenadores, nuevas versiones del sistema operativo, etc.) Mantenimiento perfectivo: Consiste en una mejora sustancial de la aplicacin al recibir por parte de los usuarios propuestas sobre nuevas posibilidades y modificaciones de las existentes.

II.

III.

Los tipos de mantenimiento adaptativo y perfectivo reinician el ciclo de vida, debiendo proceder de nuevo al desarrollo de cada una de sus fases para obtener un nuevo producto.