Declaración de Procedimientos

Documentos relacionados
8.1.- FUNCIONES Y PROCEDIMIENTOS DEFINIDOS POR EL USUARIO EN TURBO PASCAL.

Datos en Turbo Pascal

Apunte Laboratorio ALPI - El lenguaje de programación Pascal

Departamento de Informática Universidad de Valladolid Campus de Segovia TEMA 1: RECURSIÓN

Universidad de Valladolid. Departamento de informática. Campus de Segovia. Estructura de datos Tema 1: Recursividad. Prof. Montserrat Serrano Montero

Manual de turbo pascal

Componentes Básicos. InCo. InCo Componentes Básicos 1 / 28

Programación MODULAR: Subalgoritmos - funciones y procedimientos

Programación en Pascal

Inicio del programa. Entrada de datos. Proceso de datos. Salida de datos. Fin del programa

1. ESTRUCTURA DE UN PROGRAMA PASCAL Todo programa escrito en lenguaje Pascal, del más simple al más complejo, tiene la siguiente estructura:

Enteros. Son los números que no contienen componentes fraccionarios y, por tanto, no contienen punto decimal.

Números enteros (cortos, largos y sin signo) Números reales (precisión simple y doble) Carácter y cadenas de caracteres. Lógicos.

Tema 2. Tipos predefinidos

SUBRANGO ENUMERADOS CONJUNTOS

INTRODUCCIÓN AL TURBO PASCAL.

Procedimientos, Funciones y Recursividad

FUNDAMENTOS DE OBJECT PASCAL

GUÍA BÁSICA DE SCHEME v.4

Departamento de Informática Universidad de Valladolid Campus de Segovia LABORATORIO: INTRODUCCIÓN A LAS UNIDADES EN TURBO PASCAL

Tema 4.- Recursión e iteración

Primer Parcial. Programación 1 Instituto de Computación Año 2011

APUNTES DE CÁTEDRA: ARREGLOS MULTIDIMENSIONALES

6. Estructuras básicas de control 1. Pseudocódigo

Módulo 8: Primitivas en Pascal

III. Generación de Código orientado a objetos

FUNDAMENTOS DE INFORMÁTICA

TEMA 2. LENGUAJE C. CONCEPTOS BÁSICOS Y PROGRAMACIÓN ELEMENTAL.

Un programa escrito en Pascal tendrá generalmente la siguiente forma:

Estructura de Datos: Archivos

Tema 1 INTRODUCCIÓN A LOS LENGUAJES DE PROGRAMACIÓN

Módulo. = Asignación = = Comp. de igualdad!= Com. de desigualdad <= Comp. menor o igual >= Comp. mayor o igual AND lógico OR lógica.

FACULTADE DE INFORMÁTICA Departamento de Computación Estructura de Datos e da Información. Ejercicios de recursividad

Programación modular en Pascal

Ordinales, Enumerados y Conjuntos

JavaScript Básico. Elementos Básicos: Comentarios: Literales: Valores que puede tomar una variable o una constante.

U nidad 6: A rreglos: U nidim ensionales y m ultidim ensionales

Listas y Recursión. Taller de Álgebra I. Primer Cuatrimestre de 2015

Tipos de datos y operadores en C++

GUÍA DE TRABAJO N 1 C# Ing. Néstor Raúl Suarez Perpiñan Página 1 de 13

GENERACIÓN DE CÓDIGO ORIENTADO A OBJETOS

Dra. Jessica Andrea Carballido

Elementos de un programa en C

ALGORÍTMICA. Dpto. Ingeniería de Sistemas y Automática Facultad de Ciencias Universidad de Valladolid.

PASCAL y TURBO PASCAL

1. factorial(4) := 4 * factorial(3) Se invoca a si misma y crea una segunda variable cuyo nombre es

7. PROCEDIMIENTOS Y FUNCIONES

Fundamentos de Programación

Estructuras de Control. Secuencia y Selección

Repaso Visual Basic Interfaz Gráfica

Introducción a la programación. Oscar Alejandro González Bustamante. José Víctor Martínez Ramos.

2. ESTRUCTURA DE UN PROGRAMA EN TURBOPASCAL

Tema 3. Patrones y Definiciones de Funciones

COLEGIO PABLO DE TARSO IED CONSTRUCCION DE PROYECTOS DE VIDA PRODUCTIVOS VISUAL BASIC PRÁCTICAS DOC RAUL MONROY PAMPLONA

