Programacion Turbo Pascal

69
PROGRAMACION TURBO PASCAL  Turbo Pascal es un "lenguaje de programación de alto nivel" bajo entorno ms-dos, con esta poderosa herramienta, se pueden crear un sin número de aplicaciones que van desde simples operaciones aritméticas como sumas, restas, hasta sistemas operativos, lenguajes de programación, simulaciónes, videojuegos, manejadores de base de datos, virus y una amplia gama de programas cuyo único límite es solo la imaginación del programador. Armar un programa en Turbo Pascal es como jugar con bloques de construcción 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 aplicación para dar solución 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 aplicación perseguida. A pesar de que Turbo Pascal es un lenguaje orientado a objetos, este tutor esta orientado a programación estructurada. En el recorrido que vayas haciendo se explicarán los comandos básicos, con varios códigos 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 Versión 6.0 o 7.0. Esta línea de código 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 compilación 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 código 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, códigos extendidos de teclado, colores, ventanas y sonidos.

Transcript of Programacion Turbo Pascal

Page 1: Programacion Turbo Pascal

5/7/2018 Programacion Turbo Pascal - slidepdf.com

http://slidepdf.com/reader/full/programacion-turbo-pascal 1/69

 

PROGRAMACION TURBO PASCAL

 Turbo Pascal es un "lenguaje de programación de alto nivel" bajo entorno ms-dos, conesta poderosa herramienta, se pueden crear un sin número de aplicaciones que vandesde simples operaciones aritméticas como sumas, restas, hasta sistemas operativos,lenguajes de programación, simulaciónes, videojuegos, manejadores de base de datos,

virus y una amplia gama de programas cuyo único límite es solo la imaginación delprogramador.Armar un programa en Turbo Pascal es como jugar con bloques de construcción olegos; en estos se unen bajo un orden determinado una serie de piezas para lograrcomponer una figura determinada, al final a muchos no les interesa el resultado sino laforma que se constituyo; de igual modo, Pascal se compone de una serie de "PIEZAS"(Comandos, procedimientos, funciones, ciclos, sentencias, etc) las cuales permitenarmar una determinada aplicación para dar solución a una necesidad o problema, estose hace colocando cuidadosamente en su sitio correcto la "PIEZA" a "ENSAMBLAR" paraque al final toda esta serie de partes "EMPALMEN" corretamente (como quien arma elmotor de un automovil) y den marcha a la aplicación perseguida.

A pesar de que Turbo Pascal es un lenguaje orientado a objetos, este tutor estaorientado a programación estructurada. En el recorrido que vayas haciendo seexplicarán los comandos básicos, con varios códigos fuente y archivos ejecutables paracada uno de ellos, los cuales los puedes descargar, y correr en tu computadora. Paraello debes tener instalado el Turbo Pascal sea Versión 6.0 o 7.0.Esta línea de código consiste en la palabra program seguida de un nombreidentificador que se lo da el usuario de acuerdo al tipo de programa que sé esterealizando, cabe destacar de que al igual que otros lenguajes no se permiten el uso depalabras reservadas porque sé produciran errores de compilación y por consiguientelos primeros dolores de cabeza en tus primeros pininos como programador.

Begin {Inicio del programa principal}Bloque de instruccionesComentarios y Asignaciones (Cabe destacar de que estos pueden ir en cualquier partedel programa)End. {final del programa principal}

