Mostrar Mensajes

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


Mensajes - Alex Rodríguez

Páginas: 1 ... 34 35 36 37 38 [39] 40 41 42 43 44 ... 93
761
Hola manu, los ejercicios están correctos, el único error o despiste está en el último ejercicio en $alumnos [1] = array("6", "", "7", "2"); donde te faltó la cifra 19 para que fuera $alumnos [1] = array("6", "19", "7", "2");

Saludos

762
Hola ejoselopaint por la imagen pareciera que faltara código ya que te indica que no encuentra referencias. Pega el código C++ que estás usando de partida siguiendo las indicaciones que se dan en https://www.aprenderaprogramar.com/foros/index.php?topic=1460.0 para poder revisarlo

Saludos

763
Hola te indico la corrección

El ejercicio dice "obtener la duración recibiendo como dato el número de canción" por tanto escribiríamos

Código: [Seleccionar]
public double duracionCancion(int numeroCancion);
en lugar de

Código: [Seleccionar]
public double duracionCancion(int duracionCancion);
Para el apartado 3 si sabemos que las duraciones son decimales, la suma de todas las duraciones deberá ser un decimal, en vez de

Código: [Seleccionar]
public int tiempoCompleto();//Método tipo función
deberá ser

Código: [Seleccionar]
public double tiempoCompleto();//Método tipo función
Lo demás todo bien

Saludos

765
Hola, si te refieres al código que figura más arriba, ya te he comentado los errores que tiene en el mensaje anterior. Si te refieres a que has corregido el código, ¿dónde has pegado el nuevo código? (pégalo aquí para poder verlo)

Saludos

766
Hola Chopi, para que podamos revisar los ejercicios debes pegar el código completo de la clase (o de varias clases si intervinieran varias clases)

Sobre tu duda de si es necesario definir variables o usar get... el ejercicio dice que "Define una clase Rueda considerando los siguientes atributos de clase: tipo (String), grosor (double), diametro (double), marca (String)."

Es decir, diametro es un atributo de clase. Por tanto se puede recuperar directamente simplemente escribiendo diámetro (también se puede recuperar usando el get pero no es necesario). Puedes ver un ejemplo en https://www.aprenderaprogramar.com/foros/index.php?topic=1214.0

Para revisar tu ejercicio sería necesario que pegaras el código completo.

Saludos

767
Hola Visor, existen diferentes programas y/o lenguajes que pueden ser usados con el fin de crear animaciones.

Una cuestión importante es determinar cuál es el fin de crear la animación, por ejemplo no es lo mismo pensar en crear una animación cuyo objetivo es servir de presentación a modo de película animada que una animación que tenga por finalidad simular el funcionamiento de un sistema o que tenga por finalidad mostrar desde el punto de vista científico y estadístico la evolución de variables en un sistema.

Voy a citar dos posibilidades aunque hay muchas más.

Lenguaje R: es un lenguaje que se usa con fines de análisis de datos, minería de datos, análisis estadístico, etc. Tiene paquetes que permiten crear animaciones. Web https://www.r-project.org/ puede descargarse gratuitamente


Entorno de simulación Arena: es un programa que permite crear simulaciones de la evolución de sistemas. Por ejemplo permite crear simulaciones del procesado de productos en una fábrica o de la atención a clientes en un supermercado. Además de toda la información estadística, también permite visualizar cómo evolucionan las colas de productos o clientes durante el proceso a través de las distintas partes del sistema. Web https://www.arenasimulation.com/ puede descargarse una versión de prueba gratuitamente

Existen muchos más programas y entornos dependiendo de para qué quieran usarse.

Saludos

768
Hola manu37

El código que has pegado corresponde al apartado a), faltan los otros dos apartados

Sobre el código que has pegado comentarte lo siguiente:

- Cuando declares variables con contenido un String o cadena de caracteres debes hacerlo así:

Código: [Seleccionar]
$ingles_basico  [0] [0] = "Ingles_Basico_1";
En lugar de
Código: [Seleccionar]
$ingles_basico  [0] [0] = Ingles_Basico_1;
No hacen falta comillas cuando vas a declarar valores numéricos (que es lo que se pedía para el ejercicio). Por ejemplo:

Código: [Seleccionar]
$ingles_basico  [0] [0] = 1;

es correcto

Tu ejercicio no está bien resuelto, por cuanto se pedía asiganar a las variables los valores numéricos de la matriz, pero tú has asignado a las variables una cadena.

