SlideShare una empresa de Scribd logo
1 de 21
Descargar para leer sin conexión
Tema	
  5.	
  Entrada/Salida	
  
Programación	
  en	
  Lenguaje	
  Java	
  
Michael	
  González	
  Harbour	
  
Mario	
  Aldea	
  Rivas	
  
Departamento	
  de	
  Matemá.cas,	
  
Estadís.ca	
  y	
  Computación	
  
Este	
  tema	
  se	
  publica	
  bajo	
  Licencia:	
  
Crea.ve	
  Commons	
  BY-­‐NC-­‐SA	
  4.0	
  
www.istr.unican.es © Michael González Harbour y Mario Aldea, 8/oct/15 1
UNIVERSIDAD
DE CANTABRIA
Programación en Java
1. Introducción a los lenguajes de programación
2. Datos y expresiones
3. Estructuras algorítmicas
4. Datos Compuestos
5. Entrada/salida
• Entrada salida con números y textos. Mensajes. Gráficas. Menús. Dibujos. Texto
multilínea.
6. Clases, referencias y objetos
7. Modularidad y abstracción
8. Herencia y polimorfismo
9. Tratamiento de errores
10. Entrada/salida con ficheros
11. Pruebas
www.istr.unican.es © Michael González Harbour y Mario Aldea, 8/oct/15 2
UNIVERSIDAD
DE CANTABRIA
Paquete fundamentos
La entrada/salida de texto en Java es muy general y flexible, pero
compleja
• podemos usar clases que encapsulen las operaciones
El paquete fundamentos (no estándar) contiene las clases:
• Lectura: Para leer datos desde una ventana
• Escritura: Para escribir resultados en una ventana
• Mensaje: Para escribir un texto sencillo en una ventana
• Grafica: Para hacer gráficas de x-y
• Menu: Para presentar varios botones en una ventana y saber cuál es
el que el usuario pulsa
• Dibujo: Proporciona ventana para dibujos e imágenes
• CajaTexto: Para leer texto multilínea
www.istr.unican.es © Michael González Harbour y Mario Aldea, 8/oct/15 3
UNIVERSIDAD
DE CANTABRIA
Lectura
new Lectura (String t) Crea una ventana con el título t
void creaEntrada(String e,double x) Crea una caja para leer un double
void creaEntrada(String e, int i) Crea una caja para leer un int
void creaEntrada(String e,String s) Crea una caja para leer un String
void espera (String mensaje)
void espera ()
Muestra un mensaje en su caso, y
espera a que el usuario teclee datos y
pulse aceptar
void esperaYCierra (String mensaje)
void esperaYCierra ()
Igual que espera, pero además cierra
la ventana
double leeDouble (String e) Lee un double de la caja de etiqueta
e
int leeInt (String e) Lee un int de la caja con etiqueta e
String leeString (String e) Lee un String de la caja de etiqueta e
void println (String mensaje) Muestra un mensaje en la cabecera
www.istr.unican.es © Michael González Harbour y Mario Aldea, 8/oct/15 4
UNIVERSIDAD
DE CANTABRIA
Ejemplo
Hacer un programa para calcular la distancia entre dos puntos del globo,
y que acepte datos de entrada con Lectura:
import fundamentos.*;
public class Dist {
public static void main(String[] args) {
double dist; // Kilometros
double lon1,lat1,lon2,lat2; // grados
// Paso 1: crear el objeto
Lectura pantalla = new Lectura("Círculo Máximo");
// Paso 2: crear las entradas para los datos a leer
pantalla.creaEntrada("Latitud 1",0.0);
pantalla.creaEntrada("Longitud 1",0.0);
pantalla.creaEntrada("Latitud 2",0.0);
pantalla.creaEntrada("Longitud 2",0.0);
www.istr.unican.es © Michael González Harbour y Mario Aldea, 8/oct/15 5
UNIVERSIDAD
DE CANTABRIA
Ejemplo (cont.)
// Paso 3: esperar a que el usuario teclee
pantalla.espera
("Introduce coordenadas y pulsa Aceptar");
// Paso 4: leer los datos tecleados
lat1=pantalla.leeDouble("Latitud 1");
lon1=pantalla.leeDouble("Longitud 1");
lat2=pantalla.leeDouble("Latitud 2");
lon2=pantalla.leeDouble("Longitud 2");
// Trabajar con los datos leídos
lat1=Math.toRadians(lat1);
lat2=Math.toRadians(lat2);
lon1=Math.toRadians(lon1);
lon2=Math.toRadians(lon2);
www.istr.unican.es © Michael González Harbour y Mario Aldea, 8/oct/15 6
UNIVERSIDAD
DE CANTABRIA
Ejemplo (cont.)
// Calcular la distancia y mostrarla en pantalla
dist=Math.toDegrees(Math.acos(Math.sin(lat1)*
Math.sin(lat2)+
Math.cos(lat1)*Math.cos(lat2)*
Math.cos(lon1-lon2)))*
60.0*1.852;
pantalla.println("La distancia es: "+dist+" Km");
}
}
www.istr.unican.es © Michael González Harbour y Mario Aldea, 8/oct/15 7
UNIVERSIDAD
DE CANTABRIA
Escritura
En el ejemplo anterior, podríamos cambiar la última línea por:
Escritura res = new Escritura ("Círculo Máximo");
res.insertaValor("Distancia (Km)",dist);
res.espera();
new Escritura (String t) Crea una ventana con su título
void insertaValor (String e,double x) Crea una caja con la etiqueta y el
valor
void insertaValor(String e, int) Crea una caja con la etiqueta y el
valor
void insertaValor(String e,String s) Crea una caja con la etiqueta y el
valor
void espera () Espera a que el usuario pulse
aceptar, y cierra la ventana
www.istr.unican.es © Michael González Harbour y Mario Aldea, 8/oct/15 8
UNIVERSIDAD
DE CANTABRIA
Mensaje
Ejemplo:
Mensaje mens = new Mensaje();
mens.escribe("Esto es un mensaje");
new Mensaje () Constructor que crea la ventana
new Mensaje (String t) Constructor que crea la ventana y le
pone título
void escribe(String m) Muestra el mensaje y espera a que se
pulse el botón OK
www.istr.unican.es © Michael González Harbour y Mario Aldea, 8/oct/15 9
UNIVERSIDAD
DE CANTABRIA
Grafica
new Grafica () Constructor que crea la ventana con
títulos en blanco
new Grafica (String titulo,
String tituloX, String tituloY)
Constructor alternativo que pone los
títulos de la ventana y los ejes X e Y
void inserta (double x,double y) Inserta el punto (x,y) en la gráfica
actual
void otraGrafica () Crea una nueva gráfica en la misma
ventana
void pinta() Pinta todas las gráficas
void ponLineas (boolean b) Pone o quita la opción de mostrar la
gráfica con líneas entre cada punto
void ponSimbolo (boolean b) Pone o quita la opción de símbolos en
la gráfica actual
void ponTitulo (String t) Pone el título de la gráfica actual
void ponColor (int c) Pone el color de la gráfica actual
www.istr.unican.es © Michael González Harbour y Mario Aldea, 8/oct/15 10
UNIVERSIDAD
DE CANTABRIA
Ejemplo de creación de una gráfica
Grafica g = new Grafica ("Valores","x","y");
// El primer grafico
g.ponSimbolo(true);
g.ponColor(Grafica.azul);
g.ponTitulo("graf1");
g.inserta(x1,y1);
g.inserta(x2,y2);
...
// El segundo grafico
g.otraGrafica();
g.ponColor(Grafica.rojo);
g.ponTitulo("graf2");
g.inserta(p1,q1);
g.inserta(p2,q2);
...
// Pintar las dos gráficas
g.pinta();
www.istr.unican.es © Michael González Harbour y Mario Aldea, 8/oct/15 11
UNIVERSIDAD
DE CANTABRIA
Menu
new Menu (String t) Constructor que crea la ventana con
su título
void insertaOpcion (String e,
int code)
Crea un botón con la etiqueta y el
código numérico indicados
int leeOpcion () Espera a que el usuario pulse un
botón, y retorna el código numérico
del botón pulsado
int leeOpcion (String e) Muestra un mensaje, espera a que el
usuario pulse un botón, y retorna el
código numérico del botón pulsado
void println (String s) Muestra un mensaje en la cabecera
www.istr.unican.es © Michael González Harbour y Mario Aldea, 8/oct/15 12
UNIVERSIDAD
DE CANTABRIA
Ejemplo con Menu
Menu menu= new Menu("Prueba de Menu");
int op;
// prepara la lista de opciones
menu.insertaOpcion("Insertar libro",1);
menu.insertaOpcion("Borrar libro",2);
menu.insertaOpcion("Prestar libro",3);
menu.insertaOpcion("Consultar libro",4);
menu.insertaOpcion("Salir",5);
// espera a que el usuario elija una opción
op=menu.leeOpcion("Elige una opcion");
www.istr.unican.es © Michael González Harbour y Mario Aldea, 8/oct/15 13
UNIVERSIDAD
DE CANTABRIA
Dibujo
new Dibujo (String titulo) Constructor que crea la ventana con su título y
tamaño 640x480
new Dibujo (String titulo,
int alto,int ancho)
Constructor que crea la ventana con su título y el
tamaño indicado
void espera() Pinta el dibujo y espera que se pulse OK
void pinta() Hace el dibujo de forma inmediata, sin esperar
void ponColorLapiz
(ColorFig color)
Pone el color del lápiz con el que se pinta.
void ponRelleno
(ColorFig color)
Pone el color del relleno de las figuras cerradas
void ponLetra(int tamaño) Pone el tamaño de la letra del texto dibujado
void hazLienzoSinLimite() Hace que si se dibuja fuera del lienzo no salgan
mensajes de error
void borra() Borra el dibujo poniendo el fondo gris claro
void borra(ColorFig color) Borra el dibujo poniendo el fondo del color indicado
www.istr.unican.es © Michael González Harbour y Mario Aldea, 8/oct/15 14
UNIVERSIDAD
DE CANTABRIA
Dibujo (cont.)
void dibujaTexto(String texto,
int xOrigen,int yOrigen)
void dibujaPunto(int x,int y)
void dibujaLinea(int xOrigen,int yOrigen,
int xDestino,int yDestino)
void dibujaLineas (int[] x,int[] y);
void dibujaRectangulo(int x1,int y1,
int x2, int y2)
void dibujaElipse(int x1,int y1,
int x2, int y2)
void dibujaArco(int x1,int y1,
int x2, int y2,int angulo1,int angulo2);
void dibujaPoligono(int[] x, int[] y)
void dibujaImagen(int xOrigen,int yOrigen,
String nombreFichero)
Operaciones de
dibujar
www.istr.unican.es © Michael González Harbour y Mario Aldea, 8/oct/15 15
UNIVERSIDAD
DE CANTABRIA
Colores disponibles
ColorFig.negro
ColorFig.azul
ColorFig.grisOscuro
ColorFig.gris
ColorFig.verde
ColorFig.grisClaro
ColorFig.magenta
ColorFig.naranja
ColorFig.rosa
ColorFig.rojo
ColorFig.blanco
ColorFig.amarillo
Constantes estáti-
cas de la clase
ColorFig
www.istr.unican.es © Michael González Harbour y Mario Aldea, 8/oct/15 16
UNIVERSIDAD
DE CANTABRIA
Ejemplo de Dibujo
Dibujo dib=new Dibujo
("Prueba de dibujo",480,300);
dib.borra(ColorFig.blanco);
dib.ponGrosorLapiz(4);
dib.ponColorLapiz(ColorFig.magenta);
dib.dibujaElipse(50,100,90,140);
dib.dibujaArco(50,200,90,240,-45,45);
dib.dibujaImagen(250,30,"mi-foto.jpg");
dib.espera();
//necesario para que se pinte la ventana
www.istr.unican.es © Michael González Harbour y Mario Aldea, 8/oct/15 17
UNIVERSIDAD
DE CANTABRIA
CajaTexto
new CajaTexto (String s,
int filas,
int columnas)
Crea una ventana con el título s, y el tamaño
en caracteres indicado por filas y columnas
void espera () Espera a teclear datos y pulsar aceptar; luego
se coloca en la primera línea del texto
boolean hayMas() Retorna un booleano indicando si hay mas
líneas por leer o no
double leeDouble () Lee un double de la línea actual
int leeInt () Lee un int de la línea actual
String leeString () Lee un String de la línea actual
void avanzaLinea () Avanza a la siguiente línea
www.istr.unican.es © Michael González Harbour y Mario Aldea, 8/oct/15 18
UNIVERSIDAD
DE CANTABRIA
Ejemplo con una caja de texto
Este fragmento de código muestra en pantalla las líneas tecleadas en
una caja de texto
// crea el objeto
CajaTexto caja = new CajaTexto ("Prueba de Caja de
Texto",20,50);
// espera a que el usuario teclee texto
caja.espera();
// lazo para mostrar todas las líneas tecleadas
while (caja.hayMas()) {
System.out.println(caja.leeString());
caja.avanzaLinea();
}
www.istr.unican.es © Michael González Harbour y Mario Aldea, 8/oct/15 19
UNIVERSIDAD
DE CANTABRIA
Otros métodos de la clase CajaTexto
void esperaYCierra () Igual que espera, y además cierra la ventana
void reinicia () Se coloca en la primera línea del texto
double leeDouble
(int pos)
Lee el double que ocupa la posición pos de la
línea actual;
se separan con espacios en blanco;
el primer numero es el de pos=0)
int leeInt (int pos) Lee el int que ocupa la posición pos de la
línea actual
void borra() Borra el texto de la caja de texto
void println (String s) Añade una línea con el String s a la caja de
texto
www.istr.unican.es © Michael González Harbour y Mario Aldea, 8/oct/15 20
UNIVERSIDAD
DE CANTABRIA
Ejemplo: Lectura de datos en 3 columnas
caja = new CajaTexto ("Lectura en columnas",20,50);
caja.esperaYCierra();
int fila=0;
while (caja.hayMas()) {
// leer datos de las tres columnas
//y ponerlos en pantalla
for (int col=0; col<3; col++) {
System.out.println("Fila:"+fila+" Col: "+col+
" ="+caja.leeDouble(col));
}
caja.avanzaLinea();
fila++;
}