U i n d id d a 3. El Element os á bá i s cos de un programa

funciones printf scanf

PASCAL y TURBO PASCAL

Procesamiento de Lenguajes (PL) Curso 2015/2016. Práctica 5: traductor a código m2r

TEMA 2. EL LENGUAJE C. ELEMENTOS BÁSICOS

1.1 Define un operador ( ) que devuelva True si y solo si tan solo uno de sus argumentos es True. Por ejemplo:? (3 > 2) (2 > 5)

Programación en Lenguaje C

5. Sentencias selectivas o condicionales

UTN FRRo Algoritmos y Estructuras de Datos Bibliotecas Un ejemplo : Gestión de Pantalla, Retardo y Sonido

UNIVERSIDAD DON BOSCO FACULTAD DE ESTUDIOS TECNOLÓGICOS ESCUELA DE COMPUTACION

Estructura de datos Tema 2: Tipos Abstractos de Datos (TADs)

Introduccion a la Programacion. Pablo Sevilla Jarquin

Lenguaje de programación C. Introducción

Programación Estructurada. Complementos de Informática Tema 2: Programación Estructurada y Programación Modular. Números Amigos

Ingeniería en Sistemas de Información Algoritmos y estructuras de datos Codificación en Pascal v1.2

INTRODUCCIÓN A LA PROGRAMACIÓN EN FORTRAN. Métodos Numéricos Carlos Zotelo

Este es un arreglo de números enteros, o sea que guarda una serie de variables de tipo INTEGER, todas agrupadas en una sola estructura.

Tema 7: Recursividad

Descripción de un Programa

Conocimientos previos

abril de 2017 Desarrollo de aplicaciones en Java Tipos de datos primitivos Tipos de datos Elementos de aplicaciones simples

1.4 Programación estructurada

Introducción a Haskell. Cecilia Manzino

TEMA 5: Subprogramas, programación modular

Constantes. Las constantes no cambian durante la ejecucion de un programa en C++, en C++ existen 4 tipos de constantes:

Desde los programas más simples escritos en un lenguaje de programación suelen realizar tres tareas en forma secuencial.

PHP: Lenguaje de programación

BOLETÍN DE EJERCICIOS: PROGRAMACIÓN EN C++ Ejercicio 1.- escribir un programa que calcule el factorial de un número:

Tipos de datos y Operadores Básicos

Tema: Funciones, Procedimientos y Recursividad en C#.

INTRODUCCIÓN A FORTRAN 77

GLOSARIO 1. Qué es bit y byte? Bit: Es la unidad mínima de información. Puede ser 0 o 1. Byte: Es el conjunto de 8 bits. Ejemplo:

Primer Parcial. Programación 1 Instituto de Computación Año 2017

INTRODUCCIóN A LA PROGRAMACIóN APUNTES DE JAVA APUNTES DE JAVA

Tema: Funciones, Procedimientos y Recursividad en C#.

Informática. JavaScript: Lenguaje de programación. Fco J. Martín Mateos Carmen Graciani

UNIDAD 7 Recursividad Concepto. Algoritmos recursivos. Seguimiento de la recursión. Algunos métodos recursivos de búsqueda y ordenación: M-Sort y

Todo programa en 'C' consta de una o más funciones, una de las cuales se llama main.

Guía práctica de estudio 05: Pseudocódigo

Transcripción:

Procedimientos Concepto Un procedimiento es un subprograma que realiza una tarea especifica. Puede recibir cero más valores del programa que llama y devolver cero o más valores a dicho programa que lo ha llamado. Un procedimiento está compuesto por un grupo de sentencias a las que se asigna un nombre (identificador) y constituye una unidad del programa. Es obligatorio declarar los procedimientos en Turbo Pascal y deben estar declarados antes de que puedan ser referenciados en el cuerpo del programa Unidad VI 1 Declaración de Procedimientos Declaración Formato 1. procedure nombreproc; declaraciones locales cuerpo del procedimiento Formato 2. procedure nombreproc(lista parámetros formales); declaraciones locales cuerpo del procedimiento nombreproc: identificador válido lista parámetros formales: parámetros formales del procedimiento; sirven para pasar información al procedimiento y/o devolverla a la unidad del programa que la invoca; tiene el formato: lista 1: tipo 1; lista 2: tipo 2;... lista: uno o varios identificadores Unidad VI 2