Vuelve a leer las explicaciones del curso y revisa este hilo: https://www.aprenderaprogramar.com/foros/index.php?topic=1893.0 puedes guiarte por este hilo y después tratar de resolver el ejercicio por tí mismo.

Saludos

769
Hola, ahora lo veo mejor. Te sugiero que compares tu solución con la solución dada en https://www.aprenderaprogramar.com/foros/index.php?topic=2889.0 ahí podrás ver algunas cosas interesantes

Saludos

770
Aprender a programar desde cero / Re:aprender programar en html
« en: 09 de Noviembre 2015, 13:11 »
Hola juanjo, concretamente debe ir entre las etiquetas <head> y </head> (puedes ver un ejemplo en http://aprenderaprogramar.com/index.php?option=com_content&view=article&id=508:hipervinculos-links-o-enlaces-html-etiqueta-a-atributos-href-target-y-title-tipos-de-links-img-cu00717b&catid=69:tutorial-basico-programador-web-html-desde-cero&Itemid=192)

No te preocupes ahora por esto, vete siguiendo el curso paso a paso y realizando los ejercicios. Puedes pegar los ejercicios en los foros para obtener comentarios y saber si vas bien.

Saludos.

771
Hola jasolis he revisado tu código y funciona correctamente realizando su cometido. Puedo señalarte un aspecto que aunque no sea un fallo podría ser mejorado. Te indico cómo podrías mejorarlo para que si tienes interés lo hagas (si quieres pega el código una vez hayas hecho los cambios y te comentaremos de nuevo).

Cuestión 1: en la clase EntradaTeclado para pedir una entrada de teclado y establecer el atributo entrada hemos de crear un objeto, ya que es la única forma de que se nos pida la entrada, el realizarse esa petición dentro del constructor.

Cuestión 2: en la clase TestListaCantantesFamosos lo anterior nos obliga a crear varios objetos EntradaTeclado y surge código repetitivo, por ejemplo:

Código: [Seleccionar]
        for(int i = 0; i < 2; i++){
            cantante = new CantanteFamoso();
            System.out.println("Por favor introduce el nombre del cantante");
            entrada = new EntradaTeclado();
            cantante.setNombre(entrada.getEntrada());
            System.out.println("Por favor introduce el disco con más ventas del cantante " + cantante.getNombre());
            entrada = new EntradaTeclado();
            cantante.setDiscoConMasVentas(entrada.getEntrada());
            listaCantantesFamosos.addCantanteFamoso(cantante);
        }

Se repite entrada = new EntradaTeclado(); aquí y en otros puntos...

Mejora del diseño que se podría implementar: en la clase EntradaTeclado crear un método que sirva para pedir la entrada de teclado (de esta forma, no estaría en el constructor, sino en un método).

En la clase TestListaCantantesFamosos crear un único objeto EntradaTeclado e irlo utilizando a través de sus métodos cada vez que sea necesario. De ese modo evitamos tener que repetir entrada = new EntradaTeclado(); en múltiples ocasiones.

Saludos

772
Hola

Citar
Respecto al error que tenia en el código me surge una duda:
Salvo que estaba solicitado así en el enunciado del ejercicio ¿hay algún problema en haberlo escrito con métodos de tipo procedimiento en vez de tipo función?

Respuesta: normalmente un método que calcula algo es tipo función, de esa manera lo invocamos y obtenemos la respuesta que podemos manejar en otro contexto. En muchas ocasiones es preferible usar funciones, incluso si queremos mostrar algo por pantalla podemos usar una función que nos devuelva el String a mostrar, y luego usar ese String. Disponer de un resultado nos será útil, así podremos manipular el resultado (por ejemplo hacer una traducción automática a otro idioma).

Ejemplo: System.out.println ("El resultado del cálculo es "+ miObjeto.hacerCalculo() );

Si hacerCalculo no devolviera algo no podríamos hacer esto.

Realmente no es simplemente para hacer System.out.println, es para muchas más cosas para lo que sirve, esto se va entendiendo a medida que se va progresando como programadores, poco a poco

Saludos

773
Hola tienes que fijarte en que tienes dos objetos y cada objeto tiene dos propiedades (atributos).

Inicialmente las propieddes de un objeto creado son "Soy un collie" y "Cachupin".

Si quieres cambiar las dos propiedades en un objeto tienes que escribir:

$obj->setProperties("Ahora soy un Terrier", "Soy parte de la segunda propiedad");

Si quieres aprender los conceptos de la programación orientada a objetos te recomiendo este curso https://www.aprenderaprogramar.com/index.php?option=com_content&view=category&id=68&Itemid=188

Saludos

774
Hola Camila Nova: una función no puede tener dos return. La función se ejecuta hasta llegar a un return, y en ese momento se devuelve el control al punto desde donde fue llamada.

El problema está aquí:

  public function getProperties()   {
      return $this->prop1 . "<br />";
      return $this->prop2 . "<br />";
  }

Para devolver las dos propiedades tienes que hacerlo en un solo return:

  public function getProperties()   {
      return $this->prop1 . "<br />". $this->prop2 . "<br />";
  }

El código podría quedar así:

Código: [Seleccionar]
<meta charset = "utf-8" />
<?php 
  
class Perro 
  public 
$prop1 "Soy un collie!!";
  public 
$prop2 "Cachupín"
  
  public function 
setProperties($newval1$newval2) { 
  
      
$this->prop1 $newval1
  if (
$newval2) {$this->prop2 $newval2;}
  } 
  
  public function 
getProperties()   { 
      return 
$this->prop1 "<br />"$this->prop2 "<br />"
  } 

  
 
$obj = new Perro
$obj2 = new Perro
  
echo 
$obj->getProperties(); 
echo 
$obj2->getProperties(); 
  
$obj->setProperties("Ahora soy un Terrier"""); 
$obj2->setProperties("Soy parte de la segunda instancia!"""); 
  
echo 
'<br/>Propiedades del objeto 1: '.$obj->getProperties(); 
echo 
'<br/>Propiedades del objeto 2: '.$obj2->getProperties(); 
  
?>


En realidad en general en programación orientada a objetos cada propiedad tiene un método distinto para recuperarse, es decir, tendrías un getProp1 y un getProp2.

Saludos.

776
Hola Pasandav

Este ejercicio es algo complejo y tu código está muy bien planteado y sirve perfectamente para ver lo que pedía el ejercicio (el polimorfismo, cómo una colección de Set puede contener distintos tipos como HashSet y TreeSet).

No tienes bien resuelto el apartado

Citar
e) Usa iteradores para recorrer los elementos del ArrayList y recorrer el contenido de cada uno de los elementos y mostrar este contenido por pantalla. Por pantalla deberás obtener “sol”, “luna”, “saturno”, 8, 5, 2.

En realidad no estás recorriendo el contenido de los elementos del ArrayList, sino que estás mostrando directamente esos elementos con un System.out.println, esto mismo lo tienes comentado y explicado en https://www.aprenderaprogramar.com/foros/index.php?topic=2384.0

Saludos

777
Hola la clase BufferedImage se usa para mantener una representación de una imagen en memoria dentro de una aplicación Java, de modo que la puedes modificar o guardar en cualquiera de los formatos estándar propios de imágenes.

Para pasar como parámetro una BufferedImage antes habrás tenido que crearla con un constructor (igual que haces con cualquier otra clase, por ejemplo un ArrayList antes de pasarlo como parámetro tienes que haberlo creado), por ejemplo

Código: [Seleccionar]
import java.awt.image.BufferedImage;

...

BufferedImage img = new BufferedImage(256, 256, BufferedImage.TYPE_INT_RGB);

Esto crea una imagen de 256x256 píxeles sin transparencia. Todavía faltaría "dibujar la imagen", es decir, asignarle valores a sus píxeles, de modo que después puede ser guardada. Para asignar valores a los píxeles se puede hacer a bajo nivel, que sería establecer valores directamente con los métodos setRGB() ó a alto nivel basándonos en definir formas geométricas, una imagen de partida, etc.

Ejemplo de uso:

Código: [Seleccionar]
private void loadData(){
  if (!this.file.exists()) {
    throw new RuntimeException("Skinfile '" + this.file.getName() + "' does not exist!");
  }
  try {
    BufferedImage img=ImageIO.read(this.file);
    this.width=img.getWidth();
    this.height=img.getHeight();
    this.pixelData=new Color[this.width][this.height];
    this.blockTypes=new ColorBlock[this.width][this.height];
    for (int x=0; x < this.width; x++) {
      for (int y=0; y < this.height; y++) {
        this.pixelData[x][this.height - y - 1]=new Color(img.getRGB(x,y));
      }
    }
    this.loaded=true;
  }
 catch (  Exception e) {
    e.printStackTrace();
  }
}

