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 - nolasco281

#141
Java / Re: Problema con cola
25 Mayo 2014, 08:33 AM
Hola

Perdon ya entendi lo que tu mencionas, el problema es que no puedo hacer que salga la parte grafica pero entiendo lo que tratas de decirme, la parte grafiaca ya hace la insercion y el borrado si te fijas.

y a lo que haces mencion tu, solo llamo a los metodos de cola por lo tanto no va a pasar nada (de forma grafica pero si en memoria si no me equivoco)y lo que quiero es llamar al metodo de graficado ya que la insercion y el borrado lo hace dinamicamente desde la parte grafica.

A lo que tu mencionas de instaciar, no se como instanciar la clase que dibuja el panel o si eso es lo que hay que hacer estoy algo confundido con eso.

Gracias por contestar

saludos
#142
Java / Problema con cola (solucionado)
25 Mayo 2014, 04:38 AM
Hola como estan

no se como implementar este codigo es un ejemplo de colas

El problema que tengo es que no se como llamar estas funciones en la parte principal
espero puedan ayudarme.


esto es lo que tengo en la principal
Código (java) [Seleccionar]
public static void main(String[] args) {
Principal p = new Principal();
               
p.setVisible(true);
p.setBounds(0, 0, 300, 200);
             
}




Clase cola

Código (java) [Seleccionar]
import java.util.ArrayList;


public class Cola {

private ArrayList nodos;

public Cola(){
nodos=new ArrayList<Integer>();
}

public void insertar(int x){
nodos.add(x);
}

public void eliminar(){
nodos.remove(0);
}

public void resetear(){
nodos.clear();
}


public ArrayList<Integer> getNodos() {
return nodos;
}


public void setNodos(ArrayList<Integer> nodos) {
this.nodos = nodos;
}
}




Clase que dibuja el panel

Código (java) [Seleccionar]
import java.awt.*;
import javax.swing.JPanel;


public class PanelDibujo extends JPanel {

public int x=20;
public int y=100;
public Cola cola;
public boolean swborrar=false;

public PanelDibujo(Cola c){
 cola=c;
}

public void paintComponent(Graphics g){
 super.paintComponents(g);
 Graphics2D g2d=(Graphics2D)g;
 g2d.setColor(Color.WHITE);
 g2d.fillRect(0,0,500,300);
 g2d.setColor(Color.BLACK);
 g2d.setStroke(new BasicStroke(2));
 for(int i=0;i<cola.getNodos().size();i++){
  if(i!=0){
   g2d.drawLine(2*x*(i+1)-10, y+15, 2*x*(i+1), y+15);
  }
  g2d.drawRoundRect(2*x*(i+1), y, 30, 30, 10, 10);
  g2d.drawString(""+cola.getNodos().get(i), 2*x*(i+1)+12, y+20);
 }
 
 if(swborrar){
  g2d.setColor(Color.WHITE);
  g2d.fillRect(0,0,400,200);
  cola.resetear();
  swborrar=false;
 }
}


public boolean isSwborrar() {
 return swborrar;
}


public void setSwborrar(boolean swborrar) {
 this.swborrar = swborrar;
}

}




Clase clase principal

Código (java) [Seleccionar]
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;


import javax.swing.*;
import static javax.swing.JFrame.EXIT_ON_CLOSE;


public class Principal extends JApplet{

PanelDibujo pd;
JPanel pdatos;
Cola cola;
JTextField t;

public void init(){
 
 cola=new Cola();
 pd=new PanelDibujo(cola);
 pdatos=new JPanel();
 
 t=new JTextField(10);
 JButton b=new JButton("Agregar");
 b.addActionListener(new ActionListener(){


  @Override
  public void actionPerformed(ActionEvent e) {
   try{
    if(cola.getNodos().size()<8){
     cola.insertar(Integer.parseInt(t.getText()));
     pd.repaint();
     repaint();
    }else{
     JOptionPane.showMessageDialog(null, "Maximo se mostraran 8 elementos.");
    }
   }catch(NumberFormatException nfe){
    JOptionPane.showMessageDialog(null, "Error digite un Valor Valido");
   }
  }
 
 });
 
 JButton borrar=new JButton("Borrar");
 borrar.addActionListener(new ActionListener(){


  @Override
  public void actionPerformed(ActionEvent e) {
   if(cola.getNodos().size()>0){
    cola.eliminar();
    pd.repaint();
    repaint();
   }
  }
 });
 
 JButton limpiar=new JButton("Limpiar");
 limpiar.addActionListener(new ActionListener(){


  @Override
  public void actionPerformed(ActionEvent e) {
   pd.setSwborrar(true);
   pd.repaint();
   repaint();
  }
 
 });
 
 pdatos.add(new JLabel("Valor: "));
 pdatos.add(t);
 pdatos.add(b);
 pdatos.add(borrar);
 pdatos.add(limpiar);
 
 add(pd);
 add(pdatos,BorderLayout.SOUTH);
}
}
#143
Prueba borrar los archivos que te creo el compilar como el makfile los .o y esas cosas.

