pirámide de números

des una lista de números 123456789 en unarchivo .txt

    1     9 8 7 6 5
  2 3 4     4 3 2
5 6 7 8 9     1
Que numero deseas quitar: 3

    1     9 8 7 6 5
  2   4     4   2
5 6 7 8 9     1

……………………………………………………….

package ordenamientopiramide;
import java.util.Scanner;
import java.io.*;
/**
*
* @author JPablo
*/
public class Main {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
        Scanner obj = new Scanner(System.in);
        System.out.print("Ruta: ");
        String a = obj.nextLine();
        BufferedReader br = null;
        try{
           br = new BufferedReader(new FileReader(new File (a)));
           String linea = br.readLine();
           br.close();
           int x[]= new int [linea.length()];
           for(int i=0; i<x.length;i++){
               System.out.print((x[i]=Integer.parseInt(linea.charAt(i)+""))+", ");
           }
           System.out.println();
           int aux;
           for(int i=1;i<x.length;i++){
               for(int j = x.length-1;j>=i;j–){
                   if(x[j]<x[j-1]){
                       aux=x[j];
                       x[j]=x[j-1];
                       x[j-1]=aux;
                   }
               }
           }
           int may = 0;
           for(int i=1; i<=x.length-1;i++){
               if(x.length%i==0){
                   if(may<i){
                       System.out.println((may=i));
                   }
               }
           }
           System.out.println("\n");
           aux=0;
           int aux2=x.length-1;
           for(int i=1; i<=may;i++){
               int j=1;
               for(j=1;j<=may-i;j++)
                   System.out.print("  ");
               for(int k=0; k<2*i-1;k++)
                   System.out.print(x[aux++]+" ");
               for(j=may+1;j>0;j–)
                   System.out.print(" ");
               for(int k=0;k<2*(may-i)+1; k++) {
                   System.out.print(x[aux2–]+" ");
               }
               System.out.println();
           }
           System.out.print("Que numero deceas quitar: ");
           int num = obj.nextInt();
           System.out.println("\n");
           aux=0;
           aux2=x.length-1;
           for(int i=1; i<=may;i++){
               int j=1;
               for(j=1;j<=may-i;j++)
                   System.out.print("  ");
               for(int k=0; k<2*i-1;k++){
                   if(num == x[aux]){
                       System.out.print("  ");
                       aux++;
                   }
                   else
                       System.out.print(x[aux++]+" ");
               }
               for(j=may+1;j>0;j–)
                   System.out.print(" ");
               for(int k=0;k<2*(may-i)+1; k++) {
                   if(num==x[aux2]){
                       System.out.print("  ");
                       aux2–;
                   }
                   else
                       System.out.print(x[aux2–]+" ");
               }
               System.out.println();
           }
        }catch(Exception e){
            e.printStackTrace();
        }
    }
}

Publicado en Sin categoría | 1 Comentario

curso ejc. 9

/*
* Escribe un programa que descomponga un número entero n de hasta cuatro dígitos en unidades, decenas, centenas
* y unidades de millar. Por ejemplo si n=1234, el programa debe imprimir un mensaje indicando que hay cuatro unidades, tres decenas, dos centenas y una unidad de millar.
* Entradas por teclado: un número entero n, positivo mayor que cero con valor posible desde uno hasta cuatro dígitos.
* Salidas por pantalla  Imprimir un mensaje indicando su descomposición.
*/

package ejrc9;
/**
*
* @author JPablo
*/
public class Main {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
        NumALetra obj = new NumALetra();
    }
}

————————————————–

package ejrc9;
import java.util.Scanner;
/**
*
* @author JPablo
*/
public class NumALetra {
    public NumALetra()
    {
        int Numero = 0;
        String Cadena = "";
                Scanner consola = new Scanner (System.in);
        while(true)
        {
                        System.out.print("Dame un numero: ");
            Numero = consola.nextInt();
            Cadena = Conv(Numero);
            System.out.println(Cadena);
            if (Numero == 0) System.exit(0);
        }
    }

