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 ... 41 42 43 44 45 [46] 47 48 49 50 51 ... 93
901
Hola Rutifito, para poner título a los temas y pegar código en los foros lee en este hilo https://www.aprenderaprogramar.com/foros/index.php?topic=1460.0 cómo debe hacerse

En el curso https://www.aprenderaprogramar.com/index.php?option=com_content&view=category&id=37&Itemid=61 tienes ejemplos de uso de TextBox

Para limpiar los textbox típicamente se usa TextBox1.Text ="" introducido dentro del código de respuesta a la pulsación de un botón de guardar o similar.

El acceso a ficheros se comenta en https://www.aprenderaprogramar.com/index.php?option=com_content&view=article&id=271:acceso-a-ficheros-archivos-con-visual-basic-acceso-secuencial-aleatorio-binario-concepto-cu00328a&catid=37:curso-aprender-a-programar-visual-basic-desde-cero&Itemid=61 y las siguientes entregas

Para ver un caso concreto, crea el código de pruebas, hasta donde puedas llegar aunque no puedas completarlo. Una vez tengas ese código explica con el mayor detalle posible qué es lo que quieres conseguir y dónde encuentras los problemas

Saludos

902
Hola Arturo, para pegar código en los foros lee en este hilo https://www.aprenderaprogramar.com/foros/index.php?topic=1460.0 cómo debe hacerse

El código de tu ejercicio está bien, así que a seguir adelante!

Saludos

903
Hola Mac, el RUP es una variante o desarrollo específico del Proceso Unificado (UP por sus siglas en inglés). Conocer el UP sería la antesala o paso previo a conocer el RUP, y ambas son metodologías muy amplias. Hablar de ellas supondría cientos de páginas.

Hay mucha información en internet como https://es.wikipedia.org/wiki/Proceso_Unificado_de_Rational

Resumidamente el UP y el RUP son metodologías de desarrollo de software, es decir, definen una serie de pasos o un marco a seguir para el desarrollo de proyectos software de gran envergadura. Se enmarcan dentro de la disciplina de Ingeniería del Software.

Estudiar y entender el RUP o el UP puede requerir semanas o meses.

Dentro de las metodologías en Ingeniería del software hay varias corrientes, aquí se hace una descripción de algunas de ellas citando el UP y el RUP https://es.wikipedia.org/wiki/Metodolog%C3%ADa_de_desarrollo_de_software

Saludos

905
Ahora bastante mejor pero debes tener en cuenta lo siguiente:

- No debes usar break dentro de un bucle excepto en casos en los que resulte verdaderamente necesario. En este ejercicio no es necesario.

- En el diseño del código buscamos ser lo más breves, limpios y claros posibles. Hay que evitar usar más variables de las necesarias, usar más condicionales o más bucles de los necesarios, etc.

Aquí estaría el código simplificado para que lo compares con el código que habías propuesto tú y en los próximos ejercicios trates de tenerlo en cuenta:

Código: [Seleccionar]
import java.util.Scanner;

public class Test70
{
    public static void main(String [] args){
        String[] mes = {"enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre"};
        String mesSecreto = mes[9];
        System.out.print("Adivine el mes secreto. Introduzca el nombre del mes con minusculas: ");
        Scanner escribirMes = new Scanner(System.in);
        String mesOculto = escribirMes.nextLine();
        while( ! mesOculto.equals(mesSecreto) ){
            System.out.print("No ha acertado.Intente adivinarlo introduciendo otro mes: ");
            escribirMes = new Scanner(System.in);
            mesOculto = escribirMes.nextLine();
               
        }
        System.out.println("¡Ha acertado!");
    }
}

Saludos

906
Hola Mario, haz resuelto correctamente una parte del ejercicio, ya que has creado 5 cuadrados. El ejercicio pide que se creen 15 cuadrados usando las tres notaciones de colores disponibles para cada color. Tú has usado únicamente la notación hexadecimal, te faltaría usar la notación de nombre y la notación rgb.

Saludos

907
Hola Campillo, tu código tiene el defecto de diseño debido al while (true) que se explica en este hilo: www.aprenderaprogramar.com/foros/index.php?topic=3091, por ello deberías corregirlo haciendo un planteamiento basado en buenas prácticas.

