Vous êtes sur la page 1sur 30

Introduccin Dentro de los que es la unidad seis referida a mdulos se intenta desarrollar el conocimiento de que en la resolucin de problemas se pueden

encontrar diferentes tipos de complicaciones a las cuales se dan miles de posibles soluciones. Haciendo referencia a lo anterior dentro de lo que es la programacin, es conveniente dividir los problemas complejos en lo que son subproblemas mas fciles de tratar por separado. En el siguiente texto se encontrara la manera de generar un subalgoritmo llamado modulo, dentro de un algoritmo principal, lo cual nos da la posibilidad de identificarlo con un nombre y llamarlo al algoritmo principal cuando este sea requerido, llamando a esto activacin, es decir cuando un algoritmo llama a un modulo. Sabiendo que el modulo es una parte del problema se le reconoce como una funcin o procedimiento, dependiendo de la tarea o el problema a resolver. Al realizar estas acciones se requiere del uso de parmetros, que son los condicionamientos de entrada de los mdulos al algoritmo. Todo esto con el fin de hacer ms eficiente la tarea y la resolucin del problema.

6. Mdulos 6.1 Diferencia entre funciones y procedimientos Funciones: Tipos de funciones Funciones predefinidas: estn incorporadas al lenguaje de programacin y pueden ser utilizadas directamente. Funciones definidas por el usuario: utilizadas cuando las funciones predefinidas no permiten realizar el tipo de clculo deseado, y es el usuario el que debe implementar, mediante estructuras de control adecuadas, la tarea a realizar.

El formato de declaracin de una funcin es el siguiente:

FUNCION ident_func (lista de parmetros formales): tipofunc, Seccin de declaracin de variables, constantes y tipos locales a la funcin, Seccin de mdulos locales a la funcin.

La lista de parmetros formales son la entrada a la funcin y tienen el siguiente formato:

(ident_param1: tipo1;....; iden_paramN: tipoN)

Cada funcin se invoca utilizando su nombre en una expresin con los parmetros actuales encerrados entre parntesis y siempre devuelve un valor que ser del tipo especificado como tipo de la funcin. (Escutia, 2007).

Procedimientos:

Un procedimiento es un subalgoritmo que ejecuta un proceso especfico.

Ningn valor est asociado con el nombre del procedimiento El formato de declaracin de un procedimiento es el siguiente:

PROCEDIMIENTO identificador (lista de parmetros formales), Seccin de Declaracin de variables, constantes y tipos locales al procedimiento, Seccin de mdulos locales.

La lista de parmetros formales son la entrada y la salida al procedimiento:

([VAR] ident_param1: tipo1;....; [VAR] iden_paramN: tipoN)

Si el parmetro formal se va a utilizar como salida al procedimiento debe estar precedido de la palabra VAR.

Para invocar o llamar a un procedimiento se pone el nombre del procedimiento como si fuera una sentencia normal del programa, seguido de una lista de parmetros actuales. (Escutia, 2007).

Diferencias: Las funciones devuelven un valor mientras que los procedimientos pueden devolver 0, 1 n valores. El procedimiento se declara igual que la funcin, pero su nombre no est asociado a ninguno de los resultados que obtiene. Adems, la declaracin de una funcin debe incluir el tipo de dato que se devolver. El nombre de una funcin puede aparecer como parte de una expresin mientras que el nombre de un procedimiento debe aparecer como una instruccin independiente.

6.2 Activacin/Invocacin de funciones y procedimientos Cuando se ejecuta el programa principal, se utiliza un rea de memoria principal en la que se almacenan las variables y constantes. Tambin se reserva una zona de memoria del ordenador que se llama pila para trabajar con los mdulos. Cuando se llega a una sentencia dentro del programa principal en la que se produce la invocacin de un mdulo se crea en la pila un objeto que llamaremos registro de activacin o entorno. En el registro de activacin se guardan, entre otras cosas, las constantes y variables locales, as como los parmetros actuales. Una vez que se crea el registro de activacin, se procede a ejecutar el cuerpo del mdulo de manera que todos los eventos que ocurran durante la ejecucin del mdulo, lo harn sobre su entorno. Si el mdulo M contiene una llamada a otro mdulo M se crear en la pila, justo encima de la zona que est utilizando el mdulo M, otra zona para el mdulo M' activado por M. Cuando M' termine su ejecucin, el entorno asociado a M' se destruye, restaurando el entorno de M. Por tanto, el entorno activo en cada momento es el ltimo llamado, que ocupa el lugar ms alto de la pila. Cuando el retorno se haga al programa principal, al borrar el ltimo registro de activacin (el ltimo entorno) que quedaba en la pila, sta quedar vaca. (Escutia, 2007). Ejemplo de uso:

