Indice Prefacio............................. 8 Introduccion.......................... 9 1.- Conceptos basicos................... 10 1.1) Estructura de un programa................................ 12 1.2) Algunas convenciones de turbo pascal..................... 13 1.3) El problema de no inicializar las variables.............. 14 1.4) La sentencia program..................................... 15 1.5) La sentencia uses........................................ 15 1.6) La sentencia label....................................... 15 1.7) La sentencia const....................................... 16 1.7.1) Constantes simples............................... 16 1.7.2) Constantes con tipo.............................. 16 1.7.3) Expresiones constantes........................... 17 1.8) La sentencia type........................................ 17 1.8.1) El tipo ordinal.................................. 19 1.8.1.1) Las enumeraciones...................... 19 1.8.1.2) El tipo boolean........................ 19 1.8.1.3) El tipo subrango....................... 20 1.9) Los tipos reales......................................... 22 1.9.1) El tipo single................................... 23 1.9.2) El tipo real standard............................ 23 1.9.3) El tipo double.................................... 23 1.9.4) El tipo extended................................ 23 1.10) Los tipos de caracteres ................................. 24 1.10.1) Tipo char......................................... 24 1.10.2) Tipo string................................... 24 1.11) El tipo array ......................................... 26 1.12) El tipo registro ........................................ 27 1.12.1) Los registros variantes......................... 29 1.12.2) Registros variantes de enlace libre........... 31 1.13) El tipo set ............................................ 33 1.13.1) Operaciones sobre cojuntos..................... 34 1.13.2) Los operadores en conjuntos.................... 34 1.14) Tipos de cadena ....................................... 34 1.15) Constantes con tipo .................................. 36 1.15.1) Array constantes.................................. 36 1.15.2) Registros constantes............................ 37 1.15.3) Conjuntos constantes........................... 37 1.16) Los operadores..................................... 38 1.16.1) Los operadores matematicos..................... 38 1.16.2) Los operadores logicos........................ 39 2.- Estructuras de control........... 26 2.1) La sentencia if-then-else................................. 26 2.1.1) Los if-then anidados.............................. 28 2.1.2) Evaluacion booleana en cortocircuito.. .......... 28 2.1.3) Cadenas if-then-else............................. 29 2.2) La sentencia case...................................... 29 2.3) La sentencia for.......................................... 30 2.4) Bucle while-do............................................ 32 2.5) Bucle repeat-until....................................... 34 3.- Procedimientos y funciones... 37 3.1) Los procedimientos.................................... 37 3.2) Las funciones............................................. 38 3.2.1) Funciones predefinidas......................... 38 3.2.1.1) Funciones numericas generales........ 39 3.2.1.2) Funciones trigonometricas............ 40 3.2.1.3) Funciones sobre ordinales............. 40 3.2.1.4) Funciones de entrada y salida......... 41 3.2.1.5) Funciones de ruptura de codigo........ 42 3.2.1.6) Funciones sobre numeros aleatorios ..... 42 3.2.1.7) Otras funciones........................ 43 3.3) Parametros pasados por referencia..................... 45 3.4) Alcance de las variables................................. 49 3.5) La recursividad........................................... 50 4.-Tratamiento de cadenas.......... 51 4.1) Funciones relacionadas con las cadenas ................ 64 4.2) Controlando el formato de salida ........................ 65 5.- Temas aparte.......................... 73 5.1) Cambio del tipo de dato ................................. 73 5.2) Parametros en linea de comandos .......................... 73 5.3) Declaraciones forward..................................... 74 6.- Archivos................................... 75 6.1) El tipo file ............................................. 75 6.2) Ficheros secuenciales..................................... 76 6.2.1) Los ficheros de texto............................. 76 6.2.2) Escritura de un archivo de texto................ 76 6.2.3) Lectura de archivos de texto..................... 77 6.2.4) El final de un archivo de texto................... 77 6.3) Los ficheros binarios.................................. 80 6.3.1) Los ficheros de acceso directo.................. 82 6.4) Ficheros sin tipo......................................... 82 6.5) Otros procesos relacionados sobre archivos............ 83 6.6) Otros dispositivos de salida............................ 85 6.7) Algunos poblemas comunes................................ 86 6.7.1) Ordenacion de un archivo.......................... 86 6.7.2) Busqueda binaria.................................. 88 6.7.3) Fichero de claves............................. 88 7.- Punteros................................... 91 7.1) El heap.................................................. 91 7.2) Punteros con tipo....................................... 91 7.3) La sentencia new....................................... 93 7.4) Valores de los punteros.................................. 93 7.5) Creacion de una lista................................. 94 7.6) Listas de doble enlace.................................... 97 7.7) Listas circulares..................................... 98 7.8) Arboles binarios ....................................... 100 7.9) Principales funciones para trabajar con punteros ....... 100 7.10) Consideraciones avanzadas sobre punteros ............ 101 7.10.1) Punteros a arrays............................... 101 7.10.2) El colmo de los punteros!....................... 102 7.11) Los punteros sin tipo .............................. 104 7.12) Cuando no alcanza la memoria ....................... 104 8.- Unidades.................................. 106 8.1) La seccion de interface ................................. 111 8.2) La seccion de implementacion .......................... 111 8.3) Uses en la implementacion ........................... 111 8.4) El cuerpo de una unidad ............................... 112 8.5) La seccion de inicializacion .......................... 112 8.6) Procedimientos de salida .............................. 112 8.7) Trabajando con ficheros compilados de unidades ...... 113 8.7.1) Uso de tpumover.................................. 113 8.8) Acceso a identificadores iguales ....................... 114 8.9) Los overlays ........................................ 114 8.9.1) Otros procedimientos en la unidad overlays...... 116 8.9.2) Algunos problemas con los overlays............. 117 9.- La unidad Crt......................... 119 9.1) Ventajas y desventajas de usar la unidad crt ........ 121 9.2) Algunas variables en crt ............................... 122 10.- Las unidad Graph................ 129 10.1) La entrada al modo grafico ......................... 129 10.2) Posibles errores devueltos .......................... 131 10.3) El cambio de modo texto a grafico .................. 132 10.4) Comenzando a trabajar en modo grafico .................. 132 10.4.1) Coordenadas absolutas........................... 133 10.4.2) Coordenadas relativas........................ 133 10.4.3) Procedimientos que actuan sobre el cp............ 134 10.4.4) Cambiando la ventana por defecto............... 134 10.4.5) La relacion de aspecto........................ 134 10.4.6) Preguntandole al bgi........................... 135 10.5) Control de los colores ................................. 137 10.5.1) Las paletas..................................... 137 10.6) Estilos de linea ....................................... 138 10.7) Los rellenos ....................................... 139 10.7.1) Creando nuestras tramas de relleno............ 140 10.7.2) Cambiando la manera de rellenar las figuras.... 141 10.7.3) Algunos procedimientos orientados a negocios..... 141 10.7.4) Dibujo y relleno de poligonos.................. 141 10.8) Las letras en modo grafico .......................... 142 10.8.1) Visualizar texto en la pantalla.................. 143 10.9) Como establecer el movimiento de los graficos.......... 144 10.9.1) Las constantes bitblts........................ 144 10.10) Otros procedimientos ................................. 146 11.- La unidad Dos...................... 152 11.1) Procedimientos relacionados con el tiempo............... 152 11.2) Procesos relacionados al estatus del disco ............. 153 11.3) Procedimientos para manejar archivos ................... 154 11.3.1) Los subdirectorios..............................154 11.3.2) La fat..........................................154 11.3.3) El psp...................................... 154 11.3.4) La dta...................................... 155 11.3.5) La variable doserror.......................... 157 11.4) Procedimientos relacionados con interrupciones ...... 158 11.4.1) La interrupcion software................... 159 11.4.2) La interrupcion hardware....................... 159 11.5) Ejecucion de procesos ................................ 162 11.6) El trabajo con el entorno.............................. 164 11.7) Otros procedimientos de la unidad dos ................ 165 12.-Objetos (OOP)..................... 174 12.1) El tipo procedimiento .................................. 174 12.2) Programacion orientada a objeto...................... 175 12.2.1) En que se basa la programacion de objetos?..... 176 12.2.2) El encapsulamiento........................... 176 12.2.3) La herencia.................................. 176 12.2.4) Declaracion de objetos..................... 176 12.2.5) Objetos privados............................... 177 12.2.6) Realizando los procedimientos declarados..... 178 12.2.7) El Polimorfismo............................ 179 12.2.8) Como se disenian los objetos................ 180 12.3) El Problema de los objetos estaticos ................... 182 12.4) Los objetos virtuales .............................. 185 12.4.1) Los constructores.............................. 185 12.4.2) Los destructores............................... 189 12.4.3) El new para los objetos..................... 189 12.5) Comunicacion entre objetos diferentes ................ 190 13.- Procesos de bajo nivel......... 191 13.1) Recursos relacionados con direcciones y punteros ....... 191 13.1.1) Variables absolutas........................... 191 13.1.2) Parametros var sin tipo..................... 194 13.2) Procedimientos de llenado rapido ................... 195 13.3) El trabajo con los bits ............................ 195 13.4) Los puertos de E/S ..................................... 196 13.5) Los procedimientos de interrupcion .................... 201 14.- Interfaz con Assembler........ 204 14.1) El inline............................................... 204 14.2) Subrutina externas..................................... 204 14.3) Para que usar lenguaje ensamblador? ................. 206 14.4) La instruccion asm ................................. 206 14.5) La instruccion assembler ............................ 207 14.6) Representacion de los tipos de dato internamente.... 208 14.6.1) Los parametros pasados por referencia.......... 208 14.6.2) Los tipo ordinales......................... 210 14.6.3) Los conjuntos............................... 210 14.6.4) Los tipos reales............................ 211 14.6.5) Los array...................................... 211 14.6.5.1) arrays de multiples dimensiones. 212 14.6.6) Los registros................................ 213 14.6.7) Assembler en programacion de objetos.......... 213 15.- Turbo Vision......................... 217 15.1) Cuestiones basicas sobre turbo vision ................. 217 15.2) Como comenzar........................................... 218 15.3) La linea de status.................................... 220 15.4) Creando una ventana................................... 221 15.5) Como crear ventanas de dialogo...................... 225 15.6) Las colecciones....................................... 228 15.7) Los streams ............................................ 231 16.- El Entorno (IDE).................. 237 16.1) El ide como herramienta de desarrollo ................. 237 16.2) El menu file ....................................... 238 16.3) El menu edit ........................................... 240 16.4) El menu search ...................................... 241 16.5) La opcion replace ................................... 242 16.6) El menu run ............................................ 243 16.7) La opcion compile................................... 244 16.8) La opcion debug .................................... 244 16.8.1) La opcion toggle breakpoint.................. 246 16.8.2) La opcion breakpoint........................ 246 16.9) El menu options ..................................... 247 16.10) La opcion window ..................................... 257 16.11) La opcion help ...................................... 257 Apendice A ........................................................ 258 Apendice B ........................................................ 261 Apendice C ........................................................ 262 .