    String Conv(int Numero)
    {
        String Cadena = "";
        int Centenas = Numero / 100;
            Numero = Numero – Centenas * 100;
        int Decenas = Numero / 10;
            Numero = Numero – Decenas * 10;
        int Unidades = Numero;
        if (Centenas > 0)
        {
            Cadena += "cien";
            if (Centenas > 1 || Decenas != 0 || Unidades != 0) Cadena += "to";
            if (Centenas > 1)
            {
                switch (Centenas)
                {
                    case 5: Cadena = "quiniento"; break;
                    case 7: Cadena = "sete" + Cadena; break;
                    case 9: Cadena = "nove" + Cadena; break;
                    default: Cadena = ConvUnidades(Centenas) + Cadena;
                }
                Cadena += "s ";
            }
        }

        if (Decenas > 0)
            if (Decenas == 1 && Unidades == 0) Cadena += ConvDecenas(1, 0);
            else if (Decenas == 1 && Unidades < 6)
            {
                Cadena += DecenaEspecial(Unidades);
                Unidades = 0;
            }
            else if (Decenas == 1 && Unidades > 5)
            {
                Cadena += "dieci";
            }
            else
            {
                Cadena += ConvDecenas(Decenas, Unidades);
                Cadena.concat(ConvUnidades(Unidades));
            }
        if (Unidades > 0)
            Cadena += ConvUnidades(Unidades);

        return Cadena;
    }

    String ConvDecenas(int D, int U)
    {
        String Decenas = "";

        switch(D)
        {
            case 1:    Decenas = "Diez"; break;
            case 2:
                if (U == 0) Decenas = "Veinte";
                else Decenas = "Veinti";
                break;
            case 3: Decenas = "Treinta"; break;
            case 4: Decenas = "Cuarenta"; break;
            case 5: Decenas = "Cincuenta"; break;
            case 6: Decenas = "Sesenta"; break;
            case 7: Decenas = "Setenta"; break;
            case 8: Decenas = "Ochenta"; break;
            case 9: Decenas = "Noventa"; break;
        }
        if (U != 0 && D != 2) Decenas += " y ";
        return Decenas;
    }

    String DecenaEspecial(int U)
    {
        String Unidades = "";
        switch(U)
        {
            case 1: Unidades = " once"; break;
            case 2: Unidades = " doce"; break;
            case 3: Unidades = " trece"; break;
            case 4: Unidades = " catorce"; break;
            case 5: Unidades = " quince";
        }
        return Unidades;
    }

    String ConvUnidades(int U)
    {
        String Unidades = "";
        switch(U)
        {
            case 1: Unidades = " uno"; break;
            case 2: Unidades = " Dos"; break;
            case 3: Unidades = " Tres"; break;
            case 4: Unidades = " Cuatro"; break;
            case 5: Unidades = " Cinco"; break;
            case 6: Unidades = " Seis"; break;
            case 7: Unidades = " Siete"; break;
            case 8: Unidades = " Ocho"; break;
            case 9: Unidades = " Nueve"; break;
        }
        return Unidades;
    }
}

Publicado en Sin categoría | Deja un comentario

curso ejc. 8

/*
* El mínimo común múltiplo de dos o más números es el menor múltiplo común para todos ellos que es distinto de cero. Por ejemplo para el par de números 20 y 10:
    20:    20, 40, 60, 80…
    10:    10, 20, 30…
* El número 20 es el mínimo común múltiplo pues el múltiplo común más pequeño.
* Escribe un programa que calcule el mínimo común múltiplo de un par de números enteros.
* Entradas por teclado: dos números enteros n1, n2. Positivos, mayores de cero con valor máximo de 1000 cada uno.
* Salidas por pantalla  Imprimir un mensaje indicando cuál es el valor del mínimo común múltiplo.
*/

package ejerc8;
import java.util.Scanner;
/**
*
* @author JPablo
*/
public class Main {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
        Scanner consola = new Scanner(System.in);
        int n1[]= new int [2];
        System.out.print("n1: ");
        n1[0] = consola.nextInt();
        System.out.print("n2: ");
        n1[1] = consola.nextInt();
        if((n1[0]>0&&n1[0]<1000)&&(n1[1]>0&&n1[1]<1000)){
            int aux=1,count=1;
            do{
                aux=count*n1[0];
                count++;
            }while(n1[1]%aux!=0);
            System.out.println("El minimo con mun multiplo es:"+aux);
        }
        else{
            System.out.println("n no puede ser menor a 1… error");
        }
    }
}

Publicado en Sin categoría | Deja un comentario

curso ejc. 7