Puedes consultar una solución correcta al ejercicio en www.aprenderaprogramar.com/foros/index.php?topic=3091

Saludos


908
Hola niurkafer, tu código tiene además un defecto de concepción debido a que usas un while (true), que es una construcción no adecuada. Te dejo para que leas al respecto referencias.

Referencia: www.aprenderaprogramar.com/foros/index.php?topic=2865

Realizar un: while(true){

Citar
no es buena idea, ya que nos obliga a tener que usar alguna forma de salida que en la mayoría de los casos habría que tratar de evitar (como los break).

Que se entienda bien: los break son una forma válida y lícita de salir de un bucle, pero antes de que hagamos uso de esta sentencia (o de la forma que usaste), deberíamos agotar la posibilidad de salir del bucle while de una manera más elegante y limpia. Esa manera es aquella que evalúe la condición que consignamos entre los paréntesis del while.


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

Citar
Utilizas un bucle while cuya condición es 'true'. Es decir que el bucle while(true) será infinito hasta que se encuentre la sentencia break. Bueno, he de decirte que esto no conforma una buena práctica, no corresponde a un buen diseño de bucle. Siempre trataremos de resolver el problema evitando tener que salir del bucle a través de break.
Siempre intentaremos salir del bucle while cuando deje de cumplirse la condición entre sus paréntesis.

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

Citar
El código que has escrito funciona y cumple con la consigna planeada por el ejercicio.
De todos modos he de decirte que si bien existe la opción de salir de un bucle while a través de  break, trataremos de evitar la salida de esta forma.

Añadir además que una condición como while(true) prácticamente no se usa nunca cuando se está programando. Unicamente se usa a veces por ejemplo para poner ejemplos en un curso, pero while(true) equivale a "repite indefinidamente" y esto no debe utilizarse excepto si sabemos muy bien por qué hacerlo. En este ejercicio no debe usarse ni while(true) ni break.

Saludos

909
Hola Mario, todas las respuestas correctas

Se puede comprobar que aunque el texto no cabe en el ancho definido, las palabras se muestran excediendo el ancho disponible

Código: [Seleccionar]
<!DOCTYPE html>
<head>
<style>
     .magicTitle {
margin:0px;
width:10px;
height:30px;
color:green !important;
border-style: hidden !important;
}
</style>
</head>
<body>
<div class="magicTitle" style="border:1px solid blue; color: blue;">
Aprendiendo a programar
</div>
</body>
</html>

Saludos

910
Hola Francisco, sobre la pregunta a) correcto, no compila porque el objeto no está inicializado. Declararlo es solo una reserva de memoria, pero no se puede invocar algo que no existe. Si lo intentamos hacer podemos obtener un error de tipo java.lang.nullPointerException o similar.

Código: [Seleccionar]
import java.util.ArrayList;
public class Programa3 {
    public static void main(String arg[]) {
        ArrayList<Integer> unaLista;
        unaLista.add(1);
    }
}

Sobre la pregunta b), correcto pero no porque el método pueda disponer de una variable local. Puede tenerla o no tenerla, no es necesario que haya una variable local. En realidad, un constructor puede estar vacío en determinadas circunstancias y esto no supone ningún problema siempre que sepamos lo que hacemos.

La pregunta c) preguntaba si la llamada al método se hacía sobre un objeto declarado y creado. Efectivamente es así, aunque en este caso la declaración y creación la hace automatizadamente java en segundo plano, no la hacemos nosotros.

Saludos

911
Hola calderas

Mi visión sería partir primero de la definición de los métodos que da el api de java https://docs.oracle.com/javase/8/docs/api/java/util/Random.html#nextInt-int-

Citar
public int nextInt(int bound)

Returns a pseudorandom, uniformly distributed int value between 0 (inclusive) and the specified value (exclusive), drawn from this random number generator's sequence. The general contract of nextInt is that one int value in the specified range is pseudorandomly generated and returned. All bound possible int values are produced with (approximately) equal probability.

Lo que refleja es que el método nextInt (aNumber) nos devuelve un número entero entre 0 (incluido) y aNumber (excluido). Por ejemplo nextInt(101) nos devuelve un entero entre 0 y 100 (ya que el 101 está excluido).


El método nextInt() sin argumentos es otro método y hace otra cosa https://docs.oracle.com/javase/8/docs/api/java/util/Random.html#nextInt--