Tipos de variable utilizadas: Variable local: Se declara dentro de un subalgoritmo. Su valor se conoce dentro del subalgoritmo donde se define. Si otro subalgoritmo declara una variable con el mismo nombre se trata de otra variable distinta. Variable global: Se declara en el algoritmo principal. Su valor se conoce en cualquier parte del algoritmo incluido los subalgoritmos declarados. Si otro subalgoritmo declara una variable con el mismo nombre, la variable global no tendr efecto (no se conocer) dentro de dicho subalgoritmo. mbito de un modulo: El mbito de un mdulo M es el conjunto de mdulos que pueden llamar a M, sean P, M y N mdulos, s M y N estn declarados directamente dentro de P se dice que M y N son hijos de P, P es el padre de M y N, y M y N son hermanos, si M est declarado directamente dentro de P y N est declarado dentro de M, se dice que N es nieto o descendiente no directo de P y P es el abuelo o ascendiente no directo de N. (Escutia, 2007). El mbito de un mdulo M comprende: l mismo (M) El padre de M (es decir, el mdulo en el que est declarado. Cualquier hermano de M que est declarado con posterioridad a l. Cualquier descendiente de un hermano de M que est declarado con posterioridad a l.

6.3 Uso de funciones y procedimientos con parmetros Cuando se utilizan subalgoritmos, es el algoritmo principal el que se encarga de transferir el control entre los distintos mdulos, los cuales cuando terminan su tarea, devuelven el control al algoritmo que los llam. Para que las acciones de un subalgoritmo se ejecuten debe ser invocado mediante su nombre y una lista de parmetros actuales que se corresponden uno a uno con los parmetros formales. Las dos listas de parmetros (actuales y formales) deben tener el mismo nmero de argumentos y los que se vayan a emparejar deben coincidir en tipo. Cuando un algoritmo llama a un mdulo, la comunicacin se realiza a travs de la lista de parmetros. Los parmetros actuales son utilizados en el lugar de los parmetros formales. La correspondencia entre unos y otros se establece emparejando los parmetros actuales con los formales segn la posicin que ocupan en la lista. Los parmetros utilizados pueden servir de: Entrada: para recoger datos procedentes del algoritmo que los llama. Salida: para obtener los resultados tras la ejecucin del subalgoritmo.

Entrada y salida simultneamente: un mismo parmetro que representa la entrada de datos, se modifica en el interior del subalgoritmo y se devuelve el resultado.

Tipos de paso de parmetros: Paso de parmetros por valor o copia. Paso de parmetros por referencia o direccin.

Parmetros por valor: Es el que se utiliza por defecto. Los parmetros formales reciben una copia de los valores de los parmetros actuales y no es posible cambiar su valor. Los cambios que se producen en los parmetros formales como consecuencia de la ejecucin de las sentencias incluidas en el subalgoritmo no tienen ningn efecto (y por tanto no producen un cambio) en los parmetros actuales. El paso por valor se utiliza cuando los parmetros se van a utilizar nicamente como entrada ya que no se pueden pasar valores de retorno al punto de llamada. (Escutia, 2007) Ejemplo:

Parmetros por referencia: En la declaracin del subalgoritmo hay que incluir la palabra VAR antes del parmetro formal. Los parmetros formales reciben la direccin de memoria del parmetro actual con lo que cualquier modificacin del parmetro formal afecta directamente al parmetro actual. El parmetro actual debe ser una variable (no puede ser una constante, valor constante, nombre de funcin o expresin) y debe ser del mismo tipo que el parmetro formal por referencia con el que se asocia (es decir, no pueden asociarse tipos compatibles sino exactamente el mismo tipo). (Escutia, 2007). Ejemplo:

Reglas de asociacin: Debe haber el mismo nmero de parmetros actuales que de formales. Los tipos de los parmetros formales y actuales deben concordar. Sin embargo, un parmetro actual de tipo entero puede estar asociado con un parmetro formal por valor de tipo real, pero no con un parmetro formal por referencia de tipo real. Un parmetro actual asociado con un parmetro formal por variable debe ser una variable (no puede ser una constante o una expresin). (Escutia, 2007).

Conclusin De acuerdo con lo tratado dentro de la unidad seis referente a mdulos se llego a la conclusin de que para la resolucin de problemas en programacin que representa una mayor exigencia, es necesario el uso de mtodos ms eficaces para la resolucin de los mismos. El uso de mdulos nos ayuda a realizar una programacin mas estructurada y de mayor eficiencia con la posibilidad de subdividir el algoritmo en diferentes procedimientos y funciones que pueden ser llamados cuando su uso sea requerido sin el problema de tener una estructura dispersa dentro del mismo.

Introduccin Con la necesidad de representar grficamente el comportamiento de modelos matemticos, se desarrollara dentro de esta unidad de graficacin, la forma de implementar los elementos bsicos de representacin grafica en lo que es la programacin. La aplicacin de diversos formatos permiten al programador definir parmetros de control dentro del desarrollo de algn modelo; tal como la demanda actual requiere es necesario la definicin de diversos elementos que nos den la pauta de trabajo. En la actualidad la programacin orientada a objetos requiere de una mayor capacidad de funcionamiento de un programador para poder dar un modelo a ciertas tareas, las cuales dependen de la utilizacin y adaptacin de un programa comnmente utilizado, a uno de mayor alcance por as decirlo. Dentro de esta unidad se establecer la forma de obtener un paquete de diseo con un programador de uso cotidiano desde cmo establecerlo hasta su funcionamiento.

7 Graficacin 7.1 Conceptos bsicos de graficas 7.2 Introduccin bsica de manejo de graficas Resolucin: Las imgenes grficas mostradas en un monitor de computadora se componen de pequeos puntos llamados pxeles, los cuales estn distribuidos en la pantalla en filas; existe una cantidad especfica de filas y cada fila tiene una cantidad especfica de pxeles. La cantidad de pxeles usada en la pantalla se conoce como resolucin. Cada modo grfico tiene una resolucin particular. Inicializar el monitor en modo grfico: Para habilitar el monitor en modo grfico y utilizar sus pxeles y funciones de grficos, es necesario incluir el encabezado #include <graphics.h> que contiene las declaraciones y funciones relacionadas con graficacin e inicializar el monitor en modo grfico y utilizar sus pxeles con la funcin initgraph(). Uso de coordenadas: Una vez que se inicializa el monitor en modo grfico, las coordenadas tienen al pxel como unidad de medida. La funcin getmaxx() calcula la cantidad de pxeles por rengln y la funcin getmaxy() calcula la cantidad de renglones de la pantalla. Las funciones de grficos tienen como estndar el orden de manejo de coordenadas como columna, rengln; es decir, primero se anota la columna y despus el rengln para posicionarse en dicha coordenada. Cabe destacar que el conteo de columnas y renglones inicia partiendo de la esquina superior izquierda del monitor. (Lpez Tekayas, 1997). 7.3 Uso de libreras para la realizacin de grficas #include <graphics.h>

Declaracin para habilitacin:

La funcin initgraph() Una vez declaradas las variables monitor y modo que controlarn la resolucin identificando el tipo de pantalla o monitor y su modo de operacin

respectivamente, se utiliza la funcin initgraph() para habilitar el monitor seleccionado en modo grfico. La funcin initgraph() tiene 3 parmetros o argumentos: 1) La variable que identifica el monitor. 2) El modo de operacin grfico. 3) Subdirectorio que contiene los controladores de los monitores (archivos con extensin BGI) y los archivos con los tipos de letra (extensin CHR). (Lpez Tekayas, 1997).

