Diferència entre revisions de la pàgina «Solucio Yahoo rellotge»

De wikiserver
Dreceres ràpides: navegació, cerca
Línia 222: Línia 222:
 
var that=this;
 
var that=this;
 
 
 
 
setInterval(function () { that.hola(); }, time*1000);
+
setInterval(function () { that.hola(); }, time*1000);   //hola es una funció d'exemple
  
 
};
 
};
Línia 240: Línia 240:
  
  
'''BENDER'''
+
'''Solució BENDER'''
  
 
<source lang="java">
 
<source lang="java">

Revisió del 14:03, 18 nov 2014

SOLUCIÓ YAHOO

function Yahoo(){

	var numeros = "";


	this.seguent = function(numeros){

		switch(numeros){
		
			case "cero":
				return "un";								
			break;

			case "un":
				return "dos";								
			break;

			case "dos":
				return "tres";
			break;

			case "tres":
				return "quatre";
			break;

			case "quatre":
				return "molts";
			break;

			case "molts":
				return "molts";
			break;

			case "desconegut":
				return "desconegut";
			break;

			default:

				return "desconegut";


		}//cerrar switch
		
	}; //cerrar this.seguent


	this.suma = function(){

		var numero = "";
		var x = "";

		if(arguments.length==0){
			return "desconegut";
		}
		else if(arguments.length==1){
			return arguments[0];
		}
		else{
		
			numero = arguments[0];
			x = arguments[1];

			switch(numero){
			
				case "cero":
					return this.suma(x);								
				break;
				case "un":
					return this.seguent(x);								
				break;
				case "dos":			
					return this.seguent(this.seguent(x));
				break;
				case "tres":
					return this.seguent(this.seguent(this.seguent(x)));
				break;
				case "quatre":
					return this.seguent(this.seguent(this.seguent(this.seguent(x))));
				break;
				case "molts":
					return "molts";
				break;
				case "desconegut":
					return "desconegut";
				break;
				default:
					return "desconegut";

		}//cerrar switch


		} //cerrar else



	}; //cerrar this.suma



/*Otra forma de hacerlo es sustituir la función de sumar sobrecargada por esta otra*/

function afegirMetode(objecte, nom, funcio){
    var old = objecte[nom];
    objecte[nom] = function(){
                if(funcio.length == arguments.length)   
                    return funcio.apply(this, arguments);
                else if (typeof old == 'function')
                    return old.apply(this, arguments);
        };
}
 
 

afegirMetode(this, "suma", function(){

	return "desconegut";
});

afegirMetode(this, "suma", function(x){

	return arguments[0];
});

afegirMetode(this, "suma", function(x){

	return arguments[0];
});

afegirMetode(this, "suma", function(numero,x){

switch(numero){
             
                case "cero":
                    return this.suma(x);                                
                break;
                case "un":
                    return this.seguent(x);                             
                break;
                case "dos":         
                    return this.seguent(this.seguent(x));
                break;
                case "tres":
                    return this.seguent(this.seguent(this.seguent(x)));
                break;
                case "quatre":
                    return this.seguent(this.seguent(this.seguent(this.seguent(x))));
                break;
                case "molts":
                    return "molts";
                break;
                case "desconegut":
                    return "desconegut";
                break;
                default:
                    return "desconegut";

				}
		});



*/

} //cerrar yahoo

var yahoo1 = new Yahoo();

alert(yahoo1.seguent("desconegut"));
alert(yahoo1.seguent("cero"));
alert(yahoo1.seguent("un"));
alert(yahoo1.seguent("dos"));
alert(yahoo1.seguent("tres"));
alert(yahoo1.seguent("quatre"));
alert(yahoo1.seguent("molts"));
alert(yahoo1.seguent("seis"));

alert(yahoo1.suma());
alert(yahoo1.suma("un"));
alert(yahoo1.suma("cero","dos"));
alert(yahoo1.suma("quatre","dos"));
alert(yahoo1.suma("un","dos"));
alert(yahoo1.suma("desconegut","tres"));
alert(yahoo1.suma("cero","un"));
alert(yahoo1.suma("quatre","cero"));
alert(yahoo1.suma("quatre","un"));
alert(yahoo1.suma("tres","un"));
alert(yahoo1.suma("tres","cero"));
alert(yahoo1.suma("tres","dos"));
alert(yahoo1.suma("un","desconegut"));


SOLUCIO RELLOTGE

