Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - betast

#1
Desarrollo Web / Ayuda con JS
29 Abril 2019, 01:46 AM
Alguien me puede explicar este código, es de javascript

Código (js) [Seleccionar]
class Node{
    constructor(val){
        this.val = val;
        this.next = null;
    }
}

class SinglyLinkedList{
    constructor(){
        this.head = null;
        this.tail = null;
        this.length = 0;
    }
    push(val){
        var newNode = new Node(val);
        if(!this.head){
            this.head = newNode;
            this.tail = this.head;
        } else {
            this.tail.next = newNode;
            this.tail = newNode;
        }
        this.length++;
        return this;
    }
    pop(){
        if(!this.head) return undefined;
        var current = this.head;
        var newTail = current;
        while(current.next){
            newTail = current;
            current = current.next;
        }
        this.tail = newTail;
        this.tail.next = null;
        this.length--;
        if(this.length === 0){
            this.head = null;
            this.tail = null;
        }
        return current;
    }
    shift(){
        if(!this.head) return undefined;
        var currentHead = this.head;
        this.head = currentHead.next;
        this.length--;
        if(this.length === 0){
            this.tail = null;
        }
        return currentHead;
    }
}


var list = new SinglyLinkedList()
list.push("HELLO")
list.push("GOODBYE")
list.push("!")
#2
Amigo NEBIRE no te entendi, soy nuevo con ese tema

Cita de: NEBIRE en 22 Abril 2019, 00:19 AM
Te ubicas en el nodo final y recorres la lista hacia atrás. Acaba cuando llegas a la raíz (o un null, si no usas raíz).


funcion RecorrerHaciaAtras
    actual = lista.ultimonodo

    hacer mientras actual <> raiz  // nulo
        mostrar actual.dato
        actual = actual.anterior
    repetir
fin funcion

#3
Hola amigos, tengo este codigo donde utilizo un nodo ubicado en la cabecera(cab) y otro al final(fin).
Quiero saber como puedo mostrar de forma inversa los datos ingresados.

CODIGO:

Código (java) [Seleccionar]

package metodos;
import javax.swing.JOptionPane;

public class lista {
    nodo cab;
    nodo fin;
   
    lista(){
        cab = fin = null;
    }
   
    nodo getNodo(int cod){
        nodo p;
        if( cab == null )
            //lista vacia
            return null;
        else{
            //la lista tiene al menos un nodo
            p=cab;
            while(p!=null){
                if(p.codP == cod)
                    return p;
                else
                    p=p.sig;
            }
            return null;
        }
    }
   
    //creamos el metodo get final
    nodo getNodoEnd(int cod){
        nodo p;
        if( fin == null )
            //lista vacia
            return null;
        else{
            //la lista tiene al menos un nodo
            p=fin;
            while(p!=null){
                if(p.codP == cod)
                    return p;
                else
                    p=p.ant;
            }
            return null;
        }
    }   
   
    boolean getVacia(){
        return cab==null?true:false;
    }
   
    int getLonglista(){
        if(getVacia())
            return 0;
        else{
            int con=0;
            nodo p=cab;
            while(p!=null){
                con++;
                p=p.sig;
            }
            return con;
        }
    }
   
    void setAddFinal(nodo info){
        nodo p, q;
        if( cab == null ){
            cab = info;
            JOptionPane.showMessageDialog(null,
            "Primer elemento agregado!!, la lista tiene 1 elemento.");
        }else{
            q = getNodo(info.codP);
            if(q!=null)
                JOptionPane.showMessageDialog(null,
                "El código del producto ya esta registrado en la lista!!!");
            else{
                p=cab;
                while(p.sig!=null){
                    p=p.sig;
                }
                p.sig = info;
                int tam = getLonglista();
                JOptionPane.showMessageDialog(null,
                "Nuevo elemento agregado al final de la lista,"+
                " existen: "+tam+" elementos.");
            }
        }
    }
   
    void getMostrarT(){
        if(getVacia())
            JOptionPane.showMessageDialog(null, "Lista vacia!!");
        else{
            nodo p=cab;
            String aux="";
            int con=0;
            while(p!=null){
                aux = "La información en la posición "+con+" es:\n";
                aux += "Código Producto: "+p.codP+"\n";
                aux += "Nombre Producto: "+p.nomP+"\n";
                aux += "Precio Unitario: "+p.precioU+"\n";
                JOptionPane.showMessageDialog(null, aux);
                con++;
                p=p.sig;
            }
        }
    }
   
