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 ... 33 34 35 36 37 [38] 39 40 41 42 43 ... 93
741
Hola Badger, la programación orientada a objetos se te hará fácil de seguir y entender si realizas este curso paso a paso (del que además cuentas con ayuda a través de estos foros): http://aprenderaprogramar.com/index.php?option=com_content&view=category&id=68&Itemid=188

Para poder ayudarte sería necesario que pegues todo el código con el que estás trabajando y que expliques con detalle lo que necesitas. Por ejemplo hablas de una función para llenar la clase publicacion (por cierto los nombres de las clases en Java deben comenzar con una letra mayúscula). Para dar valores a los atributos de clase en Java se usan constructores. Para pasar los valores precisos al constructor, antes debes crear los objetos necesarios. Pero realmente no sé si te refieres al constructor.

Saludos

742
Hola anmaroso, gracias por el aporte. Sin ver el conjunto del código y el contexto es difícil hacerse una idea. Sin embargo sí puedo señalarte un aspecto del código que llama la atención.

Estableces vmt1 = dt.Rows(fila)(1)

Luego la condición del bucle interno es Do While dt.Rows(fila)(1) = vmt1 And fila <= dt.Rows.Count - 1


vmt1 no cambia dentro del bucle, parece que permaneciera constante. Si es así, incluirlo en la condición del bucle sería innecesario y podría quedar la condición del bucle simplemente como Do While fila <= dt.Rows.Count - 1

No puedo ratificarlo porque no puedo probarlo, pero tú sí podrás hacerlo y ver si realmente es necesaria esa condición.

Saludos.

743
Hola la recursividad es algo relativamente complejo de entender y de programar

Algunos hilos interesantes para entender la recursividad:

https://www.aprenderaprogramar.com/foros/index.php?topic=2154.0

https://www.aprenderaprogramar.com/foros/index.php?topic=511.0

https://www.aprenderaprogramar.com/foros/index.php?topic=1493.0

Este código sería un ejemplo para resolver el problema planteado:

Código: [Seleccionar]
public class GaussTrick {
 

    public static void main(String[] args)    {
        int inicio = 1;
        int fin = 50;
        System.out.println("La suma recursiva de "+inicio + " hasta "+ fin + " es " + SumaRecursivaDeNaM(inicio, fin) );   
        System.out.println ("Comprobación con la fórmula: n * (n+1) / 2 vale " + fin * (fin+1) /2 );
       
       
    }

    public static int SumaRecursivaDeNaM(int n, int m) {
        if(n == m) { return m;}
       return n+SumaRecursivaDeNaM (n+1, m);
    }
}

Saludos

744
Aprender a programar desde cero / Re:4 en linea c++
« en: 05 de Diciembre 2015, 11:57 »
Hola lo primero que tendrías que definir son las reglas del juego, sin saber las reglas que vas a aplicar no puedes crear un programa. ¿Tienes una consigna o descripción del juego?

745
Hola Claudio

Leyendo este hilo sobre "Por qué desaparecen objetos creados en Java al cerrar la ventana de BlueJ" creo que quedará resuelta la duda: https://www.aprenderaprogramar.com/foros/index.php?topic=1233

Saludos

746
Hola Darwin, el foro denominado "Comunidad" es para que las personas nuevas en los foros se presenten a los demás. Para escribir consultas debe hacerse en los foros previstos para ello.

También ten en cuenta que para escribir consultas deben seguirse las indicaciones dadas en https://www.aprenderaprogramar.com/foros/index.php?topic=1460.0 y en particular:

- Indicaciones sobre el uso de mayúsculas y minúsculas

- Indicaciones sobre cómo poner el título a los temas

- Otras indicaciones


Para crear un array bidimensional en C# puedes hacerlo como en este ejemplo:

Código: [Seleccionar]
using System;
namespace ArrayApplication
{
   class MyArray
   {
      static void Main(string[] args)
      {
         /* an array with 5 rows and 2 columns*/
         int[,] a = new int[6, 6] {{1,2,3,4,5,6}, {2,4,6,7,10,12}, {3,6,9,12,15,18}, {4,8,12,16,20,24}, {5,10,15,20,25,30}, {6,12,18,24,30,36} };
         int i, j;
         
         /* output each array element's value */
         for (i = 0; i < 6; i++)
         {
            for (j = 0; j < 6; j++)
            {
               Console.WriteLine("a[{0},{1}] = {2}", i, j, a[i,j]);
            }
         }
         Console.ReadKey();
      }
   }
}