Ejemplo:

Si se desea usar el directorio actual por defecto, se utiliza la funcin initgraph(). Ejemplo:

La funcin circle() Esta funcin dibuja un crculo y requiere 3 argumentos: 1) Coordenada de la columna del centro (en pixeles). 2) Coordenada del rengln del centro (en pixeles). 3) Radio del crculo (en pixeles). La Fig. Dibuja un crculo cuyo centro se encuentra en el punto 300,150 y su radio es de 27 pixeles.

La funcin rectangle() Esta funcin dibuja un rectngulo indicando las coordenadas de las esquinas superior izquierda e inferior derecha respectivamente. La Fig. Muestra un ejemplo

de una funcin que dibuja un rectngulo desde el punto 50,100 hasta el punto 400,250.

7.4 Graficacin de un punto y lneas rectas 7.5 Graficacin de funciones matemticas en un plano cartesiano La funcin line() Esta funcin se utiliza para dibujar una lnea entre 2 puntos. Para ello, la funcin requiere 4 parmetros que representan las coordenadas (en pixeles) de los dos puntos que se desea unir mediante una lnea recta. La Fig. Muestra un ejemplo que une los puntos 50,100 y 300,200 (columna, rengln respectivamente).

La funcin setlinestyle() Esta funcin se utiliza para determinar el tipo de lnea o trazo que se desea. Se pueden utilizar trazos con lnea continua, lnea punteada, lnea interrumpida, o un patrn de lnea definido por el usuario. Esta funcin requiere 3 argumentos: 1) Tipo de lnea: Puede ser SOLID_LINE, DOTTED_LINE, CENTER_LINE, DASHED_LINE o USERBIT_LINE. 2) Patrn: Este argumento regularmente es ignorado (excepto cuando se trata de un tipo de lnea definido por el usuario). 3) Ancho de lnea: Define la amplitud del trazo.

La Fig. Muestra un ejemplo que une los puntos 50,100 y 300,200 con una lnea punteada. (Lpez Tekayas, 1997).

7.6 Introduccin a la potencia grfica Ejemplo (Lpez Tekayas, 1997):

Conclusin Es bsico tener conocimiento dentro de la programacin de lo que es el ambiente grafico; ya que este nos puede generar diferentes parmetros de evaluacin dentro de lo que son la resolucin de problemas. Sabiendo que la programacin actualmente ms manejada es la orientada a objetos, s requiere de relacionar un monitor grafico con el monitor estndar que siempre se ha manejado, de modo que se puedan obtener caractersticas especiales y definidas que se requieran.

Introduccin Dentro de esta unidad se abordara el tema de puertos paralelos los cuales representan una interfaz entre una computadora y un perifrico; la cual permite el envi de datos al mismo tiempo. Este tipo de puertos permiten el envi de datos por medio de un conjunto de entradas y salidas digitales, los cuales permiten la lectura de datos, y el control de dispositivos. Es necesario atender a las caractersticas que requiere el funcionamiento de un puerto paralelo ya que al haber sido creado como un sustituto de un puerto serial, requiere de cierto mantenimiento, y su manejo de datos es diferente ya que su estructura comprende elementos caractersticos.

8 Puertos 8.1 Conceptos generales de manejo de puertos Un puerto paralelo es una interfaz entre una computadora y un perifrico, cuya principal caracterstica es que los bits de datos viajan juntos, enviando un byte o ms a la vez. El puerto paralelo se utiliza generalmente para manejar impresoras. Sin embargo, dado que este puerto tiene un conjunto de entradas y salidas digitales, se puede emplear para hacer prcticas experimentales de lectura de datos y control de dispositivos. La mayora de los puertos paralelos de la parte posterior de las computadoras IBM-compatibles poseen un conector DB-25. Esto es extrao, puesto que este conector es el de serie que se utiliza para los interfaces serie. El conector es normalmente hembra (tiene orificios en lugar de patitas) para distinguirlo de los conectores serie que son habitualmente machos y que puede tener tambin la computadora. (Liberty, 2000). 8.2 Configuracin del puerto paralelo en las computadoras Registros El puerto paralelo consta de 3 registros de 8 bits, aunque no todos los registros utilizan realmente los 8 bits. El registro de datos, utiliza 8 bits. Es donde la CPU escribe los datos que se envan a la impresora (caracteres). Los pines que componen este registro son del 2 al 9. El registro de estado, utiliza 5 bits. Es de solo lectura y desde el que la CPU puede conocer diversos aspectos del estado de la impresora (apagada, sin papel, etc). Los pines que usa este registro son el 10, el 11, el 12, el 13 y el 15. El registro de control, utiliza solamente 4 bits y es de solo escritura. Es donde la CPU puede escribir diversas seales que reconoce la impresora (validacin

de datos, inicializacin, etc). Los pines que usa este registro son el 1, el 14, el 16 y el 17. (Anonimo, 2002) Uso de los pines del puerto paralelo Pin 1 lleva la seal de strobe. Esta mantiene un nivel de voltaje comprendido entre 2.8 y 5v, pero cae debajo de 0.5 voltios cuando la computadora manda un byte de datos. Esta cada en el voltaje le dice a la impresora que el dato ha sido enviado. Los pines 2 al 9 son usados para mandar el dato. Para indicar que un bit tiene un valor de 1, una carga de 5v es enviada a travs del pin correspondiente. Cuando no hay un voltaje en un pin, indica un valor de 0. Esta es una forma simple pero muy efectiva de transmitir informacin digital. El pin 2 transporta el bit menos significativo y el 9 el ms significativo. El pin 10 manda la seal de reconocimiento (Ack) de la impresora a la computadora. Como el pin 1, esta mantiene una carga y cae debajo de 0.5v para indicarle a la computadora que el dato fue recibido. Si la impresora est ocupada (Busy), mandar un 1 por el pin 11, y cambiar a 0, para indicarle a la computadora que est lista para recibir ms datos. La impresora le avisa a la computadora que se qued sin papel (PaperEnd) enviando un 1 por el Pin 12. Mientras la computadora este recibiendo voltaje por el pin 13 (SelectIn), sabe que el dispositivo est conectado. La computadora manda una seal de auto suministro de papel (AutoFeed) a la impresora a travs del pin 14. Si la impresora tiene algn problema (Error), manda un 0 al pin 15 para avisarle a la computadora que existe un error (no hay papel, est fuera de lnea, error no det.). Cuando un nuevo trabajo de impresin est listo, la computadora manda un 0 al pin 16 para inicializar (Init) la impresora. El pin 17 es usado por la computadora para considerar desconectada (Select) la impresora. Esto se logra enviando 5 voltios a la impresora y mantenindolo as el tiempo que quieras considerarla desconectada.

