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 2 3 [4] 5 6 7 8 9 ... 93
61
Hola, veo el ejercicio muy bien resuelto. Si te fijas en la solución variante planteada en https://aprenderaprogramar.com/foros/index.php?topic=2425.0 hay pequeñas diferencias: en tu solución el constructor invoca métodos, en la solución variante no. En tu código el método obtenerSalarioBase invoca un método get para recuperar el valor del atributo, mientras que en la solución variante hace uso directo del atributo. Para mí ambas soluciones son correctas, y estos detalles podríamos decir que son pequeños detalles de los estilos de programación de cada persona, saludos

62
De todo un poco... / Re:lenguajes
« en: 03 de Septiembre 2019, 17:33 »
Hola, este foro no es es el adecuado para esta consulta, ya que este foro va dirigido a presentarse a la comunidad. Por ello, procederé a cambiar la consulta de foro Tampoco tiene un título adecuado, que debe ponerse siguiendo las indicaciones que hay en
https://aprenderaprogramar.com/foros/index.php?topic=1460.0 , por ello procederé a cambiarle el título. Tenlo en cuenta para futuras ocasiones por favor.

Tal y como entiendo la pregunta se refiere a todas las subcadenas que se pueden formar con a, b excepto las que contengan cualquier cadena tipo ab, aab, abb, aabb, es decir, no pueden contener as seguidas de bs.

Analizando las opciones:

La opción 1) admite aba por tanto sería falsa

La opción 2) admite aaaaa... , bbbbbbbb...aaaaaaaa, bbbbbbb...bababababa....aaaaaaaa... aquí la concatenación de ba genera bababababa dentro de la cual tenemos ab, por tanto sería falsa.

La opción 3) comprende bbbbb...aaaaaaaa

La opción 4 incluye babababa y en la concatenación tenemos ab por lo tanto sería falsa.

Lo que nos exige el enunciado es que:

- Una cadena no puede admitir una a antes de una b. Esto lo cumple la opción 3.
- Una cadena puede contener cualquier número de bs seguido de cualquier número de as. Esto lo cumple la opción 3.

La respuesta, salvo que me equivoque en algo, sería la opción 3)

Saludos

63
Todo correcto excepto el constructor, donde es recomendable inicializar los atributos a unos valores por defecto estándar.

Con inicializar los atributos a sus valores por defecto, nos referimos a lo siguiente:

Los String inicializarlos a cadena vacía ""
los int a cero 0
y los boolean a false

En algunos casos se decide inicializar un String con un texto como "Desconocido". Si se hace esto, debe ser con un propósito, que el atributo tenga ese valor por defecto.

64
Hola, es recomendable que incluyas código como se indica en https://aprenderaprogramar.com/foros/index.php?topic=1460.0
La idea sería poner al final del procedimiento que invoques cuando se pulsa el botón, una actualización del TextBox. Para ello lo suyo sería tener definido el número que utilizas en una variable de tipo Integer, y que la cadena U-1493 se obtenga concatenando "U-" con un valor entero.

Por ejemplo Dim Contador As Integer

... procedimiento que se llama cuando se hace click en el botón correspondiente

Contador = Contador + 1
TextBox1.Text = "U-" & (Contador)

... End Sub

Puede ser de interés Curso de Visual Basic: https://aprenderaprogramar.com/index.php?option=com_content&view=category&id=37&Itemid=61

65
Hola fruz, sé que no respondo a lo que pides, pero puede entenderse ese código si se sigue el curso básico de lenguaje C que tenemos en la web disponible en https://aprenderaprogramar.com/index.php?option=com_content&view=category&id=82&Itemid=210

Aunque el código es sencillo, explicarlo línea por línea sería bastante trabajoso.

Saludos

66
Hola, veo diferentes cosas extrañas en tu código, por ello te recomendaría que sigas paso a paso el Curso básico de programación lenguaje C desde cero para aclarar los conceptos, lo tienes disponible en https://aprenderaprogramar.com/index.php?option=com_content&view=category&id=82&Itemid=210. Entre las cosas que no me cuadran:

- Declaras un array bidimensional y tratas de usar elementos de un array unidimensional (char estado[MAX_STRLEN][36]; y luego estado[1] == "Aguascalientes";)
- No usas correctamente los índices de los arrays
- No usas correctamente los operadores. = no es lo mismo que ==
- No manejas correctamente los strings con funciones de la librería string.h. La asignación de una cadena de texto a un array de caracteres no se hace como se hace con variables numéricas. estado[1] == "Aguascalientes"; no tiene sentido o al menos no tiene el sentido que se deduce que quiere que tengas.
- No usas formato de código adecuado  ( scanf("%i",&num); )

Fruto de todo ello el programa devuelve numerosos warning del tipo
warning: statement with no effect [-Wunused-value]|
warning: comparison with string literal results in unspecified behavior [-Waddress]

y muestra un comportamiento que no es el esperado. Como te he comentado, siguiendo el curso podrás aclarar todos los conceptos.

Nota: array es lo mismo que arreglo, unas personas usan una forma y otras la otra.

Saludos

67
Hola, la respuesta es correcta, y si se quieren ampliar detalles puede consultarse en https://aprenderaprogramar.com/foros/index.php?topic=940.0

Saludos

68
Hola lualsaji de cara a escribir en los foros (visión general) consulta https://aprenderaprogramar.com/foros/index.php?topic=1460.0
Para el ejercicio que has propuesto, la solución no es correcta. Un avión de carga no es un tipo de aerolínea. Y una matrícula no es una instancia ni de avión de carga ni de aerolínea. Consulta https://aprenderaprogramar.com/foros/index.php?topic=940.0, creo que te aclarará ideas.

Saludos.

69
Para los amantes de la navidad y de java, árbol de navidad en Java dibujado en la consola:

Código: [Seleccionar]
public class ArbolDeNavidad {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        int i,j,k,n;
        n=10; //Modifica este parámetro si quieres
        for(i=1; i<n+(n/2); i++){
            for(j=n+(n/2); j>i; j--){
                System.out.print(" ");}
            for(k=1; k<=2*i-1; k++){
                System.out.print("*");}
            System.out.println("");
        }
        for(i=1; i<n-(n/2); i++){
            for(j=n+(n/2); j>1; j--){
                System.out.print(" ");}
            for(k=n/2; k<=(n/2)+1; k++){
                System.out.print("*");}
            System.out.println("");
        }
    }
}

70
Hola, habías puesto el texto con un color que no se veía, lo he modificado. Lee las indicaciones para escribir en los foros en https://aprenderaprogramar.com/foros/index.php?topic=1460.0

En este hilo se ha comentado algo sobre el cambio de idioma de Visual Studio https://aprenderaprogramar.com/foros/index.php?topic=4164.0 échale un vistazo a ver si te sirve.

Saludos

71
Hola, hay varios fallos (algunos de planteamiento y otros de codificación).

Prueba este código y compáralo con el tuyo:

Código: [Seleccionar]
#include <stdio.h>
#include <stdlib.h>

int main(){
float precio, impuestos, precioConImpuestos;
precio=100.0; //Ponerle el punto decimal
impuestos=0.04;
precioConImpuestos=precio * impuestos;
printf("El precio con impuestos es de %f impuestos\n", precioConImpuestos);
  //Mal calculado y mal indicado el formato de la variable de salida %d es sólo para enteros
printf("Gracias por utilizar este programa del curso aprendeaporgramar.com");
return 0;
}

Saludos

72
Hola carlacinquemani, el anidamiento se usa aquí para por un lado recorrer una colección de objetos Set que están en lista1 mediante el iterador Iterator it3 = lista1.iterator(); con el while más externo

Y por otro lado para cada Set, que contiene una colección de cadenas de texto (String), se usa el otro while para recorrer esas cadenas.

Este ejercicio se puede resolver de distintas maneras, por lo tanto no necesariamente otro código distinto está mal. En caso de querer mostrar tu código, abre un nuevo tema.

Saludos.

73
Aprender a programar desde cero / Re:Ejercicios para resolver
« en: 27 de Octubre 2018, 18:43 »
Hola, en todos los cursos de la web hay ejercicios resueltos dentro de los propios cursos (por ello es recomendable seguir avanzando hasta encontrarlos). Saludos.

74
Hola, por favor leer el hilo https://aprenderaprogramar.com/foros/index.php?topic=1460.0 donde se indica cómo poner título a los temas de los foros.

El ejercicio pide <<Realizar una declaración de variables para las siguientes propuestas de programas. No es necesario crear los programas, sino únicamente indicar cómo se haría la declaración de variables.>>

Te pongo ejemplos:

