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 - pedro,,

Páginas: 1 ... 54 55 56 57 58 [59] 60 61 62 63 64 65
1161
Hola, otro ejercicio más.

Citar
EJERCICIO
Crea un documento HTML que conste de un título h1 con el texto <<Posición x:  - Posición y>>, y un div con ancho 500 px y alto 400 px. Utiliza el evento onmouseover para mostrar dinámicamente en el título h1 las coordenadas del puntero del ratón a medida que se desplaza por el elemento div.
Por ejemplo, cuando el usuario coloca el ratón sobre el div se deberá mostrar:  Posición x:  244 Posición y: 188, al mover el ratón las coordenadas indicadas cambiarán a otro valor, por ejemplo Posición x:  322 Posición y: 228, y así sucesivamente.

Código: [Seleccionar]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Ejemplo aprenderaprogramar.com</title><meta charset="utf-8">
<style>
#caja{border:solid 2px; width:500px; height:400px;}
</style>
<script type="text/javascript">
window.onload = function() {
document.getElementById('caja').onmouseover = mostrarPosicionPuntero;
}
function mostrarPosicionPuntero(eventoObj){
var posicionX = eventoObj.clientX;
var posicionY = eventoObj.clientY;
var nodoCoordenadas = document.getElementById('coordenadas');
nodoCoordenadas.innerHTML = 'Posicion x: ' + posicionX + ' - Posicion y: ' + posicionY;
}
</script>
</head>
<body>
<h1 id="coordenadas"> Posición x:  - Posición y </h1>
<div id="caja"></div>
</body>
</html>

Al usar onmouseover, como pide el enunciado, no consigo que me muestre las coordenadas dinámicamente al desplazar el ratón sobre el elemento div, porque el evento onmouseover solo se ejecuta cuando se coloca el ratón sobre el div, para que cambien las coordenadas, tengo que sacar el puntero del ratón fuera del div y luego volver a colocarlo sobre el div. No se si es eso lo que quiere el enunciado que se consiga. Sin embargo con el evento onmousemove si conseguí que las coordenadas cambien dinámicamente según se desplaza el puntero por el div.

Saludos.

1162
Hola, me acabo de dar cuenta que el ejercicio dos que inserte no era el que debía de poner ahí, seria este:

Código: [Seleccionar]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Ejemplo curso aprenderaprogramar.com</title><meta charset="utf-8">
<style type="text/css">
body {background-color:yellow; font-family: sans-serif;}
label {color: maroon; display:block; padding:5px;}
</style>
<script type="text/javascript">
window.onload = function(){
var elementoInput = document.getElementsByTagName('input');
for(var i = 0; i < elementoInput.length; i++){
elementoInput[i].addEventListener('focus', cambiaFondo);
elementoInput[i].addEventListener('blur', verificar);
}
function cambiaFondo(){this.style.backgroundColor = 'white'; this.nextSibling.textContent = '';}
function verificar(){verificaDatos(this);}
}
var nombreCorrecto = false;
var emailCorrecto = false;
var edadCorrecta = false;
function verificaDatosFormulario(){
if(nombreCorrecto && emailCorrecto && edadCorrecta){return true;}else{return false;}
}
function verificaDatos(nodo){
switch(nodo.name) {
case 'nombre':
if(!comprobarNombre(nodo.value)){
cambiaColorDeFondo(nodo);
nombreCorrecto = false;
}else{
nombreCorrecto = true;
}
break;
case 'edad':
if(!comprobarEdad(nodo.value)){
cambiaColorDeFondo(nodo);
edadCorrecta = false;
}else{
edadCorrecta = true;
}
break;
case 'email':
nodo.value = pasarEmailAMinusculas(nodo.value);
if (comprobrarAtEnEmail(nodo.value)){nodo.value = cambiarAtEnEmail(nodo.value);}
if(!comprobarEmail(nodo.value)){
cambiaColorDeFondo(nodo);
emailCorrecto = false;
}else{
emailCorrecto = true;
}
break;
default:
break;
}
}
function comprobarEdad(edad){
if(edad>0){return true;}
}
function comprobrarAtEnEmail(email){
var expAt = /\w+\sat\s\w+/;
if(expAt.test(email)){return true;}
}
function cambiarAtEnEmail(email){
return email.replace(/\sat\s/g,'@');
}
function pasarEmailAMinusculas(email){
return email.toLowerCase();
}
function comprobarNombre(nombre){
var expReg = /\w{3}/;
if(!expReg.test(nombre)){
return false;
}else{
return true;
}
}
function comprobarEmail(email){
var expArroba = /[@]/;
var expPunto = /[.]/;
var expRegEmail = /\w+[@]\w+[.][A-Za-z]{2}/;
if(!expPunto.test(email) || !expArroba.test(email)){
if(!expArroba.test(email) && !expPunto.test(email)){
alert('Dirección de correo errónea, faltan el signo @ y el .');
}else if(!expArroba.test(email) && expPunto.test(email)){
alert('Dirección de correo errónea, falta el signo @');
}else{
alert('Dirección de correo errónea, falta el signo .');
}
return false;
}else{
if(expRegEmail.test(email)){
return true;
}else{
return false;
}
}
}
function cambiaColorDeFondo(nodo){
nodo.style.backgroundColor = 'orange'; nodo.nextSibling.textContent = 'Campo incorrecto.';
}
</script>
</head>
<body>
<h1>La web para aprender programación</h1>
<p>EJERCICIO 2</p>
<p>Crea un documento HTML que conste de un título h1 con el texto...</p>
<form name ="formularioContacto" class="formularioTipo1" method="get" onsubmit="return verificaDatosFormulario()">
<label for="nombre"><span>Nombre:</span> <input id="nombre" type="text" name="nombre" "><span></span></label>
<label for="apellidos"><span>Apellidos:</span> <input id="apellidos" type="text" name="apellidos"><span></span></label>
<label for="edad"><span>Edad:</span> <input id="edad" type="text" name="edad" ><span></span></label>
<label for="email"><span>Correo electrónico:</span> <input id="email" type="text" name="email" ><span></span></label>
<label><input type="submit" value="Enviar"><input type="reset" value="Cancelar"></label>
</form>
</body
</html>

