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 - bermartinv

Páginas: 1 ... 10 11 12 13 14 [15]
281
Funcionar, funciona apesar de los nombres de las funciones como dice Pedro.
Además las dos funciones se podían haber hecho en una y haber elegido una opción o otra con un condicional if.

282
Con eso último que has explicado se entiende mucho mejor.
Muchas gracias

283
1) El código sí funciona pero no hace lo que queremos. La opción de copiar un elemento lo que hace es cojerlo de un sitio y ponerlo en otro. Por lo que si lo que queremos es tener dos elementos no funciona, para eso tnemos cloneNode.


2)
Código: [Seleccionar]
<!DOCTYPE html>

<html><head> <title>Curso JavaScript aprenderaprogramar.com</title><meta charset="utf-8">

<style type="text/css">

body {font-family: sans-serif; text-align:center; }

div {border-style:solid;margin: 30px; padding:25px; display:inline-block;}

div div {background-color: yellow;}

</style>

<script type="text/javascript">

function crearNodoHijo(nodoPadre) {

var nodoHijo=document.createElement("div");
    nodoHijo.innerHTML=nodoPadre.innerHTML;
    nodoHijo.onclick=function (){crearNodoHijo(nodoPadre)};
    nodoHijo.style.color="blue";
    document.body.appendChild(nodoHijo);

}

</script>
</head>
<body>
<div id="nodoRaiz" onclick="crearNodoHijo(this)">Pulsa aquí para duplicar este nodo</div>
</body></html>


3)
Código: [Seleccionar]
<!DOCTYPE html>
<html><head> <title>Curso JavaScript aprenderaprogramar.com</title><meta charset="utf-8">
<style type="text/css">
body {font-family: sans-serif; text-align:center; }
div {border-style:solid;margin: 30px; padding:25px; display:inline-block;}
div div {background-color: yellow;}
</style>

<script type="text/javascript">
function crearNodoHijo(nodoPadre) {
var nodoHijo =nodoPadre.cloneNode(false);
    nodoHijo.innerHTML=nodoPadre.innerHTML;
    nodoHijo.onclick="";
    document.body.appendChild(nodoHijo);
nodoHijo.style.color="blue";
}

</script>
</head>

<body>
<div id="nodoRaiz" onclick="crearNodoHijo(this)">Pulsa aquí para duplicar este nodo</div>
</body></html>

284
Hola JurreNawijn, yo veo bien el codigo, lo único que en el default del switch, no habría hecho falta poner el break.

285
Gracias Ogramar, por tu respuesta.

He intentado hacer lo de onload pero no me ha convencido, porque tal como está el código al hacer <body onload="nombre de la funcion">  ya se inicializa la función.

Entonces he decidido cambiar querySelectorAll(".cuadrante") por un getElementsByClass("cuadrante") y cambiar el script dentro de head.

Código: [Seleccionar]
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
<style>
#cuadrado{
    position:absolute;
    width:204px;
    height:204px;
    border:solid thin red;
    top:30%;
    left:30%;
    }
div.cuadrante{
    border:solid thin red;
    text-align: center;
    width:100px;
    height:100px;
    float:left;
    line-height: 100px;
   
}
input{
    float:right;
    margin-top:2em;
}

</style>
<script>
var contador=0;
var cuadrante=document.getElementsByClassName("cuadrante");
function avanzar(){
 
   
    switch (contador){
        case 0: cuadrante[contador].style.backgroundColor="black";
                cuadrante[contador].style.color="white";
                cuadrante[contador].innerHTML="El";
            break;
        case 1:
                cuadrante[contador].innerHTML="poder ";
            break;
        case 2:
                cuadrante[contador].innerHTML="de";
            break;
        case 3: cuadrante[contador].style.backgroundColor="yellow";
                cuadrante[contador].innerHTML="JavaScript";
            break;
        default: alert ("No es posible hacer mas ");
    }
    contador++;
   
}
</script>
</head>
<body>
    <div id="cuadrado">
        <div class="cuadrante">
            <span>?</span>                                                                                     
        </div>
        <div class="cuadrante">
            <span>?</span>
        </div>
        <div class="cuadrante">
            <span>?</span>
        </div>       
        <div class="cuadrante">
            <span>?</span>
        </div>
        <input type="button" onclick="avanzar()" value="Avanzar">
    </div>

