You are on page 1of 20

DESARROLLO DE SOFTWARE VI CICLO

PROGRAMACIN ORIENTADA A OBJETOS EN JAVASCRIPT.

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:

var s=new suma();


s.primervalor(10);
s.segundovalor(20);
document.write('La suma de los dos valores es:'+s.retornarresultado());

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;
}

INSTRUCTOR: CLAROS VASQUEZ Carlos Orlando cclaros@senati.pe Pg. N 01


DESARROLLO DE SOFTWARE VI CICLO

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>

INSTRUCTOR: CLAROS VASQUEZ Carlos Orlando cclaros@senati.pe Pg. N 02


DESARROLLO DE SOFTWARE VI CICLO

<title>Problema 02</title>
<script type="text/javascript">

//clase Numeroquiniela ************************************************


function Numeroquiniela(nombre)
{
this.nombre=nombre;
this.cargarnumero=cargarnumero;
this.verificarsigano=verificarsigano;
}

function cargarnumero()
{
this.numero=prompt("Que nmero de quiniela quiere?","");
}

function verificarsigano(num)
{
if (this.numero==num)
return true;
else
return false;
}

//clase Bolillero ************************************************


function Bolillero()
{
this.numero=-1;
this.sortear=sortear;
}

function sortear()
{
this.numero=parseInt(Math.random()*10)+1;
}

</script>
</head>
<body>

<script type="text/javascript">

INSTRUCTOR: CLAROS VASQUEZ Carlos Orlando cclaros@senati.pe Pg. N 03


DESARROLLO DE SOFTWARE VI CICLO

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:

INSTRUCTOR: CLAROS VASQUEZ Carlos Orlando cclaros@senati.pe Pg. N 04


DESARROLLO DE SOFTWARE VI CICLO

ARRAY: DIFERENTES FORMAS DE CREARLOS

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');

Creacin e inicializacin de un array utilizando los corchetes:

var vector5=[1,70,'juan'];

Para probar las distintas formas de creacin de array implementaremos un


programa que cree 5 Array, cargue algunos elementos y muestre la primer
componente de cada uno de ellos:

INSTRUCTOR: CLAROS VASQUEZ Carlos Orlando cclaros@senati.pe Pg. N 05


DESARROLLO DE SOFTWARE VI CICLO

CDIGO FUENTE:

<html>
<head>
</head>
<body>

<script type="text/javascript">

var vector1=new Array();


vector1[0]=1;

var vector2=[];
vector2[0]=1;

var vector3=new Array(5);


vector3[0]=1;

var vector4=new Array(1,70,'juan');


var vector5=[1,70,'juan'];

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:

INSTRUCTOR: CLAROS VASQUEZ Carlos Orlando cclaros@senati.pe Pg. N 06


DESARROLLO DE SOFTWARE VI CICLO

PROBLEMA: Confeccionar un programa que defina dos array, en uno almacenar


los das de la semana y en otro los nombres de los meses. Emplear dos sintaxis
diferentes para crear e inicializar sus componentes.

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:

INSTRUCTOR: CLAROS VASQUEZ Carlos Orlando cclaros@senati.pe Pg. N 07


DESARROLLO DE SOFTWARE VI CICLO

ARRAY: MTODOS PUSH Y POP

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

Automticamente cuando llamamos al mtodo push el valor que le pasamos en


el parmetro se almacena en el vector y se incrementa el atributo length.

Podemos inclusive llamar al mtodo push pasando ms de 1 parmetro:

INSTRUCTOR: CLAROS VASQUEZ Carlos Orlando cclaros@senati.pe Pg. N 08


DESARROLLO DE SOFTWARE VI CICLO

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.

Si llamamos al mtodo pop y el vector est vaco retorna el valor undefined.

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);

INSTRUCTOR: CLAROS VASQUEZ Carlos Orlando cclaros@senati.pe Pg. N 09


DESARROLLO DE SOFTWARE VI CICLO

}
} 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:

INSTRUCTOR: CLAROS VASQUEZ Carlos Orlando cclaros@senati.pe Pg. N 010


DESARROLLO DE SOFTWARE VI CICLO

PROBLEMA: Crear un vector con 5 valores aleatorios comprendidos entre 1 y


1000. Luego extraer los dos ltimos elementos sumarlos y mostrarlos. Imprimir
tambin el tamao final del vector.
SOLUCIN:

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