Saludos.

1163
Hola.

Citar
EJERCICIO 1
Crea un documento HTML que conste de un título h1 con el texto <<La web para aprender programación>>, dos párrafos de texto y una imagen. Utiliza los eventos onmouseover para que la imagen original sea reemplazada por otra imagen cuando el usuario pasa el ratón sobre ella. Utiliza el evento onmouseout para hacer que cuando el usuario salga del espacio de la imagen, vuelva a aparecer la imagen original.

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">
<script type="text/javascript">
window.onload = function(){
var elementoImagen = document.getElementById('imagen');
elementoImagen.addEventListener('mouseover', cambiaImagen);
elementoImagen.addEventListener('mouseout', cambiaAImagenInicial);
function cambiaImagen() { this.src = 'http://images4.hiboox.com/images/4111/diapo0289e8e5b4f9fb2375c0e99b518a8807.png?24';}
function cambiaAImagenInicial(){ this.src = 'http://i1336.photobucket.com/albums/o646/alejrod872/Curso%20JavaScript/javascript_logo_zps7835661f.png?t=1392290933';}
}
</script>
</head>
<body>
<h1>La web para aprender programación</h1>
<p>EJERCICIO 1</p>
<p>Crea un documento HTML que conste de un título h1 con el texto <<La web para aprender programación>>, dos párrafos de texto y una imagen.
Utiliza los eventos onmouseover para que la imagen original sea reemplazada por otra imagen cuando el usuario pasa el ratón sobre ella.
Utiliza el evento onmouseout para hacer que cuando el usuario salga del espacio de la imagen, vuelva a aparecer la imagen original.</p>
<img id="imagen" src="http://i1336.photobucket.com/albums/o646/alejrod872/Curso%20JavaScript/javascript_logo_zps7835661f.png?t=1392290933">
</body>
</html>

Citar
EJERCICIO 2
Crea un documento HTML que conste de un título h1 con el texto <<La web para aprender programación>>, dos párrafos de texto y un formulario con los campos nombre, apellidos, edad y correo electrónico, así como con botones enviar y cancelar. Utiliza el evento onsubmit y otras herramientas para impedir que se envíe el formulario si se produce alguna de estas circunstancias:
a) El nombre está vacío ó el correo electrónico está vacío.
b) El correo electrónico no contiene los símbolos @ (arroba) y . (punto). Por ejemplo juan arroba gmail.com no es un correo válido.

c) No existe al menos una letra precediendo el símbolo @ del correo electrónico y una letra después de este símbolo. Por ejemplo a@.com no es un correo válido.