Más contenido relacionado

Similar a Cap5 entrada-salida (20)

A1 u1-16230227
A1 u1-16230227A1 u1-16230227
A1 u1-16230227
 
Portfolio deTurtle Art
Portfolio deTurtle ArtPortfolio deTurtle Art
Portfolio deTurtle Art
 
Cesar lenguaje c_
Cesar lenguaje c_Cesar lenguaje c_
Cesar lenguaje c_
 
Include1
Include1Include1
Include1
 
Include1
Include1Include1
Include1
 
20 programas
20 programas20 programas
20 programas
 
Funciones con vectores y matrices
Funciones con vectores y matricesFunciones con vectores y matrices
Funciones con vectores y matrices
 
Funciones con vectores y matrices
Funciones con vectores y matricesFunciones con vectores y matrices
Funciones con vectores y matrices
 
Programación 1: arreglos en C
Programación 1: arreglos en CProgramación 1: arreglos en C
Programación 1: arreglos en C
 
Revista digital
Revista digitalRevista digital
Revista digital
 
El_pensamiento_computacional_y_programacion_.pptx
El_pensamiento_computacional_y_programacion_.pptxEl_pensamiento_computacional_y_programacion_.pptx
El_pensamiento_computacional_y_programacion_.pptx
 
Separata java script
Separata java scriptSeparata java script
Separata java script
 
