Вы находитесь на странице: 1из 27

Mtodo Descripcin Expresin Resultado

abs Valor absoluto Math.abs(-2) 2


sin, cos, tan Funciones trigonomtricas, reciben el argumento en radianes Math.cos(Math.PI) -1
asin, acos,
atan
Funciones trigonomtricas inversas Math.asin(1) 1.57
exp, log Exponenciacin y logaritmo, base E Math.log(Math.E) 1
ceil Devuelve el entero ms pequeo mayor o igual al argumento Math.ceil(-2.7) -2
floor Devuelve el entero ms grande menor o igual al argumento Math.floor(-2.7) -3
round Devuelve el entero ms cercano o igual al argumento Math.round(-2.7) -3
min, max Devuelve el menor (o mayor) de sus dos argumentos Math.min(2,4) 2
pow
Exponenciacin, siendo el primer argumento la base y el segundo el
exponente
Math.pow(2,3) 8
sqrt Raz cuadrada Math.sqrt(25) 5
random Genera un valor aleatorio comprendido entre 0 y 1. Math.random() Ej. 0.7345



Nos permite trabajar con funciones matematicas.
Concretamente:
Math.log(x) = ln(x)
Math.exp(x) = e
x

Math.sqrt(x) = raiz cuadrada de "x"
Math.pow(a, b) = ab
Math.floor(): nmero entero mas cercano y menor
Math.ceil(): nmero entero mas cercano y mayor
Math.round(): redondea al entero mas proximo.
Math.random(): nmero aleatorio entre 0 y 1
Math.round(y-x)*Math.random()+x: nmero aleatorio entre "x" e "y".
Math.sin(x)= sin(x) x en radianes
Math.cos(x)= cos(x) x en radianes
Math.tan(x)= tg(x) x en radianes
Math.atan(x)= arctg(x) resultado en radianes
Math.abs(x): valor absoluto de "x"
Math.max(a,b) : maximo valor de los dos
Math.min(a,b): mnimo valor de los dos.


Programa que calcula la hipotenusa de un triangulo rectangulo


Escribe:
<HTML>
<SCRIPT LANGUAGE='JavaScript'>
// PROG025.HTM
var cat1,cat2,hipo;
cat1=prompt('Escribe el valor de un cateto','');
cat2=prompt('Escribe el valor del otro cateto','');
cat1=parseFloat(cat1);
cat2=parseFloat(cat2);
hipo=Math.sqrt(cat1*cat1+cat2*cat2);
alert('La hipotenusa del triangulo de catetos '+cat1+' y '+cat2+' es '+hipo);

</SCRIPT>
</HTML>


Graba el fichero con el nombre Prog025.htm en TuCarpeta y ejectalo unas cuantas veces.

Programa que calcula tantas hipotenusas como queramos


Escribe:
<HTML>
<SCRIPT LANGUAGE='JavaScript'>
// PROG026.HTM
var opcion='S';
var cat1,cat2,hipo;
while(opcion=='S' || opcion=='s')
{
cat1=prompt('Escribe el valor de un cateto','');
cat2=prompt('Escribe el valor del otro cateto','');
cat1=parseFloat(cat1);
cat2=parseFloat(cat2);
hipo=Math.sqrt(cat1*cat1+cat2*cat2);
alert('La hipotenusa del triangulo de catetos '+cat1+' y '+cat2+' es '+hipo);
opcion=prompt('Quieres calcular otra hipotenusa? (S/N)','');
}
alert('Adios muy buenas');

</SCRIPT>
</HTML>


Graba el programa en TuCarpeta con el nombre Prog026.htm y ejectalo.


Programa que resuelve una ecuacion de segundo grado