d) No existen al menos dos letras después del punto en el correo electrónico. Por ejemplo juan@gmail.c no es un correo válido.
e) La edad es cero o menor de cero.
En caso de producirse una de estas circunstancias, debe mostrarse el campo del formulario de un color distinto y un mensaje de advertencia. El color de advertencia debe desaparecer (dinámicamente) cuando el campo que tenía un problema tome el foco (para ello usa el evento onfocus).

Código: [Seleccionar]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Ejemplo curso aprenderaprogramar.com</title><meta charset="utf-8">
<style type="text/css">
body {background-color:yellow; font-family: sans-serif;}
label {color: maroon; display:block; padding:5px;}
</style>
<script type="text/javascript">
window.onload = function(){
var elementoInput = document.getElementsByTagName('input');
for(var i = 0; i < elementoInput.length; i++){
elementoInput[i].addEventListener('focus', cambiaFondo);
elementoInput[i].addEventListener('blur', verificar);
}
function cambiaFondo(){this.style.backgroundColor = 'white'; this.nextSibling.textContent = '';}
function verificar(){verificaDatos(this);}
}
var nombreCorrecto = false;
var emailCorrecto = false;
var edadCorrecta = false;
function verificaDatosFormulario(){
var nodoNombre = document.getElementById('nombre');
var nodoEmail = document.getElementById('email');
if(nodoNombre.value=='' && nodoEmail.value==''){return false;}
}
function verificaDatos(nodo){
switch(nodo.name) {
case 'nombre':
if(!comprobarNombre(nodo.value)){
cambiaColorDeFondo(nodo);
edadCorrecta = false;
}else{
nombreCorrecto = true;
}
break;
case 'edad':
if(!comprobarEdad(nodo.value)){
cambiaColorDeFondo(nodo);
edadCorrecta = false;
}else{
edadCorrecta = true;
}
break;
case 'email':
nodo.value = pasarEmailAMinusculas(nodo.value);
if (comprobrarAtEnEmail(nodo.value)){nodo.value = cambiarAtEnEmail(nodo.value);}
if(!comprobarEmail(nodo.value)){
cambiaColorDeFondo(nodo);
edadCorrecta = false;
}else{
emailCorrecto = true;
}
break;
default:
break;
}
if(nombreCorrecto && emailCorrecto && edadCorrecta){return true;}else{return false;}
}
function comprobarEdad(edad){
if(edad>0){return true;}
}
function comprobrarAtEnEmail(email){
var expAt = /\w+\sat\s\w+/;
if(expAt.test(email)){return true;}
}
function cambiarAtEnEmail(email){
return email.replace(/\sat\s/g,'@');
}
function pasarEmailAMinusculas(email){
return email.toLowerCase();
}
function comprobarNombre(nombre){
var expReg = /\w{3}/;
if(!expReg.test(nombre)){
return false;
}else{
return true;
}
}
function comprobarEmail(email){
var expArroba = /[@]/;
var expPunto = /[.]/;
var expRegEmail = /\w+[@]\w+[.][A-Za-z]{2}/;
if(!expPunto.test(email) || !expArroba.test(email)){
if(!expArroba.test(email) && !expPunto.test(email)){
alert('Dirección de correo errónea, faltan el signo @ y el .');
}else if(!expArroba.test(email) && expPunto.test(email)){
alert('Dirección de correo errónea, falta el signo @');
}else{
alert('Dirección de correo errónea, falta el signo .');
}
return false;
}else{
if(expRegEmail.test(email)){
return true;
}else{
return false;
}
}
}
function cambiaColorDeFondo(nodo){
nodo.style.backgroundColor = 'orange'; nodo.nextSibling.textContent = 'Campo incorrecto.';
}
</script>
</head>
<body>
<h1>La web para aprender programación</h1>
<p>EJERCICIO 2</p>
<p>Crea un documento HTML que conste de un título h1 con el texto...</p>
<form name ="formularioContacto" class="formularioTipo1" method="get" onsubmit="return verificaDatosFormulario()">
<label for="nombre"><span>Nombre:</span> <input id="nombre" type="text" name="nombre" "><span></span></label>
<label for="apellidos"><span>Apellidos:</span> <input id="apellidos" type="text" name="apellidos"><span></span></label>
<label for="edad"><span>Edad:</span> <input id="edad" type="text" name="edad" ><span></span></label>
<label for="email"><span>Correo electrónico:</span> <input id="email" type="text" name="email" ><span></span></label>
<label><input type="submit" value="Enviar"><input type="reset" value="Cancelar"></label>
</form>
</body
</html>

