La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Ejemplos de uso //obtener una respuesta “si” o “no” static public String siNo(String x) throws IOException{ String r=U.readLine(x+” si o no?”) .trim().toLowerCase();

Presentaciones similares


Presentación del tema: "Ejemplos de uso //obtener una respuesta “si” o “no” static public String siNo(String x) throws IOException{ String r=U.readLine(x+” si o no?”) .trim().toLowerCase();"— Transcripción de la presentación:

1

2

3 Ejemplos de uso //obtener una respuesta “si” o “no” static public String siNo(String x) throws IOException{ String r=U.readLine(x+” si o no?”) .trim().toLowerCase(); return r.equals(“si”)||r.equals(“no”)) ? r : siNo(x); } //reemplazar todos los x por y en z static public String reemplazar( String x,String y,String z){ int i=z.indexOf(x); if(i<0)return z; //caso base return z.substring(0,i) + y + reemplazar(x,y,z.substring(i+x.length()));

4 Pregunta A) (1 punto) Escriba una función de encabezamiento static public String primero(String X,char Y) que entregue el primer String de X que está antes del carácter Y. Si Y no existe, entregar el X original. Ejemplos: primero(“Ana:María”,’:‘) entrega “Ana” primero(“:Ana:María”,’:‘) entrega “” primero(“Ana Maria”,’:’) entrega “Ana María” B) (2 puntos) Escriba una función que traduzca una palabra. Por ejemplo, traducción(“casa”,”Dicc.txt”) entrega “house”. El 2º parámetro corresponde al nombre del archivo con el diccionario. Cada línea del archivo contiene la palabra original, un punto y la traducción. Por ejemplo “casa.house”. El diccionario está ordenado alfabéticamente. Utilice la función escrita en A) para recuperar la primera palabra de la línea del diccionario La función traducción entrega “” si la palabra no está en el diccionario

5 Archivos //copiar archivos contando caracteres y líneas
BufferedReader I=new BufferedReader( new FileReader(U.readLine(“input?”))); PrintWriter O=new PrintWriter( new FileWriter(U.readLine(“output?”)); int nc=0,int nl=0; String linea; while((linea=I.readLine())!= null){ O.println(linea); ++nl; nc+=linea.length(); } O.close(); I.close(); U.println(nl+“ líneas “+nc+” caracteres”);

6 Pregunta . Una empresa requiere de un sistema que mantenga actualizando el inventario de productos en bodega. Para esto usted deberá hacer un programa que consolide el inventario al final del día en función de las ventas realizadas. Para esto considere lo siguiente: Existe un archivo llamado “inventario<numero>.txt“ que contiene en cada fila un número que representa un identificador de un producto, un espacio seguido de otro número que representa la cantidad disponibles de ítems de ese producto al principio del día. El número de productos es desconocido. Ejemplo: inventario45.txt . Durante el día se genera un archivo llamado “<fecha del día>.reg” que contiene un registro de cada venta de productos realizadas durante el día. El archivo en cada fila contiene una venta con el siguiente formato. Identificador de la venta, un espacio, identificador del producto, un espacio y cantidad comprada. Ejemplo: reg Escriba un programa que genere un archivo llamado “inventario<numero+1>.txt” que contenga la información del inventario original descontando las ventas realizadas en el archivo de ventas. Si la cantidad de ítems de un producto después del día es cero, este no debe escribirse en el nuevo inventario. El programa debe interactuar con el usuario de la siguiente manera: Ingrese numero inventario: 45 Ingrese fecha de hoy: Se ha generado “inventario46.txt”

7

8 Uso de objetos de una clase
//Fracción más lejana (del promedio) F f=new F(U.readLine(“nº/nº?”)), s=new F(0), min=new F(f), max=new F(f), cero=new F(); int n=0; while(!f.equals(cero)){ s.sumar(f); ++n; if(f.compareTo(max)>0) max.asignar(f); if(f.compareTo(min)<0) min.asignar(f); f.asignar(U.readLine(“nº/nº?”)); } s.dividir(new F(n)); //promedio U.println(“más lejana=“+ (max.resta(s).compareTo(s.resta(min))>0 ? max : min).toString() );

9 Objeto de clase Fracción
métodos públicos representación privada constructor Fraccion(…) asigna a procedimiento void m(…) modifica b función tipo/clase f(…) resultado consulta

10 Clase Fraccion (F) class F{ //en archivo F.java
//representacion: datos de un objeto private int a,b;//visibles en clase, no fuera //constructores: inicializan objeto public F(int x,int y){//”canónico” a=x; b=y; validar(); } public F(){a=0; b=1;}//default ctor public F(F x){a=x.a; b=x.b;}//copy ctor public F(int x){a=x; b=1;}//conversión public F(String x){asignar(x);} public F(double x){...}//si x=4.5,a=45 y b=10

11 Funciones: devuelven un resultado (no modifican objeto)
//conversores public String toString(){return a+”/”+b;} public int toInt(){return a/b;} public double toDouble(){return (double)a/b;} //comparadores public boolean equals(F x){ return a*x.b==b*x.a; } public int compareTo(F x){ return a*x.b-b*x.a;

12 //funciones que devuelven un objeto de la clase
//operadores binarios public F suma(F x){ return new F(a*x.b+b*x.a,b*x.b); } public F resta(F x){ return new F(a*x.b-b*x.a,b*x.b); public F mult(F x){ return new F(a*x.a,b*x.b); public F div(F x){ return new F(a*x.b,b*x.a); //operadores unarios public F inverso(){return new F(b,a);} public F simple(){ int m=U.mcd(a,b); return new F(a/m,b/m);}

13 Procedimientos (public void): modifican objeto
//modificadores numerador(int x){a=x;} denominador(int x){b=x; validar();} //operadores unarios simplificar(){int m=U.mcd(a,b);a/=m;b/=m);} invertir(){int t=a; a=b; b=t; validar();} //operadores binarios sumar(F x){a=a*x.b+b*x.a; b*=x.b;} restar(F x){a=a*x.b-b*x.a; b*=x.b);} multiplicar(F x){a*=x.a; b*=x.b;} dividir(F x){a*=x.b; b*=x.a; validar();}

14 Cont... //asignación public void asignar(F x){a=x.a; b=x.b;}
public void asignar(String x){ int i=x.indexOf(“/”); if(i<0){a=Integer.parseInt(x);b=1;return;} a=Integer.parseInt(x.substring(0,i)); b=Integer.parseInt(x.substring(i+1)); validar(); } //métodos internos (de servicio) private void validar(){ if(b==0) U.abortar(“denominador cero”); }}//fin class F


Descargar ppt "Ejemplos de uso //obtener una respuesta “si” o “no” static public String siNo(String x) throws IOException{ String r=U.readLine(x+” si o no?”) .trim().toLowerCase();"

Presentaciones similares


Anuncios Google