PDF de programación - Fundamentos de Programación con el Lenguaje de Programación C++

Imágen de pdf Fundamentos de Programación con el Lenguaje de Programación C++

Fundamentos de Programación con el Lenguaje de Programación C++gráfica de visualizaciones

Publicado el 14 de Abril del 2018
759 visualizaciones desde el 14 de Abril del 2018
1.000,7 KB
175 paginas
Creado hace 6a (17/05/2013)
UNIVERSIDAD DE M ÁLAGA

Dpt. Lenguajes y CC. Computación

E.T.S.I. Informática

Ingeniería Informática

Fundamentos de Programación

con

el Lenguaje de Programación

C++

Vicente Benjumea y Manuel Roldán

17 de mayo de 2013

2

Este obra está bajo una licencia Reconocimiento-NoComercial-CompartirIgual 3.0 Un-
ported de Creative Commons: No se permite un uso comercial de la obra original ni
de las posibles obras derivadas,
la distribución de las cuales se debe hacer con una li-
cencia igual a la que regula la obra original. Para ver una copia de esta licencia, visite
http://creativecommons.org/licenses/by-nc-sa/3.0/deed.es ES o envie una carta a Cre-
ative Commons, 171 Second Street, Suite 300, San Francisco, California 94105, USA.

Usted es libre de:

• Copiar, distribuir y comunicar públicamente la obra.
• Hacer obras derivadas.

Bajo las siguientes condiciones:

• Reconocimiento (Attribution) – Debe reconocer los créditos de la obra de la manera
especificada por el autor o el licenciador (pero no de una manera que sugiera que tiene
su apoyo o apoyan el uso que hace de su obra).

• No comercial (Non commercial) – No puede utilizar esta obra para fines comerciales.
• Compartir bajo la misma licencia (Share alike) – Si altera o transforma esta obra,
o genera una obra derivada, sólo puede distribuir la obra generada bajo una licencia
idéntica a ésta.

Entendiendo que:

• Renuncia – Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del

titular de los derechos de autor

• Dominio Público – Cuando la obra o alguno de sus elementos se halle en el dominio
público según la ley vigente aplicable, esta situación no quedará afectada por la licencia.
• Otros derechos – Los derechos siguientes no quedan afectados por la licencia de ninguna

manera:

no se ven afectados por lo anterior.

◦ Los derechos derivados de usos legítimos u otras limitaciones reconocidas por ley
◦ Los derechos morales del autor
◦ Derechos que pueden ostentar otras personas sobre la propia obra o su uso, como

por ejemplo derechos de imagen o de privacidad.

• Aviso – Al reutilizar o distribuir la obra, tiene que dejar bien claro los términos de la

licencia de esta obra.

Dpto. Lenguajes y Ciencias de la Computación

Universidad de Málaga

Índice general

Prólogo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

I Programación Básica

1. Un Programa C++

2. Tipos Simples

2.1. Declaración Vs. Definición . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2. Tipos Simples Predefinidos
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.3. Tipos Simples Enumerados
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.4. Constantes y Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.5. Operadores
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.6. Conversiones Automáticas (Implícitas) de Tipos . . . . . . . . . . . . . . . . . . . .
2.7. Conversiones Explícitas de Tipos . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.8. Tabla ASCII
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.9. Algunas Consideraciones Respecto a Operaciones con Números Reales . . . . . . .

3. Entrada y Salida de Datos Básica

3.1. Salida de Datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2. Entrada de Datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.3. El “Buffer” de Entrada y el “Buffer” de Salida . . . . . . . . . . . . . . . . . . . .

4. Estructuras de Control

4.1. Sentencia, Secuencia y Bloque . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.2. Declaraciones Globales y Locales . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.3. Sentencias de Asignación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.4. Sentencias de Selección . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.5. Sentencias de Iteración. Bucles
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.6. Programación Estructurada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.7. Ejemplos
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

5. Subprogramas. Funciones y Procedimientos

5.1. Funciones y Procedimientos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.2. Definición de Subprogramas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.3. Ejecución de Subprogramas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.4. Paso de Parámetros. Parámetros por Valor y por Referencia . . . . . . . . . . . . .
5.5. Criterios de Modularización . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.6. Subprogramas “en Línea” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.7. Declaración de Subprogramas. Prototipos
. . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.8. Sobrecarga de Subprogramas
5.9. Pre-Condiciones y Post-Condiciones
. . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.10. Ejemplos

