4
7 Índice INTRODUCCIÓN ...................................................................................... 11 Capítulo 1. El computador y el procesamiento de la información ...... 15 1.1 Conceptos previos a la definición de información. La necesidad de un sistema ................................................................................. 15 1.2 Concepto de información ............................................................... 21 1.2.1 Definición de C. E. Shannon (1948) .................................... 21 1.2.2 La teoría de la complejidad algorítmica. Definición de Kolmogorov - Solomonoff - Chaitin (1960-65) ................. 24 1.3 Modelos de computación................................................................ 26 1.3.1 Modelo de los autómatas regulares...................................... 27 1.3.2 Modelo de la máquina de Turing (1936) ............................. 28 1.4 Partes funcionales de un computador actual .................................. 29 1.4.1 Antecedentes del ordenador actual. Máquina de Von Newmann ..................................................................... 29 1.4.2 Descripción modular del ordenador actual .......................... 30 1.4.3 El juego de instrucciones de la CPU.................................... 36 1.4.4 Descripción operacional ...................................................... 37 1.5 Ejercicios y cuestiones ................................................................... 39 Capítulo 2. Algoritmos y programas ...................................................... 41 2.1 Concepto de algoritmo. La tesis de Church-Turing ....................... 41 2.2 Concepto de programa y tipos de metodologías de programación. 44 2.2.1 Definición ............................................................................ 44 2.2.2 Concepto de programa estructurado y el paradigma de la programación estructurada................................................... 45 2.2.3 Otros paradigmas de programación ..................................... 50 2.3 Estructura y representación de programas estructurados ............... 53 2.3.1 Modularidad y uso de bibliotecas ........................................ 53 2.3.2 Compilador e intérprete ....................................................... 60

Índice - Publicacions Universitat de València · 4.6 Algunas operaciones aritméticas en código binario ..... 141 4.6.1 Operaciones unarias: Rotación y desplazamiento ..... 141

  • Upload
    others

  • View
    13

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Índice - Publicacions Universitat de València · 4.6 Algunas operaciones aritméticas en código binario ..... 141 4.6.1 Operaciones unarias: Rotación y desplazamiento ..... 141

7

Índice

INTRODUCCIÓN ...................................................................................... 11

Capítulo 1. El computador y el procesamiento de la información ...... 15 1.1 Conceptospreviosaladefinicióndeinformación.Lanecesidad de un sistema ................................................................................. 15 1.2 Concepto de información ............................................................... 21 1.2.1 DefinicióndeC.E.Shannon(1948) .................................... 21 1.2.2 Lateoríadelacomplejidadalgorítmica.Definiciónde Kolmogorov-Solomonoff-Chaitin(1960-65) ................. 24 1.3 Modelos de computación ................................................................ 26 1.3.1 Modelo de los autómatas regulares...................................... 27 1.3.2 ModelodelamáquinadeTuring(1936) ............................. 28 1.4 Partes funcionales de un computador actual .................................. 29 1.4.1 Antecedentes del ordenador actual. Máquina de Von Newmann ..................................................................... 29 1.4.2 Descripción modular del ordenador actual .......................... 30 1.4.3 El juego de instrucciones de la CPU.................................... 36 1.4.4 Descripción operacional ...................................................... 37 1.5 Ejercicios y cuestiones ................................................................... 39

Capítulo 2. Algoritmos y programas ...................................................... 41 2.1 Conceptodealgoritmo.LatesisdeChurch-Turing ....................... 41 2.2 Concepto de programa y tipos de metodologías de programación. 44 2.2.1 Definición ............................................................................ 44 2.2.2 Concepto de programa estructurado y el paradigma de la programación estructurada ................................................... 45 2.2.3 Otros paradigmas de programación ..................................... 50 2.3 Estructura y representación de programas estructurados ............... 53 2.3.1 Modularidad y uso de bibliotecas ........................................ 53 2.3.2 Compilador e intérprete ....................................................... 60

