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

estrellaestrellaestrellaestrellaestrella(1)
Actualizado el 21 de Marzo del 2018 (Publicado el 27 de Febrero del 2018)
1.290 visualizaciones desde el 27 de Febrero del 2018
1,3 MB
195 paginas
Creado hace 2a (31/05/2017)
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

31 de mayo de 2017

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 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

53

6. Tipos Compuestos

6.3. Registros o Estructuras

55
55
6.1. Paso de Parámetros de Tipos Compuestos . . . . . . . . . . . . . . . . . . . . . . .
56
6.2. Cadenas de Caracteres en C++: el Tipo string . . . . . . . . . . . . . . . . . . .
56
6.2.1. Entrada y Salida de Cadenas de Caracteres . . . . . . . . . . . . . . . . . .
59
6.2.2. Operadores predefinidos . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
61
6.2.3. Ejemplos
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
64
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
65
6.3.1. Operaciones con registros completos . . . . . . . . . . . . . . . . . . . . . .
66
6.3.2. Entrada/Salida de valores de tipo registro . . . . . . . . . . . . . . . . . . .
66
6.3.3. Ejemplo. Uso de registros . . . . . . . . . . . . . . . . . . . . . . . . . . . .
67
6.4. Agregados: el Tipo Array . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
69
6.4.1. Operadores predefinidos . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.4.2. Ejemplos
70
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.4.3. Listas o Secuencias con Número Variable de Elementos. Agregados Incompletos 72
75
6.4.4. Agregados Multidimensionales
78

. . . . . . . . . . . . . . . . . . . . . . . . .
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

II Programación Intermedia

85
85
86
88
89
89
90
90
92

97

101

9. Almacenamiento en Memoria Secundaria: Ficheros

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

10.Módulos y Bibliotecas

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

11.Tipos Abstractos de Datos

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

Dpto. Lenguajes y Ciencias de la Computación

Universidad de Málaga

CONTENIDO

5

12.Memoria Dinámica. Punteros

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

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

25 de Marzo del 2018
estrellaestrellaestrellaestrellaestrella
No ha dejado ningún comentario
Responder

Comentar...

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