Saludos

747
Hola Enzo hay listados con todas las clases del api de java como este: http://docs.oracle.com/javase/8/docs/api/allclasses-noframe.html

También hay índices donde se explica para qué sirven todas las clases del api java como este: http://docs.oracle.com/javase/8/docs/api/

Estos índices puedes recorrerlos y ver qué hace cada clase.

Hay algunos sitios web donde te puedes descargar el api de java en español, pero la recomendación es que si quieres dedicarte a la programación te acostumbres a trabajar consultando la documentación en inglés porque si no hay muchas cosas que no vas a encontrar.

El código lo tienes bien resuelto, usas tipos estático Producto y los instancias con un tipo dinámico que puede ser producto fresco, refrigerado u otro... Creas listas de Producto formadas por instancias de los distintos subtipos por ejemplo

Código: [Seleccionar]
Producto_CU00687B [] listaPtosEnviados = {productoFresco1, productoFresco2, productoRefrigerado1, productoRefrigerado2, productoRefrigerado3,
            productoCongelAire1, productoCongelAire2, productoCongelAgua1, productoCongelAgua2, productoCongelNitro1};
       

Saludos

748
Hola OCi cuando quieras pegar tu solución a un ejercicio abre mejor un nuevo tema, no respondas en un tema ya abierto

También ten en cuenta que para pegar código debes hacerlo como se indica en https://www.aprenderaprogramar.com/foros/index.php?topic=1460.0 para que quede bien

Sobre tu código, comentarte que usas while(true) y esto no es correcto, lee la explicación en https://www.aprenderaprogramar.com/foros/index.php?topic=2570.0

Saludos

749
Hola aldomax2, aquí https://www.aprenderaprogramar.com/foros/index.php?topic=2826.0 tienes explicado por qué se suele usar false

Saludos

750
Hola Enzo

Citar
A ver si se explicarla: ¿Existe alguna forma de saber si hay alguna clase (o método) en el API de Java que haga lo que nosotros queremos conseguir, pero, que no sea mirando clase por clase?

Respuesta:

Puedes saberlo gracias a:

a) La experiencia que tengas acumulada como programador

b) Preguntándote ¿esta necesidad la habrán tenido otros muchos programadores? Si la respuesta es sí, es que posiblemente existe una clase en el api de java que lo resuelva.

c) Buscando en internet, libros, etc.

d) Consultando a otros programadores, en foros, etc.

Con lo anterior podrás saberlo con un 95% de fiabilidad. Siempre existirá una pequeña incertidumbre, es decir, no puedes saberlo con total certeza.