Apun c
Apun cApun c
Apun c
 
Java Ago Dic07
Java Ago Dic07Java Ago Dic07
Java Ago Dic07
 
String
StringString
String
 
02
0202
02
 
Guia de programacion Delfina 2010
Guia de programacion Delfina 2010Guia de programacion Delfina 2010
Guia de programacion Delfina 2010
 
Transparencias8
Transparencias8Transparencias8
Transparencias8
 
Presnetación Go
Presnetación GoPresnetación Go
Presnetación Go
 
Practica
PracticaPractica
Practica
 

Más de IsaacGmezOtero (8)

Cap9 excepciones
Cap9 excepcionesCap9 excepciones
Cap9 excepciones
 
Cap7 modularidad
Cap7 modularidadCap7 modularidad
Cap7 modularidad
 
Cap3 algoritmos
Cap3 algoritmosCap3 algoritmos
Cap3 algoritmos
 
Cap2 datos
Cap2 datosCap2 datos
Cap2 datos
 
Cap11 prueba
Cap11 pruebaCap11 prueba
Cap11 prueba
 
Cap10 ficheros
Cap10 ficherosCap10 ficheros
Cap10 ficheros
 
Cap1 intro
Cap1 introCap1 intro
Cap1 intro
 
Cap6 clases
Cap6 clasesCap6 clases
Cap6 clases
 