/*
* 7.    El máximo común divisor de dos o más números naturales es el mayor
* divisor posible de todos ellos, es decir, el mayor de los números enteros
* que puede dividirlos exactamente a los dos.
*/

package ejerc7;
import java.util.Scanner;
/**
*
* @author JPablo
*/
public class Main {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
        Scanner consola = new Scanner(System.in);
        String s="*", sum[]= new String [2];
        sum[0]="";
        sum[1]="";
        do{
            int n1[]= new int [2];
            System.out.print("n1: ");
            sum[0]+=(n1[0] = consola.nextInt())+" = {";
            System.out.print("n2: ");
            sum[1]+=(n1[1] = consola.nextInt())+" = {";
            if((n1[0]>0&&n1[0]<1000000)&&(n1[1]>0&&n1[1]<1000000)){
                for(int i=0; i<n1.length;i++)
                    for(int j=1;j<=n1[i];j++)
                        if(n1[i]%j==0)
                            sum[i]+=j+", ";
            }
            else{
                System.out.println("error… deceas continuar n/y");
                s = consola.nextLine();
            }
        }while(s.equals("y"));
        System.out.println(sum[0]+"}");
        System.out.println(sum[0]+"}");
    }
}

Publicado en Sin categoría | Deja un comentario

curso ejc. 6

/*
* Un número perfecto es un número natural que es igual a la suma de sus divisores propios positivos,
* sin incluirse él mismo. Así, 6 es un número perfecto, porque sus divisores propios son 1, 2 y 3;
* y 6 = 1 + 2 + 3.
* Considerando la suma de los divisores propios existen otros tipos de números.
* Números defectivos: la suma de los divisores propios es menor que el número.
* Números abundantes: la suma es mayor que el número.
* Escribe un programa que evalúe un número en función de sus divisores y determine si el mismo es perfecto, defectivo o abundante.
* Entradas por teclado: un número entero n. Positivo, mayor de cero con valor máximo de 1, 000, 000.
* Salidas por pantalla  Imprimir un mensaje indicando que tipo de número es n.
*/

package ejrc6;
import java.util.Scanner;
import javax.swing.JOptionPane;
/**
*
* @author JPablo
*/
public class Main {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
        Scanner consola = new Scanner(System.in);
        System.out.print("n:");
        int n = consola.nextInt();
        if(n>0){
            int numero = n, suma=0, divisor=1;
            while(divisor<numero){
                if(numero%divisor==0){
                    System.out.println("\n"+divisor);
                    suma=suma+divisor;
                }
                divisor++;
            }
            if(suma==numero){
                JOptionPane.showMessageDialog(null, n+" SI es Perfecto","Resultado",JOptionPane.INFORMATION_MESSAGE);
            }
            else{
                JOptionPane.showMessageDialog(null, n+" NO es Perfecto","Resultado",JOptionPane.INFORMATION_MESSAGE);
            }
        }else
            JOptionPane.showMessageDialog(null, n+"< 0","Error",JOptionPane.ERROR_MESSAGE);
    }
}

Publicado en Sin categoría | Deja un comentario

curso ejc. 5

/*
* Para solucionar un sistemas de ecuaciones lineales, el método de sustitución consiste en
* despejar en una de las ecuaciones cualquier incógnita, preferiblemente la que tenga menor
* coeficiente, para, a continuación, sustituirla en otra ecuación por su valor.
* En caso de sistemas con más de dos incógnitas, la seleccionada debe ser sustituida por su
* valor equivalente en todas las ecuaciones excepto en la que la hemos despejado.
* En ese instante, tendremos un sistema con una ecuación y una incógnita menos que el inicial,
* en el que podemos seguir aplicando este método reiteradamente.
*/

package ejerc5;
import java.util.Scanner;
/**
*
* @author JPablo
*/
public class Main {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
        Scanner consola = new Scanner(System.in);
        int x[]= new int [2];
        int y[]= new int [2];
        int c[]= new int [2];
        for(int i=0; i<x.length;i++){
            System.out.print("coeficientes x"+i+": ");
            x[i] = consola.nextInt();
            System.out.print("coeficientes y"+i+": ");
            y[i] = consola.nextInt();
            System.out.print("c"+i+": ");
            c[i] = consola.nextInt();
            System.out.println();
        }
        System.out.println("\nEcuaciones:\n" +
                "1er "+x[0]+"x+("+(y[0])+")y="+c[0]+"\n" +
                "2da "+x[1]+"x+("+(y[1])+")y="+c[1]+"\n");
        int xx, cc, sumx;
        System.out.println(cc=y[1]*c[0]);
        System.out.println(xx=y[1]*(-x[0]));
        System.out.println(cc=(-1*(y[1]*c[0]))+c[1]);
        System.out.println(sumx=x[1]+xx);
        double rx=(double)cc/sumx;
        System.out.println("x = "+(int)rx+"\n\tsutitullendo en y…");
        double ry=c[0]-(x[0]*rx);
        System.out.println("y ="+ry);
    }
}