Saludos.

1164
Hola Enzo.

El ejercicio ahora esta perfecto. Y sobre la pregunta decir que también esta bien contestada.

En cuanto a tu duda, no es que estuviera mal, en tu anterior ejercicio, no usabas el atributo radio de la clase circulo, sino que le enviabas tu un radio por lo cual no formaba parte del objeto circulo que habías creado.

De todas formas esto si que sería mejor que alguien mas experto lo pudiera explicar, yo solo conseguiría liarte.  :-X

Saludos.

1165
Entendido queda. ;D

Código: [Seleccionar]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Ejemplo curso aprenderaprogramar.com</title><meta charset="utf-8">
<style type="text/css">
body {background-color:yellow; font-family: sans-serif;}
label {color: maroon; display:block; padding:5px;}
</style>
<script type="text/javascript">
function validacionConExpReg(){
var nodoNombre = document.getElementById('nombre');
var nodoApellidos = document.getElementById('apellidos');
var nodoEmail = document.getElementById('email');
var nombreCorrecto = false;
var emailCorrecto = false;
var atEnEmail = false;
nombreCorrecto = comprobarNombre(nodoNombre.value);
if(!nombreCorrecto){alert('El nombre debe de tener al menos tres caracteres.');}
emailCorrecto = comprobarEmail(nodoEmail.value);
if (emailCorrecto){atEnEmail = comprobrarAtEnEmail(nodoEmail.value);}
if (atEnEmail){nodoEmail.value = cambiarAtEnEmail(nodoEmail.value);}
if(nombreCorrecto && emailCorrecto){
nodoEmail.value = pasarEmailAMinusculas(nodoEmail.value);
var msg = 'Los datos a enviar son:\nNombre: ' + nodoNombre.value + '\nApellidos: ' + nodoApellidos.value;
msg += '\nCorreo electronico: ' + nodoEmail.value;
alert(msg);
}else{
alert('Vuelva a introducir los datos.');
borrarFormulario();
}
function borrarFormulario(){
nodoNombre.value = '';
nodoApellidos.value = '';
nodoEmail.value = '';
}
}
function comprobrarAtEnEmail(email){
var expAt = /\w+\sat\s\w+/;
if(expAt.test(email)){return true;}
}
function cambiarAtEnEmail(email){
return email.replace(/\sat\s/g,'@');
}
function pasarEmailAMinusculas(email){
return email.toLowerCase();
}
function comprobarNombre(nombre){
var expReg = /\w{3}/;
if(!expReg.test(nombre)){
return false;
}else{
return true;
}
}
function comprobarEmail(email){
var expAt = /\w+\sat\s\w+/
var expArroba = /[@]/
var expPunto = /[.]/
if((!expArroba.test(email) && !expAt.test(email)) || (!expPunto.test(email) && !expAt.test(email)) || (!expPunto.test(email) && !expPunto.test(email))){
if(!expArroba.test(email) && !expAt.test(email) && !expPunto.test(email)){
alert('Dirección de correo errónea, falta el signo @ o el .');
}else if(!expArroba.test(email) && !expAt.test(email) && expPunto.test(email)){
alert('Dirección de correo errónea, falta el signo @');
}else{
alert('Dirección de correo errónea, falta el signo .');
}
return false;
}else{
return true;
}
}
</script>
</head>
<body>
<form name ="formularioContacto" class="formularioTipo1" method="get" onsubmit="validacionConExpReg()">
<label for="nombre"><span>Nombre:</span> <input id="nombre" type="text" name="nombre"></label>
<label for="apellidos"><span>Apellidos:</span> <input id="apellidos" type="text" name="apellidos"></label>
<label for="email"><span>Correo electrónico:</span> <input id="email" type="text" name="email"></label>
<label><input type="submit" value="Enviar" ><input type="reset" value="Cancelar"></label>
</form>
</body
</html>

Ahora ya si empieza hacer las comprobaciones directamente y no si se cumple antes otra condición.

Saludos.

1166
Hola dejo la siguiente solución al ejercicio CU01157E del tutorial de programación web JavaScript desde cero:

Citar
EJERCICIO
A partir del siguiente código HTML, crea un script que cumpla los requisitos indicados más abajo:
a) Mediante el control de los eventos onmouseover y onmouseout, debemos hacer que cuando el usuario pase el ratón sobre las etiquetas h1 y h3, el color del texto pase a ser orange y cuando deje de pasarlo el texto quede en marrón.
b) Mediante el control del evento onmouseover, debemos hacer que cuando el usuario pase el ratón sobre un párrafo, el color de fondo del párrafo sea amarillo y cuando deje de pasarlo no haya color de fondo.
c) El código JavaScript debe estar situado entre las etiquetas <head> … </head>

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">
<script type="text/javascript">
window.onload = function(){
var elementosH = document.querySelectorAll('h1,h3');
var elementosP = document.querySelectorAll('p');
for(var i = 0; i < elementosH.length; i++){
elementosH[i].onmouseover = onMouseOverCambioTextoColor;
elementosH[i].onmouseout = onMouseOutCambioTextoColor;
}
for(var i = 0; i < elementosP.length; i++){
elementosP[i].onmouseover = onMouseOverCambioFondoColor;
elementosP[i].onmouseout = onMouseOutCambioFondoColor;
}
function onMouseOverCambioTextoColor(){return this.style.color = 'orange';}
function onMouseOutCambioTextoColor(){return this.style.color = 'brown';}
function onMouseOverCambioFondoColor(){return this.style.backgroundColor = 'yellow';}
function onMouseOutCambioFondoColor(){return this.style.backgroundColor = 'transparent';}
}
</script>
</head>
<body> <p><a href="principal.html" title="Página principal" >Ir a la pagina principal</a></p>
<h1>Novedades</h1>
<p>Aquí presentamos las novedades del sitio.</p>
<h3>Lanzamos el producto X-FASHION</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>
<h3>Mejoramos el producto T-MOTION</h3>
<p>Hemos lanzado una nueva versión del producto T-MOTION</p>
<p><img src="http://i.imgur.com/SpZyc.png" title="Imagen del proudcto tmotion" alt="imagen producto tmotion" /></p>
</body>
</html>

Saludos.

1167
Bueno, aquí te dejo lo que conseguí, el método proves(), queda totalmente como dijiste.

Código: [Seleccionar]
public class LletresdeParaulesAlDiposit2 { 
    public static void main(String[] args) {       
        LletresdeParaulesAlDiposit2  prg = new LletresdeParaulesAlDiposit2 ();
        prg.proves();
    }

    private boolean lletresDeParaulesAlDiposit(String[] paraules, char[] diposit) {
        boolean result = false;
        char[] caracteres = {};
        int cont = 0;
        int contCaracteres = 0;
        for (String tmp : paraules){
            caracteres = tmp.toCharArray();
            System.out.println("La palabra buscada en el depósito será: " + tmp);
            contCaracteres += caracteres.length;
            for(int j = 0; j < caracteres.length; j++){
                boolean coincidencia = false;
                int k = 0;
                while(!coincidencia){
                    if (caracteres[j] == diposit[k]){
                        System.out.println("SI: " + caracteres[j] + " - " + diposit[k]);
                        diposit[k] = '*';
                        cont++;
                        coincidencia = true;
                    } else {
                        System.out.println("NO: " +  caracteres[j]+ " - " + diposit[k]);
                    }
                    if(k < diposit.length-1){
                        k++;
                    }else{
                        coincidencia = true;
                    }
                }     
            }
            System.out.println("-----\n\n");
        }
        if (cont == contCaracteres){
            String msg = "Caracteres que quedan sin usar en el depósito: ";
            for(char tmp2 : diposit){
                if(!(tmp2=='*')){msg += tmp2 + ",";}
            }
            System.out.println(msg + "\n");
            result = true;
        }
        System.out.println();
        return result;

    }

    private void proves() {
        char[] diposit = {'a','c','i','a','v','a','d','s','o','t','i'};
        String[] paraules = {"cas", "dit"};
        System.out.println("Son lletresAldiposit (si): ");
        System.out.println(lletresDeParaulesAlDiposit(paraules,  diposit ));
    }

}

Espero que este te solucione tus problemas. ;D

Saludos.

1169
Hola.

Esa condición la coloqué para que no se hagan comprobaciones innecesarias, puesto que si una de las dos falta el formulario no debe de enviarse, si es verdad que se me olvido colocar esta linea si no se cumple la condición.