Para poder revisar el ejercicio pega todas las clases que se utilicen (si no lo haces así tendríamos que ir buscando clases entre los cientos de ejercicios que hay en los foros  :-[ que a veces tienen distintas versiones o correcciones nos complicaría bastante...)

Saludos

751
Hola Luis todo correcto la única recomendación es que no utilices eñes en los nombres de clases, métodos o variables en Java porque puede generarte problemas. Por ejemplo usaríamos  private int annoEdicion; en lugar de  private int añoEdicion; y public int getAnnoEdicion() en lugar de public int getAñoEdicion() así con cualquier eñe

Saludos

752
En este código

Código: [Seleccionar]
int n = 2;
if(n== 5 && ++n == 4) {
System.out.println ("Aqui n vale"+n);
}
System.out.println ("Ahora n vale"+n);

Ocurre lo que tú comentas, al no cumplirse n ser 5 no llega a ejecutarse ni evaluarse ++n == 4

Java incluye algunos operadores que no se suelen utilizar en la programación más habitual que son los operadores bit a bit como el or bit a bit o el and bit a bit

En concreto se definen estos operadores:

~       Unary bitwise complement
<<      Signed left shift
>>      Signed right shift
>>>     Unsigned right shift
&       Bitwise AND
^       Bitwise exclusive OR
|       Bitwise inclusive OR

Estos operadores se recomienda que no sean usados en la programación habitual.

Este código es un ejemplo de estos operadores:

Código: [Seleccionar]
public class Test {

  public static void main(String args[]) {
     int a = 60; /* 60 = 0011 1100 */ 
     int b = 13; /* 13 = 0000 1101 */
     int c = 0;

     c = a & b;       /* 12 = 0000 1100 */
     System.out.println("a & b = " + c );

     c = a | b;       /* 61 = 0011 1101 */
     System.out.println("a | b = " + c );

     c = a ^ b;       /* 49 = 0011 0001 */
     System.out.println("a ^ b = " + c );

     c = ~a;          /*-61 = 1100 0011 */
     System.out.println("~a = " + c );

     c = a << 2;     /* 240 = 1111 0000 */
     System.out.println("a << 2 = " + c );

     c = a >> 2;     /* 215 = 1111 */
     System.out.println("a >> 2  = " + c );

     c = a >>> 2;     /* 215 = 0000 1111 */
     System.out.println("a >>> 2 = " + c );
  }
}

El resultado es:

a & b = 12
a | b = 61
a ^ b = 49
~a = -61
a << 2 = 240
a >> 15
a >>> 15

El operador XOR en java es ^ y devuelve el resultado de comparación bit a bit:

1 XOR 1 = 0 (uno es distinto de 1 es falso)
1 XOR 0 = 1 (Uno es distinto de cero es verdadero)
0 XOR 1 = 1 (cero distinto de 1 es verdadero)
0 XOR 0 = 0 (cero distinto de cero es falso)

El resultado de esta operación:

0011 XOR 0101 = 0110

Se explica con la lógica anterior

El operador or inclusivo | es equivalente al operador || de disyunción habitual, no hay diferencias entre ambos, pero el que debe usarse en programación habitual es ||

Saludos

753
Vaya! Ese problema que comentas parece bastante difícil de detectar, yo diría que puede ocurrir pero es bastante infrecuente. Gracias por comentar cómo lo has solucionado.

Saludos

754
Hola Hquinn

Te comento las cosas que tendrías que cambiar o mejorar:

Una clase representa algo, en este caso un médico, y un médico es caracterizado por sus atributos. Por ejemplo el nombre es un atributo, le podríamos preguntar al médico, ¿cuál es tu nombre? Sin embargo un médico no tiene un resto, no tiene sentido que le preguntemos ¿cuál es tu resto?

Todo lo que no tenga sentido que sean atributos no deben ser atributos (serán variables locales u otra cosa). En tu caso no tiene sentido que sean atributos multiplo, resto ni resultado.

Para orientarte en posibles soluciones a este ejercicio introduce el código CU00633B en el buscador del foro. En particular puedes orientarte por este hilo: https://www.aprenderaprogramar.com/foros/index.php?topic=2145.0 Revísalo y trata de comprender todo lo que hace para después plantear tú mismo la solución al ejercicio.

Si tienes dudas después de todo ello, consúltalas

Saludos

755
Tienes razón, la línea debe quedar así:

Código: [Seleccionar]
<a href=" http://es.wikipedia.org/wiki/Panthera_tigris" target="_blank"> <img src="http://www.knickers.it/il%20tuo%20web/Sfondi/tigre.jpg" width="300px"  title=" Pulsa aqui para saber mas sobre tigres"></a>

Gracias por el apunte!

756
Hola jmueva podría plantearse de distintas maneras, una de ellas es la siguiente:

=SI(D5>=140;10;SI(D5>=135;9;SI(D5>=130;8;SI(D5>=125;7;SI(D5>=120;6;SI(D5>=115;5;SI(D5<115;4;"No posible")))))))

En tu expresión no son válidos fragmentos como este: E6=115<120, esto no es una sintaxis válida.

Saludos

757
Hola mimerro

Para obtener ayuda en los foros conviene seguir las indicaciones que se dan en https://www.aprenderaprogramar.com/foros/index.php?topic=1460.0

Entre ellas

Citar
Recomendaciones generales para consultas: no hagas consultas sobre problemas muy extensos o fragmentos de código muy extensos. Antes de hacer una consulta, intenta resolver tú mismo el problema. Cuando no sepas cómo avanzar, prepara el código o pseudocódigo necesario y pégalo, indicando dónde obtienes un error o no sabes avanzar. Describe cuáles son los objetivos que persigues de una forma clara y breve. Ten en cuenta que las personas que participan respondiendo voluntariamente en los foros en general responden cuestiones concretas y bien definidas, pero no resuelven ejercicios completos ni analizan consignas, enunciados o código de gran extensión porque sería demasiado costoso.

Puedes ver este código de ejemplo de creación de menú consola en C#:

El main:

Código: [Seleccionar]
class Program
{
    static void Main(string[] args)
    {

        FootballTeams MyCode = new FootballTeams();

int userInput = 0;
do
{

  userInput = DisplayMenu();

}while(userInput!=5);
    }
}


Clase necesaria

Código: [Seleccionar]
class FootballTeams
{


    public FootballTeams(){ }

    List<string> teams;
    public void ListInit()


static public int DisplayMenu()
{   
  Console.WriteLine("Football Manager");
  Console.WriteLine();
  Console.WriteLine("1. Add a Football team");
  Console.WriteLine("2. List the Football teams");
  Console.WriteLine("3. Search for a Football team");
  Console.WriteLine("4. Delete a team");
  Console.WriteLine("5. Exit");
  var result = Console.ReadLine();
  return Convert.ToInt32(result);
}



    public void AddTeams()
    {
      Console.WriteLine("Enter a team to be added: ");
      string userinput = Console.ReadLine();
      if (teams.Count < 10)
      {
       if (userinput != "Colchester")
        {
          teams.Add(userinput);
          foreach (var item in teams)
          Console.Write(item.ToString() + " ");
         }
        else
          Console.Write("NOT ALLOWED");
         }
       else
         Console.Write("MAXIMUM LIMIT REACHED");
      }


    public void DisplayTeams()
    {
     foreach(var item in teams)
     Console.Write(item.ToString() + " ");
    }

    public void TeamSearch()
    {
     Console.WriteLine("Please enter the team you wish to search for: ");
     string userinput = Console.ReadLine();
     if (teams.Contains(userinput))
     Console.WriteLine("Success, team " + userinput);
    }

    public void Delete()
    {
      Console.WriteLine("Enter a team you wish to delete: ");
      string userinput = Console.ReadLine();
      teams.Remove(userinput);
      foreach (var item in teams)
      Console.Write(item.ToString() + " ");
    }

Saludos

758
Hola AlfredoSword, el ejercicio admite dos posibles formas de responderlo. Pero en cualquier caso se pide decir cuáles podrían ser las clases y cuáles podrían ser algunos objetos, pero no has respondido a esto, por tanto deberías reestudiarlo y revisarlo.

Te recomiendo leer este hilo https://www.aprenderaprogramar.com/foros/index.php?topic=940.0 para orientarte sobre cómo debería resolverse y después intentarlo por ti mismo.

Saludos

759
Hola Enzo

Lo veo todo bien aunque aparece un número extraño detrás del peso

Citar
PIEDRA      PESO DEL PALET
------      --------------
CALIZA      1380.0 kg6
MARMOL      1637.0825 kg6
PIZARRA      1523.75 kg7
CUARZITA   1686.153 kg8


Para corregirlo basta cambiar la línea System.out.println (tmp.toString().length()); y dejarla simplemente como System.out.println("");

Saludos

760
Hola anmaroso, una estrategia que puede ser útil es mostrar por pantalla las consultas que intervienen para verificar que estén bien construidas.

Simplemente escribir algo como

MsgBox ("La consulta a ejecutar es: " & consultam) ó MsgBox ("La consulta a ejecutar es: " & consulta1)

De este modo puedes ver si hay algún error en la generación de consultas ¿Qué obtienes al mostrarlas por pantalla?

Otra cosa, cuando te refieres a que no te modifica el primer registro ¿te refieres a una fila o a una columna? Si es una columna, ten en cuenta que algunas columnas pueden estar definidas como autoincrementales y por ello no es posible modificarlas a través de una consulta ya que sus valores se generan automáticamente.

Saludos

Páginas: 1 ... 33 34 35 36 37 [38] 39 40 41 42 43 ... 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".