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 - Mario R. Rancel

Páginas: 1 2 3 4 5 6 [7] 8 9 10 11 12 ... 32
121
Buenos días, todo bien

En algunas versiones de php la función strstr no admite el parémetro booleano y aparece el mensaje de error Warning: Wrong parameter count for strstr() in... En estas versiones de php que no admiten el parámetro el último ejercicio se escribiría:

Código: [Seleccionar]
<?php 
$cadena01 "El abecedario completo es algo largo y detallarlo exhaustivamente es costoso";
$cadena02 strstr($cadena01"es");
echo $cadena02;
?>


En el último ejercicio te has valido de un "truco" que es tomar la palabra posterior a "completo". Sin embargo esto hace el código débil: desde que se cambia la frase tu código ya no funciona. Por ejemplo:

Código: [Seleccionar]
<?php 
$cadena01 "El abecedario es completo; creado por la Real Academia es algo largo y detallarlo exhaustivamente es costoso";
$cadena02 strstr($cadena01"es");
echo $cadena02;
?>

Si te basas en la palabra completo tu código será más fuerte.

Saludos.

122
Buenas tardes, me parece digno de admiración tu empeño con el aprendizaje, el tiempo que le dedicas y el esfuerzo. Y te agradecemos tus palabras y tu valoración de la web. Aunque no te veas con nivel, ya has terminado varios cursos. En esos cursos que ya has terminado, te agradecería que empieces a ayudarnos a los moderadores y personas que responden en los foros, es decir, que empieces a responder las consultas de otros usuarios sobre esos cursos ya realizados, incluso aunque no te sientas cien por cien seguro de que tus respuestas o valoraciones sean acertadas. Al igual que tú has sido ayudado, otras personas merecen que se les dedique un poco de tiempo para ayudarlos. También a tí te servirá de repaso y para ver distintas formas de resolver problemas. Y nos ayudarás a mantener los foros y a que este sea un sitio donde se aprenda con la ayuda de todos. Hay que dar para recibir. Confío en que empieces ya con esta labor. No esperes a terminar todos los cursos ni a ser un experto. Para cualquier aclaración contacta conmigo.

Saludos

123
Hola, con permiso hago algún comentario. Como bien comenta pedro dimiste está demostrando ser un incansable... Seguramente se le agotarán los contenidos de la web pero en fin, a partir de ese momento quizás sea él quien pueda enriquecernos escribiendo algún curso o artículo, es algo para lo que siempre mantenemos las puertas abiertas a todos los "incansables".

Aunque aquí no toca hablar de Java comento un par de cosas esperando que ningún moderador nos llame la atención: en BlueJ puedes crear el mismo código que en cualquier otro IDE (aunque por la funcionalidad que ofrece se le considera un entorno educativo, el código es código, da igual dónde se haya escrito). Que se vean los objetos como "cajitas" sí es específico de BlueJ, porque la finalidad de que se vean estas "cajitas" es educativa. En otros IDES posiblemente no verás estas cajitas sino una estructura de proyecto como si fuera un explorador. Java es tan imaginable como JavaScript, lo que pasa es que con JavaScript no tenemos la suerte de contar con un entorno educativo como BlueJ (aunque hay entornos para desarrollo web que proporcionan bastantes ayudas).

Crear un ejecutable jar con BlueJ -- > ver este hilo https://www.aprenderaprogramar.com/foros/index.php?topic=434.0

Aunque no tenga mucho interés, para ver cómo se ejecuta te recomiendo probar con algo tan sencillo como esto:

Código: [Seleccionar]
import javax.swing.JOptionPane;
public class ejemplo1 {
    public static void main (String[] Args) {
        String entradaUsuario = JOptionPane.showInputDialog ( "Introduzca un número:" ); 
    }
}

Ahora mismo estamos reestructurando el curso de Java avanzado, si hay suerte dentro de un tiempo habrá más contenidos, aunque es trabajoso y requiere tiempo.

Si quieres comentar más cosas sobre Java abre otro hilo específico para ello...

Saludos

