Concetti Chiave
- La funzione C permette di verificare se una parola è palindroma confrontando i caratteri agli estremi.
- Utilizza la ricorsione per controllare se la parte centrale della parola è anch'essa palindroma.
- Il programma richiede all'utente di inserire una parola e fornisce un feedback sul risultato.
- La funzione palindroma restituisce 1 se la parola è palindroma e 0 altrimenti.
- Gestisce parole fino a 30 caratteri, utilizzando la funzione gets per la lettura dell'input.
Scrivere una funzione C che determini seuna parola è palindroma.
Esempi di parole palindrome
Una parola è palindroma se i caratteri più a sx e più a dx coincidono e se la parte tra loro compresa è palindroma.
Es.: radar, oro, anna, …
[/p]
[p]
[b]int main[/b]()
[/p]
[p]
{
[/p]
[p]
char parola[30];
[/p]
[p]
int risult;
[/p]
[p]
[b][b]printf[/b][/b]("Digita una parola\n");
[/p]
[p]
[b]gets[/b](parola);
[/p]
[p]
risult=palindroma(parola,0,[b]strlen[/b](parola)-1);
[/p]
[p]
if(risult)
[/p]
[p]
printf("La parola e' palindroma\n");
[/p]
[p]
else
[/p]
[p]
printf("La parola non e' palindroma\n");
[/p]
[p]
[b]getchar[/b]();
[/p]
[p]
return 0;
[/p]
[p]
}
[/p]
[p]
[b]int palindroma[/b](const char * str, int sx, int dx)
[/p]
[p]
{
[/p]
[p]
if(sx >= dx)
[/p]
[p]
return 1;
[/p]
[p]
else if(str[sx] == str[dx])
[/p]
[p]
return palindroma(str,sx+1,dx-1);
[/p]
[p]
else
[/p]
[p]
return 0;
[/p]
[p]
}
[/p]
[p]
Domande da interrogazione
- Come si determina se una parola è palindroma in C?
- Qual è la struttura principale del programma per verificare una parola palindroma?
- Qual è il ruolo della funzione `palindroma` nel codice?
Si utilizza una funzione ricorsiva che confronta i caratteri agli estremi della parola e verifica se la parte centrale è anch'essa palindroma. Se i caratteri coincidono, si continua a controllare la parte interna; altrimenti, la parola non è palindroma.
Il programma chiede all'utente di inserire una parola, quindi chiama la funzione `palindroma` passando la parola e gli indici degli estremi. In base al risultato, stampa se la parola è palindroma o meno.
La funzione `palindroma` verifica ricorsivamente se i caratteri agli estremi della stringa sono uguali e continua a controllare la parte interna fino a quando non si raggiungono gli indici estremi, restituendo 1 se la parola è palindroma e 0 altrimenti.