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 15 de Abril del 2018
1.843 visualizaciones desde el 15 de Abril del 2018
1,3 MB
195 paginas
Creado hace 2a (23/10/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

23 de octubre 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. Operaciones predefinidas . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
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 . . . . . . . . . . . . . . . . . . . . . . . . . . . .
68
6.4. Agregados: el Tipo Array . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
70
6.4.1. Operaciones predefinidas . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.4.2. Ejemplos
71
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.4.3. Listas o Secuencias con Número Variable de Elementos. Agregados Incompletos 73
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/pdf10429

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