Page 2: Índice - Publicacions Universitat de València · 4.6 Algunas operaciones aritméticas en código binario ..... 141 4.6.1 Operaciones unarias: Rotación y desplazamiento ..... 141

8

2.4 Concepto de sistema operativo ....................................................... 61 2.5 El concepto de ingeniería del software ........................................... 63 2.6 Ejercicios y cuestiones ................................................................... 67

Capítulo 3. Elementos básicos de la programación estructurada ....... 71 3.1 Uso de datos en la programación. Atributos de los datos. Concepto de variable ...................................................................... 71 3.1.1 Atributos de los datos .......................................................... 71 3.2 Las clases de datos.......................................................................... 74 3.3 Tipos de datos simples .................................................................... 75 3.3.1 Tipo entero ........................................................................... 77 3.3.2 Tipodenúmeroencomaflotante ........................................ 79 3.3.3 Tipo carácter ........................................................................ 82 3.3.4 Tipo booleano ...................................................................... 84 3.3.5 Tipo puntero ......................................................................... 85 3.3.6 Tipo enumerado ................................................................... 86 3.4 Conversión de tipos ........................................................................ 87 3.5 Expresiones,enunciadosysentenciasdecontroldeflujo .............. 90 3.5.1 Expresiones y enunciados o sentencias atómicas ................ 90 3.5.2 Entrada/salida estándar en el lenguaje C ............................. 91 3.5.3 Sentenciasdecontroldeflujodelainformación ................. 93 3.6 Concepto de subprograma. Ámbito y paso de variables en subprogramas .................................................................................. 103 3.6.1 Subprogramas, características básicas ................................. 103 3.6.2 Ámbito de las variables de los subprogramas...................... 110 3.6.3 El modelo de ejecución de programas compilados. Relación con el concepto de encapsulamiento .................... 112 3.6.4 Tipos de variables según su almacenamiento en el programa en ejecución ......................................................................... 116 3.6.5 Encapsulamiento .................................................................. 116 3.7 Recursividad ................................................................................... 117 3.8 Ejercicios y cuestiones ................................................................... 123

Capítulo 4. Representación de la información en el computador ........ 129 4.1 Aritméticafinita .............................................................................. 129 4.2 Sistemasdenumeraciónutilizadosencomputadoras.Sistemas base N ............................................................................................. 130 4.2.1 Sistema binario (Sistema base 2) ......................................... 131 4.2.2 Sistema octal (Sistema base 8) ............................................ 132 4.2.3 Sistemahexadecimal(Sistemabase16) .............................. 132 4.2.4 Cambios más comunes entre los sistemas anteriores .......... 133 4.3 Expresión de números negativos en código binario. Complemento a 2 ............................................................................ 135

Page 3: Índice - Publicacions Universitat de València · 4.6 Algunas operaciones aritméticas en código binario ..... 141 4.6.1 Operaciones unarias: Rotación y desplazamiento ..... 141

9

4.4 Representacióndenúmerosencomaflotante(subconjuntode números reales) ............................................................................... 136 4.4.1 Principiosdelanotaciónencomaflotante .......................... 137 4.5 Norma 754 de IEEE para representación de números en punto flotante ............................................................................................ 139 4.6 Algunas operaciones aritméticas en código binario ....................... 141 4.6.1 Operacionesunarias:Rotaciónydesplazamiento ............... 141 4.6.2 Operaciones binarias ............................................................ 142 4.6.3 Cálculo de otros elementos matemáticos usuales ................ 144