Escribe:
<HTML>
<SCRIPT LANGUAGE='JavaScript'>
// PROG027.HTM
var a,b,c;
var discri;
var x1,x2;
a=prompt('Escribe el coeficiente de la x^2','');
a=parseFloat(a);
b=prompt('Escribe el coeficiente de la x','');
b=parseFloat(b);
c=prompt('Escribe el trmino independiente','');
c=parseFloat(c);
discri=b*b-4*a*c;
if(discri<0) alert('Soluciones Imaginarias');
if(discri==0)
{
x1=-b/(2*a);
alert('Solucion doble que es '+x1);
}
if(discri>0)
{
x1=(-b+Math.sqrt(discri))/(2*a);
x2=(-b-Math.sqrt(discri))/(2*a);
alert('Las soluciones son = '+x1+' y '+x2);
}
</SCRIPT>
</HTML>


Graba el programa en TuCarpeta con el nombre Prog027.htm


Ejectalo para los casos:
a= 1, b= 1, c= 1
a= 2, b=-6, c= -20
a= 1, b= 4, c= 4

Programa que construye una tabla de senos


Escribe:
<HTML>
<SCRIPT LANGUAGE='JavaScript'>
// PROG028.HTM
var gra,rad;
var salida='';
for(gra=0;gra<=360;gra=gra+10)
{
rad=3.141592*gra/180;
salida=salida+gra+'\t\t'+Math.sin(rad)+'\n';
}
alert(salida);

</SCRIPT>
</HTML>


Graba el fichero con el nombre Prog028.htm en TuCarpeta y ejectalo.


Programa que calcula el logaritmo en base cualquiera de un nmero dado


Escribe:
<HTML>
<SCRIPT LANGUAGE='JavaScript'>
// PROG029.HTM
var num;
var opc,base;
num=prompt('Escribe un nmero positivo','');
num=parseFloat(num);
opc=prompt('1 Logaritmo Neperiano. 2 Logaritmo Decimal. 3 Logaritmo en base a\nEscribe el nmero de la opcion','');
opc=parseInt(opc,10);
if(opc==1)
{
alert('El logaritmo Neperiano de '+num+' es '+Math.log(num));
}
if(opc==2)
{
alert('El logaritmo Decimal de '+num+' es '+(Math.log(num)/Math.log(10)));
}
if(opc==3)
{
base=prompt('Introduce el valor de la base a','');
base=parseFloat(base);
alert('El Logaritmo en base '+base+' del nmero '+num+' es '+(Math.log(num)/Math.log(base)));
}

</SCRIPT>
</HTML>


Graba el fichero anterior con el nombre Prog029.htm en TuCarpeta y ejectalo varias veces.



Programa que calcula "potencias"


Escribe:
<HTML>
<SCRIPT LANGUAGE='JavaScript'>
// PROG029a.HTM
var bas,exp,resul
bas=parseFloat(prompt('base de la potencia?',''));
exp=parseFloat(prompt('escribe el exponente',''));
resul=Math.pow(bas,exp)
alert(bas+' elevado a '+exp+' es igual a '+resul)
</SCRIPT>
</HTML>


Graba el programa en TuCarpeta con el nombre Prog029a.htm


Utiliza el programa anterior para calcular las siguientes expresiones:
23
0.32 4.5291
raz cuadrada de 2
raz cbica de 5.01527


Programa que calcula la raz ensima de un nmero


Escribe:
<HTML>
<SCRIPT LANGUAGE='JavaScript'>
// PROG029b.HTM
var ind,rad,resul
ind=parseFloat(prompt('ndice de la raz?',''));
rad=parseFloat(prompt('escribe el radicando',''));
resul=Math.pow(rad,1/ind)
alert('La raz '+ind+' de '+rad+' es igual a '+resul)
</SCRIPT>
</HTML>


Graba el programa en TuCarpeta con el nombre Prog029b.htm


Utiliza el programa anterior para calcular las siguientes expresiones:
raz 5-sima de 32
raz 7-sima de 4.7201
raz 0.5-sima de 2




Programa que calcula el nmero "e"
Recuerda que "e" es el lmite de la expresion: (1+1/n)n, cuando n tiende a infinito.