</body>

</html>
Gracias por tus sugerencias

286
Adjunto mi código respuesta al ejercicio CU01140E del curso de JavaScript:

Código: [Seleccionar]
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
<style>
#cuadrado{
    border:solid thin blue;
    width:300px;
    height:300px;
    margin-left:50px;
    margin-top:10px;
   
}
   
#botones{
    left:100px;
    margin: 30px;
}

input{
    text-align:center;
    margin:10px ;
}
</style>
<script>
var contador =1;   
   
    function anyadir(donde){
    var nodocuadrado=document.getElementById("cuadrado");
    var nodobody=document.body;
    var nodohijo=document.createElement("span");
    nodohijo.style.color="green";
    nodohijo.id="elemento"+(contador+1);
    nodohijo.innerHTML="Nodo creado "+contador+ "<br/>";
    if (donde=="caja"){
        nodocuadrado.appendChild(nodohijo);
        contador++       
    }
    else {
    nodobody.appendChild(nodohijo);
    contador++;   
    }
    }
</script>
</head>
<body>
    <div id="cuadrado">
        <p>Curso JavaScript aprenderaprogramar.com</p>   
    </div>
    <div id="botones">
        <input type="button" value="Añadir fila" onclick="anyadir('caja')" />
        <input type="button" value="Anidar" onclick="anyadir('fuera')" />
    </div>
</body>
</html>

287
Hola chicos, adjunto codigo que veo más cómodo que el que hace un tiempo adjuntaron nuestros compañeros.

Código: [Seleccionar]
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
<style>
#cuadrado{
    position:absolute;
    width:204px;
    height:204px;
    border:solid thin red;
    top:30%;
    left:30%;
    }
div.cuadrante{
    border:solid thin red;
    text-align: center;
    width:100px;
    height:100px;
    float:left;
    line-height: 100px;
   
}
input{
    float:right;
    margin-top:2em;
}

</style>
</head>
<body>
    <div id="cuadrado">
        <div class="cuadrante">
            <span>?</span>                                                                                     
        </div>
        <div class="cuadrante">
            <span>?</span>
        </div>
        <div class="cuadrante">
            <span>?</span>
        </div>       
        <div class="cuadrante">
            <span>?</span>
        </div>
        <input type="button" onclick="avanzar()" value="Avanzar">
    </div>
</body>
<script>
var contador=0;
var cuadrante=document.querySelectorAll(".cuadrante");
function avanzar(){
 
   
    switch (contador){
        case 0: cuadrante[contador].style.backgroundColor="black";
                cuadrante[contador].style.color="white";
                cuadrante[contador].innerHTML="El";
            break;
        case 1:
                cuadrante[contador].innerHTML="poder ";
            break;
        case 2:
                cuadrante[contador].innerHTML="de";
            break;
        case 3: cuadrante[contador].style.backgroundColor="yellow";
                cuadrante[contador].innerHTML="JavaScript";
            break;
        default: alert ("No es posible hacer mas ");
    }
    contador++;
   
}
</script>
</html>

288
Adjunto respuesta a ejercicio 2 de la entrega CU01161E del curso JavaScript:

Citar
EJERCICIO 2

Crea un documento HTML que conste de un título h1 con el texto <<Pulsa una flecha>>, y un div de 300 por 300 px con borde color negro, color de fondo amarillo y márgenes de 200px en todas direcciones. Utiliza el evento keypress para determinar si el usuario pulsa una tecla del cursor, y en ese caso utilizando CSS haz que el cuadrado que define el div se desplace 20px en la dirección de flecha elegida por el usuario. Por ejemplo, si el usuario pulsa la flecha derecha, el div debe desplazarse 20 px dentro de la ventana, hacia la derecha.

