Programación en Turbo-Borland Pascal 7 3ra Edición

559
CONSULTORES EDITORIALES ÁREA  D E  INFORMÁTICA  Y  COMPUTACIÓN Antonio Vaquero Sánchez Catedrático  d e  Lenguajes  y  Sistemas Informáticos Escuela Superior  de  Informática Universidad Complutense  de  Madrid ESPAÑA Gerardo Quiroz Vieyra Ingeniero  en  Comunicaciones  y  Electrónica por la  ESIME  de l  Instituto Politécnico Nacional Profesor  de la  Universidad Autónoma Metropolitana Unidad Xochimilco MÉXICO Programación  e n Turbo Borland Pascal  7 3 a  edición Luis Joyanes Aguilar Director  de l  Departamento  de  Lenguajes y  Sistemas Informáticos Facultad  de  Inf ormática/Escuela Universitaria  de  Informática Universidad Pontificia  d e  Salamanca  en  Madrid Osb or ne/McG raw-H ill MADRID  BUENOS AIRES  CARACAS  GUATEMALA  LISBOA  MÉXICO NUEVA YORK  PANAMÁ  SAN  JUAN  SANTAFÉ  DE  BOGOTÁ  SANTIAGO  SAO  PAULO AUCKLAND   HAMBURGO   LONDRES   MILÁN   MONTREAL  .  NUEVA DELH I  .  PARIS SAN  FRANCISCO  .  SIDNEY   SINGAPUR  . ST.  LOUIS   TOKIO   TORONTO