Código: [Seleccionar]
alert('El formulario no se rellenó corectamente.');

Saludos.

1170
¿Y no podría quedar así?

Código: [Seleccionar]
private void proves() {
        String[] paraules = {"cas", "dit"};
        System.out.println("Son lletresAldiposit (si): ");
        for(String tmp : paraules){
            char[] diposit = {'a','c','i','a','v','a','d','s','o','t','i'};
            System.out.println(lletresDeParaulesAlDiposit(tmp,  diposit ));
            System.out.println("------------------------");
        }
    }
Una cosa no me quedó clara, después de hacer la primera comparación, la segunda palabra tiene que compararse con las letras que quedaron en el depósito después de comparar la primera palabra?, o se compara con el deposito con todas las letras?

y para mostrar los caracteres que te quedan sin usar añadir lo siguiente, en el método lletresDeParaulesAlDiposit, antes del return result;

Código: [Seleccionar]
if (result){
            String msg = "Caracteres que quedansin usar: ";
            for(char tmp : diposit2){
                if(!(tmp=='*')){msg += tmp + ",";}
            }
            System.out.println(msg);
        }

1171
Hola Enzo.

Según el enunciado del ejercicio los métodos areaCirculo() y longitudCirculo() deben de ser de tipo función, y tu los creaste de tipo procedimiento.
Te dejo el enlace por si necesitas refrescar un poco la memoria sobre este tema, http://aprenderaprogramar.es/index.php?option=com_content&view=article&id=430:metodos-en-java-tipo-procedimiento-void-y-tipo-funcion-return-definicion-invocacion-cu00624b&catid=68:curso-aprender-programacion-java-desde-cero&Itemid=188

Y acuérdate también de responder a la pregunta del ejercicio.

¿Es posible crear un método en la clase Circulo para establecer el valor de numeroPi? ¿Por qué?

Saludos.

1172
Hola César.
La idea de esa linea que comentas consistía en que si el nombre no era correcto, la función devolviese que '', para que nodoNombre.value quedase en blanco. Pero ya me dí cuenta de que es un mal planteamiento, y después de revisar bien el código, finalmente he decidido cambiar el planteamiento.
Aquí dejo mi nueva propuesta:

Código: [Seleccionar]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Ejemplo curso aprenderaprogramar.com</title><meta charset="utf-8">
<style type="text/css">
body {background-color:yellow; font-family: sans-serif;}
label {color: maroon; display:block; padding:5px;}
</style>
<script type="text/javascript">
function validacionConExpReg(){
var nodoNombre = document.getElementById('nombre');
var nodoApellidos = document.getElementById('apellidos');
var nodoEmail = document.getElementById('email');
var nombreCorrecto = false;
var emailCorrecto = false;
var atEnEmail = false;
if(!nodoNombre.value=='' && !nodoEmail.value==''){
nombreCorrecto = comprobarNombre(nodoNombre.value);
if(!nombreCorrecto){alert('El nombre debe de tener al menos tres caracteres.');}
emailCorrecto = comprobarEmail(nodoEmail.value);
if (emailCorrecto){atEnEmail = comprobrarAtEnEmail(nodoEmail.value);}
if (atEnEmail){nodoEmail.value = cambiarAtEnEmail(nodoEmail.value);}
if(nombreCorrecto && emailCorrecto){
nodoEmail.value = pasarEmailAMinusculas(nodoEmail.value);
var msg = 'Los datos a enviar son:\nNombre: ' + nodoNombre.value + '\nApellidos: ' + nodoApellidos.value;
msg += '\nCorreo electronico: ' + nodoEmail.value;
alert(msg);
}else{
alert('Vuelva a introducir los datos.');
borrarFormulario();
}
}else{
borrarFormulario();
}
function borrarFormulario(){
nodoNombre.value = '';
nodoApellidos.value = '';
nodoEmail.value = '';
}
}
function comprobrarAtEnEmail(email){
var expAt = /\w+\sat\s\w+/;
if(expAt.test(email)){return true;}
}
function cambiarAtEnEmail(email){
return email.replace(/\sat\s/g,'@');
}
function pasarEmailAMinusculas(email){
return email.toLowerCase();
}
function comprobarNombre(nombre){
var expReg = /\w{3}/;
if(!expReg.test(nombre)){
return false;
}else{
return true;
}
}
function comprobarEmail(email){
var expAt = /\w+\sat\s\w+/
var expArroba = /[@]/
var expPunto = /[.]/
if((!expArroba.test(email) && !expAt.test(email)) || (!expPunto.test(email) && !expAt.test(email)) || (!expPunto.test(email) && !expPunto.test(email))){
if(!expArroba.test(email) && !expAt.test(email) && !expPunto.test(email)){
alert('Dirección de correo errónea, falta el signo @ o el .');
}else if(!expArroba.test(email) && !expAt.test(email) && expPunto.test(email)){
alert('Dirección de correo errónea, falta el signo @');
}else{
alert('Dirección de correo errónea, falta el signo .');
}
return false;
}else{
return true;
}
}
</script>
</head>
<body>
<form name ="formularioContacto" class="formularioTipo1" method="get" onsubmit="validacionConExpReg()">
<label for="nombre"><span>Nombre:</span> <input id="nombre" type="text" name="nombre"></label>
<label for="apellidos"><span>Apellidos:</span> <input id="apellidos" type="text" name="apellidos"></label>
<label for="email"><span>Correo electrónico:</span> <input id="email" type="text" name="email"></label>
<label><input type="submit" value="Enviar" ><input type="reset" value="Cancelar"></label>
</form>
</body