Llamada al Procedimiento Llamadas Los procedimientos se llaman dentro de un programa o de otro procedimiento directamente por su nombre, de acuerdo a los formatos 1 y 2. Formato 1. nombreproc Formato 2. nombreproc(lista parámetros formales) Unidad VI 3 Procedimientos Localización program identificador {cabecera del programa} uses identificadores label lista de etiquetas {sección de etiquetas} const definición de constantes type definición de datos definidos por el usuario var declaración de variables procedure function end definición de procedimientos definición de funciones sentencias {cuerpo del programa} Unidad VI 4

Orden de ejecución Secuencia program demo;. procedure A; 2 procedure B; 4.. A.. B. Unidad VI 5 1 3 Uso de Procedimientos Ventajas Las ventajas más resaltantes de usar procedimientos en los programas son: El uso de procedimientos facilita el diseño descendente. Los procedimientos se pueden ejecutar más de una vez en el programa. Facilita la labor de programación entre un grupo de programadores. Los procedimientos se pueden comprobar individualmente y estructurarse librerías específicas. Unidad VI 6

Uso de Procedimientos program recuadro; uses crt; procedure estrellas; write ( ********** ); clrscr; estrellas; write ( Bienvenido ); estrellas; writeln; estrellas; estrellas; estrellas; readkey end. {archivo estrella} Programa que muestra un mensaje de bienvenida acompañado de asteriscos Ejecución: **********Bienvenido********** ****************************** Unidad VI 7 Uso de Procedimientos program ajedrez; uses crt; var fila: integer; procedure PintarFila (f : integer); var blanco: boolean; columna: integer; write ( : 32); blanco := f mod 2 = 1; for columna 1 to 8 do if blanco then write ( ) else write (char (219), char (219)); blanco := not blanco writeln Programa que permite dibujar un tablero de ajedrez usando un procedimiento clrscr; for fila := 1 to 8 do PintarFila (fila); readkey end. {archivo ajedrez} Unidad VI 8

Parámetros Concepto Un parámetro es un método para pasar información valores a variables del programa principal al procedimiento y viceversa. Los procedimientos se clasifican entonces en: Procedimientos sin parámetros Procedimientos con parámetros Un parámetro es, prácticamente, una variable cuyo valor debe ser proporcionado por el programa principal o bien ser devuelto desde el procedimiento hasta el programa principal. Según esto existen entonces dos tipos de parámetros: Parámetros de entrada Parámetros de salida Unidad VI 9 Parámetros actuales y formales Lista de parámetros Las sentencias llamadas a procedimientos constan de dos partes: un nombre de procedimiento y una lista llamada parámetros actuales. nombreproc (pa1, pa2, pa3,...); En la declaración de un procedimiento, cuando se incluyen parámetros, éstos se denominan parámetros formales o ficticios. Ellos sirven para contener los valores de los parámetros actuales cuando se invoca el procedimiento. procedure nombreproc (pf1, pf2, pf3,...); Unidad VI 10

Tipos de Parámetros Clasificación Existen cuatro tipos de parámetros: Parámetros valor. Grupo de parámetros seguidos por un tipo, pero sin palabra reservada var. Parámetros constantes. Grupo de parámetros precedidos por const y seguidos por un tipo. Parámetros variable. Grupo de parámetros precedidos por var y seguidos de un tipo. Parámetros sin tipo. Grupo de parámetros precedidos por var y const y no seguidos por un tipo. Unidad VI 11 Correspondencia de Parámetros program Correspondencia; var X,Y,A,P : real; procedure Geometria (longitud, anchura: real; var area, perimetro: real); area := longitud * anchura; Procedimiento que perimetro := 2 * (longitud * anchura) permite calcular el área y el perímetro dados los parámetros writeln ( Introduzca longitud ); readln (X); writeln ( Introduzca anchura ); readln (Y); Geometria (X,Y,A,P); writeln ( El área es:, A:6:2); writeln ( El perímetro es:, P:6:2) end. Unidad VI 12