Escribe el siguiente programa:
<HTML>
<SCRIPT LANGUAGE='JavaScript'>
// PROG029c.HTM
var cad;
var salida='';
for(i=1;i<=5;i=i+1)
{
cad='n= '+i+'\t\te= '+Math.pow(1+1/i,i)+'\n';
salida=salida+cad;
}
for(i=100;i<=50000000000;i=i*10)
{
cad='n= '+i+'\t\te= '+Math.pow(1+1/i,i)+'\n';
salida=salida+cad;
}
salida=salida+'Verdadero valor de e ='+Math.E
alert(salida);
</SCRIPT>
</HTML>


Grabalo en TuCarpeta con el nombre Prog029c.htm y ejectalo.


Observa que Math.E nos da el nmero "e" con la maxima precision que admite el JavaScript.




Nmeros Aleatorios


Escribe el siguiente programa:
<HTML>
<SCRIPT LANGUAGE='JavaScript'>
// PROG029d.HTM
var a;
var x,y;
var salida='';
salida=salida+'5 nmeros aleatorios entre 0 y 1\n';
for(i=1;i<=5;i++)
{
salida=salida+Math.random()+'\n';
}
salida=salida+'\n\n5 nmeros aleatorios entre 3 y 7\n';
for(i=1;i<=5;i++)
{
salida=salida+(Math.round(7-3)*Math.random()+3)+'\n';
}
salida=salida+'\n\n5 nmeros aleatorios entre 15 y 70\n';
for(i=1;i<=5;i++)
{
salida=salida+(Math.round(70-15)*Math.random()+15)+'\n';
}
alert(salida);
alert('Vamos a ver 5 nmeros aleatorios entre los dos\nque t quieras');
x=parseFloat(prompt('Escribe el nmero menor (puede ser decimal)',''));
y=parseFloat(prompt('Escribe el nmero mayor (puede ser decimal)',''));
salida='';
salida=salida +'5 nmeros aleatorios entre '+x+' y '+y+'\n\n\n';
for(i=1;i<=5;i++)
{
a=Math.round(y-x)*Math.random()+x;
salida=salida+a+'\n';
}
alert(salida);
/* Si quieres nmeros aleatorios enteros basta
cambiar los parntesis de la siguiente forma:
Math.round((y-x)*Math.random()+x) */
salida='';
salida=salida+'150 nmeros enteros aleatorios entre 2 y 17\n';
for(i=1;i<=150;i++)
{
salida=salida+Math.round((17-2)*Math.random()+2)+' - ';
}
alert(salida);
</SCRIPT>
</HTML>


Grabalo en TuCarpeta con el nombre Prog029d.htm y ejectalo.






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


Escribe:
<HTML>
<SCRIPT LANGUAGE='JavaScript'>
// PROG029e.HTM
var x,num;
var i=0;
var control=0;
x=Math.round(9*Math.random()+1);
while(i<5)
{
i++;
num=parseInt(prompt('Escribe un entero entre 1 y 10, intento '+i,''));
if(num==x)
{
alert('Lo has acertado en '+i+' tentativas');
i=5;
control=1;
}
}
if(control==0)
{
alert('Lo siento pero se han acabado tus 'vidas', el nmero era '+x);
}
</SCRIPT>
</HTML>


Grabalo en TuCarpeta con el nombre Prog029e.htm y ejectalo varias veces.


Observa la utilidad de las variables control y i. Proximamente veremos una forma mas elegante de salir de una estructura while (o for).




