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
40 changes: 40 additions & 0 deletions Analizador_Léxico/Analizador_Léxico.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
<!DOCTYPE html>
<html lang="es">

<head>
<title>Analizador Léxico</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
</head>

<body>
<center>
<h1>Analizador Léxico</h1>
</center>
</body>
<script src="funciones.js"></script>
<script>
console.log("----Analizador Léxico----");
let entrada = prompt('Ingrese el texto', '(71,21)Hola(6 veces)(12,32)Mundo(tierra)(10,32)Hola(Hello)(71,21)Hola(6 veces)');
if (entrada.length > 250) {
alert("El texto debe ser menor a 250 caracteres");
}else{
let coordenadas = entrada.match(/(\()(\d+|-\d+|(\+)\d+),(\d+|-\d+|(\+)\d+)(\))/g);
// Se determina que la coordenada cumpla con su estructura: Empezando y cerrando con parentesis,
// comilla en medio, y los dos numeros, ya sean positivos(ya implicito sin signo de +) o negativos.
var textos = Splitmultiple(entrada, coordenadas);
// Se determinan los textos de cada coordenada haciendo separaciones con con las mismas coordenadas.
textos.splice(0, 1);
// Textos tendra un valor de mas que coordenadas(puede ser texto o un '')
// Este se quita de lo contrario en una entrada como "Inicio(71,21)Hola(12,32)Mundo(10,32)Hola"
// Sin esta operacion a la coordenada (71,21) se le asignaria la palabra Inicio
var salida = "El texto tiene "+coordenadas.length+" cordenadas:\n\n";
for (var coordenada in coordenadas) {
salida += coordenadas[coordenada] + " " + textos[coordenada++] + " \n";
}
console.log(salida);
alert(salida);
}
</script>

</html>
25 changes: 25 additions & 0 deletions Analizador_Léxico/funciones.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
function Splitmultiple(texto_completo, array_textos) {
// funcion creada por la necesidad de un split que funcione con arreglos(con textos) y no un solo texto
var textos_resultante = [];
var x; //variable de ayuda
for (var array_texto in array_textos) {
// De todo un texto se ira dividiendo a partir de diferentes textos
// y estas divisiones se iran guardando en un arreglo
x = texto_completo.split(array_textos[array_texto]);
textos_resultante.push(x[0]);
texto_completo = x[1];
if(x.length >2){
// En caso de haber coordenadas repetidas, esto genera mas de 2 fragmentos(invalidando la funcion).
// Aqui se unen del 2do fragmenro hasta N fragmentos para que la interaccion siga normal.
for(var i =2; i<=(x.length-1);i++){
texto_completo += array_textos[array_texto]+x[i];
}
}
if ((array_textos.length - 1) == array_texto) {
// la resultante ultima se toma asi al no tener esta una coordenada
// y tambien por que el primer valor de textpos_resultantes no es valor valido para una coordenada
textos_resultante.push(texto_completo);
}
}
return textos_resultante;
}
42 changes: 42 additions & 0 deletions Capicúas/Capicúas.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
<!DOCTYPE html>
<html lang="es">

<head>
<title>Capicúas</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
</head>

<body>
<center>
<h1>Capicúas</h1>
</center>
</body>
<script src="funciones.js"></script>
<script>
console.log("-------Capicúas-------");
let numero_random = (Math.round(Math.random() * 9989) + 10);
let entrada = parseInt(prompt('Ingrese el numero(10 al 9999)', numero_random));
if (entrada < 9 || entrada > 10000)
alert("El numero debe estar en el rango del 10 al 9999");
else {
var numero_capicua = entrada;
var interaccion = 1;
var interaccion_final = false;
while (!interaccion_final) {
// en cada interaccion while la variable numero_capicua se suma con su inverso,
// se valida que el resultado es igual a su inverso, si no lo es
// el resultado pasa a la siguiente interaccion y se suma 1 en la interaccion
numero_capicua = numero_capicua + parseInt(String(numero_capicua).reverse());
if (numero_capicua == String(numero_capicua).reverse()) {
var salida = numero_capicua + " " + interaccion;
interaccion_final = true;
} else
interaccion++;
}
console.log(salida);
alert(salida);
}
</script>

</html>
9 changes: 9 additions & 0 deletions Capicúas/funciones.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
String.prototype.reverse = function () {
var x = this.length;
var cadena = "";
while (x >= 0) {
cadena = cadena + this.charAt(x);
x--;
}
return cadena;
};