Correspondencia de Parámetros program Correspondencia; var X,Y,A,P : real; En caso que x=4 e y=7. El paso de parámetros queda como se indica procedure Geometria (longitud, anchura: real; var area, perimetro: real); area := longitud * anchura; perimetro := 2 * (longitud * anchura) end. 28 writeln ( Introduzca longitud ); readln (X); writeln ( Introduzca anchura ); readln (Y); Geometria (4, 7, A, P); writeln ( El área es:, A:6:2); writeln ( El perímetro es:, P:6:2) Unidad VI 13 22 Parámetros actuales 4 7 A P Parámetros formales longitud anchura area (28) perimetro (22) Procedimientos y Funciones Diferencias Los procedimientos y funciones que sirven para realizar los módulos de un programa son similares, aunque presentan notables diferencias, entre ellas tenemos: Las funciones, normalmente, devuelven un solo valor a la unidad del programa (programa principal o subprograma) que los referencia. Los procedimientos pueden devolver cero, uno o varios valores. En el caso de no devolver ningún valor, realiza alguna tarea tal como alguna operación de entrada y/o salida. A un nombre de procedimiento no se puede asignar un valor, y por consiguiente ningún tipo está asociado con un nombre de procedimiento. Una función se referencia utilizando su nombre en una expresión, mientras que un procedimiento se referencia por una llamada o invocación al mismo. Unidad VI 14

Funciones Concepto Una función es un subprograma que recibe como argumentos o parámetros datos de tipo numérico, o no numérico (char, string, boolean u otros) y devuelve un resultado. Esta característica la diferencia de un procedimiento. En Turbo Pascal existen dos grandes grupos de funciones: Funciones predefinidas, internas o estándar. Funciones definidas por el usuario. Unidad VI 15 Funciones Predefinidas En Turbo Pascal Turbo Pascal incorpora todas las funciones estándar de ISO Pascal y añade otras nuevas. Borland divide las funciones predefinidas en los siguientes grupos: 1. Funciones de asignación dinámica de memoria. 2. Funciones de transferencia. 3. Funciones matemáticas. 4. Funciones Trigonométricas. 5. Funciones ordinales. 6. Funciones de cadena. 7. Funciones de dirección y punteros. 8. Funciones especiales. Unidad VI 16

Funciones Predefinidas En Turbo Pascal Función Argumento (x) Descripción Abs(x) Real o Integer Devuelve el valor absoluto del argumento ArcTan(x)* Real o Integer Devuelve el arco tangente del argumento Cos(x)* Real o Integer Devuelve el coseno del argumento Exp(x) Real o Integer Devuelve el exponencial del argumento Frac(x) Real Devuelve la parte decimal del argumento Int(x) Real Devuelve la parte entera del argumento Ln(x) Real o Integer Devuelve el logaritmo natural del argumento Pi Real Devuelve el valor de Pi Round Real o Integer Devuelve el entero más próximo al argumento Sin(x)* Real o Integer Devuelve el seno del argumento Sqr(x) Real o Integer Devuelve el cuadrado del argumento Sqrt (x) Real o Integer Devuelve la raíz cuadrada del argumento Trunc(x) Real Devuelve la parte entera del argumento * El argumento de estas funciones se da siempre en radianes Unidad VI 17 Funciones Predefinidas En Turbo Pascal Función Ord (x) Chr (x) Succ (x) Pred (x) Odd (x) Hi (x) Lo (x) Swap (x) Inc (x [,n] ) Dec (x [,n] ) Random ([n]) Descripción Devuelve el número ordinal correspondiente al argumento Devuelve el carácter ASCII correspondiente al argumento Devuelve el sucesor del argumento o error si no lo tiene Devuelve el predecesor del argumento Devuelve true si el argumento es un n impar y false si es par. Devuelve el valor del byte de mayor peso del argumento Devuelve el valor del byte de menor peso del argumento Devuelve los bytes de orden alto y bajo intercambiados Devuelve x incrementado en n si este último existe o en 1 si no. Devuelve x decrementado en n si este último existe o en 1 si no. Devuelve un número pseudoaleatorio en el rango de 0 a 1 ó 0 a n Unidad VI 18

Funciones Definidas por Usuarios Además de las funciones predefinidas es posible que el usuario pueda declarar sus propias funciones de igual modo que declara sus procedimientos. Una función definida por el usuario es un subprograma que devuelve un único resultado al programa que le llamo. La sintaxis de una función es la siguiente: function nombre (p1, p2,...): tipo {declaraciones locales y subprogramas} {cuerpo de la función} nombre := valor de la función p1, p2,... Lista de parámetros formales. tipo Tipo de dato del resultado que devuelve la función. Unidad VI 19 Funciones function Maxde3 (A,B,C :integer) : integer; var maximo: integer; Función que permite calcular el máximo valor de tres enteros dados como parámetros {encontrar el mayor de A y B} if A > B then maximo := A else maximo := B; {compara el mayor de A y B con C} if maximo >= C then Maxde3 := maximo else Maxde3 := C {Maxde3} Unidad VI 20

