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

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

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

Actualizado el 21 de Marzo del 2018 (Publicado el 26 de Febrero del 2018)
523 visualizaciones desde el 26 de Febrero del 2018
1,3 MB
193 paginas
Creado hace 3a (11/03/2016)
UNIVERSIDAD DE MÁLAGA

Dpto. Lenguajes y CC. Computación

E.T.S.I. Informática

Fundamentos de Programación

con

el Lenguaje de Programación

C++

Vicente Benjumea y Manuel Roldán

11 de marzo de 2016

2

Esta obra está bajo una licencia Reconocimiento-NoComercial-CompartirIgual 4.0 Internacional
(CC BY-NC-SA 4.0) de Creative Commons: No se permite un uso comercial de la obra ori-
ginal ni de las posibles obras derivadas, la distribución de las cuales se debe hacer con una
licencia igual a la que regula la obra original. Para ver una copia de esta licencia, visite
http://creativecommons.org/licenses/by-nc-sa/4.0/deed.es_ES o envie una carta a Crea-
tive Commons, 171 Second Street, Suite 300, San Francisco, California 94105, USA.

Usted es libre de:

• Compartir, copiar y distribuir públicamente la obra.
• Adaptar, remezclar, transformar y crear 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

Contenido

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. Expresiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.6. Sentencias de Asignación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.7. Visibilidad de los identificadores
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.8. Conversiones Automáticas (Implícitas) de Tipos . . . . . . . . . . . . . . . . . . . .
2.9. Conversiones Explícitas de Tipos . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.10. Tabla ASCII
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.11. Algunas consideraciones respecto a operaciones con números reales . . . . . . . . .

3. Entrada y Salida de Datos Básica

3.1. El “Buffer” de Entrada y el “Buffer” de Salida . . . . . . . . . . . . . . . . . . . . .
3.2. Salida de Datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.3. Entrada de Datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.4. Control del Estado del Flujo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

4. Estructuras de Control

4.1. Sentencia, Secuencia y Bloque . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.2. Declaraciones Globales y Locales . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.3. Sentencias de Selección . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.4. Sentencias de Iteración. Bucles
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.5. Programación Estructurada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.6. 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
. . . . . . . . . . . . . . . . . . . . . . . . . .

3

7

9

11

15
15
16
17
17
19
20
21
22
22
22
23

25
25
26
27
29

31
31
31
32
37
41
42

45
45
46
48
48
50
50
51
51
52

4

CONTENIDO

5.10. Ejemplo. Números primos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6. Tipos Compuestos

6.3. Registros o Estructuras

6.1. Paso de Parámetros de Tipos Compuestos . . . . . . . . . . . . . . . . . . . . . . .
6.2. Cadenas de Caracteres en C++: el Tipo string . . . . . . . . . . . . . . . . . . .
6.2.1. Entrada y Salida de Cadenas de Caracteres . . . . . . . . . . . . . . . . . .
6.2.2. Operadores predefinidos . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.2.3. Ejemplos
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.3.1. Operaciones con registros completos . . . . . . . . . . . . . . . . . . . . . .
6.3.2. Entrada/Salida de valores de tipo registro . . . . . . . . . . . . . . . . . . .
6.3.3. Ejemplo. Uso de registros . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.4. Agregados: el Tipo Array . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.4.1. Operadores predefinidos . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.4.2. Ejemplos
6.4.3. Agregados Incompletos
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . .
6.4.4. Agregados Multidimensionales
6.5. Resolución de Problemas Utilizando Tipos Compuestos. Agenda . . . . . . . . . .

7. Búsqueda y Ordenación

7.1. Algoritmos de Búsqueda . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.1.1. Búsqueda Lineal (Secuencial) . . . . . . . . . . . . . . . . . . . . . . . . . .
7.1.2. Búsqueda Binaria
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.2. Algoritmos de ordenación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.2.1. Ordenación por Selección . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.2.2. Ordenación por Intercambio (Burbuja) . . . . . . . . . . . . . . . . . . . . .
7.2.3. Ordenación por Inserción . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.3. Aplicación de los Algoritmos de Búsqueda y Ordenación . . . . . . . . . . . . . . .

8. Algunas Bibliotecas Útiles

53

55
55
56
56
59
61
64
65
66
66
67
69
70
72
75
78

85
85
86
88
89
89
90
90
92

97

II Programación Intermedia

101

9. Almacenamiento en Memoria Secundaria: Ficheros

103
9.1. Flujos de Entrada y Salida Asociados a Ficheros
. . . . . . . . . . . . . . . . . . . 104
9.2. Entrada de Datos desde Ficheros de Texto . . . . . . . . . . . . . . . . . . . . . . . 106
9.3. Salida de Datos a Ficheros de Texto . . . . . . . . . . . . . . . . . . . . . . . . . . 108
9.4. Ejemplos
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111

10.Módulos y Bibliotecas

117
10.1. Interfaz e Implementación del Módulo . . . . . . . . . . . . . . . . . . . . . . . . . 117
10.2. Compilación Separada y Enlazado . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
10.3. Espacios de Nombres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120

11.Tipos Abstractos de Datos

129
11.1. Tipos Abstractos de Datos en C++: Clases . . . . . . . . . . . . . . . . . . . . . . 130
11.1.1. Métodos y Atributos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
11.1.2. Definición de Clases
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
11.1.3. Utilización de Clases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
11.1.4. Implementación de Clases . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
11.1.5. Ejemplo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
11.2. Tipos Abstractos de Datos en C++: Más sobre Clases . . . . . . . . . . . . . . . . 140
11.2.1. Ejemplo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147

Dpto. Lenguajes y Ciencias de la Computación

Universidad de Málaga

CONTENIDO

5

12.Memoria Dinámica. Punteros

153
12.1. Punteros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
12.2. Gestión de Memoria Dinámica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
12.3. Operaciones con Variables de Tipo Puntero . . . . . . . . . . . . . . . . . . . . . . 156
12.4. Paso de Parámetros de Variables de Tipo Puntero . . . . . . . . . . . . . . . . . . 158
12.5. Listas Enlazadas Lineales
. . . . . . . . . . . . . .
  • Links de descarga
http://lwp-l.com/pdf9071

Comentarios de: Fundamentos de la 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