Saludos y gracias.

1173
Hola nuevamente Enzo.

Lo que te ocurre es esto, haber si me explico bien:

introduces un número y pulsas intro.

5 [intro]

Ejecutas...

valorIntro = entrdaScaner.nextInt();

lo que quiere decir es que valorIntro recoge el valor numérico tipo int nada mas, el [intro] se queda en el buffer.

Luego al ejecutar...

 jugar = entradaScaner.nextLine()

recoge el [intro] que quedaba en el buffer

Por eso pasa directamente al bucle que hace la comprobación de si la respuesta es correcta.

Así que la solución es hacer una limpieza de buffer, por ejemplo introduciendo esta linea

Código: [Seleccionar]
entradaScaner.nextLine();
antes de esta otra...

Código: [Seleccionar]
jugar = entradaScaner.nextLine();
Esa es la solución que encontré en su día, cuando tuve el mismo problema que tu.
Si hay alguna otra forma de hacerlo, no la sé. Y si la hay, espero que alguno de los profesionales que pasan por aquí nos la cuente. ;D

Saludos.

1174
Ejercicio CU01156E del curso básico de desarrollo web con JavaScript usando Notepad++ como editor.

Citar
EJERCICIO
Crea un script donde:
a) Se pida al usuario que introduzca un número superior a 10000000 y se muestre por pantalla ese número con tres dígitos significativos. Si el número introducido no cumple la condición, se volverá a solicitar que se introduzca.
b) Se pida al usuario que introzca un número con 4 decimales y se muestre por pantalla ese número redondeado a dos decimales. Si el número introducido no cumple la condición, se volverá a solicitar que se introduzca (para ello habrá que analizar que la cadena introducida cuente con cuatro dígitos después del carácter de punto decimal).
c) Se pida al usuario que introduzca una frase que comience por un número que puede ser entero o decimal. Para dicha frase, se devolverá el número entero que se pueda extraer, y el número decimal que se pueda extraer. Deberá analizarse la entrada con una expresión regular, de modo que si no cumple la condición, se vuelva a solicitar la introducción de la frase.

Código: [Seleccionar]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Ejemplo aprenderaprogramar.com</title><meta charset="utf-8">
<style>
.pulsador {padding:15px; width: auto; display: inline-block; margin: 25px;
cursor: pointer; color: yellow; border-radius: 40px; background: purple;}
</style>
<script type="text/javascript">
function ejemploApartadoA() {
var numero = 0;
while(numero<10000000 || isNaN(numero)){
numero = Number(prompt('Introduce un número superior a 10000000: '));
}
alert(numero.toPrecision(3));
}
function ejemploApartadoB(){
var expReg = /[.]\d\d\d\d/;
var numero = 0;
while(!expReg.test(numero)){
numero = Number(prompt('Introduce un número con al menos 4 decimales: '));
}
alert(numero.toFixed(2));
}
function ejemploApartadoC(){
var frase = "";
var expReg = /^[0-9]/;
while(!expReg.test(frase)){
frase = prompt('Introduce una frase que comience por un número entero o decimal.');
}
alert('El número entero que devuelve la frase es: ' + parseInt(frase) + '\nEl número decimal que devuele es: ' + parseFloat(frase));
}
</script>
</head>
<body>
<div id="cabecera"><h2>Cursos aprenderaprogramar.com</h2><h3>Ejercicio CU01156E JavaScript</h3></div>
<div class ="pulsador" onclick="ejemploApartadoA()"> Apartado A </div>
<div class ="pulsador" onclick="ejemploApartadoB()"> Apartado B </div>
<div class ="pulsador" onclick="ejemploApartadoC()"> Apartado C </div>
</body>
</html>

