Vous êtes sur la page 1sur 69

PROGRAMACION TURBO PASCAL Turbo Pascal es un "lenguaje de programacin de alto nivel" bajo entorno ms-dos, con esta poderosa

herramienta, se pueden crear un sin nmero de aplicaciones que van desde simples operaciones aritmticas como sumas, restas, hasta sistemas operativos, lenguajes de programacin, simulacines, videojuegos, manejadores de base de datos, virus y una amplia gama de programas cuyo nico lmite es solo la imaginacin del programador. Armar un programa en Turbo Pascal es como jugar con bloques de construccin o legos; en estos se unen bajo un orden determinado una serie de piezas para lograr componer una figura determinada, al final a muchos no les interesa el resultado sino la forma que se constituyo; de igual modo, Pascal se compone de una serie de "PIEZAS" (Comandos, procedimientos, funciones, ciclos, sentencias, etc) las cuales permiten armar una determinada aplicacin para dar solucin a una necesidad o problema, esto se hace colocando cuidadosamente en su sitio correcto la "PIEZA" a "ENSAMBLAR" para que al final toda esta serie de partes "EMPALMEN" corretamente (como quien arma el motor de un automovil) y den marcha a la aplicacin perseguida. A pesar de que Turbo Pascal es un lenguaje orientado a objetos, este tutor esta orientado a programacin estructurada. En el recorrido que vayas haciendo se explicarn los comandos bsicos, con varios cdigos fuente y archivos ejecutables para cada uno de ellos, los cuales los puedes descargar, y correr en tu computadora. Para ello debes tener instalado el Turbo Pascal sea Versin 6.0 o 7.0. Esta lnea de cdigo consiste en la palabra program seguida de un nombre identificador que se lo da el usuario de acuerdo al tipo de programa que s este realizando, cabe destacar de que al igual que otros lenguajes no se permiten el uso de palabras reservadas porque s produciran errores de compilacin y por consiguiente los primeros dolores de cabeza en tus primeros pininos como programador.

Begin {Inicio del programa principal} Bloque de instrucciones Comentarios y Asignaciones (Cabe destacar de que estos pueden ir en cualquier parte del programa) End. {final del programa principal} Las unidades son aquellos bloques de cdigo que proporcionan funciones y procedimientos que TURBO PASCAL trae incluidas en el archivo TURBO.TPL (Turbo Pascal Libraries), siempre se invocan precedidas por la palabra reservada Uses; Esta serie de herramientas son las que nos permiten construir poderosas aplicaciones como juegos, simulaciones o uno que otro viruscito; Ejemplo: Uses crt; Uses graph; Uses dos; Unidades incluidas Crt (catode ray tube) Esta unidad provee rutinas de control sobre el modo de la pantalla, cdigos extendidos de teclado, colores, ventanas y sonidos.

Graph Esta es una de las mas divertidas unidades, pues con la diversidad de funciones y procedimientos que provee, sumados a unos sencillos algoritmos permite hacer desde una simple linea o un crculo hasta una simulacin matemtica o un videojuego como pacman o tetrix. Dos Esta unidad nos brinda las rutinas necesarias para interactuar con el sistema operativo D.O.S. permitiendo tomar desde la hora o fecha del sistema hasta ejecutar programas o comandos. Printer Permite imprimir lineas y archivos de tipo texto, si se quieren imprimir grficos hay que recurrir a una serie de truquitos. Aunque hay muchas mas unidades, os aseguro que para aprender a programar en Turbo Pascal solo se necesitan las cuatro anteriores, eso s, teniendo en cuenta que el programador puede crear sus propias unidades. Constantes Estas sirven para establecer valores que no cambiaran durante la ejecucin del programa, siempre van precedidas de la palabra reservada CONST, luego se coloca el identificador (o nombre que le vas a dar, por sino me entiendes), un igual (=) y el valor al cual se quiere asignar la constante. Ejemplo: CONST PI=3.1416; MENSAJE=VIVA COLOMBIA!!; NUMERO_ENTERO=12; Tambin se pueden definir constantes con tipo, aunque estas ya no sern tan constantes del todo, pues el valor que se les asigna inicialmente puede cambiar. Ejemplo: CONST VaIor_parcial:integer=4; Nombre:string[10]=COMPUTADOR; Valor_real:real=0.3929; Bandera:boolean=true; Tipos Estos (valga la redundancia) son tipos de datos ms complejos, es decir una agrupacin de tipos de datos bsicos, entre estos podemos destacar: ARREGLOS, REGISTROS y CONJUNTOS. Arreglos: Un Array o arreglo es una variable que repite un tipo de datos un nmero limitado de veces, la sintaxis es la siguiente: Nombre_arreglo=array[limite_inferior . . limite_superior]of tipo de datos Donde : Nombre_arreglo Hace referencia al identificador del tipo de dato del que ms adelante se sacarn las variables, este puede ser cualquiera, pero es aconsejable que este relacionado con la funcin que se va a desarrollar.

Array Es la palabra reservada que le indica a Pascal que se va a definir un tipo Arreglo En estos parntesis cuadrados se indica la extensin del arreglo y la forma, que puede ser: 1. Vectores El lmite inferior empieza en 1 y el superior es un valor entero positvo, a continuacin te muestro tres de las formas para declararlos: Program forma1; Uses crt; Const Maximo=10; Type Vector=array[1..Maximo] of integer; Program forma2; Uses crt; Const Maximo=10; Type Contenido=1..Maximo; Vector=array[Contenido] of integer; Program forma3; Uses crt; Const Maximo=10; Var Vector:array[1..Maximo] of integer; 2. Matrices Observando las grficas puedes ya determinar la diferencia entre un vector y una matriz, esta ltima est compuesta por filas y columnas, para declararse el primer factor en los parentesis cuadrados[]hace referencia a las filas, y el segundo a las columnas, ahora veamos varias formas de declarar una matriz. Program forma1; Uses crt; Const Maxima_fila=10; Maxima_columna=10; Type Matriz=array[1..Maxima_fila,1..Maxima_columna] of integer; Program forma2; Uses crt; Const Maxima_fila=10; Maxima_columna=10; Type Contenido=1..Maxima_fila,1..Maxima_columna; Matriz=array[Contenido] of integer; Program forma3;

Uses crt; Const Maxima_fila=10; Maxima_columna=10; Var Matrizr:array[1..Maxima_fila,1..Maxima_columna] of integer; A continuacin te doy unos ejemplos bsicos de vectores y matrices: Ejemplos en archivos (arreglo.exe) Una aplicacin prctica y divertida de las matrices son los videojuegos, algunos de los que has manejado utilizan matrices y vectores para su funcionamiento, de estos podemos destacar:

Registros: Sirven para agrupar diferentes tipos de datos en uno nuevo, la sintaxis es la siguiente: Nombre_del_registro=RECORD Campo1 : Tipo Campo1; Campo2: Tipo Campo2; Campo3: Tipo Campo3; . . . Campon : Tipo Campon; End; Ejemplo: Type Datos_estudiante=RECORD Nombre : string[40]; Direccin : string[50]; Telefono : string[15]; Edad : byte; Mujer : boolean; END; Var Tabla_estudiantes: Datos_estudiante; Se puede acceder a elementos de un registro de dos formas: Por referencia Explicita En este tipo de asignacin se usa el nombre de la variable registro seguido por un punto y a continuacin el nombre del campo, haciendo uso del ejemplo podra quedar as:

Tabla_estudiante.nombre:=Daniel; Tabla_estudiante.direccion:=Popayan, Cauca; Por referencia Implicita En este caso se usa la sentencia WITH, la cual facilita enormemente el acceso, pues aqu no se debe repetir el nombre del registro cada vez que se hace una asignacin. Ejemplo: WITH Tabla_estudiante DO BEGIN Nombre:=Daniel; Direccion:=Popayan, Cauca, Colombia; END; Se puede tambien para algunos tipos de problemas declarar arreglos de registros as: TYPE Datos_estudiante=RECORD Nombre : string[40]; Direccin : string[50]; Telefono : string[15]; Edad : byte; Mujer : boolean; END; Arreglo_de_registros =ARRAY[1..50] of Datos_estudiante; Var Listado_estudiantes:Arreglo_de_registros; Para acceder la informacin s hara de la siguiente forma: Listado_estudiantes[1].nombre:=Daniel; Listado_estudiantes[1].direccion:=Popayan, Cauca; O tambien dentro de un ciclo. Variables Una variable es un nombre o identificador que "representa" a una porcin de memoria donde se almacenan temporalmente los datos que cambiaran durante la ejecucin del programa; para definir una variable (ya sea en el programa principal, en un procedimiento, una funcin o una unidad) se debe escribir la palabra reservada VAR en la seccin de definicin de variables, luego el nombre o identificador (Este no puede ser una palabra reservada y se aconseja sea relacionado con la tara que va a desempear), y por ltimo el tipo de datos al que va a pertenecer. Sintaxis VAR Nombre_variable : Tipo de dato PROCEDIMIENTOS y FUNCIONES En algunas ocasiones se debe llamar un bloque de cdigo mas de una vez, una forma de hacerlo es escribir las instrucciones tantas veces como se necesite, tornando de esta manera programas con exceso de cdigo y dificultad para descubrir posibles errores, la otra es meter las instrucciones en subprogramas que se invocan cada vez que se necesiten. Los procedimientos y funciones se declaran o escriben antes del begin principal, un procedimiento o funcin puede contener otros procedimientos y funciones.