Código: [Seleccionar]
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<style>
    h1 {
        text-align: center;
    }
    #cuadrado{
        margin:200px;
        border: solid 1px blue;
        background:yellow;
        width:300px;
        height:300px;
        position: absolute;
    }
</style>
<script>
window.onload=function(){document.onkeydown=desplazar};
    function desplazar(objeto){
    var tecla = objeto.which;
   
        var situacionY = document.getElementById("cuadrado").offsetLeft;
         var situacionX = document.getElementById("cuadrado").offsetTop;
        switch (tecla){
            case 37 :   
                cuadrado.style.left = situacionY-220+"px" ; break;
            case 38 :
                cuadrado.style.top = situacionX-220+"px" ;break;
            case 39 : 
        cuadrado.style.left = situacionY-180+"px" ;break;
            case 40 :
                cuadrado.style.top = situacionX-180+"px" ;break;
        default :alert("Se ha equivocado, debe pulsar las flechas del teclado");
        }
    }
</script>
<body>
    <h1>Pulse una flecha</h1>
    <div id="cuadrado"></div>
</body>
</html>

Para personas que vayan a hacer este ejercicio les advierto que no se les olvide añadir al estilo del div la característica de "position:absolute", me volví loco hasta que me dí cuenta.

Una pregunta para César, estuve probando lo que comentaste de onkeypress , pero no sé si es que hago algo mal , pero cuando presionas las teclas de las flechas su valor es cero. Sin embargo, con onkeyup o onkeydown salen sus valores.

289
Gracias César, como siempre eficaz.
Sobre el ejercicio tienes razón, lo hice así porque me salió más práctico y enfocado a ejercicios anteriores con llamadas a funciones. Pero sí, me falta la función que dices y lo pedía el ejercico así.
Saludos!!!

290
Dejo mi código de este ejercicio.Muy útil para hacer slide de imagenes.

Código: [Seleccionar]
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
        h1 {
            display:inline;
        }
        div#pantalla{
            border:black thin solid;
            height:400px;
            width:500px;
            position:absolute;
            top:20%;
            left:20%;
           
        }
    </style>
    <script>
        window.onload=function(){
    document.getElementById("pantalla").onmousemove=situacion;
    document.getElementById("pantalla").onmouseout=situacionOut;
    }
    function situacion(evento){
        var x=evento.clientX;
        var y=evento.clientY;
       
        valorX=document.getElementById("valorX");
        valorY=document.getElementById("valorY");
        valorX.innerHTML=x;
        valorY.innerHTML=y;
        valorX.style.color="red";
        valorY.style.color="red"
       
    }
       
    function situacionOut(evento){
        document.getElementById("valorX").innerHTML='';
        document.getElementById("valorY").innerHTML='';
    }
   
    </script>
</head>
<body>
    <div id="pantalla">
        <h1 >Posicion x:<span id="valorX"></span></h1>
        <h1 >Posicion y:<span id="valorY"></span></h1>
    </div>
   
</body>
</html>
Saludos.

291
Hola chicos, para realizar este ejercicio, que por cierto está muy chulo, me estoy encontrando con un problema y es que no consigo hacer un onsubmit dinámico. Verifico mis datos de forma dinámica, pero el ejercicio pide que cuando presionemos el boton submit se verifique de nuevo y avise al usuario si los datos estan correctamente escritos o que campos no están bien escritos.Aquí es donde estoy encontrando el problema, me gustaría que me dieran una ayuda de lo que hago mal, porque se me envia el formulario sin pasar por mi función validarDatos() que he definido cuando realizo el submit.