Último

UNIDAD III Esquemas de comunicacion pptx
UNIDAD III Esquemas de comunicacion pptxUNIDAD III Esquemas de comunicacion pptx
UNIDAD III Esquemas de comunicacion pptxElybe Hernandez
 
1.1 Los 14 principios del Toyota Way -2024.pdf
1.1 Los 14 principios del Toyota Way -2024.pdf1.1 Los 14 principios del Toyota Way -2024.pdf
1.1 Los 14 principios del Toyota Way -2024.pdfThe16Frame
 
TIPOS DE BASTIDORES Y CARROCERIA EN LA INDUSTRIA AUTOMOTRIZ
TIPOS DE BASTIDORES Y CARROCERIA EN LA INDUSTRIA AUTOMOTRIZTIPOS DE BASTIDORES Y CARROCERIA EN LA INDUSTRIA AUTOMOTRIZ
TIPOS DE BASTIDORES Y CARROCERIA EN LA INDUSTRIA AUTOMOTRIZvarichard
 
subestaciones electricas , elementos y caracteristicas
subestaciones electricas , elementos y caracteristicassubestaciones electricas , elementos y caracteristicas
subestaciones electricas , elementos y caracteristicaszaydaescalona
 
Cuestionario 20222222222222222222222224.pdf
Cuestionario 20222222222222222222222224.pdfCuestionario 20222222222222222222222224.pdf
Cuestionario 20222222222222222222222224.pdffredyflores58
 
Ficha Técnica -Cemento YURA Multiproposito TIPO IP.pdf
Ficha Técnica -Cemento YURA  Multiproposito TIPO IP.pdfFicha Técnica -Cemento YURA  Multiproposito TIPO IP.pdf
Ficha Técnica -Cemento YURA Multiproposito TIPO IP.pdfEdgard Ampuero Cayo
 
DIFERENCIA DE COMPRESION Y TENSION EN UN CUERPO
DIFERENCIA DE COMPRESION Y TENSION EN UN CUERPODIFERENCIA DE COMPRESION Y TENSION EN UN CUERPO
DIFERENCIA DE COMPRESION Y TENSION EN UN CUERPOSegundo Silva Maguiña
 
TEST ESPACIAL CONTEO DE CUBOS y TEST DE MOSAICOS
TEST ESPACIAL CONTEO DE CUBOS y TEST DE MOSAICOSTEST ESPACIAL CONTEO DE CUBOS y TEST DE MOSAICOS
TEST ESPACIAL CONTEO DE CUBOS y TEST DE MOSAICOSCarlosHuamulloDavila1
 
Presentación_ Marco general de las contrataciones públicas.pdf
Presentación_ Marco general de las contrataciones públicas.pdfPresentación_ Marco general de las contrataciones públicas.pdf
Presentación_ Marco general de las contrataciones públicas.pdffernandolozano90
 
REGLA DE PROBABILIDADES Y REGLA DE BAYES.pptx
REGLA DE PROBABILIDADES  Y REGLA DE BAYES.pptxREGLA DE PROBABILIDADES  Y REGLA DE BAYES.pptx
REGLA DE PROBABILIDADES Y REGLA DE BAYES.pptxJhonLeon59
 
REAJUSTE DE PRECIOS EN LOS CONTRATOS ADMINISTRATIVOS DE OBRA PUBLICA PACTADOS...
REAJUSTE DE PRECIOS EN LOS CONTRATOS ADMINISTRATIVOS DE OBRA PUBLICA PACTADOS...REAJUSTE DE PRECIOS EN LOS CONTRATOS ADMINISTRATIVOS DE OBRA PUBLICA PACTADOS...
REAJUSTE DE PRECIOS EN LOS CONTRATOS ADMINISTRATIVOS DE OBRA PUBLICA PACTADOS...p39961945
 
TYPP_Industrialización del Petróleo.pptx
TYPP_Industrialización del Petróleo.pptxTYPP_Industrialización del Petróleo.pptx
TYPP_Industrialización del Petróleo.pptxLilibethBallesteros1
 
herrramientas de resistividad para registro de pozos.pptx
herrramientas de resistividad para registro de pozos.pptxherrramientas de resistividad para registro de pozos.pptx
herrramientas de resistividad para registro de pozos.pptxDiegoSuarezGutierrez
 
PRACTICAS_DE_AUTOMATIZACION_industrial (1).pdf
PRACTICAS_DE_AUTOMATIZACION_industrial (1).pdfPRACTICAS_DE_AUTOMATIZACION_industrial (1).pdf
PRACTICAS_DE_AUTOMATIZACION_industrial (1).pdfjorge477728
 
slideshare.vpdfs.com_sensores-magneticos-controles-pptx.pdf
slideshare.vpdfs.com_sensores-magneticos-controles-pptx.pdfslideshare.vpdfs.com_sensores-magneticos-controles-pptx.pdf
slideshare.vpdfs.com_sensores-magneticos-controles-pptx.pdfWaldo Eber Melendez Garro
 
6.1-Proclamación de la II República, la Constitución y el bienio reformista-L...
6.1-Proclamación de la II República, la Constitución y el bienio reformista-L...6.1-Proclamación de la II República, la Constitución y el bienio reformista-L...
6.1-Proclamación de la II República, la Constitución y el bienio reformista-L...jose880240
 
las humanidades y su impotancia en la formación integral del ingeniero
las humanidades y su impotancia en la formación integral del ingenierolas humanidades y su impotancia en la formación integral del ingeniero
las humanidades y su impotancia en la formación integral del ingenieroJsValdez
 
Inmunología AMIR 14va EdiciónNM,NLKKJHKLJHKJLBHLKJH
Inmunología AMIR 14va EdiciónNM,NLKKJHKLJHKJLBHLKJHInmunología AMIR 14va EdiciónNM,NLKKJHKLJHKJLBHLKJH
Inmunología AMIR 14va EdiciónNM,NLKKJHKLJHKJLBHLKJHVivafornai
 

Último (20)

UNIDAD III Esquemas de comunicacion pptx
UNIDAD III Esquemas de comunicacion pptxUNIDAD III Esquemas de comunicacion pptx
UNIDAD III Esquemas de comunicacion pptx
 
1.1 Los 14 principios del Toyota Way -2024.pdf
1.1 Los 14 principios del Toyota Way -2024.pdf1.1 Los 14 principios del Toyota Way -2024.pdf
1.1 Los 14 principios del Toyota Way -2024.pdf
 
Convocatoria de Becas Caja de Ingenieros_UOC 2024-25
Convocatoria de Becas Caja de Ingenieros_UOC 2024-25Convocatoria de Becas Caja de Ingenieros_UOC 2024-25
Convocatoria de Becas Caja de Ingenieros_UOC 2024-25
 
TIPOS DE BASTIDORES Y CARROCERIA EN LA INDUSTRIA AUTOMOTRIZ
TIPOS DE BASTIDORES Y CARROCERIA EN LA INDUSTRIA AUTOMOTRIZTIPOS DE BASTIDORES Y CARROCERIA EN LA INDUSTRIA AUTOMOTRIZ
TIPOS DE BASTIDORES Y CARROCERIA EN LA INDUSTRIA AUTOMOTRIZ
 
subestaciones electricas , elementos y caracteristicas
subestaciones electricas , elementos y caracteristicassubestaciones electricas , elementos y caracteristicas
subestaciones electricas , elementos y caracteristicas
 
Cuestionario 20222222222222222222222224.pdf
Cuestionario 20222222222222222222222224.pdfCuestionario 20222222222222222222222224.pdf
Cuestionario 20222222222222222222222224.pdf
 
Ficha Técnica -Cemento YURA Multiproposito TIPO IP.pdf
Ficha Técnica -Cemento YURA  Multiproposito TIPO IP.pdfFicha Técnica -Cemento YURA  Multiproposito TIPO IP.pdf
Ficha Técnica -Cemento YURA Multiproposito TIPO IP.pdf
 
DIFERENCIA DE COMPRESION Y TENSION EN UN CUERPO
DIFERENCIA DE COMPRESION Y TENSION EN UN CUERPODIFERENCIA DE COMPRESION Y TENSION EN UN CUERPO
DIFERENCIA DE COMPRESION Y TENSION EN UN CUERPO
 
TEST ESPACIAL CONTEO DE CUBOS y TEST DE MOSAICOS
TEST ESPACIAL CONTEO DE CUBOS y TEST DE MOSAICOSTEST ESPACIAL CONTEO DE CUBOS y TEST DE MOSAICOS
TEST ESPACIAL CONTEO DE CUBOS y TEST DE MOSAICOS
 
Presentación_ Marco general de las contrataciones públicas.pdf
Presentación_ Marco general de las contrataciones públicas.pdfPresentación_ Marco general de las contrataciones públicas.pdf
Presentación_ Marco general de las contrataciones públicas.pdf
 
REGLA DE PROBABILIDADES Y REGLA DE BAYES.pptx
REGLA DE PROBABILIDADES  Y REGLA DE BAYES.pptxREGLA DE PROBABILIDADES  Y REGLA DE BAYES.pptx
REGLA DE PROBABILIDADES Y REGLA DE BAYES.pptx
 
50870516-hidroponia. descargado en novppt
50870516-hidroponia. descargado en novppt50870516-hidroponia. descargado en novppt
50870516-hidroponia. descargado en novppt
 
REAJUSTE DE PRECIOS EN LOS CONTRATOS ADMINISTRATIVOS DE OBRA PUBLICA PACTADOS...
REAJUSTE DE PRECIOS EN LOS CONTRATOS ADMINISTRATIVOS DE OBRA PUBLICA PACTADOS...REAJUSTE DE PRECIOS EN LOS CONTRATOS ADMINISTRATIVOS DE OBRA PUBLICA PACTADOS...
REAJUSTE DE PRECIOS EN LOS CONTRATOS ADMINISTRATIVOS DE OBRA PUBLICA PACTADOS...
 
TYPP_Industrialización del Petróleo.pptx
TYPP_Industrialización del Petróleo.pptxTYPP_Industrialización del Petróleo.pptx
TYPP_Industrialización del Petróleo.pptx
 
herrramientas de resistividad para registro de pozos.pptx
herrramientas de resistividad para registro de pozos.pptxherrramientas de resistividad para registro de pozos.pptx
herrramientas de resistividad para registro de pozos.pptx
 
PRACTICAS_DE_AUTOMATIZACION_industrial (1).pdf
PRACTICAS_DE_AUTOMATIZACION_industrial (1).pdfPRACTICAS_DE_AUTOMATIZACION_industrial (1).pdf
PRACTICAS_DE_AUTOMATIZACION_industrial (1).pdf
 
slideshare.vpdfs.com_sensores-magneticos-controles-pptx.pdf
slideshare.vpdfs.com_sensores-magneticos-controles-pptx.pdfslideshare.vpdfs.com_sensores-magneticos-controles-pptx.pdf
slideshare.vpdfs.com_sensores-magneticos-controles-pptx.pdf
 
6.1-Proclamación de la II República, la Constitución y el bienio reformista-L...
6.1-Proclamación de la II República, la Constitución y el bienio reformista-L...6.1-Proclamación de la II República, la Constitución y el bienio reformista-L...
6.1-Proclamación de la II República, la Constitución y el bienio reformista-L...
 
las humanidades y su impotancia en la formación integral del ingeniero
las humanidades y su impotancia en la formación integral del ingenierolas humanidades y su impotancia en la formación integral del ingeniero
las humanidades y su impotancia en la formación integral del ingeniero
 
Inmunología AMIR 14va EdiciónNM,NLKKJHKLJHKJLBHLKJH
Inmunología AMIR 14va EdiciónNM,NLKKJHKLJHKJLBHLKJHInmunología AMIR 14va EdiciónNM,NLKKJHKLJHKJLBHLKJH
Inmunología AMIR 14va EdiciónNM,NLKKJHKLJHKJLBHLKJH
 

