SlideShare una empresa de Scribd logo
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

A1 u1-16230227
A1 u1-16230227A1 u1-16230227
A1 u1-16230227
erikalejo
 
Portfolio deTurtle Art
Portfolio deTurtle ArtPortfolio deTurtle Art
Portfolio deTurtle Art
Verónica Blanco
 
Cesar lenguaje c_
Cesar lenguaje c_Cesar lenguaje c_
Cesar lenguaje c_
estefania loredo cortes
 
Include1
Include1Include1
Include1
Ahtziri Mars
 
Include1
Include1Include1
Include1
Ahtziri Mars
 
20 programas
20 programas20 programas
20 programas
Karen Minns
 
Funciones con vectores y matrices
Funciones con vectores y matricesFunciones con vectores y matrices
Funciones con vectores y matrices
Johanna Marin
 
Funciones con vectores y matrices
Funciones con vectores y matricesFunciones con vectores y matrices
Funciones con vectores y matrices
Johanna Marin
 
Programación 1: arreglos en C
Programación 1: arreglos en CProgramación 1: arreglos en C
Programación 1: arreglos en C
Angel Vázquez Patiño
 
Revista digital
Revista digitalRevista digital
Revista digital
maricela1987
 
El_pensamiento_computacional_y_programacion_.pptx
El_pensamiento_computacional_y_programacion_.pptxEl_pensamiento_computacional_y_programacion_.pptx
El_pensamiento_computacional_y_programacion_.pptx
KarinaLeticiaKovvali
 
Separata java script
Separata java scriptSeparata java script
Separata java script
Carlos Enrique Huamán Solis
 
Apun c
Apun cApun c
Java Ago Dic07
Java Ago Dic07Java Ago Dic07
Java Ago Dic07
adrianpro
 
String
StringString
02
0202
Guia de programacion Delfina 2010
Guia de programacion Delfina 2010Guia de programacion Delfina 2010
Guia de programacion Delfina 2010
jose
 
Transparencias8
Transparencias8Transparencias8
Transparencias8
karlalopezbello
 
Presnetación Go
Presnetación GoPresnetación Go
Presnetación Go
Nahuel Defossé
 
Practica
PracticaPractica
Practica
StalinNaranjo2
 

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

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

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

Cálculo del espesor del conducto forzado
Cálculo del espesor del conducto forzadoCálculo del espesor del conducto forzado
Cálculo del espesor del conducto forzado
KristianSaavedra
 
Operaciones Básicas creadora Veronica Maiz
Operaciones Básicas creadora Veronica MaizOperaciones Básicas creadora Veronica Maiz
Operaciones Básicas creadora Veronica Maiz
carolina838317
 
Infografía operaciones básicas construcción .pdf
Infografía operaciones básicas construcción .pdfInfografía operaciones básicas construcción .pdf
Infografía operaciones básicas construcción .pdf
Carlos Pulido
 
SLIDEHARE.docx..........................
SLIDEHARE.docx..........................SLIDEHARE.docx..........................
SLIDEHARE.docx..........................
azulsarase
 
PRACTICA 2 EDAFOLOGÍA TEXTURA DEL SUELO.pptx
PRACTICA 2 EDAFOLOGÍA TEXTURA DEL SUELO.pptxPRACTICA 2 EDAFOLOGÍA TEXTURA DEL SUELO.pptx
PRACTICA 2 EDAFOLOGÍA TEXTURA DEL SUELO.pptx
ANGELJOELSILVAPINZN
 
DIAPOSITIVA DE LA NORMA ISO 22000 EXPOSICI�N.pptx
DIAPOSITIVA DE LA NORMA ISO 22000 EXPOSICI�N.pptxDIAPOSITIVA DE LA NORMA ISO 22000 EXPOSICI�N.pptx
DIAPOSITIVA DE LA NORMA ISO 22000 EXPOSICI�N.pptx
KeylaArlethTorresOrt
 
Las operaciones básicas en la construcción.
Las operaciones básicas en la construcción.Las operaciones básicas en la construcción.
Las operaciones básicas en la construcción.
MaraManuelaUrribarri
 
Infografía de operaciones básicas....pdf
Infografía de operaciones básicas....pdfInfografía de operaciones básicas....pdf
Infografía de operaciones básicas....pdf
jahirrtorresa
 
Proceso de obtenciòn de nitrogeno por el metodo Haber-Bosh
Proceso de obtenciòn de nitrogeno por el metodo Haber-BoshProceso de obtenciòn de nitrogeno por el metodo Haber-Bosh
Proceso de obtenciòn de nitrogeno por el metodo Haber-Bosh
shirllyleytonm
 
COMPARACION DE PRECIOS TENIENDO COMO REFERENTE LA OSCE
COMPARACION DE PRECIOS TENIENDO COMO REFERENTE LA OSCECOMPARACION DE PRECIOS TENIENDO COMO REFERENTE LA OSCE
COMPARACION DE PRECIOS TENIENDO COMO REFERENTE LA OSCE
jhunior lopez rodriguez
 
Sistemas eléctricos de potencia y transmisión
Sistemas eléctricos de potencia y transmisiónSistemas eléctricos de potencia y transmisión
Sistemas eléctricos de potencia y transmisión
MichaelLpezOrtiz
 
Infografia - Hugo Hidalgo - Construcción
Infografia - Hugo Hidalgo - ConstrucciónInfografia - Hugo Hidalgo - Construcción
Infografia - Hugo Hidalgo - Construcción
MaraManuelaUrribarri
 
diagrama de flujo. en el área de ingeniería
diagrama de flujo. en el área de ingenieríadiagrama de flujo. en el área de ingeniería
diagrama de flujo. en el área de ingeniería
karenperalta62
 
Uso de equipos de protección personal.pptx
Uso de equipos de protección personal.pptxUso de equipos de protección personal.pptx
Uso de equipos de protección personal.pptx
OmarPadillaGarcia
 
tipos de energias: la Energía Radiante.pdf
tipos de energias: la Energía Radiante.pdftipos de energias: la Energía Radiante.pdf
tipos de energias: la Energía Radiante.pdf
munozvanessa878
 
9 Lección perro.pptxcvBWRFWBCCCCCCCCCCCCCCTEN
9 Lección perro.pptxcvBWRFWBCCCCCCCCCCCCCCTEN9 Lección perro.pptxcvBWRFWBCCCCCCCCCCCCCCTEN
9 Lección perro.pptxcvBWRFWBCCCCCCCCCCCCCCTEN
KarinToledo2
 
Focos SSO Fin de Semana del 31 MAYO A al 02 de JUNIO de 2024.pdf
Focos SSO Fin de Semana del 31 MAYO A  al 02 de JUNIO  de 2024.pdfFocos SSO Fin de Semana del 31 MAYO A  al 02 de JUNIO  de 2024.pdf
Focos SSO Fin de Semana del 31 MAYO A al 02 de JUNIO de 2024.pdf
PatoLokooGuevara
 
PRES 3. METROLOGÍA DE GASES Y RADIACIONES IONIZANTES.pptx
PRES 3. METROLOGÍA DE GASES Y RADIACIONES IONIZANTES.pptxPRES 3. METROLOGÍA DE GASES Y RADIACIONES IONIZANTES.pptx
PRES 3. METROLOGÍA DE GASES Y RADIACIONES IONIZANTES.pptx
brandonsinael
 
Cargas de Cálculos Estructurales de un Puente
Cargas de Cálculos Estructurales de un PuenteCargas de Cálculos Estructurales de un Puente
Cargas de Cálculos Estructurales de un Puente
jemifermelgarejoaran1
 
EXPOSICIÓN NTP IEC 60364-1 - Orlando Chávez Chacaltana.pdf
EXPOSICIÓN NTP IEC 60364-1 - Orlando Chávez Chacaltana.pdfEXPOSICIÓN NTP IEC 60364-1 - Orlando Chávez Chacaltana.pdf
EXPOSICIÓN NTP IEC 60364-1 - Orlando Chávez Chacaltana.pdf
hugodennis88
 

Último (20)

Cálculo del espesor del conducto forzado
Cálculo del espesor del conducto forzadoCálculo del espesor del conducto forzado
Cálculo del espesor del conducto forzado
 
Operaciones Básicas creadora Veronica Maiz
Operaciones Básicas creadora Veronica MaizOperaciones Básicas creadora Veronica Maiz
Operaciones Básicas creadora Veronica Maiz
 
Infografía operaciones básicas construcción .pdf
Infografía operaciones básicas construcción .pdfInfografía operaciones básicas construcción .pdf
Infografía operaciones básicas construcción .pdf
 
SLIDEHARE.docx..........................
SLIDEHARE.docx..........................SLIDEHARE.docx..........................
SLIDEHARE.docx..........................
 
PRACTICA 2 EDAFOLOGÍA TEXTURA DEL SUELO.pptx
PRACTICA 2 EDAFOLOGÍA TEXTURA DEL SUELO.pptxPRACTICA 2 EDAFOLOGÍA TEXTURA DEL SUELO.pptx
PRACTICA 2 EDAFOLOGÍA TEXTURA DEL SUELO.pptx
 
DIAPOSITIVA DE LA NORMA ISO 22000 EXPOSICI�N.pptx
DIAPOSITIVA DE LA NORMA ISO 22000 EXPOSICI�N.pptxDIAPOSITIVA DE LA NORMA ISO 22000 EXPOSICI�N.pptx
DIAPOSITIVA DE LA NORMA ISO 22000 EXPOSICI�N.pptx
 
Las operaciones básicas en la construcción.
Las operaciones básicas en la construcción.Las operaciones básicas en la construcción.
Las operaciones básicas en la construcción.
 
Infografía de operaciones básicas....pdf
Infografía de operaciones básicas....pdfInfografía de operaciones básicas....pdf
Infografía de operaciones básicas....pdf
 
Proceso de obtenciòn de nitrogeno por el metodo Haber-Bosh
Proceso de obtenciòn de nitrogeno por el metodo Haber-BoshProceso de obtenciòn de nitrogeno por el metodo Haber-Bosh
Proceso de obtenciòn de nitrogeno por el metodo Haber-Bosh
 
COMPARACION DE PRECIOS TENIENDO COMO REFERENTE LA OSCE
COMPARACION DE PRECIOS TENIENDO COMO REFERENTE LA OSCECOMPARACION DE PRECIOS TENIENDO COMO REFERENTE LA OSCE
COMPARACION DE PRECIOS TENIENDO COMO REFERENTE LA OSCE
 
Sistemas eléctricos de potencia y transmisión
Sistemas eléctricos de potencia y transmisiónSistemas eléctricos de potencia y transmisión
Sistemas eléctricos de potencia y transmisión
 
Infografia - Hugo Hidalgo - Construcción
Infografia - Hugo Hidalgo - ConstrucciónInfografia - Hugo Hidalgo - Construcción
Infografia - Hugo Hidalgo - Construcción
 
diagrama de flujo. en el área de ingeniería
diagrama de flujo. en el área de ingenieríadiagrama de flujo. en el área de ingeniería
diagrama de flujo. en el área de ingeniería
 
Uso de equipos de protección personal.pptx
Uso de equipos de protección personal.pptxUso de equipos de protección personal.pptx
Uso de equipos de protección personal.pptx
 
tipos de energias: la Energía Radiante.pdf
tipos de energias: la Energía Radiante.pdftipos de energias: la Energía Radiante.pdf
tipos de energias: la Energía Radiante.pdf
 
9 Lección perro.pptxcvBWRFWBCCCCCCCCCCCCCCTEN
9 Lección perro.pptxcvBWRFWBCCCCCCCCCCCCCCTEN9 Lección perro.pptxcvBWRFWBCCCCCCCCCCCCCCTEN
9 Lección perro.pptxcvBWRFWBCCCCCCCCCCCCCCTEN
 
Focos SSO Fin de Semana del 31 MAYO A al 02 de JUNIO de 2024.pdf
Focos SSO Fin de Semana del 31 MAYO A  al 02 de JUNIO  de 2024.pdfFocos SSO Fin de Semana del 31 MAYO A  al 02 de JUNIO  de 2024.pdf
Focos SSO Fin de Semana del 31 MAYO A al 02 de JUNIO de 2024.pdf
 
PRES 3. METROLOGÍA DE GASES Y RADIACIONES IONIZANTES.pptx
PRES 3. METROLOGÍA DE GASES Y RADIACIONES IONIZANTES.pptxPRES 3. METROLOGÍA DE GASES Y RADIACIONES IONIZANTES.pptx
PRES 3. METROLOGÍA DE GASES Y RADIACIONES IONIZANTES.pptx
 
Cargas de Cálculos Estructurales de un Puente
Cargas de Cálculos Estructurales de un PuenteCargas de Cálculos Estructurales de un Puente
Cargas de Cálculos Estructurales de un Puente
 
EXPOSICIÓN NTP IEC 60364-1 - Orlando Chávez Chacaltana.pdf
EXPOSICIÓN NTP IEC 60364-1 - Orlando Chávez Chacaltana.pdfEXPOSICIÓN NTP IEC 60364-1 - Orlando Chávez Chacaltana.pdf
EXPOSICIÓN NTP IEC 60364-1 - Orlando Chávez Chacaltana.pdf
 

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++; }