Código: [Seleccionar]
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<script>
window.onload=function(){
var nombreOk=false;
var apellidoOk=false;
var edadOk=false;
var emailOk=false;
    function validarDatos(){
    if (nombreOk && apellidoOk && edadOk && emailOk){
        alert("Ha introducido todos los datos correctamente");
        return true;
    }else{
        alert("Hay errores");
        return false;
    }
    }
       
    var everyInputs=document.getElementsByTagName('input');
    for (var i=0;i<(everyInputs.length);i++){
        everyInputs[i].addEventListener('focus',estilo);
        everyInputs[i].addEventListener('blur',estilo2);
        var nodoname=everyInputs[i].name;
       
        switch (nodoname){
                case "nombre":
                    everyInputs[i].addEventListener('blur',validarNombre);
                    break;
                case "apellido":
                     everyInputs[i].addEventListener('blur',validarApellido);
                    break;
                case "edad":
                    everyInputs[i].addEventListener('blur',validarEdad);
                    break;
                case "email":
                    everyInputs[i].addEventListener('blur',validarEmail);
                    break;
                default :break;
            }
    }
function estilo(){
    this.style.backgroundColor="yellow";
}
function estilo2(inputElement){
    this.style.background='transparent';
    this.nextSibling.src="http://images.all-free-download.com/images/graphiclarge/tick_ok_sign_4190.jpg";
}
function estiloRojo(inElement){
    inElement.style.backgroundColor="red";
    inElement.nextSibling.src="http://griponclimate.files.wordpress.com/2013/03/wrong.png";
}
       
function validarNombre(){
        var nombre=document.getElementById("nombre");   
        var expresionRegular=/^\w{3,}$/;
        if ((expresionRegular.test(nombre.value))==true){
            nombreOk=true;
            estilo2(nombre);
        }
        else {
            nombreOk=false;
            estiloRojo(nombre);
        }
   
}

function validarApellido(){
        var apellido=document.getElementById("apellido");
        var expresionRegular=/^\w{3,}$/;
        if ((expresionRegular.test(apellido.value))==true){
            apellidoOk=true;
            estilo2(apellido);
        }
        else {
            apellidoOk=false;
            estiloRojo(apellido);
        }
   
}

function validarEdad(){
    var edad=document.getElementById("edad");
    if ((edad.value>10) && (edad.value<99)){
        edadOk=true;
        estilo2(edad);
    }
    else {
        edadOk=false;
        estiloRojo(edad);   
    }
   
}
   
function validarEmail(){
    var valorEmail=document.getElementById("email");
    var expresionRegular=/^([\w-\.]{3,}\@.+\..+)$/;
    var email=convertirMinusculas(valorEmail.value);
    email=comprobarAtEmail(email);
    if ((expresionRegular.test(email))==true) {
        emailOk=true;
        estilo2(valorEmail);
}
else {
        emailOk=false;
estiloRojo(valorEmail);   
}
   
}
   
 
function convertirMinusculas(email){
    return email.toLowerCase();   
    }
   
function comprobarAtEmail(email){
    var expresion=/\sat\s/g;
    return email.replace(expresion,'@');
}

function validarDatos(){
    var msg='Los datos que debe rectificar son:';
    if (nombreOk && apellidoOk && edadOk && emailOk){
        alert ("Ha introducido todos los datos correctamente y su formulario va a ser enviado");
        return true;
    }else{
        if (nombreOk===false){
            msg = msg + 'nombre';
        }
        if (apellidoOk===false){
            msg = msg + 'apellido';
        }
        if (edadOk===false){
            msg = msg + 'edad';
        }
        if (emailOk===false){
            msg = msg + 'email';   
        }
        alert (msg);
        return false;
    }
}

   

       
}
   
</script>
<body>
    <h1>La web para aprender programacion</h1>
    <p>Esta cantidad de eventos puede resultar desconcertante por excesiva. No te preocupes por entender ahora el significado de cada uno de ellos. Simplemente ten unas nociones básicas que te permitan resolver los retos que como programador te puedan ir surgiendo.</p>
    <p>Para comprobar si tus respuestas y código son correctos puedes consultar en los foros aprenderaprogramar.com.</p>
    <img id="img1" src="http://i.imgur.com/tq5Bs.png" />