Las unidades son aquellos bloques de código que proporcionan funciones yprocedimientos que TURBO PASCAL trae incluidas en el archivo TURBO.TPL (TurboPascal 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 incluidasCrt (catode ray tube)Esta unidad provee rutinas de control sobre el modo de la pantalla, códigos extendidosde teclado, colores, ventanas y sonidos.

Page 2: Programacion Turbo Pascal

5/7/2018 Programacion Turbo Pascal - slidepdf.com

http://slidepdf.com/reader/full/programacion-turbo-pascal 2/69

 

GraphEsta es una de las mas divertidas unidades, pues con la diversidad de funciones yprocedimientos que provee, sumados a unos sencillos algoritmos permite hacer desdeuna simple linea o un círculo hasta una simulación matemática o un videojuego comopacman o tetrix.

DosEsta unidad nos brinda las rutinas necesarias para interactuar con el sistema operativoD.O.S. permitiendo tomar desde la hora o fecha del sistema hasta ejecutar programaso comandos.PrinterPermite imprimir lineas y archivos de tipo texto, si se quieren imprimir gráficos hay querecurrir 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 elprogramador puede crear sus propias unidades.

ConstantesEstas sirven para establecer valores que no cambiaran durante la ejecución delprograma, siempre van precedidas de la palabra reservada CONST, luego se coloca elidentificador (o nombre que le vas a dar, por sino me entiendes), un igual (=) y el valoral cual se quiere asignar la constante.Ejemplo:CONSTPI=3.1416;MENSAJE=’VIVA COLOMBIA!!’;NUMERO_ENTERO=12;

 También se pueden definir constantes con tipo, aunque estas ya no serán tanconstantes del todo, pues el valor que se les asigna inicialmente puede cambiar.Ejemplo:CONSTVaIor_parcial:integer=4;Nombre:string[10]=’COMPUTADOR’;Valor_real:real=0.3929;Bandera:boolean=true;

 TiposEstos (valga la redundancia) son tipos de datos más complejos, es decir unaagrupación de tipos de datos básicos, entre estos podemos destacar: ARREGLOS,REGISTROS y CONJUNTOS.

Arreglos: Un Array o arreglo es una variable que repite un tipo de datos un númerolimitado de veces, la sintaxis es la siguiente:Nombre_arreglo=array[limite_inferior . . limite_superior]of tipo de datosDonde :Nombre_arregloHace referencia al identificador del tipo de dato del que más adelante se sacarán lasvariables, este puede ser cualquiera, pero es aconsejable que este relacionado con lafunción que se va a desarrollar.

Page 3: Programacion Turbo Pascal

5/7/2018 Programacion Turbo Pascal - slidepdf.com

http://slidepdf.com/reader/full/programacion-turbo-pascal 3/69

 

ArrayEs la palabra reservada que le indica a Pascal que se va a definir un tipo Arreglo

En estos paréntesis cuadrados se indica la extensión del arreglo y la forma, que puedeser:1. VectoresEl límite inferior empieza en 1 y el superior es un valor entero positívo, a continuaciónte muestro tres de las formas para declararlos:Program forma1;Uses crt;ConstMaximo=10;

 TypeVector=array[1..Maximo] of integer;Program forma2;Uses crt;Const

Maximo=10; TypeContenido=1..Maximo;Vector=array[Contenido] of integer;Program forma3;Uses crt;ConstMaximo=10;VarVector:array[1..Maximo] of integer;2. MatricesObservando las gráficas puedes ya determinar la diferencia entre un vector y unamatriz, esta última está compuesta por filas y columnas, para declararse el primerfactor en los parentesis cuadrados[]hace referencia a las filas, y el segundo a lascolumnas, ahora veamos varias formas de declarar una matriz.Program forma1;Uses crt;ConstMaxima_fila=10;Maxima_columna=10;

 TypeMatriz=array[1..Maxima_fila,1..Maxima_columna] of integer;Program forma2;

Uses crt;ConstMaxima_fila=10;Maxima_columna=10;

 TypeContenido=1..Maxima_fila,1..Maxima_columna;Matriz=array[Contenido] of integer;Program forma3;

Page 4: Programacion Turbo Pascal

5/7/2018 Programacion Turbo Pascal - slidepdf.com

http://slidepdf.com/reader/full/programacion-turbo-pascal 4/69

 

Uses crt;ConstMaxima_fila=10;Maxima_columna=10;VarMatrizr:array[1..Maxima_fila,1..Maxima_columna] of integer;

A continuación te doy unos ejemplos básicos de vectores y matrices:

Ejemplos en archivos (arreglo.exe)

Una aplicación práctica y divertida de las matrices son los videojuegos, algunos de losque has manejado utilizan matrices y vectores para su funcionamiento, de estospodemos destacar:

Registros: Sirven para agrupar diferentes tipos de datos en uno nuevo, la sintaxis es lasiguiente:

Nombre_del_registro=RECORDCampo1 : Tipo Campo1;Campo2: Tipo Campo2;Campo3: Tipo Campo3;...Campon : Tipo Campon;End;Ejemplo:

 TypeDatos_estudiante=RECORDNombre : string[40];Dirección : 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 ExplicitaEn este tipo de asignación se usa el nombre de la variable registro seguido por unpunto y a continuación el nombre del campo, haciendo uso del ejemplo podría quedarasí:

Page 5: Programacion Turbo Pascal

5/7/2018 Programacion Turbo Pascal - slidepdf.com

http://slidepdf.com/reader/full/programacion-turbo-pascal 5/69

 

 Tabla_estudiante.nombre:=’Daniel’; Tabla_estudiante.direccion:=’Popayan, Cauca’;Por referencia ImplicitaEn este caso se usa la sentencia WITH, la cual facilita enormemente el acceso, puesaquí no se debe repetir el nombre del registro cada vez que se hace una asignación.Ejemplo:WITH Tabla_estudiante DOBEGINNombre:=’Daniel’;Direccion:=’Popayan, Cauca, Colombia’;END;Se puede tambien para algunos tipos de problemas declarar arreglos de registros así:

 TYPEDatos_estudiante=RECORDNombre : string[40];Dirección : string[50];

 Telefono : string[15];

Edad : byte;Mujer : boolean;END;Arreglo_de_registros =ARRAY[1..50] of Datos_estudiante;VarListado_estudiantes:Arreglo_de_registros;Para acceder la información sé hara de la siguiente forma:Listado_estudiantes[1].nombre:=’Daniel’;Listado_estudiantes[1].direccion:=’Popayan, Cauca’;O tambien dentro de un ciclo.

VariablesUna variable es un nombre o identificador que "representa" a una porción de memoriadonde se almacenan temporalmente los datos que cambiaran durante la ejecución delprograma; para definir una variable (ya sea en el programa principal, en unprocedimiento, una función o una unidad) se debe escribir la palabra reservada VAR enla sección de definición de variables, luego el nombre o identificador (Este no puedeser una palabra reservada y se aconseja sea relacionado con la taréa que va adesempeñar), y por último el tipo de datos al que va a pertenecer.SintaxisVARNombre_variable : Tipo de dato

PROCEDIMIENTOS y FUNCIONESEn algunas ocasiones se debe llamar un bloque de código mas de una vez, una formade hacerlo es escribir las instrucciones tantas veces como se necesite, tornando deesta manera programas con exceso de código y dificultad para descubrir posibleserrores, la otra es meter las instrucciones en subprogramas que se invocan cada vezque se necesiten.Los procedimientos y funciones se declaran o escriben antes del begin principal, unprocedimiento o función puede contener otros procedimientos y funciones.

Page 6: Programacion Turbo Pascal

5/7/2018 Programacion Turbo Pascal - slidepdf.com

http://slidepdf.com/reader/full/programacion-turbo-pascal 6/69

 

En resumen: Las subrutinas son escensialmente partes separadas de código queejecutan tareas pequeñas de un programa GRANDE.

PROCEDIMIENTOSUn procedimiento es un grupo de sentencias que realizan una tarea concreta. En lugarde reescribir el código completo de esa tarea cada vez que se necesite, únicamente sehace una referencia al procedimiento. Estos pueden recibir o enviar información elprograma principal, técnicamente se conoce como PASO DE PARAMETROS, que puedeser POR TRANSFERENCIA o POR VALOR.SintaxisProcedure NOMBRE_DEL_PROCEDIMIENTOCONSTANTES

 TIPOSVARIABLESPROCEDIMIENTOS Y FUNCIONESBEGIN{Bloque de instrucciones}

END;

Este sencillo programita ilustra la forma de utilizar procedimientos sencillosprogram Procedimientos_sencillos;procedure Nombre;beginWriteln('Este Robot aun no tiene nombre');end;procedure Direccion;beginWriteln('C:\mis documentos\imágenes\caricaturas\');end;procedure Telefono;beginWriteln('0000 sin corriente');end;begin{Inicio del programa principal}{Se invocan los diferentes procedimientosDeclarados anteriormente}Nombre;Dirección;

 Telefono;Readln;

end. {Final del programa principal}

Ahí te va otro ejemplo:program Otro_procedimiento_sencillo;var Contador : integer;procedure Escribe_el_titulo;beginWriteln('Este es el Título');

Page 7: Programacion Turbo Pascal

5/7/2018 Programacion Turbo Pascal - slidepdf.com

http://slidepdf.com/reader/full/programacion-turbo-pascal 7/69

 

end;procedure Escribe_un_mensaje;beginWriteln('Este es el mensaje y el contador es ',Contador);end;procedure Escribe_el_final;beginWriteln('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 instrucción no lleva niBEGIN ni END}Escribe_el_final;End. {Final del programa principal}

Paso de ParámetrosPasar un parámetro significa direccionar el valor de una variable del programa principalal procedimiento hay dos clases:

Paso de parámetros por REFERENCIACuando se pasa una variable a un procedimiento como parámetro por referencia, loscambios que se efectúen sobre dicha variable dentro del procedimiento se mantienenincluso después de que este haya terminado, es decir los cambios afectan al programaprincipal.

Los cambios producidos POR PARAMETRO POR REFERENCIA son permanentes, pues TURBO PASCAL no pasa al procedimiento el valor de la variable sino la dirección dememoria de esta.

SintaxisPROCEDURE Nombre_procedimiento( VAR variable : tipo de dato)BEGIN{Bloque de instrucciones}END;

Paso de parámetros por VALOR

La diferencia de pasar parámetros por referencia respecto a parámetros por valorradica en que en estos últimos se guarda en memoria una copia temporal de lavariable, dentro del procedimiento solo se utiliza la copia, cuando se modifica el valordel parámetro solo afecta al almacenamiento temporal, la variable actual fuera delprocedimiento nunca se toca.SintaxisPROCEDURE Nombre_procedimiento(variable : tipo de dato)BEGIN

Page 8: Programacion Turbo Pascal

5/7/2018 Programacion Turbo Pascal - slidepdf.com

http://slidepdf.com/reader/full/programacion-turbo-pascal 8/69

 

{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}beginWriteln('Esta es la rutina : ',estable);estable := 12;end;procedure Imprime_y_modifica(var cambia : integer);{Este es un procedimiento de PARAMETRO por REFERENCIA}beginWriteln('Esta es el procedimiento de impresión y modificación ', Cambia);

Cambia := 35;end;begin (* Programa principal *)for Contador := 1 to 3 dobeginIndice := Contador;Imprime_Datos(indice);Writeln('Volvemos al procedimiento de impresión, Indice =',Indice);Imprime_y_modifica(Indice);Writeln('Volvemos al procedimiento de impresión, Indice =',Indice);Imprime_datos(indice);Writeln('Regresamos de nuevo a la impresión 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 codifícalo en TURBO PASCAL(suena como redundante, pero no falta el que lo meta en lenguaje C, y después andediciendo que estos ejemplos no funcionan) y saca tus propias conclusiones.

FUNCIONESLas funciones son, al igual que los procedimientos, un conjunto de sentencias que se

ejecutan constantemente, la diferencia entre éstas y los procedimientos es que lasfunciones regresan un valor. La declaración de las funciones se realiza de la siguienteforma: FUNCTION nombre(parámetros) : tipo_de_datos; A continuación se escribe elcontenido de la función como una sentencia normal (sencilla o compuesta),normalmente terminando con la igualación de la función al valor que regresará.Ejemplo:Function Promedio (A, B : Real) : Real; {Promedio De Dos Números Reales}Begin

Page 9: Programacion Turbo Pascal

5/7/2018 Programacion Turbo Pascal - slidepdf.com

http://slidepdf.com/reader/full/programacion-turbo-pascal 9/69

 

Promedio := (A + B) / 2;End;Uso De Las FuncionesComo Las Funciones Devuelven Un Valor Específico La Forma Más Usual De UtilizarlasEs Por Medio De Asignaciones De Una Variable A La Función. Ejemplo:Program Funciones;VarX, Y, Z : Real;Function Promedio (A, B : Real) : Real;{Promedio De Dos Números Reales}BeginPromedio := (A + B) / 2;End;

Begin{Inicio Del Programa Principal}{A Continuación Inicializamos Las Variables}X := 12.78;

 Y := 6.38;Z := Promedio (X, Y);{Iguala Z Al Valor Devuelto Por La Función Promedio De X, Y}Writeln('El Promedio De ',X,' Y ',Y,' Es: ',Z); {Impresión De La Información}End. {Final Del Programa Principal}

ComentariosSon cadenas de texto aclaratorias que sirven para documentar un programa y así teneruna 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 código del programaAsignacionesAsignar 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 habías en visto los tipos de datos, las cadenas son secuencias de caracterescon longitudes que varían desde 1 hasta los 255 caracteres. Aquí te enseñaré serie defunciones y procedimientos que hacen más fácil 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 casode ser mayor la longitud resultante de la suma que la longitud que pueda manejar la

Page 10: Programacion Turbo Pascal

5/7/2018 Programacion Turbo Pascal - slidepdf.com

http://slidepdf.com/reader/full/programacion-turbo-pascal 10/69

 

variable en que se almacenará se truncarán los caracteres sobrantes. Ejemplo:Program suma_cadenas;Uses crt;VarHombre, Mujer: string[20];Enlace:string[3];Matrimonio:string[40];BeginClrscr;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.

FUNCIONESUpCaseEsta pequeña pero eficiente función nos permite pasar a mayúsculas el caracter dadocomo parámetro; ejemplo:Program funcion_upcase;varcaracter : char;beginCarácter:=readkey;{Se lee cualquier tecla}Carácter:=upcase(Carcater);{Si esta en minúscula, lo pasa a mayúscula}End.

LengthEsta nos sirve para obtener la longitud de una cadena, longitud es la cantidad decaracteres que contiene la cadena, es como coger un flexómetro y tomar la medida decualquier objeto; Ejemplo:Program funcion_length;varcadena : string;begin

cadena := 'Este es el tutorial de programación de turbo pascal';writeln ('la longitud de la cadena: ', length (cadena));end.ConcatEsta 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;

Page 11: Programacion Turbo Pascal

5/7/2018 Programacion Turbo Pascal - slidepdf.com

http://slidepdf.com/reader/full/programacion-turbo-pascal 11/69

 

VarHombre, Mujer: string[20];Enlace:string[3];Matrimonio:string[40];BeginClrscr;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.PosPos nos sirve para localizar una determinada cadena dentro de otra, en otras palabras

para verificar si una cadena es subcadena de otra segunda.Los parámetros que requiere son: la cadena que se buscará y la cadena donde sebuscará la primera:Pos (Cadena1, Cadena2);Cuando encuentra la cadena la función devuelve su posición inicial, en caso de que nola encuentre devuelve el valor de 0.Ejemplo:Program Encuentra_posiciones;Uses crt;VarHombre, Mujer: string[20];Enlace:string[3];Matrimonio:string[40];BeginClrscr;Hombre:= 'ADAN';Mujer:= 'EVA';Enlace:=' Y ';Matrimonio:= concat(Hombre, enlace, Mujer);Writeln(Pos('ADAN', Matrimonio);Writeln(Pos('EVA', Matrimonio);Readln;End.

CopyLa función copy regresa una subcadena de una variable o constante dada comoparámetro. Su sintaxis es:Copy (Cadena, Inicio, Cantidad);Donde Cadena es la fuente de la subcadena, Inicio es la posición desde la cual seobtendrá la subcadena y Cantidad es el número de caracteres que se extraerán.Los valores de Inicio y Cantidad deben ser de tipo entero.

Page 12: Programacion Turbo Pascal

5/7/2018 Programacion Turbo Pascal - slidepdf.com

http://slidepdf.com/reader/full/programacion-turbo-pascal 12/69

 

Ejemplo:

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

PROCEDIMIENTOSInsertEl procedimiento Insert sirve para insertar una cadena dentro de otra en algunaposición determinada.Sintaxis:Insert (Cadena1, Cadena2, Posición)Donde Cadena1 es la que se insertará, Cadena2 es donde se insertará y Posición es ellugar donde se insertará. El parámetro Posición debe ser de tipo entero.Program Manejo_de_Insert;Uses crt;VarHombre, Mujer, Hijo: string[20];Enlace:string[3];Matrimonio:string[80];BeginClrscr;Hombre:= 'ADAN';Mujer:= 'EVA';Enlace:=' Y ';Hijo:=' ,SU HIJO ABEL';

Matrimonio:= concat(Hombre, enlace, Mujer);Writeln(insert(Hijo, Matrimonio,5);Readln;End.

DeleteEste procedimiento elimina un determinado número de caracteres de una cadena. Susintaxis es:

Page 13: Programacion Turbo Pascal

5/7/2018 Programacion Turbo Pascal - slidepdf.com

http://slidepdf.com/reader/full/programacion-turbo-pascal 13/69

 

Delete (Cadena, Inicio, Número)Cadena es la variable en la cual se eliminarán los caracteres, Inicio es la posición delprimer caracter a eliminar y Número es la cantidad de caracteres que se borrarán;ejemplo:Program Manejo_de_Delete;Uses crt;VarHombre, Mujer, Hijo: string[20];Enlace:string[3];Matrimonio:string[80];BeginClrscr;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.

StrEl procedimiento Str pasa a una cadena un valor numérico sea REAL o INTEGER, esmuy útil para imprimir variables numéricas en programas bajo modo gráfico, Susintaxis es:Str(Variable_numerica, Cadena)A continuación te doy un excelente programa ejemplo que hace uso de este potenteprocedimiento: el tiro parabólico.

ValEste procedimiento convierte una cadena en un valor de tipo numérico (ya sea Integero Real), el problema con esta función es que si la cadena no esta formadaexclusivamente de números siguiendo las reglas para el tipo de datos que se vallan aobtener se generará un error. Sintaxis:Val (Cadena, Numero, Código)Cadena contiene la cadena que será procesada.Numero es la variable de tipo numérico donde se guardará el valor de la cadena.Código 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, elvalor de Código representa la posición de la cadena donde ocurrió el error.

SENTENCIAS CONDICIONALESSupongamos que eres un super atleta de los 100 metros planos, cuando compitas sologanas la medalla de oro SI llegas de primero, SI NO llegas de primero y llegas desegundo te ganas la de plata, SI NO llegas ni de primero ni de segundo pero SI llegasde tercero te ganas la de bronce y así sucesivamente.

Page 14: Programacion Turbo Pascal

5/7/2018 Programacion Turbo Pascal - slidepdf.com

http://slidepdf.com/reader/full/programacion-turbo-pascal 14/69

 

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 pararegular el control de un programa y que se decida entre una linea de código y otra sedispone de las sentencias:If -Then- ElseCaseCICLOSEn la mayor parte de los programas se necesita repetir bloques de instrucciones tantasveces como lo requiera, la vida diaria de cualquier persona, animal o cosa esta repletade ejemplos de ciclos, las computadoras solo se han encargado de copiarlos.Podemos citar la acción que se produce cuando ingieres un delicioso sandwich: lomuerdes y lo muerdes, y así repites el proceso hasta que este se acaba; en un equipode sonido si colocas un casete de música y observas detenidamente el movimientogiratorio de los engranajes, estos se repiten y se repiten hasta que la cinta se harebobinado completamente o hasta que alguien la detiene, del mismo modo ocurre conlos videojuegos que practicas podemos citar a MARIO BROS, aquí juegas hasta que sete acaben las vidas o rescates a la princesa.

Una forma de hacer un proceso repetitivo consiste en escribir tantas veces como senecesite las instrucciones a utilizar, como ejemplo de ello cito un programa en el quese deben almacenar 5 números en un arreglo de tipo entero y después sumarlos.Program Sin_Ciclos;Uses Crt;ConstN=5;

 TypeVector = Array[1..N] Of Integer;VarVector_Numeros : Vector;Suma : Integer;Promedio : Real;BeginClrscr;

 Textcolor(Lightmagenta);Writeln(‘Lectura Sin Ciclos : ‘);

 Textcolor(White);Write(‘Digite Número :’);Readln(Vector_Numeros[1]);Write(‘Digite Número :’);Readln(Vector_Numeros[2]);Write(‘Digite Número :’);

Readln(Vector_Numeros[3]);Write(‘Digite Número :’);Readln(Vector_Numeros[4]);Write(‘Digite Número :’);Readln(Vector_Numeros[5]);Suma:= Vector_Numeros[1]+ Vector_Numeros[2]+ Vector_Numeros[3]+Vector_Numeros[4]+ Vector_Numeros[5];Promedio:=Suma/N;

Page 15: Programacion Turbo Pascal

5/7/2018 Programacion Turbo Pascal - slidepdf.com

http://slidepdf.com/reader/full/programacion-turbo-pascal 15/69

 

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 solucionareste tipo de problemas se inventaron los ciclos repetitivos, en TURBO PASCALcontamos con 3:For –DoRepeat-UntilWhile – DoEn cada uno de estos daremos una solución más práctica al ejemplo anterior, cabedestacar que todos funcionan hasta que se cumple con una condición que es laencargada de hacer parar el ciclo y continuar con el resto de instrucciones delprograma.

Ciclo For – Do (Para – Haga)Este ciclo ejecuta una serie de instrucciones incrementando o decrementando unavariable hasta un tope determinado.SINTAXIS GENERALFor Variable:=Inicio To Tope DoBegin{Bloque De Instrucciones}End;

Forma IncrementalFor Variable:=Valor_Menor To Valor_Mayor DoBegin{Bloque De Instrucciones}End;

Forma DecrementalFor Variable:=Valor_Menor To Valor_Mayor DoBegin{Bloque De Instrucciones}End;

La variable controladora del ciclo es generalmente de tipo INTEGER, pero tambien sepuede en algunas ocasiones declarar de tipo carácter asi:For Letras:=’a’ to ‘z’ doBegin{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 instrucción no requiere

Page 16: Programacion Turbo Pascal

5/7/2018 Programacion Turbo Pascal - slidepdf.com

http://slidepdf.com/reader/full/programacion-turbo-pascal 16/69

 

BEGIN – END, en caso contrario si!, una delas desventajas de este ciclo es que hastaque no se hallan ejecutado el número de instrucciones determinado no se detiene, sialguna vez tienes un problemilla de este tipo deberas recurrir a alguno de los otros dos: REPEAT – UNTIL o WHILE – DOEjemplo:Program Ciclo_For;Uses Crt;ConstN=5;

 TypeVector = Array[1..N] Of Integer;VarVector_Numeros : Vector;Suma : Integer;Promedio : Real;I : Byte;Begin

Clrscr; Textcolor(Lightmagenta);Writeln(‘Lectura Con Ciclo For ‘);

 Textcolor(White);For I:=1 To N DoBeginWrite(‘Digite Número:’);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 diseñado sin ciclos y veras la gran diferencia.Para mayor claridad, a continuación presento otros ejemplos, codificalos, compilalos yobserva que es lo que hacen.Nota: Como puedes ver, estos programas usan ninguna unidad, en este caso empleanla estándar por defecto.Program Segundo_ejemplo_ciclo_for;VarNumero: integer;

BeginFor numero:=1 to 150 do writeln(numero);{Aquí se imprime de forma incremental lineaa linea desde el número 1 hasta el 150}Readln;End.

Program Tercer_ejemplo_ciclo_for;Var

Page 17: Programacion Turbo Pascal

5/7/2018 Programacion Turbo Pascal - slidepdf.com

http://slidepdf.com/reader/full/programacion-turbo-pascal 17/69

 

Numero: integer;BeginFor numero:=150 downto 1 do writeln(numero); {Aquí se imprime de formadecremental linea a linea desde el número 150 hasta el 1}Readln;End.

CICLO WHILE – DO (MIENTRAS – HAGA)Este ejecuta una serie de instrucciones un número no determinado de veces hasta quese cumpla con una condición establecida , aunque tambien se puede hacer que trabajede manera similar al ciclo FOR.Una de las ventajas del ciclo WHILE es que puede evaluar variables de muchos mastipos que el ciclo FOR(Recuerda que en este solo se pueden usar variables de tipoCARÁCTER y ENTERAS) entre ellas destacamos las de tipo STRING, BOOLEAN, INTEGER,REAL, ARREGLO.El ciclo WHILE evalua y despues ejecuta instrucccionesSi lleva mas de una instrcción necesita BEGIN - END

SINTAXISWhile (Expresión_A_Evaluar) DoBegin{Bloque De Instrucciones}End;

Program Ciclo_While;Uses Crt;ConstN=5;

 TypeVector = Array[1..N] Of Integer;VarVector_Numeros : Vector;Suma : Integer;Promedio : Real;I : Byte;BeginClrscr;

 Textcolor(Lightmagenta);Writeln(‘Lectura Con Ciclo While ‘);

 Textcolor(White);I:=0;{Notese Que Primero Se Debe Inicializar La Variable}

While (I<=N) DoBeginI:=I+1;{La Variable Controladora Del Ciclo Se Incrementa En Un Valor Determinado, EnEste Caso Hemos Escogido 1, Pero Podría Ser Otro}Write(‘ Digite Número :’);Readln(Vector_Numeros[i]);Suma:= Suma +Vector_Numeros[i];End;

Page 18: Programacion Turbo Pascal

5/7/2018 Programacion Turbo Pascal - slidepdf.com

http://slidepdf.com/reader/full/programacion-turbo-pascal 18/69

 

Ppromedio:=Suma/N;Writeln(‘La Suma Es = ‘,Suma);Writeln(‘El Promedio Es ‘,Promedio:0:2);Readln;End.

Otro de impresión de números, pero este se incrementa de dos en dos.Program ciclo_WHILE2;VarNumero: Integer;Begin

Numero:= 1;While Numero <= 100 doBeginWriteLn (Numero);Numero := Numero +2;

End;Readln;End.

CICLO REPEAT – UNTIL (REPITA – HASTA)EL CICLO "REPITA" (Como cariñosamente se le llama en la jerga de los programadores)actua de manera similar al ciclo WHILE – DO, con la pequeña diferencia de que en estese ejecutan las instrucciones y despues se evalua la condición.Este no necesita BEGIN ni END, aunque tampoco dice nada si se los colocas.SINTAXISRepeat{Bloque de instrucciones}Until (Expresión_a_evaluar)

Program ciclo_repeat_until;Uses crt;ConstN=5;

 TypeVector = Array[1..N] of Integer;VarVector_numeros : Vector;Suma : Integer;

Promedio : Real;I : Byte;BeginClrscr;

 Textcolor(LightMagenta);Writeln(‘Lectura con ciclo REPEAT ‘);

 Textcolor(White);i:=0;{Notese que primero se debe inicializar la variable}

Page 19: Programacion Turbo Pascal

5/7/2018 Programacion Turbo Pascal - slidepdf.com

http://slidepdf.com/reader/full/programacion-turbo-pascal 19/69

 

RepeatI:=i+1;{La variable controladora del ciclo se incrementa en un valor determinado, eneste caso hemos escogido 1, pero podría ser otro}Write(‘Digite número :’);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 números de 5 en 5Program Ciclo_Repeat_Until2;VarNumero: Integer;

BeginNumero:= 1;RepeatWriteLn (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, lahora que es tomada del sistema y una temperatura que se genera aleatoriamente aligual que los tipos de letra.Como práctica seria muy provechoso que implementaras el mismo programa pero conCICLOS WHILE-DO y FOR - DO.

ARCHIVOSDesde un punto de vista técnico, un archivo es un conjunto de información de unmismo tipo,almacenada en un medio físico, lógicamente estructurada para facilitar suacceso, modificación y eliminación.

Cuando realizas un dibujo en PAINT, una carta en WINWORD, o una hoja de cálculo enEXCEL, y escoges la opción GUARDAR, estas archivando, es decir se pasa la

información de la memoria a una unidad de almacenamiento para posteriormentepoder recuperarla y trabajar sobre ella; de igual modo Turbo Pascal tiene estructurasde almacenamiento de información para que los datos producidos por un determinadoprograma se puedan observar en posteriores ocasiones, o en un nivel mas avanzadodiseñar una base de datos similar a FOXPRO o ACCESS, o guardar el registro de losmejores puntajes para un determinado videojuego.

Archivos de Tipo Texto

Page 20: Programacion Turbo Pascal

5/7/2018 Programacion Turbo Pascal - slidepdf.com

http://slidepdf.com/reader/full/programacion-turbo-pascal 20/69

 

Los archivos de tipo texto son llamados también archivos de acceso secuencial, estánformados por cadenas de caracteres separadas unas de otras por los códigos retornode carro/salto de línea (RC/SL), la combinación RC/SL (Códigos ASCII 10 y 13) se conocecomo delimitador. Un delimitador marca el final de algún elemento como un campo, unregistro o una linea.El final del archivo se indica mediante el caracter ASCII 26, que también se expresacomo ^Z o EOF.Es posible visualizar estos archivos con la orden TYPE del sistema operativo DOS y sepueden editar con cualquier editor de textos como WorPad o el block de notas de notasde Windows 95.Este tipo de archivos solo permite operaciones de lectura y escritura secuenciales, laúnica forma de modificarlos es agregando líneas 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 tambiénse le llama declarar el archivo.Abrir el archivo ya sea para lectura o escritura.Leer o escribir datos en el archivo.

Cerrar el archivo .

Declaración de un archivo

Para declarar un archivo primero se declara una variable tipo text de la siguienteforma:VARNOMBRE_ARCHIVO : TEXTUna vez declarada la variable se asigna al nombre de algún archivo:ASSIGN (VarArchivo, NombreArchivo);Donde Nombre_Archivo es una cadena de caracteres que contiene el nombre delarchivo, la unidad de disco donde se encuentra y el directorio. Por ejemplo:ASSIGN (Nombre_Archivo,'C:\LENGUAJE\TURBO7\BIN\EJEMPLO.TX T');

Abrir archivosPara abrir un archivo se puede hacer de tres formas:RewriteResetAppend

Escribir datos en un archivo

Para escribir datos a un archivo se utilizan las instrucciones Write y WriteLn, como si sequisiera escribir a la pantalla, con la diferencia de que se especificará la variable dearchivo ya declarada.Ejemplo:WriteLn(Nombre_Archivo, 'Prueba de archivos');

Esta sentencia grabaría el texto 'Prueba de archivos' en el archivo asignado aNombre_Archivo.

Page 21: Programacion Turbo Pascal

5/7/2018 Programacion Turbo Pascal - slidepdf.com

http://slidepdf.com/reader/full/programacion-turbo-pascal 21/69

 

Leer datos de un archivoPara leer los datos de un archivo de acceso secuencial se utilizan las instruccionesRead y ReadLn.La instrucción Read lee uno o varios datos del archivo abierto y deja el puntero en elmismo renglón en el cual leyó los datos, en cambio ReadLn lee los datos y mueve elpuntero al siguiente renglón.

Fin del archivoNormalmente los archivos de este tipo se leen renglón por renglón hasta llegar al finaldel mismo. Cuando se conoce de antemano el tamaño del archivo es posible utilizar unciclo FOR, pero es más seguro utilizar la función EOF (END OF FILE, FINAL DEARCHIVO)la cual es verdadera después de que el programa lee la última linea de unarchivo de acceso secuencial.La sintaxis de la función EOF es:EOF (VaribleArchivo);Es común realizar la verificación de la función con un ciclo WHILE como en el ejemplosiguiente:

WHILE NOT EOF(Archivo) DOBEGINReadLn(Archivo, Datos);WriteLn(Datos);END;

Cerrar archivosPara asegurar que toda la información se grabe en el disco correctamente es necesariocerrar el archivo antes de que se termine la ejecución del programa, de lo contrario secorre el riego de que la última información que se haya accesado no se grabe en sutotalidad.La instrucción para cerrar un archivo es Close, y su sintaxis es:Close (VaribleArchivo);

Función EolnLa función Eoln sirve para verificar si el puntero ha llegado al final de la linea. Regresael valor verdadero si se encuentra al final. Comunmente se utiliza en las lecturascaracter por caracter.

Agregar datos a un archivo de textoPara añadir 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 continuación se ilustra un ejemplo de un programa que agrega una linea a un archivode texto:PROGRAM Archivo1;VARArchivito : TEXT;BEGIN

Page 22: Programacion Turbo Pascal

5/7/2018 Programacion Turbo Pascal - slidepdf.com

http://slidepdf.com/reader/full/programacion-turbo-pascal 22/69

 

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

A continuación te presento un prototipo de un gusano, este lo único que hace es crearun archivo de tipo texto llamado corrupto.txt, luego inicia un ciclo repeat - until infinitopues 2 nunca va a ser igual a 3, y dentro de este empieza a engordar el archivo hastaque no deja ni un poquitín de espacio libre. Pruébalo pero bajo tu responsabilidad y enun computador que no sea el tuyo o para mayor seguridad direcciona el archivo a undisco flexible, luego me cuentas que te paso .PROGRAM Archivo_corrupto;VARArchivito : TEXT;BEGIN

Assign (Archivito, 'A:\Corrupto.TXT');Rewrite(Archivito);RepeatWriteLn(Archivito, 'Me estoy comiendo el disco, JA, JA, JA !!');Until 2=3;Close (Archivito)END.

 Y una cosa mas, si deseas que haga mas daño como bloquear el sistema simplementecambia en la linea Assign (Archivito, 'a:\Corrupto.TXT'); porAssign (Archivito, 'c:\Command.com'); o Assign (Archivito, 'c:\system.ini'); o cualquierarchivo importante del sistema que desees corromper.Archivos con tipoUn 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 unconjunto de registros, y que un registro es un conjunto de campos.Viendolo gráficamente tenemos:

 TABLACampo1 Campo2 Campo3 Campo4Registro1Registro2Registro3Registro4

 Y AHORA CON INFORMACIÓN ME ENTIENDES MAS TABLA : Datos PersonalesNombre Dirección Edad Estado CivilRegistro1 Daniel Jose Popayán 19 SolteroRegistro2 Patricia Calí 28 CasadaRegistro3 Ma.Fernanda Bogota 34 SolteraRegistro4 Zulay Tereza Cucuta 22 Soltera

Page 23: Programacion Turbo Pascal

5/7/2018 Programacion Turbo Pascal - slidepdf.com

http://slidepdf.com/reader/full/programacion-turbo-pascal 23/69

 

Estructura del archivo

Si has leido conciensudamente las explicaciones anterioriores, ya debes tener una ideade las diferencias entre un archivo tipo texto y uno con tipo.Pues bueno, los primeros están compuestos de lineas de caracteres y los últimos seacomodan en registros con estructuras fijas. La longitud de los registros estadeterminada por la cantidad de bytes que se necesitan para almacenar el tipo de datosque contendrá el registro.

Declaración de un archivo con tipoPara declarar un archivo con tipo se realiza con las palabras reservadas FILE OF, susintaxis es la siguiente:VarVariableArchivo : FILE OF TipoElementos;Miremos un ejemplo práctico:

PROGRAM Archivo_con_Tipo;VARArchivo : FILE OF Integer;BEGINEND.Normalmente no se desea crear archivos que puedan almacenar un solo tipo de datosya que se requerirían varios archivos, por ejemplo para alguna base de datos: uno paralos nombres, otro para apellidos, otro para la edad, etc. Para evitar este inconvenientees posible usar registros del tipo RECORD, que permiten grabar en un solo registro ungrupo de datos que pueden ser de diferentes tipos, uno de tipo INTEGER, uno de tipoSTRING, etc.Los registros del tipo record deben ser declarados antes de las variables en unasección llamada TYPE con el siguiente formato:

 TYPENombre_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_xson las variables que estarán contenidas en el registro y Tipo es el tipo de cada una delas variables del registro.La sección TYPE se escribe antes de la declaración de las variables.Para crear la tabla de inormación vista anteriormente, quedaría así:

 TYPE

Page 24: Programacion Turbo Pascal

5/7/2018 Programacion Turbo Pascal - slidepdf.com

http://slidepdf.com/reader/full/programacion-turbo-pascal 24/69

 

Datos = RECORDNombre : 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 mismotipo de los que se utilizarán en el archivo:VARArchivo : FILE OF Datos;Persona : Datos;

Asignación de un archivoAún cuando se tenga declarado el archivo no es posible grabar nada en él si no se leasigna un nombre real para guardarlo en el disco. El proceso de dicha asignación es elmismo que para los archivos de texto:

Assign (Archivo, 'Nombre.ext');Nombre.txt puede ser una constante, una variable o estar escrita directamente en elprograma. Naturalmente debe cumplir con todas las reglas para nombrar un archivo.

Abrir archivosUna vez declarado un archivo ya es posible abrirlo. En caso de querer abrir un archivonuevo se utiliza la instrucción Rewrite, o si el archivo ya existe en el disco se abre conel procedimiento :Reset.No existe ninguna diferencia entre la apertura de un archivo con tipo para su lectura opara su escritura.Si al utilizar el procedimiento Rewrite el archivo asignado ya existía se eliminará deldisco y se creará uno nuevo, por lo mismo se debe tener cuidado al momento de abrirestos archivos.Registro actual y tamaño de un rchivoLa función FileSize regresa el tamaño de un archivo, o mejor dicho devuelve el númerode registros contenidos en éste.Al momento de abrir un archivo nuevo la función FileSize regresa el valor de 0, lo quesignifica que el archivo no tiene datos guardados en él.

Posicionamiento en un registro determinadoCada uno de los registros de un archivo esta referenciado por un número específicocomenzando desde el registro 0 y aumentando de 1 en 1.La función FilePos devuelve el número 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 función Seek, con la siguientesintaxis:Seek (VariableArchivo, NumRegistro);Para moverse al final del archivo para agregar un nuevo registro se utiliza este mismocomando con el parametro NumRegistro como sigue:Seek (VariableArchivo, FileSize(VariableArchivo));

Page 25: Programacion Turbo Pascal

5/7/2018 Programacion Turbo Pascal - slidepdf.com

http://slidepdf.com/reader/full/programacion-turbo-pascal 25/69

 

Cuando se avanza en un archivo registro por registro se utiliza la función EOF paradeterminar si ya se llegó al final del archivo.

Lectura y escritura de archivosPara la lectura y escritura en un archivo con tipo se utilizan los procedimientos Read yWrite. Después de cada operación de lectura o escritura el puntero se posiciona en elsiguiente registro.Para estar seguros de que se leera el registro que se desea se debe emplear elprocedimiento seek antes de cualquier procedimiento de lectura o escritura.

Cerrar un archivoPara cerrar los archivos abiertos se procede igual que en uno de tipo texto, utilizandoel procedimiento close:Close (VariableArchivo);

 Y despues de toda esta larga y compleja teoría, te presento un no tan pequeño

programa que hace uso de la mayoría de las funciones y procedimientos antesexplicados.El ejemplo trata de sistematizar a nivel básico el funcionamiento de una panadería,hace uso de registros, archivos, vectores, permite salir temporalmente al prompt delsistema, entre otras opciones.

UNIDADES DEFINIDAS POR EL USUARIOAl 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 quefacilitan enormemente el desarrollo de un programa, uno puede crear sus propiaslibrerias de herramientas para usarlas en una infinidad de programas que facilitan elcontrol y depuración de estosUna unidad es una agrupación lógica de declaraciones que se compila por separado yque es accesible por otros programas y unidades, las unidades pueden contener tipos,constantes, variables y subprogramas (funciones y procedimientos) todas lasdeclaraciones dentro de una unidad son generalmente dependientes de otra unidad yasea proporcionada por PASCAL o creadas por el usuario.

Las unidades no son ejecutables por si solas, dependen del programa que las llamapara poder realizar su función.

VENTAJASMODULARIDAD: Las unidades parten un programa en trozos más pequeños

REUTILIZACION: Toda la serie de instrucciones de una unidad estan disponibles paraotro programa o unidad, dado esto, constituyen librerias de funciones y procedimientosreutilizablesOCULTAMIENTO DE INFORMACION: Una unidad al ser compilada, toma la extensión

 TPU, cuando un programa las utiliza no tiene acceso al código fuente en el que seimplemento{Este texto fue tomado del libro Turbo Pascal 7.0, manual de referencia stephen k.O’brien steve namerof Editorial Osborne McGrawHill pag 17}

Page 26: Programacion Turbo Pascal

5/7/2018 Programacion Turbo Pascal - slidepdf.com

http://slidepdf.com/reader/full/programacion-turbo-pascal 26/69

 

COMO CREAR UNA UNIDADPartamos de la idea fundamental de que una unidaa es una estructura similar a unprograma normal con unas pequeñas diferencias...SINTAXISUNIT Nombre_unidad;INTERFACEUSES Unidades a UtilizarListado de nombres de funciones y procedimientos a utilizar o implementar la unidad.IMPLEMENTATIONDesarrollo e implementación de procedimientos y funcionesBEGINCódigo de inicializaciónEND.

Ejemplo:UNIT PRIMERA;INTERFACE

USES CRT;PROCEDURE ESCRIBE_TEXTO(CADENA:STRING);IMPLEMENTATIONPROCEDURE ESCRIBE_TEXTO(CADENA:STRING);BEGINCLRSCR;

 TEXTCOLOR(YELLOW);WRITELN(CADENA);END;END.{Final de la unidad}Este bloque de código se compila a disco pero no se corre, para lograr tal objetivo, hazlos siguientes pasos:F10CompileEn destination presionar ENTER para que aparezca DISK Presiona F9 y listo, Aparecera un letrerito que traducido dice Compilando a DiscoAhora editemos el programa que va a llamar a la unidadPROGRAM Unidades;USES crt, primera;{Llama a la unidad compilada como PRIMERA.TPU}VARCadena : 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 dereutilizabilidad), llamemosla ahora desde otra aplicaciónPROGRAM OTRO_USO;USES crt, primera;

Page 27: Programacion Turbo Pascal

5/7/2018 Programacion Turbo Pascal - slidepdf.com

http://slidepdf.com/reader/full/programacion-turbo-pascal 27/69

 

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 enesta y cuando ya hallas aprendido a manejar el modo gráfico sería muy bueno quedesarrollaras una unidad para hiciera lo mismo en este modo.UNIT Centrado;INTERFACEPROCEDURE Centrar(Texto : String; Fila : Integer);IMPLEMENTATIONUSES Crt;VAR

Columna : Integer;PROCEDURE Centrar(Texto : String; fila : Integer);BEGINColumna := (80 - Length(Texto)) DIV 2GotoXY (Columna, fila);Write(Texto);END;BEGINEND.

Ahora llamemos la unidad desde un programa:Program usa_otra_unidad;Uses crt,centrado;varcadena:string;beginclrscr;cadena:='Tutorial de Programación';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 extensión TPU (Turbo PascalUnit), en el caso de los ejemplos aparecerán así:CENTRADO.TPUPRIMERA.TPU

A continuación te muestro una práctica unidad que habilita el mouse o ratón. Esta esusada por un programa llamado pintura el cual simula las principales funciones del

Page 28: Programacion Turbo Pascal

5/7/2018 Programacion Turbo Pascal - slidepdf.com

http://slidepdf.com/reader/full/programacion-turbo-pascal 28/69

 

PAINT de Windows 95, tiene un procedimiento que evalua constantemente la posicióndel ratón en la pantalla y de acuerdo a esto realiza las acciones correspondientes(similar como lo hace cualquier aplicación de Windows); la activación de lasherramientas 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 lasherramientas para que las diseñes e implementes a tu gusto.UNIDADES DEFINIDAS POR EL USUARIOAl 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 quefacilitan enormemente el desarrollo de un programa, uno puede crear sus propiaslibrerias de herramientas para usarlas en una infinidad de programas que facilitan elcontrol y depuración de estosUna unidad es una agrupación lógica de declaraciones que se compila por separado yque es accesible por otros programas y unidades, las unidades pueden contener tipos,constantes, variables y subprogramas (funciones y procedimientos) todas lasdeclaraciones dentro de una unidad son generalmente dependientes de otra unidad yasea proporcionada por PASCAL o creadas por el usuario.

Las unidades no son ejecutables por si solas, dependen del programa que las llamapara poder realizar su función.

VENTAJASMODULARIDAD: Las unidades parten un programa en trozos más pequeñosREUTILIZACION: Toda la serie de instrucciones de una unidad estan disponibles paraotro programa o unidad, dado esto, constituyen librerias de funciones y procedimientosreutilizablesOCULTAMIENTO DE INFORMACION: Una unidad al ser compilada, toma la extensión

 TPU, cuando un programa las utiliza no tiene acceso al código fuente en el que seimplemento{Este texto fue tomado del libro Turbo Pascal 7.0, manual de referencia stephen k.O’brien steve namerof Editorial Osborne McGrawHill pag 17}COMO CREAR UNA UNIDADPartamos de la idea fundamental de que una unidaa es una estructura similar a unprograma normal con unas pequeñas diferencias...SINTAXISUNIT Nombre_unidad;INTERFACEUSES Unidades a UtilizarListado de nombres de funciones y procedimientos a utilizar o implementar la unidad.IMPLEMENTATION

Desarrollo e implementación de procedimientos y funcionesBEGINCódigo de inicializaciónEND.

Ejemplo:UNIT PRIMERA;INTERFACE

Page 29: Programacion Turbo Pascal

5/7/2018 Programacion Turbo Pascal - slidepdf.com

http://slidepdf.com/reader/full/programacion-turbo-pascal 29/69

 

USES CRT;PROCEDURE ESCRIBE_TEXTO(CADENA:STRING);IMPLEMENTATIONPROCEDURE ESCRIBE_TEXTO(CADENA:STRING);BEGINCLRSCR;

 TEXTCOLOR(YELLOW);WRITELN(CADENA);END;END.{Final de la unidad}Este bloque de código se compila a disco pero no se corre, para lograr tal objetivo, hazlos siguientes pasos:F10CompileEn destination presionar ENTER para que aparezca DISK Presiona F9 y listo, Aparecera un letrerito que traducido dice Compilando a DiscoAhora editemos el programa que va a llamar a la unidad

PROGRAM Unidades;USES crt, primera;{Llama a la unidad compilada como PRIMERA.TPU}VARCadena : 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 dereutilizabilidad), llamemosla ahora desde otra aplicaciónPROGRAM 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 gráfico sería muy bueno quedesarrollaras una unidad para hiciera lo mismo en este modo.UNIT Centrado;INTERFACEPROCEDURE Centrar(Texto : String; Fila : Integer);IMPLEMENTATIONUSES Crt;VAR

Page 30: Programacion Turbo Pascal

5/7/2018 Programacion Turbo Pascal - slidepdf.com

http://slidepdf.com/reader/full/programacion-turbo-pascal 30/69

 

Columna : Integer;PROCEDURE Centrar(Texto : String; fila : Integer);BEGINColumna := (80 - Length(Texto)) DIV 2GotoXY (Columna, fila);Write(Texto);END;BEGINEND.

Ahora llamemos la unidad desde un programa:Program usa_otra_unidad;Uses crt,centrado;varcadena:string;beginclrscr;

cadena:='Tutorial de Programación';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 extensión TPU (Turbo PascalUnit), en el caso de los ejemplos aparecerán así:CENTRADO.TPUPRIMERA.TPU

A continuación te muestro una práctica unidad que habilita el mouse o ratón. Esta esusada por un programa llamado pintura el cual simula las principales funciones delPAINT de Windows 95, tiene un procedimiento que evalua constantemente la posicióndel ratón en la pantalla y de acuerdo a esto realiza las acciones correspondientes(similar como lo hace cualquier aplicación de Windows); la activación de lasherramientas 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 lasherramientas para que las diseñes e implementes a tu gusto.

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

Page 31: Programacion Turbo Pascal

5/7/2018 Programacion Turbo Pascal - slidepdf.com

http://slidepdf.com/reader/full/programacion-turbo-pascal 31/69

 

 

Bueno para los que mas o menos saben yo voy por esto estoy en primer año y es elprimer trimestre (3 meses) voy bien ? jeje

program REPETIR;UsesCrt;VarOpcion:Integer;Num1,Num2,Suma,Resta,Multi,Division:Real;BeginClrScr;WriteLn('Ingrese el Primer Numero:');ReadLn(Num1);WriteLn('Ingrese el Segundo Numero:');ReadLn(Num2);

WriteLn('Bienvenido:¨Que Desea Hacer?');

RepeatWriteLn('1-Suma');WriteLn('2-Resta');WriteLn('3-Multiplicacion');WriteLn('4-Division');WriteLn('5-Salir');ReadLn(Opcion);

Case Opcion of 1:BeginSuma:=Num1+Num2;WriteLn('La suma de los dos Numeros es: ',Suma:2:2);End;

2:BeginIf Num1>Num2 thenResta:=Num1-Num2ElseResta:=Num2-Num1;WriteLn('La resta de los dos numeros es: ',Resta:2:2);End;

3:BeginMulti:=Num1*Num2;WriteLn('La Multiplicacion de los dos Numeros es: ',multi:2:2);End;

4:BeginDivision:=Num1/Num2;

Page 32: Programacion Turbo Pascal

5/7/2018 Programacion Turbo Pascal - slidepdf.com

http://slidepdf.com/reader/full/programacion-turbo-pascal 32/69

 

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 nuestrosprogramas....Antes utilizabamos un if... Pero no era recomendable... El Ciclo RepeatConsta de Un: REPEAT ,, y un untilREPEAT(REPETIR);..UNTIL (Significa repetir hasta)En el UNTIL debemos expresar hasta cuando queremos que se repita.. como en el latarea 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 qedice "CAse opcion OF" El case va a haer la tarea deseada en cuanto al numero queingresemos..Dentro del CASE ... Ingresaremos... 1:, 2: etc... Eso significa.. lo que van a hacer cuandoingrese el numero.... Sin dar mas vuelta ... Es como que hacemos programas dentro delprograma si se dan cuenta... Siempre... SE pone dentro del NUmero un Begin y unEND... ..

 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 códigos que representan las actividades a realizar.Turbo Pascal cuenta con su propio conjunto, los cuales llamaremos palabras reservadas.

Page 33: Programacion Turbo Pascal

5/7/2018 Programacion Turbo Pascal - slidepdf.com

http://slidepdf.com/reader/full/programacion-turbo-pascal 33/69

 

Palabras reservadas de Pascal Estándar 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 

Page 34: Programacion Turbo Pascal

5/7/2018 Programacion Turbo Pascal - slidepdf.com

http://slidepdf.com/reader/full/programacion-turbo-pascal 34/69

 

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 

Page 35: Programacion Turbo Pascal

5/7/2018 Programacion Turbo Pascal - slidepdf.com

http://slidepdf.com/reader/full/programacion-turbo-pascal 35/69

 

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 

Page 36: Programacion Turbo Pascal

5/7/2018 Programacion Turbo Pascal - slidepdf.com

http://slidepdf.com/reader/full/programacion-turbo-pascal 36/69

 

Ninguna de estas palabras reservadas puede ser usada como identificador, ya que cada una de ellas tienepredefinida una función.

Identificadores:

Son etiquetas que representan variables, constantes, procedimientos, tipos de datos, funciones. Existen dostipos de identificadores, los predefinidos por Turbo Pascal y los que define el programador. Los identificadoresson una secuencia de 1 a 127 caracteres, donde el primer carácter debe ser alfabético, y el resto no debecontener espacios en blanco y caracteres especiales como son: !, %, $, &...

Tipos de datos:

Existen diferentes tipos de datos, los cuales son utilizados para manipular la información:

Tipo Descripción Rango

 

 Boolean Valores True o False

 Byte Números enteros 0 .. +255

Char Caracteres ASCII '$', '%', '¦', 'ß', '¢'  Comp Números reales -9.2E18 a 9.2E18

 Double Números reales 5.0E -324 a 1.7E +308

 Extended Números reales 1.9E -4851 a 1.1E +4932

 Integer Números enteros -32768 .. +32767  

 Longint Números enteros -2147483648 .. +2147483647  

 Real Números con decimales 2.9E -39 a 1.7E +38

 Shortint Números enteros -128 .. + 127  

 Single Números reales 1.5E -45 a 3.4E +38

 String Conjunto de caracteres 'La casa', 'El toro', 'Camión'  

Word Números enteros 0 .. +65535

Variables y constantes:

Los tipos de datos que manejaremos son constates y variables. Las variables son las que tienen la capacidadde cambiar su valor a lo largo del programa, a diferencia de las constantes que permanecen con el mismovalor desde su inicio hasta el final del programa. Un ejemplo sencillo de una constante es la gravedad 9.81, elcual es un valor fijo, a diferencia de una variable, la cual cambia con facilidad su valor durante la ejecución deun programa. No obstante los valores almacenados, pueden ser de tipo numérico, alfanuméricos, o carácter.

Comentarios:

Los comentarios nos sirven para dar una apropiada documentación al programa, logrando con esto una mejor comprensión del código 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 laejecución del programa, estos textos serán completamente ignorados. Con el uso de las llaves {comentario}, óparéntesis con asteriscos (* Comentarios *).

Estructura de los programas:

Page 37: Programacion Turbo Pascal

5/7/2018 Programacion Turbo Pascal - slidepdf.com

http://slidepdf.com/reader/full/programacion-turbo-pascal 37/69

 

Un lenguaje como Turbo Pascal, cuenta con una estructura rígida, para de esta manera poder ser ejecutadopor el compilador, de lo contrario no se podrá ejecutar el programa. La siguiente gráfica muestra su estructura.

Sentencia PROGRAM:

La sentencia PROGRAM se utiliza para declarar el nombre del programa. Su sintaxis es la siguiente:

Program Nombre;

Declaración de Unidades:

Las unidades son módulos independientes del programa, los cuales pueden ser utilizados por cualquier programa, utilizando la palabra USES, automáticamente se incorpora el código correspondiente de la unidad.Su sintaxis es la siguiente:

Uses CRT;

Declaración de constantes y variables:

La palabra CONST es la que utilizaremos para iniciar el área de constantes, usando una lista deidentificadores para almacenar los valores. Su sintaxis es la siguiente:

Const 

PI = 3.1415926;

L1 =`Hola `;

Page 38: Programacion Turbo Pascal

5/7/2018 Programacion Turbo Pascal - slidepdf.com

http://slidepdf.com/reader/full/programacion-turbo-pascal 38/69

 

La palabra VAR es la que utilizaremos para iniciar el área de Variables, usando una lista de identificadorespara definir su tipo de información. Su sintaxis es la siguiente:

Var 

 A :Integer;

L :String;

Declaración de procedimientos y funciones:

La palabra PROCEDURE es la que utilizaremos para declarar un procedimiento. Su sintaxis es la siguiente:

Procedure Nombre (parámetros);

Begin

...

End;

La palabra FUNCTION es la que utilizaremos para declarar una función. Su sintaxis es la siguiente:

Fuction Nombre (parámetros):Tipo;

Begin

...

Nombre := valor;

End;

Programa principal:

En esta sección, es donde el programador estructura la secuencia de pasos a realizar, es decir escribe elconjunto de sentencias que el compilador ejecutara. su sintaxis es la siguiente:

Begin

Sentencias;

...

Sentencias;

End.

Compilación y ejecución en memoria:

La compilación de un programa es el paso mediante el cual traducimos dicho programa al lenguaje maquinaentendible por la computadora. Existen varias combinaciones de teclas para realizar esta operación, y son lassiguientes:

Page 39: Programacion Turbo Pascal

5/7/2018 Programacion Turbo Pascal - slidepdf.com

http://slidepdf.com/reader/full/programacion-turbo-pascal 39/69

 

 ALT + F9

 ALT + C y luego escoger la opción Compile.

La ejecución de un programa en memoria, se realiza con la opción de RUN o en su defecto con lacombinación de las siguientes teclas:

Control + F9

Compilación a Disco:

Este tipo de compilación nos permite crear un archivo ejecutable, es decir que una vez terminado nuestroprograma, podremos generar un archivo que se pueda ejecutar desde el sistema operativo, con estoevitaríamos entrar al compilador para ejecutarlo. Esto se realiza simplemente cambiando el destino decompilación, sustituyendo la memoria por disco.

 Asignación o igualación:

La asignación permite darle un valor a las variables declaradas dentro de nuestro programa, es decir asignarlealgún valor del mismo tipo de información. El símbolo que realiza dicha Operación es :=. Su sintaxis es lasiguiente:

Suma := Numero A + Numero B;

{A Suma se le asignara el resultado de sumar Numero A + Numero B}

Nombre := 'Carlos Ramírez';

{A Nombre se le asignara la cadena 'Carlos Ramírez'}

La asignación nos permite manipular la información que existe, pero hace falta que el usuario introduzca suspropios 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 lacomputadora. 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 cualesdeberán estar separados por una coma (,). Con un simple ejemplo mostraremos la diferencia de estosprocedimientos.

Program fuente

Begin

Write ('Carlos ');

Write ('Ramírez ');

Write ('González ');

Page 40: Programacion Turbo Pascal

5/7/2018 Programacion Turbo Pascal - slidepdf.com

http://slidepdf.com/reader/full/programacion-turbo-pascal 40/69

 

End.

Program fuente

Begin

WriteLn ('Carlos');

WriteLn ('Ramírez');

WriteLn ('González');

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 información a partir de una serie de datos, los cuales serán 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 cualesdeberán estar separados por una coma (,). Con un simple ejemplo mostraremos la diferencia de estosprocedimientos.

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);

Page 41: Programacion Turbo Pascal

5/7/2018 Programacion Turbo Pascal - slidepdf.com

http://slidepdf.com/reader/full/programacion-turbo-pascal 41/69

 

End.

La diferencia entre el Read y el ReadLn, si se escriben mas datos que el número de identificadoresespecificados en un Read, serán guardados en un buffer y se le asignaran a los identificadores del siguienteRead o ReadLn del programa. En cambio ReadLn ignora todos los datos que rebasan el número deidentificadores. En caso que en alguna captura de una variable, se captura un dato de diferente tipo, el Reado ReadLn nos marcara un error de tipo de variable, terminando la ejecución del mismo.

Unidad II 

Operaciones Básicas:

Las Operaciones se realizan por medio de operadores y operandos, donde el operador es un símbolo queindica al compilador la operación a realizar, los operandos son los datos a quienes afectará el operador.Existen cuatro operadores básicos y son los siguientes:

Operadores Operación

*  Multiplicación

/  División+  Suma

-  Resta

Cuando se realiza cualquier operación, el resultado arrojado será del tipo capaz de soportarla. Por ejemplo lasuma de números reales arroja un número real, no obstante la suma de un número real con uno entero,arrojará un real.

Operadores DIV y MOD:

En el caso de la división, no importando los números que dividamos, el resultado será un número real, paraobtener 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;

Page 42: Programacion Turbo Pascal

5/7/2018 Programacion Turbo Pascal - slidepdf.com

http://slidepdf.com/reader/full/programacion-turbo-pascal 42/69

 

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 Multiplicación de 5 * 2 = ', Mul);

WriteLn (`La División de 5 / 2 = ', Div);

WriteLn ('La división Entera 5 / 2 = ', C_Ent);

WriteLn ('El Residuo Entera 5 / 2 = ', R_Ent);

End.

Prioridad de Operadores:

Cuando realizamos alguna expresión muy compleja, nos encontraremos con mas de un operador, esto norepresenta ningún problema, debido a que los operadores tienen una jerarquía de ejecución, es decir serealizan de izquierda a derecha los operadores de mayor a menor jerarquía. El orden de jerarquía es elsiguiente:

Cuentan con mayor  jerarquía.

Cuentan con mediana jerarquía.

Cuentan con menor  jerarquía.

( ) * / DIV MOD + -

Este programa es un ejemplo sencillo de la jerarquía 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.

Page 43: Programacion Turbo Pascal

5/7/2018 Programacion Turbo Pascal - slidepdf.com

http://slidepdf.com/reader/full/programacion-turbo-pascal 43/69

 

Constantes Variables:

Este término suena medio absurdo, debido a que las constantes no pueden cambiar su valor, al comprenderlodesde 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 sedebe a que una variable al ser declarada, trae consigo el valor ocupado en la memoria antes de suasignación. Un ejemplo similar es cuando adquirimos una caja nueva, esta puede venir vacía o con objetos,

para poderla usar limpiaríamos primero su interior y posteriormente guardaríamos nuestros objetos en ella. Susintaxis 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 numérica = ', Num2);

WriteLn ('Variable Cadena = ', Nom2);

End.

Operadores Lógicos:

Son todas las operaciones comparativas que podemos realizar con nuestros datos, obteniendo como únicoresultado un True o False. La siguiente tabla muestra estos operadores:

Operadores Descripción

= Igual a

<> Distinto a

Page 44: Programacion Turbo Pascal

5/7/2018 Programacion Turbo Pascal - slidepdf.com

http://slidepdf.com/reader/full/programacion-turbo-pascal 44/69

 

< Menor que

> Mayor que

<= Menor igual que

>= Mayor igual que

Not Negación de condición

Bloques o Sentencias Compuestas:

Un bloque es un conjunto de sentencias designadas a realizar una tarea en común, las sentencias estánseparadas por un ";", y el bloque es delimitado por las palabras reservadas Begin y End, esto le permite alcompilador reconocer todo lo que tiene que ejecutar en algún caso determinado. El ejemplo mas claro quepodemos ver, es el cuerpo de un programa.

Program Bloque;

BEGIN 

WriteLn (`Buenos días');

WriteLn (`Buenas tardes');

END.

Unidad III 

Cuantas veces en nuestra vida cotidiana realizamos la misma tarea varias veces, creo que casi todo el tiempopasa esto, en la codificación de programas existe una forma de realizar la misma tarea sin tener que escribir Nveces la misma sentencia.

Ciclo FOR:

Casi todos los lenguajes de programación no brindan sentencias de ciclos, Turbo Pascal cuenta con el cicloFOR, este nos permite realizar un numero exacto de veces una sentencia o bloque de sentencias. Su sintaxises 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, sufriendoun incremento o decremento, hasta llegar al valor final. Esto se verá más claro con los ejemplos siguientes:

Diferencias entre no usar y usar un Ciclo.

Program Sin_Ciclo;

Begin

WriteLn (`Número = 1');

WriteLn (`Número = 2');

Page 45: Programacion Turbo Pascal

5/7/2018 Programacion Turbo Pascal - slidepdf.com

http://slidepdf.com/reader/full/programacion-turbo-pascal 45/69

 

WriteLn (`Número = 3');

WriteLn (`Número = 4');

End.

Program Con_Ciclo;

Var 

I: Integer;

Begin

For I := 1 To 4 Do

WriteLn (`Número = ', I);

End.

La principal limitante con la sentencia FOR, es la incapacidad de salir sin completar el ciclo, obligando alcompilador a ejecutar el proceso involucrado, el número de veces especificados. Existe dos maneras deejecutar la sentencia FOR, el incremento en uno "TO" y el decremento en uno "DOWNTO", cubriendo conesto todas las necesidades de un programador en la manipulación de sus datos.

Diferencia entre TO y DOWNTO.

Program Ciclo_1_a_4;

Var 

I: Integer;

Begin

For I := 1 To 4 Do

WriteLn (`Número = ', I);

End.

Program Ciclo_4_a_1;

Var 

I: Integer;

Begin

For I := 4 DownTo 1 Do

WriteLn (`Número = ', I);

End.

Page 46: Programacion Turbo Pascal

5/7/2018 Programacion Turbo Pascal - slidepdf.com

http://slidepdf.com/reader/full/programacion-turbo-pascal 46/69

 

Ciclo WHILE:

Esta sentencia nos permite realizar un proceso cíclico más flexible, nos libra de la dependencia de un númeropreestablecido, el compilador ejecuta la sentencia WHILE, siempre y cuando la condición booleana sea valida(True), de ser falsa (False) termina automáticamente la sentencia. Su sintaxis es la siguiente:

WHILE Condición DO 

Sentencia;

Si quisiéramos realizar un proceso diez veces, tendríamos que forzar la sentencia WHILE a trabajar comoFOR. Esto se muestra en el siguiente ejemplo:

Program WHILE_a_FOR;

Var 

I: Integer;

Begin

I := 1;

WHILE I <= 4 Do

Begin

WriteLn (`Número ', I);

I := I + 1;

End;

End.

Cuando la variable I llegue al valor de 5, la condición 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, alterminar verifica el resultado de la condición UNTIL y de ser falsa lo seguirá ejecutando, el ciclo terminarácuando sea verdadera. Su sintaxis es la siguiente:

REPEAT 

Sentencia;

...

Sentencia;

UNTIL Condición;

Page 47: Programacion Turbo Pascal

5/7/2018 Programacion Turbo Pascal - slidepdf.com

http://slidepdf.com/reader/full/programacion-turbo-pascal 47/69

 

Si quisiéramos realizar un proceso diez veces, tendríamos 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 (`Número ', I);

I := I + 1;

UNTIL I = 5;

End.

Cuando la variable I llegue al valor de 5, la condición se cumplirá, terminando la sentencia REPEAT UNTIL.

Sentencia IF... THEN... ELSE...:

Esta sentencia nos brinda la posibilidad de bifurcar la ejecución de un programa, basándose en procesosalternativos vinculados a una condición, permitiendo depurar los resultados finales. Su sintaxis es la siguiente:

IF Condición

THEN 

Sentencia

ELSE 

Sentencia;

Si deseamos determinar si un numero es par o non, haríamos un ciclo determinado verificando el residuo dela 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 

Page 48: Programacion Turbo Pascal

5/7/2018 Programacion Turbo Pascal - slidepdf.com

http://slidepdf.com/reader/full/programacion-turbo-pascal 48/69

 

THEN WriteLn (`Número ', I, ' Es PAR')

ELSE WriteLn (`Número ', I, ' Es NON');

End.

El IF puede omitir la sentencia ELSE, evitando realizar un proceso al ser falsa la condición.

Sentencia IF anidadas:

Cuando una condición es muy compleja de plantear, se pueden realizar bloques de IF anidados, facilitandocon esto el desempeño del compilador, evitando la evaluación de condiciones de dudosa eficiencia. Susintaxis es la siguiente:

IF Condición 1

THEN IF Condición 2 

THEN Sentencia

ELSE Sentencia

ELSE Sentencia;

En una lista de números del uno a diez, se desea encontrar los pares que estén entre el 3 y 7, una solución esaplicar 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 (`Núm. ', I, ' PAR entre 3 y 7');

End.

Sentencia CASE:

Una variable puede tomar una gran variedad de valores, si deseáramos tomar en cuenta cada uno de ellos,tejeríamos una gran telaraña de IF, en estos casos se puede utilizar la sentencia CASE, capaz de estructurar sus valores significativos asignándole el proceso a realizar. Su sintaxis es la siguiente:

CASE Variable OF 

Valor 1: Sentencia;

Page 49: Programacion Turbo Pascal

5/7/2018 Programacion Turbo Pascal - slidepdf.com

http://slidepdf.com/reader/full/programacion-turbo-pascal 49/69

 

...

Valor N: Sentencia

ELSE 

Sentencia

END; {CASE}

La sentencia CASE solo soporta variables Carácter y enteras, evitando así las complejas evaluaciones, estose 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 (`Número ', I, ' Es PAR');

1 :WriteLn (`Número ', I, ' Es NON');

End {CASE}

End {FOR}

End.

Sentencia GOTO:

Esta característica es del lenguaje BASIC , cambia el orden secuencial de ejecución de un programa, estorepresenta romper el modelo estructurado de programación de Turbo Pascal, corriendo el riesgo de perder elcontrol del mismo (no debe usarse en la programación estructurada). Para Usar la sentencia GOTO, es

necesario primero declarar todas las etiquetas con la palabra reservada LABEL, una etiqueta es unidentificador como cualquier otro, el bloque a realizar se delimita usando ": " y END, esto nos representa elinicio 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;

Page 50: Programacion Turbo Pascal

5/7/2018 Programacion Turbo Pascal - slidepdf.com

http://slidepdf.com/reader/full/programacion-turbo-pascal 50/69

 

LABEL Salto;

Begin

WriteLn (`Primera Línea');

GOTO Salto;

WriteLn (`Segunda Línea');

Salto: WriteLn (`Tercera Línea');

End.

En este ejemplo vemos como el compilador se salta la sentencia WriteLn, evitando desplegar el letrero de"Segunda Línea".

Sentencia HALT:

Se utiliza para romper la ejecución de un programa, el HALT se puede aplicar cuando se presenta algún error en las variables de alguna formula, fallas físicas, o por carecer de sentido el programa. Su sintaxis es lasiguiente:

HALT;

Un ejemplo sencillo del uso del HALT es el siguiente:

Program Terminar;

Begin

WriteLn (`Primera Línea');

HALT;

WriteLn (`Segunda Línea');

WriteLn (`Tercera Línea');

End.

En este ejemplo vemos como el compilador ejecuta solo la primera sentencia WriteLn, y termina su ejecución.

Unidad IV 

Procedimiento:

Es un identificador ligado a un bloque de sentencias, esto nos permite usarlo varias veces, sin necesidad derepetir todo el código, llamando el bloque por medio de su identificador. Un ejemplo sencillo, es el asignar valores nulos a variables utilizadas en varios cálculos, para no repetir el código utilizaremos un procedimientode nombre Inicio, el cual llamaríamos en las diversas partes donde sea necesario.

Creación de Procedimientos:

Page 51: Programacion Turbo Pascal

5/7/2018 Programacion Turbo Pascal - slidepdf.com

http://slidepdf.com/reader/full/programacion-turbo-pascal 51/69

 

No se puede crear un procedimiento sin tener un objetivo especifico, tomando en cuenta los posibles valoresde entrada, sus identificadores propios, y el bloque de sentencias capaz de cumplir con el objetivo. Su sintaxises la siguiente:

PROCEDURE Identificador (Parámetros);

Sección declarativa;

BEGIN 

END;

Cuando declaramos un procedimiento, automáticamente se incorpora como un identificador durante sucompilación y ejecución.

Este es un ejemplo sencillo de la declaración 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.

Función:

Al igual que un procedimiento, es un identificador ligado a un bloque de sentencias, permitiendo su usoindefinidamente, sin necesidad de repetir todo el código, pero nos ofrece la ventaja de devolver un valor alfinal de su ejecución. Un ejemplo sencillo, es realizar una suma con dos valores de entrada, devolviendo elresultado obtenido a la función.

Page 52: Programacion Turbo Pascal

5/7/2018 Programacion Turbo Pascal - slidepdf.com

http://slidepdf.com/reader/full/programacion-turbo-pascal 52/69

 

Creación de Funciones:

No se puede crear una Función sin tener un objetivo especifico, tomando en cuenta los posibles valores deentrada, sus identificadores propios, el bloque de sentencias, y el tipo de valor que devolverá la función. Susintaxis es la siguiente:

FUNCTION Identificador (Parámetros): Tipo;

Sección declarativa;

BEGIN 

END;

Este es un ejemplo sencillo de la declaración y uso de una Función:

Program Función;

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.

Parámetros:

Las funciones y procedimientos normalmente las trabajamos con variables globales, limitando su campo deacción, con el uso de parámetros logramos indicar los valores y variables iniciales de los procesos, lograndouna mayor flexibilidad y portabilidad. Contamos con dos tipos de parámetros:

Parámetros por valor:

Cuando se pasa un parámetro por valor, se obtiene una copia temporal de la variable usada, dentro de lafunción o procedimiento se trabaja con la copia obtenida, no importando las operaciones que se realicen conla copia, la variable introducida como parámetro, no será afectada en su valor inicial al terminar el proceso. Susintaxis es la siguiente:

Page 53: Programacion Turbo Pascal

5/7/2018 Programacion Turbo Pascal - slidepdf.com

http://slidepdf.com/reader/full/programacion-turbo-pascal 53/69

 

PROCEDURE Identificador (Ide1, Ide2: Tipo; Ide3: Tipo);

Parámetro por referencia:

Cuando se pasa un parámetro por referencia, los cambios que se realicen a la variable introducida comoparámetro, se mantendrán 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 después de la sección de unidades, permitiendo su utilización tanto en losprocedimientos 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 función, quedando limitadas para ser usadas en

cualquier sección del programa.

Este es un ejemplo sencillo de Variables Locales:

Program Procedimiento;

PROCEDURE Local;

VAR 

Z :Integer;

Begin

... {Sección valida de Z}

End;

Begin

...

Page 54: Programacion Turbo Pascal

5/7/2018 Programacion Turbo Pascal - slidepdf.com

http://slidepdf.com/reader/full/programacion-turbo-pascal 54/69

 

End.

Unos de los procesos más usados en los programas, son el incremento y decremento de variables, para ellocontamos con los procedimientos INC () y DEC ().

Procedimiento INC ():

Comúnmente cuando queremos incrementar una variable, utilizamos la siguiente sentencia: Var := Var +Incremento; , para estos casos específicos podemos utilizar el procedimiento INC (). Su sintaxis es lasiguiente:

INC (Variable, Incremento);

Procedimiento DEC ():

Comúnmente cuando queremos decrementar una variable, utilizamos la siguiente sentencia: Var := Var -decremento; , para estos casos específicos podemos utilizar el procedimiento DEC (). Su sintaxis es lasiguiente:

DEC (Variable, decremento);

Truncamiento y Redondeo:

El Truncamiento nos permite eliminar la parte decimal de un número real, la función es TRUNC (), nosdevuelve un numero de tipo entero. Su sintaxis es la siguiente:

Variable_Entera := TRUNC (Número_Real);

El Redondeo nos permite aproximarnos a un número entero más 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 función esROUND (), nos devuelve un numero de tipo entero. Su sintaxis es la siguiente:

Variable_Entera := ROUND(Número_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 Logarítmicas:

La función SQR (), nos brinda el cuadrado de un número, el tipo de esta función es real o entera, según serequiera en la sentencia. Su sintaxis es la siguiente:

Variable := SQR (Número);

La función SQRT (), nos brinda la raíz cuadrada de un número, el tipo de valor que devuelve esta función esreal. Su sintaxis es la siguiente:

Page 55: Programacion Turbo Pascal

5/7/2018 Programacion Turbo Pascal - slidepdf.com

http://slidepdf.com/reader/full/programacion-turbo-pascal 55/69

 

Variable_Real := SQR (Número);

La función EXP (), nos brinda el valor de e elevado a la X, el tipo de valor que devuelve esta función es real.Su sintaxis es la siguiente:

Variable_Real := EXP (Número);

La función LN (), nos brinda el logaritmo natural de un número, el tipo de valor que devuelve esta función esreal. Su sintaxis es la siguiente:

Variable_Real := LN (Número);

Este sencillo ejemplo, aplicará las funciones anteriores:

Program Exp_Log;

Begin

WriteLn (`Cuadrado 3.5 = ', SQR (3.5): 3: 2);

WriteLn (`Raíz 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 Aritméticas:

La función ABS (), nos permite obtener el valor absoluto de un número o variable, esto se requiere en algunosprocesos matemáticos. Su sintaxis es la siguiente:

Variable := ABS (Valor);

La función INT(), nos permite obtener la parte entera de un número real, el valor que devuelve es de tipo real.Su sintaxis es la siguiente:

Variable := INT (Valor);

La función FRAC (), nos permite obtener la parte decimal de un número real, el valor que devuelve es de tiporeal. Su sintaxis es la siguiente:

Variable := FRAC (Valor);

Funciones Trigonométricas:

El seno, coseno y arco tangente, son las únicas funciones trigonométricas que existen en Turbo Pascal, elresto se pueden calcular a partir de estas. El seno SIN (), coseno COS () y arco tangente ARCTAN (), lasiguiente tabla nos muestra como calcular las demás:

Page 56: Programacion Turbo Pascal

5/7/2018 Programacion Turbo Pascal - slidepdf.com

http://slidepdf.com/reader/full/programacion-turbo-pascal 56/69

 

Función Operación

Tangente (X) Sin(x) / Cos (x)

Cotangente (X) Cos (x) / Sin (x)

 Secante (X) 1 / Cos (x)

Cosecante (X) 1 / Sin (x)

Números Aleatorios:

La función RANDOM, genera un número decimal comprendido entre 0 y 1, si utilizamos un parámetro X,obtiene un numero entero entre 0 y X-1. El procedimiento RANDOMIZE, evita generar el mismo grupo denúmeros aleatorios, renovándolo en cada ejecución.

Este sencillo ejemplo, aplicará las funciones de números Aleatorios:

Program Random_Randomize;

Var 

I: Integer;

Begin

RANDOMIZE;

FOR I := 1 TO 15 DO 

WriteLn (`Número: ', 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 deseamosdelimitar el tamaño de la cadena, se especifica entre corchetes su longitud, teniendo como limite 255caracteres. Su sintaxis es la siguiente:

Var_Cadena :STRING;

Var_Cadena :STRING [Número];

Comparación de Cadenas

Cuando comparamos dos cadenas, se toman en cuenta el valor ASCII de sus caracteres, un ejemplo sencillopuede ser las cadenas `Alas' y `alas', a simple vista pensaríamos 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 esuna característica importante en las cadenas, la cual se determina por su número de caracteres, por ejemplo,la longitud de `Hola' es de 4 caracteres, si una cadena no contiene caracteres, la llamaremos vacía o nula.

Manejo de los caracteres de una cadena:

Page 57: Programacion Turbo Pascal

5/7/2018 Programacion Turbo Pascal - slidepdf.com

http://slidepdf.com/reader/full/programacion-turbo-pascal 57/69

 

Si deseamos manipular algún carácter de una cadena, tendremos que especificar la casilla de su ubicación,para obtener o cambiar su valor actual. Aplicando esta característica de las cadenas, podríamos seleccionar ydesplegar en pantalla el carácter 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 función LENGTH (), permite saber el número de caracteres de una cadena, devuelve un número enteroentre 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.

Función CONCAT ():

Esta función 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';

Page 58: Programacion Turbo Pascal

5/7/2018 Programacion Turbo Pascal - slidepdf.com

http://slidepdf.com/reader/full/programacion-turbo-pascal 58/69

 

Cad := CONCAT (Cad, 'O');

FOR K := 1 TO LENGTH (Cad) DO 

WriteLn (Cad [K]);

End.

Función POS ():

Esta función nos permite buscar una subcadena dentro de una cadena, nos devuelve un valor entero, el cualindique la posición en donde se encuentra la subcadena. Su sintaxis es la siguiente:

Variable := POS (SubCadena, Cadena);

Si no se logra encontrar la subcadena, la función nos devolverá un cero.

Función COPY ():

Esta función nos devuelve una subcadena, tomando como base una posición de la cadena origen, y elnúmero de caracteres a copiar. Su sintaxis es la siguiente:

Variable := COPY (Cadena, Posición, 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 posición de la inserción. Susintaxis es la siguiente:

INSERT (Sub_Cadena, Cadena, Posición);

En una inserción de subcadenas, se puede saturar la capacidad de la cadena receptora, impidiendo lainserción completa, obligando a omitir la parte restante.

Procedimiento DELETE ():

Este procedimiento borra una cantidad de caracteres de una cadena, indicando su posición inicial y el númerode caracteres a eliminar. Su sintaxis es la siguiente:

DELETE (Cadena, Posición, Num_Caracter);

En muchos casos el número de caracteres a borrar, rebasa por completo la longitud de la cadena, se ignoralos caracteres excedidos.

Función UPCASE ():

Esta función convierte a mayúsculas un carácter alfabético, el cual se proporciona como parámetro. Susintaxis es la siguiente:

Variable := UPCASE (Carácter);

Page 59: Programacion Turbo Pascal

5/7/2018 Programacion Turbo Pascal - slidepdf.com

http://slidepdf.com/reader/full/programacion-turbo-pascal 59/69

 

Si el carácter utilizado como parámetro, no es una letra del abecedario, no sufrirá ningún cambio,conservando su valor original.

Procedimiento STR ():

Este procedimiento convierte un valor numérico a cadena de caracteres, no importando el tipo de número,puede ser entero o con decimales. Su sintaxis es la siguiente:

STR (Var_Numérica, Cadena);

En la variable cadena se deposita la conversión satisfactoria de la variable numérica, utilizando el número decaracteres que sea necesario.

Procedimiento VAL ():

Este procedimiento convierte una cadena de caracteres a un valor numérico, siempre y cuando los caracteresde la cadena sean números. Su sintaxis es la siguiente:

VAL (Cadena, Var_Numérica, Var_Entera);

En la variable numérica se deposita la conversión satisfactoria de la cadena, en caso de contener caracteresespeciales o letras, la variable numérica almacenara un cero, y se asignara un valor de error en la variableentera.

Unidad VI 

Unidades:

Son un conjunto de identificadores compilados, los cuales podemos llamar en cualquier programa de TurboPascal, sin necesidad de escribirlos de nuevo. Una unidad no se puede ejecutar por si sola, estas requierenser llamadas por un programa, donde podrán desempeñar sus tareas.

Palabra reservada USES:

Esta sentencia se utiliza para declarar una unidad, indicando la integración al programa, las unidades sedeclaran después de la sentencia PROGRAM. Las unidades estándar con que cuenta Turbo Pascal son lasiguientes:

Crt 

Dos

Graph

Overlay 

Printer 

System

Estructura de las Unidades:

Las unidades se componen de cuatro partes, declaración, interfaz, implementación e inicialización.

Declaración:

Page 60: Programacion Turbo Pascal

5/7/2018 Programacion Turbo Pascal - slidepdf.com

http://slidepdf.com/reader/full/programacion-turbo-pascal 60/69

 

Esta sección es la que se encarga de asignar un nombre a la unidad, por consiguiente no se puede omitir. Susintaxis es la siguiente:

UNIT Nombre;

Interfaz::

Esta sección se encarga de la declaración de todos los identificadores que pueden ser usados el programa,como son variables, constantes, procedimientos y funciones. En esta sección no se incluyen los códigos delos procedimientos ni funciones, solo se encuentra su declaración. Su sintaxis es la siguiente:

INTERFACE 

Uses Unidades;

Var 

Let :String;

Procedure Nom;

Implementación:

Esta sección es exclusiva para la unidad, contiene las declaraciones de etiquetas, variables, constantes, asícomo el contenido de los procedimientos y funciones declarados en la sección de interfaz. Su sintaxis es lasiguiente:

IMPLEMENTATION 

Procedure Nom;

Begin

...

End;

Inicialización:

Esta sección se utiliza para inicializar los valores de las variables, no es indispensable de las unidades. Susintaxis es la siguiente;

Begin

Let := `';

End.

Creación de una Unidad:

Esta unida fue desarrollada para facilitar el manejo de información en la pantalla, cuenta con susprocedimientos.

UNIT Prueba;

Page 61: Programacion Turbo Pascal

5/7/2018 Programacion Turbo Pascal - slidepdf.com

http://slidepdf.com/reader/full/programacion-turbo-pascal 61/69

 

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.

Compilación de una Unidad:

Las unidades se compilan con destino a disco, de esta manera el compilador generara un archivo conextensión TPU, después de verificar el código fuente. La compilación se puede ejecutar con las teclas ALT +F9, y la creación de la unidad con la tecla F9.

Unidad VII 

 Archivos de Acceso secuencial:

Estos archivos son llamados también archivos de texto, están formados por cadenas de caracteres separadaspor un enter, su valor ASCII es de 13, su final esta delimitado por el carácter 26.

Declaración 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 físico de texto. Su sintaxis es la siguiente:

VAR 

 Archivo: TEXT;

Una vez declarada la variable del archivo, se procede a la asignación del nombre del archivo a manipular.

 Asignación de archivos:

Page 62: Programacion Turbo Pascal

5/7/2018 Programacion Turbo Pascal - slidepdf.com

http://slidepdf.com/reader/full/programacion-turbo-pascal 62/69

 

La sentencia ASSIGN (), nos asignar el nombre de algún archivo a nuestra variable de tipo archivo. Susintaxis es la siguiente:

 ASSIGN (VarArchivo, NombreArchivo);

Donde NombreArchivo es una cadena de caracteres que contiene el nombre del archivo, la unidad de discodonde 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 información 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 enmodo de escritura, usando la sentencia APPEND () o REWRITE (), posteriormente se utilizan la instrucciónWriteLn (), 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 modode lectura, usando la sentencia RESET (), posteriormente se utilizan la instrucción ReadLn (), para leer losdatos. Su sintaxis es la siguiente:

ReadLn (Var_Archivo, Datos);

En este ejemplo abriremos un archivo de texto, y leeremos su contenido:

Page 63: Programacion Turbo Pascal

5/7/2018 Programacion Turbo Pascal - slidepdf.com

http://slidepdf.com/reader/full/programacion-turbo-pascal 63/69

 

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 también son llamados archivos con tipo, estos poseen una secuencia de componentesaccesibles individualmente, a los cuales llamaremos registros, un registro es un agrupamiento de datos. Susintaxis 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 (), ycuando 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 enmodo de escritura, usando la sentencia Reset (), después se utilizan la instrucción Write (), para escribir losdatos. 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

Page 64: Programacion Turbo Pascal

5/7/2018 Programacion Turbo Pascal - slidepdf.com

http://slidepdf.com/reader/full/programacion-turbo-pascal 64/69

 

 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 modode lectura, usando la sentencia Reset (), después se utilizan la instrucción Read (), para leer los datos. Susintaxis 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.

Ubicación física en un registro específico:

El procedimiento SEEK(), nos permite colocarnos en un registro especifico, mediante un parámetro numérico,pero debemos tener cuidado de que exista el número del registro. Su sintaxis es la siguiente:

SEEK (Var_Archivo, Valor_Pos);

Fin de un Archivo:

Page 65: Programacion Turbo Pascal

5/7/2018 Programacion Turbo Pascal - slidepdf.com

http://slidepdf.com/reader/full/programacion-turbo-pascal 65/69

 

La función booleana EOF( ), nos indica cuando se llega al final de un archivo, no importando su tipo. Susintaxis es la siguiente:

Variable := EOF (Var_Archivo);

Fin de Línea:

La función booleana EOLN (), nos indica cuando se llega al final de una línea de un archivo de texto,comúnmente 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:

Page 66: Programacion Turbo Pascal

5/7/2018 Programacion Turbo Pascal - slidepdf.com

http://slidepdf.com/reader/full/programacion-turbo-pascal 66/69

 

Después de utilizar un archivo, es importante cerrarlo, evitando con esto que se dañe físicamente, elprocedimiento que realiza esta operación 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 elprograma, estas están representados en la tabla siguiente:

Constante Valor Modo de video

 BW40 0 40x25 Blanco y negro en tarjeta de color  

CO40 1 40x25 Color  

 BW80 2 80x25 Blanco y negro en tarjeta de color  

CO80 3 80x25 Color  

 Mono 7 80x25 Monocromático

Tabla de Colores:

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

Constante Valor Color  

 Black 0 Negro

 Blue 1 Azul  Green 2 Verde

Cyan 3 Cyan

 Red 4 Rojo

 Magenta 5 Magenta

 Brown 6 Marrón

 Light Gray 7 Gris claro

 Dark Gray 8 Gris oscuro

 Light Blue 9 Azul claro

 Light Green 10 Verde claro

 Light Cyan 11 Cyan claro

 Light Red 12 Rojo claro

 Light Magenta 13 Magenta claro

Yellow 14 Amarillo

White 15 Blanco

Page 67: Programacion Turbo Pascal

5/7/2018 Programacion Turbo Pascal - slidepdf.com

http://slidepdf.com/reader/full/programacion-turbo-pascal 67/69

 

 Blink 128 Parpadeo

Variable CheckBreak:

Esta variable nos permite activar o desactivar el chequeo del control break, la unión de estas dos teclas, seutilizan para quebrar la ejecución 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 línea actual, desde la posición del cursor hasta el final dela ventana.

Clrscr:

Este procedimiento limpia la ventana activa en la pantalla, dejando el cursor en la esquina superior izquierda.

DelLine:

Este procedimiento borra la línea en donde se encuentra el cursos, las demás líneas inferiores suben unaposición.

Delay ():

Este procedimiento detiene la ejecución del programa el número de milisegundos indicado, estos van de 0 a65535, la precisión del tiempo depende de los ciclos de reloj del procesador.

GotoXY ():

Este procedimiento sitúa al cursor en la posición indicada de la pantalla, donde X es el número de columnasdeseado, tomando como base del 1 al 80, e Y es el número de renglones deseados, tomando como base del1 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:

Page 68: Programacion Turbo Pascal

5/7/2018 Programacion Turbo Pascal - slidepdf.com

http://slidepdf.com/reader/full/programacion-turbo-pascal 68/69

 

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 función nos devuelve el valor actual del cursor, conforme a su eje x.Su sintaxis es la siguiente:

Variable := WhereX;

WhereY:

Esta función 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 sección delimitadapor la nuevas dimensiones, para ello se define en los parámetros, la esquina superior izquierda y inferior derecha. Su sintaxis es la siguiente:

Window (Xsi, Ysi, Xid, Yid);

Ejercitación

• 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 unprograma que los utilice.

• A continuación se exponen 5 problemas, las cuales deben ser resueltos con sus respectivosprogramas en Turbo Pascal.

Procedimientos a Seguir:

Análisis y comprensión del problema.

Planteamiento del algoritmo de solución.

Codificación del algoritmo.

Compilación y Verificación del resultado.

• Realizar un programa que simule una calculadora con las operaciones matemáticas básicas, elprograma debe contar con un menú de opciones.

• Realizar un programa que cuente todas las palabras de un archivo de texto.

Page 69: Programacion Turbo Pascal

5/7/2018 Programacion Turbo Pascal - slidepdf.com

http://slidepdf.com/reader/full/programacion-turbo-pascal 69/69

 

• Realizar un programa que almacene una agenda telefónica.

• Realizar un programa que convierta un número en base 10 a binario.

• Realizar un programa que calcule el valor de e.