    void setElimN( int cod ){
        nodo p = getNodo(cod);
        if( cab == null ){
            JOptionPane.showMessageDialog(null,
            "Lista vacía...");
        }else{
            if(p==null){
                JOptionPane.showMessageDialog(null, "Elemento no existe!");
            }else{
                nodo q = null;
                if((cab.sig==null)&&( p == cab )){
                    cab = p = null;
                    JOptionPane.showMessageDialog(null,
                    "Elemento eliminado.  Lista vacia!!!");
                }
                else if((cab.sig != null)&&(p == cab)){
                    cab = p.sig;
                    p.sig = null;
                    p = null;
                    JOptionPane.showMessageDialog(null,
                    "Elemento eliminado.  Eliminado en la cabecera!!!");
                }
                else if( (p.sig != null)&&(p!=cab) ){
                    q = cab;
                    while( q.sig != p )
                        q = q.sig;
                    q.sig = p.sig;
                    p.sig = null;
                    p = null;
                    JOptionPane.showMessageDialog(null,
                    "Elemento eliminado!!!");
                }
                else{
                    q = cab;
                    while( q.sig != p )
                        q = q.sig;
                    q.sig = null;
                    p = null;
                    JOptionPane.showMessageDialog(null,
                    "Elemento eliminado de la ultima posicion!!!");
                }
            }
        }
    }
}


Clase nodo:
Código (java) [Seleccionar]

package metodos;

/**
*
* @author Ruben
*/
public class nodo {
    int codP;
    String nomP;
    float precioU;
    nodo sig;
    nodo ant;

    public nodo(int codP, String nomP, float precioU) {
        this.codP = codP;
        this.nomP = nomP;
        this.precioU = precioU;
        this.sig = null;
        this.ant=null;
    }
   
}



Probador:
Código (java) [Seleccionar]

package metodos;
import javax.swing.JOptionPane;

public class probador {
   
    public static void main(String args[]){
        int op, cod;
        String nomp;
        float precio;
        lista productos = new lista();
        nodo aux=null;
        do{
            op=Integer.parseInt(JOptionPane.showInputDialog(
            "Menu Principal \n"+
            "1. Agregar Producto \n"+
            "2. Mostrar Productos \n"+
            "3. Eliminar Producto \n"+
            "4. Eliminar elemento de una posicion \n"+       
            "5. Eliminar elemntos repetidos \n"+
            "6. Invertir lista \n"+
            "7. Rotar elementos \n"+       
            "8. Salir \n"+
            "Entre su opción: "       
            ));
           
            switch(op){
                case 1:
                    cod = Integer.parseInt(JOptionPane.showInputDialog(
                    "Entre código del producto: "));
                    nomp = JOptionPane.showInputDialog("Entre nombre producto: ");
                    precio = Float.parseFloat(JOptionPane.showInputDialog(
                    "Entre precio unitario: "));
                    aux = new nodo(cod,nomp,precio);
                    productos.setAddFinal(aux);
                break;
                case 2:
                    productos.getMostrarT();
                break;
                case 3:
                    cod = Integer.parseInt(JOptionPane.showInputDialog(
                    "Entre código del producto: "));
                    productos.setElimN(cod);
                break;
                case 4:
                    cod = Integer.parseInt(JOptionPane.showInputDialog(
                    "Ingrese elemento a borrar: "));
                    productos.setElimN(cod);
                break;
                case 5:
                   
                break;
                case 6:
                break;
                case 7:
                   
                break;
                case 8:
                    JOptionPane.showMessageDialog(null, "Adios!");
                break;   
                default:
                    JOptionPane.showMessageDialog(null, "Opcion invalida!");
            }
           
        }while(op!=8);
        System.exit(0);
    }
   
}
#4
Java / Ejemplo de Matriz
25 Febrero 2019, 04:52 AM
Les comparto este pequeño programa con la ayuda de Tektor.

Ejercicio:
Se requiere una matriz que realice las siguientes operaciones
-Ingresar TC(meses[1-12] ) y TF(vendedor)
-Obtener la información de ventas de cada mes y vendedor
-Obtener el mejor y el peor vendedor
-Obtener el mejor y el peor mes de ventas
-Dado un mes(COLUMNAS), obtener el mejor y el peor vendedor
-Dado un vendedor(FILAS), obtener el mejor y el peor mes de ventas
                             Incluir menú

//código del menú
package metodos;


import javax.swing.JOptionPane;
import static metodos.miMatriz.mes;
import static metodos.miMatriz.vendedor;
public class menu1{
   
