| A nuestros lectores | 9
|
| Introducción | 10
|
| Capítulo 1. Algoritmos y programas | 12
|
| Capítulo 2. Operadores principales en los lenguajes de programación | 18
|
| 2.1. Variables. Entrada de datos en un programa. Operador de asignación | 18
|
| Complemento. Sobre las funciones | 32
|
| 2.2. Alternativas en los programas. Operadores condicionales | 34
|
| 2.2.1. Dos alternativas | 34
|
| 2.2.2. Una alternativa que no es obligatoria | 41
|
| 2.3. Repetición de las operaciones en un programa. Ciclos | 44
|
| 2.3.1. Ciclos con parámetro | 44
|
| 2.3.2. Ciclos con precondición | 52
|
| 2.3.3. Ciclos con postcondición | 60
|
| Complemento | 63
|
| Capítulo 3. Preparémonos para resolver problemas | 64
|
| 3.1. Intercambio de los valores de las variables | 64
|
| 3.2. Números aleatorios en los programas | 65
|
| 3.3. Condiciones compuestas. Banderas | 67
|
| Complemento | 72
|
| 3.4. Tres y más alternativas en un programa | 72
|
| 3.5. Contadores y sumadores | 82
|
| 3.6. Transformación de un tipo de ciclo en otro | 86
|
| 3.7. ¿Qué puede contener el cuerpo de un ciclo? | 92
|
| Capítulo 4. Problemas típicos de procesamiento de conjuntos de números (primera parte) | 106
|
| 4.1. Suma de todos los números de un conjunto | 106
|
| 4.2. Suma de los números de un conjunto que tienen propiedades dadas (satisfacen alguna condición) | 108
|
| 4.3. Conteo de los números de un conjunto que tienen propiedades dadas | 109
|
| 4.4. Cálculo de la media aritmética de los números de un conjunto que tienen propiedades dadas | 111
|
| 4.5. Búsqueda del número de orden de un número en un conjunto | 113
|
| 4.6. Búsqueda del máximo de un conjunto de números | 116
|
| 4.7. Búsqueda del número de orden del máximo en un conjunto de números | 118
|
| Capítulo 5. Programación de juegos sencillos | 121
|
| 5.1. Lanzamiento de un dado | 121
|
| 5.2. «Par o impar» | 123
|
| 5.3. «Adivina el número» | 126
|
| 5.4. Comprobemos si conocemos la tabla de multiplicación | 128
|
| 5.5. «Naipes» | 128
|
| Capítulo 6. Problemas típicos de procesamiento de conjuntos de números (segunda parte) | 132
|
| 6.1. Búsqueda del número de orden de un número en un conjunto | 132
|
| 6.2. ¿Existe o no existe? | 135
|
| 6.2.1. Comprobación de la existencia de un número dado en un conjunto de números | 136
|
| 6.2.2. Comprobación de la existencia de números con propiedades dadas en un conjunto de números | 138
|
| 6.3. Búsqueda del mayor de los números de un conjunto que tienen propiedades dadas | 139
|
| 6.4. Búsqueda de la cantidad de máximos en un conjunto | 143
|
| 6.5. Búsqueda del segundo máximo en un conjunto | 144
|
| 6.5.1. Búsqueda del número que ocupa el penúltimo lugar si el conjunto se ordena de manera no decreciente | 145
|
| 6.5.2. Búsqueda de un número que es superado sólo por el máximo en un conjunto | 147
|
| Capítulo 7. Arreglos | 149
|
| 7.1. Ventajas de los arreglos | 149
|
| 7.2. Cómo inicializar un arreglo | 150
|
| 7.3. Siete problemas sencillos de procesamiento de arreglos | 154
|
| 7.3.1. Suma de todos los elementos de un arreglo | 154
|
| 7.3.2. Suma de los elementos de un arreglo que tienen propiedades dadas (satisfacen alguna condición) | 155
|
| 7.3.3. Conteo de los elementos de un arreglo que tienen propiedades dadas | 155
|
| 7.3.4. Cálculo de la media aritmética de los elementos de un arreglo que tienen propiedades dadas | 156
|
| 7.3.5. Cómo mostrar en la pantalla los elementos de un arreglo que tienen propiedades dadas | 156
|
| 7.3.6. Cómo mostrar en la pantalla los índices de los elementos de un arreglo que tienen propiedades dadas | 157
|
| 7.3.7. Búsqueda de los elementos de un arreglo que tienen una propiedad dada e inclusión de los mismos en otro arreglo | 158
|
| 7.4. Problemas de procesamiento de pares de elementos de un arreglo | 159
|
| 7.4.1. Procesamiento de los pares de elementos adyacentes | 159
|
| 7.4.2. Procesamiento de los pares disjuntos de elementos adyacentes | 160
|
| 7.4.3. Procesamiento de todos los pares de elementos de un arreglo | 161
|
| Capítulo 8. Problemas típicos de procesamiento de arreglos | 166
|
| 8.1. Búsqueda del primer elemento que tiene propiedades dadas (satisface alguna condición) en un arreglo | 166
|
| 8.2. Comprobación de la existencia de un elemento que tiene propiedades dadas en un arreglo | 170
|
| 8.3. Búsqueda del elemento máximo de un arreglo | 173
|
| 8.4. Búsqueda del índice del elemento máximo de un arreglo | 174
|
| 8.5. Búsqueda de la cantidad de elementos máximos en un arreglo | 176
|
| 8.6. Búsqueda del máximo entre los elementos de un arreglo que tienen propiedades dadas | 177
|
| 8.7. Búsqueda del índice del máximo entre los elementos de un arreglo que tienen propiedades dadas | 180
|
| 8.8. Búsqueda del segundo elemento máximo en un arreglo | 180
|
| 8.8.1. Búsqueda del elemento que ocupa el penúltimo lugar si el arreglo se ordena de manera no decreciente | 181
|
| 8.8.2. Búsqueda de un elemento cuyo valor es superado sólo por el del elemento máximo en un arreglo | 182
|
| 8.9. Búsqueda del segundo mínimo | 183
|
| 8.10. Introducción de cambios en los arreglos | 184
|
| 8.10.1. Cambiar los elementos de un arreglo que tienen propiedades dadas | 184
|
| 8.10.2. Intercambiar dos elementos de un arreglo que tienen números dados | 184
|
| 8.10.3. Disponer todos los elementos de un arreglo en orden inverso | 185
|
| 8.10.4. Eliminar el primer elemento de un arreglo y desplazar una posición hacia la izquierda todos los elementos ituados a la derecha del primero | 187
|
| 8.10.5. Desplazamiento cíclico de los elementos de un arreglo hacia la izquierda | 188
|
| 8.10.6. Desplazar todos los valores de los elementos una posición hacia la derecha y escribir en el primer elemento del arreglo un nuevo valor | 189
|
| 8.10.7. Desplazamientocíclico de los elementos de un arreglo hacia la derecha | 190
|
| Complemento | 192
|
| Capítulo 9. Arreglos bidimensionales | 194
|
| Capítulo 10. Procesamiento de cadenas de caracteres. Cuestiones generales | 202
|
| Complemento | 209
|
| Capítulo 11. Problemas típicos de procesamiento de cadenas de caracteres | 212
|
| 11.1. Procesamiento de los símbolos de una cadena de caracteres | 212
|
| 11.1.1.Hallar cuántas veces un símbolo dado aparece en una cadena de caracteres | 212
|
| 11.1.2.Hallar la primera posición de un símbolo dado en una cadena de caracteres | 213
|
| 11.1.3.Comprobar si una cadena de caracteres contiene un símbolo dado | 214
|
| 11.1.4.Comprobar si el símbolo que ocupa una posición dada es una cifra | 216
|
| 11.2. Procesamiento de subcadenas | 217
|
| 11.2.1.Hallar cuántas veces una subcadena dada aparece en una cadena de caracteres | 218
|
| 11.2.2.Hallar la primera posición de una subcadena dada en una cadena de caracteres | 218
|
| 11.2.3.Comprobar si una cadena de caracteres contiene una subcadena dada | 219
|
| 11.2.4.Eliminar todas las apariciones de una subcadena dada en una cadena de caracteres | 220
|
| 11.2.5.Reemplazar todas las apariciones de una subcadena dada en una cadena de caracteres por otra subcadena | 223
|
| 11.3. Extracción de las palabras de una oración | 224
|
| 11.3.1. Extracción de la primera palabra | 224
|
| 11.3.2. Extracción de la segunda palabra | 226
|
| 11.3.3. Extracciónde todas las palabras | 227
|
| Capítulo 12. Funciones y procedimientos | 232
|
| Complemento | 245
|
| Apéndice 1. Otras cuestiones relacionadas con la programación | 247
|
| A.1.1. Relaciones recurrentes | 247
|
| A.1.2. Comprobación de las propiedades de los valores | 253
|
| A.1.3. Búsqueda de la única raíz de una ecuación en un segmento dado | 260
|
| A.1.4. Otros ejemplos de uso del residuo y el cociente entero | 264
|
| A.1.5. Ordenamiento de un arreglo | 270
|
| A.1.6. Método de búsqueda binaria | 274
|
| A.1.7. Recursión. Funciones y procedimientos recursivos | 278
|
| A.1.8. Procesamiento de subsucesiones | 286
|
| A.1.8.1. Longitud (cantidad de elementos) de un subarreglo | 287
|
| A.1.8.2. Búsqueda del subarreglo de longitud máxima | 288
|
| A.1.8.3. Búsqueda de la suma máxima de elementos consecutivos de un arreglo que tienen propiedades dadas | 295
|
| A.1.8.4. Búsqueda de la cantidad de subarreglos | 299
|
| Apéndice 2. Cifrado de textos con ayuda de programas | 300
|
| A.2.1. Cifrado Atbash | 300
|
| A.2.2. Cifrado de César | 302
|
| A.2.3. Cifrado de Vigenère | 304
|
| Complemento | 307
|
| Apéndice 3. Juego de Bachet | 308
|
| Bibliografía | 311
|
| Índice de materias | 312
|