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 - K-YreX

#431
Java / Re: Ayuda Ejercicio java ¡Urgente!
11 Octubre 2019, 02:05 AM
Lo primero no pongas los códigos en plataformas externas si no son demasiado extensos. Es mejor que los agregues a tu comentario entre etiquetas de Código GeSHi donde puedes elegir el lenguaje que quieras (java en este caso).
Ese código no está bien... Tu código es este:
Clase: Rectangulo.
Código (java) [Seleccionar]

public class Rectangulo{
    private double punto1; // que indica el punto 1?
    private double punto2; // que indica el punto 2?
    private double punto3; // que indica el punto 3?
    private double punto4; // que indica el punto 4?

    public Rectangulo(double punto1, double punto2, double punto3, double punto4){
        this.punto1 = punto1;
        this.punto2 = punto2;
        this.punto3 = punto3;
        this.punto4 = punto4;
    }

    public double area(double p1, double p2){ // para que pasas dos parametros...
        double areaRec = punto1 * punto2; // ...si luego no los usas
        return areaRec;
    }

    public double perimetro(double p1, double p2, double p3, double p4){ // para que pasas 4 parametros...
        double perimetro = punto1 + punto2 + punto3 + punto4; // ...si tampoco los usas
        return perimetro;
    }
}

Clase principal: mainRectangulo.
Código (java) [Seleccionar]

public class mainRectangulo{
    public static void main(String[] args){
        int p1 = 0, p3 = 0; // estas variables para que si no se van a usar...
        int p2 = 0, p4 = 0; // estas tampoco se van a usar...

        Rectangulo rec = new Rectangulo(3,2,3,2);
        System.out.println("El area es: " + rec.area(p1, p2) + " m2"); // en vez de poner un espacio y luego m2 se puede poner junto
        System.out.println("El perimetro es: " + rec.perimetro(p1, p2, p3, p4));
    }
}


Lo que yo te diría sería que crearas una clase <Punto> que tenga dos coordenadas: <x> e <y> y los métodos <set> y <get> habituales. Una clase <Rectangulo> que contenga 4 Puntos (es decir, 4 objetos de la clase Punto que indiquen las coordenadas de cada esquina del rectángulo).
Para calcular las longitudes de los lados del rectángulo tendrás que hacer un poco de trigonometría básica con las coordenadas y con ello calcular el área y el perímetro.
#432
Java / Re: necesito ayuda con un ejercicio
11 Octubre 2019, 01:47 AM
Yo diría que la estructuración de las clases está un poco mal hecha. Una clase sirve para encapsular una serie de características... Imagina que tienes un programa en el que tienes muchos productos y cada uno tiene un código, un precio, una cantidad de unidades disponibles y una cantidad de unidades vendidas. En ese caso sí tendría sentido crear una clase <Producto> tal que así:
Código (java) [Seleccionar]

public class Producto{
    private String codigo;
    private float precio;
    private int unidadesDisponibles;
    private int unidadesVendidas;

    // metodos correspondientes...
}

No sé si te han pedido que crees esas clases o lo estás haciendo así por idea tuya... :rolleyes:
#433
Programación C/C++ / Re: Ayuda
11 Octubre 2019, 01:33 AM
No está mal aunque hay que pulir un par de cosas:
Antes de nada, los códigos ponlos entre etiquetas de Código GeSHi porque sino los índices no se ven y la i entre corchetes se convierte en cursiva y la u entre corchetes, en subrayado...
  • Para pedir una cadena al usuario no se usa <scanf()>, se usa <fgets()>

    #define SIZE 100 // definimos un maximo de longitud para la cadena. Esto se pone justo despues de las librerias
    char cadena[SIZE];
    printf("Introduce una cadena: ");
    fgets(cadena, SIZE, stdin);

    El siguiente problema es que al introducir una cadena y pulsar ENTER, el ENTER también se guardará en la cadena. Esto lo arreglamos rápido así:

    cadena[strlen(cadena)-1] = '\0';

  • La segunda condición de tu bucle <while()> es innecesaria. Preguntas si <c> es un dígito Y si no es un espacio... Siempre que se cumpla que es un dígito, se cumplirá también que no es un espacio. Y si no es un dígito, la segunda condición dará igual.

    Si lo que quieres conseguir es el resultado de calcular la expresión en notación polaca inversa, te falta esa parte.