Si no te funciona prueba crear un proyecto y ejecutalo como tal.

Espero haberte ayudado y estoy asumiendo que no es error de codigo sino de los archivos que se generaron.

Saludos.

Pd: Puede que tambien no estes llamando alguna de las clases que tengas pueden ser mil cosas.
#144
Hola

Como dice el titulo, tengo la siquente duda quiero cambiar el color de un solo item en el combobox, pero a la hora que lo intento me cambia el color de  todos los items.

aca la muestra



En este ejemplo quiero decir si seleciona el indice cero que lo cambie de color pero solo ese.

pero cuando se selecciona el indice cero me cambia el color de todos los elementos.

Gracias saludos.
#145
Hola buenas.

te dire que cualquier curso que tomes te sera de utilidad y es lo que hace la diferencia con respecto a otros.

Si puedes tomar es curso y es gratuito perfecto y si es de paga pero sertificado por alguna institucion adelante.

En cuanto a lenguages de programacion C++ es una maravilla para mi es el mejor pero requiere mucho mucho esfuerzo, visual es simple y muy potente para aplicaciones windows  java desde mi punto de vista es algo parecido a visual pero no mas facil eso seguro. y todo depende a lo que te quieras dedicar.

Si lo que quieres es hacer aplicaciones o formularios etc visual y java te ayudaran.

C++ es muy muy potente y robusto "Tambien puedes hacer aplicaciones visual". pero lleva su tiempo.

Te recomiendo visual no es de mi agrado, pero las aplicaciones que puedes lograr a crear son como las que usas. y es el que estudio de momento y no esta mal.

Saludos y cuidate.

Pd: siempres que estudies un lenguaje dedicate a uno solo. y veras tu avances cuando estudies otro siempre y cuando veas las similitudes y no te cierres a que es diferente y bla bla bla. saludos
#146
Hola

tengo este codigo que es un boton que calcula la mediana

Ahora bien el problema es que cuando se calcula en la mediana y su resultado pasa a un txtbox
y despues calculo la moda me surge ese error antes dicho. no puedo ejecutar los dos al mismo tiempo. el resultado de los calculos se impremen en diferentes textbox.

Estoy trabajando en visual basic.

Código (vbnet) [Seleccionar]
Private Sub btnCalMediana_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCalMediana.Click
        Dim temporal As Double
        Try
            Dim valores() As String = listaElementos.Items.Cast(Of String).OrderBy(Function(s) CDec(s)).ToArray
            If listaElementos.Items.Count Mod 2 = 1 Then 'impar
                txtMediana.Text = (valores(CInt(Math.Floor(listaElementos.Items.Count / 2))))
            Else 'par
                txtMediana.Text = (((CDec(valores(listaElementos.Items.Count \ 2 - 1)) + CDec(valores(listaElementos.Items.Count \ 2))) / 2).ToString)
            End If
        Catch ex As Exception
            MsgBox("No puede hacer eso")
        End Try

        'Ordena los elementos de menor a mayor en la lista
        For elementos = 0 To listaElementos.Items.Count - 1
            For ordenar = 0 To listaElementos.Items.Count - 2
                If (listaElementos.Items.Item(ordenar) > listaElementos.Items.Item(elementos)) Then
                    temporal = listaElementos.Items.Item(ordenar)
                    listaElementos.Items.Item(ordenar) = listaElementos.Items.Item(elementos)
                    listaElementos.Items.Item(elementos) = temporal
                End If
            Next
        Next
    End Sub



y este es otro boton que calcula la moda

Código (vbnet) [Seleccionar]
Private Sub btnCalModa_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCalModa.Click

        Dim valores() As String = listaElementos.Items.Cast(Of String).OrderBy(Function(s) CDec(s)).ToArray
        Dim concurrencias() As Integer = Array.ConvertAll(valores, Function(s1) valores.Count(Function(s2) s2 = s1))

        Dim hecho As New List(Of String)
        Dim salida As String = ""
        For x As Integer = 0 To concurrencias.GetUpperBound(0)
            If concurrencias(x) = concurrencias.Max AndAlso Not hecho.Contains(valores(x)) Then
                hecho.Add(valores(x))
                salida &= valores(x) & ", "
            End If
        Next
        txtModa.Text = (String.Format("{0}{1}{2}", If(hecho.Count = 1, "", If(hecho.Count = 2, "Bimodal, ", "Multimodal, ")), Environment.NewLine, salida.TrimEnd(","c, " "c)))
    End Sub


por si no me explico cuando calculo la media bien si calculo la moda me salta error
pero si calculo la moda primero y despues la mediana no me da error

aca la muestra



si calculo primero la moda y despues la mediana no causa error



Gracias de nuevo.

Pd: por lo que entiendo dice que tengo que convertir un double o string si no me equivoco pero no se como hacerlo.
#147
Hola gracias por responder

tengo este codigo que es un boton que calcula la mediana

Ahora bien el problema es que cuando se calcula en la mediana y su resultado pasa a un txtbox
y despues calculo la moda me surge ese error antes dicho. no puedo ejecutar los dos al mismo tiempo. el resultado de los calculos se impremen en diferentes textbox.

Estoy trabajando en visual basic.


Código (vbnet) [Seleccionar]
Private Sub btnCalMediana_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCalMediana.Click
       Dim temporal As Double
       Try
           Dim valores() As String = listaElementos.Items.Cast(Of String).OrderBy(Function(s) CDec(s)).ToArray
           If listaElementos.Items.Count Mod 2 = 1 Then 'impar
               txtMediana.Text = (valores(CInt(Math.Floor(listaElementos.Items.Count / 2))))
           Else 'par
               txtMediana.Text = (((CDec(valores(listaElementos.Items.Count \ 2 - 1)) + CDec(valores(listaElementos.Items.Count \ 2))) / 2).ToString)
           End If
       Catch ex As Exception
           MsgBox("No puede hacer eso")
       End Try

       'Ordena los elementos de menor a mayor en la lista
       For elementos = 0 To listaElementos.Items.Count - 1
           For ordenar = 0 To listaElementos.Items.Count - 2
               If (listaElementos.Items.Item(ordenar) > listaElementos.Items.Item(elementos)) Then
                   temporal = listaElementos.Items.Item(ordenar)
                   listaElementos.Items.Item(ordenar) = listaElementos.Items.Item(elementos)
                   listaElementos.Items.Item(elementos) = temporal
               End If
           Next
       Next
   End Sub



y este es otro boton que calcula la moda

Código (vbnet) [Seleccionar]
Private Sub btnCalModa_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCalModa.Click

       Dim valores() As String = listaElementos.Items.Cast(Of String).OrderBy(Function(s) CDec(s)).ToArray
       Dim concurrencias() As Integer = Array.ConvertAll(valores, Function(s1) valores.Count(Function(s2) s2 = s1))

       Dim hecho As New List(Of String)
       Dim salida As String = ""
       For x As Integer = 0 To concurrencias.GetUpperBound(0)
           If concurrencias(x) = concurrencias.Max AndAlso Not hecho.Contains(valores(x)) Then
               hecho.Add(valores(x))
               salida &= valores(x) & ", "
           End If
       Next
       txtModa.Text = (String.Format("{0}{1}{2}", If(hecho.Count = 1, "", If(hecho.Count = 2, "Bimodal, ", "Multimodal, ")), Environment.NewLine, salida.TrimEnd(","c, " "c)))
   End Sub


por si no me explico cuando calculo la media bien si calculo la moda me salta error
pero si calculo la moda primero y despues la mediana no me da error

aca la muestra



si calculo primero la moda y despues la mediana no causa error



Gracias de nuevo.

Pd: por lo que entiendo dice que tengo que convertir un double o string si no me equivoco pero no se como hacerlo.
#148
Hola como estan

disculpen las molestias

El problema que tengo es con la siquiente instruccion

Código (vb) [Seleccionar]
Dim valores() As String = listaElementos.Items.Cast(Of String).OrderBy(Function(s) CDec(s)).ToArray

el error dice

Código (vb) [Seleccionar]
Unable to cast object of type 'System.Double' to type 'System.String'.

gracias saludos

#149
Muchisimas gracias cosas que no explican los libros y si lo hace, lo hacen de forma muy confusa
Ya entendi y me quedo claro las explicaciones. ahora a practicar y sequir leyendo.

Gracias de nuevo y saludos.
#150
Hola gracias  ;-)

Entendi muy bien la explicacion te lo agardesco esta un poco con fundido en cuanto a como trabajaba

una ultima pregunta segundo, el tiempo de ejecucion de estos bucles seria O(n^3) no?

segun lo que entendi.

Gracias y saludos de nuevo.