Citar
public int nextInt()

Returns the next pseudorandom, uniformly distributed int value from this random number generator's sequence. The general contract of nextInt is that one int value is pseudorandomly generated and returned. All 2^32 possible int values are produced with (approximately) equal probability.


Esto reflejaría que este método devuelve cualquier entero. Un entero se define como un número positivo o negativo sin decimales. Como es imposible trabajar con infinitos números el rango se acota a 2^32 de modo que el método devuelve un valor cualquiera entre -4294967296 y 4294967296 (entre -2^32 y 2^32 que es el rango de enteros con que se trabaja).

Una diferencia importante es que nextInt(aNumber) trabaja en un rango entre 0 y aNumber mientras que nextInt() no tiene rango (tiene un límite pero es tan grande que casi es como si no existiera).

Por ello al escribir a = rnd.nextInt(101); estamos obteniendo resultados en un rango

Sin embargo al escribir a = rnd.nextInt()*101; estamos obteniendo "cualquier número multiplicado por 101" donde "cualquier número" puede ser tanto positivo como negativo.

Creo que la clave está en que es un método sobrecargado en el api de java y realmente parece que hicieran lo mismo pero hacen cosas bastante distintas según lleve o no argumentos

Saludos

912
Hola Camashu y bienvenido. Recomendamos leer este hilo https://www.aprenderaprogramar.com/foros/index.php?topic=1460.0 donde se explica cómo pegar código en los foros, cómo poner título a los temas, etc.

Para obtener ayuda pega el código con el que estés trabajando como se explica en el hilo anterior, explicando lo mejor posible dónde están las dudas y a qué parte de código corresponden.

Saludos

913
Hola Campillo

La solución que has planteado no se ajusta a lo que pide el ejercicio

El ejercicio pide que se cree y se trabaje con objetos de tipo CantanteFamoso y en el código de solución propuesto no has creado esa clase, con lo cual no es una respuesta válida para lo que pide el ejercicio

Saludos

914
Hola Mario, el ejercicio no pedía establecer el atributo de clase "secundario" para elementos internos a los div. Por tanto esto no es correcto:

<div class="secundario">
      <h3>Lanzamos el producto <span>X-FASHION</span></h3>


Lo que sería correcto es:

<div class="secundario">
      <h3>Lanzamos el producto <span>X-FASHION</span></h3>

El código HTML quedaría así:

Código: [Seleccionar]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Portal web - aprenderaprogramar.com</title>
<meta name="description" content="Portal web aprenderaprogramar.com">
<meta name="keywords" content="aprender, programar, cursos, libros">
<meta charset="utf-8">
<link rel="stylesheet" type="text/css" href="estilo_ej4.css">
</head>
<body>
<div class="principal">
<h1>Novedades</h1>
<p>Aquí presentamos las novedades del sitio.</p>
</div>
<div class="secundario">
<h3>Lanzamos el producto <span>X-FASHION</span></h3>
<p>Este producto permite estirar la piel hasta dejarla como la de un bebé.</p>
<p><img src="http://i.imgur.com/tq5Bs.png" title="Imagen del producto" alt="imagen producto x-fashion" /></p>
</div>
<div class="secundario">
<h3>Mejoramos el producto T-MOTION</h3>
<p>Hemos lanzado una nueva versión del producto <span>T-MOTION</span></p>
<p><img src="http://i.imgur.com/SpZyc.png" title="Imagen del proudcto tmotion" alt="imagen producto tmotion" /></p>
</div>
</body>
</html>

Y el código CSS quedaría así:

Código: [Seleccionar]
/* Comentario en CSS estilos aprenderaprogramar.com*/
body{font-family: Arial;}
.principal h1{color:red; font-size:130%;}
.secundario h3{ color:green;font-size:110%;}
.secundario h3 span {background-color:yellow;}

Saludos

915
Hola, sin estrellas ni galardones  ;), el uso de instrucciones que crean disrupciones en el flujo natural de programas se consideran inadecuadas por generar estructuras de código de diseño pobre y difícil seguimiento. Un bucle while tiene una puerta natural para entrar o salir (la condición). Salir con un break es como salir por la ventana, puedes hacerlo, pero no es lo más adecuado.