Los Pine 18 al 25 son tierras (GND) y son usadas como seales de referencia para el nivel bajo (debajo de 0.5volts). (Anonimo, 2002)

8.3 Uso de instrucciones IBM especific direcciones base para el puerto paralelo estndar (dentro del espacio de direccionamiento de Entrada/Salida del 80x86). El adaptador de impresora podra usar la direccin base 3BCh, o ms tarde 378h o 278h. La BIOS (Basic Input Output System) de IBM crea en el momento de arranque o POST (Power On Seft Test) una tabla en el espacio de la memoria principal (RAM) para 4 direcciones base de puerto paralelo de impresora, estos se almacenan como 4 bytes empezando con la direccin de memoria 408h. Durante el arranque, la BIOS comprueba si hay puertos paralelos en las direcciones base 3BCh, 378h, y 278h, en ese orden, y almacena la direccin base de cualesquiera que hayan sido encontrados en posiciones consecutivas de la tabla. Las posiciones que no son usadas pueden estar en 0, o como algunos BIOS lo hacen, le colocan la direccin del primer puerto encontrado.

Algunos programas pueden ignorar esta tabla, pero esta es usada por lo menos por la propia BIOS (mediante la INT 17 de E/S de impresora) y por el MS-DOS. La BIOS detecta estos puertos escribiendo AAh al registro de datos (en la direccin de E/S Base + 0), y luego si en el registro de datos se lee AAh, significa que hay un puerto. Normalmente la asignacin de direcciones es como sigue:

Las referencias a cada registro del puerto se realizan de la siguiente forma: Datos=base+0 Estado=base+1 Control=base+2

Por ejemplo, si encontramos que la direccin base es 378h, entonces las direcciones del registro de datos, estado y control sern: Datos=378h Estado=379h Control=37Ah

Cada una de ellas permite acceder a los siguientes bits (descritos en la tabla general): Datos=D0, D1, D2, D3, D4, D5, D6, D7 Estado=S3, S4, S5, S6, S7 Control=C0, C1, C2, C3

Para enviar un carcter, primero se le coloca en el registro de datos. A continuacin se pone a 0 en el registro de control el bit de STROBE. Este bit debe estar muy poco tiempo activo, para evitar que la impresora lea dos veces el mismo carcter (del orden de un microsegundo). Como la impresora no tiene una capacidad de aguante ilimitada, se puede defender poniendo el bit de BUSY en el registro de estado a 1 para poder leer con tranquilidad el STROBE que le llega. Cuando lo haya ledo, pondr un 0 en ACK para indicar que ya ha recibido el carcter. (Anonimo, 2002), (Liberty, 2000).

Conclusin Dentro del manejo de puertos paralelos se obtiene una gran ventaja ya permite establecer un mejor control en la transmisin de datos a alta velocidad, ya que los puertos en serie requieren de una velocidad establecida. Sin embargo el hecho de un manejo mas particular de la transmisin de datos nos genera que el puerto paralelo sea ms frgil y genere un mayor costo al ser tan particular. La seal que generan es de mayor capacidad pero es posible su prdida a cortas distancias. En conclusin es un gran recurso dentro de lo que es el manejo de datos en una sola maquina, ya que en una conexin serial de maquinas y de puerto a puerto supone un manejo ms frgil y cuidadoso, y una posible prdida de datos en el intercambio.

Bibliografa Anonimo. (2002). PUERTOS PARALELOS. Obtenido de http://cfievalladolid2.net/tecno/cyr_01/control/puerto_paralelo.htm Escutia, J. I. (2007). Guia Propedutica. Mxico: Direccin General de Educacin Tecnolgica. Liberty, J. (2000). C++ para principiantes. Mxico: Pearson Educacin. Lpez Tekayas, B. (1997). Conceptos bsicos de Graficacin en C++. REFORMA TECNOLOGICA .

Vous aimerez peut-être aussi