´        Cristobal Pareja         ´         Angel Andeyro         Manuel OjedaIntroducci´n a la Inform´tica          o    ...
1a Edici´n                o       Febrero 1994   c   Crist´bal Pareja            o       ´       Angel Andeyro       Manue...
´Indice General   Presentaci´n             o                                                                              ...
6                                                            ´                                                            ...
´Indice general                                                                                      7         4.2.1 Proce...
8                                                       ´                                                        Indice ge...
´Indice general                                                                       9B Introducci´n a UNIX              ...
Presentaci´n          o     Hay muchos y excelentes libros sobre inform´tica en un nivel intro-                           ...
12                                                                 ´                                                      ...
´Presentacion                                                             13de los primeros cursos universitarios, y tambi...
14                                                                  ´                                                     ...
´Presentacion                                                           15Agradecimientos     En primer lugar, es inexcusa...
Cap´   ıtulo 1Conceptos B´sicos           a   1.1   Inform´tica . . . . . . . .                a                       .  ...
18                                 Cap´                   ´                                      ıtulo 1. Conceptos Basico...
1.3. Sistema operativo                                                 19                                 usuario         ...
20                                  Cap´                   ´                                       ıtulo 1. Conceptos Basi...
1.5. Algoritmos y programas                                            21    El desarrollo del software de aplicaciones ha...
22                                  Cap´                   ´                                       ıtulo 1. Conceptos Basi...
1.5. Algoritmos y programas                                                    23diversa, desde los problemas m´s inmediat...
24                                  Cap´                   ´                                       ıtulo 1. Conceptos Basi...
1.5. Algoritmos y programas                                             25  4. No debe olvidarse la importancia de la estr...
26                                 Cap´                   ´                                      ıtulo 1. Conceptos Basico...
1.6. Ejercicios                                                             27incumplimiento de las reglas sint´cticas del...
28                                     Cap´                   ´                                          ıtulo 1. Concepto...
Cap´   ıtulo 2Representaci´n digital de             ola informaci´n            o   2.1   Conceptos previos . . . . . . . ....
30               Cap´                    ´                 ´                    ıtulo 2. Representacion de la informacion ...
2.1. Conceptos previos                                                31   • La palabra se define en relaci´n con la m´quin...
32                Cap´                    ´                 ´                     ıtulo 2. Representacion de la informacio...
2.1. Conceptos previos                                                              33Sistemas de numeraci´n m´s usuales  ...
34              Cap´                    ´                 ´                   ıtulo 2. Representacion de la informacionObs...
´2.2. Representacion digital de los datos                                352.2     Representaci´n digital de los datos    ...
36                Cap´                    ´                 ´                     ıtulo 2. Representacion de la informacio...
´2.2. Representacion digital de los datos                                        37Consideremos ahora esta representaci´n ...
38                Cap´                    ´                 ´                     ıtulo 2. Representacion de la informacio...
´2.2. Representacion digital de los datos                                               392.2.2    Representaci´n de los n...
40               Cap´                    ´                 ´                    ıtulo 2. Representacion de la informacion ...
´2.2. Representacion digital de los datos                                     41la tierra y la del atomo. El sistema m´s c...
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Librocompleto
Próxima SlideShare
Cargando en…5
×

Librocompleto

838 visualizaciones

Publicado el

dfgadfsd

0 comentarios
0 recomendaciones
Estadísticas
Notas
  • Sé el primero en comentar

  • Sé el primero en recomendar esto

Sin descargas
Visualizaciones
Visualizaciones totales
838
En SlideShare
0
De insertados
0
Número de insertados
1
Acciones
Compartido
0
Descargas
11
Comentarios
0
Recomendaciones
0
Insertados 0
No insertados

No hay notas en la diapositiva.