    public static void main(String args[]){
        int opcion;
        String op;
       
do{
    op= JOptionPane.showInputDialog("Menu De opciones: \n"
            + "1) Ingresar TC(meses[1-12] ) y TF(vendedor)\n"
            + "2) Obtener la informacion de ventas de cada mes y vendedor\n"
            + "3) Obtener el mejor y el peor vendedor \n"
            + "4) Obtener el mejor y el peor mes de ventas\n  "
            + "5) Dado un mes(TC), obtener el mejor y el peor vendedor\n"
            + "6) Dado un vendedor(TF), obtener el mejor y el peor mes de ventas\n"
            + "7) EJECUTAR TODAS LAS OPCIONES(RECOMENDADA)\n "
            + "8) Salir\n");
     try{
         opcion = Integer.parseInt(op);
         
         
     }catch(NumberFormatException ex){
         JOptionPane.showMessageDialog(null, "Error, solo se permiten numeros");
         opcion=0;
     }
     switch(opcion){
         case 0:
             break;
             
         case 1:
            miMatriz.llenarM();
            miMatriz.mostrarM();
             break;
             
         case 2:
            miMatriz.vectorMes();
            miMatriz.vectorVendedor();
            miMatriz.mostrarVec("La información de ventas de cada mes es: ", mes);
            miMatriz.mostrarVec("La información de ventas de cada vendor es: ", vendedor);
             break;
             
         case 3:
            miMatriz.MejorVendedor();
            miMatriz.PeorVendedor();
             break;
             
         case 4:
            miMatriz.MejorVendedor();
            miMatriz.PeorVendedor();
             break;
         case 5:
            miMatriz.pedircolumna();
             break;
             
         case 6:
             miMatriz.pedirfila();
             break;
         case 7:
            miMatriz.llenarM();
            miMatriz.mostrarM();
            miMatriz.vectorMes();
            miMatriz.mostrarVec("La información de ventas de cada mes es: ", mes);
            miMatriz.vectorVendedor();
            miMatriz.mostrarVec("La información de ventas de cada vendor es: ", vendedor);
            miMatriz.MejorVendedor();
            miMatriz.PeorVendedor();
            miMatriz.MejorMes();
            miMatriz.PeorMes();
            miMatriz.pedircolumna();
            miMatriz.pedirfila();
             break;
         
             
         default: JOptionPane.showMessageDialog(null, "Saliendo...");
     }
        }while(opcion !=8);   
    }
   
}




//-------------------------------------------------------------------------------------------------
//Código del programa

package metodos;
import javax.swing.JOptionPane;
 
public class miMatriz {
    public static int ventas[][];
    public static int mes[];
    public static int vendedor[];
    public static int tf, tc;
   

    public static void llenarM(){
        int i, j;
        tc = Integer.parseInt( JOptionPane.showInputDialog(
        "Entre número de meses [1 - 12]:") );
        tf = Integer.parseInt( JOptionPane.showInputDialog(
        "Entre número de vendedores: ") );
        ventas = new int[tf][tc];
        mes = new int[tc];
        vendedor = new int[tf];       
        for(i=0; i<tf; i++){
            for(j=0; j<tc; j++){
                ventas[i][j] = Integer.parseInt(JOptionPane.showInputDialog(
                "Entre ventas del vendedor en ["+i+"]["+j+"]:"));
            }
        } 
    }
   
    public static void mostrarM( ){
        int i, j;
        String aux="Los elementos de la matriz de ventas son: \n";
        for(i=0; i<tf; i++){
            for(j=0; j<tc; j++){
                aux += "[ "+ventas[i][j]+" ]";
            }
            aux+="\n";
        }
        JOptionPane.showMessageDialog(null, aux);
    }
   
    public static void vectorMes(){
        int i, j;
        for(j=0;j<tc;j++){
            for(i=0; i<tf; i++){
                mes[j] += ventas[i][j];
            }
        }
    }
     
    public static void vectorVendedor(){
        int i, j;
        for(i=0; i<tf; i++){
            for(j=0; j<tc; j++){
                vendedor[i] += ventas[i][j];
            }
        }
    }

        public static void mostrarVec( String x, int vec[] ){
        int i;
        String aux="< ";
        for(i=0; i<vec.length; i++){
            if( i < (vec.length-1) )
                aux += ""+vec[i]+","
                        + " ";
            else
                aux += ""+vec[i]+" >";
        }
        JOptionPane.showMessageDialog(null, ""+x+"\n"+aux);
    }
   
