TALLERES DE JAVA SCRIPT - COLEGIO BILINGÜE DE LA UNIVERSIDAD EL BOSQUE

EVALUACION 2

1) El siguiente programa tiene errores. Escríbelo y corrígelo para que funcione (grábalo con el nombre Eval2A.htm en TuCarpeta):



2) Haz un programa que funcione de la siguiente forma:

  • El programa nos pide que escribamos dos números positivos menores de 57
  • El programa nos da como resultado el producto de los dos números
  • Si los números no son positivos o son mayores de 57, el programa nos lo dice.

    El programa nos pregunta al final si queremos volver a empezar.

    Graba el programa con el nombre Eval2B.htm en TuCarpeta

    3) Escribe un programa que nos vaya pidiendo números. Si escribimos el número 9999 se acaba; por último el programa nos da como resultado el número de números introducidos,exceptuando el 9999.

    Graba el programa con el nombre Eval2C.htm en TuCarpeta.

    4) Haz un programa que haga lo mismo que el anterior, pero además nos dé la suma de todos los números introducidos, exceptuando el 9999

    Graba el programa con el nombre Eval2D.htm en TuCarpeta.


    1. 5) Haz un programa que haga lo mismo que el anterior, pero además nos dé el producto de los números introducidos, exceptuando el 9999.

      Graba el programa con el nombre Eval2E.htm en TuCarpeta.

      6) Haz un programa que escriba todos los múltiplos de 23 inferiores a 1000 y por último nos dé la suma de todos ellos.

      Graba el programa con el nombre Eval2F.htm en TuCarpeta.

      7) Haz un programa que sirva para hacer una tabla de valores de la función y=sen(7x-5)

      • El programa nos pide los dos valores de “x” (valores máximo y mínimo).
      • El programa nos pide el incremento (variación) de la “x”.



      Graba el programa con el nombre Eval2G.htm en TuCarpeta.

      8) Haz un programa que sirva para calcular un cateto de un triángulo rectángulo a partir del otro cateto y la hipotenusa, de la siguiente forma:

      • El programa nos pide el valor de la hipotenusa.
      • El programa nos pide el valor de un cateto.
      • Si el cateto es mayor que la hipotenusa, el programa nos da un mensaje de error y se acaba.
      • El programa nos da como resultado el valor del otro cateto y nos pregunta si queremos volver a empezar.



      Graba el programa con el nombre Eval2H.htm en TuCarpeta.

      9) Haz un programa que sirva para resolver ecuaciones de 2º grado del tipo ax2 + bx = 0.

      Graba el programa con el nombre Eval2I.htm en TuCarpeta.

      (Modifica el Prog027.htm, que resolvia el caso general)

      10) Haz un programa que sirva para resolver sistemas de ecuaciones del tipo:

      • ax + by = c
      • dx + ey = f



      Graba el programa con el nombre Eval2J.htm en TuCarpeta.

      x=(ce-bf)/(ae-bd) ; y=(af-dc)/(ae-bd)

      Prueba el funcionamiento del programa para el caso a=1; b=-2; c=-3; d=3; e=1;f=5; si todo funciona correctamente: x=1 ; y=2

      11) Haz un programa con la posibilidad de hacer el Eval2I.htm o el Eval2J.htm (debes utilizar la estructura “switch”)

      Graba el programa con el nombre Eval2K.htm en TuCarpeta.

      12) Haz un programa que escriba la tabla de valores de la función y = ax2 + bx + c, el programa nos pide los valores de a, b, c y el número natural “v”. El programa construye la tabla de valores entre los valores de “-v” y “v” con un incremento de una unidad.

      Graba el programa con el nombre Eval2L.htm en TuCarpeta.

      La “salida” para el caso a = 1, b = -2, c=3, v=5 ha de ser de la siguiente forma:

      13) Haz un programa que escriba los 15 primeros múltiplos de 7, su suma y su producto. El programa ha de tener la posibilidad de volver a empezar.

      Graba el programa con el nombre Eval2M.htm en TuCarpeta.

      14) El siguiente programa tiene errores, indícalos y explica detalladamente lo que hace el programa:



      15) Haz un programa que sirva para calcular el área de un triángulo o el área de un rectángulo o el área de un círculo. El programa ha de tener la posibilidad de volver a empezar.

      Graba el programa con el nombre Eval2O.htm en TuCarpeta.

      16) Haz un programa tal que: dados dos vectores del espacio calcule su producto escalar, producto vectorial y además nos dé el módulo de los dos vectores y también el módulo del producto vectorial.

      Graba el programa con el nombre Eval2P.htm en TuCarpeta.

      • v =(a , b , c) w=(d , e , f)
      • Producto Escalar = ad + be + cf
      • Producto vectorial = (bf-ec , dc-af , aebd)
      • Módulo de v = a2 + b2 + c2

      17) Haz un programa que “dibuje” un rectángulo de asteriscos a partir de la base y la altura.

      Graba el programa con el nombre Eval2Q.htm en TuCarpeta.

      18) Haz un programa que dibuje un cuadrado, con el carácter que quieras, a partir del lado.

      Graba el programa con el nombre Eval2R.htm en TuCarpeta.

      19) Haz un programa que nos pida un número y dé como resultado la tabla de multiplicar del número introducido.

      Graba el programa con el nombre Eval2S.htm en TuCarpeta.

      20) Haz un programa que calcule el número “e” mediante el desarrollo en serie:

      • e = 1 + 1/(1!) + 1/(2!) + 1/(3!) + 1/(4!) + ... 1/(50!)

      Graba el programa con el nombre Eval2T.htm en TuCarpeta.

      21) Haz un programa que escriba 50 números aleatorios enteros entre 1 y 6.

      Graba el programa con el nombre Eval2U.htm en TuCarpeta

      22) En matemáticas no se puede dejar un resultado numérico sin racionalizar, ya que el resultado sin racionalizar tiene un error mayor.

      Haz un programa para comprobar la afirmación anterior, concretamente para las fracciones:

      Graba el programa con el nombre Eval2V.htm.

      23) Haz un programa que nos pregunte 10 multiplicaciones aleatoriamente y al final nos dé la nota cualitativa.

      Graba el programa con el nombre Eval2W.htm

      TALLER 36 - VARIABLE AUXILIAR

      En el programa Prog034 ya utilizábamos una variable auxiliar, vamos a hacer otro programa que la utilize.

      Escribe el siguiente programa:





      Graba el programa con el nombre Prog036.htm en TuCarpeta, y ejecútalo varias veces.

      TALLER 35 - CALCULO ITERATIVO (FALCTORIAL)

      Escribe el siguiente programa:





      Graba el programa en TuCarpeta con el nombre Prog035.htm y ejecútalo.

      TALLER 34 - CALCULO ITERATIVO (FIBONACCI)

      La llamada sucesión de FIBONACCI es: 0, 1, 1, 2, 3, 5, 8, 13, …

      Es decir, cada término es igual a la suma de los dos anteriores.

      Vamos a “programar” la sucesión de Fibonacci.

      Escribe el siguiente programa:





      Graba el programa en TuCarpeta con el nombre Prog034.htm y ejecútalo.

      TALLER 32 Y 33: LA ESTRUCTURA DO-WHILE

      Escribe el siguiente programa:





      Graba el programa en TuCarpeta con el nombre Prog032.htm y ejecútalo.

      ¿Qué diferencia hay entre la estructura while y la do-while?

      Estructura de programación do-while:





      Mientras se cumpla la condición, se repetirá la ejecución de las sentencias 1, 2 y 3.

      Como la evaluación de la condición se efectúa al acabarse el ciclo, el do-while se ejecutará siempre como mínimo una vez. Ésta es la diferencia que hay entre la estructura do-while y la while.

      Para comprobarlo escribe el siguiente programa (aprovecha el Prog032.htm, porque prácticamente es el mismo):





      Graba el programa en TuCarpeta con el nombre Prog033.htm y ejecútalo varias veces, comparándolo con el Prog032.htm

      TALLER 31 - LAS SENTENCIAS BREAK Y CONTINUE

      Escribe el siguiente programa:





      Graba el programa en TuCarpeta con el nombre Prog030.htm.

      Ejecútalo varias veces, observando detenidamente lo que sucede

      Estudio del Prog030.htm

      La sentencia break nos obliga a salir del ciclo “for”. Por esta razón el primer “for” del programa sólo escribe del 5 hasta el 7.

      La sentencia continue salta al final del ciclo “for” y continua ejecutando el ciclo. Por esta razón el segundo ciclo “for” escribe todos los números del 5 al 14, exceptuando el 8.

      Las sentencias break y continue funcionan exactamente igual en las estructuras while y “Do-while” (esta última estructura la veremos próximamente).

      Corrige el Prog029e.htm de la siguiente forma:





      Graba el programa con el nombre Prog030a.htm y ejecútalo varias veces para comprobar que funciona correctamente.

      Compara el Prog029e con el Prog030a. Observa el uso práctico del "break".

      TALLER 30 - LA ESTRUCTURA SWITCH-CASE

      Escribe el siguiente programa:



      Graba el programa en TuCarpeta con el nombre Prog031.htm y ejecútalo.

      La estructura “switch-case”





      Según el valor que tome la variable “x”, se ejecutarán las líneas de programa del “case” correspondientes. Observa que cada “case” termina con “break”.


      Programa que nos da la "nota" cualitativa a partir de la cuantitativa


      El programa nos pide el número total de preguntas y el número de respuestas acertadas. A partir de aquí y utilizando la estructura "switch-case", el programa nos da la "nota" cualitativa.
      En efecto, escribe el siguiente programa:




      Grábalo con el nombre Prog031a.htm en TuCarpeta y ejecútalo varias veces para comprobar que funciona.

      TALLER 29 - PROGRAMAS VARIOS

      Programa que calcula el logaritmo en base cualquiera de un número dado

      Escribe:



      Graba el fichero anterior con el nombre Prog029.htm en TuCarpeta y ejecútalo varias veces.

      programa que sirve para calcular potencias Escribe:



      Graba el programa en TuCarpeta con el nombre Prog029a.htm Utiliza el programa anterior para calcular las siguientes expresiones:

      1. 2 a la 3
      2. 0.32 a la 4.5291
      3. raíz cuadrada de 2
      4. raíz cúbica de 5.01527


      Programa que calcula la raíz enésima de un número

      Escribe:





      Graba el programa en TuCarpeta con el nombre Prog029b.htm

      Utiliza el programa anterior para calcular las siguientes expresiones:

      1. raíz 5-ésima de 32
      2. raíz 7-ésima de 4.7201
      3. raíz 0.5-ésima de 2

      Programa que calcula el número “e”

      Recuerda que “e” es el límite de la expresión: (1+1/n)n, cuando n tiende a infinito.

      Escribe el siguiente programa:





      Grábalo en TuCarpeta con el nombre Prog029c.htm y ejecútalo.

      Observa que Math.E nos da el número “e” con la máxima precisión que admite el JavaScript.

      Números Aleatorios

      Escribe el siguiente programa:





      Grábalo en TuCarpeta con el nombre Prog029d.htm y ejecútalo.

      Adivinanzas

      Vamos a hacer un programa que nos pregunte un número entero del 1 al 10, y el usuario del programa tiene 5 tentativas para adivinarlo.

      Escribe:





      Grábalo en TuCarpeta con el nombre Prog029e.htm y ejecútalo varias veces.

      Observa la utilidad de las variables control y i. Próximamente veremos una forma más elegante de salir de una estructura while (o for).

      Programa que nos pregunta 5 sumas aleatoriamente y al final nos da la "nota"

      Escribe:





      Grábalo en TuCarpeta con el nombre Prog029f.htm y ejecútalo varias veces.

      TALLER 28 - PROGRAMA QUE CONSTRUYE UNA TABLA DE SENOS

      Escribe:



      Graba el fichero con el nombre Prog028.htm en TuCarpeta y ejecútalo.

      TALLER 27 - PROGRAMA QUE RESUELVE UNA ECUACIÓN DE SEGUNDO GRADO

      Escribe:



      Graba el programa en TuCarpeta con el nombre Prog027.htm Ejecútalo para los casos:

      1. a= 1, b= 1, c= 1
      2. a= 2, b=-6, c= -20
      3. a= 1, b= 4, c= 4

      TALLER 26 - PROGRAMA QUE CALCULA TANTAS HIPOTENUSAS COMO QUERAMOS

      Escribe:



      Graba el programa en TuCarpeta con el nombre Prog026.htm y ejecútalo.

      TALLER 25 - EL OBJETO MATH

      Nos permite trabajar con funciones matemáticas.

      Concretamente:

      1. Math.log(x) = ln(x)
      2. Math.exp(x) = ex
      3. Math.sqrt(x) = raiz cuadrada de "x"
      4. Math.pow(a, b) = ab
      5. Math.floor(): número entero más cercano y menor
      6. Math.ceil(): número entero más cercano y mayor
      7. Math.round(): redondea al entero más próximo.
      8. Math.random(): número aleatorio entre 0 y 1
      9. Math.round(y-x)*Math.random()+x: número aleatorio entre "x" e "y".
      10. Math.sin(x)= sin(x) x en radianes
      11. Math.cos(x)= cos(x) x en radianes
      12. Math.tan(x)= tg(x) x en radianes
      13. Math.atan(x)= arctg(x) resultado en radianes
      14. Math.abs(x): valor absoluto de "x"
      15. Math.max(a,b) : máximo valor de los dos
      16. Math.min(a,b): mínimo valor de los dos.

      Programa que calcula la hipotenusa de un triángulo rectángulo

      Escribe:





      Graba el fichero con el nombre Prog025.htm en TuCarpeta y ejecútalo unas cuantas veces.

      TALLER 24 - MEJORA DEL TALLER 23

      Al ejecutar el programa anterior, nos podemos encontrar con una serie de problemas, por ejemplo si introducimos en el valor menor de "x" (x1), un valor que sea mayor que el introducido en la variable x2, o también puede suceder que en la variable paso escribamos un número negativo.

      Vamos a solucionar estos posibles problemas, es decir vamos a "mejorar" el programa anterior.

      Escribe:





      Grábalo con el nombre Prog024.htm en TuCarpeta y ejecútalo, convendría probar los casos x1>=x2 y paso<0>

      Observa de qué forma salimos del programa si introducimos datos que no tienen sentido.

      TALLER 23 - TABLA DE VALORES DE LA FUNCIÓN y=x2-5x+10

      Escribe el siguiente programa:



      Graba el fichero en TuCarpeta con el nombre Prog023.htm y ejecútalo varias veces.

      TALLER 22 - PROGRAMA QUE CALCULA LOS 10 PRIMEROS MÚLTIPLOS DEL NÚMERO DADO, Y DA LA SUMA DE TODOS ELLOS

      Escribe:



      Grábalo con el nombre Prog022.htm en TuCarpeta y ejecútalo varias veces.

      TALLER 21 - PROGRAMA QUE CALCULA EL FACTORIAL DE UN NÚMERO

      Recuerda que el factorial del número "x" es: 1*2*3*4*5*…*x

      Escribe el siguiente programa:





      Grábalo en TuCarpeta con el nombre Prog021.htm y ejecútalo varias veces.

      Observa que nuestro "for" no necesita llaves, porque contiene una única sentencia.

      TALLER 20 - PROGRAMA QUE CALCULA TODOS LOS MULTIPLOS DE 11 MENORES DE 3000 Y POR ULTIMO NOS DA LA SUMA DE ELLOS.

      Escribe el siguiente programa:





      Grábalo en TuCarpeta, con el nombre Prog020.htm y ejecútalo.

      TALLER 19 - LA ESTRUCTURA FOR

      for (contador = valor inicial; condición; expresión de incremento)

      { …;

      …;

      …; }

      Ejemplo:

      for (i=1;i<=10;i++)

      sentencia1;

      sentencia2;

      sentencia3;

      En palabras significa:

      Desde i=1, hasta i=10 de 1 en 1, repite las sentencias 1, 2 y 3"

      Es decir: Repite 10 veces las sentencias 1, 2 y 3 Observa que el contador o índice del "for" (en nuestro caso la "i"), es una variable que no esnecesario declararla, ya que la expresión "i=1" la declara e inicializa.

      Programa que repite un texto cualquiera en número de veces que queramos, utilizando un "for"

      Escribe el siguiente programa:





      Graba el fichero en TuCarpeta, con el nombre Prog019.htm y ejecútalo unas cuántas veces.

      TALLER 18 - PROGRAMA QUE ACUMULA LA SUMA Y EL PRODUCTO DE LOS NÚMEROS QUE QUERAMOS

      Programa que acumula la suma y el producto de los números que queramos

      Escribe:





      Grábalo en TuCarpeta con el nombre Prog018.htm y ejecútalo.

      Observa como acumulamos la suma y el producto:

      Contador que acumula la suma de los números "num": sum=sum+num;

      Hemos de inicializar a 0 la variable "sum".

      Contador que acumula el producto de los números "num": pro=pro*num

      Hemos de inicializar a 1 la variable "pro".

      TALLER 17 - UNA VARIACION

      Programa que repite un texto cualquiera, el número de veces que queramos, utilizando un "while"

      Escribe el siguiente programa:





      Grábalo en TuCarpeta con el nombre Prog017.htm y ejecútalo

      Recuerda que en el "ParseInt" no es necesario escribir el 10, ya que por defecto (si no lo escribimos), es base 10.

      TALLER 16 - CONTADORES EN JAVASCRIPT

      1. a=a+1 es equivalente a escribir a++
      2. a=a-1 es equivalente a escribir a—
      3. num=num+2 es equivalente a escribir num += 2
      4. num=num*2 es equivalente a escribir num *= 2
      5. num=num/2 es equivalente a escribir num /= 2
      Escribe el siguiente programa:



      Grábalo con el nombre Prog016.htm en TuCarpeta Ejecuta el programa, es importante que tengas claro el funcionamiento del Prog016.htm:
      compara el listado del programa con lo que sucede al ejecutarlo. Observa cómo conseguimos Escribir toda la salida en un único "alert" (variable "res").

      TALLER 15 - LA ESTRUCTURA WHILE

      Sintaxis:



      Significado:

      “Mientras” se cumpla la condición, se irán repitiendo las sentencias 1, 2 y 3.

      Escribe el siguiente programa:





      Grábalo con el nombre Prog015.htm en TuCarpeta y ejecútalo.

      Estudio del Prog015.htm

      En “palabras”, nuestro programa nos dice: “mientras” la x sea inferior a 6; escribe el valor de “x”; incrementa en una unidad el valor de “x”;

      • Al principio x=0
      • Se cumple la condición del while: x<6
      • Aparece escrito x=0
      • Al pasar por el contador x=1
      • Se cumple la condición x<6
      • Aparece escrito x=1
      • Al pasar por el contador x=2
      • Aparece escrito x=2…
      • Cuando x=6 no se cumple la condición y por lo tanto se acaba el programa.

      TALLER 14 - LA DIFERENCIA ENTRE = Y ==

      a = 3*9 es una asignación, es decir la variable “a” es 27. En cambio if(a==5) es una condición: si “a” es idéntico a 5 (si el valor de “a” es el número 5)…

      Escribe el siguiente programa:





      Grábalo con el nombre Prog014.htm en TuCarpeta.

      Ejecuta el programa para los siguientes casos, observando detenidamente lo que aparece:

      • 1) a=70, b=2
      • 2) a=50, b=30
      • 3) a=7, b=11
      • 4) a=100, b=50
      • 5) a=50, b=100

      Observa:

      • a==b “a” es igual a “b”
      • a != b “a” es diferente a “b”
      • (a>b) && (100>a)

      “a” es mayor que “b” y además “100 es mayor que –a-“

      El else correspondiente a la condición anterior, sería equivalente a no(a>b)

      no(100>a), es decir la negación de la primera condición o la negación de la segunda (o las dos negaciones a la vez).

      TALLER 13 - LA ESTRUCTURA IF-ELSE

      Escribe el siguiente programa:



      Grábalo con el nombre Prog013.htm en TuCarpeta.

      Ejecútalo.

      La Estructura de programación “if-else”

      Sintaxis:

      Significado:

      Si se cumple la condición, se ejecutan las sentencias 1, 2 y 3 y si no se cumple se ejecutan las sentencias 4, 5, 6. La opción “else” es opcional.

      EVALUACION 1

      1) Haz un programa de nombre Eval1A.htm, que has de grabar en TuCarpeta que sirva para restar dos números cualesquiera, sean enteros o reales.

      ¿Qué sucede si en lugar de restar dos números, intentamos restar dos textos?

      Haz un programa de nombre Eval1Ab.htm, que demuestre el único caso en que podemos estar dos cadenas de texto.

      2) Haz un programa de nombre Eval1B.htm, que has de grabar en TuCarpeta, que sirva para dividir dos números.

      ¿Qué sucede si en lugar de dividir dos números, intentamos dividir dos textos?

      ¿Qué sucede si el divisor es el número 0?

      3) Haz un programa de nombre Eval1C.htm, que has de grabar en TuCarpeta, que funcione de la siguiente forma:

      1. -El programa nos pregunta nuestro nombre.
      2. -El programa nos pregunta nuestra edad.
      3. -El programa da como resultado nuestro nombre y a continuación los días que hemos vivido hasta el momento (deberás multiplicar la edad por 365).

      4) Haz un programa de nombre Eval1D.htm, que has de grabar en TuCarpeta, que funcione de la siguiente forma:

      El programa nos pide un número.

      El programa nos muestra en una única pantalla (un único “alert”), el doble, el triple y cuadrúple del número que habíamos introducido.

      5) El siguiente programa tiene errores. Escríbelo (grábalo con el nombre Eval1E.htm en TuCarpeta) y corrígelo para que funcione y explica para qué sirve:



      6) Haz un programa de nombre Eval1F.htm, que has de grabar en TuCarpeta, que sirva para calcular la longitud de una circunferencia y el área del círculo correspondiente.

      7) Haz un programa de nombre Eval1G.htm, que has de grabar en TuCarpeta, que sirva para calcular un determinante de 2º orden.

      8) Haz un programa de nombre Eval1H.htm, que has de grabar en TuCarpeta, igual que el Eval1G, pero que presente los 4 elementos del determinante tabulados en 2 filas y 2 columnas.

      9) Haz un programa de nombre Eval1I.htm, que has de grabar en TuCarpeta, que funcione de la siguiente forma:

      1. - El programa nos pide nuestro nombre.
      2. - El programa nos pide nuestro primer apellido.
      3. - El programa nos pide en qué población vivimos.
      4. - El programa presenta una pantalla aproximadamente igual a la siguiente:

      ==================================

      Hola nombre Apellido

      Adiós habitante de Población

      ==================================

      10) Haz un programa de nombre Eval1J.htm, que has de grabar en TuCarpeta, que funcione de la siguiente forma:

      - El programa nos pide un número.

      - Utiliza tres contadores:

      • • Un contador: suma 5
      • • Otro contador: suma 21
      • • Otro contador: resta 4

      - El programa nos presenta los 4 números de la siguiente forma:

      • La primera línea: el número introducido.
      • La segunda línea: los tres números tabulados, que han resultado de los tres contadores.

      De forma que si introducimos el nº 5 debería aparecer:





      11) Haz un programa de nombre Eval1K.htm, que has de grabar en TuCarpeta, que funcione de la siguiente forma:

      • - El programa nos pide un número entero.
      • - El programa nos da como resultado el mismo número pero en base 16
      • - Y por último nos lo escribe en base 5



      Comprueba el programa para el número 52. Deberás calcular en primer lugar matemáticamente el valor de 52 en base 16 y en base 5.

      12) Haz un programa de nombre Eval1L.htm, que has de grabar en TuCarpeta, que funcione de la siguiente forma:

      • - El programa nos pide un número en base ocho
      • - El programa nos lo escribe en base decimal.
      • - Y por último en base 2.

      Comprueba el programa para el número 65618. Deberás resolver en primer lugar el problema matemáticamente.

      13) Haz un programa de nombre Eval1M.htm que has de grabar en TuCarpeta, que funcione de la siguiente forma:

      • - El programa nos pide un número entero.
      • - El programa nos pide la base
      • - El programa nos escribe el número introducido en la "base" deseada.



      Comprueba el programa para el número 100, en base 2, 3 y 11. Deberás resolver en primer lugar el problema matemáticamente.

      14) ¿Qué es la WWW?

      15) Cuáles son los "browsers" más conocidos.

      16) Escribe un fichero HTML (que no sea un programa JavaScript), que presente la frase: "Hola que tal" y debajo tu nombre y apellidos.

      17) ¿Qué encierra el par de tags:





      18) ¿Qué relación hay entre el Java y el JavaScript?

      19) ¿Quién creó el lenguaje de programación JavaScript?

      20) ¿Cuáles son las características del JavaScript?

      21) El JavaScript es un lenguaje ¿compilado o interpretado?. ¿Qué programa hace de compilador o interprete?

      22) ¿Porqué decimos que el JavaScript es un lenguaje de programación barato?

      23) ¿Qué indican las siglas POO?

      24) ¿Cómo se llaman y cómo funcionan las dos formas de definir una variable en JavaScript?

      25) ¿Porqué el JavaScript es un lenguaje "Case Sensitive"?

      26) Nombra todos los tipos de datos que existen en JavaScript.

      27) ¿Para qué sirve la función typeof?. Inventa un par de ejemplos.

      28) ¿Qué es el carácter de escape? ¿Qué es un caráter de control?. Escribe dos caracteres de control e indica para qué sirven.

      29) ¿Qué dará por resultado el siguiente programa, y porqué?





      Grábalo con el nombre Eval1N.htm en TuCarpeta.

      30) Calcula el número 9AC1 que está en base 16 a base 10, matemáticamente

      31) Calcula el número 7640 que está en base 8 a base 10, matemáticamente.

      32) Utiliza programas ya hechos para comprobar los dos ejercicios anteriores.

      33) ¿Qué diferencia hay entre null y NaN

      34) ¿Qué problema hay al sumar en JavaScript?. Explica cómo solucionarlo.

      35) Indica a qué es igual los siguientes valores:

      • a) parseInt("A",16)=
      • b) parseFloat("31H")=
      • c) toString(13)=
      • d) toString(4.273,49)=



      36) Haz un programa de nombre Eval1o.htm, que sirva para calcular el producto escalar de dos vectores del plano.

      La “salida” ha de ser de la siguiente forma:



      Comprueba el funcionamiento del programa, utilizando el caso concreto que aparece en la ilustración.

      37) Haz un programa de nombre Evalip.htm, que sirva para calcular el coseno del ángulo que forman dos vectores del plano, sabiendo que Math.sqrt(x) calcula la raíz cuadrada de “x”.


      La “salida” ha de ser de la siguiente forma:



      Comprueba el funcionamiento del programa, utilizando el caso concreto que aparece en la ilustración.

      38) Haz un programa de nombre Eval1q.htm que sirva para calcular el punto medio de un segmento.

      La “salida” ha de ser de la siguiente forma:




      Comprueba el funcionamiento del programa, utilizando el caso concreto que aparece en la ilustración

      TALLER 12 - CONVERSIÓN EXPLÍCITA DE TIPOS

      Conversión explícita de tipos

      parseFloat(cadena)

      Toma la "cadena" y la transforma en un número en coma flotante, si es posible.

      parseFloat ("123.456") = 123.456 parseFloat ("123ABC") = 123

      parseFloat ("ABC") = NaN

      parseInt(cadena, número)

      Devuelve números enteros, el segundo argumento nos permite escoger la base de numeración (entre 2 y 36).

      parseInt ("ABC",16) = 2748

      ABC16 = 274810

      Si no especificamos el segundo argumento, por defecto es 10.

      Si la cadena empieza por 0x y no existe el segundo argumento, se entiende que es 16.

      Si la cadena empieza por 0 y no existe el segundo argumento, se entiende que es 8 toString(argumento).

      Si argumento = número.

      Devuelve una cadena que contiene el número

      • Puede haber un argumento opcional:
      • (13).toString(16) =”d” siendo 1310 = d16
      • (13).toString(2) = “1101” siendo 1310 = 11012

      Vamos a hacer un programa que sume números en JavaScript.

      Escribe:





      Grábalo en TuCarpeta con el nombre Prog012.htm

      Ejecútalo, utilizando números enteros, naturales y decimales.

      A partir de este momento hemos de tener claro si los “prompts” corresponden a números enteros, decimales o de texto:

      Si “x” ha de ser un número entero escribiremos: x = parseInt(prompt(“Escribe un número entero”,””));

      Si “x” ha de ser un número decimal escribiremos: x = parseInt(prompt(“Escribe un número entero o decimal”,””));

      Si “x” ha de ser una cadena de texto escribiremos: x = prompt(“Escribe el texto correspondiente”,””);

      Escribe el siguiente programa:





      Grábalo con el nombre Prog012b.htm, y ejecútalo.

      En el ejercicio Prog007.htm habíamos visto una forma de convertir un número en base 8 o base 16 en base 10. Pero dichos números debíamos de escribirlos implícitamente, es decir en el programa. Nos gustaría hacer un programa que:

      • Nos preguntara un número en base 16 (prompt)
      • Nos diera como resultado el número anterior pero en base 10

      Vamos a ver si lo conseguimos:

      Escribe:





      Grábalo con el nombre Prog012bb.htm en TuCarpeta y ejecútalo. para el número “FF32”, a ver si es verdad que nos da “65330” como resultado.

      Observa el funcionamiento del programa Prog012bb.htm:

      • m = prompt(“Escribe un número en base 16”, “”) Lo que escribamos (un número en base 16), se guardará en la variable “m” como texto (ya que no hemos puesto ningún “parseInt” ni “parseFloat”).
      • n =parseInt(m,16) La variable “n” guardará el número en base 10. Es decir: parseInt(cadena, 16), transforma la “cadena”, en nuestro ejemplo un número escrito en base 16, en el correspondiente número (no cadena) pero en base decimal.

      Vamos a ver si el procedimiento sirve para cualquier otra base...

      Antes de todo veamos unos cuantos números en diferentes bases:

      • 367 = 6 + 3.7 = 27 en base 10
      • 1234 = 3 + 2.4 + 1.42 = 27 en base 10
      • 51346 = 4 + 3.6 + 1.62 + 5.63 = 1138 en base 10

      eSCRIBE



      Grábalo con el nombre Prog012bbb.htm y ejecútalo, probándolo con los números anteriores.

      Veamos el problema inverso: dado un número en base 10, nos interesa convertirlo a base 7, por ejemplo.

      Matemáticamente:

      Sea 593 un número en base 10

      59310 = 15057

      En JavaScript deberíamos hacerlo de la siguiente forma, escribe:





      Grábalo con el nombre Prog012bbbb.htm y ejecútalo, probando su funcionamiento con el número 593

      TALLER 11 - CONVERSIÓN DE TIPOS 2

      ¿Qué sucede si introducimos dos números a través de la función prompt?. Vamos a verlo:

      Escribe el siguiente programa:





      Grábalo en TuCarpeta, con el nombre Prog011.htm

      Ejecútalo. No funciona como deseamos debido a que el resultado de un prompt, siempre es una cadena de texto.

      El problema que tenemos pendiente, es ¿cómo sumar en JavaScript?

      TALLER 10 - CONVERSIÓN IMPLÍCITA DE TIPOS

      Conversión implícita de tipos

      Observa:

      var var1 = "75";

      var var2 = 25;

      var var3, var4;

      var3 = var1 + var2;

      var4 = var2 + var1;

      Las varibles var3 y var4 contienen ¿números o textos?

      Cuando se suman cadenas de texto con cualquier otra cosa, los otros tipos de datos se convierten en cadenas de texto. Pero si restamos, multiplicamos o dividimos "cadenas de texto", ¿sucede lo mismo?. Vamos a descubrirlo en los siguientes programas.

      Escribe el siguiente programa:





      Graba el programa en TuCarpeta con el nombre Prog010.htm.

      Ejecútalo.

      La conclusión está clara:

      • Si sumamos dos cadenas (aunque contengan números) de texto se produce la concatenación (unión) de los dos textos.
      • Si multiplicamos (o hacemos cualquier operación aritmética que no sea la suma), dos cadenas de texo que en realidad contienen números, se produce una conversión implícita de las cadenas a números y aparece el producto aritmético de los números.

      TALLER 09 - CONTADORES

      Uno de los instrumentos más utilizados en todo lenguaje de programación es el llamado contador.

      Observa:

      var x= 10;

      x = x+1;

      x = x-5;

      Declaramos una variable "x", que es numérica y que inicialmente es 10.

      La línea "x = x+1" es un contador, que hemos de leer: El nuevo valor de "x" es igual al anterior valor de "x" más una unidad. Es decir, que en estos momentos nuestra variable "x" es igual a 11.

      La siguiente línea: "x = x-5" es otro contador que hemos de leer: el nuevo valor de "x" es igual al anterior valor de "x" menos 5 unidades. Es decir, que el valor de la variable "x" es ahora 11 - 5 = 6.

      Haz un programa para comprobar lo que hemos dicho sobre los contadores, es decir:





      Grábalo en TuCarpeta con el nombre Prog009.htm y ejecútalo.

      TALLER 08 - VARIOS TIPOS DE VARIABLES

      Variables nulas

      Cuando una variable no contiene ningún valor, su contenido es nulo

      • Ejemplo: miVariable = "Hola";
      • miVariable= null; // la vaciamos para que no ocupe memoria.

      Valores especiales para variables numéricas

      NaN: no es un número. Infinity: infinito, por ejemplo 3/0

      Escribe el siguiente programa:





      Grábalo en TuCarpeta con el nombre Prog008.htm y ejecútalo.

      TALLER 07 - EL DATO TIPOS NUMBER

      Podemos guardar indistintamente en una variable number un número entero, decimal, positivo o negativo.

      Ejemplos:

      • var numNatural= 1234;
      • var numEntero = -479;
      • var numDecimal = 3.141592;
      • var numDecimal2 = -0.123;

      Bases de Numeración en JavaScript (números enteros)

      Por defecto, el sistema de numeración es el decimal.

      • Base Hexadecimal (base 16): anteponemos el prefijo 0X
      • Base Octal (base 8): anteponemos un cero

      Dígitos del sistema decimal: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 Dígitos del sistema hexadecimal: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A (que corresponde al 10 en base decimal), B (que corresponde al 11 en decimal), C (12), D (13), E (14), F (15)

      Ejemplo:

      FF32 en base 16 es:

      2 + 3*16 + 15*162 + 15*163 = 65330 en sistema decimal

      Es decir: 0xFF32 (número en base 16, según notación de JavaScript) = FF3216 = 6533010

      123458 = 5 + 4*8 + 3*82 + 2*83 + 1*84 = 534910

      Es decir: 012345 (número en base 8, según notación de JavaScript) = 123458 = 534910

      Escribe el siguiente programa:





      Grábalo en TuCarpeta con el nombre Prog007.htm y ejecútalo.

      En el programa anterior aparecen 3 “alerts”, uno para cada uno de los tres números. No hay ningún problema para incluir los tres “alerts” en uno solo....

      En efecto, escribe el siguiente programa:





      Grábalo en TuCarpeta con el nombre Prog007b.htm y ejecútalo.

      Observa que la solución de nuestro problema está:

      • Unir texto (entre comillas) y variables (sin comillas), con el signo “+”.
      • Cada vez que deseemos un cambio de línea, incluimos “\n”

      Veamos otra forma de incluir en un “alert” muchos datos ...

      Escribe:





      Grábalo en TuCarpeta con el nombre Prog007bb.htm y ejecútalo.

      Observa de qué forma acumulamos muchos datos en un solo “alert” (ésta será la forma de proceder, cuando necesitemos una “salida” con muchos valores):

      • definimos una variable “vacía”: var salida=””;
      • acumulamos a la variable salida todo lo que queramos: salida=salida+ lo que sea. “lo que sea” puede ser una cadena (un texto) o una variable (sea numérica o de texto). salida=salida + x1 + “ “ + y1; salida=salida + “ya me he cansado”;
      • Para acabar, un solo “alert”: alert(salida);

      TALLER 06 - EL TIPO DE DATO STRING

      En JavaScript los textos se denotan por comillas dobles o comillas simples, pero no ambas a la vez.

      Variable1 = "Pepito" Variable2 = 'Paquito'

      Podemos incluir un carácter de control en una cadena de texto, si utilizamos el llamado carácter de escape que es: \

      Los caracteres de control más usados son:

      \n salto de línea. \t tabulador.

      Escribe el siguiente programa:





      Grábalo en TuCarpeta con el nombre Prog006.htm

      Ejecútalo, observando detenidamente la acción de \n y \t

      Si no introducimos un número en el "prompt", en el "alert" correspondiente al doble del número, aparecerá NaN, que quiere decir que no es un número.

      TALLER 05 - TIPOS DE DATOS

      Cuando declaramos una variable, ésta no pertenece a ningún tipo de dato en concreto, se dice que es Undefined. Es al asignarle un valor cuando pasa a ser de uno u otro tipo, según el dato que albergue.

      Existen 6 tipos de datos:

      • String: cadenas de texto.
      • Object: objetos
      • Number: valores numéricos
      • Null: nulo
      • Boolean: true o false
      • Undefined: no definido.

      Podemos averiguar el tipo de dato que contiene una variable si utilizamos la función incorporada typeof.

      Escribe el siguiente programa:





      Grábalo en TuCarpeta con el nombre Prog005.htm

      Ejecútalo tantas veces como quieras.

      TALLER - 04 DECLARACIÓN DE VARIABLES

      Una variable se puede declarar en JavaScript, de dos formas:

      • Forma Explícita: var nombre Variable;
      • Forma Implícita: var nombre Variable= valor;
      En el último caso no es imprescindible escribir var, pero es conveniente, ya que de esta forma localizamos rápidamente todas las variables del programa.
      El "JavaScript" es un lenguaje de programación "Case Sensitive", esto es: no es lo mismo las mayúsculas que las minúsculas. Es decir, para el JavaScript: pepe es distinto de Pepe y distinto de pEpe.


      Escribe el siguiente programa:



      Grábalo en TuCarpeta con el nombre Prog004.htm

      Ejecútalo

      TALLER 03

      Este ejercicio consiste en crear un programa que calcule el área de un triángulo. Para ello de be preguntar dos variables (base, altura) y dar el resultado en una ventana de diálogo emergente. Créenlo en el block de notas, grábenlo con el nombre prg03.htm y córranlo.

      EXPLICACION DEL TALLER 02

      1º) Primera y última línea:



      Es decir: página html mínima que necesitamos para incluir un programa JavaScript.

      2º) Segunda y penúltima líneas:



      , es decir programa en JavaScript


      3º) Primera sentencia del programa: // PROG002.HTM


      Todas las líneas que empiezan por // son comentarios para el programador, es decir no forman parte del programa, dicho de otra forma: el navegador si encuentra una línea que empieza por //, la salta.


      4º) var nom;

      Definimos una variable de nombre nom


      5º) nom = prompt(“Escribe tu nombre”,”Paco”);

      Aparece un recuadro con un mensaje y un campo donde podemos escribir algo; el mensaje corresponde a lo que escribimos en el primer argumento de la función prompt, encerrado entre comillas. El segundo argumento del prompt contiene el valor que aparece por defecto en el campo del cuadro de diálogo.
      El valor del prompt es nom, es decir lo que nosotros escribamos en el cuadro será el valor que tomará la variable nom.

      Si no escribimos nada y hacemos click en [Aceptar], el prompt, es decir la variable nom tomará el valor de Paco, porque es el valor que aparece por defecto.



      6º) alert("Mucho gusto "+nom); Aparece un cuadro con el mensaje "Mucho gusto" y a continuación el valor de la variable "nom", que será lo que hemos escrito en el primer cuadro que nos ha aparecido.


      En definitiva:


      • La función prompt nos permite introducir "valores", dichos valores se han de guardar en variables, que previamente hemos de declarar con la palabra reservada "var"
      • La función "alert" muestra mensajes y/o valores de variables.

      TALLER 02 - PROMPT

      Utilizando el “Bloc de Notas” escribe el siguiente programa:



      Grábalo en TuCarpeta con el nombre Prog002.htm

      Ejecútalo varias veces, observando detenidamente lo que sucede.

      EXPLICACION DEL TALLER 1

      Un programa “JavaScript” se escribe integrado en una página HTML, por lo tanto no es más que un fichero de texto que contiene una serie de pares de tags correspondientes a la página Web (como mínimo el par: HEAD/HEAD), además del par de tags característico de un programa JavaScript. Dicho fichero se ha de grabar necesariamente con la extensión HTM (característica de una página HTML).

      Un programa “JavaScript” no es más que una secuencia de ordenes, que deben terminar en punto y coma, entre los tags:



      En nuestro Prog001.htm, hemos incluido el programa en la cabecera (HEAD) de la página, pero podríamos colocarlo en cualquier parte del fichero htm

      Nuestro primer programa JavaScript contiene una única sentencia: alert(“”¡Hola Mundo!”);que “abre” una ventana con el mensaje que tenemos entre comillas. Al hacer clic en el [Aceptar] de la ventana “alert”, se acaba el programa JavaScript (se encuentra el tag -/script) y continua ejecutándose la página HTML.

      TALLER 1 - HOLA MUNDO

      Escribe, utilizando el “Bloc de Notas” del Windows, el siguiente programa:



      Graba el fichero anterior en TuCarpeta con el nombre Prog001.htm

      Ejecuta el programa Prog001.htm, es decir:

      • Ejecuta el “Explorador de Windows”
      • Sitúate en TuCarpeta
      • Clic-Click en Prog001.htm

      TALLER 0 - ESTRUCTURA HTML

      Ejecuta el “Bloc de Notas”, es decir:

      [Inicio] - Programas - Accesorios - Bloc de Notas

      Escribe:



      Graba el fichero anterior con el nombre PROG000.HTM en TuCarpeta.

      Ejecuta el “Explorador de Windows”. Sitúate en TuCarpeta y haz un doble click en PROG000.HTM

      De esta forma, se ejecuta el navegador de tu ordenador (supondré que es el Internet Explorer) y se “carga” la página PROG000.HTM

      El navegador nos muestra la página HTML “visualmente”, para ver su código debes hacer:

      Menú Ver - Código fuente

      INTRODUCCIÓN

      El JavaScript es un lenguaje de programación ampliamente utilizado en el mundo del desarrollo web por ser muy versátil y potente, tanto para la realización de pequeñas tareas como para la gestión de complejas aplicaciones. Además, ha saltado el ámbito de la web, y también podemos encontrarlo en otros entornos, como es el lenguaje ActionScript de Macromedia, que acompaña al sistema Flash.

      Los programas en JavaScript no son la primera forma que conoce la Web para transformar información, dado que el uso de CGIs está ampliamente difundido. La diferencia básica que existe entre un programa CGI y uno escrito en JavaScript es que el CGI se ejecuta en el servidor de páginas Web mientras que el programa en Javascript se ejecuta en el cliente (es decir, en el navegador). Por regla general, el CGI necesita unos datos de entrada (que normalmente se proporcionan mediante un formulario), los procesa y emite un resultado en forma de documento HTML.

      Por el contrario, los programas escritos en JavaScript se ejecutan en el navegador del cliente, sin necesidad de que intervenga el servidor. De esta forma, una sola transacción basta para cargar la página en la que se encuentra tanto el formulario, para los datos de entrada, como el programa en JavaScript que proporciona los resultados. Sin embargo, esto no significa (como veremos después) que los CGI vayan a ser substituidos por JavaScript.

      Las dos principales características de JavaScript son, por un lado que es un lenguaje basado en objetos (es decir, el paradigma de programación es básicamente el de la programación dirigida a objetos, pero con menos restricciones), y por otro JavaScript es además un lenguaje orientado a eventos, debido por supuesto al tipo de entornos en los que se utiliza (Windows y sistemas X-Windows). Esto implica que gran parte de la programación en JavaScript se centra en describir objetos (con sus variables de instancia y métodos de "clase") y escribir funciones que respondan a movimientos del ratón, pulsación de teclas, apertura y cerrado de ventanas o carga de una página, entre otros eventos.

      ¿Qué podemos hacer con JavaScript?

      • Páginas dinámicas (DHTML)
      • Comprobación de datos (Formularios)
      • Uso de los elementos de la página web
      • Intercambiar información entre páginas web en distintas ventanas
      • Manipulación de gráficos, texto, etc...
      • Comunicación con plug-ins: Flash, Java, Shockwave, etc...

      ¿Qué NO es JavaScript?

      Ante todo no es un lenguaje de propósito general. No permite un control absoluto sobre los recursos del ordenador, tal y como estamos acostumbrados al crear un programa (aunque las últimas innovaciones de los navegadores en cuestiones de seguridad le están dando un mayor operatibilidad) . Cada programa en JavaScript solo tiene acceso al documento HTML en el que va inmerso y, si acaso, a las ventanas en las que se ejecuta el navegador dentro del cual se está ejecutando el programa en JavaScript.

      Como ya se ha dicho, tampoco es un sustituto de los CGIs. Ciertas cosas no se pueden hacer en JavaScript, especialmente las relacionadas con acceso a ficheros en todos sus sentidos. Sin embargo es muy útil para depurar errores en los datos antes de pasárselos al CGI que los trata, por lo que el uso combinado de JavaScript y CGIs redunda en un mejor tratamiento de datos y un menor número de transacciones en la Web cuando se usan los CGIs.

      Por último, no es un lenguaje orientado a objetos, ya que, por ejemplo, no existe el concepto de clase. Es basado en objetos, de modo que se trabaja directamente con instancias de objetos.

      Diferencias entre Java y JavaScript

      Aunque pudiera pensarse que son una misma cosa, son dos lenguajes totalemente diferentes. Ciertos detallas son similares para ambos (lenguajes muy relacionados con la Web, basados en un paradigma de programació orientada a objetos, permiten trabajar con objetos inmersos en un documento HTML...), pero en esencia son dos lenguajes independientes.

      He aquí algunas de las diferencias más notables entre Java y Javascript:

      • Java es un lenguaje de próposito general, y por tanto se puede utilizar para programar aunque no sea para la Web. Javascript es específico de la Web.
      • JavaScript es un lenguaje interpretado y ejecutado por el cliente. Java es un lenguaje compilado por el servidor y que puedeser ejecutado en el cliente.
      • JavaScript es basado en objetos. Java es orientado a objetos. Los objetos usados en JavaScript existen cuando empieza a ejecutarse el programa; no existen clases ni por tanto ninguna de las características que de ello se derivan (entiéndase herencia o encapsulación).
      • El código del programa en JavaScript va inscrito en la página HTML en la que se ejecuta.
      • Javascript es un lenguaje débilmente tipificado, no es necesario declarar el tipo de los datos y se realizan conversiones de unos a otros automáticamente cuando es necesario y si es viable. Java es, por contrario, fuertemente tipificado, como C o Pascal.

      ¿Porqué el JavaScript y no otro lenguaje de programación?

      Porque:

      • Es moderno (tiene pocos años)
      • Es sencillo (su hermano mayor: el Java, es bastante más complejo.
      • Es útil (el desarrollo de Internet, se prevé muy rápido en los próximos años)
      • Es potente: permite la moderna POO (programación orientada a objetos)
      • Es barato: sólo necesitamos un editor de textos (el “Bloc de Notas” está incluido en el Windows) y un navegador (es gratuito, ya sea el “Internet Explorer” o el “Netscape”).
      • Es visual: permite “programación visual” (ventanas, botones, colores, formularios, etc.)

      En definitiva: es ideal para un primer curso de introducción a la programación.Y has de tener en cuenta que hay un “dicho” en informática, que afirma: “Si dominas un lenguaje de programación, los conoces todos”.