TY - BOOK AU - Joyanes Aguilar,Luis AU - Zahonero Martínez,Ignacio AU - Hermoso López,Angel TI - Pascal y turbo pascal : : un enfoque práctico / SN - 8448118952 PY - 1995/// CY - Madrid PB - McGraw-Hill KW - LENGUAJE PASCAL KW - PASCAL KW - TURBO PASCAL KW - LENGUAJE DE PROGRAMACION N1 - CONTENIDO 1. Algoritmos y programas 1 1.1. Diseño de programas 1 1.2. Análisis del problema 3 1.3. Diseño y verificación de algoritmos 4 1.3.1. Verificación de algoritmos 7 1.4. Herramientas de programación 7 1.5. Los diagramas de flujo 8 1.6. Pseudocódigo 12 1.7. Codificación 14 1.8. Documentación 14 1.9. Compilación y ejecución 16 1.10. Verificación 17 1.11. Programación modular 17 1.12. Programación estructurada 20 1.13. Diagramas de estructura 22 1.14. Aplicaciones 26 1.14.1. Estructuras secuenciales 26 1.14.2. Estructuras alternativas 28 1.14.3. Estructuras repetitivas 30 1.15. Los lenguajes Pascal y Turbo Pascal 34 1.15.1. Turbo Pascal 35 2. Introducción a Pascal y Turbo Pascal 37 2.1. Elementos de un programa en Pascal 37 2.2. La estructura de un programa en Turbo Pascal 39 2.3. La sección de declaraciones 39 2.4. El programa principal 42 2.5. Tipos de datos predefinidos 43 2.6. Tipos definidos por e! usuario 45 2.7. La operación de asignación 46 2.8. Operaciones de Entrada/Salida 46 2.9. Operadores aritméticos 49 2.10. unciones predefinidas 49 Problemas resueltos 50 Problemas suplementarios 61 3. Estructuras de control alternativas 63 3.1. Operadores y expresiones 63 3.1.1. Operadores relacionales 63 3.1.2. Operadores lógicos 64 3.1.3. Expresiones lógicas 65 3.2. Estructuras de control 65 3.3. Estructuras alternativas 65 3.4. Sentencias If-then e If-then-else 66 3.5. Sentencias Case 67 3.6. La sentencia incondicional Goto 68 3.7. Evaluación de expresiones lógicas en cortocircuito 68 Problemas resueltos 69 Problemas suplementarios 85 4. Estructuras de control repetitivas 87 4.1. La sentencia While 87 4.1.1. Funcionamiento 87 4.1.2. Características del bucle While 89 4.2. La sentencia Repeat-until 89 4.2.1. Características del bucle Repeat 90 4.3. La sentencia For 91 4.3.1. Funcionamiento 91 4.4. ¿Cuándo utilizar While/Repeat/For? 93 4.5. Bucles anidados 93 Problemas resueltos 94 Problemas suplementarios 106 5. Procedimientos y funciones 113 5.1. Concepto de subprogramas (procedimientos y funciones) 113 5.2. El intercambio de información: los parámetros 113 5.2.1. Parámetros por valor y por variable 114 5.3. Declaraciones locales y globales 114 5.4. Efectos laterales 115 5.5. Estructura, declaración y empleo de un procedimiento 115 5.5.1. Declaración de procedimientos 116 5.5.2. Declaración de parámetros formales 116 5.5.3. Llamada o invocación a un procedimiento 116 5.6. Estructura, declaración y empleo de una función 118 5.6.1. Llamada a una función 118 5.6.2. Parámetros variables en funciones 119 5.7. ¿Funciones o procedimientos? 120 5.8. Funciones de biblioteca 120 5.9. Recursividad 120 5.10. Tipos procedimiento 122 5.11. Declaración de los tipos procedimiento 122 Problemas resueltos 126 Problemas suplementarios 146 6. Listas y tablas (arrays) 147 6.1. Concepto y clasificación de estructuras 147 6.2. La estructura array 148 6.2.1. Declaración de tipos y variables array 148 6.3. Operaciones con arrays 150 6.3.1. Acceso a los elementos de un array 150 6.3.2. Operaciones con la estructura 150 6.3.3. Constantes variables array 150 6.4. Arrays especiales: las cadenas de caracteres 151 6.5. Operaciones con cadenas 152 6.5.1. Operador de Concatenación (+) 152 6.5.2. La función Concat 153 6.5.3. La cadena vacía o nula 153 6.5.4. Acceso a los elementos de una cadena 153 6.5.5. Función Length 153 6.6. Funciones de tratamiento de cadenas 154 6.7. Tratamiento de cadenas en Pascal estándar 157 6.7.1. Definición del tipo cadena en Pascal estándar 157 6.7.2. Operaciones con cadenas en Pascal estándar 159 6.8. Procedimientos PACK Y UNPACK 164 Problemas resueltos 165 Problemas suplementarios 210 7. Búsqueda, ordenación y mezcla en listas 213 7.1. Métodos de búsqueda 213 7.1.1. Búsqueda secuencial 213 7.1.2. Búsqueda binaria 215 7.2. Métodos de ordenación 217 7.2.1. Ordenación por intercambio 218 7.2.2. Ordenación por selección 219 7.2.3. Ordenación por inserción 219 7.2.4. Ordenación QuickSort 220 7.2.5. Ordenación por montículo 222 7.2.6. Ordenación Shell 225 7.3. Mezcla de listas 226 Problemas resueltos 227 Problemas suplementarios 250 8. Conjuntos 253 8.1. Concepto de conjunto 253 8.2. Conjuntos constantes 254 8.3. Operaciones con conjuntos 254 8.4. La pertenencia a un conjunto. El operador IN 258 8.5. La operación de entrada y salida en la estructura conjunto 258 8.6. Prioridad de operadores en Pascal y Turbo Pascal 259 Problemas resueltos 259 Problemas suplementarios 268 9. Registros 271 9.1. La estructura de datos registro 271 9.2. El acceso a los componentes de un registro. La sentencia With 272 9.3. Registros como operandos y parámetros 273 9.4. Registros jerárquicos 274 9.4.1. Sentencias With anidadas 274 9.5. Registros variantes 275 9.6. Constantes tipo registro 276 Problemas resueltos 276 Problemas suplementarios 311 10. Archivos en Turbo Pascal 315 10.1. Conceptos generales de archivos 315 10.2. Declaración y apertura de archivos 315 10.2.1. El procedimiento Assign 316 10.2.2. El procedimiento Resel 317 10.2.3. La función Ioresult 317 10.2.4. El procedimiento Rewrite 318 10.2.5. El procedimiento Close 318 10.3. Procedimientos de entrada y salida 318 10.3.1. El procedimiento Read 318 10.3.2. Fin de archivo: Eof 319 10.3.3. El procedimiento Write 319 10.4. Archivos de texto 319 10.4.1. Declaración de archivos de texto 319 10.4.2. Escritura en un archivo de texto: Write y WriteLn 320 10.4.3. Lectura en un archivo de texto: Read y ReadLn 321 10.4.4. La función Eoln 321 10.4.6. Añadir datos en un archivo de texto: Append 322 10.5. Archivos de acceso directo (con tipos) 322 10.5.1. Apertura de un archivo 323 10.5.2. Tamaño. Registro actual y posición 323 10.5.3. Lectura y escritura de archivos 324 10.5.4. Cierre de un archivo 324 10.6. Paso de archivos como parámetros 324 10.7. El tratamiento de archivos desde Turbo Pascal 324 10.7.1. Cambio de nombre y borrado de un archivo 325 10.8. Ordenes de manipulación de directorios 325 Problemas resueltos 326 Problemas suplementarios 369 11. Archivos en Pascal estándar (ANSI/ISO) 373 11.1. La variable buffer de fichero 373 11.2. Put, Get, Reset y ReWrite 374 11.3. El procedimiento Page 375 11.4. Los ficheros Input y Output 375 Problemas resueltos 376 Problemas suplementarios 389 12. Estructuras dinámicas de datos (I): punteros 391 12.1. El tipo de dato puntero 391 12.2. Los procedimientos New y Dispose 392 12.3. Estructuras dinámicas de datos 395 12.4. Listas simplemente enlazadas 395 12.4.1. Declaración de un nodo 396 12.4.2. Manipulación de listas enlazadas con punteros 396 12.5. Listas doblemente enlazadas 399 12.6. Listas circulares 400 12.7. Pilas 400 12.8. Colas 401 Problemas resueltos 402 Problemas suplementarios 434 13. Estructuras dinámicas de datos (II): árboles 437 13.1. Estructuras dinámicas de datos no lineales 437 13.2. Árboles 438 13.3. Árboles binarios de búsqueda 439 13.4. Operaciones en árboles binarios de búsqueda 439 13.4.1. Búsqueda 440 13.4.2. Inserción 440 13.4.3. Eliminación 440 13.4.4. Recorrido de un árbol binario 440 Problemas resueltos 442 Problemas suplementarios 473 14. Guía del usuario ISO/ANSI. Pascal estándar 477 14.1. Elementos del lenguaje Pascal 477 14.1.1. Conjuntos de caracteres 477 14.1.2. Símbolos especiales 478 14.1.3. Palabras reservadas 478 14.1.4. Identificadores 478 14.1.5. Cadenas de caracteres 478 14.1.6. Separadores 478 14.1.7. Comentarios 479 14.1.8. Etiquetas 479 14.1.9. Directivas 479 14.2. Tabla de identificadores estándar 479 14.2.1. Constantes 479 14.2.2. Tipos estándares 479 14.2.3. Variables fichero 479 14.2.4. Funciones 480 14.2.5. Procedimientos 480 14.2.6. Listado alfabético 480 14.3. Estructura de u n programa 480 14.3.1. Cabecera de un programa 480 14.3.2. Declaraciones 481 14.3.3. Bloque o cuerpo principal 482 14.4. Tipos de datos 482 14.4.1. Definición de tipos 483 14.4.2. Tipos simples 483 14.4.3. Tipos estructurales o compuestos 484 14.5. Tipos compatibles 493 14.6. Operadores 494 14.7. Entradas y salidas básicas 495 14.7.1. Salida con WriteLn y write 495 14.7.2. Entrada (lectura) con Read y ReadLn 496 14.8. Sentencias 496 14.8.1. Sentencia de asignación 496 14.8.2. Sentencia compuesta 497 14.8.3. Sentencia procedimiento 497 14.8.4. Sentencias condicionales 497 14.8.5. Sentencias repetitivas (bucles) 499 14.9. Procedimientos y funciones definidos por el usuario 501 14.9.1. Declaración de un procedimiento 501 14.9.2. Llamada a un procedimiento 502 14.9.3. Declaración de una función 502 14.9.4. Llamada a una función 503 14.9.5. Parámetros variables 503 14.9.6. Parámetros valor 504 14.9.7. Parámetros función 504 14.9.8. Parámetros procedurales 505 14.9.9. Directiva forward 505 14.10. Funciones intrínsecas 506 14.10.1. Funciones numéricas 506 14.10.2. Funciones de transferencia 506 14.10.3. Funciones ordinales 507 14.10.4. Funciones boolean (lógicas) 507 14.11. Procedimientos intrínsecos 507 14.11.1. Procedimientos de tratamiento de archivos 507 14.11.2. Procedimientos de asignación dinámica 508 14.11.3. Procedimientos de transferencia (empaquetamiento) 509 Problemas resueltos 509 Problemas suplementarios 531 15. Guía del usuario de Turbo Pascal (5.5, 6.0, 7.0) 539 15.1. Lenguaje 539 15.1.1. Palabras reservadas 539 15.1.2. Directivas (se pueden redefinir) 539 15.1.3. Identificadores 539 15.1.4. Cadenas de caracteres 540 15.1.5. Comentarios 540 15.1.6. Línea de programa 540 15.1.7. Estructura de un programa 540 15.1.8. Procedimientos y funciones 540 15.2. Unidades 541 15.2.1. Unidades estándar 541 15.2.2. Sintaxis de la unidad 541 15.3. Dispositivos 541 15.4. Tipos de datos 542 15.4.1. Tipos simples 542 15.4.2. Tipos subrango 542 15.4.3. Tipos enumerados 542 15.4.4. Tipos estructurados 542 15.4.5. Tipos procedimiento 543 15.5. Variables y constantes 543 15.5.1. Constantes predefinidas 543 15.5.2. Declaración de variables 543 15.5.3. Variables absolutas 543 15.5.4. Variables predefinidas 544 15.5.5. Constantes con tipos 544 15.6. Operadores 545 15.6.1. Aritméticos 545 15.6.2. Lógicos 546 15.6.3. Relacionales 546 15.6.4. De conjunto 546 15.6.5. Dirección 547 15.6.6. Concatenación 547 15.6.7. Prioridad de operadores 547 15.7. Sentencias 547 15.7.1. Asignación 547 15.7.2. Compuesta 547 15.7.3. Selectiva (if) 547 15.7.4. Selectiva (if-anidada) 548 15.7.5. Selectiva múltiple (case) 548 15.7.6. Sentencia repetitiva for 548 15.7.7. Sentencia repetitiva while 549 15.7.8. Sentencia repetitiva repeat 549 15.8. Ambito y localidad 549 15.9. Procedimientos y funciones estándar 550 15.9.1. Funciones aritméticas 550 15.9.2. Funciones de transferencia 551 15.9.3. Procedimientos de flujo de control 551 15.9.4. Procedimientos o funciones ordinales 551 15.9.5. Tratamiento de cadenas 552 15.9.6. Punteros y direcciones 553 15.9.7. Asignación dinámica 553 15.9.8. Procedimientos y funciones diversas 554 15.9.9. Procedimientos de tratamiento de archivos 555 15.9.10. Entradas/Salidas 555 15.10. Funciones definidas por el usuario 557 15.10.1. Declaración 557 15.11. Archivos 557 15.11.1. Preparación de un archivo 557 15.11.2. Creación de un archivo de registros 557 15.11.3. Almacenar datos de un archivo 558 15.11.4. Cerrar un archivo 558 15.11.5. Lectura de un archivo de registros 558 15.11.6. Cambiar registros de un archivo de registros 559 15.12. Directivas de compilación 558 15.12.1. Directivas de conmutación 558 15.12.2. Directivas parámetro 559 15.12.3. Directivas de compilación condicional 559 15.12.4. Símbolos condicionales 560 15.13. Control de dispositivos 560 15.13.1. Caracteres de control 560 15.13.2. Teclas de edición de entrada de líneas 560 Problemas resueltos 562 Problemas suplementarios 572 ER -