    public static void MejorVendedor( ){
        int pos=0, i;
        int may=vendedor[0];
        for(i=0; i<vendedor.length; i++){
            if(vendedor[i]>may){
                may=vendedor[i];
                pos=i;
            }
        }
        JOptionPane.showMessageDialog(null, "El mejor vendedor es: "+pos);
    }
   
    public static void PeorVendedor( ){
        int pos1=0, i;
        int men=vendedor[0];
        for(i=0; i<vendedor.length; i++){
            if(vendedor[i]<men){
                men=vendedor[i];
                pos1=i;
            }
        }
        JOptionPane.showMessageDialog(null, "El peor vendedor es: "+pos1);
    }
   
    public static void MejorMes( ){
        int pos=0, i;
        int may=mes[0];
        for(i=0; i<mes.length; i++){
            if(mes[i]>may){
                may=mes[i];
                pos=i;
            }
        }
        JOptionPane.showMessageDialog(null, "El mejor mes de ventas es: "+pos);
    }
   
    public static void PeorMes( ){
        int pos=0, i;
        int men=mes[0];
        for(i=0; i<mes.length; i++){
            if(mes[i]<men){
                men=mes[i];
                pos=i;
            }
        }
        JOptionPane.showMessageDialog(null, "El peor mes de ventas es: "+pos);
    }

public static void pedircolumna(){
    int c=0, tc1, o;
   
    tc1= Integer.parseInt( JOptionPane.showInputDialog(
     "Ingrese el número de columna en la que desea buscar:") );
    if(tc1>=ventas[0].length){
        JOptionPane.showInputDialog("Opcion no valida");
    }
    o = Integer.parseInt( JOptionPane.showInputDialog(
    "OPCIONES: \n"
            + "1) Hallar el mejor mes de ventas \n"
            + "2) Hallar el peor mes de ventas \n") );
    if (o==1){
        JOptionPane.showMessageDialog(null, "El mayor dato en la columna "+tc1+" es:" +Obtenermayor(tc1, ventas)); 
    }
    else {
        if(o==2){
       JOptionPane.showMessageDialog(null, "El menor dato en la columna "+tc1+" es:" +Obtenermenor(tc1, ventas));       
        }
        else{
            JOptionPane.showMessageDialog(null, "Opcion no valida");
        }
    }
   
}
       public static int Obtenermayor(int mes, int ventas[][]){
           int mayor= ventas[0][mes];
           for(int i=1; i<ventas.length; i++){
               if(ventas[i][mes]>mayor){
                   mayor = ventas[i][mes];
               }
           }
        return mayor;   
       }
        public static int Obtenermenor(int mes, int ventas[][]){
           int menor= ventas[0][mes];
           for(int i=1; i<ventas.length; i++){
               if(ventas[i][mes]<menor){
                   menor = ventas[i][mes];
               }
           }
        return menor;   
       }
       
public static void pedirfila(){
    int c=0, tc1, o;
   
    tc1= Integer.parseInt( JOptionPane.showInputDialog(
     "Ingrese el número de fila en la que desea buscar:") );
    if(tc1>=ventas[0].length){
        JOptionPane.showInputDialog("Opcion no valida");
    }
    o = Integer.parseInt( JOptionPane.showInputDialog(
    "OPCIONES: \n"
            + "1) Hallar el mejor vendedor \n"
            + "2) Hallar el peor vendedor \n") );
    if (o==1){
        JOptionPane.showMessageDialog(null, "El mayor dato en la fila "+tc1+" es:" +Obtenermayorf(tc1, ventas)); 
    }
    else {
        if(o==2){
       JOptionPane.showMessageDialog(null, "El menor dato en la fila "+tc1+" es:" +Obtenermenorf(tc1, ventas));       
        }
        else{
            JOptionPane.showMessageDialog(null, "Opcion no valida");
        }
    }
   
}
       public static int Obtenermayorf(int vendedor, int ventas[][]){
           int mayor= ventas[vendedor][0];
           for(int i=1; i<ventas.length; i++){
               if(ventas[vendedor][i]>mayor){
                   mayor = ventas[vendedor][i];
               }
           }
        return mayor;   
       }
       
        public static int Obtenermenorf(int vendedor, int ventas[][]){
           int menor= ventas[vendedor][0];
           for(int i=1; i<ventas.length; i++){
               if(ventas[vendedor][i]<menor){
                   menor = ventas[vendedor][i];
               }
           }
        return menor;   
       }
   