#434
Lógicamente. generarAleatorio() e intercambiar() son "funciones" en pseudocódigo para que entiendas cuál es el proceso pero no existe ninguna función en C que se llame así...
Lo que tienes que hacer es implementar tú esa parte ya sea directamente en esa línea o crear una función y llamarla en esa línea.
Aparte de eso:
  • La variable limiteGenerados no tiene ningún valor por lo que no sabes cuántos números tienes que generar.
  • El array numeros[90] no tiene ningún valor.
    Y tendrás que hacer algo con los números aleatorios supongo. Lo que yo te puse era el algoritmo que genera los números aleatorios, el resto del programa corre de tu cuenta.
#435
Programación C/C++ / Re: Ayuda
10 Octubre 2019, 15:09 PM
En vez de poner dos mensajes seguidos es mejor que modifiques el primero e incluyas lo que necesites.

Para lo que quieres hacer tienes una librería que es <ctype.h> en la que tienes funciones como <isdigit()>, <isspace()>, <ispunct()>, <isgraph()>, etc. Vamos, para saber qué tipo de carácter tienes.
Te dejo un enlace donde aparecen las funciones que tienes y una tabla para que veas qué caracteres se consideran de puntuación y cuáles se consideran graficables, etc.
http://www.cplusplus.com/reference/cctype/?kw=cctype
#436
Programación C/C++ / Re: AYUDA CON UN PROGRAMA
10 Octubre 2019, 02:56 AM
Eso de "agrupar" es muy ambiguo. No sé qué es lo que te están pidiendo exactamente... :rolleyes:
#437
Si lo paso a C, te lo estoy dando hecho. Simplemente tienes que leer ese fragmento de pseudocódigo y si entiendes lo que hace, intenta hacerlo en C aunque sea a tu manera. Lo bueno del pseudocódigo es precisamente que es fácil de entender sólo con leerlo.
Si hay alguna cosa que no entiendas, pregunta. También si empiezas a hacer el código y pones lo que llevas, puedo ayudarte mejor a completar lo que te falte.
#438
De las dos ideas que te han dado me gusta más la segunda así que te la explico un poco en pseudocódigo (esto es para que lo entiendas, no es C, cuando lo entiendas tú eres el que lo tiene que hacer en C y si tienes problemas poner el código para poder ayudarte).

numeros := {1,2,3,4,5,...,89,90} // el array de numeros
numerosGenerados := 0 // indica la cantidad de numeros que hemos generado
MIENTRAS numerosGenerados < limiteGenerados HACER // limiteGenerados seria la cantidad de numeros que queremos calcular
    indiceAleatorio := generarAleatorio(0 + numerosGenerados, 89)
    numeroAleatorio := numeros[indiceAleatorio]
    intercambiar(numeros[indiceAleatorio], numeros[numerosGenerados])
    numerosGenerados := numerosGenerados + 1
FIN MIENTRAS

La idea es sacar un índice aleatorio entre 0 y 89 (en la primera iteración) y ese índice servirá para sacar el número aleatorio. Ponemos el número que ya hemos sacado en la posición 0 y el de la posición 0 en la posición del índice aleatorio. Así en la segunda vuelta obtendremos un índice entre 1 y 89 y como el valor que hemos sacado antes está en la posición 0, no volverá a salir.
En resumen, vamos dejando los valores que ya han salido a la izquierda y cogemos valores nuevos sólo de la derecha.
Si lo entiendes, crea eso mismo pero en C. :-X
#439
No se reabren temas antiguos (y este es de 2015...). Tenías que haber abierto un tema nuevo para tu problema y poner tu código para que podamos ver cómo lo estás haciendo. (El código entre etiquetas de Código GeSHi).
#440
Programación C/C++ / Re: Algoritmo Pegasus
7 Octubre 2019, 18:43 PM
No encuentro información acerca de ese algoritmo y no lo conozco así que si puedes hacer el favor de añadir una explicación o un desarrollo de éste, será más fácil poder ayudarte.
PD: Edita el primer mensaje y coloca todo lo que sea código entre etiquetas de Código GeSHi seleccionando el lenguaje que corresponda. (Tienes un desplegable que pone "Código GeSHi" encima del cuadro de edición del mensaje para ver los lenguajes disponibles). :-X