Bienvenido, Invitado |
Tienes que registrarte para poder participar en nuestro foro.
|
Estadísticas del foro |
» Miembros: 580
» Último miembro: dani
» Temas del foro: 400
» Mensajes del foro: 851
Estadísticas totales
|
Últimos temas |
examen 2023/2024
Foro: Sistemas lineales
Último mensaje por: jyl
31-10-2024, 10:59
» Respuestas: 0
» Vistas: 105
|
ejercicios de examen ( bi...
Foro: Componentes y Dispositivos
Último mensaje por: jyl
31-10-2024, 10:56
» Respuestas: 0
» Vistas: 109
|
TDCs cursos 22-23 y 23-24
Foro: Conmutación
Último mensaje por: varo
01-09-2024, 15:03
» Respuestas: 0
» Vistas: 349
|
Examen prácticas 2024
Foro: Teoría de la comunicación
Último mensaje por: varo
01-09-2024, 14:58
» Respuestas: 0
» Vistas: 116
|
segundo parcial
Foro: Transmisión de datos
Último mensaje por: jyl
28-07-2024, 17:49
» Respuestas: 0
» Vistas: 91
|
segundo parcial
Foro: Redes y servicios de telecomunicaciones
Último mensaje por: jyl
24-07-2024, 00:53
» Respuestas: 0
» Vistas: 187
|
Prácticas curso 23/24
Foro: Componentes y Dispositivos
Último mensaje por: varo
14-07-2024, 11:22
» Respuestas: 0
» Vistas: 213
|
2do parcial
Foro: Redes inalámbricas
Último mensaje por: casanova
24-06-2024, 18:30
» Respuestas: 1
» Vistas: 207
|
problema 1 del examen de ...
Foro: Teoría de la comunicación
Último mensaje por: jyl
15-06-2024, 01:53
» Respuestas: 0
» Vistas: 209
|
Parciales del 2024
Foro: Teoría de la comunicación
Último mensaje por: jyl
04-06-2024, 20:28
» Respuestas: 0
» Vistas: 389
|
|
|
Clase teclado.java |
Enviado por: alfonso - 04-01-2016, 12:15 - Foro: Fundamentos de Programación
- Respuestas (1)
|
|
Paquete que contiene únicamente la clase Teclado en la que se recogen un conjunto de métodos para el manejo de la entrada desde teclado. Estos métodos permiten la lectura de datos de todos los tipos básicos java (a excepción de booleanos): char, byte, short, int, double y float. También se incorporan métodos para la entrada de String.
La entrada se hace por líneas => se lee una línea (String) y se busca en ella el tipo de dato requerido llamando a al método parse correspondiente.
Ninguno de los métodos lanza excepciones. Si se producen, se capturan y se muestra un mensaje de error pero en ningún caso se relanzan.
Código PHP: package utilidades; // ===================================================================== // MODO DE USO: Colocar este paquete en C:\jdk1.3\jre\classes\Teclado\ // y compilarlo en ese directorio. // Añadir en Packages - ClassPath el directorio // C:\jdk1.3\jre\classes\ // Para utilizar el paquete, es necesario realizar el // siguiente import: // import Teclado.*; // =====================================================================
//package Teclado;
import java.io.*;
public class Teclado { public static final byte BYTE_ERR = Byte.MAX_VALUE; public static final short SHORT_ERR = Short.MAX_VALUE; public static final int INT_ERR = Integer.MAX_VALUE; public static final double DOUBLE_ERR = Double.MAX_VALUE; public static final float FLOAT_ERR = Float.MAX_VALUE; public static final char CHAR_ERR = Character.MAX_VALUE; public static final String STRING_ERR = null; /** * Método que lee una línea de teclado y devuelve el <code><b>byte</b></code> escrito por el usuario. * @return Devuelve el <code><b>byte</b></code> introducido por el usuario o <code><b>Teclado.BYTE_ERR</b></code> si no se introdujo un byte. */ public static byte readByte () { byte val=BYTE_ERR; try { BufferedReader in = new BufferedReader (new InputStreamReader (System.in)); val = Byte.parseByte (in.readLine()); } catch (IOException ioe) { System.out.println (">> Excepción (readLnByte): Imposible leer línea"); } catch (NumberFormatException nfe) { System.out.println (">> Excepción (readLnByte): Valor introducido no byte"); } catch (Exception e) { System.out.println (">> Excepción (readLnByte): Ocurrió una excepción"); } return val; }
/** * Método que lee una línea de teclado y devuelve el <code><b>short</b></code> escrito por el usuario. * @return Devuelve el <code><b>short</b></code> introducido por el usuario o <code><b>Teclado.SHORT_ERR</b></code> si no se introdujo un byte. */ public static short readShort () { short val=SHORT_ERR; try { BufferedReader in = new BufferedReader (new InputStreamReader (System.in)); val = Short.parseShort (in.readLine()); } catch (IOException ioe) { System.out.println (">> Excepción (readLnShort): Imposible leer línea"); } catch (NumberFormatException nfe) { System.out.println (">> Excepción (readLnShort): Valor introducido no short"); } catch (Exception e) { System.out.println (">> Excepción (readLnShort): Ocurrió una excepción"); } return val; }
/** * Método que lee una línea de teclado y devuelve el <code><b>int</b></code> escrito por el usuario. * @return Devuelve el <code><b>int</b></code> introducido por el usuario o <code><b>Teclado.INT_ERR</b></code> si no se introdujo un byte. */ public static int readInt () { int val=INT_ERR; try { BufferedReader in = new BufferedReader (new InputStreamReader (System.in)); val = Integer.parseInt (in.readLine()); } catch (IOException ioe) { System.out.println (">> Excepción (readLnInt): Imposible leer línea"); } catch (NumberFormatException nfe) { System.out.println (">> Excepción (readLnInt): Valor introducido no entero"); } catch (Exception e) { System.out.println (">> Excepción (readLnInt): Ocurrió una excepción"); } return val; }
/** * Método que lee una línea de teclado y devuelve el <code><b>double</b></code> escrito por el usuario. * @return Devuelve el <code><b>double</b></code> introducido por el usuario o <code><b>Teclado.DOUBLE_ERR</b></code> si no se introdujo un byte. */ public static double readDouble () { double val=DOUBLE_ERR; try { BufferedReader in = new BufferedReader (new InputStreamReader (System.in)); val = Double.parseDouble (in.readLine()); } catch (IOException ioe) { System.out.println (">> Excepción (readLnDouble): Imposible leer línea"); } catch (NumberFormatException nfe) { System.out.println (">> Excepción (readLnDouble): Valor introducido no double"); } catch (Exception e) { System.out.println (">> Excepción (readLnDouble): Ocurrió una excepción"); } return val; }
/** * Método que lee una línea de teclado y devuelve el <code><b>float</b></code> escrito por el usuario. * @return Devuelve el <code><b>float</b></code> introducido por el usuario o <code><b>Teclado.FLOAT_ERR</b></code> si no se introdujo un byte. */ public static double readFloat () { float val=FLOAT_ERR; try { BufferedReader in = new BufferedReader (new InputStreamReader (System.in)); val = Float.parseFloat (in.readLine()); } catch (IOException ioe) { System.out.println (">> Excepción (readLnFloat): Imposible leer línea"); } catch (NumberFormatException nfe) { System.out.println (">> Excepción (readLnFloat): Valor introducido no float"); } catch (Exception e) { System.out.println (">> Excepción (readLnFloat): Ocurrió una excepción"); } return val; }
/** * Método que lee una línea de teclado y devuelve el <code><b>char</b></code> escrito por el usuario. * @return Devuelve el <code><b>char</b></code> introducido por el usuario o <code><b>Teclado.CHAR_ERR</b></code> si no se introdujo un byte. */ public static char readChar () { char val = CHAR_ERR; try { BufferedReader in = new BufferedReader (new InputStreamReader (System.in)); val = (char) in.read(); } catch (IOException ioe) { System.out.println (">> Excepción (readLnChar): Imposible leer caracter"); } catch (Exception e) { System.out.println (">> Excepción (readLnChar): Ocurrió una excepción"); } return val; }
/** * Método que lee una línea de teclado y devuelve el <code><b>String</b></code> escrito por el usuario. * @return Devuelve el <code><b>String</b></code> introducido por el usuario o <code><b>Teclado.STRING_ERR</b></code> si no se introdujo un byte. */ public static String readString () { String val=STRING_ERR; try { BufferedReader in = new BufferedReader (new InputStreamReader (System.in)); val = in.readLine(); } catch (IOException ioe) { System.out.println (">> Excepción (readLnString): Imposible leer línea"); } catch (Exception e) { System.out.println (">> Excepción (readLnString): Ocurrió una excepción"); } return val; }
}
|
|
|
Práctica 5 |
Enviado por: alfonso - 04-01-2016, 12:08 - Foro: Fundamentos de Programación
- Respuestas (2)
|
|
Código PHP: package p5;
public class Punto implements IForma { private double x,y; private int color; public Punto(){ this.setX(0); this.setY(0); } public Punto(double e, double i){ this.setX(e); this.setY(i); } public void setX(double e){ this.x = e; } public void setY(double i){ this.y = i; } public Punto clonar(){ return new Punto(this.getX(),this.getY()); } public String toString(){ return "P[" + getX()+", "+ getY()+"]"; }
@Override public double getX() { // TODO Auto-generated method stub return this.x; }
@Override public double getY() { // TODO Auto-generated method stub return this.y; }
@Override public double getOrientacion() { // TODO Auto-generated method stub return 0; }
@Override public IForma girar(double grados, double x, double y) { double angulo = Math.toRadians(grados); double x1 = x+Math.cos(angulo)*(this.x-x)-Math.sin(angulo)*(this.y-y); double y1 = y+Math.sin(angulo)*(this.x-x)+Math.cos(angulo)*(this.y-y); return new Punto (x1, y1); }
@Override public IForma girar(double grados) { // TODO Auto-generated method stub return this.clonar(); }
@Override public IForma trasladar(double deltaX, double deltaY) { return new Punto (this.x+deltaX,this.y+deltaY); }
@Override public double distancia(double x, double y) { // TODO Auto-generated method stub return 0; }
@Override public IForma escalar(double k) { // TODO Auto-generated method stub return null; }
@Override public void setColor(int code) { color = code; }
@Override public int getColor() { return this.color; }
}
Código PHP: package p5;
public class TrianguloEquilatero implements IPoligonoRegular, IForma { private Punto p1,p2,p3; private double y; private int color;
public TrianguloEquilatero() { double y1 = 50*Math.tan(Math.toRadians(30)); p1 = new Punto (0,y1); p2 = (Punto) p1.girar(120,0,0); p3 = (Punto) p2.girar(120,0,0); } public TrianguloEquilatero(double lado){ double y1 = lado*Math.tan(Math.toRadians(30)); p1 = new Punto (0,y1); p2 = (Punto) p1.girar(120,0,0); p3 = (Punto) p2.girar(120,0,0); }
public Punto[] getVertices() { Punto vertices [] = {p1,p2,p3}; return vertices; }
public double getLado() { return p1.distancia(p2.getX(), p2.getY()); }
public void orientar(Vector v) { double orientacion = v.getOrientacion()-getOrientacion(); girar(orientacion,getCentro()); }
public void girar(double grados, Punto cdg) { p1 = (Punto) p1.girar(grados, cdg.getX(), cdg.getY()); p2 = (Punto) p2.girar(grados, cdg.getX(), cdg.getY()); p3 = (Punto) p3.girar(grados, cdg.getX(), cdg.getY()); }
public void trasladar(Vector v) { p1 = (Punto) p1.trasladar(v.getCompX(), v.getCompY()); p2 = (Punto) p2.trasladar(v.getCompX(), v.getCompY()); p3 = (Punto) p3.trasladar(v.getCompX(), v.getCompY()); }
public Punto getCentro() { double x = p1.getX()+p2.getX()+p3.getX(); double y = p1.getY()+p2.getY()+p3.getY(); return new Punto (x/3,y/3); }
public Vector getUnitario() { Vector a = new Vector (getCentro(),p1); return new Vector (getCentro(),1,a.getOrientacion()); }
public double getArea() { double h = getLado()*Math.sin(Math.PI/3); return getLado()*h/2; }
public double getPerimetro() { return 3*getLado(); }
public void reset() { Vector trasladar = new Vector (getCentro(),new Punto()); trasladar(trasladar); }
public double getX() { return getCentro().getX(); }
public double getY() { return getCentro().getY(); }
public double getOrientacion() { return getUnitario().getOrientacion(); }
public IForma girar(double grados, double x, double y) { p1 = (Punto) p1.girar(grados,x,y); p2 = (Punto) p2.girar(grados,x,y); p3 = (Punto) p3.girar(grados,x,y); return this; }
public IForma girar(double grados) { double x = getX(); double y = getY(); p1 = (Punto) p1.girar(grados,x,y); p2 = (Punto) p2.girar(grados,x,y); p3 = (Punto) p3.girar(grados,x,y); return this; }
public IForma trasladar(double deltaX, double deltaY) { p1 = (Punto) p1.trasladar(deltaX, deltaY); p2 = (Punto) p2.trasladar(deltaX, deltaY); p3 = (Punto) p3.trasladar(deltaX, deltaY); return this; }
public double distancia(double x, double y) { return getCentro().distancia(x, y); }
public IForma escalar(double k) { Punto centro = getCentro(); Vector a = (Vector) new Vector (centro,p1).escalar(k); p1 = a.getExtremo(); p2 = (Punto) p1.girar(120,centro.getX(),centro.getY()); p3 = (Punto) p2.girar(120,centro.getX(),centro.getY()); return this; }
public void setColor(int code) { color = code; }
public int getColor() { return color; }
public String toString (){ return "Triángulo --> C:P[" +getX()+ ", " +getY()+ "], L:" +getLado()+ ", P[" + p1.getX() +", " +p1.getY()+ "], P[" +p2.getX()+ ", " +p2.getY()+ "], P[" +p3.getX()+ ", " +p3.getY()+ "], theta = "+getOrientacion(); }
}
Código PHP: package p5;
public class Vector implements IForma { private Punto o,e; private double mod, ang; private final static Punto defecto = new Punto(0,0); private int color;
public Vector() { o = new Punto(0,0); e = new Punto(1,0); //mod=1; ang=0; } public Vector(double f, double i){ o = new Punto(0,0); e = new Punto(f,i); //mod=Math.sqrt((f*f)+(i*i)); ang=Math.toRadians(Math.atan(i/f)); } public Vector(Punto a){ o = new Punto(0,0); e = a.clonar(); //mod=Math.sqrt((a.getX()*a.getX())+(a.getY()*a.getY())); ang=Math.toRadians(Math.atan(a.getY()/a.getX())); } public Vector(Punto a, Punto b){ o = a.clonar(); e = b.clonar(); //mod=Math.sqrt(Math.pow((b.getX()-a.getX()),2)+(Math.pow((b.getY()-a.getY()), 2))); ang=Math.toRadians(Math.atan((b.getY()-a.getY())/(b.getX()-a.getX()))); } public Vector(Punto a, double b, double c){ mod = b; ang =Math.toRadians(c); o = a.clonar(); e = new Punto((a.getX()+Math.cos(ang)*mod),a.getY()+(Math.sin(ang)*mod)); } public Vector clonar(){ return new Vector(this.o,this.e); } public String toString(){ String h = ("Vector O: P["+o.getX() +","+o.getY()+"] E["+e.getX()+","+e.getY()+"] |v|="+mod+", ang = "+ang); return h; } public double getCompX(){ return e.getX()-o.getX(); } public double getCompY(){ return e.getY()-o.getY(); } public Punto getPuntoAplicacion(){ return o; } public Punto getExtremo(){ return e; } public double modulo(){ return Math.sqrt(getCompX()*getCompX()+getCompY()*getCompY()); } public Vector getUnitario(){ return new Vector(this.o,1,this.ang); } public static Vector getUnitario(double gr){ return new Vector(defecto,1,gr); }
@Override public double getX() { return o.getX(); }
@Override public double getY() { return o.getY(); }
@Override public double getOrientacion() { return Math.toDegrees(Math.atan2(getCompY(),getCompX())); }
@Override public IForma girar(double grados, double x, double y) { Punto o = (Punto) this.o.girar(grados,x,y); Punto e = (Punto) this.e.girar(grados,x,y); return new Vector (o,e); }
@Override public IForma girar(double grados) { return new Vector(o,(Punto) e.girar(grados,o.getX(),o.getY())); }
@Override public IForma trasladar(double deltaX, double deltaY) { return new Vector(new Punto (o.getX()+deltaX, o.getY()+deltaY),new Punto (e.getX()+deltaX, e.getY()+deltaY)); }
@Override public double distancia(double x, double y) { return o.distancia(x, y); }
@Override public IForma escalar(double k) { return new Vector (o, modulo()*k,getOrientacion()); }
@Override public void setColor(int code) { color=code; }
@Override public int getColor() { return color; }
}
|
|
|
Práctica 4 |
Enviado por: alfonso - 04-01-2016, 12:04 - Foro: Fundamentos de Programación
- Respuestas (1)
|
|
Código PHP: package p4; import p4.Matrices; import utilidades.Teclado;
public class ProcesarArrays {
// PRÁCTICA 4 EJERCICIO 1 ............................................................ public static void invertir(int a []){ if(a!=null){ int b[] = new int [a.length]; int j=a.length-1; for(int i=0;i<a.length;i++){ b[j--]=a[i]; }
System.out.print("La matriz inversa de ("); for(int i=0;i<a.length;i++){ System.out.print(a[i]+ " "); } System.out.print(") es ("); for(int i=0;i<b.length;i++){ System.out.print(b[i]+ " "); } System.out.println(")"); }else System.out.println("El elemento de entrada es NULL"); if(a.length==0) System.out.println("El elemento de entrada es de dimension 0"); }
// PRÁCTICA 4 EJERCICIO 2.......................................................... public static int [] ordenar(int [] a, boolean ascendente){ int b[]= new int [a.length]; int aux; if(a==null) return null; for(int g=0;g<a.length;g++){ b[g]=a[g]; } if(ascendente==true){ for(int i=0;i<b.length-1;i++){ for(int j=0;j<b.length-1-i;j++){ if(b[j]>b[j+1]){ aux=b[j]; b[j]=b[j+1]; b[j+1]=aux; } } } }else{ for(int i=0;i<b.length-1;i++){ for(int j=0;j<b.length-1-i;j++){ if(b[j]<b[j+1]){ aux=b[j]; b[j]=b[j+1]; b[j+1]=aux; } } } } return b; } // PRÁCTICA 4 EJERCICIO 3..................................................... public static boolean hayRepetidos(int a []){ if(a==null || a.length==1) return false; for(int i=0;i<a.length;i++){ for(int j=i+1;j<a.length;j++){ if(a[i]==a[j]) return true; } } return false; }
// PRÁCTICA 4 EJERCICIO 4....................................................... public static int cuentaOcurrencias(int [] a, int k){ if(a.length==0) return 0; int z=0; for(int i=0;i<a.length;i++){ if(a[i]==k) z++; } return z;
}
public static int [] eliminarK(int [] a, int k){ if(a.length==0){ int b[]= new int [0]; return b; } if(a == null) return null; int b[]= new int [a.length-cuentaOcurrencias(a,k)]; int j=0; for(int i=0;i<a.length;i++){ if(a[i]!=k) b[j++]=a[i]; }
return b; }
// PRÁCTICA 4 EJERCICIO 5................................................. public static int [] ordenarIndices (char [] s){ if(s==null) return null; if(s.length == 0){ int b[]= new int[0]; return b; } char t[] = {'a','b','c','d','e','f','g','h','i','j','k','l','m','n','ñ','o','p','q','r','s','t','u','v','w','x','y','z'}; int b[] = new int [s.length]; for(int i=0;i<s.length;i++){ for(int j=0;j<t.length;j++){ if(s[i] == t[j]) b[i]=j; } } return b; }
// PRÁCTICA 4 EJERCICIO 6.................................................... public static int [] busquedaBinaria (int [] a, int clave){ if(a==null) return null; for(int i=0;i<a.length-1;i++){ if(a[i]>a[i+1]) return null; } int z = cuentaOcurrencias(a,clave); if(z==0) return null; int b[]= new int [2]; //int contador=0; //boolean prim=true; int bajo = 0; int alto = a.length -1; int medio; while (bajo <= alto) { medio = (bajo + alto) / 2; if (clave == a[medio]) { // se encontró b[0]=medio; b[1]=medio; if(a[medio-1]== clave){ b[0] = medio -1; b[1] = medio; } if(a[medio+1]==clave){ b[0]=medio; b[1]=medio+1; } //System.out.println ("Está en " + medio); //break; return b; } else if (clave < a[medio]){ alto = medio - 1; } else { bajo = medio + 1; } } return b; }
// PRÁCTICA 4 EJERCICIO 7.................................................... public static int busquedaBinariaRecursiva(int [] a, int clave){ if(a==null) return -1; for(int i=0;i<a.length-1;i++){ if(a[i]>a[i+1]) return -1;//devuelve -1 si no está ordenada de menor a mayor } int z = cuentaOcurrencias(a,clave); if(z>1) return -1;//devuelve -1 si hay elementos repetidos int bajo = 0; int alto = a.length -1; int medio,tmp; if(bajo <= alto){
} while (bajo <= alto) { medio = (bajo + alto) / 2; if (clave == a[medio]) { // se encontró //System.out.println ("Está en " + medio); //break; return tmp; } else if (clave < a[medio]){ alto = medio - 1; } else { bajo = medio + 1; } }
}
// PRÁCTICA 4 EJERCICIO 8..................................................... /** * Devuelve un matriz resultado de haber eliminado la fila * n-ésima de la matriz m pasada como argumento. * @param m matriz * @param n número de fila * @return matriz resultado de haber eliminado la fila * n-ésima de la matriz m pasada como argumento. * null si m no es matriz o no existe la fila. */ public static double [][] quitarFila(double [][] m, int n){ if(Matrices.esMatriz(m)==false) return null; if(n>=m.length || n<0) return null; double b [][] = new double [m.length-1][m[0].length]; if(n==m.length-1){ for(int i=0;i<m.length-1;i++){ for(int j=0;j<m[i].length;j++){ //System.out.println(i); //System.out.println(j); b[i][j] = m[i][j]; } } }else{ int h=0; for(int i=0;i<m.length;i++){ if(i != n){ for(int j=0;j<m[i].length;j++){ b[h][j] = m[i][j]; } h++; }
} } return b; }
// PRÁCTICA 4 EJERCICIO 9..................................................... /** * Devuelve un matriz resultado de haber eliminado la * n-ésima columna de la matriz m pasada como argumento. * @param m matriz * @param n columna * @return matriz resultado de haber eliminado la * n-ésima columna de la matriz m pasada como argumento.. * null si m no e matriz o no existe la columna. */ public static double [][] quitarCol(double [][] m, int n){ if(Matrices.esMatriz(m)==false) return null; if(n>=m.length || n<0) return null; double b [][] = new double [m.length][m[0].length-1]; int h=0; if(n==0){ //System.out.println("if 1º"); for(int i=0;i<m.length;i++){ h=0; for(int j=1;j<m[i].length;j++){ b[i][h++]=m[i][j]; } } }else if(n==m[0].length-1){ //System.out.println("if 2"); for(int i=0;i<m.length;i++){ for(int j=0;j<m[i].length-1;j++){ b[i][j] = m[i][j]; } } }else{ //h=0; //System.out.println("el else"); for(int i=0;i<m.length;i++){ h=0; for(int j=0;j<m[i].length;j++){ if(j != n){ b[i][h++] = m[i][j]; } } } } return b; }
// PRÁCTICA 4 EJERCICIO 10...................................................... /** * Dado un determinante de orden n, se llama menor complementario del * elemento aij, al determinante de orden n-1 que resulta de suprimir * en el determinante dado la fila i-ésima y la columna j-ésima. * @param m determinante de orden n * @param i índice de fila (aij) * @param j índice de columna (aij) * @return array de dos dimensiones con los elementos del menor complementario de m. * null si m no es matriz o i y j no representan una fila y columna válidas. */ public static double [][] getMenorComplementario (double [][] m, int i, int j){ if(Matrices.esMatriz(m)==false) return null; return quitarFila(quitarCol(m,j),i); } public static void resultado(int a[], int b[]){ for(int v=0;v<a.length;v++){ System.out.print(a[v]+ " "); } System.out.print("--a--> "); for (int n=0;n<b.length;n++){ System.out.print(b[n]+ " "); } System.out.println("");
} public static void resultado(char a[], int b[]){ for(int v=0;v<a.length;v++){ System.out.print(a[v]+ " "); } System.out.print("--a--> "); for (int n=0;n<b.length;n++){ System.out.print(b[n]+ " "); } System.out.println("");
}
public static void main(String[] args) { int h[]={4,23,45,13,45,3,1}; int h2[] = {0,1,1,3,4,5,13,13,20,22,40,42,42,42,44}; char x[]= {'a','l','f','o','n','s','o'}; int op,s; do{ System.out.println("1. Invertir matriz"); System.out.println("2. Orden ascentende"); System.out.println("3. Orden descendente"); System.out.println("4. Elementos repetidos?"); System.out.println("5. Eliminar elemento"); System.out.println("6. Ordenar índices"); System.out.println("7. Búsqueda binaria"); System.out.println("8. salir"); op = Teclado.readInt(); switch (op){ case 1: System.out.println("Invertir matriz"); invertir(h); break; case 2: System.out.println("Orden ascendente:"); int j[]=ordenar(h,true); for(int v=0;v<j.length;v++){ System.out.print(h[v]+ " "); } System.out.print("--a--> "); for (int n=0;n<j.length;n++){ System.out.print(j[n]+ " "); } System.out.println(""); break; case 3: System.out.println("Orden descendente"); int k[]=ordenar(h,false); resultado(h,k); break; case 4: System.out.println("Elementos repetidos: "+ hayRepetidos(h));
break; case 5: System.out.print("Elemento a eliminar: "); s = Teclado.readInt(); resultado(h,eliminarK(h,s)); case 6: System.out.println("Ordenar índices"); resultado(x,ordenarIndices(x)); case 7: System.out.print("Introduce clave a buscar: "); s = Teclado.readInt(); resultado(h2,busquedaBinaria(h2,s)); }
}while(op<8); }
}
Código PHP: package p4;
import java.text.DecimalFormat;
public class Matrices {
/** * Comprueba si un array de dos dimensiones es matriz. * m != null && m[i] != null para i= 0..m.length-1 && m[i].length = m.length, i = 0..length-1 * @param m array bidimensional a comprobar * @return true si m es matriz, false si no lo es. */ public static boolean esMatriz(double [][] m){ if (m == null){ return false; } if (m.length == 0){ return true; } for (int i = 0; i < m.length; i++){ if (m[i] == null){ return false; } if (m[i].length != m[0].length){ return false; } } return true; } /** * Comprueba si un array de dos dimensiones es matriz cuadrada. * m es matriz && m.length == m[0].length * @param m array bidimensional a comprobar * @return true si m es matriz cuadrada, false si no lo es. */ public static boolean esMatrizCuadrada(double [][] m){ if (!esMatriz(m)){ return false; } if (m.length == 0){ return true; } if (m.length == m[0].length){ return true; } return false; } /** * Devuelve la traspuesta de una matriz dada * @param m matriz * @return traspuesta de m * null si m no es matriz. */ public static double [][] traspuesta(double [][] m){ if (!esMatriz(m)){ System.out.println("traspuesta: no es matriz: retorna null"); return null; } double [][] tr = new double[m[0].length][m.length]; for (int i = 0; i < tr.length; i++){ for (int j = 0; j < tr[i].length; j++){ tr[i][j] = m[j][i]; } } return tr; }
/** * * Para depuración. * * Imprime en consola la matriz representada por m. * @param p polinomio. */ public static void printMatriz(double [][] m){ if (!esMatriz(m)){ System.out.println("no es matriz"); return; } // Representación de los números con dos decimales. DecimalFormat form = new DecimalFormat(); form.setMaximumFractionDigits(2); String [][] ms = new String[m.length][m[0].length]; // Por cada columna apuntamos el elemento que más ocupa para // ajustar la anchura de la columna en todas las filas. int [] anchoCol = new int[m[0].length]; for (int i = 0; i < anchoCol.length; i++){ anchoCol[i] = 0; } // Obtenemos las representaciones de los números con dos decimales // y apuntamos los anchos de columna. for (int i = 0; i < ms.length; i++){ for(int j = 0; j < ms[i].length; j++){ ms[i][j] = form.format(m[i][j]); if (anchoCol[j] < ms[i][j].length()){ anchoCol[j] = ms[i][j].length(); } } } // Reconstruimos los elementos de ms ajustando las columnas y añadiendo // blancos de separación entre columnas. for (int i = 0; i < ms.length; i++){ for(int j = 0; j < ms[i].length; j++){ // Ajustar while (ms[i][j].length() < anchoCol[j]){ ms[i][j] = " " + ms[i][j]; } // Añadir separación. ms[i][j] = ms[i][j] + " "; } } // Imprimimos for (int i = 0; i < ms.length; i++){ for (int j = 0; j < ms[i].length; j++){ System.out.print(ms[i][j]); } System.out.println(); } }
/** * Compara dos arrays de double * @param m1 array 1 * @param m2 array 2 * @return true si son iguales elemento a elemento o si ambas referencias son null * false en caso contrario. */ public static boolean compararMatrices(double [][] m1, double [][] m2){ if (m1 == null && m2 == null){ return true; } if (!esMatriz(m1) || !esMatriz(m2) ){ return false; }
if (m1 == m2){ return true; } if (m1.length != m2.length){ return false; } if (m1[0].length != m2[0].length){ return false; }
for (int i = 0; i < m1.length; i++){ for(int j = 0; j < m1[i].length; j++){ if (m1[i][j] != m2[i][j]){ return false; } } } return true; } /** * * Para depuración. * * Imprime en consola los elementos de un array de doubles. * @param a array. */ public static void printArray(double [] a){ if (a == null){ System.out.print("null"); return; } System.out.print("{"); if (a.length == 0){ System.out.print("}"); return; } DecimalFormat form = new DecimalFormat(); form.setMaximumFractionDigits(3); for (int i = 0; i < a.length-1; i++){ System.out.print(form.format(a[i]) + ", "); } System.out.print(form.format(a[a.length-1]) + "}"); }
/** * * Para depuración. * * Coloca en un array de Strings las filas de m. * @param m matriz. * @return array de Strings las filas de m. * null si m no representa a una matriz. */ public static String [] matrizToStringArray(double [][] m){ if (!Matrices.esMatriz(m)){ return null; } String [] filas = new String[m.length];
// Representación de los números con dos decimales. DecimalFormat form = new DecimalFormat(); form.setMaximumFractionDigits(3); String [][] ms = new String[m.length][m[0].length]; // Por cada columna apuntamos el elemento que más ocupa para // ajustar la anchura de la columna en todas las filas. int [] anchoCol = new int[m[0].length]; for (int i = 0; i < anchoCol.length; i++){ anchoCol[i] = 0; } // Obtenemos las representaciones de los números con dos decimales // y apuntamos los anchos de columna. for (int i = 0; i < ms.length; i++){ for(int j = 0; j < ms[i].length; j++){ ms[i][j] = form.format(m[i][j]); if (anchoCol[j] < ms[i][j].length()){ anchoCol[j] = ms[i][j].length(); } } } // Reconstruimos los elementos de ms ajustando las columnas y añadiendo // blancos de separación entre columnas. for (int i = 0; i < ms.length; i++){ for(int j = 0; j < ms[i].length; j++){ // Ajustar while (ms[i][j].length() < anchoCol[j]){ ms[i][j] = " " + ms[i][j]; } // Añadir separación. ms[i][j] = ms[i][j] + " "; } } // Copiamos; for (int i = 0; i < ms.length; i++){ StringBuffer sb = new StringBuffer(); for (int j = 0; j < ms[i].length; j++){ sb.append(ms[i][j]); } filas[i] = sb.toString(); } return filas; } public static void printTabla(String [][] ms){ // Por cada columna apuntamos el elemento que más ocupa para // ajustar la anchura de la columna en todas las filas. int [] anchoCol = new int[ms[0].length]; for (int i = 0; i < anchoCol.length; i++){ anchoCol[i] = 0; } // Obtenemos las representaciones de los números con dos decimales // y apuntamos los anchos de columna. for (int i = 0; i < ms.length; i++){ for(int j = 0; j < ms[i].length; j++){ if (ms[i][j] == null){ ms[i][j] = "null"; } if (anchoCol[j] < ms[i][j].length()){ anchoCol[j] = ms[i][j].length(); } } } // Reconstruimos los elementos de ms ajustando las columnas y añadiendo // blancos de separación entre columnas. for (int i = 0; i < ms.length; i++){ for(int j = 0; j < ms[i].length; j++){ // Ajustar while (ms[i][j].length() < anchoCol[j]){ ms[i][j] = ms[i][j] + " "; } // Añadir separación. ms[i][j] = ms[i][j] + " "; } } // Imprimimos for (int i = 0; i < ms.length; i++){ for (int j = 0; j < ms[i].length; j++){ System.out.print(ms[i][j]); } System.out.println(); } }
}
|
|
|
Práctica 3 |
Enviado por: alfonso - 03-12-2015, 19:06 - Foro: Fundamentos de Programación
- Respuestas (3)
|
|
Código PHP: package p3;
import utilidades.Teclado;
public class MCD_2 {
public static void main(String[] args) { System.out.println("Introduzca un numero entero,m:"); int m=Teclado.readInt(); System.out.println("Introduzca otro numero entero,n:"); int n=Teclado.readInt(); System.out.print("El maximo comun divisor de "+m+" y "+n+" es: "); System.out.println(mcd(m,n));
} public static int mcd(int a,int b){
while (a!=b){ if (a>b){ a=a-b; } else{ b=b-a;
} } return a; } }
Código PHP: package p3; import utilidades.Teclado;
public class Calculadora { public static void main (String[]args){ int op1,op2,suma,resta,producto,division,modulo,abs,opcion; System.out.println("Introduce Operando1:"); op1=Teclado.readInt(); System.out.println("Introduce Operando2:"); op2=Teclado.readInt(); System.out.println("------------------"); System.out.println("1. Suma"); System.out.println("2. Resta"); System.out.println("3. Producto"); System.out.println("4. Módulo"); System.out.println("5. Valor absoluto"); System.out.println("6. División"); System.out.println("------------------"); opcion=Teclado.readInt(); if(opcion<1 || opcion >6){ System.out.println("Valor introducido incorrecto"); } else{ switch(opcion){ case 1: suma=op1+op2; if(suma<op1 && suma<op2){ System.out.println("Desbordamiento"); }else System.out.println("El resultado de la suma es:"+suma); break; case 2: resta=op1-op2; if(resta>op1 || resta>op2){ System.out.println("Desbordamiento"); } else System.out.println("El resultado de la resta es:"+resta); break; case 3: producto=op1*op2; if(producto/op1!=op2){ System.out.println("Desbordamiento"); }else System.out.println("El restultado del producto es"+producto); break; case 4: if(op2==0){ System.out.println("Imposible dividir por 0"); }else{ modulo=op1%op2; System.out.println("El resultado del modulo2: "+modulo); } break; case 5: abs=Math.abs(op1); System.out.println("El valor absoluto del Operando1 es:"+abs); break; case 6: if(op2==0){ System.out.println("Imposible dividir por 0"); }else{ division=op1/op2; System.out.println("El resultado de la division entera es: "+division); } break; } } }
}
Código PHP: package p3; import utilidades.Teclado;
public class MCD_1 { public static void main (String[]args){ System.out.println("Introduzca un numero entero,m:"); int m=Teclado.readInt(); System.out.println("Introduzca otro numero entero,n:"); int n=Teclado.readInt(); System.out.print("El maximo comun divisor de "+m+" y "+n+" es: "); System.out.println(mcd(m,n)); } public static int mcd(int a,int b){ if(a%b==0){ return b; } if(b%a==0){ return a; } if(b==0) { return a; } else return mcd(b, a%b); } }
|
|
|
|