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 ... 7 8 9 10 11 [12] 13 14 15
221
He visto en algunos sitios algunos códigos Javascript que despues del cierre de la funcion hay (). Por ejemplo:

Código: [Seleccionar]
var func1 = function(){
   var func2 = function (){
        console.log(sayHi);
   }();
}();

¿A que se debe que se cierre el objeto con ()?

Gracias y saludos

222
Tengo una duda sobre la creación de los objetos con JavaScript. En los temas que aquí se desarrollan con el curso de javascript desde cero de aprenderaprogramar.com creábamos un objeto definiendolo asi:

cometa1 = new cometa(20,20,'Andromeda');

Pero imaginemos que queremos crear una acción con un botón y cada vez que se pulse ese boton se cree un nuevo objeto. He estado probando y no se puede asignar asi:

cometa[contador] = new cometa (20,20,'Andromeda');

porque es un vector y espera un resultado.

Estoy dandole vueltas y no consigo dar con la solución. A ver si alguien me ayuda.

Saludos

223
Adjunto mi código para este tema del curso JavaScript desde cero. Los ejercicios 1 y 2 están en el mismo código como funciones diferentes.

Citar
EJERCICIO 1

Crea un script donde se calcule el tiempo en minutos entre que se formula primera petición al usuario y este responde, y entre una segunda petición al usuario y este responde. Ejemplo:

Introduzca su nombre: Alfredo >> Introduzca su país: Colombia >> Han pasado 0.122 minutos entre su primera y segunda respuesta.

Otro ejemplo: Introduzca su nombre: Juan >> Introduzca su país: Chile >> Han pasado 0.73 minutos entre su primera y segunda respuesta.


Citar
EJERCICIO 2

Crea un script donde pida al usuario que introduzca una primera fecha (fecha1) en formato dd-mm-yyyy, y una segunda fecha en el mismo formato y calcule los días que han pasado entre las dos fechas . Ejemplo: Introduzca la fecha 1: 05-09-2076 >> Introduzca la fecha 2: 09-09-2076 >> Entre las 00:00 horas del primer día a las 00:00 del segundo hay 4 días.


Código: [Seleccionar]
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<script>
window.onload = function(){
    document.getElementById("ejercicio1").addEventListener('click',ejercicio1);
    document.getElementById("ejercicio2").addEventListener('click',ejercicio2);
}   

function ejercicio1(){
    var nombre = prompt ("Introduzca su nombre:");
    var fecha1 = new Date();
    var pais = prompt ("intorduzca pais:");
    var fecha2 = new Date();
    alert ("El tiempo transcurrido en introducir un dato y el segundo ha sido:\n"+Number(((fecha2.valueOf()-fecha1.valueOf())/1000)/60)+ ' minutos');   
}

function ejercicio2(){
   
       var  fecha1 = prompt ("Introduzca una fecha1 \'dd-mm-yyyy\'");
   
        var fecha2 = prompt ("Introduzca una fecha2 \'dd-mm-yyyy\'");
   
   
    fecha1Date = new Date(fecha1.substring(6)+','+(fecha1.substring(3,5))+','+(fecha1.substring(0,2)));
    fecha2Date = new Date(fecha2.substring(6)+','+(fecha2.substring(3,5))+','+(fecha2.substring(0,2)));
   
    if (fecha1Date.valueOf() > fecha2Date.valueOf()){
        var dias = ((fecha1Date.valueOf() - fecha2Date.valueOf())/(1000*60*60*24));
       
    }else{
        var dias = ((fecha2Date.valueOf() - fecha1Date.valueOf())/(1000*60*60*24));
    }
    alert ('Han transcurrido entre las dos fechas:'+(dias)+' dias');
   

}
</script>
<body>
    <button id="ejercicio1">Ejercicio1</button>
    <button id="ejercicio2">Ejercicio2</button>
</body>
</html>

224
Ejercicio CU01162E del curso tutorial javascript desde cero.

Citar
Crea un documento HTML que conste de un título h1 con el texto <<Calendario>>, y un div central de 400 por 400 px con el borde marcado y márgenes de 100px en todas direcciones. Dentro del div central crea una tabla de 7 columnas por 7 filas (total 49 celdas) con ancho de tabla 300 píxeles y tamaño de fuente en la tabla 24 píxeles. La primera columna corresponderá a lunes y la última a domingo. Usa un método JavaScript para determinar el mes actual. Mediante código JavaScript, haz que aparezca dinámicamente como texto encima de la tabla el mes y año de que se trate (por ejemplo <<MAYO DE 2050>>). Haz que cada celda de la primera fila se rellene indicando el día de la semana (Lu – Ma – Mi – Ju – Vi –Sa –Do). Haz que la tabla se rellene dinámicamente (al cargar la página) con:

a) Espacio en blanco si no corresponde ningún día.

b) El número del día del mes según corresponda (28, 30 ó 31 días según de qué mes se trate).


He tenido que buscar material en la web , porque no conseguía saber los dias que tenía un mes si no fuera creando las reglas de años bisiesto,meses,etc. Encontré un prototype del objeto Date que te calculaba los días (muy guay).

Tendría que haber comentado un poco el código porque la persona que no ha trabajado en un código y empieza a leer variables, funciones,etc sin saber para que son , es un poco lioso.

Por cierto, un ejercicio muy laborioso.

Adjunto mi código para este ejercicio.

Código: [Seleccionar]
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
<style>
    #calendario{
        height:400px;
        width:400px;
        margin:100px;
        text-align:center;
       
    }   
   
    #table{
        font-size: 24px;
        width: 300px;
        border:solid thin black;
        margin:50px;
        border-collapse: collapse;
    }
   
</style>
<script>
window.onload = function(){
   
    calendario(); 
}   

function calendario(){
    Date.prototype.monthDays= function(){
    var d= new Date(this.getFullYear(), this.getMonth()+1, 0);
    return d.getDate();
}
    fecha = new Date();
    fechaActual(fecha);
    var dias = fecha.monthDays();
    var nombreDias = ['Lu','Ma','Mi','Ju','Vi','Sa','Do'];
    var diacomienzo = empezarDia(fecha); escribirCalendario(fecha,nombreDias,diacomienzo,dias);
}
   
   function mesFecha(mes){
        switch (mes){
            case 0:return 'Enero';break;
            case 1:return 'Febrero';break;
            case 2:return 'Marzo';break;
            case 3:return 'Abril';break;
            case 4:return 'Mayo';break;
            case 5:return 'Junio';break;
            case 6:return 'Julio';break;
            case 7:return 'Agosto';break;
            case 8:return 'Septiembre';break;
            case 9:return 'Octubre';break;
            case 10:return 'Noviembre';break;
            case 11:return 'Diciembre';break;
        }
}
   
    function fechaActual(fecha){
        var anyo = fecha.getFullYear();
        var mes = mesFecha(fecha.getMonth());
        var msg = mes+' de '+anyo; document.getElementById("fechaActual").innerHTML = msg;
    }
   
    function empezarDia(fecha){
        fecha2 = new Date(fecha.getFullYear(),fecha.getMonth(),0);
        var diacomienzo = fecha2.getDay();
        return diacomienzo;
       
    }
   
    function escribirCalendario(fecha,nombreDias,diaComienzo,dias){
        var tds = document.getElementsByTagName('td');
        var contador = 1;
        // Para los dias de la semana;
        for (var i=0;i<tds.length;i++){
           
            if (i>0 && i<8 ){
                tds[i].innerHTML=nombreDias[i-1];
            }
            if (i>7 && diaComienzo!=0){
                tds[i].innerHTML = ' ' ;
                diaComienzo--;
            }
            else if (i>7 && diaComienzo==0 && contador<=dias){
               
                tds[i].innerHTML=contador;
                if (fecha.getDate() == contador){
                    tds[i].style.color = 'red';
                }
                contador++;
               
            }
           
        }
    }
   
   
</script>
</head>
<body>
   <h1>Calendario </h1>
    <div id="calendario">
        <table id="table">
            <tr>
                <td colspan="7" id="fechaActual">sd</td>
            </tr>
            <tr>
                <td></td><td></td><td></td><td></td><td></td><td></td><td></td>
            </tr>
            <tr>
                <td></td><td></td><td></td><td></td><td></td><td></td><td></td>
            </tr>
            <tr>
                <td></td><td></td><td></td><td></td><td></td><td></td><td></td>
            </tr>
            <tr>
                <td></td><td></td><td></td><td></td><td></td><td></td><td></td>
            </tr>
            <tr>
                <td></td><td></td><td></td><td></td><td></td><td></td><td></td>
            </tr>
            <tr>
                <td></td><td></td><td></td><td></td><td></td><td></td><td></td>
            </tr>
            <tr>
                <td></td><td></td><td></td><td></td><td></td><td></td><td></td>
            </tr>
        </table>
    </div>