<form name="miniformualario" class="formulario" method="get" onsubmit="return validarDatos()">
<label >Escriba nombre</label>   
<input type="text" id="nombre" name="nombre"/><img width="20" height="20"/><br/>
<label>apellidos</label>
<input type="text" id="apellido" name="apellido"/><img width="20" height="20"/><br/>
<label>edad</label>
<input type="text" id="edad" name="edad"/><img width="20" height="20"/><br/>
<label>Correo electronico</label>
<input type="text" id="email" name="email"/><img width="20" height="20"/><br/><br/>
<input type="submit"  value="Enviar" />
<input type="reset" value="Reiniciar datos" />   
   
</form>
<script>
       
   
</script>
   

</body>
</html>

292
Hola, mi resultado para el ejercicio es el siguiente:

Código: [Seleccionar]
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
<form method="get" name="formulario" onsubmit="validar()">
   <label>Introduzca su nombre</label>
   <input type="text" id="nombre" size="20"/><br/>
   <label>Introduzca su apellido</label>
   <input type="text" id="apellido" size="20"/><br/>
   <label>Introduzca su email</label>
   <input type="text" id="email" size="50"/><br/>
   <input type="submit" value="submit" />
   <input type="reset" value="Reiniciar datos" />
   
</form> 
<script>
var contador=0;
function validar(){
        validarNombre();
        validarApellido();
        validarEmail();
        validarOk();
}
   
function validarNombre(){
        var nombre=document.getElementById("nombre").value;
        var expresionRegular=/^\w{3,}$/;
        if (!(expresionRegular.test(nombre))){
            alert ("Ha introducido los datos de nombre mal. Deberá indicar un nombre superior a tres letras");
        }
        else {
            contador++;
        }
}
   
function validarApellido(){
        var apellido=document.getElementById("apellido").value;
        var expresionRegular=/^\w{3,}$/;
        if (!(expresionRegular.test(apellido))){
            alert ("Ha introducido los datos de apellido mal. Deberá indicar un apellido superior a tres letras");
        }
        else {
            contador++;
        }
}
   
function validarEmail(){
        var email=document.getElementById("email").value;
    email=convertirMinusculas(email);
    email=comprobarAtEmail(email);
if( !(/^([\w-\.]{3,}\@.+\..+)$/.test(email)) ) {
  alert ("Le recordamos condiciones que debe cumplir su correo electronico:\n\t 1.Su nombre ha de tener almenos 3 caracteres(alfanumericos o el subrayado)\n\t 2.Debe contener la '@' ");
}
else {
contador++;
       
}   
}
   
function validarOk(){
    if (contador==3){
            alert ("Introdujo todos los valores correctamente y su formulario será enviado");
    }
}
   
function convertirMinusculas(email){
    return email.toLowerCase();   
    }
   
function comprobarAtEmail(email){
    var expresion=/\sat\s/g;
    return email.replace(expresion,'@');
}
   
</script>
</body>
</html>


Además quería comentar, que podriamos usar en este ejercicio muchos atributos nuevos que salieron con HTML5, podriamos haber añadido el atributo required para obligar al usuario a que rellenase los campos, además para el email podriamos añadir type="email", una ayuda que facilitaria al usuario introducir los campos es añadir placeholder="descripcion del campo". También podemos añadir dentro de input la expresion regular, en el caso de nombre y apellido podriamos poner pattern="[A-Za-z]{3,}".

Tengo una cuestión, que estoy planteandome que no sé si es correcto mi idea para hacer una verificiacion sincrona de los formularios. Quiero que cada campo cada vez que sea rellenado y se cambie a otros campo se verifique(si es correcto aparezca un tic de correcto y si no lo es una cruz de incorrecto).Estaba pensando en utilizar el evento onfocusout para que cada vez que se cambien de campo se verifique, ¿sería correcto el planteamiento?

