8-1 : EXTRA : Array di caratteri ( stringhe ) Vers . 4.3 – Febbraio 2022
d ) Assegnata una stringa s di n caratteri con la presenza di eventuali spazi ( ossia una frase ), dire se essa un PALINDROMO N . B . Una frase è un PALINDROMO a prescindere dagli spazi , nel senso che nell ’ interpretazione “ al contrario ” dei suoi caratteri si deroga rispetto alla loro presenza ( è come se non venissero considerati )
ALGORITMO FrasePalindromo MAXDIM 50 PROCEDURA main ( )
s : ARRAY [ MAXDIM ] DI CHAR // stringa assegnata s _ pul : ARRAY [ MAXDIM ] DI CHAR // stringa s privata degli spazi s _ inv : ARRAY [ MAXDIM ] DI CHAR // stringa inversa di s _ pul privata degli spazi n , p , i : INT palindromo : BOOL
INIZIO
/* leggo la prima stringa s rispettando il vincolo imposto da MAXDIM */ RIPETI Leggi ( s ) n � Lunghezza ( s ) FINCHE ’ ( n ≥ 1 ) AND ( n ≤ MAXDIM )
/* elimino dalla stringa s tutti gli spazi prima di invertirla e creo la stringa s _ pul */ p � 0 PER i � 1 A n ESEGUI
SE ( s [ i ] ≠ ' ')
ALLORA s _ pul [ p ] � s [ i ] p � p + 1 FINE SE i � i + 1 FINE PER
/* costruisco la stringa s _ inv inversa della stringa s _ pul */
PER i � 1 A p ESEGUI s _ inv [ p – i + 1 ] � s _ pul [ i ] i � i + 1 FINE PER
/* verifico se le stringhe s _ pul e s _ inv sono uguali ( PALINDROMO ) */ palindromo � VERO i� 1 MENTRE ( i ≤ p ) AND ( palindromo = VERO )
SE ( s _ pul [ i ] ≠ s _ inv [ i ]) ALLORA palindromo � FALSO FINE SE i � i + 1 FINE MENTRE
/* comunico esito controllo */ Scrivi ( palindromo )
FINE
Autore : Rio Chierego ( email : riochierego @ libero . it - sito web : www . riochierego . it ) Pag . 10