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

text
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
FIN

3. 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

javascript
// 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)

javascript
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)

    pseudocode
    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
    FinAlgoritmo

    Versión 2: Con función personalizada

    pseudocode
    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
    FinAlgoritmo

    Versión 3: Simplificada (sin funciones)

    pseudocode
    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
    FinAlgoritmo

    Explicación de las funciones de PSeInt usadas:

  • Longitud(cadena): Devuelve el número de caracteres de una cadena

  • Subcadena(cadena, inicio, fin): Extrae parte de una cadena

  • Cadena = Cadena: Compara si dos cadenas son iguales

  • Cadena + 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:

text
Cadena invertida: atellag
Original: galleta
Invertida: atellag

Para un palíndromo como "rotor":

text
Verdadero
Original: rotor
Invertida: rotor
  •  

Comentarios

Entradas más populares de este blog

1-valores duplicados en un arreglo

Pseudocódigo de la Máquina Expendedora

Trabajas en una compañía que ofrece seguros de vida y de gastos