Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
81 changes: 81 additions & 0 deletions analizadorLexico.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@

print("Ingrese su cadena: ")
cadena = input() #cadena ingresada
token = [] #arreglo donde guardaremos el resultado
index = 0 #iterador para saber el num de posición
subcadena = '' #gurdar cada coordenada con su respectivo texto
coordenadas = '' #para verificar si son coordenadas
finCadena = False #verificar si es fin de cadena
aux = 0
subaux = ''

#ciclo en donde se checará caracter por caracter de la cadena ingresada
while index < len(cadena) and finCadena == False:
if cadena[index] == "(": #si empieza con parantesis que abré se harán validaciones para las siguientes cadenas
subcadena += cadena[index] #concatenamos la cadena ingresada en nuestra variable
if index < len(cadena)-1:
index += 1
else:
finCadena = True #activaremos la bandera ya que nuestro iterador se salio de rango
while cadena[index] != ")":
coordenadas += cadena[index] #empezaremos la validacion de las coordenas, si son validas o no
if index < len(cadena)-1:
index += 1
else:
finCadena = True
coordenadas = coordenadas.split(",") #separaremos las coordenadas en un array quitando la coma
if coordenadas[0].isnumeric: #verificaremos si son numeros las coordenas ingresadas
subcadena+= coordenadas[0]
if coordenadas[1].isnumeric:
subcadena += ","
subcadena += coordenadas[1]


coordenadas = ''
subcadena += cadena[index]
subcadena += ' '
if index < len(cadena)-1:
index += 1
else:
finCadena = True
while cadena[index] != "(" and finCadena == False:
subcadena += cadena[index]
if index < len(cadena)-1:
index += 1
else:
finCadena = True

if cadena[index] == "(":
aux = index
subaux += cadena[aux]
if aux < len(cadena)-1:
aux += 1
else:
finCadena = True
while cadena[aux] != ")":
coordenadas += cadena[aux] #empezaremos la validacion de las coordenas, si son validas o no
if aux < len(cadena)-1:
aux += 1
else:
finCadena = True
if coordenadas.find(",") == -1:
subaux += coordenadas
subaux += cadena[aux]
subcadena += subaux
token.append(subcadena) #anadimos nuestra variable aux a nuestro array de salida
subcadena = '' #reset a las variables para poder leer nueva coordenada
coordenadas = ''
subaux = ''
index = aux + 1
else:
token.append(subcadena) #anadimos nuestra variable aux a nuestro array de salida
subcadena = '' #reset a las variables para poder leer nueva coordenada
coordenadas = ''
subaux = ''
continue
else:
token.append(subcadena)

for tok in token:
print(tok)

22 changes: 22 additions & 0 deletions capicua.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
'use strict';

let num = parseInt(process.argv.slice(2)[0]); //número ingresado
let inv; // número invertido
let capicua = false; //saber si ya se llegó al capicua

//función para invertir el número
function alreves(n){
return parseInt(n.toString().split('').reverse().join(''));
}

//ciclo en donde se verificará si es capicua por medio de la suma de el original con el invertido
for (let i = 1; !capicua; i++) {
inv = alreves(num); //manda a llmar funcion de invertir número
if ((num + inv).toString() === (alreves(num + inv)).toString()) { //si son iguales las suma de los dos números es capicua
console.log(num + inv, i); //imprimimos la suma y las iteraciones
capicua = true;
}
else {
num = num + inv;
}
}