SlideShare una empresa de Scribd logo
1 de 29
Uso de las
clases iostream
Clase 04
Uso de las clases iostream
• Ahora ya tiene suficientes conocimientos para crear y compilar un
programa. Este programa usará las clases de flujo de entrada-salida
(iostream) del C++ estándar.
• iostream es capaz de leer y escribir en ficheros o en la entrada y salida
estándar (que suele ser la consola, pero que puede ser redirigida a ficheros
o dispositivos). En este programa simple, se usa un objeto stream (flujo)
para imprimir un mensaje en pantalla
Uso de las clases iostream
• Para declarar las funciones y los datos externos que contenga la clase
iostream hay que incluir el fichero de cabecera de la siguiente manera:
Uso de las clases iostream
• El primer programa usa el concepto de salida estándar, que significa un
lugar de propósito general, al que se le pueden enviar cosas. Se verá otros
ejemplos que utilizan la salida estándar de otras formas, pero aquí
simplemente usaremos la consola.
• El paquete iostream define una variable (un objeto) llamado cout de forma
automática que es capaz de enviar todo tipo de datos a la salida estándar.
Uso de las clases iostream
• Para enviar datos a la salida estándar, se usa el operador. Los
programadores de C lo conocen como operador de “desplazamiento a la
izquierda”. Basta decir que el desplazamiento a la izquierda no tiene nada
que ver con la salida. Sin embargo, C++ permite que los operadores sean
sobrecargados.
• Cuando se sobrecarga un operador, se le da un nuevo significado siempre
que dicho operador se use con un objeto de determinado tipo. Con los
objetos de iostream, el operador << significa “enviar a”. Por ejemplo:
Uso de las clases iostream
envía la cadena “¿Qué tal?” al objeto llamado cout (que es un diminutivo
de “console output” (salida por consola).
Espacios de nombres
• Como se menciona, uno de los problemas del lenguaje C es que “nos quedamos sin
nombres” para funciones e identificadores cuando los programas llegan a ser de cierto
tamaño. Por supuesto que realmente no nos quedamos sin nombres; aunque se hace
más difícil pensar en nombres nuevos después de un rato. Y todavía más importante,
cuando un programa alcanza cierto tamaño es normal fragmentarlo en trozos más
pequeños cada uno de los cuales es mantenido por diferentes personas o grupos. Como
C sólo tiene un problema para lidiar con todos los identificadores y nombres de función,
trae como consecuencia que todos los desarrolladores deben tener cuidado de no usar
accidentalmente los mismos nombres en situaciones en las que pueden ponerse en
conflicto. Esto se convierte en una pérdida de tiempo, se hace tedioso y en último
término, es más caro.
Espacios de nombres
• El C++ Estándar tiene un mecanismo para impedir estas colisiones: la
palabra reservada namespace (espacio de nombres). Cada conjunto de
definiciones de una librería o programa se “envuelve” en un espacio de
nombres, y si otra definición tiene el mismo nombre, pero está en otro
espacio de nombres, entonces no se produce colisión.
Espacios de nombres
• Hay una palabra reservada que le permite decir “quiero usar las
declaraciones y/o definiciones de este espacio de nombres”. Esa palabra
reservada, bastante apropiada por cierto, es using. Todas las librerías de
C++ Estándar están incluidas en un único espacio de nombres, que es std
(por “standard”). Como este curso se usa la librería estándar casi
exclusivamente, se verá la siguiente directiva using en casi todos los
programas
Espacios de nombres
• Esto significa que quiere usar todos los elementos del espacio de nombres
llamado std. Después de esta sentencia, ya no hay que preocuparse de si
su componente o librería particular pertenece a un espacio de nombres,
porque la directiva using hace que el espacio de nombres esté disponible
para todo el fichero donde se escribió la directiva using.
Espacios de nombres
• Exponer todos los elementos de un espacio de nombres después de que
alguien se ha molestado en ocultarlos, parece contraproducente, y de
hecho, el estudiante deberá tener cuidado si considera hacerlo (como
aprenderá más tarde en este curso). Sin embargo, la directiva using expone
solamente los nombres para el fichero actual, por lo que no es tan drástico
como suena al principio. (pero piénsalo dos veces antes de usarlo en un
fichero cabecera, eso es temerario).
Espacios de nombres
• Existe una relación entre los espacios de nombres y el modo en que se
incluyes los ficheros de cabecera. Antes de que se estandarizara la nueva
forma de inclusión de los ficheros cabecera (sin el “.h” como en
<iostream>), la manera típica de incluir un fichero de cabecera era con el
“.h” como en <iostream.h>. En esa época los espacios de nombres
tampoco eran parte del lenguaje, por lo que para mantener una
compatibilidad hacia atrás con el código existente, si se escribía:
Espacios de nombres
• En realidad, significaba:
Fundamentos de la estructura de los
programa
• Un programa C o C++ es una colección de variables, definiciones de
función, y llamada a funciones. Cuando el programa arranca, ejecuta el
código de inicialización y llama a una función especial, “main()”, que es
donde debe colocarse el código principal del programa.
• Como se mencionó anteriormente, una definición de función consiste en un
valor de retorno (que debe ser especificarse obligatoriamente C++), un
nombre de función, una lista de argumentos, y el código de la función entre
llaves. Aquí hay un ejemplo de definición de función:
Fundamentos de la estructura de los
programa
La función de arriba tiene una lista vacía de argumentos y un cuerpo que contiene únicamente un
comentario.
Puede haber varios pares de llaves en la definición de una función, pero siempre debe haber al menos
dos que envuelvan todo el cuerpo de la función. Como main( ) es una función, debe seguir esas reglas.
En C++, main( ) siempre devuelve un valor de tipo int (entero).
Fundamentos de la estructura de los
programa
• C y C++ son lenguajes de formato libre. Con un par de excepciones, el
compilador ignora los espacios en blanco y los saltos de línea, por lo que hay
que determinar el final de una sentencia. Las sentencias están delimitadas por
punto y coma.
• Los comentarios en C empiezan con /* y finalizan con */. Pueden incluir saltos
de línea. C++ permite este estilo de comentarios y añade la doble barra
inclinada:
• //. La // empieza un comentario que finaliza con el salto de línea. Es más útil
que /* */ y se usa ampliamente en este curso.
“Hello,World!”
• Y por fin, el primer programa:
“Hello,World!”
• Y por fin, el primer programa:
“Hello,World!”
• El objeto cout maneja una serie de argumentos por medio de los operadores
<<, que imprime los argumentos de izquierda a derecha. La función especial
endl provoca un salto de línea. Con los iostreams se puede encadenar una serie
de argumentos como aquí, lo que hace que se una clase fácil de usar.
• En C, el texto que se encuentra entre comillas dobles se denomina “cadena”
(string). Sin embargo, la librería Estándar de C++ tiene una poderosa clase
llamada string para manipulación de texto, por lo que usaremos el término más
preciso array de caracteres para el texto que se encuentre entre dobles
comillas
“Hello,World!”
• El compilador pide espacio de memoria para los arrays de caracteres y guarda el
equivalente ASCII para cada carácter en este espacio. El compilador finaliza
automáticamente este array de caracteres añadiendo el valor 0 para indicar el final.
• Dentro del array de caracteres, se pueden insertar caracteres especiales usando las
secuencias de escape. Consisten en una barra invertida () seguida de un código
especial. por ejemplo n significa salto de línea. El manual del compilador o la guía
concreta de C ofrece una lista completa de secuencia; entre otras se incluye: t
(tabulador),  (barra invertida), y b (retroceso).
• Tenga en cuenta que la sentencia puede continuar en otras líneas, y la sentencia
completa termina con un punto y coma.
“Hello,World!”
• Los argumentos de tipo array de caracteres y los números constantes están
mezclados en la sentencia cout anterior. Como el operador << está
sobrecargado con varios significados cuando se usa con cout, se pueden
enviar distintos argumentos y cout se encargará de mostrarlos
Más sobre iostreams
• Hasta ahora sólo ha visto los aspectos más rudimentarios de las clases
iostream.
• El formato de salida que permiten los iostreams también incluyen
características como el formato de números en decimal, octal, y
hexadecimal. Aquí tiene otro ejemplo del uso de los iostreams
Más sobre iostreams
Más sobre iostreams
Más sobre iostreams
• Este ejemplo muestra cómo la clase iostreams imprime números en
decimal, octal, y hexadecimal usando manipuladores (los cuales no
imprimen nada, pero cambian el estado del flujo de salida). El formato de
los números en punto flotante lo determina automáticamente el
compilador. Además, cualquier se puede enviar cualquier caracter a un
objeto stream usando un molde (cast) a char (un char es un tipo de datos
que manipula un sólo caracter). Este molde parece una llamada a función:
char( ), devuelve un valor ASCII. En el programa de arriba, el char(27) envía
un ¨escape¨ a cout.
Concatenar vectores de caracteres
• Una característica importante del preprocesador de C es la concatenación
de arrays de caracteres. Esta característica se usa en algunos de los
ejemplos de este curso. Si se colocan juntos dos arrays de caracteres
entrecomillados, sin signos de puntuación entre ellos, el compilador los
pegará en un único array de caracteres. Esto es particularmente útil cuando
los listados de código tienen restricciones de anchura.
Concatenar vectores de caracteres
Concatenar vectores de caracteres
Concatenar vectores de caracteres
• Al principio, el código de arriba puede parecer erróneo porque no está el ya
familiar punto y coma al final de cada línea. Recuerde que C y C++ son
lenguajes de formato libre, y aunque normalmente verá un punto y coma al
final de cada línea, el requisito real es que haya un punto y coma al final de
cada sentencia, por lo que es posible encontrar una sentencia que ocupe
varias líneas

Más contenido relacionado

La actualidad más candente

Pseint Leer Y Escribir
Pseint Leer Y EscribirPseint Leer Y Escribir
Pseint Leer Y EscribirMonjeOneble
 
Java interfaces & abstract classes
Java interfaces & abstract classesJava interfaces & abstract classes
Java interfaces & abstract classesShreyans Pathak
 
Librerias Básicas y sus Funciones Lenguaje de Programación C
Librerias Básicas y sus Funciones Lenguaje de Programación CLibrerias Básicas y sus Funciones Lenguaje de Programación C
Librerias Básicas y sus Funciones Lenguaje de Programación CCristian Maza
 
Arreglos en c ++
Arreglos en c ++Arreglos en c ++
Arreglos en c ++tacubomx
 
Variables de-programación
Variables de-programaciónVariables de-programación
Variables de-programaciónKarenNaranjoH
 
Storage classes in c language
Storage classes in c languageStorage classes in c language
Storage classes in c languagetanmaymodi4
 
Procedimientos almacenados en Postgres
Procedimientos almacenados en PostgresProcedimientos almacenados en Postgres
Procedimientos almacenados en PostgresVíctor Mejía
 
Programación Orientada a Objetos - atributos y métodos
Programación Orientada a Objetos - atributos y métodosProgramación Orientada a Objetos - atributos y métodos
Programación Orientada a Objetos - atributos y métodosAlvaro Enrique Ruano
 
Constructores en Java
Constructores en JavaConstructores en Java
Constructores en JavaUCE
 
Guia de estructuras Condicionales
Guia de estructuras CondicionalesGuia de estructuras Condicionales
Guia de estructuras Condicionaleslaryenso
 

La actualidad más candente (20)

Pseint Leer Y Escribir
Pseint Leer Y EscribirPseint Leer Y Escribir
Pseint Leer Y Escribir
 
What is c
What is cWhat is c
What is c
 
Java interfaces & abstract classes
Java interfaces & abstract classesJava interfaces & abstract classes
Java interfaces & abstract classes
 
C++ y sus librerias
C++ y sus libreriasC++ y sus librerias
C++ y sus librerias
 
Funcion printf
Funcion printfFuncion printf
Funcion printf
 
Librerias Básicas y sus Funciones Lenguaje de Programación C
Librerias Básicas y sus Funciones Lenguaje de Programación CLibrerias Básicas y sus Funciones Lenguaje de Programación C
Librerias Básicas y sus Funciones Lenguaje de Programación C
 
Arreglos en c ++
Arreglos en c ++Arreglos en c ++
Arreglos en c ++
 
Variables de-programación
Variables de-programaciónVariables de-programación
Variables de-programación
 
Front end y Back-end
Front end y Back-end Front end y Back-end
Front end y Back-end
 
Storage classes in c language
Storage classes in c languageStorage classes in c language
Storage classes in c language
 
Procedimientos almacenados en Postgres
Procedimientos almacenados en PostgresProcedimientos almacenados en Postgres
Procedimientos almacenados en Postgres
 
Casos de estudio para diagramas de clases
Casos de estudio para diagramas de clasesCasos de estudio para diagramas de clases
Casos de estudio para diagramas de clases
 
A tutorial on C++ Programming
A tutorial on C++ ProgrammingA tutorial on C++ Programming
A tutorial on C++ Programming
 
Programación Orientada a Objetos - atributos y métodos
Programación Orientada a Objetos - atributos y métodosProgramación Orientada a Objetos - atributos y métodos
Programación Orientada a Objetos - atributos y métodos
 
Programar Función f(x) en C++
Programar Función f(x) en C++Programar Función f(x) en C++
Programar Función f(x) en C++
 
Clase4 poo-uml
Clase4 poo-umlClase4 poo-uml
Clase4 poo-uml
 
Abstract class in java
Abstract class in javaAbstract class in java
Abstract class in java
 
C# basics
 C# basics C# basics
C# basics
 
Constructores en Java
Constructores en JavaConstructores en Java
Constructores en Java
 
Guia de estructuras Condicionales
Guia de estructuras CondicionalesGuia de estructuras Condicionales
Guia de estructuras Condicionales
 

Destacado

Clase 03
Clase 03Clase 03
Clase 03Tensor
 
Practica 1
Practica 1Practica 1
Practica 1Tensor
 
Elementos basicos c++
Elementos basicos c++Elementos basicos c++
Elementos basicos c++Tensor
 
Clase 01
Clase 01Clase 01
Clase 01Tensor
 
Complementos
ComplementosComplementos
ComplementosTensor
 
Historia de la programacion
Historia de la programacionHistoria de la programacion
Historia de la programacionTensor
 
Fundamentos y Lógica de Programación
Fundamentos y Lógica de ProgramaciónFundamentos y Lógica de Programación
Fundamentos y Lógica de ProgramaciónTensor
 
Simulación ok
Simulación okSimulación ok
Simulación okTensor
 
Pseudocodigo
PseudocodigoPseudocodigo
PseudocodigoTensor
 

Destacado (9)

Clase 03
Clase 03Clase 03
Clase 03
 
Practica 1
Practica 1Practica 1
Practica 1
 
Elementos basicos c++
Elementos basicos c++Elementos basicos c++
Elementos basicos c++
 
Clase 01
Clase 01Clase 01
Clase 01
 
Complementos
ComplementosComplementos
Complementos
 
Historia de la programacion
Historia de la programacionHistoria de la programacion
Historia de la programacion
 
Fundamentos y Lógica de Programación
Fundamentos y Lógica de ProgramaciónFundamentos y Lógica de Programación
Fundamentos y Lógica de Programación
 
Simulación ok
Simulación okSimulación ok
Simulación ok
 
Pseudocodigo
PseudocodigoPseudocodigo
Pseudocodigo
 

Similar a Uso de las clases iostream

Bibliotecas o librerias_para_c_
Bibliotecas o librerias_para_c_Bibliotecas o librerias_para_c_
Bibliotecas o librerias_para_c_Oziel Solis Juarez
 
Bibliotecas o libreria de c++
Bibliotecas o libreria de c++Bibliotecas o libreria de c++
Bibliotecas o libreria de c++Idalia Tristan
 
bibliotecasolibreriasenc-170322144450-1.pdf
bibliotecasolibreriasenc-170322144450-1.pdfbibliotecasolibreriasenc-170322144450-1.pdf
bibliotecasolibreriasenc-170322144450-1.pdfssuser948499
 
Bibliotecas de C
Bibliotecas de CBibliotecas de C
Bibliotecas de CLorenaCMtz
 
Bibliotecas que existen_para_c++
Bibliotecas que existen_para_c++Bibliotecas que existen_para_c++
Bibliotecas que existen_para_c++andreadelacruz002
 
Bibliotecas que existen_para_c++_ (2)
Bibliotecas que existen_para_c++_ (2)Bibliotecas que existen_para_c++_ (2)
Bibliotecas que existen_para_c++_ (2)andreadelacruz002
 
Material de apoyo: Componentes y tipos de Datos PDF
 Material de apoyo: Componentes y tipos de Datos PDF Material de apoyo: Componentes y tipos de Datos PDF
Material de apoyo: Componentes y tipos de Datos PDFLeider Sanchez
 
BIBLIOTECAS QUE EXITEN PARA C++
BIBLIOTECAS QUE EXITEN PARA C++BIBLIOTECAS QUE EXITEN PARA C++
BIBLIOTECAS QUE EXITEN PARA C++JazminIbarra1106
 
Centro de estudios_tecnologicos_industrial_y_de_servicios
Centro de estudios_tecnologicos_industrial_y_de_serviciosCentro de estudios_tecnologicos_industrial_y_de_servicios
Centro de estudios_tecnologicos_industrial_y_de_serviciosandreadelacruz002
 
Centro de estudios_tecnologicos_industrial_y_de_servicios
Centro de estudios_tecnologicos_industrial_y_de_serviciosCentro de estudios_tecnologicos_industrial_y_de_servicios
Centro de estudios_tecnologicos_industrial_y_de_serviciosMaztherprozh
 
Primera Clase
Primera ClasePrimera Clase
Primera Clasemandres
 
Lenguajesdeprogramacion c nivel1-unidad1-01-componentes y tipos de datos_1
Lenguajesdeprogramacion c nivel1-unidad1-01-componentes y tipos de datos_1Lenguajesdeprogramacion c nivel1-unidad1-01-componentes y tipos de datos_1
Lenguajesdeprogramacion c nivel1-unidad1-01-componentes y tipos de datos_1Nilson Payares
 
Estructura basica para_c_
Estructura basica para_c_Estructura basica para_c_
Estructura basica para_c_Jesus22barrera
 
Presentacion de la Estructura basica para_c++
Presentacion de la Estructura basica para_c++Presentacion de la Estructura basica para_c++
Presentacion de la Estructura basica para_c++ValeriaBerrones
 
Elementos básicos del lenguaje
Elementos básicos del lenguajeElementos básicos del lenguaje
Elementos básicos del lenguajemarbcm
 

Similar a Uso de las clases iostream (20)

Bibliotecas o librerias_para_c_
Bibliotecas o librerias_para_c_Bibliotecas o librerias_para_c_
Bibliotecas o librerias_para_c_
 
BIBLIOTECAS PARA C++
BIBLIOTECAS PARA C++BIBLIOTECAS PARA C++
BIBLIOTECAS PARA C++
 
Bibliotecas o libreria de c++
Bibliotecas o libreria de c++Bibliotecas o libreria de c++
Bibliotecas o libreria de c++
 
bibliotecasolibreriasenc-170322144450-1.pdf
bibliotecasolibreriasenc-170322144450-1.pdfbibliotecasolibreriasenc-170322144450-1.pdf
bibliotecasolibreriasenc-170322144450-1.pdf
 
Bibliotecas de-c
Bibliotecas de-cBibliotecas de-c
Bibliotecas de-c
 
librerias.pptx
librerias.pptxlibrerias.pptx
librerias.pptx
 
Bibliotecas de c_
Bibliotecas de c_Bibliotecas de c_
Bibliotecas de c_
 
Bibliotecas de C
Bibliotecas de CBibliotecas de C
Bibliotecas de C
 
Bibliotecas que existen_para_c++
Bibliotecas que existen_para_c++Bibliotecas que existen_para_c++
Bibliotecas que existen_para_c++
 
Bibliotecas que existen_para_c++_ (2)
Bibliotecas que existen_para_c++_ (2)Bibliotecas que existen_para_c++_ (2)
Bibliotecas que existen_para_c++_ (2)
 
Material de apoyo: Componentes y tipos de Datos PDF
 Material de apoyo: Componentes y tipos de Datos PDF Material de apoyo: Componentes y tipos de Datos PDF
Material de apoyo: Componentes y tipos de Datos PDF
 
BIBLIOTECAS QUE EXITEN PARA C++
BIBLIOTECAS QUE EXITEN PARA C++BIBLIOTECAS QUE EXITEN PARA C++
BIBLIOTECAS QUE EXITEN PARA C++
 
Lenguaje
LenguajeLenguaje
Lenguaje
 
Centro de estudios_tecnologicos_industrial_y_de_servicios
Centro de estudios_tecnologicos_industrial_y_de_serviciosCentro de estudios_tecnologicos_industrial_y_de_servicios
Centro de estudios_tecnologicos_industrial_y_de_servicios
 
Centro de estudios_tecnologicos_industrial_y_de_servicios
Centro de estudios_tecnologicos_industrial_y_de_serviciosCentro de estudios_tecnologicos_industrial_y_de_servicios
Centro de estudios_tecnologicos_industrial_y_de_servicios
 
Primera Clase
Primera ClasePrimera Clase
Primera Clase
 
Lenguajesdeprogramacion c nivel1-unidad1-01-componentes y tipos de datos_1
Lenguajesdeprogramacion c nivel1-unidad1-01-componentes y tipos de datos_1Lenguajesdeprogramacion c nivel1-unidad1-01-componentes y tipos de datos_1
Lenguajesdeprogramacion c nivel1-unidad1-01-componentes y tipos de datos_1
 
Estructura basica para_c_
Estructura basica para_c_Estructura basica para_c_
Estructura basica para_c_
 
Presentacion de la Estructura basica para_c++
Presentacion de la Estructura basica para_c++Presentacion de la Estructura basica para_c++
Presentacion de la Estructura basica para_c++
 
Elementos básicos del lenguaje
Elementos básicos del lenguajeElementos básicos del lenguaje
Elementos básicos del lenguaje
 

Más de Tensor

Libertad
LibertadLibertad
LibertadTensor
 
Método de la regla falsa (o metodo de la falsa posición)
Método de la regla falsa (o metodo de la falsa posición)Método de la regla falsa (o metodo de la falsa posición)
Método de la regla falsa (o metodo de la falsa posición)Tensor
 
Metodo de la bisección
Metodo de la bisecciónMetodo de la bisección
Metodo de la bisecciónTensor
 
Transito vehicular
Transito vehicularTransito vehicular
Transito vehicularTensor
 
Teoria de colas
Teoria de colasTeoria de colas
Teoria de colasTensor
 
Practica 7 2016
Practica 7 2016Practica 7 2016
Practica 7 2016Tensor
 
Practica 6 2016
Practica 6 2016Practica 6 2016
Practica 6 2016Tensor
 
Game maker
Game makerGame maker
Game makerTensor
 
Practica 5 2016
Practica 5 2016Practica 5 2016
Practica 5 2016Tensor
 
Procesamiento de archivos
Procesamiento de archivosProcesamiento de archivos
Procesamiento de archivosTensor
 
Cadenas y funciones de cadena
Cadenas y funciones de cadenaCadenas y funciones de cadena
Cadenas y funciones de cadenaTensor
 
Simulación en promodel clase 04
Simulación en promodel clase 04Simulación en promodel clase 04
Simulación en promodel clase 04Tensor
 
Reduccion de orden
Reduccion de ordenReduccion de orden
Reduccion de ordenTensor
 
Variación+de+parametros
Variación+de+parametrosVariación+de+parametros
Variación+de+parametrosTensor
 
Coeficientes indeterminados enfoque de superposición
Coeficientes indeterminados   enfoque de superposiciónCoeficientes indeterminados   enfoque de superposición
Coeficientes indeterminados enfoque de superposiciónTensor
 
Bernoulli y ricatti
Bernoulli y ricattiBernoulli y ricatti
Bernoulli y ricattiTensor
 
Practica no. 3 tiempo de servicio
Practica no. 3 tiempo de servicioPractica no. 3 tiempo de servicio
Practica no. 3 tiempo de servicioTensor
 
Clase 14 ondas reflejadas
Clase 14 ondas reflejadasClase 14 ondas reflejadas
Clase 14 ondas reflejadasTensor
 
Ondas em
Ondas emOndas em
Ondas emTensor
 
Clase 7 ondas electromagneticas
Clase 7 ondas electromagneticasClase 7 ondas electromagneticas
Clase 7 ondas electromagneticasTensor
 

Más de Tensor (20)

Libertad
LibertadLibertad
Libertad
 
Método de la regla falsa (o metodo de la falsa posición)
Método de la regla falsa (o metodo de la falsa posición)Método de la regla falsa (o metodo de la falsa posición)
Método de la regla falsa (o metodo de la falsa posición)
 
Metodo de la bisección
Metodo de la bisecciónMetodo de la bisección
Metodo de la bisección
 
Transito vehicular
Transito vehicularTransito vehicular
Transito vehicular
 
Teoria de colas
Teoria de colasTeoria de colas
Teoria de colas
 
Practica 7 2016
Practica 7 2016Practica 7 2016
Practica 7 2016
 
Practica 6 2016
Practica 6 2016Practica 6 2016
Practica 6 2016
 
Game maker
Game makerGame maker
Game maker
 
Practica 5 2016
Practica 5 2016Practica 5 2016
Practica 5 2016
 
Procesamiento de archivos
Procesamiento de archivosProcesamiento de archivos
Procesamiento de archivos
 
Cadenas y funciones de cadena
Cadenas y funciones de cadenaCadenas y funciones de cadena
Cadenas y funciones de cadena
 
Simulación en promodel clase 04
Simulación en promodel clase 04Simulación en promodel clase 04
Simulación en promodel clase 04
 
Reduccion de orden
Reduccion de ordenReduccion de orden
Reduccion de orden
 
Variación+de+parametros
Variación+de+parametrosVariación+de+parametros
Variación+de+parametros
 
Coeficientes indeterminados enfoque de superposición
Coeficientes indeterminados   enfoque de superposiciónCoeficientes indeterminados   enfoque de superposición
Coeficientes indeterminados enfoque de superposición
 
Bernoulli y ricatti
Bernoulli y ricattiBernoulli y ricatti
Bernoulli y ricatti
 
Practica no. 3 tiempo de servicio
Practica no. 3 tiempo de servicioPractica no. 3 tiempo de servicio
Practica no. 3 tiempo de servicio
 
Clase 14 ondas reflejadas
Clase 14 ondas reflejadasClase 14 ondas reflejadas
Clase 14 ondas reflejadas
 
Ondas em
Ondas emOndas em
Ondas em
 
Clase 7 ondas electromagneticas
Clase 7 ondas electromagneticasClase 7 ondas electromagneticas
Clase 7 ondas electromagneticas
 

Último

PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptxPPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptxOscarEduardoSanchezC
 
codigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karinacodigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karinavergarakarina022
 
Heinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoHeinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoFundación YOD YOD
 
CULTURA NAZCA, presentación en aula para compartir
CULTURA NAZCA, presentación en aula para compartirCULTURA NAZCA, presentación en aula para compartir
CULTURA NAZCA, presentación en aula para compartirPaddySydney1
 
FICHA DE MONITOREO Y ACOMPAÑAMIENTO 2024 MINEDU
FICHA DE MONITOREO Y ACOMPAÑAMIENTO  2024 MINEDUFICHA DE MONITOREO Y ACOMPAÑAMIENTO  2024 MINEDU
FICHA DE MONITOREO Y ACOMPAÑAMIENTO 2024 MINEDUgustavorojas179704
 
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzel CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzprofefilete
 
Procesos Didácticos en Educación Inicial .pptx
Procesos Didácticos en Educación Inicial .pptxProcesos Didácticos en Educación Inicial .pptx
Procesos Didácticos en Educación Inicial .pptxMapyMerma1
 
La Función tecnológica del tutor.pptx
La  Función  tecnológica  del tutor.pptxLa  Función  tecnológica  del tutor.pptx
La Función tecnológica del tutor.pptxJunkotantik
 
Identificación de componentes Hardware del PC
Identificación de componentes Hardware del PCIdentificación de componentes Hardware del PC
Identificación de componentes Hardware del PCCesarFernandez937857
 
RETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxRETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxAna Fernandez
 
Movimientos Precursores de La Independencia en Venezuela
Movimientos Precursores de La Independencia en VenezuelaMovimientos Precursores de La Independencia en Venezuela
Movimientos Precursores de La Independencia en Venezuelacocuyelquemao
 
Plan Año Escolar Año Escolar 2023-2024. MPPE
Plan Año Escolar Año Escolar 2023-2024. MPPEPlan Año Escolar Año Escolar 2023-2024. MPPE
Plan Año Escolar Año Escolar 2023-2024. MPPELaura Chacón
 
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxOLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxjosetrinidadchavez
 
Fundamentos y Principios de Psicopedagogía..pdf
Fundamentos y Principios de Psicopedagogía..pdfFundamentos y Principios de Psicopedagogía..pdf
Fundamentos y Principios de Psicopedagogía..pdfsamyarrocha1
 

Último (20)

La Trampa De La Felicidad. Russ-Harris.pdf
La Trampa De La Felicidad. Russ-Harris.pdfLa Trampa De La Felicidad. Russ-Harris.pdf
La Trampa De La Felicidad. Russ-Harris.pdf
 
Defendamos la verdad. La defensa es importante.
Defendamos la verdad. La defensa es importante.Defendamos la verdad. La defensa es importante.
Defendamos la verdad. La defensa es importante.
 
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptxPPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
 
codigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karinacodigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karina
 
Heinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoHeinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativo
 
Sesión de clase: Defendamos la verdad.pdf
Sesión de clase: Defendamos la verdad.pdfSesión de clase: Defendamos la verdad.pdf
Sesión de clase: Defendamos la verdad.pdf
 
CULTURA NAZCA, presentación en aula para compartir
CULTURA NAZCA, presentación en aula para compartirCULTURA NAZCA, presentación en aula para compartir
CULTURA NAZCA, presentación en aula para compartir
 
FICHA DE MONITOREO Y ACOMPAÑAMIENTO 2024 MINEDU
FICHA DE MONITOREO Y ACOMPAÑAMIENTO  2024 MINEDUFICHA DE MONITOREO Y ACOMPAÑAMIENTO  2024 MINEDU
FICHA DE MONITOREO Y ACOMPAÑAMIENTO 2024 MINEDU
 
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzel CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
 
Procesos Didácticos en Educación Inicial .pptx
Procesos Didácticos en Educación Inicial .pptxProcesos Didácticos en Educación Inicial .pptx
Procesos Didácticos en Educación Inicial .pptx
 
Repaso Pruebas CRECE PR 2024. Ciencia General
Repaso Pruebas CRECE PR 2024. Ciencia GeneralRepaso Pruebas CRECE PR 2024. Ciencia General
Repaso Pruebas CRECE PR 2024. Ciencia General
 
La Función tecnológica del tutor.pptx
La  Función  tecnológica  del tutor.pptxLa  Función  tecnológica  del tutor.pptx
La Función tecnológica del tutor.pptx
 
Identificación de componentes Hardware del PC
Identificación de componentes Hardware del PCIdentificación de componentes Hardware del PC
Identificación de componentes Hardware del PC
 
RETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxRETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docx
 
Movimientos Precursores de La Independencia en Venezuela
Movimientos Precursores de La Independencia en VenezuelaMovimientos Precursores de La Independencia en Venezuela
Movimientos Precursores de La Independencia en Venezuela
 
Plan Año Escolar Año Escolar 2023-2024. MPPE
Plan Año Escolar Año Escolar 2023-2024. MPPEPlan Año Escolar Año Escolar 2023-2024. MPPE
Plan Año Escolar Año Escolar 2023-2024. MPPE
 
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxOLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
 
Earth Day Everyday 2024 54th anniversary
Earth Day Everyday 2024 54th anniversaryEarth Day Everyday 2024 54th anniversary
Earth Day Everyday 2024 54th anniversary
 
Fundamentos y Principios de Psicopedagogía..pdf
Fundamentos y Principios de Psicopedagogía..pdfFundamentos y Principios de Psicopedagogía..pdf
Fundamentos y Principios de Psicopedagogía..pdf
 
Unidad 3 | Teorías de la Comunicación | MCDI
Unidad 3 | Teorías de la Comunicación | MCDIUnidad 3 | Teorías de la Comunicación | MCDI
Unidad 3 | Teorías de la Comunicación | MCDI
 

Uso de las clases iostream

  • 1. Uso de las clases iostream Clase 04
  • 2. Uso de las clases iostream • Ahora ya tiene suficientes conocimientos para crear y compilar un programa. Este programa usará las clases de flujo de entrada-salida (iostream) del C++ estándar. • iostream es capaz de leer y escribir en ficheros o en la entrada y salida estándar (que suele ser la consola, pero que puede ser redirigida a ficheros o dispositivos). En este programa simple, se usa un objeto stream (flujo) para imprimir un mensaje en pantalla
  • 3. Uso de las clases iostream • Para declarar las funciones y los datos externos que contenga la clase iostream hay que incluir el fichero de cabecera de la siguiente manera:
  • 4. Uso de las clases iostream • El primer programa usa el concepto de salida estándar, que significa un lugar de propósito general, al que se le pueden enviar cosas. Se verá otros ejemplos que utilizan la salida estándar de otras formas, pero aquí simplemente usaremos la consola. • El paquete iostream define una variable (un objeto) llamado cout de forma automática que es capaz de enviar todo tipo de datos a la salida estándar.
  • 5. Uso de las clases iostream • Para enviar datos a la salida estándar, se usa el operador. Los programadores de C lo conocen como operador de “desplazamiento a la izquierda”. Basta decir que el desplazamiento a la izquierda no tiene nada que ver con la salida. Sin embargo, C++ permite que los operadores sean sobrecargados. • Cuando se sobrecarga un operador, se le da un nuevo significado siempre que dicho operador se use con un objeto de determinado tipo. Con los objetos de iostream, el operador << significa “enviar a”. Por ejemplo:
  • 6. Uso de las clases iostream envía la cadena “¿Qué tal?” al objeto llamado cout (que es un diminutivo de “console output” (salida por consola).
  • 7. Espacios de nombres • Como se menciona, uno de los problemas del lenguaje C es que “nos quedamos sin nombres” para funciones e identificadores cuando los programas llegan a ser de cierto tamaño. Por supuesto que realmente no nos quedamos sin nombres; aunque se hace más difícil pensar en nombres nuevos después de un rato. Y todavía más importante, cuando un programa alcanza cierto tamaño es normal fragmentarlo en trozos más pequeños cada uno de los cuales es mantenido por diferentes personas o grupos. Como C sólo tiene un problema para lidiar con todos los identificadores y nombres de función, trae como consecuencia que todos los desarrolladores deben tener cuidado de no usar accidentalmente los mismos nombres en situaciones en las que pueden ponerse en conflicto. Esto se convierte en una pérdida de tiempo, se hace tedioso y en último término, es más caro.
  • 8. Espacios de nombres • El C++ Estándar tiene un mecanismo para impedir estas colisiones: la palabra reservada namespace (espacio de nombres). Cada conjunto de definiciones de una librería o programa se “envuelve” en un espacio de nombres, y si otra definición tiene el mismo nombre, pero está en otro espacio de nombres, entonces no se produce colisión.
  • 9. Espacios de nombres • Hay una palabra reservada que le permite decir “quiero usar las declaraciones y/o definiciones de este espacio de nombres”. Esa palabra reservada, bastante apropiada por cierto, es using. Todas las librerías de C++ Estándar están incluidas en un único espacio de nombres, que es std (por “standard”). Como este curso se usa la librería estándar casi exclusivamente, se verá la siguiente directiva using en casi todos los programas
  • 10. Espacios de nombres • Esto significa que quiere usar todos los elementos del espacio de nombres llamado std. Después de esta sentencia, ya no hay que preocuparse de si su componente o librería particular pertenece a un espacio de nombres, porque la directiva using hace que el espacio de nombres esté disponible para todo el fichero donde se escribió la directiva using.
  • 11. Espacios de nombres • Exponer todos los elementos de un espacio de nombres después de que alguien se ha molestado en ocultarlos, parece contraproducente, y de hecho, el estudiante deberá tener cuidado si considera hacerlo (como aprenderá más tarde en este curso). Sin embargo, la directiva using expone solamente los nombres para el fichero actual, por lo que no es tan drástico como suena al principio. (pero piénsalo dos veces antes de usarlo en un fichero cabecera, eso es temerario).
  • 12. Espacios de nombres • Existe una relación entre los espacios de nombres y el modo en que se incluyes los ficheros de cabecera. Antes de que se estandarizara la nueva forma de inclusión de los ficheros cabecera (sin el “.h” como en <iostream>), la manera típica de incluir un fichero de cabecera era con el “.h” como en <iostream.h>. En esa época los espacios de nombres tampoco eran parte del lenguaje, por lo que para mantener una compatibilidad hacia atrás con el código existente, si se escribía:
  • 13. Espacios de nombres • En realidad, significaba:
  • 14. Fundamentos de la estructura de los programa • Un programa C o C++ es una colección de variables, definiciones de función, y llamada a funciones. Cuando el programa arranca, ejecuta el código de inicialización y llama a una función especial, “main()”, que es donde debe colocarse el código principal del programa. • Como se mencionó anteriormente, una definición de función consiste en un valor de retorno (que debe ser especificarse obligatoriamente C++), un nombre de función, una lista de argumentos, y el código de la función entre llaves. Aquí hay un ejemplo de definición de función:
  • 15. Fundamentos de la estructura de los programa La función de arriba tiene una lista vacía de argumentos y un cuerpo que contiene únicamente un comentario. Puede haber varios pares de llaves en la definición de una función, pero siempre debe haber al menos dos que envuelvan todo el cuerpo de la función. Como main( ) es una función, debe seguir esas reglas. En C++, main( ) siempre devuelve un valor de tipo int (entero).
  • 16. Fundamentos de la estructura de los programa • C y C++ son lenguajes de formato libre. Con un par de excepciones, el compilador ignora los espacios en blanco y los saltos de línea, por lo que hay que determinar el final de una sentencia. Las sentencias están delimitadas por punto y coma. • Los comentarios en C empiezan con /* y finalizan con */. Pueden incluir saltos de línea. C++ permite este estilo de comentarios y añade la doble barra inclinada: • //. La // empieza un comentario que finaliza con el salto de línea. Es más útil que /* */ y se usa ampliamente en este curso.
  • 17. “Hello,World!” • Y por fin, el primer programa:
  • 18. “Hello,World!” • Y por fin, el primer programa:
  • 19. “Hello,World!” • El objeto cout maneja una serie de argumentos por medio de los operadores <<, que imprime los argumentos de izquierda a derecha. La función especial endl provoca un salto de línea. Con los iostreams se puede encadenar una serie de argumentos como aquí, lo que hace que se una clase fácil de usar. • En C, el texto que se encuentra entre comillas dobles se denomina “cadena” (string). Sin embargo, la librería Estándar de C++ tiene una poderosa clase llamada string para manipulación de texto, por lo que usaremos el término más preciso array de caracteres para el texto que se encuentre entre dobles comillas
  • 20. “Hello,World!” • El compilador pide espacio de memoria para los arrays de caracteres y guarda el equivalente ASCII para cada carácter en este espacio. El compilador finaliza automáticamente este array de caracteres añadiendo el valor 0 para indicar el final. • Dentro del array de caracteres, se pueden insertar caracteres especiales usando las secuencias de escape. Consisten en una barra invertida () seguida de un código especial. por ejemplo n significa salto de línea. El manual del compilador o la guía concreta de C ofrece una lista completa de secuencia; entre otras se incluye: t (tabulador), (barra invertida), y b (retroceso). • Tenga en cuenta que la sentencia puede continuar en otras líneas, y la sentencia completa termina con un punto y coma.
  • 21. “Hello,World!” • Los argumentos de tipo array de caracteres y los números constantes están mezclados en la sentencia cout anterior. Como el operador << está sobrecargado con varios significados cuando se usa con cout, se pueden enviar distintos argumentos y cout se encargará de mostrarlos
  • 22. Más sobre iostreams • Hasta ahora sólo ha visto los aspectos más rudimentarios de las clases iostream. • El formato de salida que permiten los iostreams también incluyen características como el formato de números en decimal, octal, y hexadecimal. Aquí tiene otro ejemplo del uso de los iostreams
  • 25. Más sobre iostreams • Este ejemplo muestra cómo la clase iostreams imprime números en decimal, octal, y hexadecimal usando manipuladores (los cuales no imprimen nada, pero cambian el estado del flujo de salida). El formato de los números en punto flotante lo determina automáticamente el compilador. Además, cualquier se puede enviar cualquier caracter a un objeto stream usando un molde (cast) a char (un char es un tipo de datos que manipula un sólo caracter). Este molde parece una llamada a función: char( ), devuelve un valor ASCII. En el programa de arriba, el char(27) envía un ¨escape¨ a cout.
  • 26. Concatenar vectores de caracteres • Una característica importante del preprocesador de C es la concatenación de arrays de caracteres. Esta característica se usa en algunos de los ejemplos de este curso. Si se colocan juntos dos arrays de caracteres entrecomillados, sin signos de puntuación entre ellos, el compilador los pegará en un único array de caracteres. Esto es particularmente útil cuando los listados de código tienen restricciones de anchura.
  • 29. Concatenar vectores de caracteres • Al principio, el código de arriba puede parecer erróneo porque no está el ya familiar punto y coma al final de cada línea. Recuerde que C y C++ son lenguajes de formato libre, y aunque normalmente verá un punto y coma al final de cada línea, el requisito real es que haya un punto y coma al final de cada sentencia, por lo que es posible encontrar una sentencia que ocupe varias líneas