Librocompleto

  1. 1. ´ Cristobal Pareja ´ Angel Andeyro Manuel OjedaIntroducci´n a la Inform´tica o a I. Aspectos generales
  2. 2. 1a Edici´n o Febrero 1994 c Crist´bal Pareja o ´ Angel Andeyro Manuel Ojeda ISBN: 84-7491-489-2Dep´sito Legal: M-7713-94 o
  3. 3. ´Indice General Presentaci´n o 111 Conceptos B´sicos a 17 1.1 Inform´tica . . . . . . . . . . . . . a . . . . . . . . . . . . . 17 1.2 Computador . . . . . . . . . . . . . . . . . . . . . . . . . . 18 1.3 Sistema operativo . . . . . . . . . . . . . . . . . . . . . . . 19 1.4 Aplicaciones . . . . . . . . . . . . . . . . . . . . . . . . . . 20 1.5 Algoritmos y programas . . . . . . . . . . . . . . . . . . . 21 1.5.1 Algoritmos . . . . . . . . . . . . . . . . . . . . . . 22 1.5.2 Programaci´n . . . . . . . . o . . . . . . . . . . . . . 24 1.5.3 Lenguajes de Programaci´n o . . . . . . . . . . . . . 25 1.6 Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 1.7 Comentarios bibliogr´ficos . . . . . a . . . . . . . . . . . . . 282 Representaci´n de la informaci´n o o 29 2.1 Conceptos previos . . . . . . . . . . . . . . . . . . . . . . 29 2.1.1 Informaci´n anal´gica y digital . . . . . . . . . . o o . 29 2.1.2 Unidades de informaci´n en los sistemas digitales o . 30 2.1.3 Sistemas de numeraci´n posicionales . . . . . . . o . 31 2.2 Representaci´n digital de los datos . . . . . . . . . . . . o . 35 2.2.1 Representaci´n de los n´meros enteros . . . . . . o u . 35 2.2.2 Representaci´n de los n´meros reales . . . . . . . o u . 39 2.2.3 Limitaciones de los sistemas de representaci´n di- o gital de los n´meros . . . . . . . . . . . . . . . . u . 42 2.2.4 Representaci´n de los caracteres . . . . . . . . . o . 46 2.2.5 Organizaci´n de datos m´s complejos . . . . . . o a . 47
  4. 4. 6 ´ Indice general 2.2.6 Representaci´n de las instrucciones . o . . . . . . . . 48 2.3 C´digos redundantes . . . . . . . . . . . . . o . . . . . . . . 49 2.3.1 Informaci´n y redundancia . . . . . o . . . . . . . . 49 2.3.2 C´digos s´lo autodetectores: p de n o o . . . . . . . . 51 2.3.3 C´digos autocorrectores: Hamming . o . . . . . . . . 51 2.4 Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 2.5 Comentarios bibliogr´ficos . . . . . . . . . . a . . . . . . . . 573 Estructura f´ ısica de un computador 59 3.1 Componentes de un computador . . . . . . . . . . . . . . 60 3.1.1 Memoria principal . . . . . . . . . . . . . . . . . . 62 3.1.2 Unidad central de proceso . . . . . . . . . . . . . . 67 3.1.3 Perif´ricos . . . . . . . . . . . . . . . . . . . . . . e . 70 3.1.4 Buses de comunicaci´n . . . . . . . . . . . . . . . o . 74 3.2 Lenguajes de m´quina . . . . . . . . . . . . . . . . . . . a . 77 3.2.1 Formato de las instrucciones . . . . . . . . . . . . 78 3.2.2 Tipos de Instrucciones . . . . . . . . . . . . . . . . 79 3.3 Un ejemplo de recapitulaci´n . . . . . . . . . . . . . . . o . 80 3.3.1 UCP con acumulador . . . . . . . . . . . . . . . . 81 3.3.2 Un juego de instrucciones de m´quina de una di- a recci´n . . . . . . . . . . . . . . . . . . . . . . . . o . 82 3.3.3 Ejecuci´n de una instrucci´n. Detalle . . . . . . o o . 84 3.3.4 Traducci´n y ejecuci´n de un programa sencillo . o o . 85 3.4 Observaciones complementarias . . . . . . . . . . . . . . . 88 3.4.1 Tipos de direccionamiento . . . . . . . . . . . . . . 89 3.4.2 Subrutinas . . . . . . . . . . . . . . . . . . . . . . 91 3.4.3 Interrupciones . . . . . . . . . . . . . . . . . . . . 94 3.5 Otras arquitecturas . . . . . . . . . . . . . . . . . . . . . . 95 3.6 Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 3.7 Comentarios bibliogr´ficos . . . . . . . . . . . . . . . . . a . 994 Sistemas Operativos 101 4.1 Cometido de un sistema operativo . . . . . . . . . . . . . 102 4.1.1 Funciones de los sistemas operativos . . . . . . . . 102 4.1.2 Formas de trabajo de los sistemas operativos . . . 103 4.2 Conceptos b´sicos de los sistemas operativos . . . . . a . . . 105
  5. 5. ´Indice general 7 4.2.1 Procesos . . . . . . . . . . . . . . . . . . . . . . . . 105 4.2.2 Archivos . . . . . . . . . . . . . . . . . . . . . . . . 106 4.2.3 N´cleo . . . . . . . . . . . . . . u . . . . . . . . . . . 109 4.2.4 Multiprogramaci´n . . . . . . . o . . . . . . . . . . . 110 4.2.5 Interfaz de usuario . . . . . . . . . . . . . . . . . . 111 4.2.6 Gesti´n de la memoria . . . . . o . . . . . . . . . . . 112 4.3 Clasificaci´n de los sistemas operativos o . . . . . . . . . . . 116 4.4 Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 4.5 Comentarios bibliogr´ficos . . . . . . . a . . . . . . . . . . . 1175 Lenguajes de programaci´n o 119 5.1 Lenguajes de bajo y alto nivel . . . . . . . . . . . . . . . . 120 5.1.1 Lenguajes orientados a la m´quina . . a . . . . . . . 120 5.1.2 Lenguajes de alto nivel . . . . . . . . . . . . . . . . 122 5.1.3 Paradigmas de programaci´n . . . . . o . . . . . . . 124 5.2 Descripci´n de los lenguajes de programaci´n o o . . . . . . . 131 5.2.1 Sintaxis . . . . . . . . . . . . . . . . . . . . . . . . 131 5.2.2 Sem´ntica . . . . . . . . . . . . . . . . a . . . . . . . 137 5.3 Procesadores de lenguajes . . . . . . . . . . . . . . . . . . 141 5.3.1 Compiladores e int´rpretes . . . . . . e . . . . . . . 144 5.3.2 Entornos de programaci´n . . . . . . . o . . . . . . . 144 5.4 Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . 148 5.5 Comentarios bibliogr´ficos . . . . . . . . . . . a . . . . . . . 1496 Bases de datos 151 6.1 Bases de datos y SGBD . . . . . . . . . . . . . . . . . . . 151 6.1.1 Archivos y SGA . . . . . . . . . . . . . . . . . . . 151 6.1.2 Bases de datos y SGBD . . . . . . . . . . . . . . . 152 6.1.3 Niveles de una base de datos . . . . . . . . . . . . 154 6.2 El modelo entidad-relaci´n . . . . . . . o . . . . . . . . . . . 155 6.3 Modelos de datos basados en registros . . . . . . . . . . . 158 6.3.1 El modelo relacional . . . . . . . . . . . . . . . . . 158 6.4 Lenguajes asociados a los SGBD . . . . . . . . . . . . . . 160 6.4.1 Lenguajes relacionales . . . . . . . . . . . . . . . . 161 6.5 Elementos de un SGBD . . . . . . . . . . . . . . . . . . . 163 6.6 Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
  6. 6. 8 ´ Indice general 6.7 Comentarios bibliogr´ficos . . . . . . . . . . . . . . . . . . 165 a7 Historia de los instrumentos de c´lculo a 167 7.1 Precursores de los computadores digitales . . . . . . . . . 167 7.1.1 La antig¨edad . . . . . . . . . . . . . . u . . . . . . 167 7.1.2 Antecedentes del c´lculo mec´nico . . . a a . . . . . . 168 7.1.3 La m´quina de Pascal . . . . . . . . . . a . . . . . . 168 7.1.4 La m´quina de Babbage . . . . . . . . . a . . . . . . 169 7.1.5 La tabulaci´n mec´nica . . . . . . . . . o a . . . . . . 170 7.2 Nacimiento de los computadores . . . . . . . . . . . . . . 171 7.2.1 El modelo de von Neumann . . . . . . . . . . . . . 172 7.2.2 Generaciones tecnol´gicas . . . . . . . . o . . . . . . 172 7.3 Evoluci´n de los lenguajes y de la metodolog´ o ıa . . . . . . 175 7.4 Tecnolog´ actual, tendencias y perspectivas . . ıa . . . . . . 176 7.4.1 Inteligencia artificial . . . . . . . . . . . . . . . . . 178 7.4.2 Las comunicaciones . . . . . . . . . . . . . . . . . . 178 7.5 Comentarios bibliogr´ficos . . . . . . . . . . . . a . . . . . . 179A Introducci´n al DOS o 181 A.1 Organizaci´n de recursos . . . . . . . . . . . . . o . . . . . . 182 A.1.1 Principales dispositivos . . . . . . . . . . . . . . . 182 A.1.2 Archivos . . . . . . . . . . . . . . . . . . . . . . . . 182 A.1.3 Directorios . . . . . . . . . . . . . . . . . . . . . . 184 A.1.4 Prompt . . . . . . . . . . . . . . . . . . . . . . . . 187 ´ A.2 Ordenes del DOS . . . . . . . . . . . . . . . . . . . . . . . 187 ´ A.2.1 Ordenes b´sicas . . . . . . . . . . . . . . a . . . . . . 190 A.2.2 Manejo de archivos . . . . . . . . . . . . . . . . . . 191 A.2.3 Manejo de directorios . . . . . . . . . . . . . . . . 193 A.2.4 Indicadores del sistema . . . . . . . . . . . . . . . 194 A.2.5 Procesamiento por lotes . . . . . . . . . . . . . . . 195 A.3 Configuraci´n del DOS . . . . . . . . . . . . . . o . . . . . . 195 A.4 Otros aspectos de inter´s . . . . . . . . . . . . . e . . . . . . 198 A.4.1 Encauzamiento: tubos y dem´s . . . . . a . . . . . . 198 A.4.2 Atributos y protecci´n de archivos . . . o . . . . . . 201 A.4.3 Ampliaciones de la memoria en los PCs . . . . . . 201
  7. 7. ´Indice general 9B Introducci´n a UNIX o 205 B.1 Breve descripci´n t´cnica . . . . . . . . . . . o e . . . . . . . 205 B.2 Una sesi´n con UNIX . . . . . . . . . . . . . o . . . . . . . 207 B.3 Gesti´n de archivos . . . . . . . . . . . . . . . o . . . . . . . 208 B.3.1 Identificadores . . . . . . . . . . . . . . . . . . . . 209 B.3.2 Tipos de archivos en UNIX . . . . . . . . . . . . . 209 B.3.3 Permisos asociados con un archivo . . . . . . . . . 210 ´ B.3.4 Ordenes para la gesti´n de archivos . . o . . . . . . . 211 B.4 El shell de UNIX . . . . . . . . . . . . . . . . . . . . . . . 212 B.4.1 Encauzamiento de la entrada y salida . . . . . . . 213 B.4.2 Caracteres comod´ . . . . . . . . . . ın . . . . . . . 213 B.4.3 Guiones de shell . . . . . . . . . . . . . . . . . . . 214 B.5 UNIX como sistema multitarea . . . . . . . . . . . . . . . 214 B.6 Conclusi´n . . . . . . . . . . . . . . . . . . . o . . . . . . . 216 B.7 Prontuario de comandos UNIX . . . . . . . . . . . . . . . 216 B.8 Diferencias entre DOS y UNIX . . . . . . . . . . . . . . . 221 Bibliograf´ ıa 223 ´ Indice alfab´tico e 228
  8. 8. Presentaci´n o Hay muchos y excelentes libros sobre inform´tica en un nivel intro- aductorio, con diversos enfoques y escritos en nuestra lengua. Muchos deellos est´n dirigidos a futuros inform´ticos, por lo que resultan, quiz´, a a ademasiado profundos para quienes s´lo persiguen aplicar la inform´tica o aen su trabajo; muchos otros, en cambio, se dirigen a no profesionales,por lo que ofrecen una visi´n panor´mica demasiado general de diver- o asos aspectos de la inform´tica, sin detenerse a analizar las implicaciones apr´cticas de esos aspectos. a Este libro se sit´a entre ambos extremos, ofreciendo un medio para uintroducir en la inform´tica a profesionales de otros campos que, sin em- abargo, necesiten aplicar adecuadamente los computadores en su trabajo,poniendo en marcha programas de aplicaci´n o manejando bancos de odatos e incluso, muchas veces, resolviendo por s´ mismos problemas no ıcontemplados en los programas comercializados. As´ pues, el contenido del texto incluye los temas que consideramos ıb´sicos para una introducci´n pr´ctica a la inform´tica. Quiz´ sea este a o a a aenfoque pr´ctico lo que mejor distinga a este texto de otros de intro- aducci´n a la inform´tica, que adolecen muchas veces de contenidos muy o aextensos y te´ricos, casi enciclop´dicos, en los que es dif´ diferenciar o e ıcillos conocimientos utiles en general de aqu´llos que s´lo encontrar´n de ´ e o autilidad inform´ticos profesionales. a Por lo tanto, este libro se dirige a quienes necesiten una formaci´nointroductoria en inform´tica, con un enfoque b´sico y pr´ctico, pero rigu- a a aroso. Entre ellos se encuentran, en primer lugar, todos aquellos alumnos
  9. 9. 12 ´ Presentacionde los primeros cursos universitarios que cuenten con asignaturas sobreinform´tica, tanto si se utiliza como herramienta aplicada a la resoluci´n a ode problemas como si es el propio objeto de estudio. Este libro se dirige asimismo a aquellas personas que, de una u otraforma, est´n relacionadas con el mundo de la inform´tica (operadores, a acomerciales, empresarios, etc.) y, sin embargo, ignoran lo que se escondetras la fachada de un computador (c´mo se almacena la informaci´n, o ocu´les son los procesos que se est´n ejecutando en su interior, etc.) y a aque utilizan una jerga t´cnica sin entender bien de qu´ hablan. e e Por ultimo, este libro se dirige tambi´n a todos los usuarios de com- ´ eputadores que est´n interesados en conocer mejor su herramienta de etrabajo, en saber qu´ estan haciendo y por qu´ lo hacen. El desarrollo e ey abaratamiento de los sistemas inform´ticos hace que computadores ade gran potencia que antes s´lo se encontraban en grandes centros de oc´lculo, atendidos por administradores de sistemas cualificados y dedi- acados por completo a dicha tarea, est´n hoy sobre nuestra mesa, y que el eusuario se tenga que encargar de administrar los recursos de su computa-dor, por ejemplo, gestionando la memoria, haciendo copias de seguridad,eliminando virus, etc. Por todo ello, cualquier usuario deber´ dedicar ıasiquiera una peque˜a parte de su tiempo a conocer los principios b´sicos n ade funcionamiento y gesti´n de su computador. o A todos ellos, este texto les ofrece la posibilidad de adquirir esosconocimientos, partiendo de cero, o de actualizarlos. Se ha seleccionado el contenido partiendo de las directrices se˜aladas nen [DCG*89] y [ACM91] aunque, en un nivel introductorio, no sea po-sible ni deseable abarcar todos los temas que s´lo interesan al futuro oprofesional de la inform´tica. As´ por ejemplo, quedan completamente a ıfuera del alcance de nuestro texto las areas de inteligencia artificial y ´rob´tica (AI) o la comunicaci´n hombre-m´quina (HU ). o o a Es frecuente, en cambio, que los destinatarios mencionados necesi-ten una parte de conocimientos generales sobre inform´tica y otra sobre adesarrollo de algoritmos en un lenguaje de alto nivel: ambas partes se in-cluyen en los programas de asignaturas de introducci´n a la inform´tica o a
  10. 10. ´Presentacion 13de los primeros cursos universitarios, y tambi´n interesan esas dos par- etes a los profesionales que usen la inform´tica como una herramienta y adeseen sacar partido de ella. El presente texto comprende dos vol´menes, complementarios, dedi- ucados respectivamente a esas dos partes, separando as´ la presentaci´n ı ode los conceptos generales y el desarrollo y organizaci´n de algoritmos oy estructuras de datos. En la primera parte, el enfoque pr´ctico nos aha llevado a relacionar los contenidos estudiados con sus repercusionespr´cticas o su utilizaci´n. En la segunda, se ha unificado el estudio de a olos algoritmos con su desarrollo, haciendo uso de un lenguaje de progra-maci´n concreto. o Este primer volumen se ha dividido en siete cap´ ıtulos, de los cua-les el primero ofrece una visi´n panor´mica de la inform´tica, de los o a acomputadores y de su uso en la actualidad: bien poniendo en marchaaplicaciones ya desarrolladas y adapt´ndolas a nuestras necesidades, o apreparando soluciones para problemas nuevos. Se presentan asimismolas primeras aproximaciones a los conceptos de algoritmo, programaci´n oy lenguajes de programaci´n. o En el cap´ ıtulo 2 se aborda la representaci´n digital de la informaci´n. o oConociendo las distintas formas de representaci´n, el programador podr´ o aelegir las m´s apropiadas a las caracter´ a ısticas y naturaleza de su pro-blema y prever sus limitaciones. Por otra parte, el usuario de aplicacio-nes tendr´ una idea aproximada de c´mo se almacena su informaci´n, el a o oespacio que ocupa y las circunstancias en que los resultados podr´ noıanser del todo fiables. El cap´ıtulo 3 est´ dedicado al aspecto f´ a ısico de los computadores ysus perif´ricos. Se explica su funcionamiento introduciendo los lenguajes ede bajo nivel, y se comentan brevemente las arquitecturas orientadas alprocesamiento en paralelo. En el cap´ ıtulo 4 se estudian los conceptos b´sicos para entender lo aque son los sistemas operativos, cu´les son sus funciones y c´mo las a ollevan a cabo. El cap´ ıtulo 5 se dedica a los lenguajes de programaci´n, en espe- o
  11. 11. 14 ´ Presentacioncial los lenguajes evolucionados. Se tratan distintos modelos de progra-maci´n, adem´s del imperativo, de amplia difusi´n en estos a˜os. Se o a o nintroducen los metalenguajes para describir su sintaxis por su utilidad,tanto a programadores como a simples usuarios de sistemas operativos,incluso en el nivel de los comandos. Finalmente, se estudian los distintostipos de traductores y los entornos de programaci´n. o El cap´ ıtulo 6 trata sobre las bases de datos, una de las aplicacionesde mayor aplicaci´n en el mundo empresarial. Entre los modelos des- oarrollados, destacamos el relacional y, entre los lenguajes de consulta, elSQL, debido a la extensa difusi´n de ambos en la actualidad. o Hemos dedicado el cap´ ıtulo 7 a los or´ ıgenes, estado actual y pers-pectivas de futuro de la inform´tica. Aunque muchos textos sit´an este a utema al principio, hemos preferido estudiarlo una vez que se conocenlos conceptos y la terminolog´ b´sicos. De esta forma mejora la com- ıa aprensi´n del cap´ o ıtulo y puede valorarse en su justa medida cada uno delos logros hist´ricos que en ´l se recogen. o e Debido al enfoque pr´ctico que perseguimos con este libro, se inclu- ayen dos ap´ndices dedicados a introducir en el manejo de dos sistemas eoperativos concretos de gran difusi´n en la actualidad: el DOS y el oUNIX. El hecho de traer aqu´ estos anexos responde a dos razones: por ıun lado, conocer las caracter´ ısticas de cada sistema interesa al estudiantecomo un ejemplo particular del cap´ ıtulo 4, permitiendo ver c´mo se lleva oa la pr´ctica lo estudiado en la teor´ por otro, siempre resulta de uti- a ıa;lidad al principiante disponer de un peque˜o prontuario de las ´rdenes n oo mecanismos m´s inmediatos que necesitar´ sin duda para empezar a a adesenvolverse en el entorno de esos sistemas operativos. En la mayor´ de los cap´ ıa ıtulos, se ha incluido una peque˜a colecci´n n ode cuestiones y sencillos ejercicios de aplicaci´n, utiles para afianzar los o ´conceptos introducidos. Adem´s, en cada cap´ a ıtulo se han seleccionado unas pocas referencias,para completar los contenidos presentados con otros enfoques, o bienpara profundizar en el tema.
  12. 12. ´Presentacion 15Agradecimientos En primer lugar, es inexcusable agradecer a la Editorial la confianzaque ha puesto en nosotros al aceptar una publicaci´n sobre un tema en oel que, ya lo hemos dicho, existen abundantes textos en nuestra lengua,as´ como su paciencia en la recepci´n de los originales. ı o Tambi´n debemos dejar constancia de nuestra gratitud hacia los ecompa˜eros que nos han alentado, desde el principio, a redactar este n ın a a ıa ´trabajo. En especial, a Benjam´ Hern´ndez Bl´zquez, Mar´ AngelesMedina S´nchez, Salvador Paz Mart´ a ınez, Inma P´rez de Guzm´n Mo- e alina y Marisol Timoneda Salinas, y tambi´n a todos aquellos alumnos eque, repetidamente, nos han sugerido la compilaci´n de unos apuntes de oclase. Durante la redacci´n de este trabajo, se han recogido numerosas opi- oniones y sugerencias. En particular, debemos agraceder las minuciosasrevisiones y comentarios hechos por Manuel Enciso Garc´ ıa-Oliveros, Car-los Rossi Jim´nez, Jos´ Luis Gal´n Garc´ Jaime Fern´ndez Mart´ e e a ıa, a ınez,Ma Angeles Cano Colorado, Oscar Mart´ S´nchez y Cristina Rodr´ ´ ´ ın a ıguezIglesias. Finalmente, quisi´ramos pedir la colaboraci´n de los lectores para e osubsanar las posibles deficiencias que encuentren.
  13. 13. Cap´ ıtulo 1Conceptos B´sicos a 1.1 Inform´tica . . . . . . . . a . . . . . . . . . . . . . . . . . . . . . 17 1.2 Computador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 1.3 Sistema operativo . . . . . . . . . . . . . . . . . . . . . . . . . . 19 1.4 Aplicaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 1.5 Algoritmos y programas . . . . . . . . . . . . . . . . . . . . . . 21 1.6 Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 1.7 Comentarios bibliogr´ficos a . . . . . . . . . . . . . . . . . . . . . 28 El objetivo principal de este cap´ ıtulo consiste en ofrecer una visi´n ogeneral del contenido del libro, presentando los conceptos generales ylos t´rminos m´s usados en inform´tica. Esta primera aproximaci´n e a a onos permite situar cada uno de los temas siguientes en relaci´n con los odem´s, y dentro del contexto de la inform´tica. a a1.1 Inform´tica a La inform´tica es la ciencia que estudia el procesamiento autom´tico a ade la informaci´n. Aunque la necesidad de razonar sobre este tipo de oprocesos existe desde tiempo atr´s, la consolidaci´n de la inform´tica a o acomo ciencia s´lo se produce con el desarrollo de los computadores, a opartir de los a˜os cuarenta. Se trata, por lo tanto, de una ciencia muy njoven, pero que ha evolucionado a gran velocidad.
  14. 14. 18 Cap´ ´ ıtulo 1. Conceptos Basicos La piedra maestra sobre la cual se ha podido desarrollar la infor-m´tica la representa el computador, que es una herramienta de gran aeficacia en muy diversos trabajos, y en particular en aqu´llos que ma- enejan un gran volumen de datos o de operaciones. Esta versatilidadtiene dos aspectos: por un lado, es posible usarlo como herramientapara aplicaciones concretas ya desarrolladas (1.4), y por otro se pue-den dise˜ar soluciones a la medida de problemas nuevos, mediante la nprogramaci´n (1.5). o El desarrollo de un programa nuevo para resolver un determinadoproblema requiere, por una parte, conocer alg´n procedimiento siste- um´tico (algoritmo) que lleve a su soluci´n, y por otra, la necesidad de a oexpresarlo en un lenguaje de programaci´n que el computador pueda ocomprender y ejecutar.1.2 Computador Un computador es una m´quina electr´nica que procesa informaci´n a o osiguiendo las instrucciones de un programa registrado. Para comunicarse con el exterior dispone de unos medios de entrada,a trav´s de los que recibe la informaci´n, y unos medios de salida, por e odonde la env´ Tiene dispositivos que le permiten almacenar la infor- ıa.maci´n (los datos, los resultados y el propio programa) y procesarla osiguiendo las instrucciones del programa. La informaci´n que se procesa en el computador (programas, da- otos y resultados) est´ expresada en forma digital binaria, combinando aceros y unos. En consecuencia, tanto los programas como los datos yresultados deben codificarse en este formato para poder ser procesados.Una vez obtenidos los resultados, ´stos tienen que ser decodificados para emostrarlos al usuario. Como hemos visto, un computador se compone de dos partes cla-ramente diferenciadas: una f´ ısica, que podemos tocar, constituida porcircuitos electr´nicos, teclado, pantalla, unidades de disco, etc., llamado ohardware, o en castellano soporte f´ ısico, y otra parte inmaterial, que no
  15. 15. 1.3. Sistema operativo 19 usuario software de aplicaciones y del sistema sistema operativo hardware Tabla 1.1. Estructura de niveles en un computador.podemos tocar, constituida por los programas y datos, llamada softwareen ingl´s y soporte l´gico en castellano. Ambas partes est´n ´ e o a ıntimamenterelacionadas de forma que una no puede operar sin la otra y viceversa.1.3 Sistema operativo Cuando se pone en marcha el computador, el primer programa queentra en funcionamiento es el sistema operativo, que gestiona y coordinalos dos aspectos, f´ ısico y l´gico, del computador. Se trata de un conjunto ode programas que se interrelacionan estrechamente con el hardware, ges-tionando los procesos en ejecuci´n, las operaciones de entrada y salida y ola memoria. Por ello, resulta imprescindible para el funcionamiento delcomputador. Los dem´s programas funcionan sobre el sistema operativo, y son agestionados por ´l. Entre ellos, se encuentran las herramientas para eel desarrollo de programas (tales como los editores y traductores delenguajes), y tambi´n los programas de aplicaciones. e Por lo tanto, podemos decir que dentro del computador existe ciertaorganizaci´n por niveles (v´ase la tabla 1.1): en el nivel m´s bajo se o e aencuentra el hardware, que por s´ mismo no puede realizar ninguna tarea; ıa continuaci´n se encuentra el sistema operativo, y desde ´l se arrancan o elos otros programas, que a su vez se relacionan directamente con elusuario. En resumen, el hardware no puede funcionar por s´ mismo: nece- ısita la ayuda del software. La uni´n de ambos constituye una m´quina o avirtual, tremendamente vers´til. a
  16. 16. 20 Cap´ ´ ıtulo 1. Conceptos Basicos1.4 Aplicaciones El software de aplicaciones est´ formado por aquellos programas que ahan sido desarrollados para realizar tareas concretas. Se llama as´ por- ıque el computador “se aplica” a un trabajo determinado, facilitando suejecuci´n y resoluci´n. Por ejemplo, un procesador de textos, una hoja o ode c´lculo, un gestor de bases de datos, un generador de gr´ficos, un a aprograma de contabilidad, juegos, etc. Entre las aplicaciones m´s utilizadas se encuentran las siguientes: a • Los procesadores de textos son programas que facilitan la elabo- raci´n de textos en el computador, desde una carta hasta un li- o bro. Permiten operar con m´rgenes, tabuladores, justificaci´n, a o sangrado, tipos de letra, b´squeda y sustituci´n de palabras, pa- u o ginaci´n, separaci´n de s´ o o ılabas, sin´nimos, ortograf´ etc. Son o ıa, probablemente los programas m´s usados. a • Las hojas de c´lculo son programas utilizados en la creaci´n de a o tablas, con datos relacionados entre s´ inicialmente ideados para ı, el an´lisis financiero. Tienen un formato matricial, en el que se a pueden definir operaciones y funciones sobre las distintas compo- nentes de la matriz. Al modificar alg´n dato, todas las operaciones u que lo utilizan son actualizadas de forma autom´tica. a • Los gestores de bases de datos permiten gestionar la informaci´n o referida a personas o art´ ıculos, realizando operaciones de edici´n, o ordenaci´n, b´squeda, etc. o u • Los generadores de gr´ficos facilitan la creaci´n de distintos tipos a o de gr´ficos, a partir de datos de hojas de c´lculo o bases de datos, a a o directamente introducidos por el usuario.Existen muchas otras aplicaciones, de uso menos general, como sonlos programas matem´ticos, estad´ a ısticos, de CAD (Dise˜o Asistido por nComputador), aplicaciones contables y de gesti´n de empresas, comuni- ocaciones, juegos, etc.
  17. 17. 1.5. Algoritmos y programas 21 El desarrollo del software de aplicaciones ha sido muy grande (se cal-cula que para los computadores compatibles con IBM hay m´s de cien amil aplicaciones diferentes). A su vez, los distintos programas van evo-lucionando, y aparecen nuevas versiones con m´s posibilidades y mayor avelocidad de ejecuci´n, aunque tambi´n con mayor demanda de potencia o ey memoria. En algunos casos, varios de estos programas se unen en uno solo,compartiendo datos e instrucciones, y constituyen un paquete integrado.En general suele integrarse una hoja de c´lculo con un generador de agr´ficos y, a veces, con una base de datos y un procesador de textos. a Gran parte de los programas de aplicaci´n pueden configurarse, en omayor o menor medida, de acuerdo con los gustos y necesidades delusuario; sin embargo, es posible que un programa concreto no puedaatender esas necesidades. En este caso, resulta muy dif´ por no decir ıcil,imposible (e ilegal en muchos casos), modificar el programa para incluiruna nueva tarea. Conscientes de esta falta de flexibilidad del software,muchos fabricantes est´n presentando programas de aplicaci´n que a a osu vez pueden ser programados, mediante lenguajes de programaci´n opropios o est´ndares. a As´ pues, aunque la mayor´ de las personas que utilizan los compu- ı ıatadores trabajan con programas de aplicaci´n y no necesitan recurrir a ola programaci´n, tambi´n hay un buen n´mero de usuarios que, sin ser o e uinform´ticos profesionales, pueden obtener un mayor rendimiento de es- atos programas a trav´s de la programaci´n. Por ejemplo, muchas hojas e ode c´lculo, gestores de bases de datos y paquetes matem´ticos, hoy en a ad´ son programables. ıa,1.5 Algoritmos y programas El desarrollo de programas es otro de los aspectos fundamentalesde la utilizaci´n de los computadores porque continuamente aparecen onuevos problemas o tareas susceptibles de ser procesados de forma au-tom´tica. Al mismo tiempo se van detectando las lagunas o deficiencias aen las aplicaciones existentes, lo que impulsa a su renovaci´n con la o
  18. 18. 22 Cap´ ´ ıtulo 1. Conceptos Basicoscreaci´n de nuevas versiones de los programas existentes. El desarrollo odel hardware posibilita tambi´n la aparici´n de nuevas aplicaciones m´s e o apotentes y con mayores demandas de recursos. Desde el planteamiento de un problema hasta la obtenci´n de su osoluci´n en el computador hay que recorrer una serie de etapas: o 1. En primer lugar, antes de resolver un problema en el computador hay que conocer los pasos y operaciones que hay que realizar para obtener la soluci´n del problema, es decir, su algoritmo, porque o el computador solamente es capaz de seguir aquellas instrucciones que nosotros le indiquemos. Si no conocemos el proceso que nos conduce a la soluci´n del problema, el computador no nos la va a o dar. Esta secuencia de pasos y operaciones constituye una soluci´n o general al problema planteado de forma que, siguiendo el proceso, se llega a la soluci´n del problema sean cuales fueran los datos o proporcionados. 2. Una vez conocida esta soluci´n general del problema, hay que ex- o presarla en un lenguaje especial, que pueda ser comprendido y ejecutado por el computador, es decir, en un lenguaje de progra- maci´n, creando un programa. o 3. Posteriormente, hay que comprobar que el programa produce las soluciones esperadas (ya sea utilizando datos de prueba o mediante m´todos formales) y subsanar los errores detectados. e 4. Por ultimo, es importante documentar el programa de forma que ´ si cambiaran algunas de las circunstancias iniciales, sea posible modificar y adaptar convenientemente, facilitando las labores de mantenimiento.1.5.1 Algoritmos Una de las caracter´ısticas de los seres humanos es su capacidad para ´plantearse y resolver problemas. Estos pueden ser de naturaleza muy
  19. 19. 1.5. Algoritmos y programas 23diversa, desde los problemas m´s inmediatos relacionados con la pro- apia subsistencia, hasta los problemas m´s abstractos de naturaleza ma- atem´tica o filos´fica. a o Un algoritmo es la descripci´n precisa de los pasos que nos permiten oobtener la soluci´n de un problema determinado. En general, los pa- osos son acciones u operaciones que se efect´ an sobre ciertos objetos. Al ucomienzo del algoritmo, los objetos tienen unos valores iniciales (los da-tos) que var´ como consecuencia del proceso descrito por el algoritmo, ıanobteni´ndose los valores de salida o resultados. e La inform´tica estudia el procesamiento de la informaci´n mediante a oalgoritmos, aunque el concepto de algoritmo, que proviene de las ma-tem´ticas, es muy anterior e independiente de la existencia de la in- aform´tica y los computadores. 1 a El concepto de algoritmo tiene una importancia fundamental den-tro de la inform´tica, por ser previo a la resoluci´n del problema en el a ocomputador; si no se conoce el algoritmo para resolver un problema, nopuede plantearse su resoluci´n en el computador. o Aunque existen algoritmos registrados para la realizaci´n de tareas omuy variadas, en general los algoritmos desarrollados resuelven s´lo de- oterminadas partes de un problema como, por ejemplo, la ordenaci´n de ouna lista de valores, pero no un problema real completo. En consecuen-cia, habr´ que dise˜ar un algoritmo para su resoluci´n. a n o El dise˜o de algoritmos implica un an´lisis profundo del problema, n ade sus datos iniciales, del proceso que se les aplica y de los resultadosesperados. A partir de este an´lisis debe establecerse cu´l es la mejor a aestructura de datos para resolver el problema. De hecho, Niklaus Wirth,uno de los padres de la programaci´n estructurada, titula una de sus oobras fundamentales Algoritmos + Estructuras de Datos = Programas,mostrando la importancia que concede a dichas estructuras [Wir86b]. 1 Se conoce un algoritmo para el c´lculo del m´ximo com´n divisor de dos n´meros a a u unaturales, debido a Euclides, que data del siglo IV a.C., al que se conoce como el“abuelo” de todos los algoritmos.
  20. 20. 24 Cap´ ´ ıtulo 1. Conceptos Basicos Existen t´cnicas que facilitan el dise˜o de algoritmos, tales como la e nprogramaci´n estructurada, la programaci´n modular, el refinamiento o opor pasos, el dise˜o descendente y la estructuraci´n y abstracci´n de los n o odatos. Para poder expresar algoritmos se utilizan lenguajes con la necesariaprecisi´n, llamados lenguajes algor´ o ıtmicos, que son independientes de loslenguajes de programaci´n. Los m´s utilizados son el seudoc´digo y los o a odiagramas de flujo. Dado un problema concreto y conocido el algoritmo que lo resuelve,para obtener la soluci´n del problema tenemos que partir de los datos ode entrada, y ejecutar las acciones descritas en el algoritmo. Al procesode ejecutar un algoritmo concreto para unos datos determinados se lellama c´mputo, de donde procede el t´rmino computador. El procesador o ees quien ejecuta materialmente el c´mputo. o1.5.2 Programaci´n o Como dec´ ıamos al principio, consideramos al computador como unaherramienta que nos ayuda en la resoluci´n de problemas; para ello es opreciso conocer previamente un algoritmo que lleve a su soluci´n. A ocontinuaci´n hay que expresar el algoritmo en un lenguaje de progra- omaci´n, que pueda ser comprendido y ejecutado por el computador, odesarroll´ndose un programa. A este proceso se le llama programaci´n. a o Una aportaci´n sustancial para realizar este paso tan delicado con la ocorrecci´n necesaria la constituyen: o 1. El refinamiento por pasos, que permite aumentar el grado de de- talle en la expresi´n del algoritmo seg´n convenga, para adaptarlo o u a las necesidades del lenguaje. 2. La programaci´n estructurada, que utiliza las estructuras de pro- o gramaci´n propias de los lenguajes evolucionados. o 3. La programaci´n modular que, al permitir el uso de m´dulos o o o subprogramas, facilita el empleo de otras t´cnicas de dise˜o de e n algoritmos y la depuraci´n de los programas . o
  21. 21. 1.5. Algoritmos y programas 25 4. No debe olvidarse la importancia de la estructuraci´n y abstracci´n o o de datos, presente tambi´n en los lenguajes evolucionados, que e debe emplearse con todo su potencial en el dise˜o de algoritmos y, n posteriormente, en los programas. El desarrollo de aplicaciones cada vez m´s complejas y el crecimiento adel sector de producci´n de software, ha hecho que se apliquen a la pro- ogramaci´n t´cnicas de ingenier´ que garanticen la viabilidad y calidad o e ıade los grandes proyectos de aplicaciones, lo que se conoce como inge-nier´ del software. ıa1.5.3 Lenguajes de Programaci´n o El computador dispone de un conjunto de instrucciones que son reco-nocidas y ejecutadas por el procesador. Estas instrucciones se expresan,al igual que los datos, en forma digital binaria, si bien para reconocerlasmejor y evitar errores se les asignan unos nombres mnemot´cnicos que epermiten recordar sus funciones. Estas instrucciones constituyen el len-guaje de m´quina del computador, y suelen ser diferentes en funci´n del a ofabricante del procesador. El lenguaje de m´quina es ejecutado a gran velocidad por el procesa- ador, en los computadores actuales esta velocidad se mide en millones deoperaciones por segundo; por otra parte, el lenguaje de m´quina permite ael acceso directo a todos los ´rganos del computador. Por estos motivos oel lenguaje m´quina es insustituible en aquellas aplicaciones donde sea anecesaria una gran rapidez de ejecuci´n, o el acceso directo a ciertos oo´rganos del computador. Las instrucciones del lenguaje de m´quina son en general muy poco apotentes, operan sobre datos de peque˜o tama˜o, y en muchos casos no n nincluyen ni multiplicaciones ni divisiones. Para poder operar sobre da-tos mayores o realizar operaciones m´s complejas, tales como potencias ao logaritmos, hay que fraccionar los datos y aplicar sucesivamente lasoperaciones simples, siguiendo algoritmos espec´ ıficos. Por este motivo,y por su estrecha relaci´n con el hardware, a los lenguajes de m´quina se o ales llama lenguajes de bajo nivel . En consecuencia, la tarea de escribir
  22. 22. 26 Cap´ ´ ıtulo 1. Conceptos Basicos problema t t dise˜o de algoritmos n ” t algoritmo t t programaci´n o ” t programa fuente t t traductor ” t programa objeto t t procesador ” t programa en ejecuci´n o Figura 1.1. Resoluci´n de un problema mediante la programaci´n. o oprogramas en lenguaje de m´quina es tediosa y est´ sujeta a muchos a aerrores. Ante la necesidad de escribir programas cada vez m´s complejos y afiables, los inform´ticos desarrollaron lenguajes con niveles m´s elevados a ade abstracci´n, que inclu´ operaciones y datos m´s complejos a los o ıan aque llamaron lenguajes de alto nivel. De esta forma se acorta el caminoentre el algoritmo y su expresi´n en forma de programa, porque los olenguajes de alto nivel pueden expresar mejor las acciones y objetos queintervienen en los algoritmos. Una de las grandes ventajas de estos lenguajes radica en que la tra-ducci´n del programa escrito en lenguaje de alto nivel (programa fuente) oal lenguaje de m´quina (programa objeto) que, como recordamos, es el aunico que puede ser ejecutado por el computador, es autom´tica y se´ arealiza por un programa traductor. Para ello, junto con las especificaciones del lenguaje, reglas de sinta-xis y sem´ntica, se desarrollan los necesarios programas de traducci´n. a oDurante el proceso de traducci´n se suelen detectar errores, debidos al o
  23. 23. 1.6. Ejercicios 27incumplimiento de las reglas sint´cticas del lenguaje o a causas m´s suti- a ales, que deben corregirse antes de poder ejecutar el programa. Si durantela ejecuci´n de un programa se realizan operaciones no permitidas (tales ocomo divisiones por cero, accesos fuera de l´ ımites, . . . ) se producen losllamados errores de ejecuci´n. o Aunque un programa se haya traducido eliminando todos los erroressint´cticos y de ejecuci´n, a´n puede no realizar correctamente la tarea a o upara la que fue creado, por contener errores l´gicos. Por lo tanto es onecesario comprobar el funcionamiento del programa utilizando datosde prueba que permitan realizar los c´lculos a mano y comprobar as´ a ılas partes m´s conflictivas del programa. Este proceso se conoce como adepuraci´n de los programas. o En la actualidad la mayor´ de los programas se escriben en lengua- ıajes de alto nivel, reserv´ndose los lenguajes de bajo nivel para aquellas aaplicaciones donde se necesite una elevada velocidad o un acceso directoa los ´rganos del computador; por ejemplo, en los programas traductores oo en programas de gesti´n del computador. o1.6 Ejercicios 1. Trate de describir con precisi´n mediante frases sencillas algunas tareas o cotidianas, como leer un libro o realizar un trayecto en autob´s. u 2. Dado el algoritmo de Euclides que se menciona en el apartado 1.5.1, Sean A, B, R ∈ IN. Mientras B = 0, hacer:   R ← A modulo B A←B  B←R Escribir A trate de seguirlo, utilizando l´piz y papel (por ejemplo, para A = 12 y a B = 8). Est´ formulado desde el punto de vista del procesador: cuando se a dice “leer A, B”, el procesador debe pedir dos valores para las variables A y B al usuario; la instrucci´n “mientras b = 0 hacer ...” significa o que mientras la condici´n sea cierta hay que realizar las operaciones o
  24. 24. 28 Cap´ ´ ıtulo 1. Conceptos Basicos comprendidas entre dicha instrucci´n (...) que, en nuestro caso, es una o secuencia de tres. La operaci´n “m´dulo” expresa el resto de la divisi´n o o o entera, y el s´ ımbolo “←” indica que, tras calcular el resultado de la expresi´n a su derecha, se retendr´ como el valor de la variable a su o a izquierda. 3. Clasifique los siguientes elementos del computador como pertenecientes al hardware, al software del sistema o al de aplicaciones: pantalla, teclado, unidad de entrada y salida, programa del sistema operativo, compilador, procesador de textos, etc.1.7 Comentarios bibliogr´ficos a Existe una gran cantidad de textos de introducci´n a la inform´tica que o ase pueden recomendar con car´cter general. Aun ci˜´ndonos a los escritos en a necastellano o traducidos, existen bastantes textos excelentes sobre el tema, condiversos enfoques. En [GL86] encontramos un panorama general sobre inform´tica en el que se autiliza como tema unificador el concepto de algoritmo, que sus autores juzgancomo el concepto central de la computaci´n. Se trata de un texto apropiado opara el principiante y de lectura amena. El libro de Bishop ([Bis91]) es tambi´n eun libro muy asequible de introducci´n en inform´tica. o a [PLT89] trata con gran detalle la estructura f´ ısica de los computadores, porlo que interesar´ a quienes deseen detenerse en este aspecto de la inform´tica. a a Recomendamos [FSV87] a quien desee dirigirse hacia los fundamentos te´ri-ocos de la inform´tica (la teor´ de algoritmos, la l´gica y la teor´ de aut´matas a ıa o ıa oy lenguajes formales). Por ultimo, puesto que la inform´tica es una ciencia reciente, cuenta con ´ amuchos vocablos nuevos, en su mayor´ anglicismos, que muchas veces se em- ıaplean de forma ileg´ ıtima, o que se aplican con un sentido equivocado. En [VJ85]y [MA85] puede consultarse el significado de esos t´rminos. e
  25. 25. Cap´ ıtulo 2Representaci´n digital de ola informaci´n o 2.1 Conceptos previos . . . . . . . . . . . . . . . . . . . . . . . . . 29 2.2 Representaci´n digital de los datos o . . . . . . . . . . . . . . . . 35 2.3 C´digos redundantes . . . . . . . . o . . . . . . . . . . . . . . . . 49 2.4 Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 2.5 Comentarios bibliogr´ficos . . . . . a . . . . . . . . . . . . . . . . 57 La representaci´n de la informaci´n en los computadores digitales o opersigue dos objetivos: en primer lugar, procesarla, permitiendo su ma-nipulaci´n eficiente, para lo cual se han ideado diferentes convenios, de olos que veremos los m´s importantes; y en segundo, asegurarla contra aerrores durante su almacenamiento o durante las transmisiones, lo quese consigue incorporando en la codificaci´n el empleo de la redundancia opara detectar y corregir dichos errores.2.1 Conceptos previos2.1.1 Informaci´n anal´gica y digital o o Las magnitudes continuas son las que pueden adoptar los infinitosvalores de un intervalo de n´meros reales, tales como la longitud de un usegmento, velocidad, temperatura, intensidad de un sonido, etc.
  26. 26. 30 Cap´ ´ ´ ıtulo 2. Representacion de la informacion Las magnitudes discretas tienen naturaleza discontinua, tales comola longitud (n´mero de s´ u ılabas) de una palabra, capacidad (n´mero de upasajeros) de un veh´ ıculo, etc. En la pr´ctica, es frecuente que las magnitudes continuas sean trata- adas como discretas: el peso de una persona (que se redondea en kilos); latemperatura (en grados y d´cimas de grado); la longitud de un segmento, emedida con un dispositivo de precisi´n hasta los mil´ o ımetros. En relaci´n con ambos tipos de magnitud se considera la informaci´n o oanal´gica, que es de naturaleza continua, pudiendo tomar infinitos valo- ores; y la informaci´n digital, que es de naturaleza discreta. Aunque esta oultima puede tomar infinitos valores ( IN), en un computador digital la´informaci´n es discreta y, adem´s, finita. o a En las calculadoras, la digitalizaci´n de variables anal´gicas produce o oun efecto de redondeo, que debe ser tenido en cuenta y tratado con-venientemente para evitar errores de c´lculo (v´ase la secci´n 2.3); en a e oel monitor de un ordenador, supone el ajuste de la imagen proyectadasobre una matriz de puntos.2.1.2 Unidades de informaci´n en los sistemas digitales o La raz´n de ser de un computador es el procesamiento de infor- omaci´n. Para poder hablar con propiedad de este procesamiento, debe- omos definir unidades de medida que nos permitan cuantificar de alg´n umodo la acci´n del computador sobre la informaci´n suministrada. Con- o osideramos las siguientes: • Bit (BInary digiT ) es la cantidad de informaci´n que puede alma- o cenarse en una variable binaria. No hay que confundir el bit con la variable ni con su valor: una variable binaria es la que puede tomar dos valores estables: 0 ´ 1, blanco o negro, s´ o no, etc. o ı La necesidad de codificar informaciones m´s complejas ha llevado a a agrupar varios bits, apareciendo as´ las siguientes unidades: ı • El byte u octeto es la cantidad de informaci´n que puede codificarse o en 8 bits; representa por tanto 2 8 = 256 valores.
  27. 27. 2.1. Conceptos previos 31 • La palabra se define en relaci´n con la m´quina considerada, como o a la cantidad de informaci´n que la m´quina puede manejar de una o a sola vez. Para evitar equ´ıvocos, se habla de palabras de 8 bits, 16 bits, 32 bits, etc. • 1 Kbyte = 210 bytes = 1.024 bytes. Se suele llamar kilobyte, aun- que esto puede resultar equ´ ıvoco, ya que el prefijo “kilo” significa 1.000 (y no 1.024). • 1 Mbyte = 1.048.576 bytes (220 = 1.0242 ). An´logamente, debe a advertirse que “mega” no significa un mill´n en este contexto. o2.1.3 Sistemas de numeraci´n posicionales o Aunque se conocen sistemas no posicionales, tales como el de nume-raci´n romana o el sexagesimal, que usamos para medir el tiempo y los oa´ngulos, el sistema de numeraci´n m´s difundido en la actualidad es sin o aduda el sistema decimal posicional, o sistema ar´bigo-hind´, inventado a uhacia el siglo VIII. Por otra parte, en el contexto de la inform´tica se usan frecuente- amente sistemas de numeraci´n posicional en bases tales como 2 (ya que oel bit tiene dos posiciones), 16 (como compactaci´n de palabras de 4 obits), etc. Para aprender a manejarlos, se recurre frecuentemente a la analog´ ıacon el sistema de numeraci´n m´s conocido: el de base 10. Se llama o adecimal porque cada cifra o d´ ıgito puede tomar diez posibles valores: del0 al 9; se llama posicional porque el valor real de cada d´ ıgito dependede su posici´n. o 10475 = 1 ∗ 104 + 0 ∗ 103 + 4 ∗ 102 + 7 ∗ 101 + 5 ∗ 100A la cantidad 10 se le llama base; las potencias de 10 son los pesosasociados a cada posici´n, y los factores o coeficientes de cada peso son olas cifras de la representaci´n. Tambi´n se podr´ haber representado o e ıaen forma polin´mica del siguiente modo: o 10475 = 1 ∗ 104 + 0 ∗ 103 + 47 ∗ 101 + 5 ∗ 100
  28. 28. 32 Cap´ ´ ´ ıtulo 2. Representacion de la informacionpero la primera forma es la unica donde las cifras son todas menores ´que la base. En general, esta afirmaci´n adopta la siguiente forma, cuya odemostraci´n se incluye al final de este cap´ o ıtulo.Teorema 2.1 En un sistema de numeraci´n en base b > 1, todo entero oN positivo tiene una unica representaci´n de la forma ´ o N = cp bp + cp−1 bp−1 + . . . + c1 b1 + c0 b0donde 0 ≤ ci < b para todo i = 0, 1, . . . , pConversi´n entre sistemas o En primer lugar, la expresi´n decimal de un n´mero de cifras cp . . . c0 o uen base b se obtiene sencillamente sumando los valores reales correspon-dientes a los diferentes d´ ıgitos: [cp . . . c0 ](b = cp ∗ bp + . . . + c0 ∗ b0Por ejemplo, 275(8 = 2 ∗ 82 + 7 ∗ 81 + 5 ∗ 80 = 189(10 En segundo lugar, representar el n´mero 241(10 en el sistema de base u5, equivale a expresarlo en forma polin´mica con las sucesivas potencias ode esa base, siguiendo la idea de la demostraci´n del teorema: o 241 5 ⇒ 241 = 48 * 5 + 1 1 48 5 ⇒ 48 = 9*5+3 3 9 5 ⇒ 9 = 1*5+4 4 1 ⇒ 1 = 0*5+1 Por lo tanto, 241 = 48 ∗5+1 = (9 ∗ 5 + 3) ∗5+1 = ((1 ∗ 5 + 4) ∗ 5 + 3) ∗5+1 = 1 ∗ 53 + 4 ∗ 52 + 3 ∗ 51 + 1 ∗ 50 = 1431(5
  29. 29. 2.1. Conceptos previos 33Sistemas de numeraci´n m´s usuales o a El sistema m´s empleado en electr´nica digital es el de base 2, lla- a omado binario (natural). En inform´tica tienen inter´s los sistemas cuya a ebase es una potencia de dos: 2, 4, 8, 16. La siguiente tabla recoge losprimeros n´meros naturales, expresados en algunos de esos sistemas y uen el decimal: dec. binario octal hexad. dec. binario octal hexad. 0 0 0 0 9 1001 11 9 1 1 1 1 10 1010 12 A 2 10 2 2 11 1011 13 B 3 11 3 3 12 1100 14 C 4 100 4 4 13 1101 15 D 5 101 5 5 14 1110 16 E 6 110 6 6 15 1111 17 F 7 111 7 7 16 10000 20 10 8 1000 10 8 17 10001 21 11En el sistema hexadecimal se usan los d´ ıgitos 0, . . . , 9, A, . . . F para lascantidades cero, . . . , nueve, diez, . . . , quince respectivamente. As´ por ıejemplo, C7A(16 = 12 ∗ 162 + 7 ∗ 161 + 10 ∗ 160 = 3194(10 , ya que losvalores de A y C en el sistema de base 16 son 10 y 12, respectivamente. Se observa que, en una base cualquiera b, con N cifras (o menos)es posible expresar bN cantidades distintas; inversamente, para podercomponer C combinaciones distintas se necesita disponer de un n´mero ude cifras igual a logb C, redondeado por exceso. Como consecuencia de lo anterior, cuanto mayor sea la base adoptadase pueden expresar m´s cantidades (combinaciones) para un n´mero fijo a ude cifras; inversamente, cuanto mayor sea la base, es posible usar menoscifras para expresar una misma cantidad.
  30. 30. 34 Cap´ ´ ´ ıtulo 2. Representacion de la informacionObservaci´n o La conversi´n de binario en octal o en hexadecimal se puede abreviar odel siguiente modo: 11 001 111 010 101 100(2 = 11 001 111 010 101 100 = 3 1 7 2 5 4 = 317254(8 = 1 1001 1110 1010 1100 = 1 9 14 10 12 = 19EAC(16 ¿A qu´ se debe el funcionamiento de este mecanismo? eOperaciones aritm´ticas en base dos e Para las operaciones elementales se usan las tablas correspondientesa la base de que se trate. Por ejemplo, para el caso binario la tabla desumar es la siguiente: + 0 1 0 0 1 1 1 10Y entonces, son v´lidas las reglas conocidas para las operaciones en base adiez. Por ejemplo, en el sistema binario natural, tenemos: 1001 100101 + 1011 − 11011 10100 01010 Para la resta se usa frecuentemente el m´todo del complemento: en elugar de la resta propuesta, se halla la suma correspondiente comple-mentando el sustraendo (min − sus → min + comp(sus), siendo el com-plemento (comp) el n´mero resultante de cambiar cada cero por un uno uy viceversa), suprimiendo la cifra excedente, posiblemente aparecida porel arrastre, y sumando una unidad al resultado obtenido: 100101 100101 − 11011 → + 100100 1001001 → 001010
  31. 31. ´2.2. Representacion digital de los datos 352.2 Representaci´n digital de los datos o En los sistemas digitales, no resulta viable dar una representaci´n ov´lida para codificar todos los n´meros; por otra parte, los diversos a usistemas empleados dan diferentes tratamientos a n´meros tan usuales ucomo el uno (seg´n se considere como real o como entero). Estudiaremos udiversos convenios para diferentes conjuntos de n´meros, as´ como sus u ılimitaciones. En este apartado, supondremos que disponemos de un espacio de Nbits, con lo que es posible representar 2N enteros distintos.2.2.1 Representaci´n de los n´ meros enteros o uN´ meros enteros positivos u Si se considera unicamente n´meros enteros positivos, con N bits de ´ uespacio ser´ posible representar los n´meros de 0 a 2N −1. La forma m´s ıa u anatural de lograrlo consiste en interpretar cada combinaci´n mediante ola cantidad que representa en binario. Por ejemplo, con 1 byte (es decir,N = 8) se representar´ los n´meros 0, . . . , 255 en este sistema. ıan uN´ meros enteros con signo. Convenio del signo-magnitud u Para representar los n´meros enteros (con signo), el sistema m´s u asimple es el convenio de signo-magnitud, consistente en reservar el pri-mer d´ ıgito binario para codificar el signo (suele representarse el signo+ con un cero y el − con un uno) y los siguientes N − 1 para el va-lor absoluto. As´ en este sistema tienen representaci´n las cantidades ı, o±0, . . . , ±(2N − 1). En el caso particular de 1 byte, esas cantidades son−127, . . . , −0, +0, . . . , +127. En este sistema, la aritm´tica es bastante simple: la suma de canti- edades del mismo signo y la resta de cantidades de distinto signo siguenla regla b´sica en binario. Para sumar cantidades de distinto signo, o arestar cantidades del mismo signo, resulta m´s pr´ctico el m´todo del a a ecomplemento.
  32. 32. 36 Cap´ ´ ´ ıtulo 2. Representacion de la informacion Se observa el inconveniente de que el cero tiene una doble represen-taci´n, por lo que el test de la comparaci´n para la igualdad en este o osistema debe tenerlo en cuenta. Por otra parte, la suma/resta de signosy valores absolutos necesita dos algoritmos distintos, que no resultanmuy eficientes. Los siguientes sistemas surgen precisamente para tratarde paliar estas deficiencias.N´ meros enteros con signo. Complemento restringido u Para comprender mejor el funcionamiento de este convenio en bina-rio, conviene introducirlo primero en base diez. Si consideramos palabrasde N = 2 d´ ıgitos (decimales), es posible representar 102 = 100 canti-dades distintas. En este convenio se opta por considerar los n´meros unegativos de {−49, . . . , −0}, y los positivos de {0, . . . , 49}, del siguientemodo: los n´meros positivos se representan en decimal natural, mientras uque para cada negativo −z se toma la cantidad 99 − z (complemento dez respecto de 102 − 1, que es la N=2 potencia de la base menos uno).As´ por ejemplo, tenemos: ı repr(29) = 2 9 repr(−29) = 99 − 29 = 7 0 Con este convenio, las cantidades −49, −48, . . . , −0, 0, 1, . . . , 48, 49se representan respectivamente mediante 5 0 , 5 1 , ... , 9 9 , 0 0 , 0 1 , ... , 4 8 , 4 9 Aunque se observa el inconveniente de que el cero tiene dos repre-sentaciones, la ventaja de este convenio consiste en que la suma de dosn´meros, sea cual fuere su signo, se lleva a cabo con un mismo algoritmo, uque s´lo se diferencia de la suma de enteros en que el posible arrastre se oagrega al resultado final: + 23 → 2 3 + − 15 → + 8 4 +1 1 0 7 → 0 8
  33. 33. ´2.2. Representacion digital de los datos 37Consideremos ahora esta representaci´n con palabras de N = 4 d´ o ıgitosbinarios: las cantidades representables son −7, −6, . . . , −0, +0, . . . , +6, +7 → −111(2 , −110(2 , . . . , −0(2 , +0(2 , . . . , +110(2 , +111(2que, al complementar las negativas respecto de 1111, resulta: → 1000, 1001, . . . , 1111, 0000, . . . , 0110, 0111N´ meros enteros con signo. Complemento aut´ntico u e Empezamos nuevamente con la base decimal como punto de partida,y consideremos tambi´n palabras de longitud N = 2. Ahora se opta por econsiderar los n´meros negativos de {−50, . . . , −1}, y los positivos de u{0, . . . , 49}, del siguiente modo: los n´meros positivos se representan en ubinario natural, mientras que para cada negativo −z se toma la cantidad100 − z (complemento de z respecto de 10, que es la base para N = 2). repr(29) = 2 9 repr(−29) = 100 − 29 = 7 1 Con frecuencia se emplea otra regla equivalente para complementarlos n´meros negativos, consistente en a˜adir una unidad al correspon- u ndiente complemento restringido. Con este convenio, las cantidades −50, −49, . . . , −1, 0, 1, . . . , 48, 49 se representan respectivamente mediante 5 0 , 5 1 , ... , 9 9 , 0 0 , 0 1 , ... , 4 8 , 4 9 Este sistema tiene las mismas ventajas que el anterior, y adem´s el acero se representa de un unico modo. ´
  34. 34. 38 Cap´ ´ ´ ıtulo 2. Representacion de la informacion Como en el caso anterior, consideremos ahora la base dos, con pala-bras de N = 4 d´ ıgitos, donde tienen cabida las cantidades −8, −7, . . . , −1, +0, . . . , +7 → −1000(2 , −111(2 , . . . , −1(2 , +0(2 , . . . , +110(2 , +111(2que, al complementar las negativas respecto de 10000, resulta: → 1000, 1001, . . . , 1111, 0000, . . . , 0110, 0111. En este sistema, la suma tambi´n se lleva a cabo con un mismo algo- eritmo, igual al usado para el complemento restringido, pero ignorandola posible cifra de arrastre: + 23 → 2 3 + − 15 → + 8 5 1 0 8 → 0 8Funcionamiento de las operaciones aritm´ticas e Debe subrayarse que las operaciones anteriores no coinciden con lasaritm´ticas, debido a la posibilidad de que se produzca un desborda- emiento; los diferentes sistemas responden ante esta circunstancia de di-ferentes modos: por ejemplo, ignorando la ultima cifra de arrastre, o ´interrumpiendo su trabajo para delatar una condici´n de error. Por lo otanto, es necesario prever esta posibilidad y conocer de qu´ modo re- eacciona nuestro sistema. Sobre este asunto volveremos m´s adelante, adentro de este mismo cap´ ıtulo.Formatos de los n´ meros enteros en las computadoras u Entre los convenios presentados, el m´s frecuente es el del comple- amento aut´ntico en base dos, llamado simplemente complemento a dos. eAhora bien, depender´ de la longitud de palabra la cantidad de com- abinaciones posibles y, por tanto, el rango de enteros considerado. Porotra parte, aunque ciertos sistemas trabajan con palabras de longitudvariable, lo corriente es optar por uno o varios formatos con tama˜o fijo: nsimple (1 byte), doble (2 bytes), cu´druple (4 bytes) u octuple (8 bytes). a ´
  35. 35. ´2.2. Representacion digital de los datos 392.2.2 Representaci´n de los n´ meros reales o u Debe resaltarse que, en general, s´lo resulta posible representar apro- oximaciones de los n´meros reales mediante n´meros decimales, con s´lo u u ounas pocas cifras significativas. En el siguiente apartado estudiaremoslos efectos de este redondeo. En este apartado, supondremos que disponemos de un espacio de Nbits, con lo que es posible representar 2N enteros distintos.Convenio con coma fija Si disponemos de un espacio de N bits para representar un n´mero ureal, la caracter´ ıstica principal de este convenio es la reserva impl´ ıcitade algunos bits fijos para la parte decimal, asumi´ndose la coma en una eposici´n fija. A su vez, existen los siguientes modos de representaci´n o oen coma fija: • Sistema signo y valor absoluto En este convenio se reserva un bit para codificar el signo, y del resto se destina una cantidad fija para representar el valor absoluto de la parte entera, y los dem´s para la decimal: a 1 0 1 0 0 1 0 0 1 0 1 1 1 1 0 1 . ± p. entera dec. Si consideramos por ejemplo N = 16, siendo el primer bit el que codifica el signo, los siguientes 12 los de la parte entera, y los 3 restantes los de la parte decimal, resulta que la representaci´n o anterior significar´ ıa −010010010111.101 = −(210 + 27 + 24 + 22 + 21 + 20 + 2−1 + 2−3 ) = −1175 625.
  36. 36. 40 Cap´ ´ ´ ıtulo 2. Representacion de la informacion • Complemento restringido y complemento aut´ntico e Sea D = 3 el n´mero (fijo) de decimales asumidos. La represen- u taci´n de un n´mero x, en cualquiera de estos convenios, consiste o u en codificar en su lugar la parte entera de x ∗ 23 en el convenio elegido. La cantidad despreciada al truncar los decimales de x ∗ 23 es menor que 0 125(10 (= 2−3 ). Por ejemplo, para representar −2 8 en palabras de N = 8 y D = 3,debemos conformarnos con una aproximaci´n: al ser D = 3, s´lo po- o odemos representar cantidades decimales m´ ltiplos enteros de 0 001(2 = u2−3 = 0 125(10 . Como trunc(−2 8 ∗ 8) = trunc(−22 4) = −22, repre- (10sentamos −22/8 = −2 75. Comprobamos que esta cantidad es efectiva-mente m´ltiplo de 0 125, y que el siguiente m´ltiplo (−2 875) excede la u ucantidad inicial (−2 8). • Signo y valor absoluto: 1 1 1 0 0 1 0 1 1 0 2.75 = 2 + + = 2 4 . ± p. entera dec. • Complemento restringido (8 d´ ıgitos): 11111111 −22 = − → 11101001 = 1 1 1 0 1 0 0 1 10110(2 • Complemento aut´ntico (8 d´ e ıgitos): 100000000 −22 = − → 11101010 = 1 1 1 0 1 0 1 0 10110(2Convenios con coma flotante El principal inconveniente de la coma fija consiste en condicionarel orden de magnitud de las cantidades codificadas. Un sistema m´s ageneral deber´ adaptarse a ordenes tan distantes como los de la masa de a ´
  37. 37. ´2.2. Representacion digital de los datos 41la tierra y la del atomo. El sistema m´s conocido con esta caracter´ ´ a ısticaes la llamada notaci´n exponencial (o cient´ o ıfica): 140 = +0.14 ∗ 103 = +0.14E3 6.02215 ∗ 1023 = +0.602215E24 0.00000015 = +0.15E − 6 Los convenios con coma flotante funcionan del mismo modo, divi-diendo la informaci´n sobre una cantidad en tres partes: su signo, su omantisa (es decir, las cifras significativas de mayor orden), y el exponente(que expresa el orden de magnitud). As´ por ejemplo, consideremos la ısiguiente representaci´n en palabras de N bits: o • El signo, adscrito al primer bit, donde el uno representa al signo menos. • El exponente (z), situado en los siguientes e bits, puede tomar los valores de {−2e−1 , . . . , 2e−1 − 1}. Frecuentemente se representa desplazado en +2e−1 unidades: z ∈ {−2e−1 , . . . , 2e−1 − 1} ⇒ repr(z) ∈ {0, . . . , 2e − 1} • Para la mantisa quedan M = N − e − 1 bits con lo que, para su representaci´n, se toman los primeros M d´ o ıgitos de su escritura en binario natural.Como ejemplo concreto, consideremos el convenio est´ndar IEEE 754 a(real con precisi´n simple, o real corto), que es una de las codificaciones ode reales m´s utilizadas. Su representaci´n requiere un total de 32 bits, a ode los cuales un bit se utiliza para el signo, 8 bits para el exponentey 23 bits para la mantisa. Este convenio en concreto, utiliza un trucollamado bit oculto: como el bit m´s significativo de la mantisa es un 1, aahorramos un bit simplemente asumi´ndolo. Se logra as´ espacio para e ıuna mantisa de 24 d´ ıgitos significativos. El inconveniente de emplear unbit oculto consiste en que se requiere una representaci´n especial para oel cero.

×