Otra cosa que me ha parecido muy comodo para la verificación de formularios es el poder cambiar el mensaje de verificación con setCustomValidity().

Saludos.

293
Hola César, para el apartado a , es verdad que en la creación de la herencia del objeto se me ha olvidado añadir los parentesis.

Código: [Seleccionar]
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
<button onclick="mostrarObjeto()">Mostrar Objeto</button>
<script>

    function persona(nombre,nacionalidad){
        this.nombre = nombre || 'Desconociso' ;
        this.nacionalidad = nacionalidad || 'Desconocido';
    }
    persona.prototype.mostrarNacionalidad=function(){
            alert ('La nacionalidad de '+this.nombre+' es '+this.nacionalidad);     
    }
   
    function medico(nombre,nacionalidad,centroDeTrabajo){
            persona.call(this,nombre,nacionalidad);
            this.centroDeTrabajo=centroDeTrabajo || 'Desconocido';
    }
   
    function medicoEspecialista(especialidad,centroDeTrabajo,nacionalidad,nombre){
            medico.call(this,nombre,nacionalidad,centroDeTrabajo);
            this.especialidad=especialidad || 'Desconocida';
    }
   
    medico.prototype=new persona();
    medicoEspecialista.prototype=new medico();
   
    function mostrarObjeto(){
        var primerMedico=new medicoEspecialista('traumatologo','Hospital 9 de Octubre','española','Beltran');
        var msg = ('El medico '+primerMedico.nombre+' con nacionalidad '+primerMedico.nacionalidad+' trabaja en '+primerMedico.centroDeTrabajo+' y tiene la especialidad de ' +primerMedico.especialidad);
        primerMedico.mostrarNacionalidad();
        alert(msg);
       
    }
    </script>
</body>
</html>


Para el segundo apartado, entiendo lo que me dices en los dos casos. No puedo usar 'tipo' cuando Persona no tiene por encima de él definido esta propiedad.
Para lo que me comentas de la propiedad 'tipo' que no se reciba como parametro, la verdad que tienes mucha razón, ya que es una característica que tienen común todos los profesores interinos y los profesores titulares. Lo he estado pensado y lo he definido como una propiedad estática de estos objetos.

Código: [Seleccionar]
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
<button onclick="crearObjetos()">Mostrar Objetos</button>
<script>
    function Persona(nombre){
        this.nombre = nombre || 'Desconociodo'   
        this.saludar = function (){
            alert ('Soy  '+this.nombre+' profesor ');
        }
    }
    Persona.prototype.definicion="Una persona es una persona";
   
    function Profesor(nombre,institucionAcademica){
        Persona.call(this,nombre);
        this.institucionAcademica = institucionAcademica || 'Desconocido';
       
    }
   
    function ProfesorInterino(nombre,institucionAcademica,mesesContratado){
        Profesor.call(this,nombre,institucionAcademica);
        this.mesesContratado = mesesContratado;
    }
    ProfesorInterino.tipoContrato="temporal";
   
    function ProfesorTitular(nombre,institucionAcademica,anyosTrabajados){
        Profesor.call(this,nombre,institucionAcademica);
        this.anyosTrabajados=anyosTrabajados;
    }
    ProfesorTitular.tipoContrato="indefinido";
   