Saludos.

1175
Ahora lo veo todo bien, y por fin me quedó claro el asunto de las expresiones regulares. :o, que la verdad es que le dí muchas vueltas.

Gracias otra vez.

1176
Hola Mario gracias por responder.

En esta cadena "Adriano no es feo" dices que no cumple por tener mas de dos espacios, y tengo una duda, si yo cambio por esta cadena "Adriano es muy guapo", la expresión me devuelve true y tiene tres espacios en total. Lo que quiero decir es que si no se cumple, creo que será porque después de cumplirse esta parte , ^[A-C]\w+\s, de la expresión, lo siguiente que continua no es, es\s\w+.
No se si me entenderás lo que quiero decir.

¿Es así?


1177
Hola nuevamente Juan.

En el enunciado se habla de tipo de motor y tipo de bomba, y creo recordar que las dos se refieren a lo mismo, es decir, el dato que requiere el método dimeSiMotorEsParaAgua() para saber si motorEsParaAgua, es el valor del atributo tipoBomba.

El método quedaría así:

Código: [Seleccionar]
public boolean dimeSiMotorEsParaAgua()
    {
        boolean motorEsParaAgua=false;
        if (tipoBomba==1){ motorEsParaAgua=true;}
        return motorEsParaAgua;
    }

Por otra parte si te fijas también quité la parte del else, puesto que en caso de no cumplirse la condición del if, motorEsParaAgua seguirá siendo false.

Saludos.

1178
Hola Enzo.

Tu solución al ejercicio la veo muy bien.
Lo único que podría decirte para poder mejorar el código es que con que crees un objeto Scanner te valdría para resolver el ejercicio.

Saludos.


1179
Hola Juan.

Según el enunciado debías crear un método tipo función denominado dimeSiMotorEsParaAgua() y tu has creado un método tipo procedimiento.

Si no te quedó claro la diferencia entre los tipos de métodos, puedes repasarlo en la entrega CU00624B, http://aprenderaprogramar.es/index.php?option=com_content&view=article&id=430:metodos-en-java-tipo-procedimiento-void-y-tipo-funcion-return-definicion-invocacion-cu00624b&catid=68:curso-aprender-programacion-java-desde-cero&Itemid=188

Saludos.

1180
Hola xeta21.

Retoqué un poco tu código, no se si será lo que buscas.

Código: [Seleccionar]
public class LletresdeParaulesAlDiposit { 
    public static void main(String[] args) {       
        LletresdeParaulesAlDiposit  prg = new LletresdeParaulesAlDiposit ();
        prg.proves();
    }

    private boolean lletresDeParaulesAlDiposit(String paraules, char[] diposit) {
        boolean result = false;
        int cont = 0;
        char[] diposit2 = diposit;               
        char[] caracteres = paraules.toCharArray();
        for(int j = 0; j < caracteres.length; j++){
            boolean coincidencia = false;
            int k = 0;
            while(!coincidencia){
                if (caracteres[j] == diposit2[k]){
                    System.out.println("SI: " + caracteres[j] + " - " + diposit[k]);
                    diposit2[k] = '*';
                    cont++;
                    coincidencia = true;
                } else {
                    System.out.println("NO: " +  caracteres[j]+ " - " + diposit[k]);
                }
                if(k < diposit2.length-1){
                    k++;
                }else{
                    coincidencia = true;
                }
            }     
        }
        System.out.println("-----");
        System.out.println();
        if (cont == caracteres.length){result = true;}
        return result;
    }

    private void proves() {
        char[] diposit = {'a','c','i','a','v','a','d','s','o','t','i'};
        String paraules = "cav";
        System.out.println("Son lletresAldiposit (si): ");
        System.out.println(lletresDeParaulesAlDiposit(paraules,  diposit ));
    }
}

Saludos.

Páginas: 1 ... 54 55 56 57 58 [59] 60 61 62 63 64 65

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