Transcript of Programación en Turbo-Borland Pascal 7 3ra Edición

  • 7/24/2019 Programacin en Turbo-Borland Pascal 7 3ra Edicin

    1/558

    CONSULTORES EDITORIALES

    REA D EINFORMTICA YCOMPUTACIN

    Antonio Vaquero Snchez

    Catedrtico

    d e

    Lenguajes

    y

    Sistemas Informticos

    Escuela Superior deInformtica

    Universidad Complutense de Madrid

    ESPAA

    Gerardo Quiroz Vieyra

    Ingeniero en Comunicaciones y Electrnica

    por la ESIME de l Instituto Politcnico Nacional

    Profesor de laUniversidad Autnoma Metropolitana

    Unidad Xochimilco

    MXICO

    Programacin

    en

    Turbo Borland Pascal

    7

    3

    a

    edicin

    Luis Joyanes Aguilar

    Director de l Departamento de Lenguajes

    ySistemas Informticos

    Facultad deInf ormtica/Escuela Universitaria de Informtica

    Universidad Pontificiad eSalamanca en Madrid

    Osbor ne/McGraw-Hill

    MADRID

    BUENOS AIRES

    CARACAS

    GUATEMALA

    LISBOA

    MXICO

    NUEVA YORK

    PANAM

    SAN

    JUAN

    SANTAF

    DE

    BOGOT

    SANTIAGO

    SAO

    PAULO

    AUCKLAND HAMBURGO LONDRES MILN MONTREAL. NUEVA DELHI. PARIS

    SAN FRANCISCO . SIDNEY SINGAPUR . ST. LOUIS TOKIO TORONTO

  • 7/24/2019 Programacin en Turbo-Borland Pascal 7 3ra Edicin

    2/558

    PROGRAMACIN ENTURB O/BORLAND PASCAL 7. 3.

    a

    Edicin

    No

    est permitida

    la

    reproduccin total

    o

    parcial

    de

    este libro,

    ni su

    tratamiento

    informtico, ni la transmisin de ninguna forma o por cualquier medio, ya sea

    electrnico, mecnico, po r fotocopia,p or registrouotros mtodos, sin elpermiso

    previo y por escrito de lostitulares delCopyright.

    DERECHOS RESERVADOS 1998, respecto a laprimera edicin en espaol por

    McGRAW-HILL/INTERAMERICANA DE ESPAA, S . A. U.

    Edificio Valrealty,

    1.

    a

    planta

    Basauri, 17

    28023 Aravaca (Madrid)

    ISBN: 84-481-1075-7

    Depsito legal:M .3.591-1999

    Editor: Carmelo Snchez Gonzlez

    Diseo

    de

    cubierta: Luis Sanz Cantero

    Compuesto e n F ER Fotocomposicin, S. A.

    Impresoe n Impresosy Revistas, S. A.(IMPRESA)

    IMPRESO EN ESPAA -PRINTED IN SPAIN

    A mi hijo Luis, mi otra gran pasin

  • 7/24/2019 Programacin en Turbo-Borland Pascal 7 3ra Edicin

    3/558

    CONTENIDO

    Prlogoa la primera, segundaytercera edicin xv

    Captulo 1. Introduccina laciencia de lascomputadorasy a la programacin 1

    1.1.

    Qu

    es una

    computadora?

    2

    1.2.

    Organizacin fsica

    de una

    computadora (hardware)

    2

    1.3. El

    software

    (los

    programas)

    10

    1.4. Los

    lenguajes

    de

    programacin

    11

    1.5. La

    resolucin

    de

    problemas

    c on

    computadora

    13

    1.6.

    Programacin modular

    24

    1.7.

    Programacin estructurada

    25

    1.8. Los

    lenguajes Pascal

    y

    Turbo Pascal

    28

    Resumen

    29

    Ejercicios

    30

    Captulo 2. Elentornod eprogramacinTurbo Pascal:Comenzandol a programacin . . 32

    2.1. El

    programa Turbo Pascal (versin

    7.0) 33

    2.2.

    Qu

    es un

    entorno

    de

    programacin?

    35

    2.3. El

    Entorno Integrado

    de

    Desarrollo

    (EID) 35

    2.4.

    Instalacin

    de

    Turbo Pascal

    36

    2.5. El

    entorno

    de

    programacin

    de

    Turbo Pascal

    37

    2.6. Componentes del EIDTurbo Pascal 7.0 41

    2.7. Los

    mens

    45

    2.8.

    Creacin

    de

    programas:

    1a

    edicin

    48

    2.9. Conservacin (grabacin) deprogramase ndiscos 48

    2.10.

    Compilacin

    49

    2.11.

    Ejecucin

    (Run) 50

    2.12.

    Tratamiento

    de

    archivos

    en la

    ventana

    de

    edicin

    51

    2.13. El

    depurador integrado

    52

    Resumen

    52

    ^ Captulo 3. IntroduccinaPascal 54

    3.1. La

    estructura

    de un

    programa

    en

    Pascal

    55

    3.2. Objetosde un programa 58

    3.3.

    Diagramas

    d e

    sintaxis

    61

    3.4.

    Tipos

    d e

    datos

    62

    3.5.

    Constantes

    71

    3.6.

    Variables

    73

    3.7.

    Sentencias

    75

  • 7/24/2019 Programacin en Turbo-Borland Pascal 7 3ra Edicin

    4/558

    vi i Programacin

    en

    Turbo/Borland Pascal

    7

    3.8. La

    sentencia

    de

    asignacin

    77

    3.9. Expresiones y operaciones aritmticas 79

    3 .10 . Operaciones Entrada/Salida 83

    3 .11 . Operac iones bsicas de utilidad 90

    3 .12 .

    Programa cin interactiva

    94

    3.13. El estilo de programacin 95

    3 .14 . Puesta a punto de programas 99

    Resumen 103

    Ejercicios

    103

    Problemas 107

    Captulo 4

    Estructuras

    de

    control selectivas

    109

    4 .1 . Expresiones lgicas 109

    4 .2 . La sentencia if 117

    4 .3 . Sentencias i f anidadas 122

    4 .4 . Programacin co n expresiones lgicas 126

    4 .5 . La sentencia case 131

    4 .6 . Comparacin de sentencias i f anidadas y case 134

    4 .7 . Puesta a punto deprogramas 136

    Resumen 141

    Problemas resueltos 141

    Ejercicios 143

    Problemas 145

    Captulo

    5.

    Estructuras

    de

    control repetitivas

    148

    5.1. El concepto de bucle .

    148

    5.2. Lasentencia wh i le 150

    5.3. Diseo de bucles 152

    5.4. Terminacin dlos bucles 154

    5.5. La sentencia repeat 161

    5.6. Comparacin de losbucles while y r ep ea t 163

    5.7. La sentencia fo r ) 165

    5.8. Bucles anidado s 171

    5.9. Sentencias d

    t

    control incondicional 174

    5 .10 . Eleccin de la estructura repetitiva adecuada 177

    5 .11 . Optimizacin de bucles 179

    5 .12 . Puesta a punto deprogramas ." 180

    Resumen 183

    Problemas resueltos 185

    Ejercicios 191

    Problemas 192

    Captulo 6. La programacin modular 195

    6.1. El diseo descendente: lo ssubprogramas 195

    6.2. El diseo modular: lo smdulos 198

    6 .3 .

    Procedimientos

    199

    6 .4 . Transferenciad einformacin a/desde procedimientos: lo s parmetros . . . . 2 06

    6 .5 .

    Variables locales

    y

    globales

    218

    6 .6 . Efectos laterales 221

    6 .7 .

    Ambito

    de un

    identificador

    222

    6 .8 . La declaracin forward 230

    " ~ -

    Contenido x

    6 .9 . Diseo descendente y programacin modular 232

    6 .10 .

    Incluir archivos

    en

    programas (creacin

    de

    libreras)

    239

    6 .11 . Puesta a punto de programas 241

    Resumen

    243

    Ejercicios 243

    Problemas

    247

    x

    Captulo 7. Funciones estndar

    y

    definidas por elusuario 249

    7 .1 . Las funcionesd e Turbo Pascal 250

    7 .2 . Lasfunc iones predefinidase n Turbo Pascal 250

    7 .3 . Funciones matemticas 251

    7 .4 . Funciones trigonomtricas 257

    7 .5 . Funciones ordinales 261

    7 .6 . Funciones especiales 264

    7 .7 . Funci ones especiales (bajo nivel):

    HI

    / W swap 265

    7 .8 . Incremento y decremento:

    inc/Dec

    267

    7 .9 . Nmeros aleatorios 269

    7 .10 . Funciones definidas por e l usuario 273

    7 . 1 1 . E l t ipo procedimental (PROCEDURE FUNCTION) 2 7 8

    7 .12 . Puesta a punto de programas 281

    Resumen 281

    Problemas resueltos 282

    Ejercicios 285

    Problemas 288

    - Captulo 8. Tipos de datos definidos por el usuario

    y

    conjuntos 290

    8 .1 .

    Definiciones

    d e

    tipos

    290

    8 .2 . Tipos de datos ordinales 291

    8 .3 .

    Tipos

    de

    datos subrango

    294

    8 .4 . Tipos definidos por e l usuario: enumerados 297

    8 .5 . Las funciones ordinales:

    ord,Pred

    y

    succ

    304

    8 .6 . Compatibilidad de tipos ycompatibilidad de asignacin 308

    8 .7 .

    Conjuntos

    309

    8 .8 . Operaciones co n c o n j u n t o s . . . 313

    8 .9 .

    Recapitulacin sobre conjuntos: conceptos

    y

    operaciones

    323

    8 .10 . Procedimientos especiales de conjuntos 326

    8 .11 . Puesta a punto de programas 328

    Resumen 329

    Ejercicios . 32 9

    Problemas . 330

    Captulo 9. Introduccin a las estructuras de datos:arrays 332

    9 .1 . Concepto de estructuras de datos 333

    9 .2 . Qu es un array? 333

    9 .3 . Arrays unidimensionales: lo s vectores 334

    9 .4 . Operaciones co n arrays (vectores) 341

    9 .5 . Arrays como parmetros 345

    9 .6 . Valores mnimo ymximo d e u n vector 348

    9 .7 . La directiva de l compilador R 349

    9 .8 . Arrays paralelos 350

    9 .9 .

    Arrays multidimensionales

    351

  • 7/24/2019 Programacin en Turbo-Borland Pascal 7 3ra Edicin

    5/558

    X Programacin en Turbo/Borio,idPascal7

    9.10. Arrays bidimensionales (tablas) 352

    9.11. Tratamiento de arrays multidimensionales 361

    9.12. Compatibilidady conversin de tipos 364

    9.13. Constantesd etipo array (tipeadas) 365

    9.14. Arrays abiertos 366

    9.15.

    Puesta

    a

    punto

    de

    programas

    369

    Resumen

    370

    Problemas resueltos 370

    Ejercicios

    374

    Problemas

    377

    Capitulo1 0. Tratamientodecadenasd ecaracteres 380

    10.1. Concepto de cadena decaracteres (string) 380

    10.2. Longitud de una cadena 381

    10.3. Operaciones entre cadenas 385

    10.4. Procedimientos y funcionesde cadena internos 386

    10.5. Otras propiedadesde lascadenas 394

    10.6. Parmetro s array abierto de tipoCHAR 398

    10.7. Parmetro s cadena abierta 399

    10.8. Cadenas terminad as en nulo 401

    10.9. La unidad strings: funciones 402

    Resumen 407

    Ejercicios 409

    Problemas

    412

    Captulo

    11. El

    control

    de la

    pantalla

    y del

    teclado

    414

    11.1. La unidad c r t 4 1 4

    11.2. Lasvariablesc r t 4 1 7

    11.3. Rutinasd econtrold e pantalla 419

    11.4. Pantallas versus ventanas 423

    11.5. Pantalla de texto 424

    11.6. Coordenadas depantalla: posicin del cursor 426

    11.7.

    Reglas prcticas para

    el

    control

    de la

    pantalla

    428

    11.8. El control de lteclado 430

    11.9. El

    control

    de l

    tiempo

    y de

    sonidos

    434

    Captulo 12 . Ingeniera de software: introduccin a la medotologa de construccin de

    grandes programas 438

    12.1. La complejidad inherente al software 438

    12.2. La crisisd el software 440

    12.3.

    Factores

    en la

    calidad

    de l

    software

    442

    12.4. El

    ciclo

    d e

    vida

    del

    software

    443

    12.5. La

    documentacin

    449

    12.6. Mtodos formalesd everificacind eprogramas 451

    12.7. Principios dediseo de sistemas 458

    12.8. Estilod e programacin 463

    12.9. Diseo dealgoritmos 47 3

    12.10. Codificacin 474

    12.11. Prueba

    (Testing)

    474

    12.12. Depuracin 475

    12.13. Eficiencia 478

    12.14. Transportabilidad(Portabilidad) 481

    Contenido

    X

    Captulo

    13.

    13.1.

    13.2.

    13.3.

    13.4.

    13.5.

    13.6.

    13.7.

    13.8.

    13.9.

    Captulo14.

    14.1.

    14.2.

    14.3.

    14.4.

    14.5.

    14.6.

    14.7.

    14.8.

    14.9.

    14.10.

    14.11.

    Captulo 15.

    15.1.

    15.2.

    15.3.

    15.4.

    15.5.

    15.6.

    15.7.

    15.8.

    15.9.

    15.10.

    15.11.

    15.12.

    15.13.

    15.14.

    15.15.

    15.16.

    15.17.

    15.18.

    15.19.

    15.20.

    Captulo 16.

    16

    1

    1 6 . 2 .

    16.3

    16.4

    Ordenacin, bsqueda ymezcla 484

    Introduccin 484

    Ordenacin 485

    Ordenacin po rburbuja 486

    Ordenacin p orseleccin 493

    Ordenacin po r insercin 495

    Ordenacin Shell 498

    Bsqueda lineal 501

    Bsqueda binaria 505

    Mezcla 509

    Registros 515

    El

    tipo

    de

    datos registro

    516

    La sentencia

    with

    520

    Registros jerrquicos (anidados)

    521

    Lo s registros como parmetros 527

    Arravs

    deregistros 531

    Registros variantes 534

    Constantes detipo registro (

    tipeadas

    ) 543

    Bsqueda en un array deregistros 544

    Bsqueda po r conversin de claves (

    hashing

    ) 547

    Ordenacin de un

    array

    deregistros 552

    Puesta a punto de programas 556

    Archivos 564

    Introduccin a losarchivos 565

    Lo s archivose n Turbo Pascal 566

    Lo s archivosd etexto (secuenciales) 570

    Tratamiento

    de

    archivos

    d e

    texto

    572

    Redirecciones de las entradas/salidas estndar 579

    Lo sarchivos deacceso aleatorio(con tipos) 582

    Tratamiento de archivosd eacceso aleatorio 584

    Mantenimiento

    de

    archivos aleatorios

    586

    Deteccin

    de

    errores

    de

    Entrada/Salida

    (E/S) 593

    Errores de E/S bajo MS-DOS 595

    Tratamiento completo

    de

    archivos aleatorios

    595

    Archivoss in tipos 604

    Borrar yrenombrar archivos 606

    Dispositivose n Turbo Pascal 608

    Escriturae n impresora 609

    Archivos detexto asociadosaunidades lgicas 610

    Lo sarchivos como parmetros deprocedimientos 611

    Ordenacin de archivos 611

    Mezcla de archivos 612

    Puesta apunto de programas 616

    La recursividad 620

    La

    naturaleza

    de la

    recursividad

    620

    El

    seguimiento

    de la

    recursividad

    629

    Pilas 631

    Subprogramas recursivosc on parmetros tipo array 633

  • 7/24/2019 Programacin en Turbo-Borland Pascal 7 3ra Edicin

    6/558

    X

    Programacin

    en

    Turbo/Borland Pascal

    7

    16.5. La eficiencia (iteracin

    ver sus

    recursividad) 635

    16.6. Recursividad indirecta : declara cin Forward 637

    16.7.

    Bsqueda binaria recursiva

    639

    16.8. Ordena cin rpida (qttteksorf) 642

    16.9. Ordenacin po r mezclir(ordeacin externa) 646

    16.10.

    El

    problema

    de la s

    Torres

    de

    Hanoi

    650

    16.11. Recursin mutu a 653

    16.12. La recursividad, pros y contras (sntesis) 654

    16.13. Puesta a punto de programas 655

    Captulo

    17 .

    Pilas

    y

    colas

    6 6 0

    17.1.

    Introduccin

    6 6 0

    17.2. Qu es una pila? 661

    17.3. Realizacin de pilas co n arrays (vectores) y registros 6 6 4

    17.4.

    Qu

    es una

    cola?

    6 7 0

    17.5. Aplicaciones de la s colas '. 67 1

    17.6. Realizacin d e u n a cola co n arrays yregistros 671

    17.7. Puesta a punto de programas 676

    Captulo 18 . Estructuras dinmicas dedatos: punteros y listas enlazadas 6 8 0

    18.1. Estructuras de datos dinmicas 680

    18.2.

    Punteros

    682

    18.3. Operaciones co n variables puntero: lo s procedimientos

    N ew

    yDispose . . . 685

    18.4. El tipo genrico puntero (pointer) 700

    18.5. La funcin assigned 701

    18.6. La asignacin de memoria en Turbo Pascal 701

    18.7. Listas enlazadas 706

    18.8. Operaciones e n u n a lista enlazada 710

    18.9.

    Listas circulares

    721

    18.10. Listas dobleme nte enlaza das 723

    18.11. Diseo de pilas co n listas enlazadas 725

    18.12. Diseo

    de

    colas

    co n

    listas enlazadas

    727

    18.13. Puesta apunto d e programas 729

    Captulo

    19 .

    Arboles

    733

    19.1. Concepto de rbol 733

    19.2. Arboles binarios 736

    19.3.

    Arboles

    de

    expresin

    742

    19.4. Construccin de un rbol binario 745

    19.5. Recorrido de un rbol 747

    19.6. Arbol binario de bsqueda 751

    19.7. Operaciones en rboles binarios de bsqueda 760

    Captulo

    20 .

    Construccin

    de

    grandes programas

    la s

    unidades

    y la

    compilacin indepen-

    diente) 770

    20 .1 . Concepto de unidad 771

    20 .2 . Estructura d e u n a unidad 771

    20 .3 . Creacin de unidades 774

    20 .4 . Utilizacin de unidad estndar 782

    20 .5 .

    Situacin

    de las

    unidades

    en sus

    discos: Dnde busca Turbo Pascal

    l a s u n i -

    dades? 786

    Contenido xiii

    20 .6 . Identific adores idnticos en diferentes unidades 788

    20 .7 . Sntesis de unidades 789

    20 .8 . Otros mtodos de estructurar programas: inclusin, solapamientos y enca-

    denamiento

    791

    Captulo

    21 .

    Unidades estndar

    805

    21 .1 . Las unidades estndar 805

    21 .2 . La unidad System 806

    21 .3 . La unidad

    Printer

    806

    21 .4 . La unidad

    D os

    808

    2 1 . 5 . Procedimientos y funciones de la unidad D o s 811

    21 .6 . La unidad C r t 819

    21 .7 . La unidad Strings: Funciones 825

    21 .8 . La

    unidad

    Turbo3 829

    Captulo 22 . Tipos abstractos de datos yobjetos 834

    22 .1 . E l

    Papel

    (el Rol) de la

    abstraccin

    835

    2 2 . 2 . U n nuevo paradigma de programacin 838

    22 .3 . Modularidad 840

    22 .4 . Diseo de mdulos 843

    22 .5 . Tipos de datos 845

    22 .6 . Abstraccin en lenguajesd e programacin 846

    22 .7 . Tipos abstractos de datos 849

    22 .8 .

    Tipos abstractos

    de

    datos

    en

    Turbo Pascal

    851

    2 2 . 9 . Orientacin aobjetos 854

    22.10. Reutilizacin de software 838

    22.11. Lenguajesd e programacin orientados a objetos 859

    22.12. Desarro llo tradicion al frente a orientado a objetos 863

    22.13. Beneficios de las tecnologas de objetos 864

    Captulo 23 . Programacin orientada a objetos 86 8

    23 .1 . Programacin estructurada 869

    23 .2 . Qu es programacin orientada a objetos? 871

    2 3 . 3 . U n m u n d o de objetos: notaciones grficas 877

    23 .4 .

    Comunicaciones entre objetos:

    lo s

    mensajes

    883

    23 .5 . Estructura interna de un objeto 886

    23 .6 . Estructura interna d e u n a clase 888

    23 .7 . Herencia 890

    23 .8 . Anulacin/Sustitucin 897

    23 .9 . Sobrecarga 898

    23.10. Ligadura dinmi ca

    899

    Captulo

    24 .

    Programacin orientada

    a

    objetos

    co n

    Turbo Pascal 7

    904

    24 .1 . La estructura de los objetos: sintaxis 905

    24 .2 . Secciones pblica y privada 912

    24 .3 . Definicin de objetos mediante unidades 915

    24 .4 . La herencia 917

    24 .5 . Los mtodos - 925

    2 4 . 6 . Objetos dinmicos 926

    24 .7 .

    Polimorfismo

    935

    24 .8 . Constructores ydestructores 942

  • 7/24/2019 Programacin en Turbo-Borland Pascal 7 3ra Edicin

    7/558

    XV Programacin en Turbo/Borland Pascal 7

    24 .9 . Los procedimientos new y d i sp o se en programacin orientada a objetos . . 945

    24.10. Mejoras en programacin orientada aobjetos 946

    Apndice

    A. Cdigos de referencia 95

    B. Palabra s reservadas 957

    C. El editor de Turbo Pascal 7 .0 959

    D . E lentorno integrado d e desarrollo Turbo Pascal 7 .0 963

    E.

    Operaciones

    m s

    ususales

    c on

    Turbo Pascal

    7 980

    F. Directivas de compilacin 983

    G. Depuracin de sus programas en Turbo Pascal 998

    H. Mensajesy cdigos de error 1011

    I. Gua d ereferencia Turbo Pascal 7.0, 6.0 y 5.5 1019

    J. Diagramas de sintaxis Turbo Pascal 7.0, 6.0 y 5.5 1044

    K. Gua de l usuario ISO/ANSI Pascal estndar 1059

    L.

    Pascal estndar (ANSI Pascal)

    versus

    Turbo Pascal

    5.5 a 7.0 1081

    Bibliografa 1084

    Indice

    1086

    PRLOGO

    A LA

    PRIMERA,

    SEGUNDA YTERCERA EDICIN

    Un a historia breve de Pascal yTurbo Pascal

    A

    principio

    de los

    aos setenta,

    y

    tras

    lo s

    estudios efectuados

    en la

    dcada anterior

    en

    la realizacin de l lenguaje ALGOL-68, Niklaus Wirth, u n profesor d e Eidgenssiche

    Technische Hochschule (Instituto Tecnolgico) d e Zurich (Suiza), dise Pascal, un l en -

    guaje concebido para laenseanza d e tcnicas d e programacin a estudiantes universi-

    tarios, que con e l correr de los tiempos se ha convertido en estndar de l mundo de la

    programacin.

    El

    objetivo fundamental

    y a

    comentado anteriormente

    de su

    creador

    fu e

    desarro-

    llar

    u n

    lenguaje

    q u e

    permitiera

    ensear programacin como

    un a

    disciplina sistemtica

    basada en determinados conceptos fundamentales.

    Estos conceptos

    se

    reflejan

    d e

    modo

    claro

    y

    natural

    en el

    lenguaje.

    E l

    libro

    Pascal User Manual an d Report,

    escrito

    p o r

    Wirth

    y K .

    Jensen, publicado

    en 1974,

    sirvi como definicin bsica

    de l

    lenguaje Pascal.

    A m e-

    dida

    que s u us o

    creci

    en las

    comunidades educativa

    y

    profesional, aparecieron diferen-

    te s

    implementaciones; para asegurar

    que l os

    programas Pascal escritos

    en un

    sistema

    puedan

    se r

    ejecutados

    en

    otros,

    s e han

    diseado diferentes estndar: IEEE

    e I S O ,

    entre

    l o s que

    destacaba

    el

    UCSD Pascal

    e n

    ambientes universitarios americanos

    ha

    gozado

    de buena aceptacin. Si n embargo, en lamitad de la dcada de los ochenta, Pascal era

    u n

    lenguaje cuya difusin

    se

    reduca

    a

    ambientes

    y

    cenculos universitarios

    y de

    inves-

    tigacin.

    Tal vez, la

    razn esencial resida

    en el

    elevado precio

    de los

    compiladores

    y de

    las

    herramientas complementarias necesarias: editores

    y

    depuradores.

    E n 1983

    aparece

    en el

    mercado norteamericano comercializado

    p o r

    Borland

    In -

    ternational, Inc.

    u n

    compilador

    de

    Pascal denominado Turbo Pascal;

    la

    caracterstica

    m s

    notable,

    su

    reducido precio: 49,95 dlares.

    L o s

    programadores profesionales

    l o com -

    praron masivamente, pues

    n o

    slo funcionaba sino

    q u e

    compilaba

    y

    corra ejecu-

    taba programas

    m s

    rpidamente

    q u e

    cualquier otro compilador

    de l

    mercado.

    En

    aos

    sucesivos aparecieron la s versiones 2. 0 (todava conservo m i vieja copia, regalo de un

    amigo como recuerdo de un viaje a Estados Unidos), 3.0, 3.1 y 3.2. Su xito se deba

    a la

    facilidad

    de

    edicin, compilacin

    y

    ejecucin; constitua

    por s

    mismo

    un entorno

    de programacin

    : editor, compilador

    y

    depurador integrados; tena

    u n a

    limitacin

    de

    64

    Kbytes

    en el

    tamao

    de los

    programas.

    P o r

    aquella poca, Apple comercializaba

    sus

    programas basados

    en

    mens desplegables

    q u e

    presentaban

    la s

    rdenes visualmente

    al

    programador

    y

    para cuya ejecucin bastaba solamente

    la

    pulsacin

    de una

    tecla; ello

    evitaba

    la

    tediosa tarea

    d e

    escritura

    de las

    rdenes.

  • 7/24/2019 Programacin en Turbo-Borland Pascal 7 3ra Edicin

    8/558

    x v i Programacin

    en

    Turbo/Borland Pascal 7

    La

    versin

    4. 0

    super

    co n

    creces

    a las

    versiones anteriores

    y

    elimin

    la

    barrera

    de los

    64 K

    incorporando

    a su vez los

    mens desplegables. Adems, ofreca

    u n

    gran nmero

    de

    mejoras

    y

    novedades

    en lo que

    concierne

    al

    confort

    y al

    entorno

    de

    programacin:

    Compilador

    co n

    editor incorporado similar

    a las

    versiones anteriores, pero reno-

    vado (mens desplegables, funciones especiales, etc.).

    Facilidad para construc cin de bibliotecas.

    Compilador

    de

    tipo clsico

    q u e

    puede

    se r

    utilizado

    en batch

    (procesos

    po r

    lotes).

    La

    gran novedad

    fue la

    posibilidad

    de

    superar

    la

    barrera

    de los 64 K

    para

    la

    creacin

    de

    programas. Esto

    se

    consegua mediante mdulos

    que se

    diseaban

    co n

    unidades(unit).

    Cada unidad puede sercompilada separadamente.

    A

    finales

    de 1988

    aparece

    en

    Estados Unidos

    la

    versin

    5.0 que,

    entre otras noveda-

    des,

    ofreca

    un

    entorno

    de

    desarrollo. Entrado

    el ao 1989

    aparece

    la

    versin

    5.5,

    idn-

    tica

    a la 5.0, con una

    importante excepcin: incorpora facilidades para realizar progra-

    macin orientada

    a

    objetos

    O O P , Object Oriented Programming),

    metodologa

    de

    programacin clsica, pero poco utilizada,

    que, s in

    duda, ser clave

    en el

    desarrollo

    de la

    ingeniera

    de l

    software

    en la

    dcada

    de los

    noventa.

    En el ao 1991, Borland lanz Turbo Pascal 6.0, quemejoraba el entorno de la ver-

    sin

    5.5 y,

    sobre todo, aada nuevas herramientas

    de

    programacin orientada

    a

    obje-

    tos:

    Turbo Vision.

    A

    finales

    del ao 1992, dos

    nuevos productos

    se

    lanzaron

    por la

    casa

    Borland: Turbo Pascal 7.0

    y

    Borland Pascal 7.0,

    En la

    actualidad, Turbo Pascal

    es,

    seguramente,

    el

    compilador

    m s

    vendido

    del

    mundo. Combina

    lo s

    beneficios

    de la

    programacin estructurada

    en

    Pascal,

    c on un a m-

    plio conjunto

    d e

    herramientas adicionales, entre otras, programacin orientada

    a

    objetos

    y Turbo Visin. Turbo Pascal y Borland Pascal es un sistema de desarrollo profesional

    para crear programas

    qu e

    corren

    en

    entornos

    D O S o

    Windows

    y en

    modos

    de

    memoria

    real

    o

    protegido.

    Turbo Pascal proporciona

    u n

    entorno

    de

    programacin

    m u y

    potente

    y es una

    imple-

    mentacin m u y slida de Pascal. Elentorno integra muchos recursos importantes para

    crear

    y

    comprobar programas. Algunos

    de

    estos recursos

    son: un

    editor

    de

    fcil

    uso, un

    compilador,

    un

    depurador, numerosas ventanas

    y

    diferentes extensiones

    de

    ayuda

    en

    lnea.

    Hoy d aTurbo Pascal que corre sobre computadoras PC y M a c , tanto en los pro-

    cesadores Pentium c omo

    en

    Pentium

    II es una

    herramienta

    de

    programacin

    muy po-

    tente

    qu e

    tiene adems

    la

    virtud

    de su

    fcil aprendizaje.

    P o r

    esta razn, sirve indistinta-

    mente

    en el

    campo

    de la

    educacin

    y en el

    profesional. Desde institutos

    y

    liceos hasta

    escuelas yfacultades universitarias, Turbo/Borl and Pascal es, sin gnero de dudas, u n o

    de los

    lenguajes

    y

    herramientas

    de

    programacin

    m s

    utilizado.

    Objetivos de l libro

    Aunque este libro proporciona

    u n a

    visin completa

    de

    Turbo/Borland Pascal

    de la ver-

    sin

    7.0, es

    sobre todo,

    un

    manual para aprender

    a

    programar

    en

    Pascal

    c on una

    herra-

    mienta llamada Turbo.

    Refleja

    u n a

    opinin

    m u y

    extendida,

    de que la

    principal razn para aprender

    un len-

    guaje

    d e

    programacin

    es

    utilizar

    u n a

    computadora para resolver problemas.

    La s

    etapas

    Prlogo

    a la

    primera, segunda

    y

    tercera edicin xvii

    fundamentales

    en la

    resolucin

    de

    problemas ayudados

    po r

    computadora

    se

    examinan

    e

    ilustran en el texto: 1)anlisis

    del

    problema

    y

    diseo

    del

    algoritmo/ 2) transformacin

    de l

    algoritmo

    en un

    programa:

    codificacin; 3)ejecucin

    y

    prueba/validacin del pro-

    grama.

    El

    texto

    se ha

    diseado como

    u n

    curso

    de

    programacin

    en

    Pascal

    en las

    versio-

    ne s 5.0/5.5, 6.0 y 7.0 de Turbo Pascal. Asimismo, puede se rutilizado con la nueva ver-

    sin

    Borland Pascal

    7.0 corriendo bajo

    el

    sistema operativo

    D O S .

    Busca conseguir

    dos

    objetivos complementarios: ensear aprogramar con un estilo depurado y ensear las

    nuevas tcnicas de Turbo Pascal.

    Organizacin

    de l

    libro

    Este libro est concebido como primer curso

    de

    programacin

    de l curriculum en

    Cien-

    cias

    de la

    Computacin/Informtica,

    as

    como

    de

    Facultades

    de

    Ciencias

    e

    Ingeniera;

    o

    bien, como curso de programacin para cursos no reglados oaprendizaje libre de lecto-

    res con

    inters

    por la

    programacin.

    Su

    contenido

    se

    complementa

    en los

    planes

    de es-

    tudio citados

    co n

    asignaturas

    de

    anlisis

    y

    diseo

    de

    algoritmos

    (se la

    suele conocer como

    Metodologa, Introduccin

    o

    Fundamentos

    de la

    Programacin). Asimismo, cubre parte

    de losprogramas deasignaturas tales como Estructura

    de

    datos oAlgoritmos

    y

    Estruc-

    turas

    de

    datos y decurriculum

    similares, como

    es el

    caso

    de los

    programas

    CS1, CS2 de

    A CM

    (

    Associationfor Computing Machinery)

    de

    Estados Unidos.

    El

    libro est concebido para

    u n

    curso

    de dos

    cuatrimestres

    o dos

    semestres,

    y

    adems

    de

    contener

    los

    conceptos fundamentales

    de

    Turbo Pascal, cubre

    lo s

    programas tpicos

    de las

    asignaturas citadas.

    Lo s

    Captulos

    1 al 11 se

    corresponden

    con e l

    primer cuatri-

    mestre/semestre (CS1),

    y los

    Captulos

    12 al 21 con el

    segundo cuatrimestre/semestre

    (CS2); el Captulo 12 queda como puente entre ambos cuatrimestres (o semestres),

    dependiendo

    de la

    decisin

    de l

    profesor

    o de los

    avances

    de l

    lector.

    El

    Captulo

    22 in-

    cluye

    la s

    nuevas caractersticas incorporadas

    a la

    versin Turbo Pascal

    7.0 y

    Borland

    Pascal 7.0.

    Para aquellos lectores qu e procedan de Pascal estndar o de cursos elementales de

    programacin,

    el

    orden lgico

    de

    estudio

    se

    corresponde

    con el

    orden natural

    de los ca-

    ptulos.

    Si

    posee experiencia

    en

    Pascal, puede modularizar

    el

    estudio como crea

    m s

    conveniente,

    ya que su

    diseo permite cambiar

    el

    orden

    de

    estudio

    o

    lectura

    de los

    captulos.

    Ingeniera

    del

    software

    La produccin de un programa se puede definir en diferentes etapas: anlisis, diseo,

    pruebas ymantenimiento.

    Estas fases

    se

    conocen como

    ciclo

    d e

    vida

    del

    software, y

    cons-

    tituyen

    lo s

    principios bsicos

    en los que se

    sustenta

    la

    ingeniera del software. Aunque

    este libro

    se

    dedica esencialmente

    a la

    tercera etapa,

    es

    necesario considerar siempre

    las

    restantes etapas

    en el

    proceso

    de

    creacin

    de

    programas, dado

    que e l

    diseo

    y

    pruebas

    tienen

    u n a

    relacin

    m u y

    estrecha

    con la

    implementacin

    o

    codificacin.

    El

    Captulo

    12 es una

    amplia introduccin

    a la

    ingeniera

    de

    software, como ciencia

    para la creacin yproduccin deprogramas agran escala.

  • 7/24/2019 Programacin en Turbo-Borland Pascal 7 3ra Edicin

    9/558

    XVii

    Programacin en Turbo/Borland Pascal

    7

    Programacin orientada aobjetos

    La

    Programacin orientada

    a

    objetos,

    P O O O O P , Object-Oriented Programming),

    forma

    parte

    de una

    tecnologa

    que se

    lleva experimentando

    en las dos

    ltimas dcadas

    y que

    hasta laaparicin deTurbo Pascal 5.5 sevena

    implementando

    enlenguajes como Smal-

    talk/Objective-C y C++. Las versiones 6.0 y 7.0 han aadido nuevas propiedades a las

    ya incorporadas a laversin 6.0, aunque su s mayores aportaciones son lasnuevas pala-

    bras reservadas public, prvate einherited, as como u n nuevo depurador orientado a

    objetos, ysobre todo, y esencialmente, u n a nueva herramienta de programacin Turbo

    Vision, qu epermite la programacin profesional co nenfoque orientado aobjetos.

    La historia de las tecnologas orientadas aobjetos (TO) es breve, aunque proviene de

    ladcada de lossesenta, en la que seproducen lasgrandes convulsiones estudiantiles como

    fue larevolucin de mayo del 68 francs.S u crecimiento, sin embargo, ha sido expo-

    nencial

    en la

    dcada actual.

    La

    tecnologa

    de

    objetos

    es

    inevitable,

    y la

    revolucin

    del

    software

    se

    est produciendo estos aos

    y se

    producir

    la

    explosin

    al

    principio

    de l

    tercer

    milenio, aunque

    ya en e l ao 1997 es una

    autntica realidad.

    El paradigma orientado a objetos sebasa en el concepto de abstraccin de datos, de

    soporte fundamental a los

    tipos abstractos

    de

    datos

    y su extensin, lo s

    objetos.

    Las pro-

    piedades fundamentales en que seapoya elmodelo objeto (tipo dedatoobjeto) son: abs-

    traccin, encapsidamiento, ocultacin de la informacin, herencia ypolimorfismo.

    Todas la s versiones de Turbo y Borland Pascal permiten trabajar e n POO y estn

    diseadas como herramientas dedesarrollo deprogramas.

    Ayudas pedaggicas

    Para llegar

    a

    conseguir

    lo s

    objetivos

    d e

    este libro

    se han

    incluido

    en

    todos

    lo s

    captulos:

    Numerosos ejemplosd etipo didctico.

    Resolucin de pequeas aplicaciones.

    Notas, reglasy precauciones que seaconsejan al lector sobre problemas qu e suelen

    surgir en laprctica de laprogramacin.

    Ejerciciosy problemas propuestos (cuya realizacin se recomienda).

    En

    varios captulos

    se

    incluyen tambin como ayuda complementaria:

    Problemas resueltos sobre aplicaciones especficas.

    Puesta a punto de programas q u e incluyen tcnicas y errores tpicos de progra-

    macin.

    Aportaciones

    de la

    tercera edicin

    Esta tercera edicin ha ampliado considerablemente elcontenido de las ediciones ante-

    riores. D e modo formal se han aadido do s captulos m s , para conformar u n total de

    veinticuatro, pero

    de

    modo prctico

    se han

    reestructurado

    y

    organizado

    c on un

    orden

    distinto, muchos

    de los

    captulos,

    en

    base

    a la

    experiencia acumulada

    en los

    nueve aos

    de

    vida

    de l

    libro.

    Prlogo a laprimera, segunda y tercera edicin x i x

    As,hemos dedestacar especialmente, loscaptulos dedicados a estructura de datos,

    programacin orientada aobjetos eingeniera de software.

    Aunque

    ya en las

    ediciones anteriores

    se

    trataron estos temas,

    el

    avance

    de las

    tcni-

    cas de

    programacin

    en

    estos ltimos aos, junto

    con el

    mayor conocimiento

    que de

    ellas tienen lo sestudiantes universitarios, de formacin profesional ypolitcnica, nos ha

    llevado

    a

    ampliar todo

    lo

    posible prcticamente todos

    lo s

    temas,

    y e n

    especial,

    los im-

    portantes temas citados. Po r estas causas hemos dedicado cuatro captulos a tratar las

    estructuras dinmicas de datos, pilas, colas, listas enlazadas yrboles, adems de los ca-

    ptulos dedicados a

    arrays

    (arreglos, vectores omatrices), cadenas yunidades. P or igual

    razn, se ha dedicado u n captulo totalmente nuevo a los

    tipos abstractos

    de

    datos,

    y

    otro, a tratar todasl as propiedades de l modelado deobjetos y un tercer captulo a la pro-

    gramacin orientada a objetose n Turbo Pascal. Po rltimo, se ha dedicado un captulo

    especfico a laintroduccin en el arte yciencia de la ingeniera de l software.

    Contenido

    Esta nueva edicin

    se han

    organizado

    en 24

    captulos

    y 12

    apndices, cuya estructura,

    aunque no formalmente, sedivide en lossiguientes grandes bloques:

    sintaxis

    y

    progra-

    macin

    en

    Turbo/Borland Pascal, estructuras

    de

    datos

    (estticas y dinmicas),

    mtodos

    de

    ordenacin

    y

    bsqueda, abstraccin

    de

    datos

    y

    programacin orientada

    a

    objetos

    e

    ingeniera delsoftware.

    El Captulo 1describe un aintroduccin a laciencia de las computadoras y a la pro-

    gramacin. Describe lo selementos fundamentales de una computadora: elhardware y

    elsoftware, ascomo lo sdiferentes tipos de programacin tradicionales en laactualidad:

    estructurada ymodular.

    El entorno deprogramacin de l compilador Turbo y Borland Pascal sedescribe en

    el

    Captulo

    2.

    El

    Captulo

    3

    realiza

    un a

    introduccin

    al

    leng uaje Pascal,

    as

    como

    la

    sintaxis

    y ele-

    mentos bsicos

    de un

    programa

    en

    Pascal; jun to

    con las

    instrucciones bsicas

    de

    Entrada

    ySalida.

    L as estructuras de control selectivas q ue muestran el flujo de control condicional de

    u n programa. Sedescribe el concepto y funcionamiento de lassentencias condicionales

    o selectivas if ycase, en e lCaptulo 4.

    El Captulo 5 explica lasimportantes estructuras de control repetitivas: lo s bucles,

    lazos

    o

    ciclos.

    Seestudian la ssentencias repetitivas for,while yrepeat, junto con la sen-

    tencia

    de

    control incondicional goto,

    que s i

    bien

    no es

    recomendable

    su uso,

    puede

    haber circunstancias en un programa que loaconsejen.

    La estrategia clsica de resolucin de problemas co n computadoras se ha desarro-

    llado tradicionalmente con la programacin modular. El Captulo 6analiza yestudia el

    componente fundamental de la programacin modular: el mdulo, y en particular, el

    procedimiento.

    El Captulo 7 describe otro tipo de mdulo: la funcin. Se describen y analizan las

    funciones estndar oimplcitas al usuario y las funciones definidas por e lusuario.

    El Captulo 8 analiza lo s tipos de datos definidos por e l usuario y u n tipo de dato

    estructurado denominado conjunto. La soperaciones usualesc on conjuntose sotrode los

    temas importantes tratados

    en

    este captulo.

  • 7/24/2019 Programacin en Turbo-Borland Pascal 7 3ra Edicin

    10/558

    XX Programacin

    en

    Turbo/Borland Pascal 7

    El Captulo 9 trata el importante tema de laestructura de datos: colecciones de ele-

    mentos dato organizados

    de un

    modo especfico.

    Se

    describen

    y

    analizan

    lo s

    arrays

    arreglos, en Hispanoamrica), tablas, matrices ovectores: su concepto bsico, operacio-

    nes y

    tratamiento.

    El tipo de dato cadena (string) es uno de los elementos clave encualquier programa.

    Su

    concepto, tratamiento

    y

    operaciones diversas

    se

    describen

    en el

    Captulo

    10. Las ca-

    denas son, en realidad, arrays de caracteres, pero al contrario que en e l caso de Pascal

    estndar, en Turbo/Borland Pascal se puede definirc on datos tipostring.

    El Captulo 11 trata sobre lo s mtodos para controlar la pantalla y elteclado, esdecir,

    las tcnicas necesarias para disear eimplementar interfacesa l usuario.

    L a primera parte de l libro termina con e lCaptulo 12,Ingeniera de software: intro-

    duccin a lametodologa de construccin de grandes programas. Se

    estudian

    en

    este

    ca -

    ptulo las diferentes fases o etapas de la produccin de un programa: anlisis, diseo,

    codificacin, pruebas ymantenimiento.

    El Captulo 13expone el importante tema de ordenacin, bsqueda y mezcla de da-

    tos en listas, vectores ytablas. Lo s mtodos m s importantes seanalizan eneste captulo.

    El

    registro

    es un

    nuevo tipo

    de

    dato introducido

    en

    Pascal

    y que

    permite almacenar

    u n a variedad de informacin sobre entidades de todo tipo. Cada elemento sealmacena

    en un campo de l registro independiente y se puede referenciar cada elemento almace-

    nado en un campo por sunombre. ElCaptulo 14 analiza eltipo dedato registro.

    El Captulo 15 se dedica al importante tema de l almacenamiento dedatos permanen-

    tes en

    archivos. Este tipo

    de

    datos

    es una

    estructura

    de

    dato constituida

    po r

    colecciones

    de datos que se pueden guardar (grabar) para us o posterior mediante laejecucin de pro-

    gramas adecuados.

    La recursividad orecursin es una alternativa a laiteracin o repeticin, yconstituye

    u n a

    herramienta conceptual

    m u y

    potente

    y

    til para

    la

    resolucin

    de

    problemas

    que ten-

    ga n naturaleza recursiva. El Captulo 16 considera el concepto de recursividad y su tra-

    tamiento para conseguir la mayor eficacia dentro de un algoritmo, as como la tcnica

    para resolver problemas mediante algoritmos recursivos.

    El Captulo 17considera la sestructuras de datos m s usuales en todo tipo de algorit-

    m o s: pilas y colas. E n este captulo la s estructuras se implementan mediante vectores

    (arrays).

    La s estructuras dinmicas de datos son, probablemente, la sestructuras m s utiliza-

    da s junto con los arrays. El concepto de puntero y de lista enlazada, se describe en el

    Captulo 18.

    Otra estructura de datos dinmica es el rbol, m u y extendida y utilizada en nume-

    rosas aplicaciones;

    se

    definen

    en e l

    Captulo

    19 los

    rboles genricos,

    lo s

    binarios

    y b i-

    narios debsqueda.

    Lo s programas que se construyen en la actualidad cada ve z presentan mayor c o m -

    plejidad; p or esta circunstancia, lo s programadores requieren de tcnicas qu e permitan

    afrontar la implementacin de dichos programas con la mayor eficacia y eficiencia po -

    sibles.

    El

    Captulo

    20

    ensea

    al

    lector

    el

    concepto

    de

    unidad

    y el

    modo

    de

    utilizarlo como

    herramienta clave para el desarrollo de grandes programas.

    El Captulo 21 describe la estructura de las unidades fundamentales que se incluyen

    en loscompiladores de Turbo y Borland Pascal.

    El concepto de abstraccin es una de las ideas claves en eldesarrollo de lasmodernas

    tcnicas

    de

    programacin orientada

    a

    objetos,

    y el

    tipo abstracto

    de

    datos

    T A D ) la re-

    Prlogo a laprimera, segunda y tercera edicin x x i

    presentacin m s fiel de l modo de implementacin de dicho concepto. El Captulo 22

    explica el diseo y construccin de tipos abstractos de datos, junto con los conceptos

    fundamentales

    d e

    orientacin

    a

    objetos,

    s us

    beneficios

    en el

    desarrollo

    de

    software

    y cu-

    les son los

    lenguajes

    m s

    utilizados

    en

    programacin orientada

    a

    objetos.

    L a

    Programacin Orientada

    a

    Objetos

    P O O ) es, sin gnero d e dudas, eltipo de pro-

    gramacin q u e p redomina en la segunda mitad de la dcada de los noventa y que ,

    probablemente, prevalecer en el tercer milenio. El Captulo 23 se dedica al estudio

    de los P O O con e l objeto de llegar a entender su s propiedades fundamentales:

    herencia,

    polimorfismo, etc.

    El Captulo 24 muestra la s caractersticas orientadas a objetosd eTurbo/Borland Pas-

    cal,junto con la sintaxis y las tcnicas de implementacin de las propiedades de objetos

    en este lenguaje.

    El libro secomplementa c o n u n a serie de apndices q u e hemos considerado pueden

    ayudar al lector para consulta y referencia de losentornos integrados de desarrollo. As,

    se han conservado algunos apndices de las versiones anteriores, cuya finalidad hemos

    podido contrastar co n estudiantes y profesores q u e h a n seguido este libro como referen-

    cia en susclases. Adems, se han modificado y aadido otros apndices.

    Lo sapndices tratan lo ssiguientes temas. A: El cdigo de referencia (ASCII); B: Pa -

    labras reservadas

    de

    Turbo/Borland Pascal;

    C: El

    editor

    de

    Turbo Pascal

    7 .0 ; D: El En-

    torno Integrado de Desarrollo (losdiferentes mens y sus sucesivas opciones); E : O p e -

    raciones m s usuales co nTurbo Pascal 7.0; F: Directivas decompilacin; G:Depuracin

    de programas en Turbo Pascal; H: Mensajes y cdigos de error que se producen en el

    desarrollo real de programas; I : U n a gua dereferenciad el lenguaje Turbo Pascal; J: Los

    diagramas

    de

    sintaxis

    de los

    elementos

    de un

    programa

    en

    Turbo Pascal;

    K:

    Gua

    del

    usuario ISO/ANSI Pascal estndar; L: Diferencias entre Pascal estndar y Turbo Pascal.

    Agradecimientos en laprimera edicin

    Muchas personas h a n intervenido en el desarrollo de este libro y a muchas de ellas les

    debo m i reconocimiento m s sincero por la ayuda y colaboracin prestada.

    L os

    profesores Ignacio Zahonero, Rubn Garca

    y

    Paloma Centenera del Depar-

    tamento de Lenguajes y Sistemas Informticos de l Centro Superior de Estudios de In-

    formtica

    (CESIES)

    de la Universidad Pontificia de Salamanca en Madrid me han

    revisado algunas partes de l libro, dndome sugerencias y detectando erratas. Especial re -

    levancia h an tenido en esta obra lo s siguientes profesores de l Departamento citado an -

    teriormente: Jos Luis Andrs Garca (la lectura detallada de la mitad de l primer m a -

    nuscrito,

    su s

    sugerencias,

    un par de

    programas cedidos

    de sus

    clases

    y su

    apoyo personal

    h an contribuido notablemente a los quince primeros captulos de la obra) y Angel H e r -

    moso (s u labor es de un valor inapreciable para m ya que ha ledo y depurado e n

    algn caso la mayora de los segmentos, subprogramas y programas de l libro; mi re -

    conocimiento m s sincero). A ambos compaeros y, sin embargo, amigos, m i gratitud.

    El

    profesor Carlos

    de la

    Fuente Chacn, experto

    en

    WordPerfect,

    m e h a

    ayudado

    en la

    adaptacin de los listados de Turbo Pascal a WordPerfect para su mejor impresin en

    papel. A Lourdes y Cristina por su excelente trabajo de mecanografiado.

    Finalmente deseo agradecer al equipo editor de la Divisin Profesinoal de McGraw-

    Hill: Jorge Piernavieja yEduardo Susanna, su apoyo constante a la obra; en especial de -

  • 7/24/2019 Programacin en Turbo-Borland Pascal 7 3ra Edicin

    11/558

    XXi

    Programacin en Turbo/Borland Pascal 7

    seo

    reconocer

    la s

    facilidades

    y la

    ayuda material

    qu e

    Eduardo Susanna,

    mi

    editor

    y

    amigo,

    m e h a proporcionado en la materializacin prctica de laimpresin de losnumerosos

    listados de la obra, a fin deconseguir u n amejor legibilidad de losmismos por e l lector.

    Agradecimientos en la segunda edicin

    En esta segunda edicin hemos de agradecer, demodo especial, la contribucin prestada

    por laprofesora de laUniversidad Pontificiad eSalamanca en Madrid, Matilde Fernn-

    de z Azuela. H a revisado el manuscrito completo de la primera edicin, as como los

    nuevos captulos introducidos

    en

    esta edicin.

    Su s

    sabios consejos, junto

    con la

    depura-

    cin d eprogramas, h an hecho que suexperiencia docente en laFacultad yEscuela U n i -

    versitaria de nuestra Universidad se haya transmitido en esta obra. Mi

    agradecimiento

    eterno, compaera

    y sin

    embargo amiga.

    Muchas otras personash a ncontribuido enesta nueva edicin con sus ideas, sugeren-

    cias, crticas, aportaciones... P o rsuerte para elautor, esta contribucin ha venido de uno

    y otro lado de l Atlntaico, donde numerosos profesores y alumnos h an tenido l a a ma -

    bilidad de impartir oseguir su scursos deprogramacin con laprimera edicin. Para m

    ha sido u n o honor recibir ayuda material yaliento, ascomo crticas, de numerosos co -

    legas, alumno s, estudiosos, aficionados...

    M i

    agradecimiento

    m s

    sincero para to das ellas

    y

    confo

    q u e

    esta nueva edicin recoja todo

    su

    apoyo

    qu e

    para

    m ha

    sido

    un

    gran est-

    mulo y de unvalor inapreciable.

    Eran obligadosl osprrafos anteriores, pues

    nobleza obliga

    , pero como correrae lgrave

    riesgo dedejar en el tintero nombres oinstituciones, he preferido centrarme en aquellos

    profesoresq u e dentro de mi Universidad ha n utilizado, consultado o simplemente criti-

    cado la primera edicin, reiterando de nuevo m i agradecimiento a todas esas personas

    n o citadas, pero a lascuales tanto debo.

    As,

    deseo expresar pblicamente

    m i

    reconocimiento

    a los

    siguientes profesores

    de la

    Facultad yEscuela Universitaria de Infortica y p o rsuerte para m, s inembargo, a mi -

    gos

    de la

    Universidad Pontificia

    de

    Salamanca

    en el campus d e

    Madrid: Lucas

    S n-

    chez, Joaqun Abeger, Antonio Muoz, Luis Villar, Luis Rodrguez, Matilde Fernndez,

    Isabel Tokrralvo, M .

    a

    M a r Garca, Angela Carrasco, Ignacio Zahonero, Juan I. Prez,

    Angel Hermoso, Juan A.Riesco, Rubn Garca, Miguel Snchez, Jess Cobo, Francisco

    Navarro, Mercedes Vargas, Jess Prez, Paloma Centenera, Francisco Oliva, Antonio

    Reus, Rafael Ojeda, Jos Luis Andrs, Julin Margolles, Vctor Garca yManuel R i-

    quelme. Todos ellos, yseguramente alguno ms que eneste momento n o m e viene a la

    cabeza -y a quien pido disculpas por su ausencia n o deseada po r m, ha n utilizado

    la

    obra

    y e n una u

    otra forma

    h an

    contribuido

    a que

    esta segunda edicin

    vea la luz.

    Como enmuchas otras ocasiones m i buen amigo y a la vezeditor, Jorge Piernavieja,

    me ha apoyado y aconsejado en lassucesivas fases de laproduccin yespecialmente en

    las sucesivas revisiones. Gracias, amigo Jorge.

    Majadahonda (Madrid), mayo de 1993

    AGRADECIMIENTOS

    EN LA TERCERA EDICIN

    Muchas seran

    la s

    personas

    a las que

    debera agradecer

    la

    existencia

    de

    esta tercera

    edi-

    cin. Profesoresy estudiantes de Espaa yLatinoamrica h an utilizado y estudiado con

    las ediciones anteriores y nos handado ideas, consejos ycorregido erratas de todo tipo.

    Estas personas son, esencialmente, a quienes mayor agradecimiento debo y, por eso, de-

    seo reconocerlo en primer lugar, y he de reconocer, de nuevo, el honor qu e para m ha

    supuesto recibir la ayuda material, elaliento y lascrticas de numerosos colegas, alum-

    nos , profesionalesy autodidactas. Reitero m i agradecimiento eterno atoda esta inmensa

    cantidad de personas que ha n confiado e n mis ediciones anteriores. Espero responder a

    esa

    confianza depositada

    en mis

    obras

    y que

    esta nueva edicin contemple todo

    el

    apoyo

    y estmulo que herecibido desde e l ao 1990 en que apareci la primera edicin.

    D e

    modo especial quiero agradecer, expresamente,

    la

    ayuda prestada

    en la

    revisin

    de laspruebas de esta tercera edicin de lossiguientes profesores y s in embargo a mi -

    gos de la Facultad de Informtica y Escuela Universitaria de Informtica de la Uni-

    versidad Pontificia deSalamanca en Madrid: Matilde Fernndez Azuela, Antonio M u-

    o z Clemente, Luis Villar Pizarro, ngela Carrasco, Isabel Torralba, M .

    a

    del Mar Garca,

    Francisco Mata, Hctor Castn, Miguel ngel Sicilia, Rosa Pernndez, Salvador S n-

    chez, Francisco Agueva, Miguel Snchez, Jess Prez, Ignacio Zahonero, Paloma C e n-

    tenera y ngel Hermoso. Adems, de modo m u yparticular, al gran nmero de profe-

    sores

    de

    universidades espaolas

    y

    latinoamericanas

    que ha n

    utilizado como referencia

    este libro en sus dos primeras ediciones en susclases de algoritmos, programacin y es-

    tructura dedatos.

    Asimismo, y como siempre sucede e n m i caso el equipo editorial de McGraw-

    Hill me ha prestado todo su apoyo para q u e esta tercera edicin vea la luz. De modo

    especial deseo expresar m i agradecimiento al editor y s in embargo amigo Carmelo

    Snchez Gonzlez, po r s u comprensin, paciencia y ayuda material en la edicin de la

    obra.

    P or ltimo, quiero terminar c on mi agradecimiento eterno a misalumnos, pasados,

    presentes yfuturos, que son lamayor fuented e inspiracin q ue tengo. A ellos debo, en

    gran parte, qu e esta obra vea de nuevo la luz , ya que de ellos he aprendido, y seguir

    aprendiendo, laciencia de lacomprensin, elentendimiento y el agradecimiento. Como

    dice eseviejo refrn espaol: D e bien nacido es ser agradecido, y ese es mi reconoci-

    miento

    a mis

    alumnos.

    Majadahon da (Madrid), octubre de 1997

  • 7/24/2019 Programacin en Turbo-Borland Pascal 7 3ra Edicin

    12/558

    CAPITULO

    l

    INTRODUCCION

    A LA

    CIENCIA

    D E LA S

    COMPUTADORAS

    Y A LA PROGRAMACION

    CONTENIDO

    1 . 1 . Qu e s una computadora?

    1 . 2 .

    Organizacin fsica

    de una

    computadora (hardware)

    1.3. El software (ios

    programas)

    1 .4 . Los lenguajes d e programacin

    1.5. La resolucin d e problemas co n computadora

    1 . 6 . Programacin modular

    1 . 7 . Programacin estructurada

    1 .8 . Los lenguajes Pascal y Turbo Pascal

    RESUMEN

    EJERCICIOS

    La s

    computadoras electrnicas modernas

    son uno de los

    productos

    m s

    impor tantes

    de l

    siglo

    xx y

    especialmente

    de l a s dos

    ltimas

    dcadas. Son una herramienta esencial en muchas reas: industria,

    gobierno, ciencia, educacin,..., en realidad en casi todos i o s c a m -

    p o s d e nuestras vidas. El papel de los programas d e computadoras

    e s esencial; sin una lista d e instrucciones aseguir, lacomputadora e s

    virtualmente intil. Lo s lenguajes d e programacin n o s permiten es -

    cribir esos programas y por consiguiente comunicamos con las

    computadoras.

    En esta obra, usted comenzar a estudiar la ciencia de l a s compu-

    tadoras o informtica a travs de uno de los lenguajes de programa-

    cin m s verstiles disponibles hoy da: ellenguaje Pascal, y en parti-

    cular profundizar en una de sus versiones, seguramente l a ms po-

    ten te yeficiente: Turbo y Borland Pascal.

    Este captulo

    le

    introduce

    a la

    computadora

    y s u s

    componentes,

    as

    como

    a los

    lenguajes

    de

    programacin,

    y a la

    metodologa

    a

    seguir para la resolucin d e problemas co n computadoras y con una

    herramienta denominada Turbo Pascal.

  • 7/24/2019 Programacin en Turbo-Borland Pascal 7 3ra Edicin

    13/558

    2 Programacin

    en

    Turbo/Borland Pascal 7

    1 . 1 . QUE ES UNACOMPUTADORA?

    U n a computadora

    1

    o computador es un

    dispositivo electrnico utilizado para procesar

    informacin

    y

    obtener resultados.

    L o s

    datos

    y la

    informacin

    se

    pueden introducir

    en la

    computadora como entrada (

    i npu t )y a

    continuacin

    se

    procesan para producir

    u n a

    salida (

    output

    , resultados), como

    se

    observa

    en la

    Figura

    1.1.

    COMPUTADORA

    Programa

    Datos

    de

    entrada

    Datos

    de

    salida

    Figura 1 . 1 .

    P r o ceso

    d e

    informacin

    e n u n a

    computadora.

    Lo s

    componentes fsicos

    q u e

    constituyen

    la

    computadora, junto

    con los

    dispositivos

    q u e

    realizan

    la s

    tareas

    d e

    entrada

    y

    salida,

    se

    conocen

    con el

    trmino hardware (traduci-

    do en

    ocasiones

    p o r material). El

    conjunto

    d e

    instrucciones

    q u e

    hacen funcionar

    a la

    computadora

    se

    denomina

    programa; a la

    persona

    q u e

    escribe programas

    se

    llama pro-

    gramador y al

    conjunto

    d e

    programas escritos para

    u n a

    computadora

    se

    llama software

    (traducido

    en

    ocasiones

    p o r logical).

    Este libro

    se

    dedicar casi exclusivamente

    al softwa-

    re, pero

    se

    har

    u n a

    breve revisin

    de lhardware

    como recordatorio

    o

    introduccin segn

    sean

    lo s

    conocimientos

    de l

    lector

    en

    esta materia.

    1 . 2 .

    ORGANIZACION FISICA

    DE UNA

    COMPUTADORA

    (HARDWARE)

    La

    mayora

    de las

    computadoras, grandes

    o

    pequeas, estn organizadas como

    se

    mues-

    t ra en la

    Figura

    1.2.

    Ellas constan

    d e

    cinco componentes principales:

    dispositivos

    de

    entrada, dispositivos

    de

    salida, unidad central

    de

    proceso U C P ) oprocesador, memoria

    interna y memoria externa.

    1.2.1. Dispositivos d e Entrada/Salida E/S)

    Lo s

    dispositivos

    d e

    Entrada/Salida

    E / S )

    [Input/Output (I/O),

    e n

    ingls] permiten

    la

    comunicacin entre lacomputadora y el usuario.

    ' En Espaa est mu y extendido el trmino

    ordenador

    para referirsea la traduccin de la palabra inglesa

    computer.

    Introduccin

    a la

    ciencia

    de las

    computadoras

    y a la

    programacin 3

    Dispositivos

    de

    entrada

    UC P (Procesador)

    Unidad de

    control

    Memoria

    central

    Unidad

    lgica y

    aritmtica

    Dispositivos

    de

    salida

    Memoria

    externa

    (almacena-

    miento

    permanente)

    Figura 1 . 2 . Organizacin fsica d e u n a co m p u t ad o r a .

    Lo s dispositivos

    de

    entrada,

    como

    su

    nombre indica, sirven para introducir datos

    (informacin)

    en la

    computadora para

    su

    proceso.

    Lo s

    datos

    se leen de los

    dispositivos

    de

    entrada

    y se

    almacenan

    en la

    memoria central

    o

    interna.

    Lo s

    dispositivos

    de

    entrada

    convierten

    la

    informacin

    de

    entrada

    e n

    seales elctricas

    que s e

    almacenan

    en la me-

    moria central. Dispositivos

    d e

    entrada tpicos

    son los

    teclados; otros

    s on :

    lectores

    de

    tarjetas y a

    casi

    en

    desuso,

    lpices pticos, palancas demando (joystick), lectores de

    cdigos

    de

    barras,

    etc . Hoy da es muy

    frecuente

    que e l

    usuario utilice

    u n

    dispositivo

    de

    entrada llamado ratn

    q u e

    mueve

    u n

    puntero electrnico sobre

    la

    pantalla

    q u e

    facilita

    l a

    interaccin usuario-mquina.

    Lo s dispositivos

    de

    salida

    permiten representar

    lo s

    resultados (salida)

    de l

    proceso

    de

    lo s

    datos.

    El

    dispositivo

    de

    salida tpico

    es la

    pantalla (CRT)

    2

    o

    monitor. Otros dispositi-

    vos de

    salida

    s on : impresoras

    (imprimen resultados

    en

    papel),

    trazadores grficos [plot-

    ters), reconocedores de voz, etc.

    El

    teclado

    y la

    pantalla constituyen

    e n

    muchas ocasiones

    u n

    nico dispositivo,

    denominado terminal.

    U n

    teclado

    d e

    terminal

    es

    similar

    al

    teclado

    d e u n a

    mquina

    de

    escribir moderna

    con la

    diferencia

    de

    algunas teclas extras

    q u e

    tiene

    el

    terminal para

    funcione s especiales.

    Si

    est utilizando

    u n a

    computadora personal,

    el

    teclado

    y el

    moni-

    tor son

    dispositivos independientes conectados

    a la

    computadora

    p o r

    cables.

    En

    ocasio-

    nes a la

    impresora

    se la

    conoce como dispositivo

    de

    copia dura (

    hard copy

    ), debido

    a

    2

    Cathode

    Ray

    Tube:Tubo derayos catdicos.

  • 7/24/2019 Programacin en Turbo-Borland Pascal 7 3ra Edicin

    14/558

    4 Programacin

    en

    Turbo/Borland Pascal

    7

    Figura 1 . 3 .

    Compu tado ra persona l profesional model o Pentium

    2 0 0 M M X c o n

    dispositivos

    d e entrada (teclado y ratn), un d isposi t ivo d e salida (monitor) y d isposi t ivos d e

    entrada/sal ida (un idades

    d e

    d isco magnt ico

    y

    CD-ROM).

    que la

    escritura

    en la

    impresora

    es una

    copia permanente (dura)

    de la

    salida,

    y a la

    pantalla

    se le

    denomina

    en

    contraste:

    dispositivo decopia blanda ( soft copy ), ya que se

    pierde

    la

    pantalla actual cuando

    se

    visualiza

    la

    siguiente.

    Figura 1 . 4 .

    Dispositivo d e salida (impresora).

    Lo s

    dispositivos

    d e

    entrada/salida

    y los

    dispositivos

    d e

    almacenamiento secundario

    o

    auxiliar (memoria externa)

    se

    conocen tambin

    con e l

    nombre

    de

    dispositivos perifricos

    o

    simplemente perifricos

    ya que,

    normalmente,

    so n

    externos

    a la

    computadora.

    Algunos terminales(PC,s)estn equipados co n caractersticas grficas (Fig. 1.5), los

    cuales permiten

    que la

    salida

    se

    visualice

    en un

    grfico

    o

    dibujo

    de dos

    dimensiones.

    Introduccin a

    l a

    ciencia

    de las

    computadoras

    y a la

    programacin

    5

    1.2.2.

    La

    memoria central (interna)

    La memoria central o

    simplemente

    memoria(interna oprincipal) se

    utiliza para almace-

    na r

    informacin.

    En

    general,

    la

    informacin almacenada

    en

    memoria puede

    ser de dos

    tipos:

    la sinstrucciones de un

    programa

    y losdatos con los que

    operan

    la s

    instrucciones.

    P or

    ejemplo, para

    que un

    programa

    se

    pueda ejecutar (correr, rodar, funcionar,...,

    en

    ingls

    run),

    debe

    se r

    situado

    en la

    memoria,

    e n una

    operacin denominada carga (load)

    de l

    programa. Despus, cuando

    se

    ejecuta

    el

    programa, cualquier dato

    a

    procesar

    por el

    programa

    se

    debe llevar

    a la

    memoria mediante la sinstrucciones de l programa.

    La

    memoria central

    de una

    computadora

    es una

    zona

    de

    almacenamiento organiza-

    da en

    centenares

    o

    millares

    de

    unidades

    de

    almacenamiento individual

    o

    celdas.

    Figura

    1 . 5 .

    Compu tador a porttil digital.

    La

    unidad elemental

    de

    memona

    se

    llama

    byte

    (octeto).

    U n byte

    tiene

    la

    capacidad

    de

    almacenar

    un

    carcter

    de

    informacin,

    y

    est formado

    po r un

    conjunto

    de

    unidades

    m s

    pequeas

    de

    almacenamiento denominadas

    bits,

    que son

    dgitos binarios

    (0 o 1).

    Generalmente

    se

    acepta

    que un

    byte contiene ocho bits.

    P or

    consiguiente,

    si se

    desea

    almacenar la frase

    Hola Mortimer todo va b ien .

    la

    computadora utilizar exactamente

    27

    bytes consecutivos

    d e

    memoria. Obsrvese

    que,

    adems

    de las

    letras, existen cuatro espacios

    en

    blanco

    y un

    punto

    (u n

    espacio

    es un

    carcter

    qu e

    emplea tambin

    un

    byte).

    D e

    modo similar,

    el

    nmero

    de l

    pasaporte

    P57487891

    6 Programacin Turbo/Borland Pascal

  • 7/24/2019 Programacin en Turbo-Borland Pascal 7 3ra Edicin

    15/558

    ocupar

    9

    bvtes, pero

    si se

    almacena como

    P5-748-7891

    ocupar

    11.

    Estos datos

    se

    llaman

    alfanumricos, y

    pueden constar

    de l

    alfabeto, dgitos

    o

    incluso caracteres especiales (smbolos: $, #, *,etc.).

    Mientras

    qu e

    cada carcter

    de un

    dato alfariumrico

    se

    almacena

    en un

    byte,

    la

    informacin numrica se almacena de un modo diferente. Lo sdatos numricos ocupan

    2, 4 e

    incluso

    8

    bvtes consecutivos, dependien do

    de l

    tipo

    de

    dato numrico

    (se

    ver

    en el

    Captulo 3).

    Existen

    do s

    conceptos importantes asociados

    a

    cada byte

    o

    posicin

    de

    memoria:

    su

    direccin y sucontenido.

    Cada celda

    o

    byte tiene asociada

    u n a

    nica

    direccin q u e

    indica

    su

    posicin relativa

    en

    memoria

    y

    mediante

    la

    cual

    se

    puede acceder

    a la

    posicin para

    almacenar

    o

    recuperar informacin.

    La

    informacin almacenada

    e n una

    posicin

    de

    memoria es su contenido. La Figura 1.6 muestra u n a memoria de computadora que

    consta

    de 1.000

    posiciones

    en

    memoria

    co n

    direcciones

    de 0 a 999. El

    contenido

    d e

    estas

    direcciones

    o

    posiciones

    de

    memoria

    se

    llaman

    palabras, de

    modo

    q u e

    existen palabras

    de 8, 16, 32 y 64

    bits.

    P or

    consiguiente,

    si

    trabaja

    c on una

    mquina

    de 32

    bits, significa

    que e n

    cada posicin

    de

    memoria

    de su

    computadora puede alojar

    32

    bits,

    es

    decir,

    32

    dgitos, bien ceros

    o

    unos.

    Siempre

    que una

    nueva informacin

    se

    almacena

    e n una

    posicin,

    se

    destruye (desa-

    parece) cualquier informacin

    que en

    ella hubiera

    y no se

    puede recuperar.

    La

    direccin

    es

    permanente

    y

    nica,

    el

    contenido, puede cambiar mientras

    se

    ejecuta

    un

    programa.

    La

    memoria central

    de una

    computadora puede tener desde unos centenares

    de

    millares

    de

    bvtes hasta millones

    de

    bvtes. Como

    el

    byte

    e s una

    unidad elemental

    de

    almacenamiento, se utilizan mltiplos para definir el tamao de la memoria central:

    Kilo-byte KB o Kb)igual a 1.024bvtes (2

    10

    ) prcticamente se toman 1.000 yMega-

    bvte M B o M b)

    igual

    a 1.024 x 1.024

    bvtes

    (2

    20

    )

    prcticamente

    se

    considera

    un

    1

    ".000.000.

    direcciones 9 9 9

    9 9 8

    9 9 7

    3 2 5

    Contenido

    de la

    direccin

    997

    3

    2

    0

    Figura

    1 . 6 .

    Memoria central d e u n a computadora.

    Introduccin

    a la

    ciencia

    de las

    computadoras

    y a la

    programacin 7

    En la

    actualidad

    la s

    computadoras personales tipo

    P C

    tienen memorias centrales

    de

    512 o 640 k,aunque ya es muy frecuente ver PC,s con memorias de 1,2, e tc . , Mb.

    1.2.3.

    La

    Unidad Central

    d e

    Proceso

    UCP)

    La

    Unidad Central

    de

    Proceso, U C P (Cen tra l Processing Unit, C P U ,

    en

    ingls), dirige

    y

    controla el proceso de informacin realizado por.la computadora. La U C P procesa o

    manipula la informacin almacenada en memoria; puede recuperar informacin desde

    memoria (esta informacin

    so n

    datos

    o

    instrucciones: programas). Tambin puede

    al-

    macenar

    lo s

    resultados

    de

    estos procesos

    en

    memoria para

    su uso

    posterior.

    La

    U C P

    consta

    de dos

    componentes:

    unidad

    de

    control

    U C )

    y

    unidad aritmtico-

    lgica U A L )

    (Fig. 1.7). La

    unidad decontrol (Control Unit, C U)coordina

    las

    actividades

    de la

    computadora

    y

    determina

    q u

    operaciones

    se

    deben realizar

    y en qu

    orden;

    asimismo controla

    y

    sincroniza todo

    el

    proceso

    de la

    computadora.

    Unidad Central

    de

    Proceso

    Unidad lgica

    y aritmtica

    Unidad

    de

    control

    Memoria

    central

    Programa

    Datos

    de

    entrada

    Datos de

    salida

    Figura 1 . 7 ,

    Unidad Central d e Proceso .

    La

    unidad aritmtico-lgica (Arithmetic-Logic Unit,

    A L U )

    realiza operaciones arit-

    mticas y lgicas, tales como suma, resta, multiplicacin, divisin ycomparaciones.

    Lo s

    datos

    en la

    memoria central

    se

    pueden

    leer

    (recuperar)

    o escribir

    (cambiar)

    po r

    l a UC P.

    1. 2. 4. Memoria auxiliar (externa)

    Cuando

    u n

    programa

    se

    ejecuta,

    se

    debe situar primero

    en

    memoria central

    de

    igual

    modo que losdatos. Si n embargo, lainformacin almacenada en lamemoria sepierde

    (borra) cuando seapaga (desconectade la redelctrica) lacomputadora, y por otra parte

    la memoria central es limitada e n capacidad. P o r esta razn, para poder disponer d e

    almacenamiento permanente, tanto para programas como para datos,

    s

    necesitan

    dis-

    positivos de almacenamiento secundario, auxiliar o masivo

    ("mass storage",

    o

    "secon-

    dary storage").

    Lo s

    dispositivos de almacenamiento

    o

    memorias auxiliares (externas

    o

    secundarias)

    m s comnmente utilizados son: cintas magnticas y discos magnticos. La scintas son

  • 7/24/2019 Programacin en Turbo-Borland Pascal 7 3ra Edicin

    16/558

    8

    Programacin en Turbo/Borland Pascal 7

    utilizadas principalmente

    p or

    sistemas

    de

    computadoras grandes similares

    a las

    utiliza-

    das en los

    equipos

    de

    audio.

    Lo s

    discos

    y

    disquetes magnticos

    se

    utilizan

    po r

    todas

    las

    computadoras, especialmente

    las

    medias

    y

    pequeas las computadoras personales.

    Lo s discos pueden ser rgidos o duros (tecnologa Winchester), de gran capacidad de

    almacenamiento

    (10 a

    centenares

    de Mb), disquetes o discos flexibles

    ("floppy disk")

    (360 Kb a 1,2 Mb) o microdiscos de

    naturaleza dura

    y m s

    manejables

    y

    prcticos

    que

    los

    discos flexibles

    (720 Kb y 1,44 Mb). El

    tamao fsico

    de los

    disquetes

    y por e l que son

    Figura

    1 . 8 .

    Memoria s auxiliares: a) disco duro d e 3'/2"

    3

    ; b) unidad y lector Z IP de 1 00 M b.

    pulgada, medida inglesa equivalente a 2,54 cm.

    Introduccin

    a la

    ciencia

    de las

    computadoras

    y a la

    programacin

    9

    conocidos

    es de 5'A", 3Vi" y 3",

    siendo

    las

    dimensiones estndar

    5'A y 3Vi

    pulgadas,

    de

    capacidades

    360 Kb o 1,2 Mb y 720 Kb o 1,44 Mb,

    respectivamente.

    La

    informacin almacenada

    en la

    memoria central

    es

    voltil (desaparece cuando

    se

    apaga

    la

    computadora)

    y la

    informacin almacenada

    en la

    memoria auxiliar

    es

    perma-

    nente.

    Esta informacin seorganiza en unidades independientes llamadasarchivos (ficheros,

    file en ingls). L os resultados de los programas se pueden guardar como archivos de

    datos y los

    programas

    que se

    escriben

    se

    guardan como

    archivos deprogramas,

    ambos

    en

    la

    memoria auxiliar. Cualquier tipo

    de

    archivo

    se

    puede transferir fcilmente desde

    la

    memoria auxiliar hasta

    la

    memoria central para

    su

    proceso posterior.

    En el

    campo

    de las

    computadoras

    es

    frecuente utilizar

    la

    palabra memoria

    y

    almace-

    namiento

    o

    memoria externa, indistintamente.

    En

    este libro

    y

    recomendamos

    su

    uso

    se

    utilizar

    el

    trmino memoria slo para referirse

    a la

    memoria central.

    Comparacin de la memoria central y la memoria auxiliar

    La

    memoria central

    o

    principal

    es

    mucho

    m s

    rpida

    y

    cara

    que la

    memoria auxiliar.

    Se

    deben transferir

    lo s

    datos desde

    la

    memoria auxiliar hasta

    la

    memoria central, antes

    de

    qu e

    puedan

    ser

    procesados.

    Lo s

    datos

    en

    memoria central

    son: voltiles y

    desaparecen

    cuando

    seapaga la

    computadora.

    Lo s

    datos

    en

    memoria auxiliar

    so npermanentes y no

    desaparecen cu ando

    se

    apaga

    la

    computadora.

    1.2.5.

    La s

    computadoras multimedia

    Hoy da las

    computadoras personales profesionales

    y

    domsticas tienen prcticamente

    e n u n

    gran porcentaje incorporadas caractersticas

    multimedia

    (CD-ROM, tarjeta

    de

    sonido, altavoces

    y

    micrfono)

    q u e

    permiten integrar texto, sonido, grficos

    e im -

    genes

    en

    movimiento.

    La s

    computadoras multimedia pueden leer discos CD-ROM

    de

    gran capacidad

    de

    almacenamiento. Esta caracterstica

    h a

    hecho

    que la

    mayora

    de los

    fabricantes

    d e

    software comercialicen

    su s

    compiladores (programas

    de

    traduccin

    de len-

    guajes

    d e

    programacin)

    en

    CD-ROM, almacenando

    e n un

    solo disco

    lo que

    antes

    ne -

    cesitaba seis, ocho

    o

    doce disquetes.

    Figura

    1 . 9 .

    Computadora mul timedia.

  • 7/24/2019 Programacin en Turbo-Borland Pascal 7 3ra Edicin

    17/558

    1 0

    Programacin

    en

    Turbo/Borland Pascal

    7

    1.3. ELSOFTWARE LO S PROGRAMAS)

    La s

    operaciones

    qu e

    debe realizar

    el

    hardware

    so n

    especificadas

    po r una

    lista

    d e

    instruc-

    ciones, llamadas programas,

    o

    software.

    El

    software

    se

    divide

    en dos

    grandes grupos:

    software

    del

    sistema

    y

    software

    de

    aplicaciones.

    El

    software del sistema

    es el

    conjunto

    de

    programas indispensables para

    que la m-

    quina funcione;

    se

    denominan tambin programas

    de l

    sistema. Estos programas

    son,

    bsicamente,

    el

    sistema operativo,

    lo s

    editores

    de

    texto,

    lo s

    compiladores/intrpretes

    (len-

    guajes

    d e

    programacin)

    y los

    programas

    de

    utilidad.

    Uno de los

    programas

    m s

    importantes

    es el

    sistema operativo,

    q u e

    sirve, esencial-

    mente, para facilitar laescritura y uso de sus propios programas. El sistema operativo

    dirige las operaciones globales de lacomputadora, instruye a lacomputadora para ejecu-

    ta r otros programas y controla el almacenamiento y recuperacin de archivos (progra-

    mas y

    datos)

    d e

    cintas

    y

    discos. Gracias

    al

    sistema operativo

    es

    posible

    que e l

    programa-

    do r

    pueda introducir

    y

    grabar nuevos programas,

    as

    como instruir

    a la

    computadora

    para

    que los

    ejecute.

    Lo s

    sistemas operativos pueden

    ser:monousuarios (u n

    solo usuario)

    y multiusuarios, o tiempo compartido

    (diferentes usuarios), atendiendo

    al

    nmero

    de

    usuarios

    y monocarga ( u n a

    sola tarea)

    o multirea

    (mltipl es tareas) segn

    las

    tareas

    (procesos)

    q ue

    puede realizar simultneamente. Turbo Pascal corre (funciona)

    p o r

    ahora

    en el

    sistema operativo

    d e

    disco

    D O S

    monousuario, monotarea

    y

    Windows

    95

    multitarea,

    q u e

    soportan

    la s

    computadoras personales

    PC , XT , AT y PS/2 ,

    compu-

    tadoras Macintosh

    de

    Apple

    y en el ya

    clsico UNIX.

    Figura 1 . 1 0 .

    Diferen tes programas d e so f t war e .

    Introduccin a laciencia de lascomputadoras y a laprogramacin 1 1

    Lo slenguajes deprogramacin sirven para escribir progra masq uepermitan lacomu-

    nicacin usuario/mquina. Unos programas especiales llamadostraductores (compilado-

    res

    e

    intrpretes)convierten

    las

    instrucciones escritas

    en

    lenguajes

    de

    programacin

    en

    instrucciones escritas

    en

    lenguajes mquina

    (0 y 1,

    bits)

    q ue

    sta pueda entender.

    Lo s

    programas

    de

    utilidad

    4

    facilitan

    el uso de la

    computadora.

    U n

    buen ejemplo

    es

    un

    editor

    de

    textos

    q ue

    permite

    la

    escritura

    y

    edicin

    de

    documentos. Este libro

    ha

    sido

    escrito

    en un

    editor

    de

    textos

    o

    procesador

    de

    palabras

    ("

    word procesor ).

    Lo s

    programas

    qu e

    realizan tareas concretas, nminas , contabilidad, anlisis estads-

    ticos,

    etc., es

    decir,

    lo s

    programas

    q ue

    podr escribir

    en

    Turbo Pascal,

    se

    denominan

    programas

    de

    aplicacin.

    A lo

    largo

    de l

    libro

    se

    vern pequeos programas

    de

    aplicacin

    qu e

    muestran

    lo s

    principios

    de una

    buena programacin

    de

    computadora.

    Se

    debe diferenciar entre

    el

    acto

    de

    crear

    u n

    programa

    y la

    accin

    de la

    computado-

    ra

    cuando ejecuta

    la s

    instrucciones

    de l

    programa.

    La

    creacin

    de un

    programa

    se

    hace

    inicialmente

    en

    papel

    y a

    continuacin

    se

    introduce

    en la

    computadora

    y se

    convierte

    en

    lenguaje entendible

    por la

    computadora.

    La

    Figura

    1.12

    muestra

    el

    proceso general

    de

    ejecucin

    de un

    programa: aplicacin

    de una

    entrada

    (datos) al

    programa

    y

    obtencin

    de

    u na

    salida (resultados).

    La

    entrada puede tener

    u n a

    variedad

    de

    formas, tales como

    nmeros

    o

    caracteres alfabticos.

    La

    salida puede tambin tener formas, tales como

    datos numricos

    o

    caracteres, seales para controlar equipos

    o

    robots,

    etc.

    4

    Utility: programa deutilidad.

  • 7/24/2019 Programacin en Turbo-Borland Pascal 7 3ra Edicin

    18/558

    1 2

    Programacin en Turbo/Borland Pascal 7

    Terminal

    P r o g r a m a d o r

    UCP

    Datos de

    entrada

    Datos de salida

    (resultados)

    Otros

    dispositivos

    : externos

    Figura 1 . 1 2 .

    Accin de un programador.

    La

    ejecucin

    de un

    programa requiere generalmente unos datos como entrada

    (Figura 1.13), adems

    de l

    propio programa, para poder producir

    u n a

    salida.

    UCP

    Entrada

    (Datos)

    Sistema

    operativo

    Programa

    Salida

    (resultados)

    Mem o r i a

    ex t e r n a

    Programa

    Figura 1 . 1 3 .

    Ejecucin de un programa.

    1.4. LOS

    LENGUAJES

    DE

    PROGRAMACION

    Lo s lenguajes utilizados para escribir programas d e computadoras q u e puedan se r enten-

    didos p o r ellas se denominan lenguajes deprogramacin.

    Lo slenguajesd e programacin se clasificane n tres grandes categoras:mquina, bajo

    nivel (ensamblador) y alto nivel.

    1.4.1. Lenguaje mquina

    Lo s

    lenguajes mquina

    so n aquellos cuyas instrucciones so n directamente entendibles

    por la computadora y n o necesitan traduccin posterior para que l a U C P pueda c o m -

    prender y ejecutar el programa. L as instrucciones en lenguaje mquina se expresan en

    trminos de la unidad d e memoria m s pequea, el bit (dgito binario 0, o bien 1), en

    Introduccin a laciencia de las computadoras y a laprogramacin

    1 3

    esencia u n a secuencia de bits q u e especifican la operacin y las celdas d e memoria

    implicadas en una operacin. U n a serie d e instrucciones en lenguaje mquina son:

    0010 0000 0000 1001

    1001 0001 1001 1110

    Como se puede observar, estas instrucciones sern fcilesd eleer por lacomputadora

    y

    difciles

    po r un

    programador,

    y

    viceversa. Esta razn hace difcil escribir programas

    en

    cdigo o lenguaje a mquina y requiere buscar otro lenguaje para comunicarse con la

    computadora, pero que s ea m s fcild e escribir y leer po r e lprogramador. Para evitar la

    tediosa tarea d eescribir programas enlenguaje maquina se han diseado otros lenguajes

    de programacin q u e facilitan laescritura y posterior ejecucin de losprogramas. Estos

    lenguajes son los de bajo y alto nivel.

    1.4.2. Lenguajes

    d e

    bajo nivel (ensambladores)

    La programacin en l