Profesor.prototype=new Persona();
ProfesorInterino.prototype = new Profesor();
ProfesorTitular.prototype = new Profesor();
   
    function crearObjetos(){
        var ProfesorTitular1=new ProfesorTitular('Juan','Universidad de Leon',8);
        var msg1 = ('El profesor '+ProfesorTitular1.nombre+' ha trabajado durante '+ProfesorTitular1.anyosTrabajados+' anyos en '+ProfesorTitular1.institucionAcademica+' y tienen un contrato '+ProfesorTitular.tipoContrato);
        var ProfesorInterino1=new ProfesorInterino('Pedro','Universidad Politecnica de Valencia',5);
        var msg2 = ('El profesor '+ProfesorInterino1.nombre+' ha trabajado durante '+ProfesorInterino1.mesesContratado+' meses en '+ProfesorInterino1.institucionAcademica+' y tienen un contrato '+ProfesorInterino.tipoContrato);
        alert(msg1);
        alert(msg2);
        ProfesorTitular1.saludar();
        ProfesorInterino1.saludar();
    }
</script>
</body>
</html>

294
Efectivamente Ogramar, aplicando Number(variable) he podido hacerlo. ;D
Muchas gracias.

296
Para el primer ejercicio esta es mi solucion:

Código: [Seleccionar]
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
<button onclick="mostrarObjeto()">Mostrar Objeto</button>
<script>

    function persona(nombre,nacionalidad){
        this.nombre = nombre || 'Desconociso' ;
        this.nacionalidad = nacionalidad || 'Desconocido';
    }
    persona.prototype.mostrarNacionalidad=function(){
            alert ('La nacionalidad de '+this.nombre+' es '+this.nacionalidad);     
    }
   
    function medico(nombre,nacionalidad,centroDeTrabajo){
            persona.call(this,nombre,nacionalidad);
            this.centroDeTrabajo=centroDeTrabajo || 'Desconocido';
    }
   
    function medicoEspecialista(especialidad,centroDeTrabajo,nacionalidad,nombre){
            medico.call(this,nombre,nacionalidad,centroDeTrabajo);
            this.especialidad=especialidad || 'Desconocida';
    }
   
    medico.prototype=new persona;
    medicoEspecialista.prototype=new medico;
   
    function mostrarObjeto(){
        var primerMedico=new medicoEspecialista('traumatologo','Hospital 9 de Octubre','española','Beltran');
        var msg = ('El medico '+primerMedico.nombre+' con nacionalidad '+primerMedico.nacionalidad+' trabaja en '+primerMedico.centroDeTrabajo+' y tiene la especialidad de ' +primerMedico.especialidad);
        primerMedico.mostrarNacionalidad();
        alert(msg);
       
    }
   
   
    </script>
</body>
</html>


Y para el segundo ejercicio esta:

Código: [Seleccionar]
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
<button onclick="crearObjetos()">Mostrar Objetos</button>
<script>
    function Persona(nombre){
        this.nombre = nombre || 'Desconociodo'   
        this.saludar = function (){
            alert ('Soy  '+this.nombre+' profesor '+this.tipo);
        }
    }
    Persona.prototype.definicion="Una persona es una persona";
   
    function Profesor(nombre,institucionAcademica,tipo){
        Persona.call(this,nombre);
        this.institucionAcademica = institucionAcademica || 'Desconocido';
        this.tipo = tipo || 'Desconocido';
    }
   
    function ProfesorInterino(nombre,institucionAcademica,tipo,mesesContratado){
        Profesor.call(this,nombre,institucionAcademica,tipo);
        this.mesesContratado = mesesContratado;
    }
   
    function ProfesorTitular(nombre,institucionAcademica,tipo,anyosTrabajados){
        Profesor.call(this,nombre,institucionAcademica,tipo);
        this.anyosTrabajados=anyosTrabajados;
    }
   