Funciones program Potencia; var N : integer; function cubo (x : integer) : integer; {proporciona x al cubo} Programa que permite calcular el cubo de un número mediante una función end. {cubo} cubo := x * x * x {cubo} {programa} N := cubo (3); writeln ( El cubo de 3 es, N); writeln ( 4 al cubo es :, cubo (4)) Ejecución: El cubo de 3 es 27 4 al cubo es : 64 Unidad VI 21 Funciones y Procedimientos Comparación En lugar de la palabra procedure se debe utilizar la palabra reservada function. Al igual que los procedimientos, el nombre de la función es un identificador. Sin embargo, el nombre de la función se refiere a la posición de memoria que contiene el valor devuelto por la función. La lista de parámetros formales son los identificadores utilizados para recibir valores del programa. El tipo de dato del resultado coincide con el tipo expresado en la cabecera de la función. En el cuerpo de la función debe existir una sentencia de asignación de la forma: nombre_función := valor_función donde está definido el valor de la función. La función sólo devuelve un valor, el procedimiento puede devolver cero, uno o varios valores. El tipo de dato del resultado en la función debe estar indicado en la cabecera y puede ser cualquier tipo de dato escalar (integer, real, boolean o char) o un tipo enumerado, subrango, puntero. Unidad VI 22

Recursividad Concepto El ámbito de la declaración de una función o un procedimiento incluye su propio bloque. El nombre de la función o del procedimiento puede utilizarse, por tanto, dentro de la función o del procedimiento. Por ejemplo, una función puede llamarse a sí misma dentro de dicha función. Esta característica se llama recursividad. En Pascal los procedimientos y las funciones pueden ser definidos de modo recursivo. La recursividad es una característica muy importante si no existe otra alternativa más apropiada, dado que ocupa más memoria y tiempo de procesador que cuando se utiliza una fórmula matemática. Unidad VI 23 Recursividad Los subprogramas recursivos deben contener siempre las dos partes o condiciones siguientes: 1. Una llamada a si mismo (recursiva); normalmente con el valor de los parámetros que cambian en cada llamada. 2. Una condición de terminación o salida, que es la condición que no produce ninguna llamada. La recursividad puede ser de dos tipos: Recursividad directa (simple). Recursividad indirecta (mutua). Unidad VI 24

Funciones Recursivas Escribir el factorial de un número de modo recursivo. La definición matemática de n! es: así, para el caso de n=5, 1 n! = n ( n 1) ( n 2)... 1 n = 0 n > 0 5! = 5 (5 1) (5 2) (5 3) (5 4) (5 5) = 5 4 3 2 1= 120 que se puede expresar también como, 5! = 5 4! y generalizando 1 n! = n ( n 1)! n = 0 n > 0 Que es una definición recursiva, ya que contiene las dos condiciones: condición de salida y parte recursiva. si si Unidad VI 25 si si Funciones Recursivas function Factorial (n:integer) : real; {cálculo del factorial de n (n!). Pre: n está definida y n >= 0. Post: factorial (n) = n!} if n=0 then Factorial :=1 else Factorial := n * factorial (n-1) function Factorial (n:integer) : real; var Fact, J : integer; Fact := 1; for j := 2 to N do Fact := Fact * J; Factorial := Fact Forma recursiva de la función factorial Forma iterativa de la función factorial Unidad VI 26

Funciones Recursivas function Factorial (n:integer) : real; {cálculo del factorial de n (n!). Pre: n está definida y n >= 0. Post: factorial (n) = n!} if n=0 then Factorial :=1 else Factorial := n * factorial (n-1) Seguimiento de la recursividad en la función Factorial Consideremos el cálculo del factorial para n=3, enviado como parámetro valor desde otro subprograma o desde el programa principal: n=3 llamada a Factorial (3) n=0: no Factorial := 3 * Factorial (2) n=2 llamada a Factorial (2) n=0: no Factorial := 2 * Factorial (1) n=1 llamada a Factorial (1) n=0: no Factorial := 1 * Factorial (0) n=0 llamada a Factorial (0) n=0: si Factorial := 1 Unidad VI 27 Funciones Recursivas Hacer una función para la serie de Fibonacci: 1,1,2,3,5,8,13,21,... La serie de Fibonacci se representa así: Fib Fib Fib Fib... (1) = 1 ( 2) (3) = Fib ( 4) = 1 = Fib ( 2) + Fib (3) + Fib (1) ( 2) Esta función se define recursivamente del siguiente modo: Fib 1 ( n) = Fib ( n 1) + Fib ( n 2) si si n = 0, n = 1 n > 1 Unidad VI 28