Generalidades
JavaScript es un lenguaje de programacin ideado en 1995 en Netscape a partir de los lenguajes C, C++ y Java.
JavaScript es un lenguaje en el que se diferencian las minsculas y las maysculas (case sensitive). Tambin es un
lenguaje de formato libre, es decir, que se admiten espacios, tabuladores y comentarios en cualquier parte del cdigo.
Las palabras clave del lenguaje son reservadas, aunque cada grupo de alumnos slo ha de tener en cuenta las palabras
asignadas al grupo.
JavaScript es un lenguaje con estructura de bloques, que se definen mediante la utilizacin de las llaves { }. Cada
funcin es un bloque. Los nombres declarados dentro de una funcin son locales a dicha funcin. Los nombres
declarados fuera de todas las funciones son globales y pueden ser utilizados desde cualquier funcin.
En JavaScript es necesario declarar previamente las funciones antes de que se utilicen. Se permite la definicin de
funciones anidadas. Adems, JavaScript es un lenguaje con recursividad, por lo que cualquier funcin puede ser
recursiva. El paso de parmetros es siempre por valor.
Las sentencias finalizan en punto y coma o en salto de lnea. Cuando se quiere poner ms de una sentencia en una lnea,
es necesario poner un punto y coma para separarlas [el punto y coma es de implementacin opcional].
No es necesario considerar para el ejercicio de implementacin los elementos de JavaScript no mencionados en este
resumen.
Comentarios
En JavaScript hay dos tipos de comentarios [slo es obligatorio implementar uno de ellos]:
1. Se utilizan los caracteres /* para abrir el comentario, y */ para cerrarlo. No se admiten comentarios anidados. Los
comentarios pueden ocupar ms de una lnea y pueden ir colocados en cualquier parte del cdigo donde pueda ir un
espacio:
/* Comentario con apertura y cierre */
2. Los comentarios comienzan por los caracteres // y finalizan al acabar la lnea. Este tipo de comentario solo ocupa
una lnea y puede ir colocado en cualquier parte del cdigo donde pueda ir un espacio:
// Comentario de lnea
Constantes
Constantes enteras. Hay tres notaciones: decimal, octal y hexadecimal [slo es obligatorio implementar la primera]:
Decimal: 159
Octal (usando como prefijo un cero): 052
Hexadecimal (usando como prefijo un cero y una equis): 0x1E4
Constantes de cadenas de caracteres. Van encerradas entre comillas dobles ("Hola, mundo") o entre comillas simples
('Hola, mundo') [slo es obligatorio implementar una de ellas]. Nota: en el cdigo objeto se ha de utilizar el carcter
nulo (cuyo cdigo es 0) como carcter de fin de cadena.
Para representar caracteres especiales se utiliza una secuencia de escape que consiste en el carcter barra inversa
seguido de un carcter determinado. Algunos de estos caracteres son el salto de lnea (\n), el tabulador (\t), el carcter
nulo (\0), las comillas dobles (\"), la comilla (\') o el carcter de barra inversa (\\) [la implementacin de estos
caracteres especiales es opcional].
Constantes lgicas. Son las constantes true y false [es opcional implementar las palabras reservadas true y false].
Internamente, en el cdigo objeto se ha de considerar que false se habr traducido a cero y true a uno.
Operadores
Operadores aritmticos. Suma, resta, producto, divisin y mdulo: +, -, *, / y % [obligatorio implementar uno]. Se
aplican sobre datos enteros.
Tambin existen los operadores ms y menos unarios: +, - [implementacin opcional].
Operadores relacionales. Igual, distinto, menor, mayor, menor o igual, mayor o igual: ==, !=, <, >, <= y >= [obligatorio
implementar uno]. Se aplican sobre datos enteros.
Operadores lgicos. And, or y not: &&, || y ! [obligatorio implementar uno].
Auto-incrementos y auto-decrementos. ++ y -- (tanto prefijos, como sufijos) [implementacin obligatoria de uno de
ellos slo para los grupos que les corresponda]. Incrementan o decrementan el valor de la variable en una unidad:
a = j++ // si j vala 5, ahora a == 5 y j == 6
a = ++j // si j vala 5, ahora a == 6 y j == 6
Operador condicional. condicin ? exp1 : exp2. Si la condicin es cierta, devuelve exp1; en caso contrario,
devuelve exp2 [implementacin obligatoria slo para los grupos que les corresponda]:
max = (a > b) ? a : b
// Si a > b, entonces max == a, en caso contrario, max == b
Nota de implementacin: para facilitar la construccin de la gramtica, se recomienda realizar una simplificacin de la expresin condicional, de tal forma que se
adapte a una gramtica del siguiente tipo:
E -> (E) ? F : F | A
A -> E + T | T
T -> T * F | F
F -> id | (E) | nm | ...
Operador de asignacin con operacin. +=, -=, *=, /= y %= [implementacin obligatoria de uno de ellos slo para los
grupos que les corresponda]:
n += m /* es equivalente a n = n + m */
Operador de acceso a campos de un objeto. Operador punto [implementacin obligatoria para los grupos que tengan
objetos]:
c.campo /* accede al campo del objeto c */
Operador de acceso a elementos de un vector. Operadores corchetes [implementacin obligatoria slo para los
grupos con vectores]:
a = v[i+1] // accede al elemento i+1 del vector v y copia su valor en a
Operador de concatenacin de cadenas. Se utiliza el smbolo de la suma [implementacin obligatoria slo para los
grupos que les corresponda]:
a = 'hola, '
b = a + 'qu tal?' /* concatena las dos cadenas */
/* la variable b contendr la cadena: `hola, qu tal?
El operador + puede operar con enteros y cadenas mezclados. En este caso, existe coercin (conversin automtica de
tipos), convirtindose el entero a cadena y obtenindose como resultado una cadena:
a = "Tengo "
e = 77
b = a + e + " aos."
// se convierte e a "77" y se concatenan las tres cadenas
// la variable b contendr la cadena: `Tengo 77 aos.
Precedencia de operadores. En la tabla se muestra la precedencia de los operadores de la siguiente forma: los
operadores del mismo grupo tienen la misma precedencia y, conforme se desciende por la tabla, la precedencia
disminuye. En cualquier caso, el uso de parntesis permite alterar el orden de evaluacin de las expresiones.
Operadores Significado Asociatividad
.
()
[]
Referencia a un campo de un objeto
Llamada a funcin
Referencia a un elemento de un vector
Izquierda a derecha
!
++
--
+
-
No, negacin lgica (NOT)
Autoincremento
Autodecremento
Ms unario
Menos unario
Derecha a izquierda
*
/
%
Producto
Divisin
Mdulo
Izquierda a derecha
+
-
Suma y concatenacin
Resta
Izquierda a derecha
>
<
<=
>=
Mayor que
Menor que
Menor o igual que
Mayor o igual que
Izquierda a derecha
==
!=
Comparador de igualdad
Comparador de desigualdad
Izquierda a derecha
&& Y lgico (AND) Izquierda a derecha
|| O lgico (OR) Izquierda a derecha
? : Operador condicional Derecha a izquierda
=
op=
Asignacin
Asignacin con operacin
Derecha a izquierda
Identificadores
Los identificadores deben comenzar con una letra y pueden ir seguidos de cualquier nmero de letras, dgitos o
subrayados. Debe tenerse en cuenta que las maysculas y las minsculas son letras distintas.
Declaraciones
El lenguaje JavaScript no exige declaracin de las variables que se utilicen. En el caso de que se use un nombre de
variable que no ha sido declarado previamente, se considera que dicha variable es global. No se admite la redeclaracin
de nombres en un mismo mbito.
Para realizar una declaracin de una variable, se coloca la palabra var seguida del nombre de la variable, pero sin
indicar su tipo. Se puede poner una lista de variables separadas por comas [esta declaracin mltiple es opcional para la
implementacin]:
var var1
var var1, var2, var3 // se declaran las tres variables
Pueden realizarse declaraciones en cualquier lugar de un bloque de una funcin; en este caso, la variable ser visible
desde ese punto hasta el final de la funcin. Tambin pueden realizarse declaraciones fuera de las funciones en
cualquier parte del cdigo (variables globales), siendo solo visibles desde ese punto hasta el final del fichero.
A diferencia de otros lenguajes, una variable toma el tipo del valor que se le ha asignado, pudiendo variar su tipo
durante la ejecucin.
En una declaracin se puede inicializar la variable mediante el signo igual [opcional para la implementacin]:
var var4 = valor4, var5 = valor5
Si una variable no se inicializa cuando se declara, tomar el valor cero (es decir, el compilador realiza una inicializacin
por omisin).
El mbito de una variable ser global si no se ha declarado o si se declara fuera de cualquier funcin y tendr un mbito
local si se declara dentro del cuerpo de una funcin.
Tipos Bsicos
Se consideran nicamente los siguientes tipos bsicos para las variables y funciones: entero, lgico y cadena, aunque no
existen palabras reservadas para referirse a ellos
El lenguaje prev conversiones de tipos entre enteros y cadenas, de tal forma que un entero se convertir a cadena para
operar con otra cadena y, similarmente, una cadena se convertir a entero para operar con otro entero, dependiendo del
operador. As mismo, una cadena se tiene que convertir a entero cuando aparezca en una expresin donde se espera un
entero. Si una cadena que tiene que convertirse a entero no contuviera un nmero, deber producirse un error de
ejecucin.
En relacin con el tipo lgico, debe tenerse en cuenta que cualquier expresin que se evale como 0 se considera falsa,
y cualquier expresin que se evale con un valor distinto a 0 se considera verdadera.
El lenguaje dispone tambin de vectores y objetos que se explicarn en el apartado Tipos Compuestos.
Instrucciones de entrada/salida
La sentencia prompt (var) lee un nmero del teclado y lo almacena en la variable var.
La sentencia document.write (expresin_entera) evala la expresin e imprime el resultado por pantalla.
La sentencia document.write (expresin_cadena) evala la expresin e imprime la cadena resultante por pantalla.
Las sentencias de salida pueden incluir varios argumentos separados por comas, lo que permite agrupar en una nica
sentencia varias instrucciones de salida de la siguiente forma [es opcional implementar esto]:
document.write ('Qu ao naciste?')
prompt (a)
document.write ("Hola, tienes ", 2002 - a, " aos.")
// Imprime una cadena, un entero y una cadena
Funciones
Es necesario definir cada funcin antes de poder utilizarla. Para definir una funcin se pone la palabra function, el
nombre de la funcin y, entre parntesis, los nombres de los argumentos, seguido de un bloque entre llaves con el
cuerpo de la funcin:
function nombre (lista de argumentos)
{
sentencias
}
La lista de argumentos (que puede estar vaca) consta simplemente del nombre del argumento. Si hay ms de un
argumento, stos se separan por comas. A continuacin se muestran algunas cabeceras de funciones:
function f1 (p) // funcin con un argumento
function f2 () // funcin sin argumentos (parntesis obligatorios)
function f3 (a, b) // funcin con dos argumentos
La funcin puede devolver un valor de tipo entero o cadena, dependiendo de la expresin de la sentencia return (ver el
apartado de Sentencias).
JavaScript admite recursividad. Todos los grupos de trabajo han de considerarla en la implementacin. Las funciones
pueden ser recursivas, es decir, pueden llamarse a s mismas directa o indirectamente.
En cuanto al paso de parmetros, se pasan siempre por valor. Ejemplo:
function f (a, v) // funcin con dos parmetros por valor
JavaScript admite la definicin de funciones anidadas, es decir, que dentro de una funcin se puede definir otra funcin.
La ejecucin de estas funciones sigue la misma idea que la ejecucin del programa, es decir, sigue una ejecucin
secuencial y el cuerpo de una funcin slo se ejecuta cuando se invoca.
Dentro de una funcin f se tiene acceso a las variables que se hayan declarado ya en ella (locales), a sus argumentos, a
las variables y argumentos declaradas en las funciones en que f est anidada (no locales) y a las variables globales
(declaradas o no declaradas). Si en una funcin se declara una variable local o un argumento con el mismo nombre que
una variable global o que una variable no local, stas ltimas no son accesibles desde dicha funcin.
Sentencias
Sentencia de asignacin: identificador, igual, expresin: asigna al identificador el resultado de evaluar la expresin:
i = 8 + 6
Como ya se ha indicado, la sentencia de asignacin determina el tipo de la variable en ese punto. Cada variable tendr
el tipo del ltimo valor asignado. Ejemplos:
i = 123 // i ser una variable entera
document.write (i) // imprime el valor entero 123
i= "hola" // ahora i ser una variable cadena
document.write (i) // imprime el valor cadena "hola"
Sentencia de llamada a una funcin: nombre de la funcin, argumentos entre parntesis:
func () /* llamada a una funcin sin argumentos */
f2 (b, i - 8) /* llamada a una funcin con dos argumentos */
Deber comprobarse que los parmetros en la llamada coincidan en nmero con los de la declaracin.
Sentencia de retorno de una funcin: return. Si la funcin no devuelve ningn valor, puede llevar return o no. Si la
funcin va a devolver un valor, contar con una sentencia return seguida de una expresin:
return /* la funcin termina sin devolver ningn resultado */
return i / 2 /* la funcin termina y devuelve un entero */
return "hola " + nombre /* la funcin termina y devuelve una cadena */
Sentencia condicional if: Tiene dos formas: if (condicin) {sentencias1} e if (condicin) {sentencias1} else
{sentencias2}.
Si la condicin se evala como cierta se ejecutan las sentencias1; en caso contrario, se ejecutan las sentencias2 (si
existen, pues la parte del else es opcional):
if (a > b)
{
c = b
}
else
{
c = a; prompt (d)
}
Sentencia repetitiva while: La sintaxis es: while (condicin) {sentencias}
Se evala la condicin y, si resulta ser cierta, se ejecutan las sentencias. Este proceso se repite hasta que
la condicin sea falsa:
while (a)
{
a--
c *= b
} /* mientras que a no sea 0... */
Sentencia repetitiva do while: La sintaxis es: do {sentencias} while (condicin)
Se ejecutan las sentencias, se evala la condicin y, si resulta ser cierta, se repite este proceso hasta que
la condicin sea falsa:
do
{
a++; c *= b
} while (a < b)
Sentencia repetitiva for: La sintaxis es: for (inicializacin; condicin; actualizacin) {sentencias}.
Primero se ejecuta la inicializacin. A continaucin, se evala la condicin y, si sta es cierta, se ejecutan
las sentencias y se ejecuta la actualizacin; este proceso se repite hasta que la condicin sea falsa:
for (i = 1; i < 10; i++)
{
f *= i
}
Sentencia de seleccin switch: La sintaxis de la sentencia de seleccin mltiple es:
switch (expresin_entera)
{
case etiqueta1: sentencias1
case etiqueta2: sentencias2
. . .
default: sentenciasn
}
Se evala la expresin entera, se busca la etiqueta que coincida con el resultado y se ejecutan sus sentencias hasta el
final de la sentencia switch. Puede haber mltiples sentencias en cada case. Si no se encuentra la etiqueta, se ejecutan
las sentencias asociadas a default [default es opcional para la implementacin].
switch (dia)
{
case 1: document.write ("lunes")
case 2: document.write ("martes")
case 3: document.write ("mircoles")
case 4: document.write ("jueves")
case 5: document.write ("viernes")
default: document.write ("fiesta")
} /* si dia == 4, se imprimir: jueves viernes fiesta */
Sentencia break: aborta la ejecucin de un bucle o un switch [obligatoria slo para los grupos que tengan la
sentencia switch]:
switch (dia)
{
case 1: document.write ("lunes")
break
case 2: document.write ("martes")
break
case 3: document.write ("mircoles"); break
case 4: document.write ("jueves"); break
case 5: document.write ("viernes"); break
default: document.write ("fiesta")
} /* si dia == 4, se imprimir: jueves */
Tipos Compuestos
Vectores: Para usar un vector es obligatorio declarar una variable de tipo vector. Su declaracin es de la siguiente
forma [implementacin obligatoria para algunos grupos]:
var nombre_var = new Array (tamao)
Los ndices del vector van desde cero hasta tamao-1. Para acceder a un elemento del vector se usan el operador
corchete:
var v = new Array (15)
// Se ha declarado el vector v de 15 elementos.
// Los ndices irn desde 0 hasta 14
v[5] = 2 // se almacena un entero
v[v[5] - 1] = "H" // se almacena una cadena
v[v["5"] + 1] = "O" // "5" se convierte a entero
document.write (v["2"-1], v[5], v[3]) /* escribe H2O */
Un vector se puede rellenar en una nica sentencia indicando todos sus valores entre llaves y separndolos por comas:
var primos = new Array (5)
primos = {1, 2, 3, 5, 7}
Con respecto a las funciones, los vectores se pueden pasar como argumentos a las funciones, pero una funcin no puede
devolver un vector. En la declaracin de la funcin debe indicarse que recibe un vector como parmetro, pero no hay
que decir la dimensin:
function f (v[]) // declara la funcin f con parmetro un vector v
Objetos: Un objeto es una estructura de datos que contiene varios campos donde almacenar informacin. Para declarar
un objeto, primero hay que definir su constructor de la siguiente forma [implementacin obligatoria para algunos
grupos]:
function nombre_obj (vcampo1, vcampo2...)
// El objeto se llama nombre_obj
// Los parmetros sern los valores iniciales de los campos
{
this.campo1 = vcampo1 // El campo1 se inicializa con el valor vcampo1
this.campo2 = vcampo2 // El campo2 se inicializa con el valor vcampo2
...
}
Para crear una variable del tipo objeto definido e inicializar sus valores se emplea la notacin (se llama a la funcin
constructora):
var objeto = new nombre_obj (valores)
// La variable objeto ser del tipo nombre
// y estar inicializada con los valores enviados
Para utilizar los campos de un objeto se utiliza el operador punto:
objeto.campo1 = expresin
A continuacin se muestra un breve ejemplo de definicin de un objeto y su utilizacin:
function DNI (nom, ed, num, sex) // se declara el objeto DNI
{
this.nombre=nom // se define el campo nombre y se inicializa
this.edad=ed // se define el campo edad y se inicializa
this.numero=num // se define el campo numero y se inicializa
if (sex=1) // se define el campo sexo y se inicializa
{
this.sexo="hombre"
}
else
{
this.sexo="mujer"
}
}
...
var obj=new DNI ("Pepe", 0, n, 1)
// se declara la variable obj de tipo DNI y se inicializa
obj.edad = 2001-1973 // se accede al campo edad
document.write (obj.nombre, obj.numero)
// se accede a los campos nombre y numero
Los objetos se pueden pasar como argumentos a las funciones y pueden ser devueltos por las funciones
[implementacin opcional].
Estructura de un Programa JavaScript
Para el ejercicio de implementacin de Compiladores debe considerarse que un programa en JavaScript estar
compuesto de un nico fichero con declaraciones de variables globales, sentencias y declaraciones de funciones en
cualquier orden.
La ejecucin comienza por la primera sentencia que se encuentre en el fuente y prosigue secuencialmente hasta el final
del fichero. Hay que tener en cuenta que una funcin se ejecutar nicamente cuando sea invocada.
Aqu se puede obtener un Fact.javascript ejemplo de un fichero vlido para el ejercicio de implementacin de
Compiladores.

Вам также может понравиться