Profesor.prototype=new Persona();
ProfesorInterino.prototype = new Profesor();
ProfesorTitular.prototype = new Profesor();
   
    function crearObjetos(){
        var ProfesorTitular1=new ProfesorTitular('Juan','Universidad de Leon','titular',8);
        var msg1 = ('El profesor '+ProfesorTitular1.tipo+' '+ProfesorTitular1.nombre+' ha trabajado durante '+ProfesorTitular1.anyosTrabajados+' anyos en '+ProfesorTitular1.institucionAcademica);
        var ProfesorInterino1=new ProfesorInterino('Pedro','Universidad Politecnica de Valencia','interino',5);
        var msg2 = ('El profesor '+ProfesorInterino1.tipo+' '+ProfesorInterino1.nombre+' ha trabajado durante '+ProfesorInterino1.mesesContratado+' meses en '+ProfesorInterino1.institucionAcademica);
        alert(msg1);
        alert(msg2);
        ProfesorTitular1.saludar();
        ProfesorInterino1.saludar();
    }
</script>
</body>
</html>

297
Necesito un empujón ,para poder tener claro cuando utilizar prototype o propiedades estáticas. No veo diferencia alguna y me gustaría me pudieran ayudar a entender cuando usar una u otra.

EN EL CASO DE PROTOTYPE:

Código: [Seleccionar]
function construyendoProto(){
    this.definicionSegunDiccionario="Un cometa es muy chulo";
    this.obtenerRadio=function(){
        return(this.diametro)/2;       
    }
    this.obtenerTemperaturaFarenheit=function(){
        return (1.8*this.temperatura)+32;
       
    }
}
   
cometaDef.prototype=new construyendoProto();


Y EN EL CASO DE METODOS/PROPIEDADES ESTÁTICAS:

Código: [Seleccionar]
cometaDef.definicionSegunDiccionario="Un cometa es muy chulo";
cometaDef.obtenerRadio=function(){
        return(this.diametro)/2;       
    }
cometaDef.obtenerTemperaturaFarenheit=function(){
        return (1.8*this.temperatura)+32;   
    } 
   

298
Hola, ya resolví el ejercicio CU01147E

Código: [Seleccionar]
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
   <button onclick="mostrar()">Cometas</button>
   
<script>   
// Definicion del objeto
function cometaDef(diametro,temperatura,nombre){
    this.diametro=diametro;
    this.temperatura=temperatura;
    this.nombre=nombre;
   
    }
   
//Definicion Metodo Clase del objeto
function construyendoProto(){
    this.definicionSegunDiccionario="Un cometa es muy chulo";
    this.obtenerRadio=function(){
        return(this.diametro)/2;       
    }
    this.obtenerTemperaturaFarenheit=function(){
        return (1.8*this.temperatura)+32;       
    }
}
   
cometaDef.prototype=new construyendoProto();

function mostrar(){
    var cometa=new Array();   
    cometa[0]=new cometaDef(13,12,"arena de mal");
    cometa[1]=new cometaDef(120,12,"bonito");
    cometa[2]=new cometaDef(123,12,"rueda amarilla");
    var msg='';
for(i in cometa){
msg = 'Definicion de cometa ' + cometa[i].definicionSegunDiccionario + '\n';
msg = msg + 'El cometa ' + cometa[i].nombre + ' tiene de diametro ' + cometa[i].diametro + ' y su radio es de  '+cometa[i].obtenerRadio()+ "\n";
                    msg = msg + 'Además tiene una temperatura de ' +cometa[i].obtenerTemperaturaFarenheit()+ ' de grados Farenheit, y una temperatura en grados centigrados de '+cometa[i].temperatura;
                    alert(msg);
}
}   
</script>   
</body>
</html>


Pero a raiz de este ejercicio me han surgido nuevas dudas que no he podido resolver.

Estoy intentando el usuario puede dar los valores de los satelites, he creado varios botones para cada cometa, asi cuando apreta el boton de cometa 1, había pensado en este código

Código: [Seleccionar]
function cometa1(){
    var diametro=prompt("Cual va a ser su diametro:");
    var temperatura=prompt("Que temperatura tiene:");
    var nombre=prompt("Que nombre le vas a poner:");
    var cometa[0]=new cometaDef(diametro,temperatura,nombre);
}

No consigo meter los datos. Necesito una ayudita.

Páginas: 1 ... 10 11 12 13 14 [15]

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