Ejercicio 2 ¿Es palíndromo?

Ejercicio 2 ¿Es palíndromo?

de Mauricio Costanzo Silveira -
Número de respuestas: 3

Hola ¿cómo están?, 

¿Me podrán dar un poco de feedback sobre el siguiente código? (Adjunto programa)

#include <stdio.h>

typedef unsigned int uint;

int largoDeCadena(char *frase)
{
    int largo = 0;
    char *cptr = &frase[largo];

    while (*cptr != false)
    {
        largo = largo + 1;
        cptr = &frase[largo];
    }

    return largo;
}

bool esPalindromeIterativo(char *frase)
{
    int largo = largoDeCadena(frase);
    int posicion = 0;
    bool verifica_que_sea_palindromo = true;

    while (verifica_que_sea_palindromo && (posicion <= (largo - 1 - posicion)))
    {
        printf("%c : %c\n", frase[posicion], frase[(largo - 1 - posicion)]);
        if (frase[posicion] != frase[(largo - 1 - posicion)])
        {
            verifica_que_sea_palindromo = false;
        }

        posicion++;
    }

    return verifica_que_sea_palindromo;
}

bool esPalindrome(char *frase)
{
    int largo = largoDeCadena(frase);

    if (largo == 0 || largo == 1)
    {
        return true;
    }
    else
    {
        if (frase[0] == frase[largo - 1])
        {
            if (largo == 2)
            {
                return true;
            }

            char nueva_frase[largo - 2];

            for (int i = 1; i <= largo - 2; i++)
            {
                nueva_frase[i - 1] = frase[i];
            }

            esPalindrome(nueva_frase);
        }
        else
        {
            return false;
        }
    }
}

int main()
{
    char *frase;

    frase = new char;

    printf("Ingresa la frase: ");

    scanf("%[^\n]s", frase);

    bool validation = esPalindrome(frase);

    if (validation)
    {
        printf("La palabra: %s Si ES palindromo ", frase);
    }
    else
    {
        printf("La palabra: %s NO es palindromo ", frase);
    }

    return 0;
}

Mauricio.
En respuesta a Mauricio Costanzo Silveira

Re: Ejercicio 2 ¿Es palíndromo?

de Carlos Luna -

Hola Mauricio.

El curso 2022, que inicia la semana próxima, irá presentando y abordando los temas por semana, tanto en teórico, práctico como laboratorio. La idea es seguir un avance coordinado (que se irá indicando), evitando abordar ejercicios de temas aún no vistos, con el objetivo de usar los conceptos que se presentan en el curso en cierto momento para resolver problemas y no confundir eventualmente a otros estudiantes (son muchos los inscriptos) con cosas que posiblemente no vieron aún. 

Por otra parte, te comento que los foros sirven para, en particular, dicutir ejercicios pero no para corregir un código. No es la idea que envíen códigos completos para que se revisen. Si se pueden plantear ideas o consulatr sobre cierto fragmento acotado, dudas específicas. Este año en cada comisión de práctico tendrán dos clases de 2hs (4hs semanales), donde se podrán analizar ejercicios a otro nivel (más completo) que en los foros.   

Saludos, Carlos  

En respuesta a Carlos Luna

Re: Ejercicio 2 ¿Es palíndromo?

de Mauricio Costanzo Silveira -
Carlos ¿Cómo estás?

En mi caso, generalmente, cuando estoy haciendo varios cursos a la vez, rara vez logro llevarlos a todos bien. Por ese motivo, es que gracias a que ya están los contenidos en el eva, intenté adelantar un poco, respetando que cada consulta corresponda al foro del tema en cuestión.

Te agradezco por la respuesta. Intentaré hacer preguntas más concretas y a la par de lo que va el curso.

Saludos,
Mauricio.