Para quien quiera leer más: Modificación directa del flujo de programas: entregas CU00177A a CU00183A del curso de Bases de la programación http://aprenderaprogramar.com/index.php?option=com_content&view=category&id=28&Itemid=59

Saludos

916
Hola Pedro

Has realizado con exactitud lo que pedía el ejercicio

Sobre lo laborioso que es, la definición de tamaños tiene que ser como la has hecho, no queda más remedio. Donde sí puedes ahorrar código es evitando repetir font-weight: bold; múltiples veces. Dado que en la tabla tienes o bien th que por defecto se ponen en negrita, o títulos h1, h2, h3, etc. o bien imitas los títulos y en todo caso es de aplicación font-weight: bold; obtienes el mismo resultado eliminando todas esas repeticiones y usando:

Código: [Seleccionar]
table{
border-collapse:
collapse; border: solid 1px #000;
width: 80%;
text-align: center;
font-weight: bold;
}

O si lo prefieres también obtienes el mismo resultado haciendo:

Código: [Seleccionar]
td, th{border: 1px solid #000; font-weight: bold;}

En general conviene evitar la repetición de código siempre que sea posible

Saludos

917
Hola Refer, si te refieres a que el programa conozca datos cuando se inicia el programa hay diferentes maneras de hacerlo:

a) Introducir esos datos dentro del código del propio programa, de modo que cuando se inicie lea esos datos y ya los conozca

b) Tener los datos guardados en un archivo (o en varios archivos) de modo que cuando el programa se inicia, o cada vez que lo necesite, lea los datos desde el archivo.

Aquí tienes un ejemplo de leer y escribir en archivos de texto en Java: https://www.aprenderaprogramar.com/foros/index.php?topic=712

Y aquí otro: https://www.aprenderaprogramar.com/foros/index.php?topic=1154

c) Usar una base de datos de modo que los datos se encuentren almacenados en la base de datos y cada vez que se necesiten se lean desde la base de datos.

Saludos

918
Hola Refer, en el curso http://aprenderaprogramar.com/index.php?option=com_content&view=category&id=68&Itemid=188 se explican distintas maneras en que se podría hacer esto. Además se explica por qué se debe usar equals cuando se trata de hacer comparaciones con Strings.

Si lo que quieres es verificar si el último caracter es un punto y si es así eliminarlo puedes usar este código:

Código: [Seleccionar]
import java.util.Scanner;

class Datos{
    public static void main(String[]args){
        Scanner scanner = new Scanner(System.in);
        System.out.print("Escribe una cadena: ");
        String cadena= scanner.nextLine();
        cadena = cadena.toUpperCase();
        System.out.println("Cantidad de caracteres: "+cadena.length());
        String ultimoCaracter = cadena.substring(cadena.length()-1);
       
        if (ultimoCaracter.equals(".")){
            System.out.println("Ultimo caracter es un punto por lo que se elimina");
            cadena = cadena.substring(0,cadena.length()-1);
        }
        System.out.println(cadena);
    }
}

Saludos

919
Hola Francisco, en general los atributos los declaramos private y los métodos public (aunque no es obligatorio, es lo habitual). En este caso falta public por "un despiste", mejor ponérselo.

En el método String Combinacion (String valor_texto1, String valor_texto2) diríamos que no hay variables locales, sino parámetros (que recibe el método). Los parámetros funcionan como si fueran una variable local, como indica lorenzo31 nacen y terminan con el método.

Saludos

920
Hola Mario, el ejercicio está bien.

Detalle:

En el esquema de llaves no has reflejado correctamente esta línea:

Código: [Seleccionar]
<p><img src="http://i.imgur.com/tq5Bs.png" title="Imagen del producto" alt="imagen producto x-fashion" /></p>
Para reflejar que la etiqueta img está dentro de la etiqueta p tendrías que abrir una llave desde la p y dentro de esa llave incluir todos los elementos que tenga dentro (en este caso es un solo elemento lo que está dentro, la imagen).

Lo mismo ocurre con una situación análoga en el código unas cuantas líneas más abajo.

En cambio en el esquema de cajas sí se ve que la caja de la imagen está dentro de la caja del párrafo, ahí lo has reflejado perfectamente.

Saludos

Páginas: 1 ... 41 42 43 44 45 [46] 47 48 49 50 51 ... 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".