ebook img

Fundamentos De Programacion Con C++ PDF

338 Pages·2011·1.322 MB·Spanish
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview Fundamentos De Programacion Con C++

UNIVERSIDADDEMA´LAGA Dpt.LenguajesyCC.Computaci´on E.T.S.I.Inform´atica Ingenier´ıaInform´atica Fundamentos de Programaci´on con el Lenguaje de Programacio´n C++ Vicente Benjumea Manuel Rold´an 6 de julio de 2011 2 Este obra est´a 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´on 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 ESoenvieunacartaaCreativeCom- mons, 171 Second Street, Suite 300, San Francisco, California 94105, USA. Usted es libre de: • Copiar, distribuir y comunicar pu´blicamente la obra. • Hacer obras derivadas. Bajo las siguientes condiciones: • Reconocimiento (Attribution) – Debe reconocer los cr´editos 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´olo puede distribuir la obra generada bajo una licencia id´entica a ´esta. Entendiendo que: • Renuncia – Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor • Dominio Pu´blico – Cuando la obra o alguno de sus elementos se halle en el dominio pu´blicosegu´nlaleyvigenteaplicable,estasituaci´onnoquedar´aafectadaporlalicencia. • Otrosderechos–Losderechossiguientesnoquedanafectadosporlalicenciadeninguna manera: ◦ Los derechos derivados de usos leg´ıtimos u otras limitaciones reconocidas por ley no se ven afectados por lo anterior. ◦ 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´erminos de la licencia de esta obra. Dpto. LenguajesyCienciasdelaComputaci´on UniversidaddeM´alaga ´ Indice general Pr´ologo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 I Programacio´n B´asica 11 1. Un Programa C++ 13 2. Tipos Simples 17 2.1. Declaraci´on Vs. Definicio´n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 2.2. Tipos Simples Predefinidos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 2.3. Tipos Simples Enumerados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 2.4. Constantes y Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 2.5. Operadores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 2.6. Conversiones Autom´aticas (Impl´ıcitas) de Tipos. . . . . . . . . . . . . . . . . . . . 23 2.7. Conversiones Expl´ıcitas de Tipos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 2.8. Tabla ASCII . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 2.9. Algunas Consideraciones Respecto a Operaciones con Nu´meros Reales . . . . . . . 25 3. Entrada y Salida de Datos B´asica 27 3.1. Salida de Datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 3.2. Entrada de Datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 3.3. El “Buffer” de Entrada y el “Buffer” de Salida . . . . . . . . . . . . . . . . . . . . 30 3.4. Otras Operaciones de Entrada y Salida. . . . . . . . . . . . . . . . . . . . . . . . . 30 3.5. Control del Estado del Flujo de Datos . . . . . . . . . . . . . . . . . . . . . . . . . 30 4. Estructuras de Control 33 4.1. Sentencia, Secuencia y Bloque . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 4.2. Declaraciones Globales y Locales . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 4.3. Sentencias de Asignaci´on. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 4.4. Sentencias de Selecci´on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 4.5. Sentencias de Iteraci´on. Bucles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 4.6. Programaci´on Estructurada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 4.7. Ejemplos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 5. Subprogramas. Funciones y Procedimientos 41 5.1. Funciones y Procedimientos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 5.2. Definici´on de Subprogramas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 5.3. Ejecuci´on de Subprogramas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 5.4. Paso de Par´ametros. Par´ametros por Valor y por Referencia . . . . . . . . . . . . . 43 5.5. Criterios de Modularizaci´on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 5.6. Subprogramas “en L´ınea” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 5.7. Declaraci´on de Subprogramas. Prototipos . . . . . . . . . . . . . . . . . . . . . . . 46 5.8. Sobrecarga de Subprogramas y Operadores . . . . . . . . . . . . . . . . . . . . . . 46 5.9. Par´ametros por Defecto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 3 4 ´INDICE GENERAL 5.10.Subprogramas y Flujos de Entrada y Salida . . . . . . . . . . . . . . . . . . . . . . 48 5.11.Pre-Condiciones y Post-Condiciones . . . . . . . . . . . . . . . . . . . . . . . . . . 48 5.12.Ejemplos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 6. Tipos Compuestos 51 6.1. Paso de Par´ametros de Tipos Compuestos . . . . . . . . . . . . . . . . . . . . . . . 51 6.2. Cadenas de Caracteres en C++: el Tipo String . . . . . . . . . . . . . . . . . . . . 52 6.3. Registros o Estructuras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 6.4. Agregados: el Tipo Array . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 6.5. Resoluci´on de Problemas Utilizando Tipos Compuestos . . . . . . . . . . . . . . . 71 7. Bu´squeda y Ordenaci´on 77 7.1. Bu´squeda Lineal (Secuencial) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 7.2. Bu´squeda Binaria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 7.3. Ordenaci´on por Intercambio (Burbuja) . . . . . . . . . . . . . . . . . . . . . . . . . 79 7.4. Ordenaci´on por Selecci´on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 7.5. Ordenaci´on por Inserci´on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 7.6. Ordenaci´on por Inserci´on Binaria . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 7.7. Aplicaci´on de los Algoritmos de Bu´squeda y Ordenaci´on . . . . . . . . . . . . . . . 82 8. Otros Tipos Compuestos en C 87 8.1. Agregados o Arrays Predefinidos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 8.2. Cadenas de Caracteres al Estilo-C . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 8.3. Uniones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 8.4. Campos de Bits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 8.5. Resoluci´on de Problemas Utilizando Tipos Compuestos . . . . . . . . . . . . . . . 105 9. Algunas Bibliotecas U´tiles 111 II Programaci´on Intermedia 113 10.Almacenamiento en Memoria Secundaria: Ficheros 115 10.1.Flujos de Entrada y Salida Asociados a Ficheros . . . . . . . . . . . . . . . . . . . 116 10.2.Entrada de Datos desde Ficheros de Texto . . . . . . . . . . . . . . . . . . . . . . . 117 10.3.Salida de Datos a Ficheros de Texto . . . . . . . . . . . . . . . . . . . . . . . . . . 119 10.4.Ejemplos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 10.5.Otros Tipos de Flujos de Ficheros . . . . . . . . . . . . . . . . . . . . . . . . . . . 126 10.5.1. Ficheros Binarios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126 10.5.2. Acceso Directo en Ficheros . . . . . . . . . . . . . . . . . . . . . . . . . . . 129 10.5.3. Flujos de Entrada y Salida . . . . . . . . . . . . . . . . . . . . . . . . . . . 130 10.6.Flujos de Entrada y Salida Vinculados a Cadenas de Caracteres . . . . . . . . . . . 130 11.M´odulos y Bibliotecas 133 11.1.Interfaz e Implementaci´on del M´odulo . . . . . . . . . . . . . . . . . . . . . . . . . 133 11.2.Compilaci´on Separada y Enlazado . . . . . . . . . . . . . . . . . . . . . . . . . . . 135 11.3.Espacios de Nombre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 11.4.Herramientas de Ayuda a la Gesti´on de la Compilacio´n Separada . . . . . . . . . . 141 12.Manejo de Errores. Excepciones 145 12.1.Errores de Programaci´on y Asertos . . . . . . . . . . . . . . . . . . . . . . . . . . . 145 12.2.Situaciones An´omalas Excepcionales . . . . . . . . . . . . . . . . . . . . . . . . . . 146 12.3.Gesti´on de Errores Mediante Excepciones . . . . . . . . . . . . . . . . . . . . . . . 147 12.4.Excepciones Est´andares . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152 Dpto. LenguajesyCienciasdelaComputaci´on UniversidaddeM´alaga ´INDICE GENERAL 5 13.Tipos Abstractos de Datos 155 13.1.Tipos Abstractos de Datos en C++: Clases . . . . . . . . . . . . . . . . . . . . . . 156 13.1.1. Definici´on e Implementaci´on de Clases “en L´ınea” . . . . . . . . . . . . . . 156 13.1.2. Definici´on de Clases e Implementaci´on Separada . . . . . . . . . . . . . . . 159 13.2.M´etodos Definidos Autom´aticamente por el Compilador . . . . . . . . . . . . . . . 172 13.3.Requisitos de las Clases Respecto a las Excepciones. . . . . . . . . . . . . . . . . . 173 13.4.M´as sobre M´etodos y Atributos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173 13.5.Sobrecarga de Operadores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177 14.Introducci´on a la Programaci´on Gen´erica. Plantillas 179 14.1.Subprogramas Gen´ericos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179 14.2.Tipos Abstractos de Datos Gen´ericos . . . . . . . . . . . . . . . . . . . . . . . . . . 181 14.3.Par´ametros Gen´ericos por Defecto . . . . . . . . . . . . . . . . . . . . . . . . . . . 184 14.4.Definici´on de Tipos dentro de la Definici´on de Tipos Gen´ericos . . . . . . . . . . . 185 14.5.Separaci´on de Definici´on e Implementaci´on . . . . . . . . . . . . . . . . . . . . . . 186 15.Memoria Din´amica. Punteros 191 15.1.Punteros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192 15.2.Gesti´on de Memoria Din´amica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193 15.3.Operaciones con Variables de Tipo Puntero . . . . . . . . . . . . . . . . . . . . . . 194 15.4.Paso de Par´ametros de Variables de Tipo Puntero . . . . . . . . . . . . . . . . . . 196 15.5.Abstracci´on en la Gesti´on de Memoria Din´amica . . . . . . . . . . . . . . . . . . . 197 15.6.Estructuras Enlazadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198 15.7.Operaciones con Listas Enlazadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200 15.8.Gesti´on de Memoria Din´amica en Presencia de Excepciones . . . . . . . . . . . . . 207 15.9.Comprobaci´on de Gesti´on de Memoria Din´amica . . . . . . . . . . . . . . . . . . . 217 15.10.Operador de Direcci´on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218 16.Introducci´on a los Contenedores de la Biblioteca Est´andar (STL) 221 16.1.Vector . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221 16.2.Stack. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225 16.3.Queue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227 16.4.Resoluci´on de Problemas Utilizando Contenedores . . . . . . . . . . . . . . . . . . 229 III Programaci´on Avanzada 233 17.Programaci´on Orientada a Objetos 237 18.Memoria Din´amica Avanzada 241 18.1.Memoria Din´amica de Agregados . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241 18.2.Punteros a Subprogramas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242 18.3.Punteros Inteligentes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242 19.Tipos Abstractos de Datos Avanzados 245 19.1.Punteros a Miembros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245 19.2.Ocultar la Implementaci´on. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245 19.3.Control de Elementos de un Contenedor . . . . . . . . . . . . . . . . . . . . . . . . 250 20.Programaci´on Gen´erica Avanzada 255 20.1.Par´ametros Gen´ericos por Defecto . . . . . . . . . . . . . . . . . . . . . . . . . . . 255 20.2.Tipos dentro de Clases Gen´ericas . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255 20.3.M´etodos de Clase Gen´ericos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255 20.4.Amigos Gen´ericos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256 20.5.Restricciones en Programaci´on Gen´erica . . . . . . . . . . . . . . . . . . . . . . . . 257 Dpto. LenguajesyCienciasdelaComputaci´on UniversidaddeM´alaga 6 ´INDICE GENERAL 20.6.Especializaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258 20.7.Meta-programaci´on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259 20.8.SFINAE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260 21.Buffer y Flujos de Entrada y Salida 263 21.1.Operaciones de Salida . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263 21.2.Operaciones de Entrada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263 21.3.Buffer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265 21.4.Redirecci´on Transparente de la Salida Est´andar a un String . . . . . . . . . . . . . 267 21.5.Ficheros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268 21.6.Ficheros de Entrada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268 21.7.Ficheros de Salida . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269 21.8.Ejemplo de Ficheros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269 21.9.Ficheros de Entrada y Salida . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270 21.10.Flujo de Entrada desde una Cadena . . . . . . . . . . . . . . . . . . . . . . . . . . 270 21.11.Flujo de Salida a una Cadena . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270 21.12.Jerarqu´ıa de Clases de Flujo Est´andar . . . . . . . . . . . . . . . . . . . . . . . . . 271 22.T´ecnicas de Programaci´on Usuales en C++ 273 22.1.Adquisici´on de Recursos es Inicializaci´on (RAII) . . . . . . . . . . . . . . . . . . . 273 22.1.1. auto ptr (unique ptr) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273 22.1.2. RAII Simple de Memoria Din´amica. . . . . . . . . . . . . . . . . . . . . . . 274 22.1.3. RAII Simple Gen´erico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275 22.1.4. RAII Gen´erico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276 22.1.5. RAII Gen´erico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276 23.Gesti´on Din´amica de Memoria 279 23.1.Gesti´on de Memoria Din´amica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279 23.2.Gesti´on de Memoria Din´amica sin Inicializar . . . . . . . . . . . . . . . . . . . . . 282 23.3.RAII: auto ptr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282 23.4.Comprobaci´on de Gesti´on de Memoria Din´amica . . . . . . . . . . . . . . . . . . . 283 24.Biblioteca Est´andar de C++. STL 285 24.1.Caracter´ısticas Comunes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285 24.1.1. Ficheros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285 24.1.2. Contenedores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286 24.1.3. Tipos Definidos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286 24.1.4. Iteradores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286 24.1.5. Acceso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287 24.1.6. Operaciones de Pila y Cola . . . . . . . . . . . . . . . . . . . . . . . . . . . 287 24.1.7. Operaciones de Lista . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287 24.1.8. Operaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287 24.1.9. Constructores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287 24.1.10.Asignaci´on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288 24.1.11.Operaciones Asociativas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288 24.1.12.Resumen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288 24.1.13.Operaciones sobre Iteradores . . . . . . . . . . . . . . . . . . . . . . . . . . 288 24.2.Contenedores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288 24.3.Vector . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289 24.4.List . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290 24.5.Deque . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293 24.6.Stack. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294 24.7.Queue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295 24.8.Priority-Queue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296 24.9.Map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296 Dpto. LenguajesyCienciasdelaComputaci´on UniversidaddeM´alaga ´INDICE GENERAL 7 24.10.Multimap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297 24.11.Set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298 24.12.Multiset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 299 24.13.Bitset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 299 24.14.Iteradores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300 24.15.Directos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300 24.16.Inversos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301 24.17.Inserters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302 24.18.Stream Iterators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302 24.19.Operaciones sobre Iteradores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306 24.20.Objetos Funci´on y Predicados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306 24.21.Algoritmos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309 24.22.Garant´ıas (Excepciones) de Operaciones sobre Contenedores . . . . . . . . . . . . . 311 24.23.Num´ericos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312 24.24.L´ımites . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312 24.25.Run Time Type Information (RTTI) . . . . . . . . . . . . . . . . . . . . . . . . . . 313 A. Precedencia de Operadores en C 315 B. Precedencia de Operadores en C++ 317 C. Biblioteca B´asica ANSI-C (+ conio) 321 C.1. cassert . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321 C.2. cctype . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321 C.3. cmath . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321 C.4. cstdlib . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322 C.5. climits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323 C.6. cfloat. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323 C.7. ctime. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323 C.8. cstring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323 C.9. cstdio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324 C.10.cstdarg. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325 C.11.conio.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 326 D.El Preprocesador 329 E. Errores M´as Comunes 331 F. Caracter´ısticas no Contempladas 333 G.Bibliograf´ıa 335 ´Indice 335 Dpto. LenguajesyCienciasdelaComputaci´on UniversidaddeM´alaga 8 ´INDICE GENERAL Dpto. LenguajesyCienciasdelaComputaci´on UniversidaddeM´alaga Pr´ologo Estemanualpretendeserunagu´ıadereferenciaparalautilizaci´ondellenguajedeprogramaci´on C++ en el desarrollo de programas. Est´a orientada a alumnos de primer curso de programaci´on de Ingenier´ıa Inform´atica. No obstante, hay algunos cap´ıtulos y secciones que presentan conceptos avanzados y requieren mayores conocimientos por parte del lector, y por lo tanto exceden de los conocimientosb´asicosrequeridosparaunalumnodeprimercursodeprogramaci´on.Estoscap´ıtulos yseccionesquepresentanorequierenconceptos avanzados seencuentranmarcadosconuns´ımbolo (cid:13)A, y no es necesario que sean le´ıdos por el lector, a los cuales podr´a acceder en cualquier otro momento posterior. Otros cap´ıtulos y secciones muestran estructuras y t´ecnicas de programaci´on obsoletas ynorecomendadasenC++,sinembargosonmostradasenestemanualporcompletitud. Estos cap´ıtulos y secciones est´an marcados con el s´ımbolo OBS . Estemanualseconcibecomomaterialdeapoyoaladocencia,yrequieredelasexplicacionesim- partidasenclaseporelprofesorparasuaprendizaje.As´ımismo,estemanualnopretende“ensen˜ar a programar”, supone que el lector posee los fundamentos necesarios relativos a la programaci´on, y simplemente muestra como aplicarlos utilizando el Lenguaje de Programaci´on C++. El lenguaje de programaci´on C++ es un lenguaje muy flexible y vers´atil, y debido a ello, si se utilizasinrigorpuededarlugaraconstruccionesyestructurasdeprogramaci´oncomplejas,dif´ıciles de comprender y propensas a errores. Debido a ello, restringiremos tanto las estructuras a utilizar como la forma de utilizarlas. Nopretendeserunagu´ıaextensadellenguajedeprogramaci´onC++.Adem´as,dadalaamplitud del lenguaje, hay caracter´ısticas del mismo que no han sido contempladas por exceder lo que entendemos que es un curso de programaci´on elemental. Este manual ha sido elaborado en el Dpto. de Lenguajes y Ciencias de la Computaci´on de la Universidad de M´alaga. ES UNA VERSIO´N PRELIMINAR, INCOMPLETA Y SE ENCUENTRA AC- TUALMENTE BAJO DESARROLLO. Se difunde en la creencia de que puede ser u´til, au´n siendo una versi´on preliminar. La u´ltima versi´on de este documento puede ser descargada desde la siguiente p´agina web: http://www.lcc.uma.es/%7Evicente/docencia/index.html o directamente desde la siguiente direcci´on: http://www.lcc.uma.es/%7Evicente/docencia/cpp/manual_referencia_cxx.pdf 9 10 ´INDICE GENERAL Dpto. LenguajesyCienciasdelaComputaci´on UniversidaddeM´alaga

See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.