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 ... 54 55 56 57 58 [59] 60 61 62 63 64 ... 93
1161
Hola, revisando los apartados:

Citar
Analiza el siguiente código HTML. En él encontrarás tres etiquetas div. Haz lo siguiente:

a) Establece atributos id para cada una de ellas con valores <<novedades>> para la primera, <<xFashion>> para la segunda y <<tMotion>> para la tercera.

Bien (recomendable no usar guiones en los nombres)


Citar
b) Usando CSS establece como color de texto el rojo (red) para los elementos h1 que se encuentren dentro del elemento con id <<novedades>>.

Para que la regla sólo aplique a elementos h1 dentro del elemento con id novedades sería así:

#Novedades h1 {color:red;}

Como tú la has puesto #Novedades {color:red;background-color:yellow;} aplicaría a todos los elementos dentro del elemento con id Novedades


Citar
c) Usando CSS establece como color de texto el verde para los elementos h3 que se encuentren dentro de los elementos con id <<xFashion>> y <<tMotion>>.

Bien. Para evitar repetir código mejor así: #X-FASHION, #T-MOTION {color:green;}


Citar
d) Usando CSS establece como color de fondo para el elemento con id <<novedades>> el amarillo (yellow).

Bien. Se dejaría #Novedades {background-color:yellow;}


Saludos

1162
Aprender a programar desde cero / Re:Ticket de venta. Errores
« en: 17 de Marzo 2015, 09:26 »
Hola, el código que has pegado contiene caracteres extraños y no compila, por ejemplo en:

private String contentTicket = “::�?+(char)27+(char)112+(char)0+(char)10+(char)100+�?ACCESORIOS {{nameLocal}}::\n�?+


¿A tí te compila?

Si no te compila mejor empezar desde cero e ir compilando poco a poco para evitar fallos. Si ves que te falta base te recomiendo seguir el curso Java desde cero: http://aprenderaprogramar.com/index.php?option=com_content&view=category&id=68&Itemid=188

Citar
Soy nuevo en JS y estoy tratando de crear un pequeño ejemplo

Ten en cuenta que JS es la abreviatura de JavaScript y que JavaScript no tiene nada que ver con Java. Y si eres nuevo en java te recomiendo empezar con el curso citado...

Si no tienes fundamentos de programación recomendamos leer esto: https://www.aprenderaprogramar.com/foros/index.php?topic=1313.0

Saludos

1163
Hola, simplemente copiarlo y pegarlo. Cuando tengas código en varios archivos simplemente indica qué es cada cosa y pega el código, por ejemplo:

Código HTML:

Código: [Seleccionar]
Aquí iría el código html
Código CSS:

Código: [Seleccionar]
Aquí iría el código CSS
Código JavaScript:

Código: [Seleccionar]
Aquí iría el código JavaScript
Saludos

1164
Hola Alejandro ¿ya te gradúas? Enhorabuena!! ¿Ya tienes en perspectiva algún trabajo, prácticas, becas o algo? Sobre el problema que planteas, podrías resolverlo creando tres arreglos (en Python los arreglos se llaman listas) aunque lo que haría un programador avanzado sería hacerlo con orientación a objetos de modo que un objeto Examen contenga la información necesaria (Materia, Día de presentación, Nota obtenida).

En cambio si usas arreglos vas a necesitar tres arreglos: uno para la materia, otro para el día de presentación y otro para lo nota obtenida.

Para mostrar los datos con arreglos tendrías que hacer un recorrido tipo

Desde i=1 hasta 5
Mostrar materia(i)
Mostrar diaDePresentacion(i)
Mostrar notaObtenida(i)
FinDesde

Te recomendaría que tomes un tutorial y lo vayas siguiendo por ejemplo https://launchpadlibrarian.net/18980633/Python%20para%20todos.pdf

Saludos

1165
Hola nani, la declaración de campos o atributos de la clase está bien. El constructor también está bien. Pero los métodos no están bien. Debes incluir un método get y un método set por cada uno de los campos de la clase, es decir, deberías tener estos métodos getters:

getNombre
getApellido1
getApellido2
getEdad
getCasado
getNumeroDocumentoIdentidad
getEspecialidad

Y estos métodos setters:

setNombre
setApellido1
setApellido2
setEdad
setCasado
setNumeroDocumentoIdentidad
setEspecialidad

Aquí puedes consultar una solución al ejercicio y guiarte por ella : www.aprenderaprogramar.com/foros/index.php?topic=1299

Saludos

1166
Hola respecto a los nombres de las clases si ves otros hilos del foro se insiste en que los nombres de las clases deben describir lo que son o lo que hacen las clases.

El nombre Fecha_Años no describe lo que es o lo que hace esta clase. Esta clase debería llamarse CalculadoraEdad o CalculadorAños o algo así.