Un ejemplo más completo donde se crea un BufferedImage a partir de una imagen en formato png. En este código tienes que cambiar la línea String imageURL = "image.png"; para poner la ruta de la imagen que quieras utilizar

Código: [Seleccionar]
import java.awt.Component;
import java.awt.Frame;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.GraphicsConfiguration;
import java.awt.GraphicsDevice;
import java.awt.GraphicsEnvironment;
import java.awt.Image;
import java.awt.Toolkit;
import java.awt.Transparency;
import java.awt.image.BufferedImage;
import java.awt.image.ImageObserver;

public class ImageToBufferedImage {

    static BufferedImage image;
    static boolean imageLoaded = false;

    public static void main(String[] args) {
        // The ImageObserver implementation to observe loading of the image
        ImageObserver myImageObserver = new ImageObserver() {
                public boolean imageUpdate(Image image, int flags, int x, int y, int width, int height) {

                    if ((flags & ALLBITS) != 0) {
                        imageLoaded = true;
                        System.out.println("Image loading finished!");
                        return false;
                    }
                    return true;
                }
            };

        // The image URL - change to where your image file is located!

        String imageURL = "image.png";

        /**
         * This call returns immediately and pixels are loaded in the background
         * We use an ImageObserver to be notified when the loading of the image
         * is complete
         */
        Image sourceImage = Toolkit.getDefaultToolkit().getImage(imageURL);
        sourceImage.getWidth(myImageObserver);

        // We wait until the image is fully loaded
        while (!imageLoaded) {
            try {
                Thread.sleep(100);
            } catch (InterruptedException e) {
            }
        }

        // Create a buffered image from the source image with a format that's compatible with the screen
        GraphicsEnvironment graphicsEnvironment = GraphicsEnvironment.getLocalGraphicsEnvironment();
        GraphicsDevice graphicsDevice = graphicsEnvironment.getDefaultScreenDevice();
        GraphicsConfiguration graphicsConfiguration = graphicsDevice.getDefaultConfiguration();
        // If the source image has no alpha info use Transparency.OPAQUE instead
        image = graphicsConfiguration.createCompatibleImage(sourceImage.getWidth(null), sourceImage.getHeight(null), Transparency.BITMASK);
        // Copy image to buffered image
        Graphics graphics = image.createGraphics();
        // Paint the image onto the buffered image
        graphics.drawImage(sourceImage, 0, 0, null);
        graphics.dispose();
        // Create frame with specific title
        Frame frame = new Frame("Example Frame");
        // Add a component with a custom paint method

        frame.add(new CustomPaintComponent());
        // Display the frame
        int frameWidth = 300;
        int frameHeight = 300;
        frame.setSize(frameWidth, frameHeight);
        frame.setVisible(true);

    }

    /**
     * To draw on the screen, it is first necessary to subclass a Component and
     * override its paint() method. The paint() method is automatically called
     * by the windowing system whenever component's area needs to be repainted.
     */
    static class CustomPaintComponent extends Component {
        public void paint(Graphics g) {
            // Retrieve the graphics context; this object is used to paint shapes
            Graphics2D g2d = (Graphics2D) g;

            /**
             * Draw an Image object The coordinate system of a graphics context
             * is such that the origin is at the northwest corner and x-axis
             * increases toward the right while the y-axis increases toward the
             * bottom.
             */
            int x = 0;
            int y = 0;
            g2d.drawImage(image, x, y, this);

        }
    }
}

Saludos

778
Hola

Observaciones:

El método se llama iterator, no Iterator. Aquí es importante distinguir porque Iterator con mayúsculas es otra cosa. Consulta el api de java y comprueba qué es una cosa y otra.

No has respondido a todo lo que se preguntaba.

Puedes ver una respuesta correcta en https://www.aprenderaprogramar.com/foros/index.php?topic=2213.0

Saludos

779
Gracias a tí por indicar cómo lo has solucionado. Ten en cuenta que a veces resulta difícil de analizar el código, por eso te había pedido que facilitaras una forma más directa de analizarlo, pero si ya lo has solucionado... a seguir

Saludos

780
Hola siempre agradecemos que se responda para saber que se leyó el mensaje. También agradecemos que se ayude a otros usuarios que sepan menos, respondiendo consultas en los foros, de esa forma conseguimos que los foros funcionen en base a ayuda mutua.

Saludos

Páginas: 1 ... 34 35 36 37 38 [39] 40 41 42 43 44 ... 93

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".