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

De wikiserver
Dreceres ràpides: navegació, cerca
 
(Hi ha 2 revisions intermèdies del mateix usuari que no es mostren)
Línia 195: Línia 195:
  
 
<source lang="java">
 
<source lang="java">
function Rellotge(){
+
      function Rellotge() {
var rellotge;
+
                var rellotge;
var rellotgeSec;
+
                var rellotgeSec;
var tempsFun = 0;
+
                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.ContructorRellotge = function () {
+
                    rellotge = new Date();
      this.hola=function(){
+
                };
  
      alert("hola mundo");
+
                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) {
 +
                    var that = this;
  
var rellotge = new Rellotge();
+
                    setInterval(function () {
rellotge.ConstructorRellotge();
+
                        that.hola();
alert(rellotge.GetTime());
+
                    }, time * 1000);   //hola es una funció d'exemple
  
 +
                };
  
</source>
+
                this.hola = function () {
  
 +
                    alert("hola mundo");
 +
                };
 +
            }
  
'''Solució BENDER'''
+
            var rellotge = new Rellotge();
 +
            rellotge.ContructorRellotge();
 +
            alert(rellotge.GetTime());
 +
            rellotge.setFunctionOnTime(2);
  
<source lang="java">
+
/**OTRA FORMA*/
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);
 
};
 
}
 
  
 +
function Rellotge() {
 +
var rellotge;
 +
var rellotgeSec;
 +
var tempsFun = 0;
 +
var parar;
  
 +
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();
 +
setTimeout(function () {
 +
clearInterval(parar); 
 +
rellotge = null;  //nos cargamos el reloj haciendo que apunte a null
 +
}, 6000);  //a los 6 segundos borra la referencia y pausa el setInterval
  
  
var Bender = {};
+
};
  
afegirMetode(Bender, 'divideix', function(cadena)
+
this.StartTime = function () {
{
+
rellotge = new Date();
//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)
+
this.setFunctionOnTime = function (time, fun) {
{
 
return "no pots pasar una cadena buida";
 
}
 
else if(cadena.length==1)
 
{
 
return "H";
 
}
 
  
var numero=cadena.length/2;
+
parar = setInterval(fun, time * 1000);   //hola es una funció d'exemple
 
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>");
+
var rellotge = new Rellotge();
document.write("Bender.divideix(HOLA)===="+Bender.divideix("HOLA")+"<br>");
+
rellotge.ContructorRellotge();
document.write("Bender.divideix(HOLA,ADEU)===="+Bender.divideix("HOLA","ADEU")+"<br>");
+
alert(rellotge.GetTime());
document.write("Bender.divideix(HOLA,ADEU,4)===="+Bender.divideix("HOLA","ADEU",4)+"<br>");
+
let s = function () { alert("hola") };
document.write("Bender.divideix(HOLA,ADEU,2)===="+Bender.divideix("HOLA","ADEU",2)+"<br>");
+
rellotge.setFunctionOnTime(2, s);
 +
rellotge.StopTime();
  
 
</source>
 
</source>

Revisió de 20:20, 23 nov 2020

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(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) {
                    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.ContructorRellotge();
            alert(rellotge.GetTime());
            rellotge.setFunctionOnTime(2);

/**OTRA FORMA*/

	function Rellotge() {
			var rellotge;
			var rellotgeSec;
			var tempsFun = 0;
			var parar;

			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();
				setTimeout(function () {
					clearInterval(parar);   
					rellotge = null;   //nos cargamos el reloj haciendo que apunte a null
				}, 6000);   //a los 6 segundos borra la referencia y pausa el setInterval


			};

			this.StartTime = function () {
				rellotge = new Date();
			};

			this.setFunctionOnTime = function (time, fun) {

				parar = setInterval(fun, time * 1000);   //hola es una funció d'exemple

			};


		}

		var rellotge = new Rellotge();
		rellotge.ContructorRellotge();
		alert(rellotge.GetTime());
		let s = function () { alert("hola") };
		rellotge.setFunctionOnTime(2, s);
		rellotge.StopTime();