La clase Configurar_FechaAño tampoco tiene un nombre adecuado. Esta clase sirve para hacer una prueba, entonces debería llamarse TestCalculoEdades o algo similar.

Usar getters y setters no es obligatorio, pero es lo habitual. Para un pequeño programa como este donde tienes 50 líneas de código a lo mejor no te hacen falta, pero si haces programas grandes sí te van a hacer falta, por tanto mejor acostumbrarse a ponerlos.

En la clase Fecha_Años hay algo que no parece tener mucha lógica:

   if(dia_Actual < dia_Nacimiento && mes_Actual <= mes_Nacimiento){
      Edad_Años = (año_Actual - año_Nacimiento)-1;
   }

Aquí hace un cálculo para el caso de que la fecha actual sea anterior a la fecha de nacimiento. Por ejemplo la fecha actual es 11-03-2060 y la fecha de nacimiento es 14-02-2065, es decir, que la persona no ha nacido, sino que va a nacer en el futuro. ¿Cuál es la edad? Pues debería devolverse 0 (indicaría que no ha nacido), ó -1 (para indicar que existe un error).

Para mejorar en el diseño de algoritmos y el diseño orientado a objetos te recomiendo seguir e ir realizando todos los ejercicios del curso http://aprenderaprogramar.com/index.php?option=com_content&view=category&id=68&Itemid=188

Saludos

1167
Creo que te has olvidado de incluir el código CSS...  ::)

1168
Hola me parece que te has olvidado de incluir el código CSS?

1169
Hola matru por favor ten en cuenta dos cosas: en el título del mensaje incluye siempre la referencia completa del curso, por ejemplo CU00633B en lugar de 33B.

Por otro lado, si el mensaje que escribes es respuesta, ampliación o corrección relacionada con un tema, escribe el mensaje como respuesta a ese tema, no abras un nuevo tema porque entonces tendríamos conversaciones duplicadas o triplicadas sobre el mismo tema y sería difícil saber por dónde va la conversación, además quien te ha respondido previamente puede no percatarse de que tú has respodido, etc.

Gracias!

1170
Aprender a programar desde cero / Re:Calculadora Javascript
« en: 12 de Marzo 2015, 08:14 »
Hola en este curso creo que hay un ejemplo de calculadora http://aprenderaprogramar.com/index.php?option=com_content&view=category&id=78&Itemid=206 pero no creo que llegue a resolver el -(-) que comentas.

Siempre pedimos que se pegue el código con el que se está trabajando como se explica en http://aprenderaprogramar.com/index.php?option=com_content&view=category&id=78&Itemid=206 y que se indique el punto donde se produce el error, eso facilita revisar y ayudar a resolver los problemas

Saludos

1171
Hola en esta entrega del curso había 2 ejercicios (ejercicio 1 y ejercicio 2). Has respondido (todo correcto) el ejercicio 2, te faltaría responder el ejercicio 1.

Saludos

1172
Hola por favor no escribas los títulos de los temas en mayúsculas (eso se interpreta como que estás gritando).

El ejercicio CU01008D te recomendaría que lo hicieras pues si no lo haces no se sabe si has comprendido lo que se explica en el curso...

Sobre el código del ejercicicio CU01009D la aplicación de estilos en línea está bien pero has puesto los puntos y coma mal, ya que los has puesto fuera de las comillas <h1 style="color:red";>Novedades</h1> cuando deben ir dentro de las comillas <h1 style="color:red;">Novedades</h1>

Los navegadores intentarán "pasar por alto" esos errores y mostrar la web con normalidad, pero algunos navegadores puede que no muestren las cosas correctamente si hay errores de este tipo.

Saludos

1174
Aprender a programar desde cero / Re:CU01008D- CAJAS CSS
« en: 11 de Marzo 2015, 10:50 »
Hola, el propósito del ejercicio

Citar
Analiza el siguiente código HTML y crea dos esquemas. Un esquema de organización utilizando llaves como hemos visto anteriormente, y otro esquema que refleje las cajas que intervienen en el documento HTML, siguiendo el ejemplo visto anteriormente.

Es crear los esquemas a mano o con un programa de dibujo, con word, o cualquier otro, no mediante código, ya que todavía no ha explicado en el curso cómo hacerlo mediante código (esto se verá más adelante). Si la persona que sigue el curso es capaz de crear los esquemas es que ha entendido las explicaciones...


Saludos

