Actualizado el 22 de Mayo del 2020 (Publicado el 23 de Enero del 2017)
2.615 visualizaciones desde el 23 de Enero del 2017
2,1 MB
385 paginas
Creado hace 20a (28/04/2004)
Software libre
Josep Anton Pérez López
Lluís Ribas i Xirgo
XP04/90793/00018
Introducción
al desarrollo
del software
U
Formación de Posgrado
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).
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.
1. Introducción a la programación ...............................
1.1.
Introducción .......................................................
1.2. Un poco de historia de C.....................................
1.3. Entorno de programación en GNU/C .................
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 ............................................................
1.6. Ejercicios de autoevaluación ...............................
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 ...............................................
2.8. Estructuras heterogéneas ....................................
2.8.1. Tuplas ...................................................
2.8.2. Variables de tipo múltiple .......................
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 • XP04/90793/00018
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
3.5. Tipos de datos dinámicos .................................... 139
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
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.
4.3. 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
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
Links de descarga
http://lwp-l.com/pdf2072
Comentarios de: Software libre - Introducción al desarrollo del software (1)
Comentarios de: Software libre - Introducción al desarrollo del software (1)