</body>
</html>

225
Ufffff, Pedro, no me había dado cuenta de ese detalle. He estado pensando y no sé como solucionarlo, creo que sucede por tener las dos eventos (onkeypress y onkeyup), actuando a la vez. Mira que curioso. Prueba este código:
Código: [Seleccionar]
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
<style>
    #pizarra{
        border:solid 5px black;
        margin:100px;
       
        font-size: 250px;
        height:400px;
        width:400px;
        color:yellowgreen;
        text-align: center;
    }   
    #pizarra2{
        border:solid 5px black;
        margin:100px;
       
        font-size: 250px;
        height:400px;
        width:400px;
        color:yellowgreen;
        text-align: center;
    }   
</style>
<script>
window.onload =function(){document.onkeypress = mostrarCodigo;
                          document.onkeyup = mostrarCodigo2;
                         
   }

function mostrarCodigo(evento){
    var caracter = (evento.which);
    var pizarra = document.getElementById("pizarra") ;
    pizarra.innerHTML = caracter;
}
   
function mostrarCodigo2(evento){
    var caracter = (evento.keyCode);
    var pizarra = document.getElementById("pizarra2") ;
    pizarra.innerHTML = caracter;
}


</script>
</head>
<body>
   <h1>Pulsa una tecla</h1>
    <div id="pizarra"></div>
    <div id="pizarra2"></div>
</body>
</html>

Si el segundo ejercicio, tengo  esto:

Código: [Seleccionar]
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
<style>
    #pizarra{
        margin: 200px;
        height:300px;
        width:300px;
        border:solid 5px black;
        position: absolute;
    }   
</style>
<script>
window.onload = function (){
    document.onkeyup = moverPizarra;   
}   

function moverPizarra(evento){
    var tecla = (evento.keyCode);
    var pizarra = document.getElementById("pizarra");
    var posicionY = pizarra.offsetTop;
    var posicionX = pizarra.offsetLeft;
    switch (tecla){
        case 39:pizarra.style.left=posicionX-180+'px';break;
        case 37:pizarra.style.left=posicionX-220+'px';break;
        case 38:pizarra.style.top=posicionY-220+'px';break;
        case 40:pizarra.style.top=posicionY-180+'px';break;
        default: alert ("No has pulsado una flecha de teclado");
       
    }
   
}
</script>
</head>
<body>
    <h1>Pulse una tecla</h1>
    <div id="pizarra"></div>
</body>
</html>


 

226
Adjunto mi código para el ejercicio 1 de la entrega CU01161E del tutorial javascript desde cero.


Código: [Seleccionar]
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
<style>
    #pizarra{
        border:solid 5px black;
        margin:100px;
       
        font-size: 250px;
        height:400px;
        width:400px;
        color:yellowgreen;
        text-align: center;
    }   
</style>
<script>
window.onload =function(){document.onkeypress = mostrarCodigo;
                         
   }

function mostrarCodigo(evento){
    var caracter = String.fromCharCode(evento.which);
    var pizarra = document.getElementById("pizarra") ;
    pizarra.innerHTML = caracter;
}


</script>
</head>
<body>
   <h1>Pulsa una tecla</h1>
    <div id="pizarra"></div>
</body>
</html>


Amplío el ejercicio y añado un código para poder saber el codigo de cada caracter de teclado que pulsemos.

Código: [Seleccionar]
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
<style>
    #pizarra{
        border:solid 5px black;
        margin:100px;
       
        font-size: 250px;
        height:400px;
        width:400px;
        color:yellowgreen;
        text-align: center;
    }   
</style>
<script>
window.onload =function(){document.onkeypress = mostrarCodigo;
                          document.onkeyup = mostrarCodigo2;
                         
   }

function mostrarCodigo(evento){
    var caracter = (evento.which);
    var pizarra = document.getElementById("pizarra") ;
    pizarra.innerHTML = caracter;
}
   
function mostrarCodigo2(evento){
    var caracter = (evento.keyCode);
    var pizarra = document.getElementById("pizarra") ;
    pizarra.innerHTML = caracter;
}


</script>
</head>
<body>
   <h1>Pulsa una tecla</h1>
    <div id="pizarra"></div>
