Professional Documents
Culture Documents
PROBLEMA 01: Confeccionar una clase llamada suma, que contenga dos
atributos (valor1, valor2) y tres mtodos: cargarvalor1, cargarvalor2 y
retornarresultado. Implementar la clase suma. La definicin de un objeto
de la clase que deben plantear es:
SOLUCIN:
<html>
<head>
<script type="text/javascript">
function Suma(valor1,valor2)
{
this.valor1=valor1;
this.valor2=valor2;
this.primerValor=primerValor;
this.segundoValor=segundoValor;
this.retornarResultado=retornarResultado;
}
function primerValor(valor1)
{
this.valor1=valor1;
}
function segundoValor(valor2)
{
this.valor2=valor2;
}
function retornarResultado()
{
return this.valor1+this.valor2;
}
</script>
</head>
<body>
<script type="text/javascript">
var suma1;
suma1=new Suma(5,10);
document.write('La suma de 5 y 10
es:'+suma1.retornarResultado()+'<br>');
suma1.primerValor(70);
suma1.segundoValor(30);
document.write('La suma de 70 y 30
es:'+suma1.retornarResultado()+'<br>');
</script>
</body>
</html>
EJECUCIN:
PROBLEMA 02:
SOLUCIN:
<html>
<head>
<title>Problema 02</title>
<script type="text/javascript">
function cargarnumero()
{
this.numero=prompt("Que nmero de quiniela quiere?","");
}
function verificarsigano(num)
{
if (this.numero==num)
return true;
else
return false;
}
function sortear()
{
this.numero=parseInt(Math.random()*10)+1;
}
</script>
</head>
<body>
<script type="text/javascript">
var numeroquiniela1;
numeroquiniela1=new Numeroquiniela("juan");
numeroquiniela1.cargarnumero();
var numeroquiniela2;
numeroquiniela2=new Numeroquiniela("ana");
numeroquiniela2.cargarnumero();
var bolillero;
bolillero=new Bolillero();
bolillero.sortear();
document.write('Numero sorteado:' + bolillero.numero + '<br>');
document.write(numeroquiniela1.nombre + ' eligi ' +
numeroquiniela1.numero +'<br>');
document.write(numeroquiniela2.nombre + ' eligi ' +
numeroquiniela2.numero +'<br>');
if (numeroquiniela1.verificarsigano(bolillero.numero))
{
document.write(numeroquiniela1.nombre + ' a ganado <br>');
}
if (numeroquiniela2.verificarsigano(bolillero.numero))
{
document.write(numeroquiniela2.nombre + ' a ganado <br>');
}
</script>
</body>
</html>
EJECUCIN:
Como hemos visto un array o arreglo es una estructura de datos que permite
almacenar elementos y luego acceder a los mismos por medio de subndices.
Recordemos que Javascript administra los array mediante un objeto especializado
llamado Array.
Un array puede almacenar en sus componentes elementos de datos distintos y
su tamao puede crecer a lo largo de la ejecucin del programa.
Tenemos muchas formas de inicializar un array en Javascript segn nuestra
situacin particular, veamos con ejemplos diferentes formas:
Creacin de un array sin elementos:
var vector1=new Array();
Otra sintaxis para crear un array sin elementos:
var vector2=[];
Creacin de un array indicando la cantidad de componentes iniciales que podr
almacenar:
var vector3=new Array(5);
Creacin e inicializacin llamando al constructor Array y pasando como
parmetros los valores a almacenar en las componentes:
var vector4=new Array(1,70,'juan');
var vector5=[1,70,'juan'];
CDIGO FUENTE:
<html>
<head>
</head>
<body>
<script type="text/javascript">
var vector2=[];
vector2[0]=1;
document.write(vector1[0]+'<br>');
document.write(vector2[0]+'<br>');
document.write(vector3[0]+'<br>');
document.write(vector4[0]+'<br>');
document.write(vector5[0]+'<br>');
</script>
</body>
</html>
EJECUCIN:
SOLUCIN:
<html>
<head>
</head>
<body>
<script type="text/javascript">
var meses=new
Array('enero','febrero','marzo','abril','mayo','junio','julio','agosto','septiembre','oct
ubre','noviembre','diciembre');
var dias=['lunes','martes','miercoles','jueves','viernes','sbado','domingo'];
var f;
for(f=0;f<meses.length;f++)
{
document.write(meses[f]+'<br>');
}
document.write('<br>');
for(f=0;f<dias.length;f++)
{
document.write(dias[f]+'<br>');
}
</script>
</body>
</html>
EJECUCIN:
Como los Array en Javascript son objetos, los mismos tienen una serie de
mtodos que nos facilitan trabajar con ellos.
Para insertar elementos en un vector hemos visto que con solo asignar un valor
al vector en un determinado ndice el dato queda almacenado y eventualmente
el atributo length modificado:
var vec=[];
vec[0]=10;
vec[1]=20;
document.write(vec.length); //imprime 2
Esta sintaxis tenemos que tener cuidado como variamos el subndice para no
dejar componentes vacas si queremos implementar un array denso.
Una variante para resolver este mismo problema es utilizar el mtodo push del
objeto Array. Este mtodo aade el valor al final del vector:
var vec=[];
vec.push(10);
vec.push(20);
document.write(vec.length); //imprime 2
var vec=[];
vec.push(10,20);
document.write(vec.length); //imprime 2
El mtodo inverso llamado pop extrae el ltimo elemento del Array y decrementa
en uno el atributo length:
var vec=[];
vec.push(10,20,30,40);
document.write(vec.length+'<br>'); //imprime 4
vec.pop();
document.write(vec.length+'<br>'); //imprime 3
document.write(vec.pop()+'<br>'); //imprime un 30
document.write(vec.length+'<br>'); //imprime 2
El mtodo pop() adems de eliminar el ltimo elemento del vector retorna el valor
almacenado en dicha componente.
Problema : Realizar la carga de sueldos por teclado hasta que se ingrese el cero.
Almacenar todos los valores ingresados en un vector empleando el mtodo push.
Mostrar la suma de sueldos ingresados.
CDIGO FUENTE:
<html>
<head>
</head>
<body>
<script type="text/javascript">
var sueldos=[];
var monto;
do {
monto=prompt('Ingrese el sueldo (0 para finalizar):','');
monto=parseInt(monto);
if (monto!=0)
{
sueldos.push(monto);
}
} while (monto!=0);
var suma=0;
for(var f=0;f<sueldos.length;f++)
{
suma=suma+sueldos[f];
}
document.write('El total en sueldos ingresado es:'+suma);
</script>
</body>
</html>
Ejecucin:
<html>
<head>
</head>
<body>
<script type="text/javascript">
var vec=[];
var f;
for(f=0;f<5;f++)
{
var nro=1+(Math.random()*1000);
vec.push(parseInt(nro));
}
for(f=0;f<vec.length;f++)
{
document.write(vec[f]+'<br>');
}
var sumaultimos=vec.pop()+vec.pop();
document.write('La suma de las dos ltimas componentes
es:'+sumaultimos+'<br>');
document.write('Tamao final del vector'+vec.length+'<br>');
document.write('Elementos restantes del vector<br>');
for(f=0;f<vec.length;f++)
{
document.write(vec[f]+'<br>');
}
</script>
</body>
</html>
EJECUCIN:
As como el mtodo push inserta un elemento al final del vector el mtodo unshift
inserta un elemento al principio el vector y desplaza el resto una posicin.
El mtodo shift extrae el primer elemento del vector y desplaza hacia delante el
resto de elementos del vector.
Problema: Ingresar valores por teclado. Los valores menores a 100 ingresarlos al
principio del vector y los mayores o iguales a 100 ingresarlos al final. Se finaliza
la carga de datos al ingresar el cero. Cuando sale del do/while extraer el ltimo
valor ingresado que es el cero del vector. Imprimir el vector en la pgina.
SOLUCIN:
<html>
<head>
</head>
<body>
<script type="text/javascript">
var vec=[];
var f;
var valor;
do {
valor=prompt('Ingresar un valor (0 para finalizar):','');
valor=parseInt(valor);
if (valor<100)
{
vec.unshift(valor);
}
else
{
vec.push(valor);
}
} while (valor!=0);
vec.shift();
for(f=0;f<vec.length;f++)
{
document.write(vec[f]+'<br>');
}
</script>
</body>
</html>
EJECUCIN:
delete vec[3];
<html>
<head>
</head>
<body>
<script type="text/javascript">
var vec=[];
var f;
for(f=0;f<10;f++)
{
var valor=parseInt(Math.random()*1000);
vec.push(valor);
}
document.write('Vector antes de borrar<br>');
for(f=0;f<10;f++)
{
document.write(vec[f]+'<br>');
}
for(f=0;f<10;f=f+2)
{
delete vec[f];
}
document.write('Vector luego de borrar las posiciones pares<br>');
for(f=0;f<10;f++)
{
document.write(vec[f]+'<br>');
}
</script>
</body>
</html>
EJECUCIN:
Otro mtodo muy til de la clase Array es sort. La sintaxis ms sencilla y por
defecto es para ordenar una lista de string:
<html>
<head>
</head>
<body>
<script type="text/javascript">
var nombres=['marcos','ana','luis','jorge','carlos'];
var f;
document.write('Vector antes de ordenarlo<br>');
for(f=0;f<nombres.length;f++)
{
document.write(nombres[f]+'<br>');
}
nombres.sort();
document.write('Vector despus de ordenarlo<br>');
for(f=0;f<nombres.length;f++)
{
document.write(nombres[f]+'<br>');
}
</script>
</body>
</html>
EJECUCIN:
Para ordenar una lista de enteros se complica el algoritmo ya que debemos pasar
al mtodo sort una funcin annima indicando como implementar la
comparacin entre elementos:
<html>
<head>
</head>
<body>
<script type="text/javascript">
var vec=[100,5,60,3,90];
var f;
document.write('Vector antes de ordenarlo<br>');
for(f=0;f<vec.length;f++)
{
document.write(vec[f]+'<br>');
}
vec.sort(function(v1,v2) {
if (v1>v2)
return 1;
else
return 0;
});
document.write('Vector despus de ordenarlo<br>');
for(f=0;f<vec.length;f++)
{
document.write(vec[f]+'<br>');
}
</script>
</body>
</html>
EJECUCIN:
<html>
<head>
</head>
<body>
<script type="text/javascript">
</script>
</body>
</html>
860
864
919
919
Vector ordenado en forma descendente
919
919
864
860
515
488
364
329
131
32
<html>
<head>
</head>
<body>
<script type="text/javascript">
var sueldos=[];
var valor;
do {
valor=prompt('Ingrese el sueldo (cero para finalizar)','');
valor=parseInt(valor);
if (valor!=0)
sueldos.push(valor);
} while (valor!=0);
sueldos.sort(function(x,y) {
if (x>y)
return 1;
else
return 0;
});
EJECUCIN: