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

#51
Java / Re: Dudas con clases
24 Noviembre 2011, 16:03 PM
Ya lo solucioné, de esta forma:

a.getA1().setCal(Math.round(Math.random()));
#52
Java / Re: Dudas con clases
23 Noviembre 2011, 20:18 PM
Cita de: Lain0x en 23 Noviembre 2011, 20:15 PM
Vi por ahí que alguien hizo esto:

a.A1 = Math.round(Math.random());



Pero son incompatibles.
#53
Java / Re: Dudas con clases
23 Noviembre 2011, 20:15 PM
Cita de: BadDevil en 23 Noviembre 2011, 20:04 PM
Si, pero asignatura no tiene un atributo llamado notas, lo ideal sería que lo tuviera un arreglo de notas por cada asignatura

private double[] notas;  o private ArrayList notas; prefiero el arraylist  :xD

Vi por ahí que alguien hizo esto:

a.A1 = Math.round(Math.random());

#54
Java / Re: Dudas con clases
23 Noviembre 2011, 19:50 PM
Cita de: Lain0x en 23 Noviembre 2011, 19:50 PM
Pero en Alumno hay un constructor que recibe 3 variables tipo Asignatura. No crees que puedan servir para referenciar?
#55
Java / Re: Dudas con clases
23 Noviembre 2011, 19:50 PM
Cita de: BadDevil en 23 Noviembre 2011, 19:47 PM
La pregunta es, como referencias la nota del alumno con la asignatura, no veo nada parecido ahi, la clase profesor dice poner nota, pero el alumno no tiene un atributo llamado nota , ni nada parecido, creo que te falta un atributo.

Pero en alumno hay un constructor que recibe 3 variables tipo Asignatura. No crees que puedan servir para referenciar?
#56
Java / Re: Dudas con clases
23 Noviembre 2011, 19:41 PM
Es que la variable a es tipo Alumno, y en clase Alumno no se pide hacer método set. En la clase Asignatura hay un método set. Con ese método seteo la calificación, pero no podría hacer referencia a ese método solamente usando una variable tipo alumno.
#57
Java / Dudas con clases
23 Noviembre 2011, 19:08 PM
Tengo que desarrollar una clase que Profe que tenga un método poneNotas y recibe un parámetro tipo Alumno y este método no devuelve nada. Lo que hace es poner una calificación a cada asignatura del alumno.

Tengo una clase Asignatura:

public class Asignatura {
    private int ident, cal;
   
    public Asignatura(int int)
    {
       
        this.ident = ident;
    }
   
    public int getIdent()
    {
        return ident;
    }
   
    public int getCal()
    {
        return cal;
    }
   
    public void setIdent(int y)
    {
        cal = y;
    }
   


La clase Alumno:

public class Alumno {
   
    private Asignatura a1, a2, a3;
   
    public Alumno(Asignatura a1, Asignatura a2, Asignatura a3)
    {
        this.a1 = a1;
        this.a2 = a2;
        this.a3 = a3;
    }
   
    public Alumno(int b1, int b2, int b3)
    {
        a1 = new Asignatura(b1);
        a2 = new Asignatura(b2);
        a3 = new Asignatura(b3);
    }
   
    public Asignatura getA1()
    {
        return a1;
    }
   
    public Asignatura getA2()
    {
        return a2;
    }
   
    public Asignatura getA3()
    {
        return a3;
    }
   
}
   


Clase Profesor:

public class Profesor {
   
    public void ponerNotas(Alumno a)
    {
        double n1, n2, n3;
       
        n1 = Math.round(Math.random());
        n2 = Math.round(Math.random());
        n3 = Math.round(Math.random());
       
        a = new Alumno(n1,n2,n3);
    }
}


El problema está en que el constructor Alumno(int, int, int) recibe como parámetros el número que identifica a cada asignatura, y no las calificaciones.

O quizás en el constructor de Asignatura(int ident) en realidad sea Asignatura(int cal) (cal = calificación).

Pero el otro détalle es que las notas deben ser tipo double, y no int.

Saludos.

#58
Java / Problema con clase
20 Noviembre 2011, 18:44 PM
Hola, resulta que tengo una clase de nombre: Punto. Contiene un método que calcula distancia, pero el problema es que recibe un parámetro de tipo Punto.
Es un problema, porque ahora estoy haciendo una clase gráfica. La clase gráfica tiene un TextField que recibe a la variable tipo Punto, por medio de un evento de botón.

La clase Punto es esta:

public class Punto {
    private double x, y;
   
    public Punto(double x, double y)
    {
        this.x = x;
        this.y = y;
    }
   
    public Punto()
    {
        this.x = 0.0;
        this.y = 0.0;
    }
   
    public double getX()
    {
        return x;
    }
   
    public double getY()
    {
        return y;
    }
   
    public double calcularDistanciaDesde(Punto p)
    {
        double x1, y1;
        x1 = x - p.getX();
        y1 = y - p.getY();
        return Math.sqrt((x1*x1)+(y1*y1));
    }
   
}


Y el metodo ActionPerformed de la clase gráfica es este:

public void ActionPerformed(ActionEvent e){
Punto p1 = new Punto();
t1.setText(p1.calcularDistanciaDesde(p1));
}


No entiendo a la perfección la función de una variable tipo Punto. Se que permite llamar a funciones. Pero una vez que la paso como parámetro se supone que no toma un valor numérico.
Me podrían explicar o aclarar un poco?

Gracias.

#59
Hola, la verdad es que tengo problemas con la función buscar, probé mil formas pero no me resulta. Espero me puedan ayudar.


#include<stdio.h>
#include<stdlib.h>
#include<string.h>

typedef struct ElementoLista
{
        int *dato;
        struct ElementoLista *siguiente;
        }Elemento;
       
typedef struct ListaIdentificar
{
        Elemento *inicio;
        Elemento *fin;
        int tam;
        }Lista;
       
void inicializar(Lista *lista);
int insertalistavacia(Lista *lista, int *dato);
int insertalistainicio(Lista *lista, char *dato);
int inserta_final(Lista *lista, char *dato, Elemento *actual);
void visualizar(Lista *lista);
int sup_inicio (Lista * lista);
void buscar(Lista *lista, int dato);

int main()
{
    Lista lista;
    Elemento actual;
    inicializar(&lista);
    int d = 2;
    insertalistavacia(&lista, &d);
    buscar(&lista, d);
     
    visualizar(&lista);
    system("pause");
    return 0;
}

void inicializar(Lista *lista)
{
     lista->inicio=NULL;
     lista->fin=NULL;
     int tam=0;
}

int insertalistavacia(Lista *lista, int *dato)
{
    Elemento *nuevo_elemento;
    if((nuevo_elemento=(Elemento *)malloc(sizeof(Elemento)))==NULL)
    return -1;
    if((nuevo_elemento->dato=(int *)malloc(50*sizeof(int)))==NULL)
    return -1;
    nuevo_elemento->dato=dato;
    nuevo_elemento->siguiente=NULL;
    lista->inicio=nuevo_elemento;
    lista->fin=nuevo_elemento;
    lista->tam++;
    return 0;
}

int insertalistainicio(Lista *lista, int *dato)
{
     Elemento *nuevo_elemento;
     if((nuevo_elemento=(Elemento *)malloc(sizeof(Elemento)))==NULL)
     return -1;
     if((nuevo_elemento->dato=(int *)malloc(50*sizeof(int)))==NULL)
     return -1;
     nuevo_elemento->dato=dato;
     nuevo_elemento->siguiente=lista->inicio;
     lista->inicio=nuevo_elemento;
     lista->tam++;
     return 0;
}
   
int inserta_final(Lista *lista, int *dato, Elemento *actual)
{
    Elemento *nuevo_elemento;
    if((nuevo_elemento = (Elemento *)malloc(sizeof(Elemento)))==NULL)
    return -1;
    if((nuevo_elemento->dato = (int *)malloc(50*sizeof(int)))==NULL)
    return -1;
    nuevo_elemento->dato=dato;
    actual->siguiente = nuevo_elemento;
    nuevo_elemento->siguiente=NULL;
    lista->fin = nuevo_elemento;
    lista->tam++;
    return 0;
}

int sup_inicio (Lista *lista)
{
  if (lista->tam == 0)
    return -1;
  Elemento *sup_elemento;
  sup_elemento = lista->inicio;
  lista->inicio = lista->inicio->siguiente;
  if (lista->tam == 1)
    lista->fin = NULL;
  free (sup_elemento->dato);
  free (sup_elemento);
  lista->tam--;
  return 0;
}

void buscar(Lista *lista, int dato)
{
     
     Elemento *actual;
     actual = lista->inicio;
     
     while(actual!=NULL)
     {
         if(dato==actual)
         {
             sup_inicio (&lista);
         }
         else
         {
             actual = actual->siguiente;
         }
     }
}

void visualizar(Lista *lista)
{
     Elemento *actual;
     actual = lista->inicio;
     while(actual!=NULL)
     {
        printf("%s\n", actual->dato);
        actual = actual->siguiente;
     }
}   
                                         

#60
Programación C/C++ / Re: Método Burbuja
1 Mayo 2011, 21:41 PM
Listo, me quedó así y resultó a la perfección. Se suponía que antes tenía el método como int, y no entendía porque no funcionaba el método de la forma que lo escribiste. Y es que tenía que ser vacío para utilizarlo de esa forma.

#include<stdio.h>
#include<stdlib.h>

void burbuja(int a[], int n);

int main()
{
    int n;
    printf("Ingrese el tamaño del arreglo: \n");
    scanf("%d",&n);
   
    int a[n];
   
   
    printf("Ingrese los elementos al arreglo: \n");
    for(int i=0;i<n;i++)
    {
         scanf("%d",&a[i]);
    }
   
    burbuja(a,n);
   
    for(int i=0;i<n;i++)
    {
       printf("%d\n",a[i]);
    }
   
    system("pause");
    return 0;
}
     
     void burbuja(int a[],int n)
     {
         int aux=0, i, j;
         
         for(i=0;i<n-1;i++)
         {
            for(j=i+1;j<n;j++)
            {             
               if(a[i]>a[j])
               {
                 aux = a[i];
                 a[i] = a[j];
                 a[j] = aux;
               } 
            }
         }
     }