Capítulo 5. Tipos de datos compuestos. Estructuras de datos ............. 147 5.1 Concepto de constructor de tipo ..................................................... 147 5.2 Tiposdedatoscompuestoshomogéneos ........................................ 148 5.2.1 Vectores (arrays) .................................................................. 148 5.2.2 Matrices multidimensionales ............................................... 154 5.2.3 Cadenas de caracteres .......................................................... 157 5.3 Tiposdedatoscompuestosheterogéneos ....................................... 159 5.3.1 Registros .............................................................................. 159 5.4 Elpunterocomoherramientadeconstruccióndeestructuras de datos ........................................................................................... 166 5.5 Concepto de tipo abstracto de datos (TAD).................................... 166 5.5.1 Definicióndeabstracciónybrevecaracterizacióndelos TADs que se adaptan a ella .................................................. 167 5.5.2 El TAD en la práctica ........................................................... 168 5.5.3 TAD como contenedor de datos........................................... 170 5.6 Ejercicios y cuestiones ................................................................... 173

Capítulo 6. Ficheros ................................................................................. 179 6.1 Niveleslógicoyfísicodelosficheros ............................................ 179 6.1.1 Nivel físico........................................................................... 179 6.1.2 Nivel lógico ......................................................................... 181 6.2 Clasificacionesdelosficheros ........................................................ 184 6.3 Ficherosconoperacionesdeaccesosecuencial ............................. 184 6.3.1 Ficherosdetipotextosinformato ....................................... 184 6.3.2 Ficherosdetipotextoconformato ...................................... 187 6.3.3 Funciones de acceso ............................................................ 189 6.3.4 Ficherosbinarios .................................................................. 190 6.4 Ficherosconoperacionesdeaccesodirecto ................................... 195 6.4.1 Operacióndeactualizacióndedatosenficherosconacceso directo .................................................................................. 198 6.5 Algunosmodelosrealesdeficherosconestosaccesos .................. 204 6.5.1 Ficherosconíndice(indexados) .......................................... 204 6.5.2 Ficherosindexadosconunafuncióndedispersión ............. 205 6.5.3 Acceso aleatorio usando una función de dispersión ............ 206 6.6 Ejercicios y cuestiones .................................................................. 206

Page 4: Índice - Publicacions Universitat de València · 4.6 Algunas operaciones aritméticas en código binario ..... 141 4.6.1 Operaciones unarias: Rotación y desplazamiento ..... 141

10

Capítulo 7. Introducción a la algoritmia ................................................ 209 7.1 Concepto de coste computacional. Medida del coste temporal y espacial ........................................................................................... 209 7.1.1 Definicióndecostetemporalyespacial .............................. 210 7.1.2 Medida del coste temporal usando pasos............................. 210 7.1.3 Medida de la complejidad temporal usando instrucciones críticas .................................................................................. 212 7.1.4 El coste espacial ................................................................... 215 7.1.5 Concepto de talla de un algoritmo ....................................... 216 7.1.6 Concepto de instancias de un problema. Coste medio, mejor caso y peor caso ......................................................... 216 7.1.7 Algunasnotacionesasintóticasparadefinircostes. Las notaciones O, Ω y Θ ..................................................... 218 7.1.8 El compromiso entre el coste espacial y el coste temporal . 222 7.2 Algoritmos de búsqueda ................................................................. 223 7.2.1 Búsqueda lineal .................................................................... 223 7.2.2 Búsqueda binaria ................................................................. 225 7.3 Algoritmos de ordenación .............................................................. 228 7.3.1 Algoritmos directos basados en comparaciones .................. 229 7.3.2 Algoritmos rápidos basados en comparaciones ................... 237 7.3.3 Ordenación con coste menor que n log n. Ordenación por distribución .......................................................................... 243 7.4 Ejercicios y cuestiones ................................................................... 247

Capítulo 8. Breve referencia de algunas estrategias de programación 251 8.1 Divide y vencerás ........................................................................... 251 8.2 Algoritmos voraces ......................................................................... 252 8.3 Métodos de programación dinámica .............................................. 254 8.4 Método de vuelta atrás (BackTracking) ......................................... 255 8.5 Métododeramificaciónypoda ...................................................... 257

APÉNDICE Aplicación del diseño descendente a un problema ................................ 259

BIBLIOGRAFÍA......................................................................................... 261

ÍNDICE ANALÍTICO ................................................................................ 263