1175
Hola, poco que añadir: únicamente comentar que el nombre de la clase public class Teclado { no encaja bien dentro de la convención para nombrar clases y métodos en programación orientada a objetos. El nombre de una clase debe indicar lo que es (lo que representa) o lo que hace. Esta clase no representa un teclado, por tanto sería mejor nombre algo como GestionadorEntradasTeclado. Así podríamos decir "he creado un objeto Gestionador de entradas de teclado" en lugar de "he creado un objeto Teclado".

Saludos.

1176
Hola, en el api java tenemos:

get: get(int index) Returns the element at the specified position in this list. En este ejemplo, si el ArrayList es de Integer, nos devolverá un Integer. Como dice toni_apr, aquí nos devuelve un Integer, pero podría ser un objeto Persona, Rueda u otro tipo según el caso.

remove: remove (int index) Removes the element at the specified position in this list. Este método no devuelve nada, únicamente elimina el elemento en la posición especificada.



Coincido con toni, en  miListadoAL.get(tmpAL.get(i) ) el compilador está haciendo una conversión automática de tipos

Y en  miListadoAL.remove( tmpAL.get(i) ); no la hace, requiere que se le indique explícitamente miListadoAL.remove( (int) tmpAL.get(i) );

¿Por qué? Se trata de detalles de bajo nivel del compilador, algo que los desarrolladores del compilador han decidido que sea así (o que han dejado así sin intención explícita y que quizás cambien en futuras versiones del lenguaje).

Y a modo de resumen, ¿cómo saber qué hacer en cada caso? Lo más correcto pienso que sería pasarle siempre a un método el tipo que requiere el método, en este caso si los métodos requieren int, lo indicaríamos explícitamente:


         for (int i=0; i < tmpAL.size(); i++) {
            System.out.println ("Eliminamos ítem "+ (tmpAL.get(i)+1) +": " + miListadoAL.get((int)tmpAL.get(i) ) );
            miListadoAL.remove( (int) tmpAL.get(i) );   //Introducida conversión de tipos
        }

Aquí está indicado explícitamente que se pasa un int a aquellos métodos que requieren int, con lo cual no estamos a expensas de si el compilador realizará o no la conversión automática. En general nos confiamos pensando que la conversión automática lo hará todo correctamente pero podemos encontrarnos con casos en que no es así.

Adicionalmente: los métodos remove son especialmente problemáticos, porque a diferencia de los métodos get que sólo consultan lo que existe en el objeto, los métodos remove modifican el objeto. Quizás eso pueda darnos pie a pensar que los creadores del compilador decidieran no hacer conversiones automáticas en métodos especialmente delicados. Habría que preguntárselo a ellos...

Saludos.

1177
Hola Danteco87, aparte de agradecer a Toni, te agradeceríamos que no pongas los títulos de los temas en mayúsculas. En el contexto de foros, escribir en mayúsculas se considera equivalente a estar gritando, y que se grite no resulta agradable para los demás. Es solo una metáfora pero por favor tenlo en cuenta. Saludos.

1178
Hola, lo he estado mirando y parte de los problemas pueden tratarse con cierta facilidad y otra parte no.

Cadencia: T-L-T-T-L-L-L-L

Código que he utilizado para las pruebas:

Código: [Seleccionar]
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.GregorianCalendar;
import java.util.Calendar;
import java.util.Date;

public class Calendario {

    /**
     * @param args
     * @throws ParseException
     */
    public static void main(String[] args) throws ParseException {

        dameCalendario("-01-2014");
        dameCalendario("-02-2014");
        dameCalendario("-03-2014");

    }

    public static void dameCalendario(String mesYaño) throws ParseException {
        SimpleDateFormat formato = new SimpleDateFormat("dd-MM-yyyy");
        GregorianCalendar cal = new GregorianCalendar();

        int año = 2014;
        int mes = 00;
        int diaa = 01; // 
        Calendar calendar = new GregorianCalendar(año,mes,diaa);
        long fecha = calendar.getTimeInMillis();

        System.out.println("MES ES: "+mesYaño);
        for (int i=1; i<=31;i++) {

            String dias = i+mesYaño;
            Date date = null;
            date = formato.parse(dias );
            System.out.print(" Ahora date vale: "+ date + "    . ");
            cal.setTime(date);
            long dia = cal.getTimeInMillis();
            dia =dia-fecha;
            dia=dia/(1000*60*60*24);
            System.out.print(" Ahora dia vale: "+ dia);
            int seg2 = (int) (dia % 8);
            System.out.print(" El resto de dia entre 8 es: "+ seg2 + "   .    ");
            if(seg2 ==0 || seg2 == 2|| seg2== 3){
                System.out.println("T-Trabajo el:"+ dia + " (El dia "+ i + " del mes)");
            }else{ 
                System.out.println("L-Libre el dia:"+ dia + " (El dia "+ i + " del mes)");
            }
        }

    }
}

Parte tratable: algunas de las fechas que estás relacionando son fechas que no existen, por ejemplo el 31 de febrero de 2015. Estas fechas no deberían intervenir en un programa porque no tienen sentido. Java maneja las fechas que no existen a través de la propiedad lenient mode. lenient mode por defecto está activado, lo que significa que el 31 de febrero de 2015 será tratado como el día válido más próximo (dando un resultado sin sentido donde parece que se pierde la cadencia).

Por ejemplo para los últimos días de febrero de 2014 y comienzo de marzo de 2015 tendríamos esto

L-Libre el dia:52 (El dia 22 del mes)
L-Libre el dia:53 (El dia 23 del mes)
L-Libre el dia:54 (El dia 24 del mes)
L-Libre el dia:55 (El dia 25 del mes)
T-Trabajo el:56 (El dia 26 del mes)
L-Libre el dia:57 (El dia 27 del mes)
T-Trabajo el:58 (El dia 28 del mes)
T-Trabajo el:59 (El dia 29 del mes) - NO VALIDO
L-Libre el dia:60 (El dia 30 del mes)  - NO VALIDO
L-Libre el dia:61 (El dia 31 del mes)  - NO VALIDO
MES ES: -03-2014
T-Trabajo el:59 (El dia 1 del mes)
L-Libre el dia:60 (El dia 2 del mes)
L-Libre el dia:61 (El dia 3 del mes)
L-Libre el dia:62 (El dia 4 del mes)
L-Libre el dia:63 (El dia 5 del mes)
 

Si eliminas los días no válidos, la cadencia se respeta y los resultados son válidos.



Parte difícilmente tratable:

Si analizamos los últimos días de marzo de 2014 tendríamos esto:

T-Trabajo el:80 (El dia 22 del mes)
L-Libre el dia:81 (El dia 23 del mes)
T-Trabajo el:82 (El dia 24 del mes)
T-Trabajo el:83 (El dia 25 del mes)
L-Libre el dia:84 (El dia 26 del mes)
L-Libre el dia:85 (El dia 27 del mes)
L-Libre el dia:86 (El dia 28 del mes)
L-Libre el dia:87 (El dia 29 del mes)
T-Trabajo el:88 (El dia 30 del mes)
T-Trabajo el:88 (El dia 31 del mes) - FALLA, TENDRÍA QUE SER LIBRE Y PONE QUE TRABAJO

El problema aquí parece estar relacionado con que en algunas versiones de Java a la hora de calcular la duración del día toma en consideración el cambio horario de ciertos países (según configuración local) que se produciría por ejemplo en el 31 de marzo. Esto da lugar a que el cálculo de milisegundos no se haga con 24 horas, sino con 23 horas, y el redondeo al calcular el resto hace que lo considere como si en lugar de día 31 fuera día 30. Esto podría corregirse pero...

Recomendación: las clases de java.util.Date y Calendar han pasado a considerarse problemáticas. Para trabajar un problema de este tipo debe usarse java 8 y el paquete java.time.*

Aquí se comenta algo al respecto: http://aprenderaprogramar.com/index.php?option=com_content&view=article&id=619:clase-calendar-y-gregoriancalendar-java-conversion-de-fechas-ejemplos-cambios-desde-java-8-cu00925c&catid=58:curso-lenguaje-programacion-java-nivel-avanzado-i&Itemid=180

En resumen, más que fallo tuyo diría que es fallo de Java. El hecho de que Java estaba fallando lo demuestra el que hayan creado una nueva parte del api con nuevas clases para tratar el tiempo en las nuevas versiones. Si lo que había en anteriores versiones hubiera funcionado bien no lo hubieran cambiado.

Por tanto, ¿por dónde seguir? -- > Usar java 8 con las nuevas clases del paquete java.time

Saludos

1179
Aprender a programar desde cero / Re:Problema fechas
« en: 03 de Marzo 2015, 13:31 »
Hilo de foro duplicado en https://www.aprenderaprogramar.com/foros/index.php?topic=1093.0. Cerramos este hilo. Saludos.

1180
Hola puedes probar esto en Windows:

Código: [Seleccionar]
public static void main(String arg[]) throws IOException{
Runtime runtime = Runtime.getRuntime();
Process proc = runtime.exec("shutdown -s -t 0");
System.exit(0);
}

O esto en otros sistemas operativos:

Código: [Seleccionar]
public static void shutdown() throws RuntimeException, IOException {
    String shutdownCommand;
    String operatingSystem = System.getProperty("os.name");

    if ("Linux".equals(operatingSystem) || "Mac OS X".equals(operatingSystem)) {
        shutdownCommand = "shutdown -h now";
    }
    else if ("Windows".equals(operatingSystem)) {
        shutdownCommand = "shutdown.exe -s -t 0";
    }
    else {
        throw new RuntimeException("Unsupported operating system.");
    }

    Runtime.getRuntime().exec(shutdownCommand);
    System.exit(0);
}

Saludos

Páginas: 1 ... 54 55 56 57 58 [59] 60 61 62 63 64 ... 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".