</body>
</html>

227
Está bien, lo único que en el html te sobra una etiqueta de cierre </div>

228
Lo que te decía dimiste que modificaras tu códio cambiando de linea la definición de la variable msg, para que te saliese bien en el alert.

Código: [Seleccionar]
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Ejemplo aprendeaprogramar.com</title>
<script type="text/javascript">
function ejemplo() {
var htmlADevolver='';
var colorUsuario=prompt('Elija color red, yellow o blue');

htmlADevolver = colorUsuario=='yellow' || colorUsuario=='red' || colorUsuario=='blue' ? '<h1 style="background-color:'+colorUsuario+';"> Usted elegió: '+colorUsuario+'</h1>':'<h1>No elegió color o el color no es válido</h1>';
            var msg='El htmlADevolver vale: '+htmlADevolver+'\nY la colorUsuario vale: '+colorUsuario;
alert(msg);
var nodoBody = document.getElementsByTagName('body')[0];
nodoBody.innerHTML = nodoBody.innerHTML + htmlADevolver;
}
</script>
</head>
<body>
<div id="cabecera">
<h2>Cursos aprenderaprogramar.com</h2>
<h3>Ejemplos JavaScript</h3>
</div>
<div style="color: blue;" id="pulsador" onclick="ejemplo()">Probar Ejercicio</div>
</body>
</html>

229
REcuerda dimiste, que tu los datos los mandas al objeto profesorTitular o profesorInterino, y estos estaban definidos por unas caracteríticas individuales y por otras características de otros objetos, por lo que tienes que hacer una llamada a estos objetos (call) con los datos que has usado para profesorTitular o profesorInterino.

231
En el apartado f) repasalo porque te pasa lo mismo que en el e)

232
Hola dimiste,
para el apartado e), el código lo tienes que modificar . Tienes que cambiar la posición donde se encuentra esto
Código: [Seleccionar]
var msg='El htmlADevolver vale: '+htmlADevolver+'\nY la colorUsuario vale: '+colorUsuario;
alert(msg);
estas usando htmlADevolver antes de ser definido con lo que quieres poner. Lo definistes al principio var htmlADevolver =''; y por eso al ejecutarlo te sale vacio.

233
Es casi así dimiste,
pero repasa este ejercicio ya resuelto en este foro:
https://www.aprenderaprogramar.com/foros/index.php?topic=3390.msg14834#msg14834
https://www.aprenderaprogramar.com/foros/index.php?topic=3968.msg16795#msg16795
Como puedes ver, cuando creas un nuevo objeto de profesorTitular o profesorInterino, se crea nombrando todas las variables que hemos enlazado con los distintos objetos :
por ejemplo:
profesorTitular(anyostrabajados,institucionacademica,nombre)
profesorInterino(mesesContrato,institucionacademica,nombre)

234
No he comprobado el código.
Solo decirte que ese código Javascript está escrito con jQuery, que es una libreria de javascript, sino la tienes importada en tu pagina web ese código no te va a funcionar.

235
Hola Mastermind,
comentarte que yo he usado PhpMyAdmin , sobre todo comentarte que es un editor fácil de uar y comodo.
Para bases de datos que sean complejas se usa el editor de base de datos 'Workbench', lo he usado muy poco para algo concreto y no lo usé de forma completa, era algo sencillo.No te puedes imaginar las funciones que tiene.

236
Del segundo ejercicio,
vuelvelo a repasar porque las herencias no están bien hechas.
Tu objeto ProfesorTitular hereda de Persona, pero no hereda nada del objeto Profesor.
Tiene que heredar de Profesor, y Profesor heredar de Persona.

237
Para el ejercicio1:
Lo normal es que uses call en vez de apply. Apply se usa cuando el segundo parametro es un vector que tiene varios valores, en nuestro caso son variables que estan definidas y no son vectores ninguna de las dos.
El objeto Persona debe definir las características nombre y nacionalidad y un METODO COMÚN que muestre la cionalidad (recuerda con prototype).
Te falta añadir la variable centro a los objetos PersonaConNacionalidad y en MedicoEspecialista. Te paso tu codigo con esto modificado y así funcionaría pero debes definir otra vez lo objetos no te has ceñido a la definición que ponia el ejercicio, como te he comentado antes.
Código: [Seleccionar]
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Ejemplo aprenderaprogramar.com</title>
<script type="text/javascript">

