From 33815f55cc7e6c515f62bbd76e44e5b468d5bf36 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mario=20Gonz=C3=A1lez=20Santoyo?= <50715184+mariognzsa@users.noreply.github.com> Date: Thu, 22 Aug 2019 23:45:43 -0500 Subject: [PATCH 1/2] Ejercicio Capicua final --- capicua.js | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 capicua.js diff --git a/capicua.js b/capicua.js new file mode 100644 index 0000000..839a585 --- /dev/null +++ b/capicua.js @@ -0,0 +1,52 @@ + +class Capicua { + constructor (){ + } + static Inversor(x){//Funcion utilizada para obtener un numero deseado a la inversa + var len = String(x).length; + var invertido = ""; + while(len >= 0){ + invertido = invertido + String(x).charAt(len); + len--; + } + return invertido; + } + static Revision(x){//Funcion que revisa si un numero se lee igual al derecho que al reves + let inicio = 0;//apuntador para el caracter inferior + let final = String(x).length-1;//apuntador para el caracter superior + let bandera = true; + let medio = Math.ceil(String(x).length/2); + for(let i=0; i< medio; i++ ){//Solo se hace el for hasta la mitad de la cadena, ya que no se necesita más + if(String(x).charAt(inicio) == String(x).charAt(final)){//se comparan los caracteres + inicio++; + final--; + } + else{ + bandera = false;//se modifica la bandera y se rompe el ciclo en caso de no ser iguales los caracteres + break; + } + } + return bandera; + } + static EncontrarCapicua(nc){ + let i = 0;//se inicia un contador + let capicua = nc; + let bandera = true;//bandera para salir del ciclo una vez encontrado el capicua + while(bandera){ + capicua = parseInt(capicua) + parseInt(Capicua.Inversor(String(capicua)));//se suma el numero con su inverso + if(Capicua.Revision(String(capicua))){//si el resultado es capicua, se rompe el ciclo + bandera = false; + } + i++; + } + var Resultado = new Object(); + Resultado.NC = capicua;//se guarda el capicua y las iteraciones en un objeto y se regresan + Resultado.iteraciones = i; + return Resultado; + } +} + + +let entrada = process.argv[2];//se adquiere el numero parametro +let resultado = Capicua.EncontrarCapicua(entrada);//se guardan los resultados en una variable +console.log(resultado.NC+" "+resultado.iteraciones);//impresion de los resultados From d192ed5872269a8ac469db0d1f7f4086e5a9b210 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mario=20Gonz=C3=A1lez=20Santoyo?= <50715184+mariognzsa@users.noreply.github.com> Date: Fri, 23 Aug 2019 01:20:26 -0500 Subject: [PATCH 2/2] Analizador lexico (incompleto) --- analizador.js | 85 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 85 insertions(+) create mode 100644 analizador.js diff --git a/analizador.js b/analizador.js new file mode 100644 index 0000000..66bfe51 --- /dev/null +++ b/analizador.js @@ -0,0 +1,85 @@ + +class Analizador{ + constructor(){ + } + + + static Analisis(cadena){ + let resultados = new Object(); + resultados.coord1x = ""; + resultados.coord1y = ""; + resultados.coord1txt = ""; + resultados.coord2x = ""; + resultados.coord2y = ""; + resultados.coord2txt = ""; + resultados.coord3x = ""; + resultados.coord3y = ""; + resultados.coord3txt = ""; + + let str = String(cadena); + let len = str.length; + let params = 0; + let is_param = false; + for(let i=0; i