entrada / salida streams archivos algoritmos y estructuras de datos i departamento de computación,...
TRANSCRIPT
![Page 1: Entrada / Salida Streams Archivos Algoritmos y Estructuras de Datos I Departamento de Computación, Facultad de Ciencias Exactas y Naturales, Universidad](https://reader035.vdocuments.site/reader035/viewer/2022062410/5665b4991a28abb57c928578/html5/thumbnails/1.jpg)
Entrada / SalidaStreamsArchivos
Algoritmos y Estructuras de Datos I
Departamento de Computación, Facultad de Ciencias Exactas y Naturales,
Universidad de Buenos Aires
![Page 2: Entrada / Salida Streams Archivos Algoritmos y Estructuras de Datos I Departamento de Computación, Facultad de Ciencias Exactas y Naturales, Universidad](https://reader035.vdocuments.site/reader035/viewer/2022062410/5665b4991a28abb57c928578/html5/thumbnails/2.jpg)
Introducción
• Repaso de tipos
• Repaso de clases
• Entrada / Salida por consola (cin / cout)
• Entrada / Salida por archivo (librería fstream)
Streams. Manipulación de archivos. Clase viernes 12/06/2009
![Page 3: Entrada / Salida Streams Archivos Algoritmos y Estructuras de Datos I Departamento de Computación, Facultad de Ciencias Exactas y Naturales, Universidad](https://reader035.vdocuments.site/reader035/viewer/2022062410/5665b4991a28abb57c928578/html5/thumbnails/3.jpg)
Repaso de tipos
• int
• double
• char
• String
Streams. Manipulación de archivos. Clase viernes 12/06/2009
![Page 4: Entrada / Salida Streams Archivos Algoritmos y Estructuras de Datos I Departamento de Computación, Facultad de Ciencias Exactas y Naturales, Universidad](https://reader035.vdocuments.site/reader035/viewer/2022062410/5665b4991a28abb57c928578/html5/thumbnails/4.jpg)
Repaso de tipos
• int: Representa un número entero
• double: Representa un número real
• char: Representa un carácter.
• string: Representa una secuencia de caracteres.
Streams. Manipulación de archivos. Clase viernes 12/06/2009
![Page 5: Entrada / Salida Streams Archivos Algoritmos y Estructuras de Datos I Departamento de Computación, Facultad de Ciencias Exactas y Naturales, Universidad](https://reader035.vdocuments.site/reader035/viewer/2022062410/5665b4991a28abb57c928578/html5/thumbnails/5.jpg)
Salida#include <iostream> // Biblioteca Entrada/Salida
using namespace std;
int main(int argc, char *argv[]) cout << “Hola Mundo”; return 0;}
Streams. Manipulación de archivos. Clase viernes 12/06/2009
![Page 6: Entrada / Salida Streams Archivos Algoritmos y Estructuras de Datos I Departamento de Computación, Facultad de Ciencias Exactas y Naturales, Universidad](https://reader035.vdocuments.site/reader035/viewer/2022062410/5665b4991a28abb57c928578/html5/thumbnails/6.jpg)
Salida
Streams. Manipulación de archivos. Clase viernes 12/06/2009
#include <iostream> // Biblioteca Entrada/Salida
using namespace std;
int main(int argc, char *argv[]) cout << “Hola Mundo”; return 0;}
![Page 7: Entrada / Salida Streams Archivos Algoritmos y Estructuras de Datos I Departamento de Computación, Facultad de Ciencias Exactas y Naturales, Universidad](https://reader035.vdocuments.site/reader035/viewer/2022062410/5665b4991a28abb57c928578/html5/thumbnails/7.jpg)
Salida#include <iostream> // Biblioteca Entrada/Salida
using namespace std;
int main(int argc, char *argv[]){ int i = 4; cout << i; return 0;}
Streams. Manipulación de archivos. Clase viernes 12/06/2009
![Page 8: Entrada / Salida Streams Archivos Algoritmos y Estructuras de Datos I Departamento de Computación, Facultad de Ciencias Exactas y Naturales, Universidad](https://reader035.vdocuments.site/reader035/viewer/2022062410/5665b4991a28abb57c928578/html5/thumbnails/8.jpg)
Salida
Streams. Manipulación de archivos. Clase viernes 12/06/2009
#include <iostream> // Biblioteca Entrada/Salida
using namespace std;
int main(int argc, char *argv[]){ int i = 4; cout << i; return 0;}
![Page 9: Entrada / Salida Streams Archivos Algoritmos y Estructuras de Datos I Departamento de Computación, Facultad de Ciencias Exactas y Naturales, Universidad](https://reader035.vdocuments.site/reader035/viewer/2022062410/5665b4991a28abb57c928578/html5/thumbnails/9.jpg)
Salida#include <iostream> // Biblioteca Entrada/Salida
using namespace std;
int main(int argc, char *argv[]){ char i = 'c'; int i = 4; double i = 3.4; string i = “Salida de Viernes”; cout << i; return 0;}
Streams. Manipulación de archivos. Clase viernes 12/06/2009
![Page 10: Entrada / Salida Streams Archivos Algoritmos y Estructuras de Datos I Departamento de Computación, Facultad de Ciencias Exactas y Naturales, Universidad](https://reader035.vdocuments.site/reader035/viewer/2022062410/5665b4991a28abb57c928578/html5/thumbnails/10.jpg)
Salida#include <iostream> // Biblioteca Entrada/Salida
using namespace std;
int main(int argc, char *argv[]) {
int Argentina = 0;int Ecuador = 2;
cout << “Ecuador gano por “ << (Ecuador – Argentina) << “ goles”; return 0;}
Streams. Manipulación de archivos. Clase viernes 12/06/2009
![Page 11: Entrada / Salida Streams Archivos Algoritmos y Estructuras de Datos I Departamento de Computación, Facultad de Ciencias Exactas y Naturales, Universidad](https://reader035.vdocuments.site/reader035/viewer/2022062410/5665b4991a28abb57c928578/html5/thumbnails/11.jpg)
Salida
Streams. Manipulación de archivos. Clase viernes 12/06/2009
#include <iostream> // Biblioteca Entrada/Salida
using namespace std;
int main(int argc, char *argv[]) {
int Argentina = 0;int Ecuador = 2;
cout << “Ecuador gano por “ << (Ecuador – Argentina) << “ goles”; return 0;}
![Page 12: Entrada / Salida Streams Archivos Algoritmos y Estructuras de Datos I Departamento de Computación, Facultad de Ciencias Exactas y Naturales, Universidad](https://reader035.vdocuments.site/reader035/viewer/2022062410/5665b4991a28abb57c928578/html5/thumbnails/12.jpg)
Salida#include <iostream> // Biblioteca Entrada/Salida
using namespace std;
int main(int argc, char *argv[]){
int Argentina = 0;
int Ecuador = 2; cout << “Argentina: “ << Argentina << “ goles” << endl;
cout << “Ecuador : “ << Ecuador << “ goles”; return 0;}
Streams. Manipulación de archivos. Clase viernes 12/06/2009
![Page 13: Entrada / Salida Streams Archivos Algoritmos y Estructuras de Datos I Departamento de Computación, Facultad de Ciencias Exactas y Naturales, Universidad](https://reader035.vdocuments.site/reader035/viewer/2022062410/5665b4991a28abb57c928578/html5/thumbnails/13.jpg)
Salida
Streams. Manipulación de archivos. Clase viernes 12/06/2009
#include <iostream> // Biblioteca Entrada/Salida
using namespace std;
int main(int argc, char *argv[]){
int Argentina = 0;
int Ecuador = 2; cout << “Argentina: “ << Argentina << “ goles” << endl;
cout << “Ecuador : “ << Ecuador << “ goles”; return 0;}
![Page 14: Entrada / Salida Streams Archivos Algoritmos y Estructuras de Datos I Departamento de Computación, Facultad de Ciencias Exactas y Naturales, Universidad](https://reader035.vdocuments.site/reader035/viewer/2022062410/5665b4991a28abb57c928578/html5/thumbnails/14.jpg)
Salida
Streams. Manipulación de archivos. Clase viernes 12/06/2009
#include <iostream> // Biblioteca Entrada/Salida
using namespace std;
int main(int argc, char *argv[]){
int Argentina = 0;
int Ecuador = 2; cout << “Argentina: “ << Argentina << “ goles” << endl;
cout << “Ecuador : “ << Ecuador << “ goles”; return 0;}
![Page 15: Entrada / Salida Streams Archivos Algoritmos y Estructuras de Datos I Departamento de Computación, Facultad de Ciencias Exactas y Naturales, Universidad](https://reader035.vdocuments.site/reader035/viewer/2022062410/5665b4991a28abb57c928578/html5/thumbnails/15.jpg)
Salida
Streams. Manipulación de archivos. Clase viernes 12/06/2009
Un gran poder conlleva una gran responsabilidad ...
![Page 16: Entrada / Salida Streams Archivos Algoritmos y Estructuras de Datos I Departamento de Computación, Facultad de Ciencias Exactas y Naturales, Universidad](https://reader035.vdocuments.site/reader035/viewer/2022062410/5665b4991a28abb57c928578/html5/thumbnails/16.jpg)
Salida
Ejercicio: Hacer un programa que muestre por pantalla los primeros mil números naturales.
... tienen 5 min. por reloj.
Streams. Manipulación de archivos. Clase viernes 12/06/2009
Tipear los 1000 número me va a llevar más de 5 min. ... qué era eso de los ciclos?
![Page 17: Entrada / Salida Streams Archivos Algoritmos y Estructuras de Datos I Departamento de Computación, Facultad de Ciencias Exactas y Naturales, Universidad](https://reader035.vdocuments.site/reader035/viewer/2022062410/5665b4991a28abb57c928578/html5/thumbnails/17.jpg)
Objetos
Streams. Manipulación de archivos. Clase viernes 12/06/2009
![Page 18: Entrada / Salida Streams Archivos Algoritmos y Estructuras de Datos I Departamento de Computación, Facultad de Ciencias Exactas y Naturales, Universidad](https://reader035.vdocuments.site/reader035/viewer/2022062410/5665b4991a28abb57c928578/html5/thumbnails/18.jpg)
Clases
Streams. Manipulación de archivos. Clase viernes 12/06/2009
![Page 19: Entrada / Salida Streams Archivos Algoritmos y Estructuras de Datos I Departamento de Computación, Facultad de Ciencias Exactas y Naturales, Universidad](https://reader035.vdocuments.site/reader035/viewer/2022062410/5665b4991a28abb57c928578/html5/thumbnails/19.jpg)
Objetos
Streams. Manipulación de archivos. Clase viernes 12/06/2009
Atributos- Modelo- Color- Cantidad de ruedas
Métodos- Iguales
![Page 20: Entrada / Salida Streams Archivos Algoritmos y Estructuras de Datos I Departamento de Computación, Facultad de Ciencias Exactas y Naturales, Universidad](https://reader035.vdocuments.site/reader035/viewer/2022062410/5665b4991a28abb57c928578/html5/thumbnails/20.jpg)
bicicleta.h
Streams. Manipulación de archivos. Clase viernes 12/06/2009
Atributos- Modelo- Color- Cantidad de ruedas
Métodos- Iguales
![Page 21: Entrada / Salida Streams Archivos Algoritmos y Estructuras de Datos I Departamento de Computación, Facultad de Ciencias Exactas y Naturales, Universidad](https://reader035.vdocuments.site/reader035/viewer/2022062410/5665b4991a28abb57c928578/html5/thumbnails/21.jpg)
bicicleta.cpp
Streams. Manipulación de archivos. Clase viernes 12/06/2009
Atributos- Modelo- Color- Cantidad de ruedas
Métodos- Iguales
![Page 22: Entrada / Salida Streams Archivos Algoritmos y Estructuras de Datos I Departamento de Computación, Facultad de Ciencias Exactas y Naturales, Universidad](https://reader035.vdocuments.site/reader035/viewer/2022062410/5665b4991a28abb57c928578/html5/thumbnails/22.jpg)
main.cpp
Streams. Manipulación de archivos. Clase viernes 12/06/2009
Atributos- Modelo- Color- Cantidad de ruedas
Métodos- Iguales
![Page 23: Entrada / Salida Streams Archivos Algoritmos y Estructuras de Datos I Departamento de Computación, Facultad de Ciencias Exactas y Naturales, Universidad](https://reader035.vdocuments.site/reader035/viewer/2022062410/5665b4991a28abb57c928578/html5/thumbnails/23.jpg)
main.cpp
Streams. Manipulación de archivos. Clase viernes 12/06/2009
Atributos- Modelo- Color- Cantidad de ruedas
Métodos- Iguales
![Page 24: Entrada / Salida Streams Archivos Algoritmos y Estructuras de Datos I Departamento de Computación, Facultad de Ciencias Exactas y Naturales, Universidad](https://reader035.vdocuments.site/reader035/viewer/2022062410/5665b4991a28abb57c928578/html5/thumbnails/24.jpg)
Salida
Ejercicio: Agregar al tipo Bicicleta los métodos públicos
string modelo() const;string color() const;int ruedas()
void mostrarsePorPantalla();
... tienen 7 min. por reloj.
Streams. Manipulación de archivos. Clase viernes 12/06/2009
No se me cae una idea ...
![Page 25: Entrada / Salida Streams Archivos Algoritmos y Estructuras de Datos I Departamento de Computación, Facultad de Ciencias Exactas y Naturales, Universidad](https://reader035.vdocuments.site/reader035/viewer/2022062410/5665b4991a28abb57c928578/html5/thumbnails/25.jpg)
Salida
¿Qué pasa si utilizo ...
Bicicleta b1(“paseo”,”rojo”,2);cout << b1;
Streams. Manipulación de archivos. Clase viernes 12/06/2009
![Page 26: Entrada / Salida Streams Archivos Algoritmos y Estructuras de Datos I Departamento de Computación, Facultad de Ciencias Exactas y Naturales, Universidad](https://reader035.vdocuments.site/reader035/viewer/2022062410/5665b4991a28abb57c928578/html5/thumbnails/26.jpg)
Salida
¿Qué pasa si utilizo ...
Bicicleta b1(“paseo”,”rojo”,2);cout << b1;
error: no match for ‘operator<<’ in .....
Streams. Manipulación de archivos. Clase viernes 12/06/2009
![Page 27: Entrada / Salida Streams Archivos Algoritmos y Estructuras de Datos I Departamento de Computación, Facultad de Ciencias Exactas y Naturales, Universidad](https://reader035.vdocuments.site/reader035/viewer/2022062410/5665b4991a28abb57c928578/html5/thumbnails/27.jpg)
Salida
¿Solución: Implementar el operador << para el tipo Bicicleta ...
cout b1 bicicleta.h
std::ostream & operator<<(std::ostream & os,const Bicicleta & b);
bicicleta.cpp
std::ostream & operator<<(std::ostream & os,const Bicicleta & b){ os << "Modelo: " << b.modelo() << " Color: " << b.color() << " Cant. Ruedas: " << b.ruedas(); return os;}
Streams. Manipulación de archivos. Clase viernes 12/06/2009
![Page 28: Entrada / Salida Streams Archivos Algoritmos y Estructuras de Datos I Departamento de Computación, Facultad de Ciencias Exactas y Naturales, Universidad](https://reader035.vdocuments.site/reader035/viewer/2022062410/5665b4991a28abb57c928578/html5/thumbnails/28.jpg)
Salida
Ejercicio: implementar operator << en Bicicleta
... tienen 3 min. por reloj.
Streams. Manipulación de archivos. Clase viernes 12/06/2009
No se me cae una idea ...
![Page 29: Entrada / Salida Streams Archivos Algoritmos y Estructuras de Datos I Departamento de Computación, Facultad de Ciencias Exactas y Naturales, Universidad](https://reader035.vdocuments.site/reader035/viewer/2022062410/5665b4991a28abb57c928578/html5/thumbnails/29.jpg)
cout b1 bicicleta.h
std::ostream & operator<<(std::ostream & os,const Bicicleta & b);
Salida
Streams. Manipulación de archivos. Clase viernes 12/06/2009
![Page 30: Entrada / Salida Streams Archivos Algoritmos y Estructuras de Datos I Departamento de Computación, Facultad de Ciencias Exactas y Naturales, Universidad](https://reader035.vdocuments.site/reader035/viewer/2022062410/5665b4991a28abb57c928578/html5/thumbnails/30.jpg)
Salida
Streams. Manipulación de archivos. Clase viernes 12/06/2009
NUEVO
NUEVO
![Page 31: Entrada / Salida Streams Archivos Algoritmos y Estructuras de Datos I Departamento de Computación, Facultad de Ciencias Exactas y Naturales, Universidad](https://reader035.vdocuments.site/reader035/viewer/2022062410/5665b4991a28abb57c928578/html5/thumbnails/31.jpg)
Salida
Streams. Manipulación de archivos. Clase viernes 12/06/2009
![Page 32: Entrada / Salida Streams Archivos Algoritmos y Estructuras de Datos I Departamento de Computación, Facultad de Ciencias Exactas y Naturales, Universidad](https://reader035.vdocuments.site/reader035/viewer/2022062410/5665b4991a28abb57c928578/html5/thumbnails/32.jpg)
Salida
Streams. Manipulación de archivos. Clase viernes 12/06/2009
Callejón sin Salida
![Page 33: Entrada / Salida Streams Archivos Algoritmos y Estructuras de Datos I Departamento de Computación, Facultad de Ciencias Exactas y Naturales, Universidad](https://reader035.vdocuments.site/reader035/viewer/2022062410/5665b4991a28abb57c928578/html5/thumbnails/33.jpg)
bicicleta4.txt
Entrada
Streams. Manipulación de archivos. Clase viernes 12/06/2009
( cross amarillo 2 )
![Page 34: Entrada / Salida Streams Archivos Algoritmos y Estructuras de Datos I Departamento de Computación, Facultad de Ciencias Exactas y Naturales, Universidad](https://reader035.vdocuments.site/reader035/viewer/2022062410/5665b4991a28abb57c928578/html5/thumbnails/34.jpg)
Salida
Streams. Manipulación de archivos. Clase viernes 12/06/2009
![Page 35: Entrada / Salida Streams Archivos Algoritmos y Estructuras de Datos I Departamento de Computación, Facultad de Ciencias Exactas y Naturales, Universidad](https://reader035.vdocuments.site/reader035/viewer/2022062410/5665b4991a28abb57c928578/html5/thumbnails/35.jpg)
bicicleta4.txt
Entrada
Streams. Manipulación de archivos. Clase viernes 12/06/2009
( cross amarillo 2 )
Por qué levanta “cross” y no levanta “cross amarillo” ?
![Page 36: Entrada / Salida Streams Archivos Algoritmos y Estructuras de Datos I Departamento de Computación, Facultad de Ciencias Exactas y Naturales, Universidad](https://reader035.vdocuments.site/reader035/viewer/2022062410/5665b4991a28abb57c928578/html5/thumbnails/36.jpg)
bicicleta4.txt
Entrada
Streams. Manipulación de archivos. Clase viernes 12/06/2009
( cross amarillo 2 )
Por qué levanta “cross” y no levanta “cross amarillo” ?Y si el archivo tiene:
o tiene:
(cross racer amarillo 2)
(cross racer amarillo patito 2)
![Page 37: Entrada / Salida Streams Archivos Algoritmos y Estructuras de Datos I Departamento de Computación, Facultad de Ciencias Exactas y Naturales, Universidad](https://reader035.vdocuments.site/reader035/viewer/2022062410/5665b4991a28abb57c928578/html5/thumbnails/37.jpg)
Entrada
Streams. Manipulación de archivos. Clase viernes 12/06/2009
bicicleta4.txt
( |cross racer| |amarillo patito| 2 )
+ ciclos!!!
![Page 38: Entrada / Salida Streams Archivos Algoritmos y Estructuras de Datos I Departamento de Computación, Facultad de Ciencias Exactas y Naturales, Universidad](https://reader035.vdocuments.site/reader035/viewer/2022062410/5665b4991a28abb57c928578/html5/thumbnails/38.jpg)
bicicleta4.txt
Entrada
Streams. Manipulación de archivos. Clase viernes 12/06/2009
( |cross racer| |amarillo patito| 2 )
Si no ponemos separador, toma por defecto fin de línea
![Page 39: Entrada / Salida Streams Archivos Algoritmos y Estructuras de Datos I Departamento de Computación, Facultad de Ciencias Exactas y Naturales, Universidad](https://reader035.vdocuments.site/reader035/viewer/2022062410/5665b4991a28abb57c928578/html5/thumbnails/39.jpg)
Y nos faltó ...
Y no vimos ... pero pueden investigar:
cin
archivo.good()
archivo.peek()
archivo.MASOPCIONES
Streams. Manipulación de archivos. Clase viernes 12/06/2009
![Page 40: Entrada / Salida Streams Archivos Algoritmos y Estructuras de Datos I Departamento de Computación, Facultad de Ciencias Exactas y Naturales, Universidad](https://reader035.vdocuments.site/reader035/viewer/2022062410/5665b4991a28abb57c928578/html5/thumbnails/40.jpg)
¿Preguntas?
Streams. Manipulación de archivos. Clase viernes 12/06/2009