FUNDAMENTOS DE INFORMÁTICA PARA INGENIERÍA INDUSTRIAL

Transcripción

FUNDAMENTOS DE INFORMÁTICA PARA INGENIERÍA INDUSTRIAL
FUNDAMENTOS DE INFORMÁTICA
PARA INGENIERÍA INDUSTRIAL
Miguel A. Rodríguez Jódar
Daniel Cascado Caballero
Saturnino Vicente Díaz
Claudio A. Amaya Rodríguez
Fernando Díaz del Río
José Luis Sevillano Ramos
Gabriel Jiménez Moreno
Antón Civit Balcells
Profesores del Departamento de
Arquitectura y Tecnología de Computadores
de la Universidad de Sevilla.
Servicio de Publicaciones. Universidad de Sevilla.
Serie Manual Universitario. Num. 62
Sevilla, 2004
ISBN 84-472-0839-7
336 páginas
♦
ÍNDICE
PRESENTACIÓN
El libro que presentamos ha surgido directamente de nuestra experiencia docente en los
últimos tres años en la asignatura “Fundamentos de Informática”, de primer curso de todas las
Ingenierías Técnicas Industriales (incluyendo la Ingeniería Técnica en Diseño Industrial), impartidas
en la Escuela Universitaria Politécnica de la Universidad de Sevilla. Esta edición se debe, por
supuesto, a algunos de los profesores que hemos impartido clases de tal asignatura, pero también a
otros profesores del Departamento de Arquitectura y Tecnología de Computadores de la misma
Universidad.
No nos cabe la menor duda de que existen muy buenos libros y manuales de introducción a la
Informática. Sin embargo, la orientación que suele encontrarse en los mismos es bastante generalista,
destinada a aquellos que quieren empezar a adentrarse en el mundo tecnológico en el que vivimos.
Por el contrario, esta obra, más que un libro divulgativo orientado a dar a conocer esa relativamente
nueva materia a los legos en tecnología, ciencia o matemáticas, se ha encaminado al perfil de un
futuro Ingeniero o Ingeniera Industrial. No es extraño, que la exposición de conceptos y los ejemplos
que se incluyen en el texto partan de referencias a las matemáticas o a la tecnología. Por lo tanto,
hemos considerado de vital importancia relacionar la informática con el resto de materias con que,
sin lugar a dudas, se toparán los ingenieros en su carrera académica y profesional.
Concretamente la materia que abarca esta obra está pensada para ser impartida en un
cuatrimestre con un total de seis créditos (en la terminología actual, eso supone dos horas de teoría y
dos horas de prácticas semanales). De esa forma, se adapta perfectamente a la mayoría de
Ingenierías Técnicas Industriales, entre ellas las de nuestra Universidad, y por ende, puede ser de
gran provecho en la gran mayoría de asignaturas de similar contenido que se imparten en otras
carreras científicas o técnicas, aunque éstas contengan un número de créditos superior.
Por todo lo anterior, en este libro hemos potenciado principalmente dos enfoques: el análisis
de la estructura de un computador actual, y el diseño de algoritmos usando un lenguaje de
programación ampliamente extendido. Para conseguir el primero se ha evitado emplear ejemplos de
basados en máquinas ya existentes, incluso de los llamados computadores didácticos. En nuestra
opinión, aquí el estudio de una máquina particular conduciría al alumno a perderse en excesivos
detalles, que le alejarían de lo que es importante: los conceptos sobre el funcionamiento y la
estructura de un ordenador. Para el segundo, si bien hay múltiples estilos de programación, muchos
de ellos están en continua progresión. Es un hecho casi globalmente aceptado que lo más intuitivo, y
lo que permite servir de partida para otros estilos, son los lenguajes imperativos y procedurales.
Entre ellos se ha elegido el lenguaje C por ser el más extendido en el ámbito de la ingeniería
industrial, y por lo que tal vez sea más importante: nos permite relacionar más directamente el ámbito
de la programación con la estructura interna del computador.
ÍNDICE
♦
11
ÍNDICE
PRÓLOGO .............................................................................................................
CAPÍTULO 1: INTRODUCCIÓN A LA INFORMÁTICA .........................................
1.1 INFORMÁTICA E INGENIERÍA INDUSTRIAL. ...............................................
1.2 CONCEPTOS BÁSICOS .......................................................................................
1.3 SISTEMAS DE REPRESENTACIÓN NUMÉRICA ............................................
1.3.1
El sistema binario.......................................................................................
1.3.2
Representación del signo de un número entero en binario ........................
1.3.3
Representación de números con decimales................................................
1.3.4
La norma IEEE 754 ...................................................................................
1.3.5
Elementos de lógica binaria y Álgebra de Boole.......................................
1.3.6
Implementación de dispositivos lógicos ....................................................
1.3.7
Principales circuitos combinacionales. ......................................................
1.3.8
Principales circuitos secuenciales. .............................................................
1.3.9
Representación de la información..............................................................
1.4 HISTORIA DE LOS COMPUTADORES. ............................................................
1.5 EVOLUCIÓN DE LOS COMPUTADORES. .......................................................
1.6 EJERCICIOS PROPUESTOS. ...............................................................................
CAPÍTULO 2: ARQUITECTURA Y TECNOLOGÍA DE COMPUTADORES Y
REDES. ..................................................................................................................
2.1 INTRODUCCIÓN ..................................................................................................
2.2 PROCESADOR: ESTRUCTURA INTERNA .......................................................
2.2.1
Estructura interna de procesadores ............................................................
2.2.2
Juego de Instrucciones ...............................................................................
2.2.3
Principales familias de microprocesadores ................................................
2.3 EL SUBSISTEMA DE MEMORIA .......................................................................
2.3.1
Conceptos básicos ......................................................................................
2.3.2
Jerarquía de memoria. ................................................................................
2.3.3
Tecnología de memoria semiconductora. ..................................................
2.4 EL SUBSISTEMA DE ENTRADA/SALIDA .......................................................
♦
ÍNDICE
2.4.1
Conceptos básicos......................................................................................
2.4.2
Gestión de la entrada/salida .......................................................................
2.4.3
Tipos de interrupciones..............................................................................
2.5 MECANISMOS DE INTERCONEXION: BUSES ...............................................
2.5.1
Características ............................................................................................
2.6 ORDENADORES PC.............................................................................................
2.6.1
Estructura básica. .......................................................................................
2.6.2
Periféricos habituales. ................................................................................
2.7 REDES DE ORDENADORES...............................................................................
2.7.1
Concepto de red. ........................................................................................
2.7.2
Componentes hardware de una red. ...........................................................
2.7.3
Topología. ..................................................................................................
2.7.4
Clasificación de las redes por su cobertura................................................
2.7.5
Usuarios. ....................................................................................................
2.7.6
Software de red. .........................................................................................
2.7.7
Internet .......................................................................................................
2.8 EJERCICIOS PROPUESTOS. ...............................................................................
CAPÍTULO 3: SISTEMAS OPERATIVOS .............................................................
3.1 INTRODUCCIÓN ..................................................................................................
3.2 ORGANIZACIÓN LÓGICA DEL HARDWARE.................................................
3.3 FUNCIONES DE UN SISTEMA OPERATIVO ELEMENTAL. .........................
3.3.1
Arranque del computador. .........................................................................
3.3.2
Gestión de Programas. ...............................................................................
3.3.3
Gestión de Entrada/Salida..........................................................................
3.3.4
Gestión de Ficheros....................................................................................
3.3.5
Interfaz de Usuario.....................................................................................
3.4 SISTEMAS MULTITAREA. .................................................................................
3.5 EJERCICIOS PROPUESTOS. ...............................................................................
CAPÍTULO 4: FUNDAMENTOS DE PROGRAMACIÓN .......................................
4.1 INTRODUCCIÓN A LA PROGRAMACIÓN IMPERATIVA.............................
4.1.1
Modelos abstractos de cómputo. Lenguajes imperativos. .........................
ÍNDICE
4.1.2
♦
El lenguaje de programación C..................................................................
4.2 COMPOSICIÓN SECUENCIAL. LA ASIGNACIÓN..........................................
4.2.1
La función main. ........................................................................................
4.2.2
Variables y constantes................................................................................
4.2.3
La sentencia de asignación.........................................................................
4.2.4
Expresiones aritméticas. ............................................................................
4.3 ESTRUCTURAS CONDICIONALES. .................................................................
4.3.1
Representaciones algorítmicas...................................................................
4.3.2
La estructura if-else....................................................................................
4.3.3
Expresiones de condición. .........................................................................
4.3.4
Precedencia en las expresiones condicionales. ..........................................
4.3.5
Bloques. .....................................................................................................
4.3.6
Selecciones múltiples. La estructura switch. .............................................
4.4 ESTRUCTURAS ITERATIVAS. ..........................................................................
4.4.1
El bucle while ............................................................................................
4.4.2
El bucle do...while .....................................................................................
4.4.3
El bucle for.................................................................................................
4.4.4
Anidamiento de bucles...............................................................................
4.4.5
Una aclaración: la sentencia break en bucles.............................................
4.5 DISEÑO DESCENDENTE. ...................................................................................
4.5.1
Funciones. ..................................................................................................
4.5.2
Ámbito de las variables..............................................................................
4.6 VECTORES, MATRICES Y PUNTEROS............................................................
4.6.1
Vector o tabla unidimensional. ..................................................................
4.6.2
Tabla bidimensional o matriz.....................................................................
4.6.3
Definición de puntero. ...............................................................................
4.6.4
Paso de parámetros por referencia y de vectores a funciones....................
4.6.5
Inicialización de vectores...........................................................................
4.7 LECTURA Y TRATAMIENTO SECUENCIAL. .................................................
4.7.1
Conceptos básicos......................................................................................
4.7.2
Entrada/salida por flujo (streaming). .........................................................
4.7.3
Entrada/salida por ficheros en C ................................................................
4.7.4
Recorrido secuencial ..................................................................................
4.7.5
Fusión de ficheros. .....................................................................................
13
♦
ÍNDICE
4.8 TIPOS DEFINIDOS POR EL USUARIO..............................................................
4.8.1
Estructuras..................................................................................................
4.8.2
Punteros a estructuras ................................................................................
4.8.3
Uniones ......................................................................................................
4.8.4
Enumeraciones ...........................................................................................
4.8.5
Definición de nuevos nombres de tipos (typedef) .....................................
4.9 INTRODUCCIÓN AL DISEÑO MODULAR.......................................................
4.9.1
El proyecto C .............................................................................................
4.9.2
Creación de módulos de código. ................................................................
4.9.3
Exportación de símbolos............................................................................
4.9.4
Compilación condicional. ..........................................................................
4.9.5
Consideraciones para proyectos de gran envergadura. ..............................
4.10 EL PREPROCESADOR ESTANDAR EN LENGUAJE C...................................
4.10.1
Directiva #define........................................................................................
4.10.2
Directiva #undef.........................................................................................
4.10.3
Directivas #if, #elif, #else y #endif ............................................................
4.10.4
Directivas #ifdef e #ifndef .........................................................................
4.10.5
Directiva #error ..........................................................................................
4.10.6
Directiva #include ......................................................................................
4.11 EJERCICIOS PROPUESTOS ................................................................................

Documentos relacionados