Actualizado el 17 de Julio del 2017 (Publicado el 24 de Enero del 2017)
2.176 visualizaciones desde el 24 de Enero del 2017
1,4 MB
394 paginas
Creado hace 22a (20/02/2003)
Software libre
Josep Anton Pérez López
Lluís Ribas i Xirgo
XP06/M2110/01498
Introducción
al desarrollo
del software
U
www.uoc.edu
David Megías Jiménez
Jordi Mas
Coordinador
Coordinador
Ingeniero en Informática por la UAB.
Magíster en Técnicas Avanzadas de
Automatización de Procesos por la
UAB.
Doctor en Informática por la UAB.
Profesor de los Estudios de Informática
y Multimedia de la UOC.
Ingeniero de software en la empresa
de código abierto Ximian, donde
trabaja en la implementación del
proyecto libre Mono. Como voluntario,
colabora en el desarrollo del
procesador de textos Abiword y en la
ingeniería de las versiones en catalán
del proyecto Mozilla y Gnome. Es
también coordinador general de
Softcatalà. Como consultor ha
trabajado para empresas como
Menta, Telépolis, Vodafone, Lotus,
eresMas, Amena y Terra España.
Josep Anton Pérez López
Lluís Ribas i Xirgo
Autor
Autor
Licenciado en Informática por la
Universidad Autónoma de Barcelona.
Magíster en el programa Gráficos,
Tratamiento de Imágenes y de
Inteligencia Artificial, por la UAB.
Actualmente trabaja como profesor
en un centro de educación secundaria.
Licenciado en Ciencias-Informática
y doctorado en Informática por la
Universidad Autònoma de Barcelona
(UAB).
Profesor titular del Departamento
de Informática de la UAB. Consultor de
los Estudios de Informática y Multimedia
en la Universitat Oberta de Catalunya
(UOC).
Primera edición: marzo 2004
© Fundació per a la Universitat Oberta de Catalunya
Av. Tibidabo, 39-43, 08035 Barcelona
Material realizado por Eureca Media, SL
© Autores: Josep Antoni Pérez López y Lluís Ribas i Xirgo
Depósito legal: B-7.600-2004
Se garantiza permiso para copiar, distribuir y modificar este documento según los términos de la GNU Free Documentation License,
Version 1.2 o cualquiera posterior publicada por la Free Software Foundation, sin secciones invariantes ni textos de cubierta delan-
tera o trasera. Se dispone de una copia de la licencia en el apartado "GNU Free Documentation License" de este documento.
Introducción al desarrollo del software
© FUOC • XP06/M2110/01498
Índice
Agradecimientos ............................................................
9
1. Introducción a la programación ...............................
1.1.
Introducción .......................................................
1.2. Un poco de historia de C.....................................
Entorno de programación en GNU/C .................
1.3.
1.3.1. Un primer programa en C .....................
1.3.2. Estructura de un programa simple ..........
La programación imperativa ...............................
1.4.1. Tipos de datos básicos ...........................
1.4.2.
1.4.
La asignación y la evaluación
de expresiones .......................................
Instrucciones de selección .......................
1.4.3.
1.4.4. Funciones estándar de entrada
y de salida .............................................
1.5. Resumen ............................................................
Ejercicios de autoevaluación ...............................
1.6.
1.6.1. Solucionario ..........................................
2. La programación estructurada .................................
Introducción .......................................................
Principios de la programación estructurada .........
Instrucciones iterativas ........................................
Procesamiento de secuencias de datos ................
2.4.1. Esquemas algorítmicos: recorrido
2.1.
2.2.
2.3.
2.4.
y búsqueda ...........................................
2.4.2. Filtros y tuberías .....................................
2.5. Depurado de programas ....................................
2.6.
Estructuras de datos ...........................................
2.7. Matrices .............................................................
2.7.1. Declaración ...........................................
2.7.2. Referencia .............................................
2.7.3. Ejemplos ...............................................
Estructuras heterogéneas ....................................
2.8.1. Tuplas ...................................................
2.8.2. Variables de tipo múltiple .......................
2.8.
11
11
12
16
17
21
23
24
28
33
35
40
41
42
45
45
48
49
52
53
59
62
66
67
68
70
71
74
74
77
3
I
S
E
N
O
C
A
T
O
N
A
© FUOC • XP06/M2110/01498
Software libre
2.9.
Tipos de datos abstractos .................................... 79
2.9.1. Definición de tipos de datos abstractos .... 80
2.9.2. Tipos enumerados .................................. 81
2.9.3. Ejemplo ................................................. 82
2.10. Ficheros ............................................................. 84
2.10.1. Ficheros de flujo de bytes ........................ 84
2.10.2. Funciones estándar para ficheros ............ 85
2.10.3. Ejemplo ................................................. 90
2.11. Principios de la programación modular ............... 92
2.12. Funciones ........................................................... 92
2.12.1. Declaración y definición ......................... 92
2.12.2. Ámbito de las variables .......................... 96
2.12.3. Parámetros por valor y por referencia ..... 99
2.12.4. Ejemplo ................................................. 101
2.13. Macros del preprocesador de C .......................... 103
2.14. Resumen ............................................................ 104
2.15. Ejercicios de autoevaluación ................................ 106
2.15.1. Solucionario ........................................... 110
3. Programación avanzada en C. Desarrollo
eficiente de aplicaciones ........................................... 125
3.1.
Introducción ....................................................... 125
Las variables dinámicas ...................................... 127
3.2.
Los apuntadores ................................................. 129
3.3.
3.3.1. Relación entre apuntadores y vectores ..... 132
3.3.2. Referencias de funciones ......................... 135
3.4. Creación y destrucción de variables dinámicas ..... 137
Tipos de datos dinámicos .................................... 139
3.5.
3.5.1. Cadenas de caracteres ........................... 140
Listas y colas .......................................... 145
3.5.2.
3.6. Diseño descendente de programas ...................... 156
3.6.1. Descripción ............................................ 157
3.6.2. Ejemplo ................................................. 158
Tipos de datos abstractos y funciones
asociadas ........................................................... 159
Ficheros de cabecera .......................................... 166
3.8.1. Estructura ............................................... 166
3.8.2. Ejemplo ................................................. 169
3.9. Bibliotecas .......................................................... 172
3.9.1. Creación ............................................... 172
3.9.2. Uso ....................................................... 173
3.9.3. Ejemplo ................................................. 174
3.10. Herramienta make .............................................. 175
3.10.1. Fichero makefile ..................................... 176
3.8.
3.7.
A
N
O
T
A
C
O
N
E
S
I
4
Introducción al desarrollo del software
© FUOC • XP06/M2110/01498
3.11. Relación con el sistema operativo. Paso
de parámetros a programas ............................... 179
3.12. Ejecución de funciones del sistema operativo ....... 181
3.13. Gestión de procesos ........................................... 183
3.13.1. Definición de proceso ............................ 184
3.13.2. Procesos permanentes ............................ 185
3.13.3. Procesos concurrentes ............................ 188
3.14. Hilos .................................................................. 189
3.14.1. Ejemplo ................................................. 190
3.15. Procesos ............................................................ 193
3.15.1. Comunicación entre procesos ................. 198
3.16. Resumen ............................................................ 202
3.17. Ejercicios de autoevaluación ............................... 204
3.17.1. Solucionario .......................................... 211
4. Programación orientada a objetos en C++ ............. 219
4.1.
Introducción ....................................................... 219
4.2. De C a C++ ..................................................... 221
4.2.1. El primer programa en C++ .................. 221
4.2.2. Entrada y salida de datos ....................... 223
4.2.3. Utilizando C++ como C ........................ 226
4.2.4.
Las instrucciones básicas ........................ 227
Los tipos de datos .................................. 227
4.2.5.
La declaración de variables
4.2.6.
y constantes ........................................... 230
La gestión de variables dinámicas .......... 231
Las funciones y sus parámetros ............... 235
4.2.7.
4.2.8.
El paradigma de la programación orientada
a objetos ........................................................... 240
4.3.1. Clases y objetos ..................................... 242
4.3.2. Acceso a objetos .................................... 246
4.3.3. Constructores y destructores
4.3.
de objetos ............................................. 250
4.3.4. Organización y uso de bibliotecas
en C ++................................................ 257
4.4. Diseño de programas orientados a objetos .......... 261
La homonimia ....................................... 262
4.4.1.
4.4.2.
La herencia simple ................................. 267
4.4.3. El polimorfismo ..................................... 273
4.4.4. Operaciones avanzadas con herencia ..... 279
4.4.5. Orientaciones para el análisis y diseño
de programas .....................................
Comentarios de: Software libre - Introducción al desarrollo del software (0)
No hay comentarios