c) Un programa que muestra la altura de una puerta con la mayor precisión posible

Si declaras int alturaPuerta; ¿Tienes la mayor precisión posible? No, porque int es un entero. ¿Cómo deberías declararlo para tener la mayor precisión decimal?


d) Un programa que nos pregunta el número de hermanos que tenemos (sin incluirnos a nosotros mismos) y nos muestra el número de hermanos totales que somos (incluyéndonos a nosotros).

Necesitaremos una variable como int numeroHnosSinIncluirnos; aquí usamos un entero porque el número de hermanos no puede ser decimal. Unicamente podrán ser 0 (no tenemos hermanos), 1 (tenemos un hermano, 2, 3, 4, etc.

Saludos

75
Hola, por un lado felicitarte por el código y por haber usado dos clases, con lo que usas la orientación a objetos. Como cuestión a mejorar tendríamos el nombre de las clases: el nombre de clase DeletreaFrase es poco adecuado. Yo le hubiera puesto quizás el nombre ManejadorDeFrases. Lee la explicación que se da en https://aprenderaprogramar.com/foros/index.php?topic=3035.msg13698#msg13698 sobre cómo nombrar clases, es algo relativamente importante dentro de la programación orientada a objetos.

Saludos

76
Hola, el código hace lo que se pedía en el ejercicio. No obstante es interesante revisar por ejemplo el hilo https://aprenderaprogramar.com/foros/index.php?topic=2873.0 donde puede verse que el código puede hacerse más compacto. Un aspecto deseable en la programación es evitar la repetición. Si te fijas repites varias veces if(cadena.substring(0,1).equalsIgnoreCase("a"))

Aquí no tiene demasiada importancia, pero son detalles en los que conviene irse fijando para mejorar.

Saludos

77
Hola, todo correcto: constructor, sobrecarga de nombres, métodos, etc.

Saludos

78
Hola, para tratar de responder veamos lo que dice el api de Java sobre los métodos de los objetos de tipo Iterator:

boolean    hasNext()     Returns true if the iteration has more elements.
E              next()                Returns the next element in the iteration.

El método hasNext() devuelve true si hay algún elemento de la colección que aún no se ha recorrido. El método next() devuelve el siguiente elemento dentro de la colección, entiendo que en el orden por defecto que esté establecido para esa colección. En un caso como este el orden viene dado por la posición del elemento dentro del ArrayList, por tanto next() nos devolverá en la primera petición el elemento 0, en la segunda petición el elemento 1 y así sucesivamente hasta devolvernos el último elemento de la colección. Una vez esto ocurre, hasNext() devuelve false porque ya no quedan más elementos por recorrer.

Lo que hacemos con este código es recorrer todos los elementos dentro del ArrayList de uno en uno, y comprobar si alguno contiene la cadena buscada.

Si ponemos como cadena a buscar J el resultado que obtenemos es:

La cadena que buscamos es J
Analizando elemento... Juan Pérez Sánchez
Cadena encontrada!!!
Analizando elemento... José Alberto Reverón Montes
Cadena encontrada!!!



Es decir, recorre cada uno de los elementos y encuentra la cadena dos veces, porque está en los dos elementos (tanto en Juan Pérez Sánchez como en José Alberto Reverón Montes)

Nota: una letra como J puede tratarse como un carácter o como una cadena de una sola letra. En este caso la hemos tratado como una cadena de una sola letra.

Espero que haya aclarado algo

Saludos

79
Hola, el ejercicio está correcto. En https://aprenderaprogramar.com/foros/index.php?topic=1972.0 se comenta una cuestión sobre precisión decimal que puede ser interesante leer.

Saludos

80
Hola, sí, solo se trataba de modificar la clase Casa como has hecho. En https://aprenderaprogramar.com/foros/index.php?topic=1220.msg6735#msg6735 hay una explicación importante, ya que como tú lo has hecho es una forma de hacerlo, pero posiblemente sean más interesantes otras. Ahora no te recomiendo que te detengas demasiado en esto, pero sí te recomendaría que más adelante volvieras a repasar este ejercicio para entender mejor por qué posiblemente sea más correcto crear un objeto nuevo con el set que establecer la igualdad con el objeto recibido. Pero como te comento, no te detengas ahora en esto, revísalo un poco más adelante.

Saludos

Páginas: 1 2 3 [4] 5 6 7 8 9 ... 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".