124
Buenos días, te comento algunos detalles. Has incluido algunos comentarios que resultan poco útiles, por ejemplo function goBack(){ //Función "goback()"

Ahí el comentario //Función "goback()" sirve para poco. Lo que sería útil es que además de eso añadieras una descripción de para qué sirve cada función, qué significado tienen los parámetros que reciben, etc. Por ejemplo "Esta función sirve para... tal cosa"

Si no utilizas el indentado automático te recomiendo que lo uses porque en general resulta beneficioso. Casi todos los editores o ides lo permiten. Lo comentamos en https://www.aprenderaprogramar.com/foros/index.php?topic=4030.0

Saludos

125
Buenos días, lo que planteas sí se puede hacer (de hecho una de las cosas que hacen potente a C es el permitir acceder y manipular la memoria a un relativamente bajo nivel) aunque no se suele recomendar que se trabaje con este tipo de cosas si no se tiene un buen conocimiento de lo que se hace, ya que puedes generar daños en el computador si haces manipulaciones incorrectas.

Suponiendo que la dirección de memoria fuera 0x28ff44 podrían realizarse direccionamientos a esta dirección así:

void * p = (void *)0x28ff44;

O también con otro tipo de datos según a qué estés referenciando, por ejemplo char * p = (char *)0x28ff44;

Si se quiere evitar que el direccionamiento pueda ser cambiado a posteriori se añadiría const:

const void * p = (const void *)0x28ff44;

ó

const char * p = (const char *)0x28ff44;

etc.

Saludos.

126
Buenos días todo correcto. En el apartado b) es curioso ver cómo es elevada sólo la declaración de la variable, pero no su inicialización o asignación de valor aún estando en una misma línea. Lo que podríamos considerar "más lógico" es que toda la línea fuera elevada pero vemos que no ocurre así.

Saludos.

127
Buenos días, veo el ejercicio completo y con respuestas acertadas.

Saludos.

128
Hola, poco que añadir a lo comentado por Pedro. En la pregunta k) una respuesta que se podria dar es la siguiente. Algunas conversiones son lineales y simplemente suponen multiplicar por un valor, por ejemplo millas a kilómetros. Sin embargo otras conversiones no son lineaeles, como el paso de grados farenheit a grados centígrados cuya fórmula es GradosC = (GradosF - 32) * 5/9

Aquí además del factor multiplicador (5/9) interviene un factor de desplazamiento (offset) de la entrada, en este caso -32. Para poder usar una misma función como "base" tanto para funciones lineales como con desplazamiento, se introduce el parámetro offset, dejándolo a cero cuando no es necesario su uso. Como te ha comentado Pedro, no está relacionado con la aparición de NaN.

Saludos

129
Hola Haroldseara, en este hilo existe una explicación interesante: https://www.aprenderaprogramar.com/foros/index.php?topic=97.0

Saludos

130
Buenas tardes

El ejercicio a) correcto

Para el ejercicio b) he hecho algunas pruebas y no he obtenido un resultado satisfactorio. En concreto he rellenado con tres o más letras todos los campos y me impide el envío del formulario (aparece "Todos los campos son obligatorio y tienen que tener más de 2 carácteres")

Este ejercicio pienso es mejor rehacerlo completamente teniendo en cuenta:

- No usar variables globales sin ser estrictamente necesarias

- Si se quiere realizar una validación, el trabajo de esa validación debe recaer en una función (si se quiere apoyada por funciones auxiliares), no es adecuado repartir el trabajo de la validación por distintos lugares

- La validación tiene que hacerse en cierto momento temporal, cuando el usuario va a enviar el formulario (hay que detectar ese evento).

No puedes hacer trabajo de validación en un momento temporal como el load de la página, ese no es un momento temporal o evento adecuado para validar el envío de un formulario

Código: [Seleccionar]
window.onload = function(){
nombre = parrent.test(document.formularioContacto.nombre.value);
apellidos = parrent.test(document.formularioContacto.apellidos.value);
correo = parrent.test(document.formularioContacto.correo.value);
ciudad = parrent.test(document.formularioContacto.ciudad.value);
pais = parrent.test(document.formularioContacto.pais.value);
}


Saludos

131
Hola Marniko

De cara a participar en los foros es recomendable que leas este hilo https://www.aprenderaprogramar.com/foros/index.php?topic=1460.0 y sigas las recomendaciones sobre todo a la hora de nombrar los hilos, pegar código, etc.

En relación al ejercicio el código es correcto, únicamente recomendarte que leas los comentarios sobre los valores iniciales a asignar a las variables en el constructor en https://www.aprenderaprogramar.com/foros/index.php?topic=2168.0

Saludos

132
Hola pandorum, siempre es preferible que pegues el código en los foros. Se explica en https://www.aprenderaprogramar.com/foros/index.php?topic=1460.0

Con una imagen no se puede recuperar el código!

Saludos

133
Buenas tardes veo las respuestas y código correctas, excepto que me cites como "experto"  ::)


Saludos

134
Buenas tardes desde mi punto de vista el ejercicio está bien resuelto

Este ejercicio presenta algunos problemas quizás no adecuados para un curso básico por ser más avanzados

He estado revisando otros hilos y en este ya encontrábamos algunos detalles un tanto extraños sobre este ejercicio: https://www.aprenderaprogramar.com/foros/index.php?topic=3614.0

Pero no comentamos nada sobre el error que aparece Error: Permission denied to access property "innerHeight"

Habíamos citado en otros hilos dos problemas: bien restricciones de seguridad cuando se trabaja con un dominio diferente al de la página matriz, o bien que la carga de la ventana se pospone en el tiempo quedando algunas propiedades como no accesibles.