Funciones Recursivas program VerFibonacci (input, output); var I,J : integer; function Fibonacci (N : integer) : integer; if (N=1) or (N=2) then Fibonacci :=1 else {programa} Fibonacci := Fibonacci (N-1) + Fibonacci (N-2) Programa que permite representar la serie de Fibonacci mediante una función recursiva writeln ( Introduzca el número de términos de la sucesión ); readln (J); write ( los primeros, J:1, números ); Ejecución: writeln ( de la sucesión Fibonacci son: ); for I := 1 to J do write (Fibonacci(I):1, ); writeln end. {archivo verfibon} Introduzca el número... 8 los primeros 8 números de la sucesión Fibonacci son: 1 1 2 3 5 8 13 21 Unidad VI 29 Procedimientos Recursivos program InvertirNumero; var numero : integer; procedure Invertir (N : integer); write (N mod 10 :1); if N>=10 then Invertir (N div 10) {programa} writeln ( Introduzca un número entero ); readln (numero); write ( numero:1, invertido es ); Invertir (numero); writeln end. {archivo invertir} Programa que permite mostrar de forma inversa un número entero introducido mediante un procedimiento recursivo Ejecución: Introduzca un número... 12345 12345 invertido es 54321 Unidad VI 30

Procedimientos Recursivos program Alreves; type Cad255 = string [255]; var palabra : Cad255; procedure Palindromo (var P : Cad255; N : integer); if N = 1 then write (P[1]) else write (P[N]); Palindromo (P, N-1) end {programa} writeln ( Introduzca una palabra ); readln (palabra); Palindromo (palabra, length (palabra)); writeln end. {archivo palindro} Programa que permite mostrar de forma inversa una palabra (palíndromo) introducida mediante un procedimiento recursivo Ejecución: Introduzca una palabra Monagas saganom Unidad VI 31 Recursividad Indirecta Declaración forward Se tiene recursividad indirecta o mutua cuando dos o más procedimientos se llaman mutuamente. Supóngase que el procedimiento P llama al procedimiento Q y viceversa, se podría escribir: procedure P(...);...Q(...)...; procedure Q(...);...P(...)...; Pascal resuelve este problema con la declaración forward. Sintaxis: cabecera del 1er subprograma; forward; cabecera del 2do procedimiento; {bloque del 2do procedimiento} nombre del 1er procedimiento; {bloque del 1er procedimiento} Sin embargo, esto no es válido... Unidad VI 32

Recursividad Indirecta function Par (numero : integer) : boolean; forward; function Impar (numero : integer) : boolean; {Impar} if numero = 1 then Impar := true else Impar := Par (pred (numero)) {Impar} function Par; {Par} if numero = 1 then Par := false else Par := Impar (pred (numero)) {Par} Funciones Par e Impar con recursividad mutua que devuelven un valor lógico dependiendo de la paridad del entero introducido Unidad VI 33 Bibliografía Joyanes A., Luis, Programación en Turbo/Borland Pascal 7. 3ra Ed. Osborne/McGraw- Hill Interamericana, Madrid, 1998 Rodnay, Zaks, Programación en Pascal, Turbo Pascal. 1ra Ed. Anaya Multimedia, Madrid, 1986 Joyanes A., Luis, Turbo/Borland Pascal 7. 1ra Ed. Osborne/McGraw-Hill Interamericana, Madrid, 1997 Noton, Peter. Introducción a la Computación. 3ra Edición. México. McGraw-Hill Interamericana, México, D.F., 2003. Prieto E., Alberto y otros, Introducción a la Informática. 3da Ed. McGraw-Hill Interamericana, Madrid, 2002 Mata T., Ramón, Cushman, Pauline,. 1ra Ed. McGraw- Hill Interamericana, México, D.F., 2001 Unidad VI 34