Commit 95238988 authored by leonelrosano's avatar leonelrosano
Browse files

arreglo de bugs funciones R extra

parent 860880f4
......@@ -113,8 +113,11 @@ export class Graph2DComponent {
}
if (obj.conj.sets.fcod == "function(x)") {
var nom = jsonCanvas.funs[0].cod;
var elemento2 = this.recursionfuncion(jsonCanvas.funs[0].sets, nom);
var elemento2 = this.recursionfuncionCod(jsonCanvas.funs[0].sets, nom);
console.log(elemento2)
obj.conj.sets.fcod = function (x) { return (eval(elemento2)) }
var funcionString = '';
......@@ -130,6 +133,8 @@ export class Graph2DComponent {
obj.conj.sets.fdom = eval(funcionString);
}
var funcionGenerada = this.generarFuncion(jsonCanvas);
......@@ -167,9 +172,9 @@ export class Graph2DComponent {
}
let fun = eval(funcionGenerada);
var colores = ['violet', 'red', 'blue', 'orange', 'green','black']
var num = this.getRandomArbitrary(0, 5);
var color = colores[num];
......@@ -180,7 +185,6 @@ export class Graph2DComponent {
}else{
tipoGraf = 'polyline';
}
console.log(obj.conj);
if(this.animation.boton && obj.conj.cod != 'Numer' && obj.conj.dom != 'Numer'){
if(this.conjunto.length == 1 && (this.conjunto[0].cod == 'Numer' || this.conjunto[0].dom == 'Numer')){
this.conjunto = [];
......@@ -229,6 +233,7 @@ export class Graph2DComponent {
insertar = true;
}
if (insertar){
console.log("A")
this.funciones.push({
id: 0,
sampler: 'builtIn',
......@@ -243,7 +248,7 @@ export class Graph2DComponent {
}
}
}else{
console.log("B")
this.funciones.push({
id: this.funciones.length,
......@@ -302,7 +307,6 @@ export class Graph2DComponent {
listValores.push(i)
}
let sinRepetidos = listValores.filter((valor, indiceActual, arreglo) => arreglo.indexOf(valor) === indiceActual);
for (var fun2 of funcionesVer2019){
let fun3 = eval(fun2);
var insertar = false;
......@@ -323,6 +327,7 @@ export class Graph2DComponent {
insertar = true;
}
if (insertar){
console.log(fun3)
this.funciones.push({
id: identificador,
sampler: 'builtIn',
......@@ -337,6 +342,7 @@ export class Graph2DComponent {
}
}
}else{
console.log("D")
this.funciones.push({
id: identificador,
sampler: 'builtIn',
......@@ -971,6 +977,7 @@ export class Graph2DComponent {
}
expresion = ' ' + exp.fun + '(' + exp.args.map(e => this.generarExpresion(e)).join() + ') ';
} else if (exp.kind == 'tup') {
expresion = ' (' + exp.exps.map(e => this.generarExpresion(e)).join() + ') ';
} else if (exp.kind == 'lit') {
......@@ -1001,22 +1008,21 @@ createListFunction = function (graph) {
var nameFun = [];
nameFun.push(fun1.fun);
funciones = this.armarFuncion(fun1.bdy,graph,nameFun);
for (var funs of funciones){
for (var fun of graph.funs){
if (fun.fun != fun1.fun){
funcionString = 'var ' + fun.fun + ' = function(' + fun.args.join() + '){\n return ' + this.generarExpresion(fun.bdy) + '}\n' + funcionString;
}
}
funcionString = 'var ' + fun1.fun + ' = function(' + fun1.args.join() + '){\n return ' + funs + '}\n' + funcionString;
funcionString = 'var ' + fun1.fun + ' = function(' + fun1.args.join() + '){\n return ' + funs + '}\n' + funcionString;
funcionString += ';return ' + fun1.fun + '(' + fun1.args.join() + ');\n'
grafica = fun1;
funcionString = '(' + grafica.args.join() + ')=>{\n' + funcionString + '}';
arrayFunction.push(funcionString);
var funcionString = '';
}
console.log(arrayFunction[0])
return arrayFunction;
}
......@@ -1106,7 +1112,9 @@ generateFunctionAndExp = function (exp,graph,namefun6) {
myList.push(aux1);
}
}
} else {
}else {
var lisA2 = this.generateFunctionAndExp(exp.exp1,graph,namefun6);
var lisB2 = this.generateFunctionAndExp(exp.exp2,graph,namefun6);
......@@ -1169,17 +1177,25 @@ generateFunctionAndExp = function (exp,graph,namefun6) {
aux7[0]= aux27;
aux7[1] = aux17;
myList.push(aux7);
}else if (exp.args[0].kind == 'app'){
var aux101 = [];
var aux1101 = exp.fun+'('+ exp.args.map(e => this.generarExpresion(e)).join() +')';
var aux2101 = 'N'
aux101[0]= aux2101;
aux101[1] = aux1101;
myList.push(aux101);
}else if(((exp.args[0].kind == 'cnd' || exp.args[0].kind == 'bop') && (exp.args[0].exp1.kind == 'app' || exp.args[0].exp2.kind == 'app' )) || (exp.args[0].kind == 'uop' && exp.args[0].exp.kind == 'app') ){
// }else if (exp.args[0].kind == 'app'){
// var aux101 = [];
// var aux1101 = exp.fun+'('+ exp.args.map(e => this.generarExpresion(e)).join() +')';
// var aux2101 = 'N'
// aux101[0]= aux2101;
// aux101[1] = aux1101;
// myList.push(aux101);
// }else if(((exp.args[0].kind == 'cnd' || exp.args[0].kind == 'bop') && (exp.args[0].exp1.kind == 'app' || exp.args[0].exp2.kind == 'app' )) || (exp.args[0].kind == 'uop' && exp.args[0].exp.kind == 'app') ){
// var aux102 = [];
// var aux1102 = exp.fun+'('+ exp.args.map(e => this.generarExpresion(e)).join() +')';
// var aux2102 = 'N'
// aux102[0]= aux2102;
// aux102[1] = aux1102;
// myList.push(aux102);
} else if(JSON.stringify(exp.args[0]).indexOf("app") != -1){
console.log("Entro");
exp.args[0] = this.recorrerArgumentos(exp.args[0]);
var aux102 = [];
var aux1102 = exp.fun+'('+ exp.args.map(e => this.generarExpresion(e)).join() +')';
var aux2102 = 'N'
......@@ -1188,22 +1204,29 @@ generateFunctionAndExp = function (exp,graph,namefun6) {
myList.push(aux102);
}else{
if(!namefun6.includes(exp.fun)){
var nomFun = exp.fun+exp.args.map(e => this.generarExpresion(e)).join()
if(!namefun6.includes(nomFun)){
var ListnameFNew = namefun6;
ListnameFNew.push(exp.fun);
ListnameFNew.push(nomFun);
for (var fun5 of graph.funs){
if(fun5.fun == exp.fun){
fun5.bdy.args = exp.args;
myList = this.generateFunctionAndExp(fun5.bdy,graph,ListnameFNew);
for(var iter of myList){
iter[1] = iter[1].replace(/x/g,exp.args.map(e => this.generarExpresion(e)).join())
}
}
}
}else{
var aux76 = [];
aux76[0] = 'N';
aux76[1] = exp.fun + "("+exp.args.map(e => this.generarExpresion(e)).join()+")";
aux76[1] = exp.fun+'('+exp.args.map(e => this.generarExpresion(e)).join()+')';
myList.push(aux76);
}
}
......@@ -1239,6 +1262,29 @@ generateFunctionAndExp = function (exp,graph,namefun6) {
return myList;
}
recorrerArgumentos = function(argumento){
if(argumento.kind == 'app'){
if ((argumento.fun == 'Math.cos') || (argumento.fun == 'cos')){
argumento.fun = 'Math.cos';
}else if((argumento.fun == 'Math.sin') || (argumento.fun == 'sin')){
argumento.fun = 'Math.sin';
}else if((argumento.fun == 'Math.round') || (argumento.fun == 'round')){
argumento.fun = 'Math.round';
}else if((argumento.fun == 'Math.sqrt') || (argumento.fun == 'sqrt')){
argumento.fun = 'Math.sqrt';
}
}else if(argumento.kind == 'cnd'){
this.recorrerArgumentos(argumento.exp1)
this.recorrerArgumentos(argumento.exp2)
}else if(argumento.kind == 'bop'){
this.recorrerArgumentos(argumento.exp1)
this.recorrerArgumentos(argumento.exp2)
}else if(argumento.kind == 'uop'){
this.recorrerArgumentos(argumento.exp1)
}
return argumento;
}
/////////////////////
createListExp = function (exp) {
......@@ -1555,21 +1601,23 @@ createListExp = function (exp) {
} else if (grf.cod == 'Z') {
dominio += "\"baseCod\": \"Z\", \"cod\": \"Z\" ,";
setf += "\"fcod\": \"Z\"";
} else if (grf.cod == 'N') {
} /*else if (grf.cod == 'N') {
dominio += "\"baseCod\": \"N\", \"cod\": \"N\" ,";
setf += "\"fcod\": \"N\"";
} else {
var nom = grf.cod;
if (Array.isArray(grf.sets[0][nom])) {
var arreglo = grf.sets[0][nom];
var arreglo2 = [];
for (var item of arreglo) {
arreglo2.push("\"" + item + "\"");
} */else {
var nom1 = grf.cod;
if (Array.isArray(grf.sets[1][nom1])) {
var arreglo3 = grf.sets[1][nom1];
var arreglo4 = [];
for (var item of arreglo3) {
arreglo4.push("\"" + item + "\"");
}
dominio += "\"baseCod\": \"N\", \"cod\": \"Numer\" ,";
setf += '\"fcod\":[' + arreglo2 + ']';
setf += '\"fcod\":[' + arreglo4 + ']';
} else {
dominio += this.recursivoCod(grf.sets, nom);
dominio += this.recursivoCod(grf.sets, nom1);
setf += "\"fcod\": \"function(x)\"";
}
}
......@@ -1595,6 +1643,22 @@ createListExp = function (exp) {
return resul;
}
recursionfuncionCod = function (func, nombre) {
var fun = func[1][nombre].set;
var resul = "";
if (fun == 'R' || fun == 'Z' || fun == 'N') {
resul += this.generarF(func[1][nombre].cond);
} else {
resul += this.generarF(func[1][nombre].cond) + " && " + this.recursionfuncionCod(func, fun);
}
return resul;
}
recursivoDom = function (sets, nom) {
var domin = "";
if (sets[0][nom].set == 'R') {
......@@ -1613,14 +1677,14 @@ createListExp = function (exp) {
recursivoCod = function (sets, nom) {
var coodo = "";
if (sets[0][nom].set == 'R') {
if (sets[1][nom].set == 'R') {
coodo += "\"baseCod\": \"R\", \"cod\": \"Func\",";
} else if (sets[0][nom].set == 'Z') {
} else if (sets[1][nom].set == 'Z') {
coodo += "\"baseCod\": \"Z\", \"cod\": \"Func\",";
} else if (sets[0][nom].set == 'N') {
} else if (sets[1][nom].set == 'N') {
coodo += "\"baseCod\": \"N\", \"cod\": \"Func\",";
} else {
var nombre = sets[0][nom].set;
var nombre = sets[1][nom].set;
coodo += this.recursivoDom(sets, nombre);
}
return coodo;
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment