SlideShare una empresa de Scribd logo
1 de 14
CALIFICACION
CENTRO UNIVERSITARIO UAEM
ATLACOMULCO
INGENIERIA EN COMPUTACION
AUTOMATAS Y LENGUAJES FORMALES
ALUMNA: ALICIA SANDOVAL CAMACHO
PROFESOR: HECTOR CABALLERO HERNANDEZ
2° SEMESTRE TURNO MATUTINO
FECHA DE ENTREGA: 21-04-2015
CLASE STRING
La instrucción typedef basic_string <char> cadena; crea el tipo de alias string para basic string
<char>. También se proporciona una instrucción typedef para el tipo wchar_t, por lo general este
tipo almacena caracteres de dos bytes (16 bits) para soportar otros conjuntos de caracteres. El
tamaño de wchar_t no se fija en base al estándar.
Para utilizar objetos string, incluya el archivo de encabezado <string>, la clase string no
proporciona constructores que convierten de int o char a string.
Asignación y concatenación de objetos string
La clase string proporciona el operador operator=sobrecargado y la función miembro assign para
asignaciones de objetos string.
El operador subíndice ([]) proporciona acceso de lectura/escritura para cualquier elemento de un
objeto string.
La función miembro at de string proporciona acceso comprobado; al ir más allá de cualquiera de
los extremos del objeto string se lanza una excepción out_of_range. El operador subíndice ([]) no
proporciona acceso comprobado.
La clase string proporciona a los operadores + y +- sobrecargados, y la función miembro append
para realizar la concatenación de objetos string.
Comparación de objetos string
La clase string proporciona los operadores sobrecargados = =, ! =, < >, <= y >= para las
comparaciones de objetos string.
La función miembro compare de string compara dos objetos de string (o subcadenas) y devuelve
0 si los objetos string son iguales, un numero positivo si el primer objeto string es
lexicográficamente mayor que el segundo, o un numero negativo si el primer objeto string es menor
que el segundo.
Subcadenas
La función miembro substr de string obtiene una subcadena de un objeto string.
Intercambio de objetos string
La función miembro swap de string intercambia el contenido de dos objetos string.
Características de los objetos string
 Las funciones miembro size y length de string devuelven el tamaño o la longitud de un
objeto string.
 La función capacity devuelve el número total de caracteres que se pueden almacenar en el
objeto string sin incrementar la cantidad de memoria asignada al mismo.
 La función max_size devuelve el tamaño máximo que puede tener un objeto string.
 La función resize modifica la longitud de un objeto string.
Búsqueda de subcadenas y caracteres en un objeto string
La funciones de búsqueda find rfind, find_first_of, find_last_of, y find_first_not_of localizan
subcadenas o caracteres en un objeto string.
Remplazo de caracteres en un objeto string
La función erase elimina elementos de un objeto string.
La función replace reemplaza los caracteres de un objeto string.
Inserción de caracteres en un objeto string.
La función insert inserta caracteres en un objeto string.
Conversión a cadenas estilo C
La función c_str devuelve un apuntador const*char que apunta a una cadena de caracteres estilo C
que contiene todos los caracteres en un objeto string.
La función data devuelve un apuntador const*char que apunta a un arreglo de caracteres estilo C
sin terminación nula, que contiene todos los caracteres en un objeto string.
Iteradores
La clase string proporciona las funciones end y begin para iterar a través de elementos individuales.
La clase string proporciona las funciones miembro rend y rbegin para acceder a los caracteres
individuales de un objeto string en forma inversa, desde el final del objeto string, hasta el inicio.
Procesamiento de flujos de cadena
La entrada desde un objeto string esta soportada por la clase istringstream. La salida hacia un
objeto string esta soportada por la clase ostringstream.
La función str de ostringstream devuelve una copia string de un objeto string.
MANEJO DE EXCEPCIONES
Generalidades:
El manejo de excepciones permite al programador eliminar el código de manejo de errores de la
“línea principal” de ejecución del programa, lo cual mejora la claridad del programa y su capacidad
de modificación.
Ejemplo: manejo de un intento de dividir entre cero.
La clase excepción es la base estándar de C++ para las excepciones. La clase excepción proporciona
la función virtual what, que devuelve un mensaje de error apropiado y puede sobrescribirse en las
clases derivadas.
La clase runtime_error (definida en el encabezado <stdexcept) es la base estándar de C++ para
representar los errores en tiempo de ejecución. C++ utiliza el modelo de terminación del manejo de
excepciones.
Un bloque try consiste en la palabra clave try, seguida de las llaves ({}) que definen un bloque de
código en el que podrían ocurrir excepciones. El bloque try encierra instrucciones que podrían
producir excepciones, e instrucciones que no deben ejecutarse si se producen excepciones. Por lo
menos debe haber un manejo catch justo después de un bloque try. Cada manejador catch
especifica un parámetro de excepción que representa el tipo de excepción que el manejador catch
puede procesar.
Si un parámetro de excepción incluye un nombre de parámetro opcional, el manejador catch puede
usar ese nombre de parámetro para interactuar con un objeto excepción atrapado. El punto en el
programa en el que ocurre una excepción se conoce como el punto de lanzamiento.
Si ocurre una excepción en un bloque try, este bloque expira y el control del programa se transfiere
al primer catch en el que coincida el tipo del parámetro para interactuar con un objeto excepción
atrapado.
Cuando un bloque try termina, las variables locales definidas en el bloque quedan fuera de alcance
y cuando termina debido a una excepción, e programa busca el primer manejador catch que pueda
procesar el tipo de excepción que ocurrió. Para localizar el catch que coincida, el programa compara
el tipo de la excepción lanzada con el tipo del parámetro de excepción de cada catch hasta que el
programa encuentra una coincidencia, esto ocurre si los tipos son idénticos, o si el tipo de la
excepción lanzada es una clase derivada del tipo de parámetro de excepción. Cuando ocurre una
coincidencia, se ejecuta el código contenido dentro del manejador catch que coincide.
Cuando un manejador catch termina su procesamiento, el parámetro de catch y las variables locales
definidas dentro del manejador quedan fuera de alcance, cualquier manejador catch restante que
corresponda al bloque try se ignora, y la ejecución se reanuda en la primera línea del código
después de la secuencia try…catch.
Si no ocurren excepciones en un bloque try, el programa ignora el manejador catch para ese bloque.
La ejecución del programa se reanuda con la siguiente instrucción después de la secuencia
try…catch.
Si una excepción que ocurre en un bloque try no tiene un manejador catch que coincida, o si ocurre
una excepción en una instrucción que no esté en un bloque try, la función que contiene la
instrucción termina de inmediato y el programa trata de localizar un bloque try circundante en la
función que hizo la llamada. A este proceso se le conoce como limpieza de la pila.
Para lanzar una excepción, use la palabra clave throw seguida de un operando que representa el
tipo de excepción a lanzar, el operando de una instrucción throw puede ser de cualquier tipo.
Cuando utilizar el manejo de excepciones.
El manejo de excepciones es para errores sincrónicos, que ocurren cuando se ejecuta una
instrucción, no está diseñado para procesar los errores asociados con los eventos asíncronos, que
ocurren en el paralelo con el flujo de control del programa.
Volver a lanzar una excepción.
El manejador de excepciones puede diferri el manejo de una excepción a otro manejador de
excepciones. En cualquier caso, para lograr esto el manejador vuelve a lanzar la excepción. Algunos
ejemplos comunes de excepciones son los subíndices de arreglos fuera de rango, el desbordamiento
aritmético, la división entre cero, los parámetros inválidos de funciones y las asignaciones de
memoria fallidas.
Especificación de excepciones:
Una especificación de excepciones opcional enumera una lista de excepciones que una función
puede lanzar. Una función solo puede lanzar excepciones de los tipos indicados por las
especificaciones, o excepciones de cualquier tipo que se derive de estos tipos. Si una función lanza
una excepción que no pertenezca a uno de los tipos especificados, se hace una llamada a la función
unexpected y el programa termina.
Una función sin especificación de excepciones puede lanzar cualquier excepción. La especificación
de excepciones vacía throw () indica que una función no lanza excepciones. Si una función con una
especificación de excepciones vacía intenta lanzar la excepción, se invoca la función unexpected.
Procesamiento de las excepciones inesperadas:
La función unexpected llama a la función registrada con la función set_terminate. Si no se ha
registrado ninguna función de esta forma, se hace una llamada a la función terminate de manera
predeterminada. La función set_terminate puede especificar la función a invocar cuando se hace la
llamada terminate. En caso contrario, terminate llama a abort, la cual termina el programa sin
llamar a los destructores de los objetos declarados como static y auto.
Las funciones set_terminate y set_unexpected devuelven un apuntador a la última función llamada
por terminate y unexpected, respectivamente, esto permite al programador guardar el apuntador de
funciones, para poder restaurarlo más tarde, estas funciones reciben como argumentos apuntadores
a funciones con tipos de valores de retorno void y sin argumentos.
Si una función de terminación definida por el programador no sale de un programa, se hará una
llamada a la unción abort después de que la función de terminación definida por el programador
termine de ejecutarse.
Limpieza de pila:
Limpiar la pila de llamadas funciones significa que la función en la que la excepción no se atrapó
termina, todas las variables locales en esa función se destruyen y el control regresa a la instrucción
que invocó originalmente a esa función.
Constructores, destructores y manejo de excepciones.
Las excepciones lanzadas por un constructor hacen que se llame a los destructores de todos los
objetos creados como parte del objeto que se esta construyendo, antes de que se lance la excepción,
cada objeto automático construido en un bloque try se destruye antes de lanzar una excepción. La
limpieza de la pila se completa antes de que un manejador de excepciones empiece a ejecutarse, si
un destructor invocado como resultado de la limpieza de la pila lanza una excepción, se hace una
llamada a terminate.
Procesamiento de las fallas de new
Cuando falla el operador new, lanza una excepción bad_alloc, definida en el archivo de encabezado
<new>.
Ejemplos de fallas new:
 Caso en el que new devuelve 0 al fallar:
 Caso en el que new lanza bad_alloc al fallar:
 Manejo de las fallas de new mediante la función set_new_handler:
Esta función recibe como argumento un apuntador a una función que no recibe argumentos y
devuelve void, este aounta a la función que se llamará si new falla.
Una vez que set_new_handler registra un manejador new en el programa, el operador no lanza
bad_alloc en el futuro; en vez de ello, difiere el manejo de errores a la función manejadoras de
new.
Si new asigna memoria con éxito, devuelve un apuntador a esa memoria, si falla y no se registro
ninguna función manejador a de new, new lanza una excepción bad_allo, si new falla al asignar
memoria y se ha registrado una función manejadora de new, se hace una llamada a esta función. La
función debe realizar las siguientes tareas:
1. Hacer mas memoria disponible al eliminar otra parte de la memoria asignada en forma
dinámica y regresar al operador new para tratar de asignar memoria otra vez.
2. Lanzar una excepción de tipo bad_alloc.
3. Llamar a la función abort o exit para terminar el programa.
La clase auto_ptr y la asignación dinámica de memoria
Un objeto de clase auto_ptr mantiene un apuntador a la memoria que se asigna en forma dinámica.
Cuando se hace una llamada al destructor de un objeto auto_ptr realiza una operación delete con su
miembro de datos apuntador.
Jerarquía de excepciones de la Biblioteca estándar.
Referencias y bibliografía
Como programar en C++
Harvey m. Deitel, Paul J. Deitel
Pearson Educación, 1995-927 pages

Más contenido relacionado

La actualidad más candente (20)

Resumen
ResumenResumen
Resumen
 
Manejo de excepciones en Java
Manejo de excepciones en JavaManejo de excepciones en Java
Manejo de excepciones en Java
 
5.manejo de excepciones
5.manejo de excepciones5.manejo de excepciones
5.manejo de excepciones
 
05 java excepciones
05 java excepciones05 java excepciones
05 java excepciones
 
Tema 4 excepciones por gio
Tema 4   excepciones por gioTema 4   excepciones por gio
Tema 4 excepciones por gio
 
Java excepciones
Java excepcionesJava excepciones
Java excepciones
 
excepciones en java
excepciones en javaexcepciones en java
excepciones en java
 
Excepciones en java
Excepciones en javaExcepciones en java
Excepciones en java
 
Tipos de excepciones
Tipos de excepcionesTipos de excepciones
Tipos de excepciones
 
Java exceptions
Java exceptionsJava exceptions
Java exceptions
 
Programación III (Java) - 04 Excepciones
Programación III (Java) - 04 ExcepcionesProgramación III (Java) - 04 Excepciones
Programación III (Java) - 04 Excepciones
 
Manejo De Excepciones
Manejo De ExcepcionesManejo De Excepciones
Manejo De Excepciones
 
Excepciones
ExcepcionesExcepciones
Excepciones
 
Exceptions (2)
Exceptions (2)Exceptions (2)
Exceptions (2)
 
Semana 8 excepciones definidas por el usuario
Semana 8 excepciones definidas por el usuarioSemana 8 excepciones definidas por el usuario
Semana 8 excepciones definidas por el usuario
 
Gestion de errores en java
Gestion de errores en javaGestion de errores en java
Gestion de errores en java
 
Constructores & excepciones
Constructores & excepcionesConstructores & excepciones
Constructores & excepciones
 
Errores
ErroresErrores
Errores
 
Lab excepciones
Lab excepcionesLab excepciones
Lab excepciones
 
Excepciones
ExcepcionesExcepciones
Excepciones
 

Similar a Clase string y manejo de excepciones

Presentación introducción a Matlab y su estructura
Presentación introducción a Matlab y su estructuraPresentación introducción a Matlab y su estructura
Presentación introducción a Matlab y su estructuraJOSUEANIBALCOCHOJILH
 
Programación java1
Programación java1Programación java1
Programación java1jbersosa
 
Trabajo tutorial de visual C++
Trabajo tutorial de visual C++Trabajo tutorial de visual C++
Trabajo tutorial de visual C++Bryangio2002
 
Manuales ...
Manuales ...Manuales ...
Manuales ...elidetjc
 
Workshop iOS 4: Closures, generics & operators
Workshop iOS 4: Closures, generics & operatorsWorkshop iOS 4: Closures, generics & operators
Workshop iOS 4: Closures, generics & operatorsVisual Engineering
 
Seccion Fundamentos SCJP
Seccion Fundamentos SCJPSeccion Fundamentos SCJP
Seccion Fundamentos SCJPjcherrera
 
comandos
comandoscomandos
comandosarecerv
 
Clase n°2 3-4 java
Clase n°2 3-4 javaClase n°2 3-4 java
Clase n°2 3-4 javajbersosa
 
Lenguaje De Programacion
Lenguaje De ProgramacionLenguaje De Programacion
Lenguaje De Programacioncharnisch
 
1ra parte elementos basicos del lenguaje
1ra parte elementos basicos del lenguaje1ra parte elementos basicos del lenguaje
1ra parte elementos basicos del lenguajeyuli02
 
1ra parte elementos basicos del lenguaje
 1ra parte elementos basicos del lenguaje 1ra parte elementos basicos del lenguaje
1ra parte elementos basicos del lenguajeyuli02
 

Similar a Clase string y manejo de excepciones (20)

Presentación introducción a Matlab y su estructura
Presentación introducción a Matlab y su estructuraPresentación introducción a Matlab y su estructura
Presentación introducción a Matlab y su estructura
 
Programación java1
Programación java1Programación java1
Programación java1
 
Resumen claudia u5
Resumen claudia u5Resumen claudia u5
Resumen claudia u5
 
Trabajo tutorial de visual C++
Trabajo tutorial de visual C++Trabajo tutorial de visual C++
Trabajo tutorial de visual C++
 
Tutorial jared
Tutorial jaredTutorial jared
Tutorial jared
 
C++
C++C++
C++
 
Manuales ...
Manuales ...Manuales ...
Manuales ...
 
Workshop iOS 4: Closures, generics & operators
Workshop iOS 4: Closures, generics & operatorsWorkshop iOS 4: Closures, generics & operators
Workshop iOS 4: Closures, generics & operators
 
Lenguaje de programacion
Lenguaje de programacionLenguaje de programacion
Lenguaje de programacion
 
Seccion Fundamentos SCJP
Seccion Fundamentos SCJPSeccion Fundamentos SCJP
Seccion Fundamentos SCJP
 
comandos
comandoscomandos
comandos
 
Clase 2 JAVA 2012
Clase 2 JAVA 2012Clase 2 JAVA 2012
Clase 2 JAVA 2012
 
algoritmo
algoritmoalgoritmo
algoritmo
 
Implementación de Aplicaciones Basadas en Texto
Implementación de Aplicaciones Basadas en TextoImplementación de Aplicaciones Basadas en Texto
Implementación de Aplicaciones Basadas en Texto
 
Clase n°2 3-4 java
Clase n°2 3-4 javaClase n°2 3-4 java
Clase n°2 3-4 java
 
Articulo
ArticuloArticulo
Articulo
 
Lenguaje De Programacion
Lenguaje De ProgramacionLenguaje De Programacion
Lenguaje De Programacion
 
Funciones
FuncionesFunciones
Funciones
 
1ra parte elementos basicos del lenguaje
1ra parte elementos basicos del lenguaje1ra parte elementos basicos del lenguaje
1ra parte elementos basicos del lenguaje
 
1ra parte elementos basicos del lenguaje
 1ra parte elementos basicos del lenguaje 1ra parte elementos basicos del lenguaje
1ra parte elementos basicos del lenguaje
 

Más de AliciaSandovalCamacho (9)

Resumen
ResumenResumen
Resumen
 
Autómata finito no determinista e investigacion
Autómata finito no determinista e investigacionAutómata finito no determinista e investigacion
Autómata finito no determinista e investigacion
 
GRAMATICA GENERATIVA Y AUTOMATA DE PILA
GRAMATICA GENERATIVA Y AUTOMATA DE  PILAGRAMATICA GENERATIVA Y AUTOMATA DE  PILA
GRAMATICA GENERATIVA Y AUTOMATA DE PILA
 
Reglas de producción
Reglas de producciónReglas de producción
Reglas de producción
 
Alfabeto
AlfabetoAlfabeto
Alfabeto
 
Pila
PilaPila
Pila
 
Union y concatenacion
Union y concatenacionUnion y concatenacion
Union y concatenacion
 
Arbol binario
Arbol binarioArbol binario
Arbol binario
 
Convertidor de bases
Convertidor de basesConvertidor de bases
Convertidor de bases
 

Último

Flujo multifásico en tuberias de ex.pptx
Flujo multifásico en tuberias de ex.pptxFlujo multifásico en tuberias de ex.pptx
Flujo multifásico en tuberias de ex.pptxEduardoSnchezHernnde5
 
Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada  Sobrexcavación (como se lleva a cabo una voladura)Voladura Controlada  Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)ssuser563c56
 
CLASe número 4 fotogrametria Y PARALAJE.pptx
CLASe número 4 fotogrametria Y PARALAJE.pptxCLASe número 4 fotogrametria Y PARALAJE.pptx
CLASe número 4 fotogrametria Y PARALAJE.pptxbingoscarlet
 
tema05 estabilidad en barras mecanicas.pdf
tema05 estabilidad en barras mecanicas.pdftema05 estabilidad en barras mecanicas.pdf
tema05 estabilidad en barras mecanicas.pdfvictoralejandroayala2
 
ARBOL DE CAUSAS ANA INVESTIGACION DE ACC.ppt
ARBOL DE CAUSAS ANA INVESTIGACION DE ACC.pptARBOL DE CAUSAS ANA INVESTIGACION DE ACC.ppt
ARBOL DE CAUSAS ANA INVESTIGACION DE ACC.pptMarianoSanchez70
 
Introducción a los sistemas neumaticos.ppt
Introducción a los sistemas neumaticos.pptIntroducción a los sistemas neumaticos.ppt
Introducción a los sistemas neumaticos.pptEduardoCorado
 
¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptx
¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptx¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptx
¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptxguillermosantana15
 
presentacion medidas de seguridad riesgo eléctrico
presentacion medidas de seguridad riesgo eléctricopresentacion medidas de seguridad riesgo eléctrico
presentacion medidas de seguridad riesgo eléctricoalexcala5
 
PPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptx
PPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptxPPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptx
PPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptxSergioGJimenezMorean
 
Reporte de Exportaciones de Fibra de alpaca
Reporte de Exportaciones de Fibra de alpacaReporte de Exportaciones de Fibra de alpaca
Reporte de Exportaciones de Fibra de alpacajeremiasnifla
 
ECONOMIA APLICADA SEMANA 555555555555555555.pdf
ECONOMIA APLICADA SEMANA 555555555555555555.pdfECONOMIA APLICADA SEMANA 555555555555555555.pdf
ECONOMIA APLICADA SEMANA 555555555555555555.pdffredyflores58
 
PPT ELABORARACION DE ADOBES 2023 (1).pdf
PPT ELABORARACION DE ADOBES 2023 (1).pdfPPT ELABORARACION DE ADOBES 2023 (1).pdf
PPT ELABORARACION DE ADOBES 2023 (1).pdfalexquispenieto2
 
Rendimiento-de-Maquinaria y precios unitarios para la construcción de una ma...
Rendimiento-de-Maquinaria y precios unitarios  para la construcción de una ma...Rendimiento-de-Maquinaria y precios unitarios  para la construcción de una ma...
Rendimiento-de-Maquinaria y precios unitarios para la construcción de una ma...RichardRivas28
 
Magnetismo y electromagnetismo principios
Magnetismo y electromagnetismo principiosMagnetismo y electromagnetismo principios
Magnetismo y electromagnetismo principiosMarceloQuisbert6
 
Sesión N°2_Curso_Ingeniería_Sanitaria.pdf
Sesión N°2_Curso_Ingeniería_Sanitaria.pdfSesión N°2_Curso_Ingeniería_Sanitaria.pdf
Sesión N°2_Curso_Ingeniería_Sanitaria.pdfannavarrom
 
Proyecto de iluminación "guia" para proyectos de ingeniería eléctrica
Proyecto de iluminación "guia" para proyectos de ingeniería eléctricaProyecto de iluminación "guia" para proyectos de ingeniería eléctrica
Proyecto de iluminación "guia" para proyectos de ingeniería eléctricaXjoseantonio01jossed
 
Falla de san andres y el gran cañon : enfoque integral
Falla de san andres y el gran cañon : enfoque integralFalla de san andres y el gran cañon : enfoque integral
Falla de san andres y el gran cañon : enfoque integralsantirangelcor
 
Sesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
Sesión 02 TIPOS DE VALORIZACIONES CURSO CersaSesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
Sesión 02 TIPOS DE VALORIZACIONES CURSO CersaXimenaFallaLecca1
 
El proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kV
El proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kVEl proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kV
El proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kVSebastianPaez47
 

Último (20)

Flujo multifásico en tuberias de ex.pptx
Flujo multifásico en tuberias de ex.pptxFlujo multifásico en tuberias de ex.pptx
Flujo multifásico en tuberias de ex.pptx
 
Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada  Sobrexcavación (como se lleva a cabo una voladura)Voladura Controlada  Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)
 
CLASe número 4 fotogrametria Y PARALAJE.pptx
CLASe número 4 fotogrametria Y PARALAJE.pptxCLASe número 4 fotogrametria Y PARALAJE.pptx
CLASe número 4 fotogrametria Y PARALAJE.pptx
 
tema05 estabilidad en barras mecanicas.pdf
tema05 estabilidad en barras mecanicas.pdftema05 estabilidad en barras mecanicas.pdf
tema05 estabilidad en barras mecanicas.pdf
 
ARBOL DE CAUSAS ANA INVESTIGACION DE ACC.ppt
ARBOL DE CAUSAS ANA INVESTIGACION DE ACC.pptARBOL DE CAUSAS ANA INVESTIGACION DE ACC.ppt
ARBOL DE CAUSAS ANA INVESTIGACION DE ACC.ppt
 
Introducción a los sistemas neumaticos.ppt
Introducción a los sistemas neumaticos.pptIntroducción a los sistemas neumaticos.ppt
Introducción a los sistemas neumaticos.ppt
 
¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptx
¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptx¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptx
¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptx
 
presentacion medidas de seguridad riesgo eléctrico
presentacion medidas de seguridad riesgo eléctricopresentacion medidas de seguridad riesgo eléctrico
presentacion medidas de seguridad riesgo eléctrico
 
PPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptx
PPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptxPPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptx
PPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptx
 
Reporte de Exportaciones de Fibra de alpaca
Reporte de Exportaciones de Fibra de alpacaReporte de Exportaciones de Fibra de alpaca
Reporte de Exportaciones de Fibra de alpaca
 
ECONOMIA APLICADA SEMANA 555555555555555555.pdf
ECONOMIA APLICADA SEMANA 555555555555555555.pdfECONOMIA APLICADA SEMANA 555555555555555555.pdf
ECONOMIA APLICADA SEMANA 555555555555555555.pdf
 
PPT ELABORARACION DE ADOBES 2023 (1).pdf
PPT ELABORARACION DE ADOBES 2023 (1).pdfPPT ELABORARACION DE ADOBES 2023 (1).pdf
PPT ELABORARACION DE ADOBES 2023 (1).pdf
 
Rendimiento-de-Maquinaria y precios unitarios para la construcción de una ma...
Rendimiento-de-Maquinaria y precios unitarios  para la construcción de una ma...Rendimiento-de-Maquinaria y precios unitarios  para la construcción de una ma...
Rendimiento-de-Maquinaria y precios unitarios para la construcción de una ma...
 
Magnetismo y electromagnetismo principios
Magnetismo y electromagnetismo principiosMagnetismo y electromagnetismo principios
Magnetismo y electromagnetismo principios
 
Sesión N°2_Curso_Ingeniería_Sanitaria.pdf
Sesión N°2_Curso_Ingeniería_Sanitaria.pdfSesión N°2_Curso_Ingeniería_Sanitaria.pdf
Sesión N°2_Curso_Ingeniería_Sanitaria.pdf
 
Proyecto de iluminación "guia" para proyectos de ingeniería eléctrica
Proyecto de iluminación "guia" para proyectos de ingeniería eléctricaProyecto de iluminación "guia" para proyectos de ingeniería eléctrica
Proyecto de iluminación "guia" para proyectos de ingeniería eléctrica
 
Falla de san andres y el gran cañon : enfoque integral
Falla de san andres y el gran cañon : enfoque integralFalla de san andres y el gran cañon : enfoque integral
Falla de san andres y el gran cañon : enfoque integral
 
Sesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
Sesión 02 TIPOS DE VALORIZACIONES CURSO CersaSesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
Sesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
 
El proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kV
El proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kVEl proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kV
El proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kV
 
VALORIZACION Y LIQUIDACION MIGUEL SALINAS.pdf
VALORIZACION Y LIQUIDACION MIGUEL SALINAS.pdfVALORIZACION Y LIQUIDACION MIGUEL SALINAS.pdf
VALORIZACION Y LIQUIDACION MIGUEL SALINAS.pdf
 

Clase string y manejo de excepciones

  • 2. CENTRO UNIVERSITARIO UAEM ATLACOMULCO INGENIERIA EN COMPUTACION AUTOMATAS Y LENGUAJES FORMALES ALUMNA: ALICIA SANDOVAL CAMACHO PROFESOR: HECTOR CABALLERO HERNANDEZ 2° SEMESTRE TURNO MATUTINO FECHA DE ENTREGA: 21-04-2015
  • 3. CLASE STRING La instrucción typedef basic_string <char> cadena; crea el tipo de alias string para basic string <char>. También se proporciona una instrucción typedef para el tipo wchar_t, por lo general este tipo almacena caracteres de dos bytes (16 bits) para soportar otros conjuntos de caracteres. El tamaño de wchar_t no se fija en base al estándar. Para utilizar objetos string, incluya el archivo de encabezado <string>, la clase string no proporciona constructores que convierten de int o char a string. Asignación y concatenación de objetos string La clase string proporciona el operador operator=sobrecargado y la función miembro assign para asignaciones de objetos string. El operador subíndice ([]) proporciona acceso de lectura/escritura para cualquier elemento de un objeto string. La función miembro at de string proporciona acceso comprobado; al ir más allá de cualquiera de los extremos del objeto string se lanza una excepción out_of_range. El operador subíndice ([]) no proporciona acceso comprobado. La clase string proporciona a los operadores + y +- sobrecargados, y la función miembro append para realizar la concatenación de objetos string. Comparación de objetos string La clase string proporciona los operadores sobrecargados = =, ! =, < >, <= y >= para las comparaciones de objetos string. La función miembro compare de string compara dos objetos de string (o subcadenas) y devuelve 0 si los objetos string son iguales, un numero positivo si el primer objeto string es lexicográficamente mayor que el segundo, o un numero negativo si el primer objeto string es menor que el segundo. Subcadenas
  • 4. La función miembro substr de string obtiene una subcadena de un objeto string. Intercambio de objetos string La función miembro swap de string intercambia el contenido de dos objetos string. Características de los objetos string  Las funciones miembro size y length de string devuelven el tamaño o la longitud de un objeto string.  La función capacity devuelve el número total de caracteres que se pueden almacenar en el objeto string sin incrementar la cantidad de memoria asignada al mismo.  La función max_size devuelve el tamaño máximo que puede tener un objeto string.  La función resize modifica la longitud de un objeto string. Búsqueda de subcadenas y caracteres en un objeto string
  • 5. La funciones de búsqueda find rfind, find_first_of, find_last_of, y find_first_not_of localizan subcadenas o caracteres en un objeto string. Remplazo de caracteres en un objeto string La función erase elimina elementos de un objeto string. La función replace reemplaza los caracteres de un objeto string. Inserción de caracteres en un objeto string. La función insert inserta caracteres en un objeto string. Conversión a cadenas estilo C La función c_str devuelve un apuntador const*char que apunta a una cadena de caracteres estilo C que contiene todos los caracteres en un objeto string. La función data devuelve un apuntador const*char que apunta a un arreglo de caracteres estilo C sin terminación nula, que contiene todos los caracteres en un objeto string. Iteradores La clase string proporciona las funciones end y begin para iterar a través de elementos individuales. La clase string proporciona las funciones miembro rend y rbegin para acceder a los caracteres individuales de un objeto string en forma inversa, desde el final del objeto string, hasta el inicio.
  • 6. Procesamiento de flujos de cadena La entrada desde un objeto string esta soportada por la clase istringstream. La salida hacia un objeto string esta soportada por la clase ostringstream. La función str de ostringstream devuelve una copia string de un objeto string.
  • 7. MANEJO DE EXCEPCIONES Generalidades: El manejo de excepciones permite al programador eliminar el código de manejo de errores de la “línea principal” de ejecución del programa, lo cual mejora la claridad del programa y su capacidad de modificación. Ejemplo: manejo de un intento de dividir entre cero. La clase excepción es la base estándar de C++ para las excepciones. La clase excepción proporciona la función virtual what, que devuelve un mensaje de error apropiado y puede sobrescribirse en las clases derivadas. La clase runtime_error (definida en el encabezado <stdexcept) es la base estándar de C++ para representar los errores en tiempo de ejecución. C++ utiliza el modelo de terminación del manejo de excepciones. Un bloque try consiste en la palabra clave try, seguida de las llaves ({}) que definen un bloque de código en el que podrían ocurrir excepciones. El bloque try encierra instrucciones que podrían producir excepciones, e instrucciones que no deben ejecutarse si se producen excepciones. Por lo menos debe haber un manejo catch justo después de un bloque try. Cada manejador catch especifica un parámetro de excepción que representa el tipo de excepción que el manejador catch puede procesar.
  • 8. Si un parámetro de excepción incluye un nombre de parámetro opcional, el manejador catch puede usar ese nombre de parámetro para interactuar con un objeto excepción atrapado. El punto en el programa en el que ocurre una excepción se conoce como el punto de lanzamiento. Si ocurre una excepción en un bloque try, este bloque expira y el control del programa se transfiere al primer catch en el que coincida el tipo del parámetro para interactuar con un objeto excepción atrapado. Cuando un bloque try termina, las variables locales definidas en el bloque quedan fuera de alcance y cuando termina debido a una excepción, e programa busca el primer manejador catch que pueda procesar el tipo de excepción que ocurrió. Para localizar el catch que coincida, el programa compara el tipo de la excepción lanzada con el tipo del parámetro de excepción de cada catch hasta que el programa encuentra una coincidencia, esto ocurre si los tipos son idénticos, o si el tipo de la excepción lanzada es una clase derivada del tipo de parámetro de excepción. Cuando ocurre una coincidencia, se ejecuta el código contenido dentro del manejador catch que coincide. Cuando un manejador catch termina su procesamiento, el parámetro de catch y las variables locales definidas dentro del manejador quedan fuera de alcance, cualquier manejador catch restante que corresponda al bloque try se ignora, y la ejecución se reanuda en la primera línea del código después de la secuencia try…catch. Si no ocurren excepciones en un bloque try, el programa ignora el manejador catch para ese bloque. La ejecución del programa se reanuda con la siguiente instrucción después de la secuencia try…catch. Si una excepción que ocurre en un bloque try no tiene un manejador catch que coincida, o si ocurre una excepción en una instrucción que no esté en un bloque try, la función que contiene la instrucción termina de inmediato y el programa trata de localizar un bloque try circundante en la función que hizo la llamada. A este proceso se le conoce como limpieza de la pila. Para lanzar una excepción, use la palabra clave throw seguida de un operando que representa el tipo de excepción a lanzar, el operando de una instrucción throw puede ser de cualquier tipo.
  • 9. Cuando utilizar el manejo de excepciones. El manejo de excepciones es para errores sincrónicos, que ocurren cuando se ejecuta una instrucción, no está diseñado para procesar los errores asociados con los eventos asíncronos, que ocurren en el paralelo con el flujo de control del programa. Volver a lanzar una excepción. El manejador de excepciones puede diferri el manejo de una excepción a otro manejador de excepciones. En cualquier caso, para lograr esto el manejador vuelve a lanzar la excepción. Algunos ejemplos comunes de excepciones son los subíndices de arreglos fuera de rango, el desbordamiento aritmético, la división entre cero, los parámetros inválidos de funciones y las asignaciones de memoria fallidas.
  • 10. Especificación de excepciones: Una especificación de excepciones opcional enumera una lista de excepciones que una función puede lanzar. Una función solo puede lanzar excepciones de los tipos indicados por las especificaciones, o excepciones de cualquier tipo que se derive de estos tipos. Si una función lanza una excepción que no pertenezca a uno de los tipos especificados, se hace una llamada a la función unexpected y el programa termina. Una función sin especificación de excepciones puede lanzar cualquier excepción. La especificación de excepciones vacía throw () indica que una función no lanza excepciones. Si una función con una especificación de excepciones vacía intenta lanzar la excepción, se invoca la función unexpected. Procesamiento de las excepciones inesperadas: La función unexpected llama a la función registrada con la función set_terminate. Si no se ha registrado ninguna función de esta forma, se hace una llamada a la función terminate de manera predeterminada. La función set_terminate puede especificar la función a invocar cuando se hace la llamada terminate. En caso contrario, terminate llama a abort, la cual termina el programa sin llamar a los destructores de los objetos declarados como static y auto. Las funciones set_terminate y set_unexpected devuelven un apuntador a la última función llamada por terminate y unexpected, respectivamente, esto permite al programador guardar el apuntador de
  • 11. funciones, para poder restaurarlo más tarde, estas funciones reciben como argumentos apuntadores a funciones con tipos de valores de retorno void y sin argumentos. Si una función de terminación definida por el programador no sale de un programa, se hará una llamada a la unción abort después de que la función de terminación definida por el programador termine de ejecutarse. Limpieza de pila: Limpiar la pila de llamadas funciones significa que la función en la que la excepción no se atrapó termina, todas las variables locales en esa función se destruyen y el control regresa a la instrucción que invocó originalmente a esa función. Constructores, destructores y manejo de excepciones. Las excepciones lanzadas por un constructor hacen que se llame a los destructores de todos los objetos creados como parte del objeto que se esta construyendo, antes de que se lance la excepción, cada objeto automático construido en un bloque try se destruye antes de lanzar una excepción. La limpieza de la pila se completa antes de que un manejador de excepciones empiece a ejecutarse, si un destructor invocado como resultado de la limpieza de la pila lanza una excepción, se hace una llamada a terminate.
  • 12. Procesamiento de las fallas de new Cuando falla el operador new, lanza una excepción bad_alloc, definida en el archivo de encabezado <new>. Ejemplos de fallas new:  Caso en el que new devuelve 0 al fallar:  Caso en el que new lanza bad_alloc al fallar:  Manejo de las fallas de new mediante la función set_new_handler: Esta función recibe como argumento un apuntador a una función que no recibe argumentos y devuelve void, este aounta a la función que se llamará si new falla.
  • 13. Una vez que set_new_handler registra un manejador new en el programa, el operador no lanza bad_alloc en el futuro; en vez de ello, difiere el manejo de errores a la función manejadoras de new. Si new asigna memoria con éxito, devuelve un apuntador a esa memoria, si falla y no se registro ninguna función manejador a de new, new lanza una excepción bad_allo, si new falla al asignar memoria y se ha registrado una función manejadora de new, se hace una llamada a esta función. La función debe realizar las siguientes tareas: 1. Hacer mas memoria disponible al eliminar otra parte de la memoria asignada en forma dinámica y regresar al operador new para tratar de asignar memoria otra vez. 2. Lanzar una excepción de tipo bad_alloc. 3. Llamar a la función abort o exit para terminar el programa. La clase auto_ptr y la asignación dinámica de memoria Un objeto de clase auto_ptr mantiene un apuntador a la memoria que se asigna en forma dinámica. Cuando se hace una llamada al destructor de un objeto auto_ptr realiza una operación delete con su miembro de datos apuntador. Jerarquía de excepciones de la Biblioteca estándar.
  • 14. Referencias y bibliografía Como programar en C++ Harvey m. Deitel, Paul J. Deitel Pearson Educación, 1995-927 pages