3

7

9

11

15
15
15
17
18
19
20
21
22
22

25
25
26
28

29
29
29
30
31
33
35
35

37
37
38
39
39
41
41
42
42
43
44

4

6. Tipos Compuestos

ÍNDICE GENERAL

6.1. Paso de Parámetros de Tipos Compuestos . . . . . . . . . . . . . . . . . . . . . . .
6.2. Cadenas de Caracteres en C++: el Tipo String . . . . . . . . . . . . . . . . . . . .
6.3. Registros o Estructuras
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.4. Agregados: el Tipo Array . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.5. Resolución de Problemas Utilizando Tipos Compuestos
. . . . . . . . . . . . . . .

7. Búsqueda y Ordenación

7.1. Búsqueda Lineal (Secuencial) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.2. Búsqueda Binaria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.3. Ordenación por Intercambio (Burbuja) . . . . . . . . . . . . . . . . . . . . . . . . .
7.4. Ordenación por Selección . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.5. Ordenación por Inserción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.6. Aplicación de los Algoritmos de Búsqueda y Ordenación . . . . . . . . . . . . . . .

8. Algunas Bibliotecas Útiles

II Programación Intermedia

9. Almacenamiento en Memoria Secundaria: Ficheros

9.1. Flujos de Entrada y Salida Asociados a Ficheros
. . . . . . . . . . . . . . . . . . .
9.2. Entrada de Datos desde Ficheros de Texto . . . . . . . . . . . . . . . . . . . . . . .
9.3. Salida de Datos a Ficheros de Texto . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4. Ejemplos

10.Módulos y Bibliotecas

10.1. Interfaz e Implementación del Módulo . . . . . . . . . . . . . . . . . . . . . . . . .
10.2. Compilación Separada y Enlazado . . . . . . . . . . . . . . . . . . . . . . . . . . .
10.3. Espacios de Nombre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

47
47
48
54
56
64

69
69
69
70
71
71
72

77

81

83
84
85
87
89

95
95
97
98

11.Tipos Abstractos de Datos

105
11.1. Tipos Abstractos de Datos en C++: Clases . . . . . . . . . . . . . . . . . . . . . . 106
11.1.1. Definición de Clases
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
11.1.2. Utilización de Clases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
11.1.3. Implementación de Clases . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
11.1.4. Ejemplo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
11.2. Tipos Abstractos de Datos en C++: Más sobre Clases . . . . . . . . . . . . . . . . 116
11.2.1. Ejemplo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122

12.Introducción a la Programación Genérica. Plantillas

129
12.1. Subprogramas Genéricos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
12.2. Tipos Abstractos de Datos Genéricos . . . . . . . . . . . . . . . . . . . . . . . . . . 132

13.Memoria Dinámica. Punteros

139
13.1. Punteros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
13.2. Gestión de Memoria Dinámica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
13.3. Operaciones con Variables de Tipo Puntero . . . . . . . . . . . . . . . . . . . . . . 142
13.4. Paso de Parámetros de Variables de Tipo Puntero . . . . . . . . . . . . . . . . . . 144
13.5. Listas Enlazadas Lineales
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
13.6. Abstracción en la Gestión de Memoria Dinámica . . . . . . . . . . . . . . . . . . . 149
13.7. Tipo Abstracto de Datos Lista Enlazada Genérica . . . . . . . . . . . . . . . . . . 150

Dpto. Lenguajes y Ciencias de la Computación

Universidad de Málaga

ÍNDICE GENERAL

5

14.Introducción a los Contenedores de la Biblioteca Estándar (STL)

157
14.1. Vector . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
14.2. Deque . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
14.3. Stack . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
14.4. Queue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
14.5. Resolución de Problemas Utilizando Contenedores
. . . . . . . . . . . . . . . . . . 169

15.Bibliografía

Índice

173

173

Dpto. Lenguajes y Ciencias de la Computación

Universidad de Málaga

6

ÍNDICE GENERAL

Dpto. Lenguajes y Ciencias de la Computación

Universidad de Málaga

Prólogo

Este manual pretende ser u
  • Links de descarga
http://lwp-l.com/pdf10412

Comentarios de: Fundamentos de Programación con el Lenguaje de Programación C++ (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios
Es necesario revisar y aceptar las políticas de privacidad