INSTRUCTOR: CLAROS VASQUEZ Carlos Orlando cclaros@senati.pe Pg. N 011


DESARROLLO DE SOFTWARE VI CICLO

ARRAY: MTODOS UNSHIFT Y SHIFT

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);

INSTRUCTOR: CLAROS VASQUEZ Carlos Orlando cclaros@senati.pe Pg. N 012


DESARROLLO DE SOFTWARE VI CICLO

}
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:

ARRAY: INSTRUCCIN DELETE

INSTRUCTOR: CLAROS VASQUEZ Carlos Orlando cclaros@senati.pe Pg. N 013


DESARROLLO DE SOFTWARE VI CICLO

Javascript tiene una instruccin que permite eliminar un elemento de un vector


llamada delete.

Al comando delete le pasamos el nombre del vector y la posicin que queremos


borrar:

delete vec[3];

Con el comando anterior estamos eliminando la componente de la posicin 3 del


vector. Cuando se elimina una componente no se modifica la propiedad length y
el vector se convierte en no denso. Si luego tratamos de acceder a dicha posicin
el resultado es el valor undefined.

Problema: Crear un vector de 10 elementos y almacenar valores aleatorios en el


mismo. Luego borrar los elementos de las posiciones pares e imprimir el vector
antes y despus de borrar las componentes, inclusive tratar de acceder a las
componentes que acabamos de borrar.

<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];

INSTRUCTOR: CLAROS VASQUEZ Carlos Orlando cclaros@senati.pe Pg. N 014


DESARROLLO DE SOFTWARE VI CICLO

}
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:

ARRAY: MTODOS SORT Y REVERSE

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++)

INSTRUCTOR: CLAROS VASQUEZ Carlos Orlando cclaros@senati.pe Pg. N 015


DESARROLLO DE SOFTWARE VI CICLO

{
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>');

INSTRUCTOR: CLAROS VASQUEZ Carlos Orlando cclaros@senati.pe Pg. N 016


DESARROLLO DE SOFTWARE VI CICLO

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:

Problema : Crear un vector con 10 elementos enteros con valores aleatorios.


Ordenarlos de menor a mayor. Luego invertir el vector para verlo de mayor a
menor.

<html>
<head>
</head>
<body>

INSTRUCTOR: CLAROS VASQUEZ Carlos Orlando cclaros@senati.pe Pg. N 017


DESARROLLO DE SOFTWARE VI CICLO

<script type="text/javascript">

var vec=new Array(10);


var f;
for(f=0;f<vec.length;f++)
{
vec[f]=parseInt(Math.random()*1000);
}
vec.sort(function(v1,v2) {
if (v1>v2)
return 1;
else
return 0;
});
document.write('Vector ordenado en forma ascendente<br>');
for(f=0;f<vec.length;f++)
{
document.write(vec[f]+'<br>');
}
vec.reverse();
document.write('Vector ordenado en forma descendente<br>');
for(f=0;f<vec.length;f++)
{
document.write(vec[f]+'<br>');
}

</script>

</body>
</html>

El resultado de ejecutar el programa es:

Vector ordenado en forma ascendente


32
131
329
364
488
515

INSTRUCTOR: CLAROS VASQUEZ Carlos Orlando cclaros@senati.pe Pg. N 018


DESARROLLO DE SOFTWARE VI CICLO

860
864
919
919
Vector ordenado en forma descendente
919
919
864
860
515
488
364
329
131
32

PROBLEMA: Cargar los sueldos de un conjunto de empleados. Finalizar la carga


al ingresar cero. Mostrar por pantalla los sueldos ordenados de mayor a menor.
SOLUCIN:

<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

INSTRUCTOR: CLAROS VASQUEZ Carlos Orlando cclaros@senati.pe Pg. N 019


DESARROLLO DE SOFTWARE VI CICLO

return 0;
});

document.write('Sueldos ordenados de menor a mayor<br>');


var f;
for(f=0;f<sueldos.length;f++)
{
document.write(sueldos[f]+'<br>');
}
sueldos.reverse();
document.write('Sueldos ordenados de mayor a menor<br>');
for(f=0;f<sueldos.length;f++)
{
document.write(sueldos[f]+'<br>');
}
</script>
</body>
</html>

EJECUCIN:

INSTRUCTOR: CLAROS VASQUEZ Carlos Orlando cclaros@senati.pe Pg. N 020

You might also like