Con lo que has indicado tenemos otra posible explicación. Tal como comentas:

"nuevaVentanta.innerWidth" no puedo acceder si no es desde la misma función que crea la nueva ventana.

Esto podría ser una restricción de seguridad de algunos navegadores.

He probado en Chrome y se muestra el siguiente mensaje de error en la consola: prueba.html:26 Uncaught SecurityError: Blocked a frame with origin "null" from accessing a frame with origin "http://aprendeaprogramar.es".  The frame requesting access has a protocol of "file", the frame being accessed has a protocol of "http". Protocols must match.

En este caso parece estar haciendo referencia al uso de distintos protocolos / dominios en las distintas ventanas y al hecho de tratar acceder desde una a la otra.

Es una buena forma de ver algunos problemas que pueden surgir durante los desarrollos, pero en el marco del curso no le daría mayor importancia

Saludos

135
Buenas tardes Pandemia, lo veo todo correcto tanto el código como los comentarios, y un buen efecto en la animación conseguida. Al mismo tiempo felicitarte porque creo que con esta entrega completas el curso de CSS, y dado que alcanzas ese final, también pedirte que nos eches una mano para responder a personas que se estén iniciando en el curso y realicen consultas a través del foro. Es una buena forma de repasar, ver formas alternativas de plantear el código, aprender a corregir, y al mismo tiempo de ayudar para mantener este sitio web entre todos.

Saludos

137
Hola, gracias por tus comentarios, los agradecemos. Esperamos como bien dices que independientemente de la trayectoria que escojas continues participando en estos foros, incluso si eliges continuar con alguna materia que no se trate en aprenderaprogramar.com podrías ir poniendo ejemplos de ejercicios resueltos, scripts, pequeños programas, etc. Si sigues con el curso de PHP ya sabes cuál es la dinámica, ya tienes bastante experiencia por aquí. Para cualquier cosa en que podamos ayudar ya sabes dónde nos encontramos. Abrazos.

138
Buenas tardes

Todo conforme a lo solicitado en el ejercicio; hay una explicación sobre por qué aparecen o no los scrolls en https://www.aprenderaprogramar.com/foros/index.php?topic=4165.0

Saludos

139
Buenas tardes Ryche en general creo que tu código merece una valoración positiva. Procedo a dar algunos detalles.

Clase EntradaDeTeclado ok

Clase Producto ok, bien comentada

Clase Fresco ok, bien comentada

En estas clases tienes métodos mostrarProducto como

Código: [Seleccionar]
    public void mostrarProductoFresco(){
        System.out.println("PRODUCTO FRESCO");
        System.out.println("Nombre: "+getNombre());
        System.out.println("Número de lote: "+getNumeroLote());
        System.out.println("Fecha de caducidad: "+getFechaCaducidad());
        System.out.println("Fecha de envasado: "+getFechaEnvasado());
        System.out.println("Pais de origen: "+getPaisOrigen());
    }

Fíjate que algunos atributos pertencen a la superclase (Producto), por tanto podrías haber definido un método en la superclase para evitar tener que repetir las instrucciones en las subclases. En este hilo puedes ver un ejemplo de esto que comento: https://www.aprenderaprogramar.com/foros/index.php?topic=1179.0

Clase TestHerencia2 ok pero tienes demasiada repetición de instrucciones. Cuando veas algo así, debes intentar crear métodos que ejecuten las instrucciones cuando sean llamados de modo que no tengas que repetir tantas veces las mismas instrucciones.

Saludos,

140
Buenos días Santiago, tu código es correcto y cumple con lo que pedía el ejercicio

La clase test como has comentado se podría codificar de forma más breve, pero no te preocupes de eso ahora. A medida que vayas avanzando con el curso y cogiendo práctica podrás ir creando códigos más compactos.

En las líneas

Código: [Seleccionar]
       //CantanteFamoso cantante1 = new CantanteFamoso("Artista1", "AlbumMasVendido1");
       //CantanteFamoso cantante2 = new CantanteFamoso("Artista2", "AlbumMasVendido2");
   
       miLista.addCantanteFamoso(new CantanteFamoso("Paul McCartney","Capitol"));
       miLista.addCantanteFamoso(new CantanteFamoso("Freddie Mercury","A Night at the Opera"));

Ocurre lo que tú mismo has indicado: puedes añadir a la lista tanto objetos directamente (sin nombre, esto serían "objetos anónimos") como objetos creados previamente con un nombre.

A efectos de la lista es indistinto que lo hagas de una manera u otra. Dentro de la lista cada objeto es un objeto, da igual que lo hayas introducido partiendo de un objeto con nombre o de un objeto anónimo. Esto se comenta en el curso.

Saludos

Páginas: 1 2 3 4 5 6 [7] 8 9 10 11 12 ... 32

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".