function Rellotge(){
	var rellotge;
	var rellotgeSec;
	var tempsFun = 0;
	this.ContructorRellotge = function(){
		rellotge = new Date();
	;
	this.GetTime = function(){
		rellotgeSec = new Date();
		var timeMili = rellotgeSec.getTime() - rellotge.getTime();
		var seg = timeMili / 1000;
		return tempsFun + seg;
		
	this.StopTime = function(){
		tempsFun = this.GetTime();
		rellotge = null;
	};
	this.StartTime = function(){
		rellotge = new Date();
	};
	this.setFunctionOnTime =function(time,funcion){
		var that=this;
 	
	setInterval(function () { that.hola(); }, time*1000);   //hola es una funció d'exemple

	};
	
       this.hola=function(){

       alert("hola mundo");
       };
}

var rellotge = new Rellotge();
rellotge.ConstructorRellotge();
alert(rellotge.GetTime());


Solució BENDER

function afegirMetode(objecte, nom, funcio){
	var old = objecte[nom];
	objecte[nom] = function(){
				if(funcio.length == arguments.length)	
					return funcio.apply(this, arguments);
				else if (typeof old == 'function')
					return old.apply(this, arguments);
		};
}






var Bender = {};

afegirMetode(Bender, 'divideix', function(cadena)
{
	//si ens passen la cadena buida retornarem un missatge de error 
	//si nomes passem una lletra retornem la mateixa lletra perque no es pot dividir
			

	if(cadena.length==0)
	{
		return "no pots pasar una cadena buida";
	}
	else if(cadena.length==1)
	{
		return "H";
	}

	var numero=cadena.length/2;
		
	var nova=[];
	
	nova[0]=cadena.substring(0,numero);
	nova[1]=cadena.substring(numero); //aixo es fins el final de la cadena

	return nova;


}



);

afegirMetode(Bender, 'divideix', function(cadena,cadena2)
{

	//si ens passen la cadena buida retornarem un missatge de error 
	//si nomes passem una lletra retornem la mateixa lletra perque no es pot dividir


	
	if(cadena.length==0 || cadena2.length==0)
	{
		return "no pots pasar una cadena buida";
	}
	else if(cadena.length==1 || cadena.length==1)
	{
		return "no pots dividir la cadena per la metiat nomes has pasat un parametre";
	}

	var numero=cadena.length/2;
	var numero2=cadena2.length/2;
	
	if(numero!=numero2)
	{
		return "han de tenir el mateix tamany si no es poden dividir";
	}
	
	var nova=[];
	
	nova[0]=cadena2.substring(numero);
	nova[1]=cadena.substring(0,numero); //aixo es fins el final de la cadena


	var nova2=[];
	
	nova2[0]=cadena2.substring(0,numero);
	nova2[1]=cadena.substring(numero); //aixo es fins el final de la cadena



	var cadena_final=[];
	cadena_final[0]=nova[0]+nova[1];
	cadena_final[1]=nova2[0]+nova2[1];

	return cadena_final;


}



);

afegirMetode(Bender, 'divideix', function(cadena,cadena2,num)
{
	// les primers posicions ocupen una posicio i les ultimes els hi casquetem totes les posicions 	


	if(cadena.length==0 || cadena2.length==0)
	{
		return "no pots pasar una cadena buida";
	}
	else if(cadena.length==1 || cadena.length==1)
	{
		return "no pots dividir la cadena per la metiat nomes has pasat un parametre";
	}

	var numero=cadena.length/2;
	var numero2=cadena2.length/2;
	
	if(numero!=numero2)
	{
		return "han de tenir el mateix tamany si no es poden dividir";
	}
	

	//ara tinc que tallar els trossos 

	var i=0;
	var nova=[];
	var nova2=[];	

	while(i<num)
	{
		if(i+1==num) // aixi la ultima posicio els fiquem tots aixi es mes senzill 
		{
			nova[i]=cadena.substring(i);
			nova2[i]=cadena2.substring(i);

		}
		else
		{
			nova[i]=cadena[i]
			nova2[i]=cadena2[i];
		}
		i=i+1;
	}

	

	var trasnformacio="";
	var i=0;
	while(i<num)
	{
		trasnformacio=trasnformacio+ nova[i]+nova2[i]

		i=i+2;
	}
	

	var trasnformacio2="";
	var i=1;
	while(i<num)
	{
		trasnformacio2=trasnformacio2+ nova[i]+nova2[i]

		i=i+2;
	}
	


	return trasnformacio + "//"+ trasnformacio2;


}



);


document.write("--------------------------------<br>");
document.write("Bender.divideix(HOLA)===="+Bender.divideix("HOLA")+"<br>");
document.write("Bender.divideix(HOLA,ADEU)===="+Bender.divideix("HOLA","ADEU")+"<br>");
document.write("Bender.divideix(HOLA,ADEU,4)===="+Bender.divideix("HOLA","ADEU",4)+"<br>");
document.write("Bender.divideix(HOLA,ADEU,2)===="+Bender.divideix("HOLA","ADEU",2)+"<br>");