    public static void main(String args[]){
       
        llenarM();
        mostrarM();
        vectorMes();
        mostrarVec("La información de ventas de cada mes es: ", mes);
        vectorVendedor();
        mostrarVec("La información de ventas de cada vendor es: ", vendedor);
        MejorVendedor();
        PeorVendedor();
        MejorMes();
        PeorMes();
        pedircolumna();
        pedirfila();
        System.exit(0);
    }
   
}

#5
Programación C/C++ / AYUDA java matrices
24 Febrero 2019, 18:07 PM
El numero de columnas y de filas las da el usuario.
No se como lograr que mi programa dado una columna(ingresada por el usuario) me analice cual es el elemento mayor y menor que tiene dicha columna.


Código:

Código (java) [Seleccionar]
package metodos;
import javax.swing.JOptionPane;
 
public class miMatriz {
    public static int ventas[][];
    public static int mes[];
    public static int vendedor[];
    public static int tf, tc;
   

    public static void llenarM(){
        int i, j;
        tc = Integer.parseInt( JOptionPane.showInputDialog(
        "Entre número de meses [1 - 12]:") );
        tf = Integer.parseInt( JOptionPane.showInputDialog(
        "Entre número de vendedores: ") );
        ventas = new int[tf][tc];
        mes = new int[tc];
        vendedor = new int[tf];       
        for(i=0; i<tf; i++){
            for(j=0; j<tc; j++){
                ventas[i][j] = Integer.parseInt(JOptionPane.showInputDialog(
                "Entre ventas del vendedor en ["+i+"]["+j+"]:"));
            }
        } 
    }
   
    public static void mostrarM( ){
        int i, j;
        String aux="Los elementos de la matriz de ventas son: \n";
        for(i=0; i<tf; i++){
            for(j=0; j<tc; j++){
                aux += "[ "+ventas[i][j]+" ]";
            }
            aux+="\n";
        }
        JOptionPane.showMessageDialog(null, aux);
    }
   
    public static void vectorMes(){
        int i, j;
        for(j=0;j<tc;j++){
            for(i=0; i<tf; i++){
                mes[j] += ventas[i][j];
            }
        }
    }
     
    public static void vectorVendedor(){
        int i, j;
        for(i=0; i<tf; i++){
            for(j=0; j<tc; j++){
                vendedor[i] += ventas[i][j];
            }
        }
    }

        public static void mostrarVec( String x, int vec[] ){
        int i;
        String aux="< ";
        for(i=0; i<vec.length; i++){
            if( i < (vec.length-1) )
                aux += ""+vec[i]+","
                        + " ";
            else
                aux += ""+vec[i]+" >";
        }
        JOptionPane.showMessageDialog(null, ""+x+"\n"+aux);
    }
   
    public static void MejorVendedor( ){
        int pos=0, i;
        int may=vendedor[0];
        for(i=0; i<vendedor.length; i++){
            if(vendedor[i]>may){
                may=vendedor[i];
                pos=i;
            }
        }
        JOptionPane.showMessageDialog(null, "El mejor vendedor es: "+pos);
    }
   
    public static void PeorVendedor( ){
        int pos1=0, i;
        int men=vendedor[0];
        for(i=0; i<vendedor.length; i++){
            if(vendedor[i]<men){
                men=vendedor[i];
                pos1=i;
            }
        }
        JOptionPane.showMessageDialog(null, "El peor vendedor es: "+pos1);
    }
   
    public static void MejorMes( ){
        int pos=0, i;
        int may=mes[0];
        for(i=0; i<mes.length; i++){
            if(mes[i]>may){
                may=mes[i];
                pos=i;
            }
        }
        JOptionPane.showMessageDialog(null, "El mejor mes de ventas es: "+pos);
    }
   
    public static void PeorMes( ){
        int pos=0, i;
        int men=mes[0];
        for(i=0; i<mes.length; i++){
            if(mes[i]<men){
                men=mes[i];
                pos=i;
            }
        }
        JOptionPane.showMessageDialog(null, "El peor mes de ventas es: "+pos);
    }

   
    public static void main(String args[]){
       
        llenarM();
        mostrarM();
        vectorMes();
        mostrarVec("La información de ventas de cada mes es: ", mes);
        vectorVendedor();
        mostrarVec("La información de ventas de cada vendor es: ", vendedor);
        MejorVendedor();
        PeorVendedor();
        MejorMes();
        PeorMes();
        pedirColumna();
        System.exit(0);
    }
   
}


MOD: Etiqueta GeSHi.