function Persona(centro){
this.centro = centro || 'Desconocida';
}

function PersonaConNacionalidad(nombre,nacionalidad,centro){
this.nombre = 'Juan';
this.nacionalidad = 'del mundo';
this.saludar = function(nacionalidad){
alert('Esta es mi nacionalidad: '+this.nacionalidad);
};
            Persona.call(this,centro);
}
        PersonaConNacionalidad.prototype = new Persona();

function MedicoEspecialista(especialidad,centro,nombre,nacionalidad){
this.especialidad = especialidad;
PersonaConNacionalidad.call(this,nombre,nacionalidad,centro);
}
MedicoEspecialista.prototype = new PersonaConNacionalidad();

function ejemploObjetos(){
var unMedico = new MedicoEspecialista('ortopedia','Hospital del Mar','Joan','del mundo');
alert('Hola, mi especialidad es: '+unMedico.especialidad+' trabajo en: '+unMedico.centro);
unMedico.saludar();
}

</script>
</head>
<body>
<div id="cabecera">
<h2>Cursos aprenderaprogramar.com</h2>
<h3>Ejemplos JavaScript</h3>
</div>
<div style="color:blue;" id ="pulsador" onclick="ejemploObjetos()"> Probar Ejercicio</div>
</body>
</html>


238
El código del ejercicio ahora si funciona.
Respecto a los codigos que preguntas:

Código:
Código: [Seleccionar]
function hortaliza(){
this.tipoHortaliza = 'indefinido';
}
hortaliza.prototype = new plantaCultivada();
hortaliza.prototype.componentePrincipal = 'Agua';
Para ese código, el objeto tiene una características que deberemos definir cada vez que usemos la herencia, pero que aunque no se haga referencia directa, si que existe, y su valor será 'tipoHortaliza='indefinido'.
Tiene una característica común que hace falta que le des ningun valor porque ya está definido y todos los nuevos objetos que crees tendrán esa característica común.
y 'hortaliza.prototype = new plantaCultivada();' , es la creación de herencia entre objetos.

Código:
Código: [Seleccionar]

function hortaliza(){
this.tipoHortaliza = 'indefinido';
this.componentePrincipal = 'Agua';
}
hortaliza.prototype = new plantaCultivada();
En este caso tiene dos características que podemos definir o no porque los valores están inicializados tipoHortaliza y componentePrincipal.
hortaliza.prototype = new plantaCultivada(); --> es la creación de la herencia.

239
Ah, Pedro, no te había entendido.

/^[A-C]\w+\ses\s\w*/
[A-C] --> palabra que empieza por A,B,C
\w--> le sigue una cadena de caracteres (word)
+\s -->espacio
es --> despues del espacio le sigue la cadena de caracteres 'es'
\s -->un nuevo espacio
\w --> una cadena de caracteres(word)

                A******* es ********

240
Hola dimiste, la verdad que cuestaun poco al principio entender un poco las herencias.
Yo te recomiendo que la estructura primero la dibujes en papel. Como si fuera un <div> dentro de otro <div>, y dentro de este otro <div>. El div que está mas dentro del cuadrado hereda de todos los demas, y que está más afuera no hereda de nadie.
Creo recordar que en CSS se llama herencia y cascada.
Respecto a lo que preguntas, cuando defines un objeto habrá variables que podrán ser modificadas cada vez que sean heredadas, por ejemplo :
1.Un tomate cuando herede 'nombreCientifico' no tendrá el mismo valor que si creamos una lechuga o un pimiento, y tendremos que modificarlo cada vez que creeemos una plantaCultivada.
2.Todas las hortalizas que creemos tendrán la misma propiedad de 'movilidad' del objeto vegetal , ya que a no hay ninguna hortaliza que tenga patas y se mueva, y entonces es cuando creamos una característica común para todos los vegetales.
Código: [Seleccionar]
vegetal.prototype.movilidad ="ser vivo sin movilidad"
Recuerda que todas aquellas características que sean comunes se crearan con su respectivo prototype y aquellas que serán modificadas estarán en la definición del objeto.

Cuando lo entiendas tendrás que modificar el código que volviste a colgar. Ya verás como poco a poco lo vas viendo más facil. Al principio la cabeza se lia un poco.Te recomiendo que hagas esquemas como el del foro

Páginas: 1 ... 7 8 9 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".