Regresa una cadena de texto en sentido inverso.
https://www.youtube.com/watch?v=3BU0E5-Uhis
Regresa una cadena de texto en sentido inverso.
El programa debe solicitar una cadena de texto al usuario
prueba tu algoritmo con las siguientes cadenas:
galleta= atellag
procesador = rodesacorp
vehiculo=olucihev
Una vez que hayas conseguido lo anterior, agrega una validacion
para regresar verdadero si la palabra es un palindromo.
Prueba tu algoritmo con los valores:
rotor= rotor
sometemos=sometemos
reconocer=reconocer
SOLUCIÓN PASO A PASO
1. Lógica en dos pasos
Paso 1: Invertir la cadena
Tomar la cadena original
Crear una nueva cadena invirtiendo el orden de los caracteres
Paso 2: Comparar y validar
Comparar la cadena original con la cadena invertida
Si son iguales, es un palíndromo (devolver Verdadero)
Si son diferentes, no es un palíndromo (devolver Falso)
2. Seudocódigo
INICIO
LEER cadena_del_usuario
cadena_invertida = ""
PARA cada caracter EN cadena_del_usuario (de final a inicio):
AGREGAR caracter A cadena_invertida
SI cadena_del_usuario ES IGUAL A cadena_invertida ENTONCES
IMPRIMIR "Verdadero"
SINO
IMPRIMIR cadena_invertida
FIN SI
FIN3. Analogía
Imagina que tienes una fila de bloques con letras:
Bloques originales: G-A-L-L-E-T-A
Para invertirlos, tomas el último bloque (A) y lo pones primero, luego el penúltimo (T) y así sucesivamente
Bloques invertidos: A-T-E-L-L-A-G
Si al invertir los bloques obtienes exactamente la misma secuencia que tenías al principio, entonces tienes un palíndromo
4. Código JavaScript para principiantes
// Paso 1: Solicitar una cadena de texto al usuario
let cadenaOriginal = prompt("Por favor, ingresa una palabra:");
// Paso 2: Invertir la cadena
let cadenaInvertida = "";
for (let i = cadenaOriginal.length - 1; i >= 0; i--) {
cadenaInvertida += cadenaOriginal[i];
}
// Paso 3: Verificar si es palíndromo
if (cadenaOriginal === cadenaInvertida) {
console.log("Verdadero");
alert("Verdadero - ¡Es un palíndromo!");
} else {
console.log(cadenaInvertida);
alert("Cadena invertida: " + cadenaInvertida);
}
// Mostrar ambos resultados en la consola para verificar
console.log("Original: " + cadenaOriginal);
console.log("Invertida: " + cadenaInvertida);5. Versión con función (más organizada)
function invertirCadena(texto) {
let resultado = "";
for (let i = texto.length - 1; i >= 0; i--) {
resultado += texto[i];
}
return resultado;
}
function esPalindromo(texto) {
return texto === invertirCadena(texto);
}
// Programa principal
let palabra = prompt("Ingresa una palabra:");
let palabraInvertida = invertirCadena(palabra);
if (esPalindromo(palabra)) {
alert("Verdadero - ¡Es un palíndromo!");
} else {
alert("Cadena invertida: " + palabraInvertida);
}6. Pruebas con los ejemplos dados
Ejemplos de inversión:
"galleta" → "atellag"
"procesador" → "rodasecorp"
"vehículo" → "olucíhev"
Ejemplos de palíndromos:
"rotor" → "rotor" → Verdadero
"sometemos" → "sometemos" → Verdadero
"reconocer" → "reconocer" → Verdadero
Este código es perfecto para principiantes porque:
Usa conceptos básicos (variables, bucles, condicionales)
Es fácil de entender paso a paso
Incluye comentarios explicativos
Muestra los resultados de forma clara
Pseudocódigo en PSeInt para invertir cadena y detectar palíndromos
Te ayudo a convertir el seudocódigo a la sintaxis de PSeInt:
Versión 1: Estructura básica (recomendada para principiantes)
Algoritmo InvertirCadena // Declarar variables Definir cadena_original, cadena_invertida Como Cadena Definir i, longitud Como Entero // Paso 1: Solicitar cadena al usuario Escribir "Por favor, ingresa una palabra:" Leer cadena_original // Paso 2: Inicializar variables cadena_invertida <- "" longitud <- Longitud(cadena_original) // Paso 3: Invertir la cadena (recorrer de final a inicio) Para i <- longitud Hasta 1 Con Paso -1 Hacer cadena_invertida <- cadena_invertida + Subcadena(cadena_original, i, i) FinPara // Paso 4: Verificar si es palíndromo Si cadena_original = cadena_invertida Entonces Escribir "Verdadero" Sino Escribir "Cadena invertida: ", cadena_invertida FinSi // Mostrar ambos resultados para comparar Escribir "Original: ", cadena_original Escribir "Invertida: ", cadena_invertida FinAlgoritmoVersión 2: Con función personalizada
Algoritmo PalindromosConFuncion // Función para invertir una cadena Funcion resultado <- InvertirCadena(texto) Definir resultado, caracter Como Cadena Definir i, long Como Entero resultado <- "" long <- Longitud(texto) Para i <- long Hasta 1 Con Paso -1 Hacer caracter <- Subcadena(texto, i, i) resultado <- resultado + caracter FinPara FinFuncion // Función para verificar palíndromo Funcion esPalindromo <- EsPalindromo(texto) Definir esPalindromo Como Logico esPalindromo <- (texto = InvertirCadena(texto)) FinFuncion // Programa principal Definir palabra, palabraInvertida Como Cadena Escribir "Ingresa una palabra:" Leer palabra palabraInvertida <- InvertirCadena(palabra) Si EsPalindromo(palabra) Entonces Escribir "Verdadero - ¡Es un palíndromo!" Sino Escribir "Cadena invertida: ", palabraInvertida FinSi FinAlgoritmoVersión 3: Simplificada (sin funciones)
Algoritmo DetectarPalindromo Definir original, invertida Como Cadena Definir i Como Entero Escribir "Escribe una palabra:" Leer original invertida <- "" // Recorrer la cadena de atrás hacia adelante Para i <- Longitud(original) Hasta 1 Con Paso -1 Hacer invertida <- invertida + SubCadena(original, i, i) FinPara Escribir "Palabra original: ", original Escribir "Palabra invertida: ", invertida Si original = invertida Entonces Escribir "Verdadero" Sino Escribir invertida FinSi FinAlgoritmoExplicación de las funciones de PSeInt usadas:
Longitud(cadena): Devuelve el número de caracteres de una cadenaSubcadena(cadena, inicio, fin): Extrae parte de una cadenaCadena = Cadena: Compara si dos cadenas son igualesCadena + Cadena: Concatena (une) dos cadenas
Ejemplo de ejecución:
Entrada: "galleta"
Proceso:
Longitud: 7 caracteres
Recorre: posición 7 ("a"), 6 ("t"), 5 ("e"), 4 ("l"), 3 ("l"), 2 ("a"), 1 ("g")
Invertida: "atellag"
Salida:
Cadena invertida: atellag
Original: galleta
Invertida: atellagPara un palíndromo como "rotor":
Verdadero
Original: rotor
Invertida: rotor
Comentarios
Publicar un comentario