Publicado en Sin categoría | Deja un comentario

curos ejc. 4

/*
* Algunos números enteros se pueden representar como la suma de dos enteros al cuadrado, X = Y2+Z2,
* donde y,z pueden ser  iguales o diferentes, pero siempre enteros. Escribe un programa que determine la cantidad
* de formas distintas en las cuales se pueda escribir un número n respetando la regla anterior.
* Toma en consideración que el número n es positivo, mayor que cero y no mayor que 1, 000, 000.
* Por ejemplo si n =50 se puede expresar como 12+72 o 52+52.
* Entradas por teclado: un número entero n.
* Salidas por pantalla  Imprimir un mensaje por cada par (y, z) que cumpla la condición para  el número n.
*/

package ejerc4;
import java.util.Scanner;
/**
*
* @author JPablo
*/
public class Main {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
        Scanner consola = new Scanner (System.in);
        String y="*",formas="";
        do{
            System.out.print("n+ = ");
            int n = consola.nextInt(), nveces=0;
            double x;
            if((n>0)&&(n<1000000)){
                for(int i=0; i<n;i++){
                    for(int j=0;j<n;j++){
                        x=Math.pow(i, 2)+Math.pow(j,2);
                        if((int)x==n){
                            nveces++;
                            formas+=(int)x+"=("+i+"^2)+("+j+"^2)\n";
                        }
                    }
                }
            }
            else
                y="y";
        }while(y.equals("y"));  
        System.out.println(formas);
    }
}

Publicado en Sin categoría | Deja un comentario

curso ejc. 3

/*
*  Escribe un programa que con cuatro valores enteros imprima el mayor y el menor valor que se puedan
* formar con la unión de ellos en cualquier orden pero sin poder usar la misma variable dos o más veces.
* Los valores de las variables si pueden ser iguales.
* Entradas por teclado: cuatro números enteros a, b, c, d. Todos ellos menores de 10 y mayores o iguales a 0.
* Salidas por pantalla  Imprimir un mensaje indicando cual es el mayor y el menor de los números que se pueden formar con ellos.
*/

package revoltoso;
import java.util.Scanner;
import java.util.StringTokenizer;
/**
*
* @author Abraham
*/
public class Main {
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
        Scanner consola = new Scanner(System.in);
        System.out.print("Diguitos: ");
        String a = consola.nextLine();
        StringTokenizer token = new StringTokenizer(a," ");
        int x[] = new int [4];
        int i=0;
        while(token.hasMoreTokens()){
            String palabra = token.nextToken().toLowerCase();
            System.out.println(x[i++]=Integer.parseInt(palabra));
        }
        int aux=0;
        for(i=1; i<x.length;i++){
            for(int j=x.length-1;j>=i;j–){
                if(x[j]>x[j-1]){
                    aux=x[j];
                    x[j]=x[j-1];
                    x[j-1]=aux;
                }
            }
        }
        for(i=0; i<x.length;i++){
            System.out.print(x[i]);
        }
        aux=0;
        for(i=1; i<x.length;i++){
            for(int j=x.length-1;j>=i;j–){
                if(x[j]<x[j-1]){
                    aux=x[j];
                    x[j]=x[j-1];
                    x[j-1]=aux;
                }
            }
        }
        System.out.println();
        for(i=0; i<x.length;i++)
            System.out.print(x[i]);
        System.out.println();
    }
}

Publicado en Sin categoría | Deja un comentario

curso ejc. 2

/*
* Escribe un programa que dados dos segmentos de recta dentro del cuadrante positivo (+x, +y)
* determine si estos son perpendiculares, paralelos o si se intersectan el algún punto.
* Los segmentos de recta estarán definidos por los puntos (x1, y1) y (x2, y2) para el segmento 1, (x3, y3)
* y (x4, y4) para el segmento 2. No consideres el segmento más allá de lo que indican sus coordenadas.
* Entradas por teclado: ocho números enteros x1, y1, x2, y2, x3, y3, x4, y4. Todos ellos menores de
* 101 y mayores o iguales a 0, pueden ser iguales entre sí.Salidas por pantalla  Imprimir un mensaje
* indicando si los segmentos son o no perpendiculares o paralelos y si tienen o no punto de intersección.
* No es necesario indicar las coordenadas de la intersección.
*/

package ejerc2;
import java.util.Scanner;
/**
*
* @author JPablo
*/
public class Main {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
        int x[]=new int [4];
        int y[]=new int [4];
        Scanner consola = new Scanner(System.in);
        for(int i=0;i<x.length;i++){
            System.out.println("Punto"+(i+1)+":");
            System.out.print("+X"+i+": ");
            x[i] = consola.nextInt();
            System.out.print("+Y"+i+": ");
            y[i] = consola.nextInt();
        }
        double m[] = new double[2];
        m[0] = (y[1]-y[0])/(x[1]-x[0]);
        m[1] = (y[3]-y[2])/(x[3]-x[2]);
        double p = m[0]*m[1];
        if((int)p==-1)
            System.out.println("Son paralelas");
        if(m[0]!=m[1])
            System.out.println("Se Intersectan");
        double tanθ = (m[1]-m[0])/(1+(m[1])*(m[0])) ;
        double θ = Math.atan(tanθ);
        if((int)θ==90)
            System.out.println("Son perpendiculares");
    }
}

Publicado en Sin categoría | Deja un comentario

PALINDROMO

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/

package palindromo;
import javax.swing.JOptionPane;
/**
*
* @author JPablo
*/
public class Main {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
        Pila cadena = new Pila();
        String palabra = JOptionPane.showInputDialog ("       P A L I N D R O M O\nProporciona una cadena:  ");
        int Bandera =0;
        for (int i=0; i<palabra.length(); i++)
            cadena.push(palabra.charAt(i));
        String salida = "La palabra introducida por el usuario es: " + palabra
                    + "\nLa palabra en la pila es:  " + cadena.imprime ()
                    + "\nLa palabra extraida de la pila es:  "+ cadena.imprime_invertido ();
        for (int j=0; j<palabra.length(); j++)
            if (palabra.charAt(j) != cadena.pop ())
                Bandera = 1;
        if (Bandera == 0)
            salida += "\nLa palabra \"SI\" es un Palindromo";
        else
            salida += "\nLa palabra \"NO\" es un Palindromo";
        JOptionPane.showMessageDialog (null, salida, "Resultado", JOptionPane.INFORMATION_MESSAGE);
        System.exit(0);
    }
}

——————————————————————————————————————————————–

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/

package palindromo;

/**
*
* @author JPablo
*/

public class Pila{
    private Nodo inicio;
    private Nodo pivote;
    public Pila (){
        pivote = null;
        inicio = pivote;
    }
    public boolean IsVacia (){
        if (pivote == null)
            return true;
        else
            return false;
    }
    public void push (char x){
        Nodo nuevo = new Nodo (x);
        if (IsVacia()){
            inicio = nuevo;
            pivote = nuevo;
        }
        else{
            pivote.sig = nuevo;
            nuevo.ant = pivote;
            pivote = nuevo;
        }
    }
    public char pop (){
        char aux=’ ‘;
        if (!IsVacia()){
             aux = pivote.inf;
             pivote = pivote.ant;
        }
        return aux;
    }
    public String imprime (){
        Nodo aux=inicio;
        String regreso = "";
        while (aux!=null){
            regreso += aux.inf;
            aux = aux.sig;
        }
        return regreso;
    }
    public String imprime_invertido (){
        Nodo aux = pivote;
        String regreso ="";
        while (aux != null){
            regreso += aux.inf;
            aux = aux.ant;
        }
        return regreso;
    }
    class Nodo{
    char inf;
    Nodo sig;
    Nodo ant;
    public Nodo (){
        sig = null;
        ant = null;
    }
    public Nodo(char x){
        inf = x;
        sig = null;
        ant = null;
    }
}
}

Publicado en Sin categoría | Deja un comentario