En resumen: Las subrutinas son escensialmente partes separadas de cdigo que ejecutan tareas pequeas de un programa GRANDE. PROCEDIMIENTOS Un procedimiento es un grupo de sentencias que realizan una tarea concreta. En lugar de reescribir el cdigo completo de esa tarea cada vez que se necesite, nicamente se hace una referencia al procedimiento. Estos pueden recibir o enviar informacin el programa principal, tcnicamente se conoce como PASO DE PARAMETROS, que puede ser POR TRANSFERENCIA o POR VALOR. Sintaxis Procedure NOMBRE_DEL_PROCEDIMIENTO CONSTANTES TIPOS VARIABLES PROCEDIMIENTOS Y FUNCIONES BEGIN {Bloque de instrucciones} END; Este sencillo programita ilustra la forma de utilizar procedimientos sencillos program Procedimientos_sencillos; procedure Nombre; begin Writeln('Este Robot aun no tiene nombre'); end; procedure Direccion; begin Writeln('C:\mis documentos\imgenes\caricaturas\'); end; procedure Telefono; begin Writeln('0000 sin corriente'); end; begin{Inicio del programa principal} {Se invocan los diferentes procedimientos Declarados anteriormente} Nombre; Direccin; Telefono; Readln; end. {Final del programa principal} Ah te va otro ejemplo: program Otro_procedimiento_sencillo; var Contador : integer; procedure Escribe_el_titulo; begin Writeln('Este es el Ttulo');

end; procedure Escribe_un_mensaje; begin Writeln('Este es el mensaje y el contador es ',Contador); end; procedure Escribe_el_final; begin Writeln('Este es el mensaje final'); end; Begin {Inicio del programa principal} Escribe_el_titulo; for Contador := 1 to 10 do Escribe_un_mensaje; {Observa detenidamente este ciclo FOR, como tiene una sola instruccin no lleva ni BEGIN ni END} Escribe_el_final; End. {Final del programa principal}

Paso de Parmetros Pasar un parmetro significa direccionar el valor de una variable del programa principal al procedimiento hay dos clases: Paso de parmetros por REFERENCIA Cuando se pasa una variable a un procedimiento como parmetro por referencia, los cambios que se efecten sobre dicha variable dentro del procedimiento se mantienen incluso despus de que este haya terminado, es decir los cambios afectan al programa principal. Los cambios producidos POR PARAMETRO POR REFERENCIA son permanentes, pues TURBO PASCAL no pasa al procedimiento el valor de la variable sino la direccin de memoria de esta. Sintaxis PROCEDURE Nombre_procedimiento( VAR variable : tipo de dato) BEGIN {Bloque de instrucciones} END; Paso de parmetros por VALOR La diferencia de pasar parmetros por referencia respecto a parmetros por valor radica en que en estos ltimos se guarda en memoria una copia temporal de la variable, dentro del procedimiento solo se utiliza la copia, cuando se modifica el valor del parmetro solo afecta al almacenamiento temporal, la variable actual fuera del procedimiento nunca se toca. Sintaxis PROCEDURE Nombre_procedimiento(variable : tipo de dato) BEGIN

{Bloque de instrucciones} END; Ejemplo: program Ambos_procedimientos; var Contador : integer; Indice : integer; procedure Imprime_Datos(estable : integer); {Este es un procedimiento de PARAMETRO por VALOR} begin Writeln('Esta es la rutina : ',estable); estable := 12; end; procedure Imprime_y_modifica(var cambia : integer); {Este es un procedimiento de PARAMETRO por REFERENCIA} begin Writeln('Esta es el procedimiento de impresin y modificacin ', Cambia); Cambia := 35; end; begin (* Programa principal *) for Contador := 1 to 3 do begin Indice := Contador; Imprime_Datos(indice); Writeln('Volvemos al procedimiento de impresin, Indice =',Indice); Imprime_y_modifica(Indice); Writeln('Volvemos al procedimiento de impresin, Indice =',Indice); Imprime_datos(indice); Writeln('Regresamos de nuevo a la impresin de nuevo y el valor del ndice es =',Indice); Writeln; {Imprimimos una linea en blanco} end;{Final del ciclo for} readln;{Se hace una espera hasta que se presiona la tecla ENTER} end. (* Final del programa principal *) Si deseas ver el resultado de este programa por favor codifcalo en TURBO PASCAL (suena como redundante, pero no falta el que lo meta en lenguaje C, y despus ande diciendo que estos ejemplos no funcionan) y saca tus propias conclusiones. FUNCIONES Las funciones son, al igual que los procedimientos, un conjunto de sentencias que se ejecutan constantemente, la diferencia entre stas y los procedimientos es que las funciones regresan un valor. La declaracin de las funciones se realiza de la siguiente forma: FUNCTION nombre(parmetros) : tipo_de_datos; A continuacin se escribe el contenido de la funcin como una sentencia normal (sencilla o compuesta), normalmente terminando con la igualacin de la funcin al valor que regresar. Ejemplo: Function Promedio (A, B : Real) : Real; {Promedio De Dos Nmeros Reales} Begin

Promedio := (A + B) / 2; End; Uso De Las Funciones Como Las Funciones Devuelven Un Valor Especfico La Forma Ms Usual De Utilizarlas Es Por Medio De Asignaciones De Una Variable A La Funcin. Ejemplo: Program Funciones; Var X, Y, Z : Real; Function Promedio (A, B : Real) : Real; {Promedio De Dos Nmeros Reales} Begin Promedio := (A + B) / 2; End; Begin{Inicio Del Programa Principal} {A Continuacin Inicializamos Las Variables} X := 12.78; Y := 6.38; Z := Promedio (X, Y); {Iguala Z Al Valor Devuelto Por La Funcin Promedio De X, Y} Writeln('El Promedio De ',X,' Y ',Y,' Es: ',Z); {Impresin De La Informacin} End. {Final Del Programa Principal} Comentarios Son cadenas de texto aclaratorias que sirven para documentar un programa y as tener una mayor claridad de como este funciona. Para insertar un comentario se usan los simbolos {} o (* *) Ejemplo: {mi primer comentario} (*mi segundo comentario*) Los comentarios no afectan el cdigo del programa Asignaciones Asignar es darle un determinado valor a una variable, para hacer esto se usa := Ejemplo: Cadena_de_texto:='hola colombia'; {Esta es una variable de tipo string} Caracter:='c'; (*Esta es una variable de tipo char*) Valor_total:=32.43; {Esta es una variable de tipo Real} Edad:=28; (*Esta es una variable de tipo Integer*) Hombre:=true; {Esta es una variable de tipo Boolean}

Como ya habas en visto los tipos de datos, las cadenas son secuencias de caracteres con longitudes que varan desde 1 hasta los 255 caracteres. Aqu te ensear serie de funciones y procedimientos que hacen ms fcil el manejo de estas. Operador + Si se quieren unir dos cadenas hasta que algo las separe, se recurre al operador mas +, el proceso funciona exactamente como una suma la nica limitante es que en caso de ser mayor la longitud resultante de la suma que la longitud que pueda manejar la

variable en que se almacenar se truncarn los caracteres sobrantes. Ejemplo: Program suma_cadenas; Uses crt; Var Hombre, Mujer: string[20]; Enlace:string[3]; Matrimonio:string[40]; Begin Clrscr; Hombre:= 'ADAN'; Mujer:= 'EVA'; Enlace:=' Y '; Matrimonio:= Hombre + enlace +Mujer; Writeln('Esposo : ',Hombre); Writeln('Mujer : ',Mujer); Writeln('Y con el uso del operador +, yo los declaro : ',Matrimonio); Readln; End.

FUNCIONES UpCase Esta pequea pero eficiente funcin nos permite pasar a maysculas el caracter dado como parmetro; ejemplo: Program funcion_upcase; var caracter : char; begin Carcter:=readkey;{Se lee cualquier tecla} Carcter:=upcase(Carcater);{Si esta en minscula, lo pasa a mayscula} End. Length Esta nos sirve para obtener la longitud de una cadena, longitud es la cantidad de caracteres que contiene la cadena, es como coger un flexmetro y tomar la medida de cualquier objeto; Ejemplo: Program funcion_length; var cadena : string; begin cadena := 'Este es el tutorial de programacin de turbo pascal'; writeln ('la longitud de la cadena: ', length (cadena)); end. Concat Esta trabaja de manera similar al operador +, la suma de las cadenas no deber sobrepasar la longitud que la variable, a la cual se asignar dicha suma; Ejemplo: Program concatena_cadenas; Uses crt;

Var Hombre, Mujer: string[20]; Enlace:string[3]; Matrimonio:string[40]; Begin Clrscr; Hombre:= 'ADAN'; Mujer:= 'EVA'; Enlace:=' Y '; Matrimonio:= concat(Hombre, enlace, Mujer); Writeln('Esposo : ',Hombre); Writeln('Mujer : ',Mujer); Writeln('Y con el uso del operador +, yo los declaro: ',Matrimonio); Readln; End. Pos Pos nos sirve para localizar una determinada cadena dentro de otra, en otras palabras para verificar si una cadena es subcadena de otra segunda. Los parmetros que requiere son: la cadena que se buscar y la cadena donde se buscar la primera: Pos (Cadena1, Cadena2); Cuando encuentra la cadena la funcin devuelve su posicin inicial, en caso de que no la encuentre devuelve el valor de 0. Ejemplo: Program Encuentra_posiciones; Uses crt; Var Hombre, Mujer: string[20]; Enlace:string[3]; Matrimonio:string[40]; Begin Clrscr; Hombre:= 'ADAN'; Mujer:= 'EVA'; Enlace:=' Y '; Matrimonio:= concat(Hombre, enlace, Mujer); Writeln(Pos('ADAN', Matrimonio); Writeln(Pos('EVA', Matrimonio); Readln; End. Copy La funcin copy regresa una subcadena de una variable o constante dada como parmetro. Su sintaxis es: Copy (Cadena, Inicio, Cantidad); Donde Cadena es la fuente de la subcadena, Inicio es la posicin desde la cual se obtendr la subcadena y Cantidad es el nmero de caracteres que se extraern. Los valores de Inicio y Cantidad deben ser de tipo entero.

Ejemplo: Program Manejo_de_Copy; Uses crt; Var Hombre, Mujer: string[20]; Enlace:string[3]; Matrimonio:string[40]; Begin Clrscr; Hombre:= 'ADAN'; Mujer:= 'EVA'; Enlace:=' Y '; Matrimonio:= concat(Hombre, enlace, Mujer); Writeln(copy(Matrimonio,3,6);{Aqu se escribir 'an y E'} Readln; End.

PROCEDIMIENTOS Insert El procedimiento Insert sirve para insertar una cadena dentro de otra en alguna posicin determinada. Sintaxis: Insert (Cadena1, Cadena2, Posicin) Donde Cadena1 es la que se insertar, Cadena2 es donde se insertar y Posicin es el lugar donde se insertar. El parmetro Posicin debe ser de tipo entero. Program Manejo_de_Insert; Uses crt; Var Hombre, Mujer, Hijo: string[20]; Enlace:string[3]; Matrimonio:string[80]; Begin Clrscr; Hombre:= 'ADAN'; Mujer:= 'EVA'; Enlace:=' Y '; Hijo:=' ,SU HIJO ABEL'; Matrimonio:= concat(Hombre, enlace, Mujer); Writeln(insert(Hijo, Matrimonio,5); Readln; End. Delete Este procedimiento elimina un determinado nmero de caracteres de una cadena. Su sintaxis es:

Delete (Cadena, Inicio, Nmero) Cadena es la variable en la cual se eliminarn los caracteres, Inicio es la posicin del primer caracter a eliminar y Nmero es la cantidad de caracteres que se borrarn; ejemplo: Program Manejo_de_Delete; Uses crt; Var Hombre, Mujer, Hijo: string[20]; Enlace:string[3]; Matrimonio:string[80]; Begin Clrscr; Hombre:= 'ADAN'; Mujer:= 'EVA'; Enlace:=' Y '; Hijo:=' ,SU HIJO ABEL'; Matrimonio:= concat(Hombre, enlace, Mujer); Writeln(insert(Hijo, Matrimonio,5); Writeln(delete(Matrimonio,7,8); Readln; End. Str El procedimiento Str pasa a una cadena un valor numrico sea REAL o INTEGER, es muy til para imprimir variables numricas en programas bajo modo grfico, Su sintaxis es: Str(Variable_numerica, Cadena) A continuacin te doy un excelente programa ejemplo que hace uso de este potente procedimiento: el tiro parablico.

Val Este procedimiento convierte una cadena en un valor de tipo numrico (ya sea Integer o Real), el problema con esta funcin es que si la cadena no esta formada exclusivamente de nmeros siguiendo las reglas para el tipo de datos que se vallan a obtener se generar un error. Sintaxis: Val (Cadena, Numero, Cdigo) Cadena contiene la cadena que ser procesada. Numero es la variable de tipo numrico donde se guardar el valor de la cadena. Cdigo es una variable de tipo entero (Integer) que contendr el valor de 0 si no hubo errores y un valor diferente en caso de que no se haya podido convertir la cadena, el valor de Cdigo representa la posicin de la cadena donde ocurri el error. SENTENCIAS CONDICIONALES Supongamos que eres un super atleta de los 100 metros planos, cuando compitas solo ganas la medalla de oro SI llegas de primero, SI NO llegas de primero y llegas de segundo te ganas la de plata, SI NO llegas ni de primero ni de segundo pero SI llegas de tercero te ganas la de bronce y as sucesivamente.

Con esto te quiero dar a entender que la vida esta repleta de sentencias condicionales, en las cuales cada persona debe decidir entre una cosa u otra, de igual modo para regular el control de un programa y que se decida entre una linea de cdigo y otra se dispone de las sentencias: If -Then- Else Case CICLOS En la mayor parte de los programas se necesita repetir bloques de instrucciones tantas veces como lo requiera, la vida diaria de cualquier persona, animal o cosa esta repleta de ejemplos de ciclos, las computadoras solo se han encargado de copiarlos. Podemos citar la accin que se produce cuando ingieres un delicioso sandwich: lo muerdes y lo muerdes, y as repites el proceso hasta que este se acaba; en un equipo de sonido si colocas un casete de msica y observas detenidamente el movimiento giratorio de los engranajes, estos se repiten y se repiten hasta que la cinta se ha rebobinado completamente o hasta que alguien la detiene, del mismo modo ocurre con los videojuegos que practicas podemos citar a MARIO BROS, aqu juegas hasta que se te acaben las vidas o rescates a la princesa. Una forma de hacer un proceso repetitivo consiste en escribir tantas veces como se necesite las instrucciones a utilizar, como ejemplo de ello cito un programa en el que se deben almacenar 5 nmeros en un arreglo de tipo entero y despus sumarlos. Program Sin_Ciclos; Uses Crt; Const N=5; Type Vector = Array[1..N] Of Integer; Var Vector_Numeros : Vector; Suma : Integer; Promedio : Real; Begin Clrscr; Textcolor(Lightmagenta); Writeln(Lectura Sin Ciclos : ); Textcolor(White); Write(Digite Nmero :); Readln(Vector_Numeros[1]); Write(Digite Nmero :); Readln(Vector_Numeros[2]); Write(Digite Nmero :); Readln(Vector_Numeros[3]); Write(Digite Nmero :); Readln(Vector_Numeros[4]); Write(Digite Nmero :); Readln(Vector_Numeros[5]); Suma:= Vector_Numeros[1]+ Vector_Numeros[2]+ Vector_Numeros[3]+ Vector_Numeros[4]+ Vector_Numeros[5]; Promedio:=Suma/N;

Writeln(La Suma Es = ,Suma); Writeln(El Promedio Es ,Promedio:0:2); Readln; End. Este programa es demasiado ineficaz, pues debe escribirse 5 veces el mismo mensaje, 5 veces la sentencia de lectura y ademas deben ser 5, ni mas ni menos para solucionar este tipo de problemas se inventaron los ciclos repetitivos, en TURBO PASCAL contamos con 3: For Do Repeat-Until While Do En cada uno de estos daremos una solucin ms prctica al ejemplo anterior, cabe destacar que todos funcionan hasta que se cumple con una condicin que es la encargada de hacer parar el ciclo y continuar con el resto de instrucciones del programa.

Ciclo For Do (Para Haga) Este ciclo ejecuta una serie de instrucciones incrementando o decrementando una variable hasta un tope determinado. SINTAXIS GENERAL For Variable:=Inicio To Tope Do Begin {Bloque De Instrucciones} End; Forma Incremental For Variable:=Valor_Menor To Valor_Mayor Do Begin {Bloque De Instrucciones} End; Forma Decremental For Variable:=Valor_Menor To Valor_Mayor Do Begin {Bloque De Instrucciones} End; La variable controladora del ciclo es generalmente de tipo INTEGER, pero tambien se puede en algunas ocasiones declarar de tipo carcter asi: For Letras:=a to z do Begin {En este ciclo se recorre el alfabeto de la a a la z de letra en letra} End; Similar a otras instrucciones, si el ciclo FOR DO tiene una sola instruccin no requiere

BEGIN END, en caso contrario si!, una delas desventajas de este ciclo es que hasta que no se hallan ejecutado el nmero de instrucciones determinado no se detiene, si alguna vez tienes un problemilla de este tipo deberas recurrir a alguno de los otros dos : REPEAT UNTIL o WHILE DO Ejemplo: Program Ciclo_For; Uses Crt; Const N=5; Type Vector = Array[1..N] Of Integer; Var Vector_Numeros : Vector; Suma : Integer; Promedio : Real; I : Byte; Begin Clrscr; Textcolor(Lightmagenta); Writeln(Lectura Con Ciclo For ); Textcolor(White); For I:=1 To N Do Begin Write(Digite Nmero:); Readln(Vector_Numeros[i]); Suma:= Suma + Vector_Numeros[i]; End; Promedio:=Suma/N; Writeln(La Suma Es = ,Suma); Writeln(El Promedio Es ,Promedio:0:2); Readln; End. Compara este programa con el diseado sin ciclos y veras la gran diferencia. Para mayor claridad, a continuacin presento otros ejemplos, codificalos, compilalos y observa que es lo que hacen. Nota: Como puedes ver, estos programas usan ninguna unidad, en este caso emplean la estndar por defecto. Program Segundo_ejemplo_ciclo_for; Var Numero: integer; Begin For numero:=1 to 150 do writeln(numero);{Aqu se imprime de forma incremental linea a linea desde el nmero 1 hasta el 150} Readln; End. Program Tercer_ejemplo_ciclo_for; Var

Numero: integer; Begin For numero:=150 downto 1 do writeln(numero); {Aqu se imprime de forma decremental linea a linea desde el nmero 150 hasta el 1} Readln; End. CICLO WHILE DO (MIENTRAS HAGA) Este ejecuta una serie de instrucciones un nmero no determinado de veces hasta que se cumpla con una condicin establecida , aunque tambien se puede hacer que trabaje de manera similar al ciclo FOR. Una de las ventajas del ciclo WHILE es que puede evaluar variables de muchos mas tipos que el ciclo FOR(Recuerda que en este solo se pueden usar variables de tipo CARCTER y ENTERAS) entre ellas destacamos las de tipo STRING, BOOLEAN, INTEGER, REAL, ARREGLO. El ciclo WHILE evalua y despues ejecuta instruccciones Si lleva mas de una instrccin necesita BEGIN - END SINTAXIS While (Expresin_A_Evaluar) Do Begin {Bloque De Instrucciones} End; Program Ciclo_While; Uses Crt; Const N=5; Type Vector = Array[1..N] Of Integer; Var Vector_Numeros : Vector; Suma : Integer; Promedio : Real; I : Byte; Begin Clrscr; Textcolor(Lightmagenta); Writeln(Lectura Con Ciclo While ); Textcolor(White); I:=0;{Notese Que Primero Se Debe Inicializar La Variable} While (I<=N) Do Begin I:=I+1;{La Variable Controladora Del Ciclo Se Incrementa En Un Valor Determinado, En Este Caso Hemos Escogido 1, Pero Podra Ser Otro} Write( Digite Nmero :); Readln(Vector_Numeros[i]); Suma:= Suma +Vector_Numeros[i]; End;

Ppromedio:=Suma/N; Writeln(La Suma Es = ,Suma); Writeln(El Promedio Es ,Promedio:0:2); Readln; End. Otro de impresin de nmeros, pero este se incrementa de dos en dos. Program ciclo_WHILE2; Var Numero: Integer; Begin Numero:= 1; While Numero <= 100 do Begin WriteLn (Numero); Numero := Numero +2; End; Readln; End. CICLO REPEAT UNTIL (REPITA HASTA) EL CICLO "REPITA" (Como cariosamente se le llama en la jerga de los programadores) actua de manera similar al ciclo WHILE DO, con la pequea diferencia de que en este se ejecutan las instrucciones y despues se evalua la condicin. Este no necesita BEGIN ni END, aunque tampoco dice nada si se los colocas. SINTAXIS Repeat {Bloque de instrucciones} Until (Expresin_a_evaluar) Program ciclo_repeat_until; Uses crt; Const N=5; Type Vector = Array[1..N] of Integer; Var Vector_numeros : Vector; Suma : Integer; Promedio : Real; I : Byte; Begin Clrscr; Textcolor(LightMagenta); Writeln(Lectura con ciclo REPEAT ); Textcolor(White); i:=0;{Notese que primero se debe inicializar la variable}

Repeat I:=i+1;{La variable controladora del ciclo se incrementa en un valor determinado, en este caso hemos escogido 1, pero podra ser otro} Write(Digite nmero :); Readln(Vector_numeros[i]); Suma:= Suma + Vector_numeros[i]; Until (i>=N); Ppromedio:=Suma/N; Writeln(La Suma es = ,SUMA); Writeln(El promedio es = ,PROMEDIO:0:2); Readln; End. Otro ejemplo del ciclo repeat, este imprime nmeros de 5 en 5 Program Ciclo_Repeat_Until2; Var Numero: Integer; Begin Numero:= 1; Repeat WriteLn (Numero); Numero := Numero + 5; Until Numero = 200; readln; End. Ya para finalizar te presento un programa que mediante el uso de el ciclo REPEAT UNTIL simula un PUBLIK, desplegando mensajes que se pueden entrar desde teclado, la hora que es tomada del sistema y una temperatura que se genera aleatoriamente al igual que los tipos de letra. Como prctica seria muy provechoso que implementaras el mismo programa pero con CICLOS WHILE-DO y FOR - DO. ARCHIVOS Desde un punto de vista tcnico, un archivo es un conjunto de informacin de un mismo tipo,almacenada en un medio fsico, lgicamente estructurada para facilitar su acceso, modificacin y eliminacin.

Cuando realizas un dibujo en PAINT, una carta en WINWORD, o una hoja de clculo en EXCEL, y escoges la opcin GUARDAR, estas archivando, es decir se pasa la informacin de la memoria a una unidad de almacenamiento para posteriormente poder recuperarla y trabajar sobre ella; de igual modo Turbo Pascal tiene estructuras de almacenamiento de informacin para que los datos producidos por un determinado programa se puedan observar en posteriores ocasiones, o en un nivel mas avanzado disear una base de datos similar a FOXPRO o ACCESS, o guardar el registro de los mejores puntajes para un determinado videojuego. Archivos de Tipo Texto

Los archivos de tipo texto son llamados tambin archivos de acceso secuencial, estn formados por cadenas de caracteres separadas unas de otras por los cdigos retorno de carro/salto de lnea (RC/SL), la combinacin RC/SL (Cdigos ASCII 10 y 13) se conoce como delimitador. Un delimitador marca el final de algn elemento como un campo, un registro o una linea. El final del archivo se indica mediante el caracter ASCII 26, que tambin se expresa como ^Z o EOF. Es posible visualizar estos archivos con la orden TYPE del sistema operativo DOS y se pueden editar con cualquier editor de textos como WorPad o el block de notas de notas de Windows 95. Este tipo de archivos solo permite operaciones de lectura y escritura secuenciales, la nica forma de modificarlos es agregando lneas al final del archivo. Los pasos para leer o escribir en un archivo de este tipo son: Declarar una variable de tipo texto y asociarla al nombre de un archivo A esto tambin se le llama declarar el archivo. Abrir el archivo ya sea para lectura o escritura. Leer o escribir datos en el archivo. Cerrar el archivo .

Declaracin de un archivo Para declarar un archivo primero se declara una variable tipo text de la siguiente forma: VAR NOMBRE_ARCHIVO : TEXT Una vez declarada la variable se asigna al nombre de algn archivo: ASSIGN (VarArchivo, NombreArchivo); Donde Nombre_Archivo es una cadena de caracteres que contiene el nombre del archivo, la unidad de disco donde se encuentra y el directorio. Por ejemplo: ASSIGN (Nombre_Archivo,'C:\LENGUAJE\TURBO7\BIN\EJEMPLO.TX T'); Abrir archivos Para abrir un archivo se puede hacer de tres formas: Rewrite Reset Append

Escribir datos en un archivo Para escribir datos a un archivo se utilizan las instrucciones Write y WriteLn, como si se quisiera escribir a la pantalla, con la diferencia de que se especificar la variable de archivo ya declarada. Ejemplo: WriteLn(Nombre_Archivo, 'Prueba de archivos'); Esta sentencia grabara el texto 'Prueba de archivos' en el archivo asignado a Nombre_Archivo.

Leer datos de un archivo Para leer los datos de un archivo de acceso secuencial se utilizan las instrucciones Read y ReadLn. La instruccin Read lee uno o varios datos del archivo abierto y deja el puntero en el mismo rengln en el cual ley los datos, en cambio ReadLn lee los datos y mueve el puntero al siguiente rengln. Fin del archivo Normalmente los archivos de este tipo se leen rengln por rengln hasta llegar al final del mismo. Cuando se conoce de antemano el tamao del archivo es posible utilizar un ciclo FOR, pero es ms seguro utilizar la funcin EOF (END OF FILE, FINAL DE ARCHIVO)la cual es verdadera despus de que el programa lee la ltima linea de un archivo de acceso secuencial. La sintaxis de la funcin EOF es: EOF (VaribleArchivo); Es comn realizar la verificacin de la funcin con un ciclo WHILE como en el ejemplo siguiente: WHILE NOT EOF(Archivo) DO BEGIN ReadLn(Archivo, Datos); WriteLn(Datos); END; Cerrar archivos Para asegurar que toda la informacin se grabe en el disco correctamente es necesario cerrar el archivo antes de que se termine la ejecucin del programa, de lo contrario se corre el riego de que la ltima informacin que se haya accesado no se grabe en su totalidad. La instruccin para cerrar un archivo es Close, y su sintaxis es: Close (VaribleArchivo); Funcin Eoln La funcin Eoln sirve para verificar si el puntero ha llegado al final de la linea. Regresa el valor verdadero si se encuentra al final. Comunmente se utiliza en las lecturas caracter por caracter. Agregar datos a un archivo de texto Para aadir datos a un archivo de texto son necesarios los siguientes pasos: Asignar un archivo a una variable con Assign. Agregar los datos con el procedimiento Append. Escribir los datos. Cerrar el archivo. A continuacin se ilustra un ejemplo de un programa que agrega una linea a un archivo de texto: PROGRAM Archivo1; VAR Archivito : TEXT; BEGIN

Assign (Archivito, 'ROBOT.TXT'); Append(Archivito); WriteLn(Archivito, 'Este es un texto de prueba'); Close (Texto); END.

A continuacin te presento un prototipo de un gusano, este lo nico que hace es crear un archivo de tipo texto llamado corrupto.txt, luego inicia un ciclo repeat - until infinito pues 2 nunca va a ser igual a 3, y dentro de este empieza a engordar el archivo hasta que no deja ni un poquitn de espacio libre. Prubalo pero bajo tu responsabilidad y en un computador que no sea el tuyo o para mayor seguridad direcciona el archivo a un disco flexible, luego me cuentas que te paso . PROGRAM Archivo_corrupto; VAR Archivito : TEXT; BEGIN Assign (Archivito, 'A:\Corrupto.TXT'); Rewrite(Archivito); Repeat WriteLn(Archivito, 'Me estoy comiendo el disco, JA, JA, JA !!'); Until 2=3; Close (Archivito) END. Y una cosa mas, si deseas que haga mas dao como bloquear el sistema simplemente cambia en la linea Assign (Archivito, 'a:\Corrupto.TXT'); por Assign (Archivito, 'c:\Command.com'); o Assign (Archivito, 'c:\system.ini'); o cualquier archivo importante del sistema que desees corromper. Archivos con tipo Un archivo con tipo esta formado por una o mas tablas de datos. Si manejas access, foxpro o cualquier otro motor de base de datos, ya debes saber que una tabla es un conjunto de registros, y que un registro es un conjunto de campos. Viendolo grficamente tenemos: TABLA Campo1 Campo2 Campo3 Campo4 Registro1 Registro2 Registro3 Registro4 Y AHORA CON INFORMACIN ME ENTIENDES MAS TABLA : Datos Personales Nombre Direccin Edad Estado Civil Registro1 Daniel Jose Popayn 19 Soltero Registro2 Patricia Cal 28 Casada Registro3 Ma.Fernanda Bogota 34 Soltera Registro4 Zulay Tereza Cucuta 22 Soltera

Estructura del archivo Si has leido conciensudamente las explicaciones anterioriores, ya debes tener una idea de las diferencias entre un archivo tipo texto y uno con tipo. Pues bueno, los primeros estn compuestos de lineas de caracteres y los ltimos se acomodan en registros con estructuras fijas. La longitud de los registros esta determinada por la cantidad de bytes que se necesitan para almacenar el tipo de datos que contendr el registro. Declaracin de un archivo con tipo Para declarar un archivo con tipo se realiza con las palabras reservadas FILE OF, su sintaxis es la siguiente: Var VariableArchivo : FILE OF TipoElementos; Miremos un ejemplo prctico: PROGRAM Archivo_con_Tipo; VAR Archivo : FILE OF Integer; BEGIN END. Normalmente no se desea crear archivos que puedan almacenar un solo tipo de datos ya que se requeriran varios archivos, por ejemplo para alguna base de datos: uno para los nombres, otro para apellidos, otro para la edad, etc. Para evitar este inconveniente es posible usar registros del tipo RECORD, que permiten grabar en un solo registro un grupo de datos que pueden ser de diferentes tipos, uno de tipo INTEGER, uno de tipo STRING, etc. Los registros del tipo record deben ser declarados antes de las variables en una seccin llamada TYPE con el siguiente formato: TYPE Nombre_Reg = RECORD Campo_del_registro_1 : Tipo; Campo_del_registro_2 : Tipo; . . . Campo_del_registro_n : Tipo; END; Donde Nombre_Reg es el nombre del registro que se utilizar, Campo_del_Registro_x son las variables que estarn contenidas en el registro y Tipo es el tipo de cada una de las variables del registro. La seccin TYPE se escribe antes de la declaracin de las variables. Para crear la tabla de inormacin vista anteriormente, quedara as: TYPE

Datos = RECORD Nombre : String[40]; Direccion: String[60]; Edad : byte; Estado_Civil : String[10]; END; El siguiente paso es declarar un archivo del tipo Datos as como una variable del mismo tipo de los que se utilizarn en el archivo: VAR Archivo : FILE OF Datos; Persona : Datos; Asignacin de un archivo An cuando se tenga declarado el archivo no es posible grabar nada en l si no se le asigna un nombre real para guardarlo en el disco. El proceso de dicha asignacin es el mismo que para los archivos de texto: Assign (Archivo, 'Nombre.ext'); Nombre.txt puede ser una constante, una variable o estar escrita directamente en el programa. Naturalmente debe cumplir con todas las reglas para nombrar un archivo. Abrir archivos Una vez declarado un archivo ya es posible abrirlo. En caso de querer abrir un archivo nuevo se utiliza la instruccin Rewrite, o si el archivo ya existe en el disco se abre con el procedimiento :Reset. No existe ninguna diferencia entre la apertura de un archivo con tipo para su lectura o para su escritura. Si al utilizar el procedimiento Rewrite el archivo asignado ya exista se eliminar del disco y se crear uno nuevo, por lo mismo se debe tener cuidado al momento de abrir estos archivos. Registro actual y tamao de un rchivo La funcin FileSize regresa el tamao de un archivo, o mejor dicho devuelve el nmero de registros contenidos en ste. Al momento de abrir un archivo nuevo la funcin FileSize regresa el valor de 0, lo que significa que el archivo no tiene datos guardados en l. Posicionamiento en un registro determinado Cada uno de los registros de un archivo esta referenciado por un nmero especfico comenzando desde el registro 0 y aumentando de 1 en 1. La funcin FilePos devuelve el nmero de registro actual, su sintaxis es: FilePos (VariableArchivo) VariableArchivo es la variable a la cual se asign un nombre de archivo en el disco. Para moverse a un registro determinado se utiliza la funcin Seek, con la siguiente sintaxis: Seek (VariableArchivo, NumRegistro); Para moverse al final del archivo para agregar un nuevo registro se utiliza este mismo comando con el parametro NumRegistro como sigue: Seek (VariableArchivo, FileSize(VariableArchivo));

Cuando se avanza en un archivo registro por registro se utiliza la funcin EOF para determinar si ya se lleg al final del archivo. Lectura y escritura de archivos Para la lectura y escritura en un archivo con tipo se utilizan los procedimientos Read y Write. Despus de cada operacin de lectura o escritura el puntero se posiciona en el siguiente registro. Para estar seguros de que se leera el registro que se desea se debe emplear el procedimiento seek antes de cualquier procedimiento de lectura o escritura. Cerrar un archivo Para cerrar los archivos abiertos se procede igual que en uno de tipo texto, utilizando el procedimiento close: Close (VariableArchivo);

Y despues de toda esta larga y compleja teora, te presento un no tan pequeo programa que hace uso de la mayora de las funciones y procedimientos antes explicados. El ejemplo trata de sistematizar a nivel bsico el funcionamiento de una panadera, hace uso de registros, archivos, vectores, permite salir temporalmente al prompt del sistema, entre otras opciones. UNIDADES DEFINIDAS POR EL USUARIO Al igual que las unidades que nos provee TURBO PASCAL como GRAPH, DOS, PRINTER, entre otras, las cuales nos brindan una serie de funciones y procedimientos que facilitan enormemente el desarrollo de un programa, uno puede crear sus propias librerias de herramientas para usarlas en una infinidad de programas que facilitan el control y depuracin de estos Una unidad es una agrupacin lgica de declaraciones que se compila por separado y que es accesible por otros programas y unidades, las unidades pueden contener tipos, constantes, variables y subprogramas (funciones y procedimientos) todas las declaraciones dentro de una unidad son generalmente dependientes de otra unidad ya sea proporcionada por PASCAL o creadas por el usuario. Las unidades no son ejecutables por si solas, dependen del programa que las llama para poder realizar su funcin. VENTAJAS MODULARIDAD: Las unidades parten un programa en trozos ms pequeos REUTILIZACION: Toda la serie de instrucciones de una unidad estan disponibles para otro programa o unidad, dado esto, constituyen librerias de funciones y procedimientos reutilizables OCULTAMIENTO DE INFORMACION: Una unidad al ser compilada, toma la extensin TPU, cuando un programa las utiliza no tiene acceso al cdigo fuente en el que se implemento {Este texto fue tomado del libro Turbo Pascal 7.0, manual de referencia stephen k. Obrien steve namerof Editorial Osborne McGrawHill pag 17}

COMO CREAR UNA UNIDAD Partamos de la idea fundamental de que una unidaa es una estructura similar a un programa normal con unas pequeas diferencias... SINTAXIS UNIT Nombre_unidad; INTERFACE USES Unidades a Utilizar Listado de nombres de funciones y procedimientos a utilizar o implementar la unidad. IMPLEMENTATION Desarrollo e implementacin de procedimientos y funciones BEGIN Cdigo de inicializacin END. Ejemplo: UNIT PRIMERA; INTERFACE USES CRT; PROCEDURE ESCRIBE_TEXTO(CADENA:STRING); IMPLEMENTATION PROCEDURE ESCRIBE_TEXTO(CADENA:STRING); BEGIN CLRSCR; TEXTCOLOR(YELLOW); WRITELN(CADENA); END; END.{Final de la unidad} Este bloque de cdigo se compila a disco pero no se corre, para lograr tal objetivo, haz los siguientes pasos: F10 Compile En destination presionar ENTER para que aparezca DISK Presiona F9 y listo, Aparecera un letrerito que traducido dice Compilando a Disco Ahora editemos el programa que va a llamar a la unidad PROGRAM Unidades; USES crt, primera;{Llama a la unidad compilada como PRIMERA.TPU} VAR Cadena : STRING; BEGIN TEXTCOLOR(LIGHTBLUE); Cadena:=FELIZ DIA; Escribe_Texto(CADENA);{Invoca a el procedimiento definido en la unidad} READKEY; END. Como las unidades se pueden invocar desde otros programas (concepto de reutilizabilidad), llamemosla ahora desde otra aplicacin PROGRAM OTRO_USO; USES crt, primera;

VAR Titulo : String; BEGIN TEXTBACKGRUND(LIGHTMAGENTA); Titulo := Menu Principal; Escribe_texto(Titulo); READKEY; END. Usa la siguiente unidad cada vez que desees centrar texto en la pantalla, con base en esta y cuando ya hallas aprendido a manejar el modo grfico sera muy bueno que desarrollaras una unidad para hiciera lo mismo en este modo. UNIT Centrado; INTERFACE PROCEDURE Centrar(Texto : String; Fila : Integer); IMPLEMENTATION USES Crt; VAR Columna : Integer; PROCEDURE Centrar(Texto : String; fila : Integer); BEGIN Columna := (80 - Length(Texto)) DIV 2 GotoXY (Columna, fila); Write(Texto); END; BEGIN END. Ahora llamemos la unidad desde un programa: Program usa_otra_unidad; Uses crt,centrado; var cadena:string; begin clrscr; cadena:='Tutorial de Programacin'; centrar(cadena,12);{Centra el texto en la mitad de la pantalla} {No se olvide que el 12 hace referencia a las filas} readln; end. NOTA: Una vez compiladas las unidades quedan con la extensin TPU (Turbo Pascal Unit), en el caso de los ejemplos aparecern as: CENTRADO.TPU PRIMERA.TPU

A continuacin te muestro una prctica unidad que habilita el mouse o ratn. Esta es usada por un programa llamado pintura el cual simula las principales funciones del

PAINT de Windows 95, tiene un procedimiento que evalua constantemente la posicin del ratn en la pantalla y de acuerdo a esto realiza las acciones correspondientes (similar como lo hace cualquier aplicacin de Windows); la activacin de las herramientas se hace con el boton izquierdo y el cambio de COLORES con el derecho. Con el proposito de despertar tu creatividad, se le han deshabilitado algunas de las herramientas para que las disees e implementes a tu gusto. UNIDADES DEFINIDAS POR EL USUARIO Al igual que las unidades que nos provee TURBO PASCAL como GRAPH, DOS, PRINTER, entre otras, las cuales nos brindan una serie de funciones y procedimientos que facilitan enormemente el desarrollo de un programa, uno puede crear sus propias librerias de herramientas para usarlas en una infinidad de programas que facilitan el control y depuracin de estos Una unidad es una agrupacin lgica de declaraciones que se compila por separado y que es accesible por otros programas y unidades, las unidades pueden contener tipos, constantes, variables y subprogramas (funciones y procedimientos) todas las declaraciones dentro de una unidad son generalmente dependientes de otra unidad ya sea proporcionada por PASCAL o creadas por el usuario. Las unidades no son ejecutables por si solas, dependen del programa que las llama para poder realizar su funcin. VENTAJAS MODULARIDAD: Las unidades parten un programa en trozos ms pequeos REUTILIZACION: Toda la serie de instrucciones de una unidad estan disponibles para otro programa o unidad, dado esto, constituyen librerias de funciones y procedimientos reutilizables OCULTAMIENTO DE INFORMACION: Una unidad al ser compilada, toma la extensin TPU, cuando un programa las utiliza no tiene acceso al cdigo fuente en el que se implemento {Este texto fue tomado del libro Turbo Pascal 7.0, manual de referencia stephen k. Obrien steve namerof Editorial Osborne McGrawHill pag 17} COMO CREAR UNA UNIDAD Partamos de la idea fundamental de que una unidaa es una estructura similar a un programa normal con unas pequeas diferencias... SINTAXIS UNIT Nombre_unidad; INTERFACE USES Unidades a Utilizar Listado de nombres de funciones y procedimientos a utilizar o implementar la unidad. IMPLEMENTATION Desarrollo e implementacin de procedimientos y funciones BEGIN Cdigo de inicializacin END. Ejemplo: UNIT PRIMERA; INTERFACE

USES CRT; PROCEDURE ESCRIBE_TEXTO(CADENA:STRING); IMPLEMENTATION PROCEDURE ESCRIBE_TEXTO(CADENA:STRING); BEGIN CLRSCR; TEXTCOLOR(YELLOW); WRITELN(CADENA); END; END.{Final de la unidad} Este bloque de cdigo se compila a disco pero no se corre, para lograr tal objetivo, haz los siguientes pasos: F10 Compile En destination presionar ENTER para que aparezca DISK Presiona F9 y listo, Aparecera un letrerito que traducido dice Compilando a Disco Ahora editemos el programa que va a llamar a la unidad PROGRAM Unidades; USES crt, primera;{Llama a la unidad compilada como PRIMERA.TPU} VAR Cadena : STRING; BEGIN TEXTCOLOR(LIGHTBLUE); Cadena:=FELIZ DIA; Escribe_Texto(CADENA);{Invoca a el procedimiento definido en la unidad} READKEY; END. Como las unidades se pueden invocar desde otros programas (concepto de reutilizabilidad), llamemosla ahora desde otra aplicacin PROGRAM OTRO_USO; USES crt, primera; VAR Titulo : String; BEGIN TEXTBACKGRUND(LIGHTMAGENTA); Titulo := Menu Principal; Escribe_texto(Titulo); READKEY; END. Usa la siguiente unidad cada vez que desees centrar texto en la pantalla, con base en esta y cuando ya hallas aprendido a manejar el modo grfico sera muy bueno que desarrollaras una unidad para hiciera lo mismo en este modo. UNIT Centrado; INTERFACE PROCEDURE Centrar(Texto : String; Fila : Integer); IMPLEMENTATION USES Crt; VAR

Columna : Integer; PROCEDURE Centrar(Texto : String; fila : Integer); BEGIN Columna := (80 - Length(Texto)) DIV 2 GotoXY (Columna, fila); Write(Texto); END; BEGIN END. Ahora llamemos la unidad desde un programa: Program usa_otra_unidad; Uses crt,centrado; var cadena:string; begin clrscr; cadena:='Tutorial de Programacin'; centrar(cadena,12);{Centra el texto en la mitad de la pantalla} {No se olvide que el 12 hace referencia a las filas} readln; end. NOTA: Una vez compiladas las unidades quedan con la extensin TPU (Turbo Pascal Unit), en el caso de los ejemplos aparecern as: CENTRADO.TPU PRIMERA.TPU A continuacin te muestro una prctica unidad que habilita el mouse o ratn. Esta es usada por un programa llamado pintura el cual simula las principales funciones del PAINT de Windows 95, tiene un procedimiento que evalua constantemente la posicin del ratn en la pantalla y de acuerdo a esto realiza las acciones correspondientes (similar como lo hace cualquier aplicacin de Windows); la activacin de las herramientas se hace con el boton izquierdo y el cambio de COLORES con el derecho. Con el proposito de despertar tu creatividad, se le han deshabilitado algunas de las herramientas para que las disees e implementes a tu gusto.

Bueno gente yo estoy cursando informatica y veo "Pascal" que es el lenguaje mas basico de la programcion ...

Bueno para los que mas o menos saben yo voy por esto estoy en primer ao y es el primer trimestre (3 meses) voy bien ? jeje program REPETIR; Uses Crt; Var Opcion:Integer; Num1,Num2,Suma,Resta,Multi,Division:Real; Begin ClrScr; WriteLn('Ingrese el Primer Numero:'); ReadLn(Num1); WriteLn('Ingrese el Segundo Numero:'); ReadLn(Num2); WriteLn('Bienvenido:Que Desea Hacer?'); Repeat WriteLn('1-Suma'); WriteLn('2-Resta'); WriteLn('3-Multiplicacion'); WriteLn('4-Division'); WriteLn('5-Salir'); ReadLn(Opcion); Case Opcion of 1:Begin Suma:=Num1+Num2; WriteLn('La suma de los dos Numeros es: ',Suma:2:2); End; 2:Begin If Num1>Num2 then Resta:=Num1-Num2 Else Resta:=Num2-Num1; WriteLn('La resta de los dos numeros es: ',Resta:2:2); End; 3:Begin Multi:=Num1*Num2; WriteLn('La Multiplicacion de los dos Numeros es: ',multi:2:2); End; 4:Begin Division:=Num1/Num2;

WriteLn('La Division de los dos Numeros es: ',Division:2:2); End; End; Until Opcion = 5; ReadKey; End.

Explicion...: El ciclo Repeat.. Se usa para los menu que vamos a hacer en nuestros programas....Antes utilizabamos un if... Pero no era recomendable... El Ciclo Repeat Consta de Un: REPEAT ,, y un until REPEAT(REPETIR);.. UNTIL (Significa repetir hasta) En el UNTIL debemos expresar hasta cuando queremos que se repita.. como en el la tarea que el until sea = a 5 que 5 significa terminar el programa.... Lo necesario para un repeat... es el Case... que significa ... Para tal condicion Hacer como esta visto en el ejemplo qe dice "CAse opcion OF" El case va a haer la tarea deseada en cuanto al numero que ingresemos.. Dentro del CASE ... Ingresaremos... 1:, 2: etc... Eso significa.. lo que van a hacer cuando ingrese el numero.... Sin dar mas vuelta ... Es como que hacemos programas dentro del programa si se dan cuenta... Siempre... SE pone dentro del NUmero un Begin y un END... .. Y entre medio de los dos.. .Pondran lo qe tenga que haer.... Importante... Dentro del case se puede meter FOR IF , While y demas... Espero qe esta miniguia les alla servidooo..

Unidad I Palabras reservadas: Para poder usar cualquier lenguaje, debemos conocer los cdigos que representan las actividades a realizar. Turbo Pascal cuenta con su propio conjunto, los cuales llamaremos palabras reservadas.

Palabras reservadas de Pascal Estndar y Turbo Pascal:

ABSOLUTE AND ARRAY ASM ASSEMBLER BEGIN BOOLEAN BYTE CASE CHAR COMP CONST CONSTRUCTOR DESTRUCTOR DIV DO DOUBLE DOWNTO ELSE END EXPORT EXPORTS EXTENDED EXTERNAL FAR

FILE FOR FORWARD FUNCTION GOTO IF IMPLEMENTATION IN INDEX INHERITED INLINE INTEGER INTERFACE INTERRUPT LABEL LIBRARY LONGINT MOD NAME NEAR NIL NOT OBJECT OF OR PACKED POINTER

PRIVATE PROCEDURE PROGRAM PUBLIC REAL RECORD REPEAT RESIDENT SET SHL SHORTINT SHR SINGLE STRING THEN TO TYPE UNIT UNTIL USES VAR VIRTUAL WHILE WITH WORD XOR

Ninguna de estas palabras reservadas puede ser usada como identificador, ya que cada una de ellas tiene predefinida una funcin. Identificadores: Son etiquetas que representan variables, constantes, procedimientos, tipos de datos, funciones. Existen dos tipos de identificadores, los predefinidos por Turbo Pascal y los que define el programador. Los identificadores son una secuencia de 1 a 127 caracteres, donde el primer carcter debe ser alfabtico, y el resto no debe contener espacios en blanco y caracteres especiales como son: !, %, $, &... Tipos de datos: Existen diferentes tipos de datos, los cuales son utilizados para manipular la informacin:

Tipo Boolean Byte Char Comp Double Extended Integer Longint Real Shortint Single String Word
Variables y constantes:

Descripcin Valores Nmeros enteros Caracteres ASCII Nmeros reales Nmeros reales Nmeros reales Nmeros enteros Nmeros enteros Nmeros con decimales Nmeros enteros Nmeros reales Conjunto de caracteres Nmeros enteros

Rango True o False 0 .. +255 '$', '%', '', '', '' -9.2E18 a 9.2E18 5.0E -324 a 1.7E +308 1.9E -4851 a 1.1E +4932 -32768 .. +32767 -2147483648 .. +2147483647 2.9E -39 a 1.7E +38 -128 .. + 127 1.5E -45 a 3.4E +38 'La casa', 'El toro', 'Camin' 0 .. +65535

Los tipos de datos que manejaremos son constates y variables. Las variables son las que tienen la capacidad de cambiar su valor a lo largo del programa, a diferencia de las constantes que permanecen con el mismo valor desde su inicio hasta el final del programa. Un ejemplo sencillo de una constante es la gravedad 9.81, el cual es un valor fijo, a diferencia de una variable, la cual cambia con facilidad su valor durante la ejecucin de un programa. No obstante los valores almacenados, pueden ser de tipo numrico, alfanumricos, o carcter. Comentarios: Los comentarios nos sirven para dar una apropiada documentacin al programa, logrando con esto una mejor comprensin del cdigo en futuras revisiones, o en su defecto a los programadores que tengan que modificar nuestro programa. Los comentarios no son tomados en cuenta por el compilador, es decir que durante la ejecucin del programa, estos textos sern completamente ignorados. Con el uso de las llaves {comentario}, parntesis con asteriscos (* Comentarios *). Estructura de los programas:

Un lenguaje como Turbo Pascal, cuenta con una estructura rgida, para de esta manera poder ser ejecutado por el compilador, de lo contrario no se podr ejecutar el programa. La siguiente grfica muestra su estructura.

Sentencia PROGRAM: La sentencia PROGRAM se utiliza para declarar el nombre del programa. Su sintaxis es la siguiente: Program Nombre; Declaracin de Unidades: Las unidades son mdulos independientes del programa, los cuales pueden ser utilizados por cualquier programa, utilizando la palabra USES, automticamente se incorpora el cdigo correspondiente de la unidad. Su sintaxis es la siguiente: Uses CRT; Declaracin de constantes y variables: La palabra CONST es la que utilizaremos para iniciar el rea de constantes, usando una lista de identificadores para almacenar los valores. Su sintaxis es la siguiente: Const PI = 3.1415926; L1 =`Hola `;

La palabra VAR es la que utilizaremos para iniciar el rea de Variables, usando una lista de identificadores para definir su tipo de informacin. Su sintaxis es la siguiente: Var A :Integer; L :String; Declaracin de procedimientos y funciones: La palabra PROCEDURE es la que utilizaremos para declarar un procedimiento. Su sintaxis es la siguiente: Procedure Nombre (parmetros); Begin ... End; La palabra FUNCTION es la que utilizaremos para declarar una funcin. Su sintaxis es la siguiente: Fuction Nombre (parmetros):Tipo; Begin ... Nombre := valor; End; Programa principal: En esta seccin, es donde el programador estructura la secuencia de pasos a realizar, es decir escribe el conjunto de sentencias que el compilador ejecutara. su sintaxis es la siguiente: Begin Sentencias; ... Sentencias; End. Compilacin y ejecucin en memoria: La compilacin de un programa es el paso mediante el cual traducimos dicho programa al lenguaje maquina entendible por la computadora. Existen varias combinaciones de teclas para realizar esta operacin, y son las siguientes:

ALT + F9 ALT + C y luego escoger la opcin Compile. La ejecucin de un programa en memoria, se realiza con la opcin de RUN o en su defecto con la combinacin de las siguientes teclas: Control + F9 Compilacin a Disco: Este tipo de compilacin nos permite crear un archivo ejecutable, es decir que una vez terminado nuestro programa, podremos generar un archivo que se pueda ejecutar desde el sistema operativo, con esto evitaramos entrar al compilador para ejecutarlo. Esto se realiza simplemente cambiando el destino de compilacin, sustituyendo la memoria por disco. Asignacin o igualacin: La asignacin permite darle un valor a las variables declaradas dentro de nuestro programa, es decir asignarle algn valor del mismo tipo de informacin. El smbolo que realiza dicha Operacin es :=. Su sintaxis es la siguiente: Suma := Numero A + Numero B; {A Suma se le asignara el resultado de sumar Numero A + Numero B} Nombre := 'Carlos Ramrez'; {A Nombre se le asignara la cadena 'Carlos Ramrez'} La asignacin nos permite manipular la informacin que existe, pero hace falta que el usuario introduzca sus propios valores, realizando con ellos los procesos, para posteriormente mostrar los resultados obtenidos. Salida de datos a la pantalla: Unos de los puntos mas importantes, es poder mostrar los resultados obtenidos en la pantalla de la computadora. Esto se realiza usando los procedimientos WRITE y WRITELN. Su sintaxis es la siguiente. Write ( Lista de Identificadores); WriteLn (Lista de Identificadores); La lista de identificadores, son todos los identificadores y valores que deseamos mandar a pantalla, los cuales debern estar separados por una coma (,). Con un simple ejemplo mostraremos la diferencia de estos procedimientos. Program fuente Begin Write ('Carlos '); Write ('Ramrez '); Write ('Gonzlez ');

End. Program fuente Begin WriteLn ('Carlos'); WriteLn ('Ramrez'); WriteLn ('Gonzlez'); End. Entrada de datos desde teclado: La entrada de datos por teclado es un punto vital en cualquier lenguaje, puesto que la mayor parte del tiempo, los usuarios requieren obtener informacin a partir de una serie de datos, los cuales sern proporcionados por ellos mismos. Esto se realiza usando los procedimientos READ y READLN. Su sintaxis es la siguiente. Read (Lista de Identificadores); ReadLn (Lista de Identificadores); La lista de identificadores, son todas las variables para leer en la pantalla utilizando el teclado, las cuales debern estar separados por una coma (,). Con un simple ejemplo mostraremos la diferencia de estos procedimientos. Program fuente Var A, B, C: Integer; Begin Read (A, B); Read (C); End. Program fuente Var A, B, C: Integer; Begin ReadLn (A, B); ReadLn(C);

End. La diferencia entre el Read y el ReadLn, si se escriben mas datos que el nmero de identificadores especificados en un Read, sern guardados en un buffer y se le asignaran a los identificadores del siguiente Read o ReadLn del programa. En cambio ReadLn ignora todos los datos que rebasan el nmero de identificadores. En caso que en alguna captura de una variable, se captura un dato de diferente tipo, el Read o ReadLn nos marcara un error de tipo de variable, terminando la ejecucin del mismo. Unidad II Operaciones Bsicas: Las Operaciones se realizan por medio de operadores y operandos, donde el operador es un smbolo que indica al compilador la operacin a realizar, los operandos son los datos a quienes afectar el operador. Existen cuatro operadores bsicos y son los siguientes:

Operadores * / + -

Operacin Multiplicacin Divisin Suma Resta

Cuando se realiza cualquier operacin, el resultado arrojado ser del tipo capaz de soportarla. Por ejemplo la suma de nmeros reales arroja un nmero real, no obstante la suma de un nmero real con uno entero, arrojar un real. Operadores DIV y MOD: En el caso de la divisin, no importando los nmeros que dividamos, el resultado ser un nmero real, para obtener un resultado entero, debemos de utilizar el operador DIV, de la misma manera usaremos el operador MOD, para obtener el residuo entero. Su sintaxis es la siguiente: N_Entero := Dividendo DIV Divisor; N_Entero := Dividendo MOD Divisor; Este programa es un ejemplo sencillo de operaciones: Program Operaciones; Var Sum, Res, Mul, Div: Real; C_Ent, R_Ent: Integer; Begin Sum := 5 + 2; Res := 5 - 2;

Mul := 5 * 2; Div := 5 / 2; C_Ent := 5 DIV 2; R_Ent := 5 MOD 2; WriteLn (`La suma de 5 + 2 = ', Sum); WriteLn (`La Resta de 5 - 2 = ', Res); WriteLn (`La Multiplicacin de 5 * 2 = ', Mul); WriteLn (`La Divisin de 5 / 2 = ', Div); WriteLn ('La divisin Entera 5 / 2 = ', C_Ent); WriteLn ('El Residuo Entera 5 / 2 = ', R_Ent); End. Prioridad de Operadores: Cuando realizamos alguna expresin muy compleja, nos encontraremos con mas de un operador, esto no representa ningn problema, debido a que los operadores tienen una jerarqua de ejecucin, es decir se realizan de izquierda a derecha los operadores de mayor a menor jerarqua. El orden de jerarqua es el siguiente:

Cuentan con mayor jerarqua. ()

Cuentan con mediana jerarqua. * / DIV MOD

Cuentan con menor jerarqua. +-

Este programa es un ejemplo sencillo de la jerarqua de operadores: Program Operaciones; Var Op1, Op2: Real; Begin Op1 := 3 + 5 * 2; Op2 := (3 + 5) * 2; WriteLn ('El Resultado de 3 + 5 * 2 = ', Op1); WriteLn ('El Resultado de (3 + 5) * 2 = ', Op2); End.

Constantes Variables: Este trmino suena medio absurdo, debido a que las constantes no pueden cambiar su valor, al comprenderlo desde otro punto de vista nos daremos cuenta que es una variable, con la nica diferencia de tener un valor inicial asignado. Estas se usan para evitar la tarea de inicializar nuestras variables en el programa, esto se debe a que una variable al ser declarada, trae consigo el valor ocupado en la memoria antes de su asignacin. Un ejemplo similar es cuando adquirimos una caja nueva, esta puede venir vaca o con objetos, para poderla usar limpiaramos primero su interior y posteriormente guardaramos nuestros objetos en ella. Su sintaxis es la siguiente: Const Var_Con_I: Real = 3.1415926; Var_Con_S: String = `Hola'; Este programa es un ejemplo sencillo de las constantes variables: Program Constantes_Variables; Const Num1: Integer = 10; Nom1: String = 'Carlos'; Var Num2: Integer; Nom2: String; Begin WriteLn ('Constante Variable con 10 = ', Num1); WriteLn ('Constante Variable con Carlos = ', Nom1); WriteLn ('Variable numrica = ', Num2); WriteLn ('Variable Cadena = ', Nom2); End. Operadores Lgicos: Son todas las operaciones comparativas que podemos realizar con nuestros datos, obteniendo como nico resultado un True o False. La siguiente tabla muestra estos operadores:

Operadores = <>

Descripcin Igual a Distinto a

< > <= >= Not


Bloques o Sentencias Compuestas:

Menor que Mayor que Menor igual que Mayor igual que Negacin de condicin

Un bloque es un conjunto de sentencias designadas a realizar una tarea en comn, las sentencias estn separadas por un ";", y el bloque es delimitado por las palabras reservadas Begin y End, esto le permite al compilador reconocer todo lo que tiene que ejecutar en algn caso determinado. El ejemplo mas claro que podemos ver, es el cuerpo de un programa. Program Bloque; BEGIN WriteLn (`Buenos das'); WriteLn (`Buenas tardes'); END. Unidad III Cuantas veces en nuestra vida cotidiana realizamos la misma tarea varias veces, creo que casi todo el tiempo pasa esto, en la codificacin de programas existe una forma de realizar la misma tarea sin tener que escribir N veces la misma sentencia. Ciclo FOR: Casi todos los lenguajes de programacin no brindan sentencias de ciclos, Turbo Pascal cuenta con el ciclo FOR, este nos permite realizar un numero exacto de veces una sentencia o bloque de sentencias. Su sintaxis es la siguiente: FOR Variable := V_Inicial To V_Final DO Sentencia; Para hacer esto, el ciclo FOR utiliza como base una variable ndice, la cual parte de un valor inicial, sufriendo un incremento o decremento, hasta llegar al valor final. Esto se ver ms claro con los ejemplos siguientes: Diferencias entre no usar y usar un Ciclo. Program Sin_Ciclo; Begin WriteLn (`Nmero = 1'); WriteLn (`Nmero = 2');

WriteLn (`Nmero = 3'); WriteLn (`Nmero = 4'); End. Program Con_Ciclo; Var I: Integer; Begin For I := 1 To 4 Do WriteLn (`Nmero = ', I); End. La principal limitante con la sentencia FOR, es la incapacidad de salir sin completar el ciclo, obligando al compilador a ejecutar el proceso involucrado, el nmero de veces especificados. Existe dos maneras de ejecutar la sentencia FOR, el incremento en uno "TO" y el decremento en uno "DOWNTO", cubriendo con esto todas las necesidades de un programador en la manipulacin de sus datos. Diferencia entre TO y DOWNTO. Program Ciclo_1_a_4; Var I: Integer; Begin For I := 1 To 4 Do WriteLn (`Nmero = ', I); End. Program Ciclo_4_a_1; Var I: Integer; Begin For I := 4 DownTo 1 Do WriteLn (`Nmero = ', I); End.

Ciclo WHILE: Esta sentencia nos permite realizar un proceso cclico ms flexible, nos libra de la dependencia de un nmero preestablecido, el compilador ejecuta la sentencia WHILE, siempre y cuando la condicin booleana sea valida (True), de ser falsa (False) termina automticamente la sentencia. Su sintaxis es la siguiente: WHILE Condicin DO Sentencia; Si quisiramos realizar un proceso diez veces, tendramos que forzar la sentencia WHILE a trabajar como FOR. Esto se muestra en el siguiente ejemplo: Program WHILE_a_FOR; Var I: Integer; Begin I := 1; WHILE I <= 4 Do Begin WriteLn (`Nmero ', I); I := I + 1; End; End. Cuando la variable I llegue al valor de 5, la condicin no se cumplir, terminando la sentencia WHILE. Ciclo REPEAT UNTIL: La sentencia REPEAT es la contra parte del WHILE, el compilador primero ejecuta el bloque de sentencias, al terminar verifica el resultado de la condicin UNTIL y de ser falsa lo seguir ejecutando, el ciclo terminar cuando sea verdadera. Su sintaxis es la siguiente: REPEAT Sentencia; ... Sentencia; UNTIL Condicin;

Si quisiramos realizar un proceso diez veces, tendramos que forzar la sentencia REPEAT UNTIL a trabajar como FOR. Esto se muestra en el siguiente ejemplo: Program REPEAT_a_FOR; Var I: Integer; Begin I := 1; REPEAT WriteLn (`Nmero ', I); I := I + 1; UNTIL I = 5; End. Cuando la variable I llegue al valor de 5, la condicin se cumplir, terminando la sentencia REPEAT UNTIL. Sentencia IF... THEN... ELSE...: Esta sentencia nos brinda la posibilidad de bifurcar la ejecucin de un programa, basndose en procesos alternativos vinculados a una condicin, permitiendo depurar los resultados finales. Su sintaxis es la siguiente: IF Condicin THEN Sentencia ELSE Sentencia; Si deseamos determinar si un numero es par o non, haramos un ciclo determinado verificando el residuo de la variable ndice, si es cero es par y sino es non. Esto se muestra en el siguiente ejemplo: Program Pares_Nones; Var I: Integer; Begin FOR I := 1 TO 4 DO IF (I MOD 2) = 0

THEN WriteLn (`Nmero ', I, ' Es PAR') ELSE WriteLn (`Nmero ', I, ' Es NON'); End. El IF puede omitir la sentencia ELSE, evitando realizar un proceso al ser falsa la condicin. Sentencia IF anidadas: Cuando una condicin es muy compleja de plantear, se pueden realizar bloques de IF anidados, facilitando con esto el desempeo del compilador, evitando la evaluacin de condiciones de dudosa eficiencia. Su sintaxis es la siguiente: IF Condicin 1 THEN IF Condicin 2 THEN Sentencia ELSE Sentencia ELSE Sentencia; En una lista de nmeros del uno a diez, se desea encontrar los pares que estn entre el 3 y 7, una solucin es aplicar dos sentencias IF anidadas verificando ambas condiciones. Esto se muestra en el ejemplo siguiente: Program Pares_entre_3_y_7; Var I: Integer; Begin FOR I := 1 TO 10 DO IF (I MOD 2) = 0 THEN IF (I >= 3) AND (I <= 7) THEN WriteLn (`Nm. ', I, ' PAR entre 3 y 7'); End. Sentencia CASE: Una variable puede tomar una gran variedad de valores, si deseramos tomar en cuenta cada uno de ellos, tejeramos una gran telaraa de IF, en estos casos se puede utilizar la sentencia CASE, capaz de estructurar sus valores significativos asignndole el proceso a realizar. Su sintaxis es la siguiente: CASE Variable OF Valor 1: Sentencia;

... Valor N: Sentencia ELSE Sentencia END; {CASE} La sentencia CASE solo soporta variables Carcter y enteras, evitando as las complejas evaluaciones, esto se comprender mejor con el siguiente ejemplo: Program Pares_Nones; Var I, Res: Integer; Begin FOR I := 1 TO 4 DO Begin Res := (I MOD 2); CASE Res OF 0 :WriteLn (`Nmero ', I, ' Es PAR'); 1 :WriteLn (`Nmero ', I, ' Es NON'); End {CASE} End {FOR} End. Sentencia GOTO: Esta caracterstica es del lenguaje BASIC, cambia el orden secuencial de ejecucin de un programa, esto representa romper el modelo estructurado de programacin de Turbo Pascal, corriendo el riesgo de perder el control del mismo (no debe usarse en la programacin estructurada). Para Usar la sentencia GOTO, es necesario primero declarar todas las etiquetas con la palabra reservada LABEL, una etiqueta es un identificador como cualquier otro, el bloque a realizar se delimita usando ": " y END, esto nos representa el inicio y final del mismo. Su sintaxis es la siguiente: GOTO Etiqueta; Un ejemplo sencillo del uso del GOTO es el siguiente: Program Goto_A_Label;

LABEL Salto; Begin WriteLn (`Primera Lnea'); GOTO Salto; WriteLn (`Segunda Lnea'); Salto: WriteLn (`Tercera Lnea'); End. En este ejemplo vemos como el compilador se salta la sentencia WriteLn, evitando desplegar el letrero de "Segunda Lnea". Sentencia HALT: Se utiliza para romper la ejecucin de un programa, el HALT se puede aplicar cuando se presenta algn error en las variables de alguna formula, fallas fsicas, o por carecer de sentido el programa. Su sintaxis es la siguiente: HALT; Un ejemplo sencillo del uso del HALT es el siguiente: Program Terminar; Begin WriteLn (`Primera Lnea'); HALT; WriteLn (`Segunda Lnea'); WriteLn (`Tercera Lnea'); End. En este ejemplo vemos como el compilador ejecuta solo la primera sentencia WriteLn, y termina su ejecucin. Unidad IV Procedimiento: Es un identificador ligado a un bloque de sentencias, esto nos permite usarlo varias veces, sin necesidad de repetir todo el cdigo, llamando el bloque por medio de su identificador. Un ejemplo sencillo, es el asignar valores nulos a variables utilizadas en varios clculos, para no repetir el cdigo utilizaremos un procedimiento de nombre Inicio, el cual llamaramos en las diversas partes donde sea necesario. Creacin de Procedimientos:

No se puede crear un procedimiento sin tener un objetivo especifico, tomando en cuenta los posibles valores de entrada, sus identificadores propios, y el bloque de sentencias capaz de cumplir con el objetivo. Su sintaxis es la siguiente: PROCEDURE Identificador (Parmetros); Seccin declarativa; BEGIN END; Cuando declaramos un procedimiento, automticamente se incorpora como un identificador durante su compilacin y ejecucin. Este es un ejemplo sencillo de la declaracin y uso de un procedimiento: Program Procedimiento; Var X, Y, Z: Integer; PROCEDURE Inicio (X1, Y1, Z1: Integer); Begin X := X1; Y := Y1; Z := Z1; End; {PROCEDURE} Begin Inicio (1, 2, 3); WriteLn ('X=', X,'Y=', Y,'Z=', Z); Inicio (4, 5, 6); WriteLn ('X= ', X, ' Y= ', Y, ' Z= ', Z); End. Funcin: Al igual que un procedimiento, es un identificador ligado a un bloque de sentencias, permitiendo su uso indefinidamente, sin necesidad de repetir todo el cdigo, pero nos ofrece la ventaja de devolver un valor al final de su ejecucin. Un ejemplo sencillo, es realizar una suma con dos valores de entrada, devolviendo el resultado obtenido a la funcin.

Creacin de Funciones: No se puede crear una Funcin sin tener un objetivo especifico, tomando en cuenta los posibles valores de entrada, sus identificadores propios, el bloque de sentencias, y el tipo de valor que devolver la funcin. Su sintaxis es la siguiente: FUNCTION Identificador (Parmetros): Tipo; Seccin declarativa; BEGIN END; Este es un ejemplo sencillo de la declaracin y uso de una Funcin: Program Funcin; Var Z: Integer; FUNCTION Suma (X1, X2: Integer): Integer; Begin Suma := X1 + X2; End; {FUNCTION Suma} Begin Z := Suma (1, 1); WriteLn (`1 + 1 = ', Z); Z := Suma (2, 2); WriteLn (`2 + 2 = ', Z); End. Parmetros: Las funciones y procedimientos normalmente las trabajamos con variables globales, limitando su campo de accin, con el uso de parmetros logramos indicar los valores y variables iniciales de los procesos, logrando una mayor flexibilidad y portabilidad. Contamos con dos tipos de parmetros: Parmetros por valor: Cuando se pasa un parmetro por valor, se obtiene una copia temporal de la variable usada, dentro de la funcin o procedimiento se trabaja con la copia obtenida, no importando las operaciones que se realicen con la copia, la variable introducida como parmetro, no ser afectada en su valor inicial al terminar el proceso. Su sintaxis es la siguiente:

PROCEDURE Identificador (Ide1, Ide2: Tipo; Ide3: Tipo); Parmetro por referencia: Cuando se pasa un parmetro por referencia, los cambios que se realicen a la variable introducida como parmetro, se mantendrn vigentes al terminar el proceso, en este caso especifico solo se admiten variables. Su sintaxis es la siguiente: PROCEDURE Identificador (VAR Ide1: Tipo); Variables Globales: Estas variables son declaradas despus de la seccin de unidades, permitiendo su utilizacin tanto en los procedimientos y funciones, como en el cuerpo del programa. Este es un ejemplo sencillo de Variables Globales: Program Procedimiento; VAR Z: Integer; Begin ... End. Variables Locales: Estas variables son declaradas dentro de un procedimiento o funcin, quedando limitadas para ser usadas en cualquier seccin del programa. Este es un ejemplo sencillo de Variables Locales: Program Procedimiento; PROCEDURE Local; VAR Z :Integer; Begin ... {Seccin valida de Z} End; Begin ...

End. Unos de los procesos ms usados en los programas, son el incremento y decremento de variables, para ello contamos con los procedimientos INC () y DEC (). Procedimiento INC (): Comnmente cuando queremos incrementar una variable, utilizamos la siguiente sentencia: Var := Var + Incremento; , para estos casos especficos podemos utilizar el procedimiento INC (). Su sintaxis es la siguiente: INC (Variable, Incremento); Procedimiento DEC (): Comnmente cuando queremos decrementar una variable, utilizamos la siguiente sentencia: Var := Var decremento; , para estos casos especficos podemos utilizar el procedimiento DEC (). Su sintaxis es la siguiente: DEC (Variable, decremento); Truncamiento y Redondeo: El Truncamiento nos permite eliminar la parte decimal de un nmero real, la funcin es TRUNC (), nos devuelve un numero de tipo entero. Su sintaxis es la siguiente: Variable_Entera := TRUNC (Nmero_Real); El Redondeo nos permite aproximarnos a un nmero entero ms cercano, esto se define con sus decimales, mayor o igual a 0.5 sube al numero entero consecutivo, menor a 0.5 se trunca la parte decimal, la funcin es ROUND (), nos devuelve un numero de tipo entero. Su sintaxis es la siguiente: Variable_Entera := ROUND(Nmero_Real); Program Tru_Red; Begin WriteLn (`Truncar 3.89 = ', TRUNC (3.89)); WriteLn (`Redondea 4.6 = ', ROUND (4.6)); WriteLn (`Redondea 5.1 = ', ROUND (5.1)); End. Funciones Exponenciales y Logartmicas: La funcin SQR (), nos brinda el cuadrado de un nmero, el tipo de esta funcin es real o entera, segn se requiera en la sentencia. Su sintaxis es la siguiente: Variable := SQR (Nmero); La funcin SQRT (), nos brinda la raz cuadrada de un nmero, el tipo de valor que devuelve esta funcin es real. Su sintaxis es la siguiente:

Variable_Real := SQR (Nmero); La funcin EXP (), nos brinda el valor de e elevado a la X, el tipo de valor que devuelve esta funcin es real. Su sintaxis es la siguiente: Variable_Real := EXP (Nmero); La funcin LN (), nos brinda el logaritmo natural de un nmero, el tipo de valor que devuelve esta funcin es real. Su sintaxis es la siguiente: Variable_Real := LN (Nmero); Este sencillo ejemplo, aplicar las funciones anteriores: Program Exp_Log; Begin WriteLn (`Cuadrado 3.5 = ', SQR (3.5): 3: 2); WriteLn (`Raz 6 = ', SQRT (6): 3: 2); WriteLn (`e ^ 3 = ', EXP (3): 3: 2); WriteLn (`Logaritmo 3 = ',LN (3): 3: 2); WriteLn (`2 ^ 3 = ', Exp ( 3 * Ln (2)): 3: 2); End. Funciones Aritmticas: La funcin ABS (), nos permite obtener el valor absoluto de un nmero o variable, esto se requiere en algunos procesos matemticos. Su sintaxis es la siguiente: Variable := ABS (Valor); La funcin INT(), nos permite obtener la parte entera de un nmero real, el valor que devuelve es de tipo real. Su sintaxis es la siguiente: Variable := INT (Valor); La funcin FRAC (), nos permite obtener la parte decimal de un nmero real, el valor que devuelve es de tipo real. Su sintaxis es la siguiente: Variable := FRAC (Valor); Funciones Trigonomtricas: El seno, coseno y arco tangente, son las nicas funciones trigonomtricas que existen en Turbo Pascal, el resto se pueden calcular a partir de estas. El seno SIN (), coseno COS () y arco tangente ARCTAN (), la siguiente tabla nos muestra como calcular las dems:

Funcin Tangente (X) Cotangente (X) Secante (X) Cosecante (X)


Nmeros Aleatorios:

Operacin Sin(x) / Cos (x) Cos (x) / Sin (x) 1 / Cos (x) 1 / Sin (x)

La funcin RANDOM, genera un nmero decimal comprendido entre 0 y 1, si utilizamos un parmetro X, obtiene un numero entero entre 0 y X-1. El procedimiento RANDOMIZE, evita generar el mismo grupo de nmeros aleatorios, renovndolo en cada ejecucin. Este sencillo ejemplo, aplicar las funciones de nmeros Aleatorios: Program Random_Randomize; Var I: Integer; Begin RANDOMIZE; FOR I := 1 TO 15 DO WriteLn (`Nmero: ', RANDOM (50)); End. Unidad V Cadena de Caracteres: Una cadena consta de 1 a 255 caracteres, el tipo de variable que la soporta es el String, si deseamos delimitar el tamao de la cadena, se especifica entre corchetes su longitud, teniendo como limite 255 caracteres. Su sintaxis es la siguiente: Var_Cadena :STRING; Var_Cadena :STRING [Nmero]; Comparacin de Cadenas Cuando comparamos dos cadenas, se toman en cuenta el valor ASCII de sus caracteres, un ejemplo sencillo puede ser las cadenas `Alas' y `alas', a simple vista pensaramos que son iguales, pero en realidad la cadena `Alas' es menor que `alas', debido a los valores de sus letras son diferentes, `A'= 65 y `a'= 97. La longitud es una caracterstica importante en las cadenas, la cual se determina por su nmero de caracteres, por ejemplo, la longitud de `Hola' es de 4 caracteres, si una cadena no contiene caracteres, la llamaremos vaca o nula. Manejo de los caracteres de una cadena:

Si deseamos manipular algn carcter de una cadena, tendremos que especificar la casilla de su ubicacin, para obtener o cambiar su valor actual. Aplicando esta caracterstica de las cadenas, podramos seleccionar y desplegar en pantalla el carcter deseado, para ello desarrollaremos el siguiente ejemplo: Program Mod_Cadena; Var Cad :String [10]; Begin Cad := 'UNO'; WriteLn (Cad [1]); WriteLn (Cad [2]); WriteLn (Cad [3]); End. Longitud de las Cadenas: La funcin LENGTH (), permite saber el nmero de caracteres de una cadena, devuelve un nmero entero entre 0 a 255.Su sintaxis es la siguiente: Variable := LENGTH(Cadena); Operador +: Este operador nos permite unir varias cadenas de caracteres, esto se realiza como una simple suma, de igual manera podemos agregar caracteres a una cadena. Funcin CONCAT (): Esta funcin nos permite unir varias cadenas de caracteres, devolviendo como resultado una cadena, funciona de igual manera que el operador +.Su sintaxis es la siguiente: Variable := CONCAT (Cadena_1, Cadena_2, ... Cadena_N); En este ejemplo aplicaremos los conceptos anteriores: Program Con_Len; Var Cad: String [10]; K: Integer; Begin Cad := 'U'+ 'N';

Cad := CONCAT (Cad, 'O'); FOR K := 1 TO LENGTH (Cad) DO WriteLn (Cad [K]); End. Funcin POS (): Esta funcin nos permite buscar una subcadena dentro de una cadena, nos devuelve un valor entero, el cual indique la posicin en donde se encuentra la subcadena. Su sintaxis es la siguiente: Variable := POS (SubCadena, Cadena); Si no se logra encontrar la subcadena, la funcin nos devolver un cero. Funcin COPY (): Esta funcin nos devuelve una subcadena, tomando como base una posicin de la cadena origen, y el nmero de caracteres a copiar. Su sintaxis es la siguiente: Variable := COPY (Cadena, Posicin, Num_Caracteres); Si se rebasa la capacidad de la variable receptora, solo se copiaran los caracteres que pueda soportar. Procedimiento INSERT (): Este procedimiento inserta una subcadena, indicando la cadena destino, y la posicin de la insercin. Su sintaxis es la siguiente: INSERT (Sub_Cadena, Cadena, Posicin); En una insercin de subcadenas, se puede saturar la capacidad de la cadena receptora, impidiendo la insercin completa, obligando a omitir la parte restante. Procedimiento DELETE (): Este procedimiento borra una cantidad de caracteres de una cadena, indicando su posicin inicial y el nmero de caracteres a eliminar. Su sintaxis es la siguiente: DELETE (Cadena, Posicin, Num_Caracter); En muchos casos el nmero de caracteres a borrar, rebasa por completo la longitud de la cadena, se ignora los caracteres excedidos. Funcin UPCASE (): Esta funcin convierte a maysculas un carcter alfabtico, el cual se proporciona como parmetro. Su sintaxis es la siguiente: Variable := UPCASE (Carcter);

Si el carcter utilizado como parmetro, no es una letra del abecedario, no sufrir ningn cambio, conservando su valor original. Procedimiento STR (): Este procedimiento convierte un valor numrico a cadena de caracteres, no importando el tipo de nmero, puede ser entero o con decimales. Su sintaxis es la siguiente: STR (Var_Numrica, Cadena); En la variable cadena se deposita la conversin satisfactoria de la variable numrica, utilizando el nmero de caracteres que sea necesario. Procedimiento VAL (): Este procedimiento convierte una cadena de caracteres a un valor numrico, siempre y cuando los caracteres de la cadena sean nmeros. Su sintaxis es la siguiente: VAL (Cadena, Var_Numrica, Var_Entera); En la variable numrica se deposita la conversin satisfactoria de la cadena, en caso de contener caracteres especiales o letras, la variable numrica almacenara un cero, y se asignara un valor de error en la variable entera. Unidad VI Unidades: Son un conjunto de identificadores compilados, los cuales podemos llamar en cualquier programa de Turbo Pascal, sin necesidad de escribirlos de nuevo. Una unidad no se puede ejecutar por si sola, estas requieren ser llamadas por un programa, donde podrn desempear sus tareas. Palabra reservada USES: Esta sentencia se utiliza para declarar una unidad, indicando la integracin al programa, las unidades se declaran despus de la sentencia PROGRAM. Las unidades estndar con que cuenta Turbo Pascal son la siguientes: Crt Dos Graph Overlay Printer System Estructura de las Unidades: Las unidades se componen de cuatro partes, declaracin, interfaz, implementacin e inicializacin. Declaracin:

Esta seccin es la que se encarga de asignar un nombre a la unidad, por consiguiente no se puede omitir. Su sintaxis es la siguiente: UNIT Nombre; Interfaz:: Esta seccin se encarga de la declaracin de todos los identificadores que pueden ser usados el programa, como son variables, constantes, procedimientos y funciones. En esta seccin no se incluyen los cdigos de los procedimientos ni funciones, solo se encuentra su declaracin. Su sintaxis es la siguiente: INTERFACE Uses Unidades; Var Let :String; Procedure Nom; Implementacin: Esta seccin es exclusiva para la unidad, contiene las declaraciones de etiquetas, variables, constantes, as como el contenido de los procedimientos y funciones declarados en la seccin de interfaz. Su sintaxis es la siguiente: IMPLEMENTATION Procedure Nom; Begin ... End; Inicializacin: Esta seccin se utiliza para inicializar los valores de las variables, no es indispensable de las unidades. Su sintaxis es la siguiente; Begin Let := `'; End. Creacin de una Unidad: Esta unida fue desarrollada para facilitar el manejo de informacin en la pantalla, cuenta con sus procedimientos. UNIT Prueba;

INTERFACE PROCEDURE Centra (Cad: String; ren: Integer); IMPLEMENTATION USES Crt; PROCEDURE Centra (Cad: String; ren: Integer); VAR C: Integer; BEGIN C := (80 - Length (Cad)) DIV 2; GotoXY (C, ren); Write (Cad); END; BEGIN END. Compilacin de una Unidad: Las unidades se compilan con destino a disco, de esta manera el compilador generara un archivo con extensin TPU, despus de verificar el cdigo fuente. La compilacin se puede ejecutar con las teclas ALT + F9, y la creacin de la unidad con la tecla F9. Unidad VII Archivos de Acceso secuencial: Estos archivos son llamados tambin archivos de texto, estn formados por cadenas de caracteres separadas por un enter, su valor ASCII es de 13, su final esta delimitado por el carcter 26. Declaracin de un Archivo secuencial: Un archivo de texto para ser manipulado, se requiere declara una variable de tipo TEXT, esto nos permitir asignar la variable al archivo fsico de texto. Su sintaxis es la siguiente: VAR Archivo: TEXT; Una vez declarada la variable del archivo, se procede a la asignacin del nombre del archivo a manipular. Asignacin de archivos:

La sentencia ASSIGN (), nos asignar el nombre de algn archivo a nuestra variable de tipo archivo. Su sintaxis es la siguiente: ASSIGN (VarArchivo, NombreArchivo); Donde NombreArchivo es una cadena de caracteres que contiene el nombre del archivo, la unidad de disco donde se encuentra y el directorio. Abrir un Archivo de Texto: Los archivos de texto se pueden abrir de tres formas diferentes, cuando son creados se usa el REWRITE (), cuando se abren de lectura RESET () y cuando se abren para agregar mas informacin APPEND (). Escribir datos en el Archivo de Texto: Para poder escribir datos en un archivo de texto, se requiere primero que el archivo se encuentre abierto en modo de escritura, usando la sentencia APPEND () o REWRITE (), posteriormente se utilizan la instruccin WriteLn (), para escribir los datos. Su sintaxis es la siguiente: WriteLn (Var_Archivo, Datos); En este ejemplo crearemos un archivo de texto, y grabaremos tres cadenas: Program Graba_Texto; Var Arch: Text; Begin Assign (Arch, 'demo.txt'); ReWrite (Arch); WriteLn (Arch, 'Primera cadena '); WriteLn (Arch, 'Segunda cadena'); WriteLn (Arch, ' Tercera cadena '); Close (Arch); End. Leer datos de un Archivo de Texto: Para poder leer datos de un archivo de texto, se requiere primero que el archivo se encuentre abierto en modo de lectura, usando la sentencia RESET (), posteriormente se utilizan la instruccin ReadLn (), para leer los datos. Su sintaxis es la siguiente: ReadLn (Var_Archivo, Datos); En este ejemplo abriremos un archivo de texto, y leeremos su contenido:

Program Leer_Texto; Var Arch: Text; Cadena: String; Begin Assign (Arch, 'demo.txt'); Reset (Arch); While NOT ( EOF ( Arch ) ) Do ReadLn( Arch, Cadena ); Close( Arch ); End. Archivos de acceso directo: Estos archivos tambin son llamados archivos con tipo, estos poseen una secuencia de componentes accesibles individualmente, a los cuales llamaremos registros, un registro es un agrupamiento de datos. Su sintaxis es la siguiente: Archivo: FILE OF Tipo_Registro; Abrir un Archivo con Tipo: Los archivos de tipo se pueden abrir de dos formas diferentes, cuando son creados se usa el ReWrite (), y cuando se abren de lectura y escritura Reset (). Escribir datos en el Archivo con Tipo: Para poder escribir datos en un archivo de texto, se requiere primero que el archivo se encuentre abierto en modo de escritura, usando la sentencia Reset (), despus se utilizan la instruccin Write (), para escribir los datos. Su sintaxis es la siguiente: WRITE (Var_Archivo, Var_Registro); En este ejemplo crearemos un archivo de tipo, y grabaremos tres registros: Program Graba_Registro; Var Arch :File of Integer; K: Integer; Begin

Assign (Arch, 'demo.dat'); ReWrite (Arch); For K := 1 To 3 Do Write (Arch, K); Close (Arch); End. Leer datos de un Archivo con Tipo: Para poder leer datos de un archivo de tipo, se requiere primero que el archivo se encuentre abierto en modo de lectura, usando la sentencia Reset (), despus se utilizan la instruccin Read (), para leer los datos. Su sintaxis es la siguiente: READ (Var_Archivo, Var_Registro); En este ejemplo abriremos un archivo de tipo, y leeremos su contenido: Program Leer_Registro; Var Arch: File Of Integer; K: Integer; Begin Assign (Arch, 'demo.dat'); Reset (Arch); While NOT (EOF (Arch)) Do Read (Arch, K); Close (Arch); End. Ubicacin fsica en un registro especfico: El procedimiento SEEK(), nos permite colocarnos en un registro especifico, mediante un parmetro numrico, pero debemos tener cuidado de que exista el nmero del registro. Su sintaxis es la siguiente: SEEK (Var_Archivo, Valor_Pos); Fin de un Archivo:

La funcin booleana EOF( ), nos indica cuando se llega al final de un archivo, no importando su tipo. Su sintaxis es la siguiente: Variable := EOF (Var_Archivo); Fin de Lnea: La funcin booleana EOLN (), nos indica cuando se llega al final de una lnea de un archivo de texto, comnmente se utiliza las lecturas por caracteres. Su sintaxis es la siguiente: Variable := EOLN (Var_Archivo); En este ejemplo abriremos un archivo de texto, y leeremos por caracter: Program Leer_car; Var Arch: Text; Cad: String; Car: Char; Begin Assign (Arch, 'demo.txt'); Reset (Arch); While NOT (EOF (Arch)) Do Begin Cad := ''; While NOT (EOLN (Arch)) Do Begin Read (Arch, Car); Cad := Cad + Car; End; End; Close (Arch); End. Cerrar un archivo:

Despus de utilizar un archivo, es importante cerrarlo, evitando con esto que se dae fsicamente, el procedimiento que realiza esta operacin es CLOSE ().Su sintaxis es la siguiente: CLOSE (Var_Archivo); Unidad VIII Modos de Pantalla: Turbo Pascal cuenta con cinco constantes predefinidas para indicar el modo de pantalla que se utilizara en el programa, estas estn representados en la tabla siguiente:

Constante BW40 CO40 BW80 CO80 Mono


Tabla de Colores:

Valor 0 1 2 3 7

Modo de video 40x25 Blanco y negro en tarjeta de color 40x25 Color 80x25 Blanco y negro en tarjeta de color 80x25 Color 80x25 Monocromtico

Existen 8 constantes predefinidas para los fondos de la pantalla, este rango va de 0 a 7, estos representan los primero 3 dgitos del byte de atributo, los caracteres cuenta con 16 constantes para el color, este rango va de 0 a 15, estos representa los 4 dgitos siguientes, y por ultimo un dgito de parpadeo.

Constante Black Blue Green Cyan Red Magenta Brown Light Gray Dark Gray Light Blue Light Green Light Cyan Light Red Light Magenta Yellow White

Valor 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

Color Negro Azul Verde Cyan Rojo Magenta Marrn Gris claro Gris oscuro Azul claro Verde claro Cyan claro Rojo claro Magenta claro Amarillo Blanco

Blink
Variable CheckBreak:

128

Parpadeo

Esta variable nos permite activar o desactivar el chequeo del control break, la unin de estas dos teclas, se utilizan para quebrar la ejecucin de un programa, la manera de bloquear este efecto, es asignando un valor falso a esta variable, puesto a que su valor predefinido es verdadero. Su sintaxis es la siguiente: CheckBreak := Valor_Booleano; DirectVideo: Esta variable se inicializa como falsa, cuando existen problemas en la entrada y salida de texto a la pantalla, desactivando la escritura directa de caracteres a la memoria de video. Su sintaxis es la siguiente: DirectVideo:= Valor_Booleano; ClrEol: Este procedimiento borra todos los caracteres de la lnea actual, desde la posicin del cursor hasta el final de la ventana. Clrscr: Este procedimiento limpia la ventana activa en la pantalla, dejando el cursor en la esquina superior izquierda. DelLine: Este procedimiento borra la lnea en donde se encuentra el cursos, las dems lneas inferiores suben una posicin. Delay (): Este procedimiento detiene la ejecucin del programa el nmero de milisegundos indicado, estos van de 0 a 65535, la precisin del tiempo depende de los ciclos de reloj del procesador. GotoXY (): Este procedimiento sita al cursor en la posicin indicada de la pantalla, donde X es el nmero de columnas deseado, tomando como base del 1 al 80, e Y es el nmero de renglones deseados, tomando como base del 1 al 25. Su sintaxis es la siguiente: GotoXY (X, Y); TextBackGround (): Este procedimiento cambia el color del fondo de la ventana actual. Su sintaxis es la siguiente: TextBackGround (Color); TextColor (): Este procedimiento cambia el color de los caracteres en la pantalla. Su sintaxis es la siguiente:

TextBackGround (Color); TextMode (): Este procedimiento cambia el modo de video de la pantalla, asignando los nuevos atributos con que contar. Su sintaxis es la siguiente: TextMode (Valor); WhereX: Esta funcin nos devuelve el valor actual del cursor, conforme a su eje x.Su sintaxis es la siguiente: Variable := WhereX; WhereY: Esta funcin nos devuelve el valor actual del cursor, conforme a su eje y. Su sintaxis es la siguiente: Variable := WhereY; Window (): Este procedimiento nos permite restringir el rea de trabajo en la pantalla, formando una seccin delimitada por la nuevas dimensiones, para ello se define en los parmetros, la esquina superior izquierda y inferior derecha. Su sintaxis es la siguiente: Window (Xsi, Ysi, Xid, Yid); Ejercitacin

Realizar todos los ejemplos propuestos en el apunte y comentar como funcionan. Construir una unidad con procedimientos y funciones, que englobe los ejemplos propuestos, y un programa que los utilice. A continuacin se exponen 5 problemas, las cuales deben ser resueltos con sus respectivos programas en Turbo Pascal.

Procedimientos a Seguir: Anlisis y comprensin del problema. Planteamiento del algoritmo de solucin. Codificacin del algoritmo. Compilacin y Verificacin del resultado.

Realizar un programa que simule una calculadora con las operaciones matemticas bsicas, el programa debe contar con un men de opciones. Realizar un programa que cuente todas las palabras de un archivo de texto.

Realizar un programa que almacene una agenda telefnica. Realizar un programa que convierta un nmero en base 10 a binario. Realizar un programa que calcule el valor de e.

Vous aimerez peut-être aussi