Cap5 entrada-salida

  • 1. Tema  5.  Entrada/Salida   Programación  en  Lenguaje  Java   Michael  González  Harbour   Mario  Aldea  Rivas   Departamento  de  Matemá.cas,   Estadís.ca  y  Computación   Este  tema  se  publica  bajo  Licencia:   Crea.ve  Commons  BY-­‐NC-­‐SA  4.0  
  • 2. www.istr.unican.es © Michael González Harbour y Mario Aldea, 8/oct/15 1 UNIVERSIDAD DE CANTABRIA Programación en Java 1. Introducción a los lenguajes de programación 2. Datos y expresiones 3. Estructuras algorítmicas 4. Datos Compuestos 5. Entrada/salida • Entrada salida con números y textos. Mensajes. Gráficas. Menús. Dibujos. Texto multilínea. 6. Clases, referencias y objetos 7. Modularidad y abstracción 8. Herencia y polimorfismo 9. Tratamiento de errores 10. Entrada/salida con ficheros 11. Pruebas
  • 3. www.istr.unican.es © Michael González Harbour y Mario Aldea, 8/oct/15 2 UNIVERSIDAD DE CANTABRIA Paquete fundamentos La entrada/salida de texto en Java es muy general y flexible, pero compleja • podemos usar clases que encapsulen las operaciones El paquete fundamentos (no estándar) contiene las clases: • Lectura: Para leer datos desde una ventana • Escritura: Para escribir resultados en una ventana • Mensaje: Para escribir un texto sencillo en una ventana • Grafica: Para hacer gráficas de x-y • Menu: Para presentar varios botones en una ventana y saber cuál es el que el usuario pulsa • Dibujo: Proporciona ventana para dibujos e imágenes • CajaTexto: Para leer texto multilínea
  • 4. www.istr.unican.es © Michael González Harbour y Mario Aldea, 8/oct/15 3 UNIVERSIDAD DE CANTABRIA Lectura new Lectura (String t) Crea una ventana con el título t void creaEntrada(String e,double x) Crea una caja para leer un double void creaEntrada(String e, int i) Crea una caja para leer un int void creaEntrada(String e,String s) Crea una caja para leer un String void espera (String mensaje) void espera () Muestra un mensaje en su caso, y espera a que el usuario teclee datos y pulse aceptar void esperaYCierra (String mensaje) void esperaYCierra () Igual que espera, pero además cierra la ventana double leeDouble (String e) Lee un double de la caja de etiqueta e int leeInt (String e) Lee un int de la caja con etiqueta e String leeString (String e) Lee un String de la caja de etiqueta e void println (String mensaje) Muestra un mensaje en la cabecera
  • 5. www.istr.unican.es © Michael González Harbour y Mario Aldea, 8/oct/15 4 UNIVERSIDAD DE CANTABRIA Ejemplo Hacer un programa para calcular la distancia entre dos puntos del globo, y que acepte datos de entrada con Lectura: import fundamentos.*; public class Dist { public static void main(String[] args) { double dist; // Kilometros double lon1,lat1,lon2,lat2; // grados // Paso 1: crear el objeto Lectura pantalla = new Lectura("Círculo Máximo"); // Paso 2: crear las entradas para los datos a leer pantalla.creaEntrada("Latitud 1",0.0); pantalla.creaEntrada("Longitud 1",0.0); pantalla.creaEntrada("Latitud 2",0.0); pantalla.creaEntrada("Longitud 2",0.0);
  • 6. www.istr.unican.es © Michael González Harbour y Mario Aldea, 8/oct/15 5 UNIVERSIDAD DE CANTABRIA Ejemplo (cont.) // Paso 3: esperar a que el usuario teclee pantalla.espera ("Introduce coordenadas y pulsa Aceptar"); // Paso 4: leer los datos tecleados lat1=pantalla.leeDouble("Latitud 1"); lon1=pantalla.leeDouble("Longitud 1"); lat2=pantalla.leeDouble("Latitud 2"); lon2=pantalla.leeDouble("Longitud 2"); // Trabajar con los datos leídos lat1=Math.toRadians(lat1); lat2=Math.toRadians(lat2); lon1=Math.toRadians(lon1); lon2=Math.toRadians(lon2);
  • 7. www.istr.unican.es © Michael González Harbour y Mario Aldea, 8/oct/15 6 UNIVERSIDAD DE CANTABRIA Ejemplo (cont.) // Calcular la distancia y mostrarla en pantalla dist=Math.toDegrees(Math.acos(Math.sin(lat1)* Math.sin(lat2)+ Math.cos(lat1)*Math.cos(lat2)* Math.cos(lon1-lon2)))* 60.0*1.852; pantalla.println("La distancia es: "+dist+" Km"); } }
  • 8. www.istr.unican.es © Michael González Harbour y Mario Aldea, 8/oct/15 7 UNIVERSIDAD DE CANTABRIA Escritura En el ejemplo anterior, podríamos cambiar la última línea por: Escritura res = new Escritura ("Círculo Máximo"); res.insertaValor("Distancia (Km)",dist); res.espera(); new Escritura (String t) Crea una ventana con su título void insertaValor (String e,double x) Crea una caja con la etiqueta y el valor void insertaValor(String e, int) Crea una caja con la etiqueta y el valor void insertaValor(String e,String s) Crea una caja con la etiqueta y el valor void espera () Espera a que el usuario pulse aceptar, y cierra la ventana
  • 9. www.istr.unican.es © Michael González Harbour y Mario Aldea, 8/oct/15 8 UNIVERSIDAD DE CANTABRIA Mensaje Ejemplo: Mensaje mens = new Mensaje(); mens.escribe("Esto es un mensaje"); new Mensaje () Constructor que crea la ventana new Mensaje (String t) Constructor que crea la ventana y le pone título void escribe(String m) Muestra el mensaje y espera a que se pulse el botón OK
  • 10. www.istr.unican.es © Michael González Harbour y Mario Aldea, 8/oct/15 9 UNIVERSIDAD DE CANTABRIA Grafica new Grafica () Constructor que crea la ventana con títulos en blanco new Grafica (String titulo, String tituloX, String tituloY) Constructor alternativo que pone los títulos de la ventana y los ejes X e Y void inserta (double x,double y) Inserta el punto (x,y) en la gráfica actual void otraGrafica () Crea una nueva gráfica en la misma ventana void pinta() Pinta todas las gráficas void ponLineas (boolean b) Pone o quita la opción de mostrar la gráfica con líneas entre cada punto void ponSimbolo (boolean b) Pone o quita la opción de símbolos en la gráfica actual void ponTitulo (String t) Pone el título de la gráfica actual void ponColor (int c) Pone el color de la gráfica actual
  • 11. www.istr.unican.es © Michael González Harbour y Mario Aldea, 8/oct/15 10 UNIVERSIDAD DE CANTABRIA Ejemplo de creación de una gráfica Grafica g = new Grafica ("Valores","x","y"); // El primer grafico g.ponSimbolo(true); g.ponColor(Grafica.azul); g.ponTitulo("graf1"); g.inserta(x1,y1); g.inserta(x2,y2); ... // El segundo grafico g.otraGrafica(); g.ponColor(Grafica.rojo); g.ponTitulo("graf2"); g.inserta(p1,q1); g.inserta(p2,q2); ... // Pintar las dos gráficas g.pinta();
  • 12. www.istr.unican.es © Michael González Harbour y Mario Aldea, 8/oct/15 11 UNIVERSIDAD DE CANTABRIA Menu new Menu (String t) Constructor que crea la ventana con su título void insertaOpcion (String e, int code) Crea un botón con la etiqueta y el código numérico indicados int leeOpcion () Espera a que el usuario pulse un botón, y retorna el código numérico del botón pulsado int leeOpcion (String e) Muestra un mensaje, espera a que el usuario pulse un botón, y retorna el código numérico del botón pulsado void println (String s) Muestra un mensaje en la cabecera
  • 13. www.istr.unican.es © Michael González Harbour y Mario Aldea, 8/oct/15 12 UNIVERSIDAD DE CANTABRIA Ejemplo con Menu Menu menu= new Menu("Prueba de Menu"); int op; // prepara la lista de opciones menu.insertaOpcion("Insertar libro",1); menu.insertaOpcion("Borrar libro",2); menu.insertaOpcion("Prestar libro",3); menu.insertaOpcion("Consultar libro",4); menu.insertaOpcion("Salir",5); // espera a que el usuario elija una opción op=menu.leeOpcion("Elige una opcion");
  • 14. www.istr.unican.es © Michael González Harbour y Mario Aldea, 8/oct/15 13 UNIVERSIDAD DE CANTABRIA Dibujo new Dibujo (String titulo) Constructor que crea la ventana con su título y tamaño 640x480 new Dibujo (String titulo, int alto,int ancho) Constructor que crea la ventana con su título y el tamaño indicado void espera() Pinta el dibujo y espera que se pulse OK void pinta() Hace el dibujo de forma inmediata, sin esperar void ponColorLapiz (ColorFig color) Pone el color del lápiz con el que se pinta. void ponRelleno (ColorFig color) Pone el color del relleno de las figuras cerradas void ponLetra(int tamaño) Pone el tamaño de la letra del texto dibujado void hazLienzoSinLimite() Hace que si se dibuja fuera del lienzo no salgan mensajes de error void borra() Borra el dibujo poniendo el fondo gris claro void borra(ColorFig color) Borra el dibujo poniendo el fondo del color indicado
  • 15. www.istr.unican.es © Michael González Harbour y Mario Aldea, 8/oct/15 14 UNIVERSIDAD DE CANTABRIA Dibujo (cont.) void dibujaTexto(String texto, int xOrigen,int yOrigen) void dibujaPunto(int x,int y) void dibujaLinea(int xOrigen,int yOrigen, int xDestino,int yDestino) void dibujaLineas (int[] x,int[] y); void dibujaRectangulo(int x1,int y1, int x2, int y2) void dibujaElipse(int x1,int y1, int x2, int y2) void dibujaArco(int x1,int y1, int x2, int y2,int angulo1,int angulo2); void dibujaPoligono(int[] x, int[] y) void dibujaImagen(int xOrigen,int yOrigen, String nombreFichero) Operaciones de dibujar
  • 16. www.istr.unican.es © Michael González Harbour y Mario Aldea, 8/oct/15 15 UNIVERSIDAD DE CANTABRIA Colores disponibles ColorFig.negro ColorFig.azul ColorFig.grisOscuro ColorFig.gris ColorFig.verde ColorFig.grisClaro ColorFig.magenta ColorFig.naranja ColorFig.rosa ColorFig.rojo ColorFig.blanco ColorFig.amarillo Constantes estáti- cas de la clase ColorFig
  • 17. www.istr.unican.es © Michael González Harbour y Mario Aldea, 8/oct/15 16 UNIVERSIDAD DE CANTABRIA Ejemplo de Dibujo Dibujo dib=new Dibujo ("Prueba de dibujo",480,300); dib.borra(ColorFig.blanco); dib.ponGrosorLapiz(4); dib.ponColorLapiz(ColorFig.magenta); dib.dibujaElipse(50,100,90,140); dib.dibujaArco(50,200,90,240,-45,45); dib.dibujaImagen(250,30,"mi-foto.jpg"); dib.espera(); //necesario para que se pinte la ventana
  • 18. www.istr.unican.es © Michael González Harbour y Mario Aldea, 8/oct/15 17 UNIVERSIDAD DE CANTABRIA CajaTexto new CajaTexto (String s, int filas, int columnas) Crea una ventana con el título s, y el tamaño en caracteres indicado por filas y columnas void espera () Espera a teclear datos y pulsar aceptar; luego se coloca en la primera línea del texto boolean hayMas() Retorna un booleano indicando si hay mas líneas por leer o no double leeDouble () Lee un double de la línea actual int leeInt () Lee un int de la línea actual String leeString () Lee un String de la línea actual void avanzaLinea () Avanza a la siguiente línea
  • 19. www.istr.unican.es © Michael González Harbour y Mario Aldea, 8/oct/15 18 UNIVERSIDAD DE CANTABRIA Ejemplo con una caja de texto Este fragmento de código muestra en pantalla las líneas tecleadas en una caja de texto // crea el objeto CajaTexto caja = new CajaTexto ("Prueba de Caja de Texto",20,50); // espera a que el usuario teclee texto caja.espera(); // lazo para mostrar todas las líneas tecleadas while (caja.hayMas()) { System.out.println(caja.leeString()); caja.avanzaLinea(); }
  • 20. www.istr.unican.es © Michael González Harbour y Mario Aldea, 8/oct/15 19 UNIVERSIDAD DE CANTABRIA Otros métodos de la clase CajaTexto void esperaYCierra () Igual que espera, y además cierra la ventana void reinicia () Se coloca en la primera línea del texto double leeDouble (int pos) Lee el double que ocupa la posición pos de la línea actual; se separan con espacios en blanco; el primer numero es el de pos=0) int leeInt (int pos) Lee el int que ocupa la posición pos de la línea actual void borra() Borra el texto de la caja de texto void println (String s) Añade una línea con el String s a la caja de texto
  • 21. www.istr.unican.es © Michael González Harbour y Mario Aldea, 8/oct/15 20 UNIVERSIDAD DE CANTABRIA Ejemplo: Lectura de datos en 3 columnas caja = new CajaTexto ("Lectura en columnas",20,50); caja.esperaYCierra(); int fila=0; while (caja.hayMas()) { // leer datos de las tres columnas //y ponerlos en pantalla for (int col=0; col<3; col++) { System.out.println("Fila:"+fila+" Col: "+col+ " ="+caja.leeDouble(col)); } caja.avanzaLinea(); fila++; }