8-1 : EXTRA : Array di caratteri ( stringhe ) Vers . 4.3 – Febbraio 2022
b ) Scrivere un algoritmo che converte tutti i caratteri di una stringa s prima in minuscolo ( creando la stringa s1 ) e poi in MAIUSCOLO ( creando la stringa s2 )
ALGORITMO ToLowerToUpper MAXDIM 50 PROCEDURA main ( )
s : ARRAY [ MAXDIM ] DI CHAR // stringa di partenza s1 : ARRAY [ MAXDIM ] DI CHAR // stringa convertita in minuscolo s2 : ARRAY [ MAXDIM ] DI CHAR // stringa convertita in MAIUSCOLO i : INT
INIZIO
/* leggo la stringa s rispettando il vincolo imposto da MAXDIM */ RIPETI Leggi ( s ) FINCHE ’ ( Lunghezza ( s ) ≥ 1 ) AND ( Lunghezza ( s ) ≤ MAXDIM )
/* preparo la stringa s1 che conterrà la conversione in minuscolo della stringa s */ /* N . B . poteva essere svolto anche con un ciclo enumerativo ( PER ) */ i � 1 MENTRE ( i ≤ Lunghezza ( s )) ESEGUI
SE ( s [ i ] ≥ ' A ') AND ( s [ i ] ≤ ' Z ') // carattere è maiuscolo ALLORA s1 [ i ] � s [ i ] + 32 // è l ’ offset tra maiuscole e minuscole nella tavola ASCII
ALTRIMENTI s1 [ i ] � s [ i ] FINE SE i � i + 1 FINE MENTRE
/* preparo la stringa s2 che conterrà la conversione in MAIUSCOLO della stringa s */ /* N . B . poteva essere svolto anche con un ciclo enumerativo ( PER ) */ i � 1 MENTRE ( i ≤ Lunghezza ( s )) ESEGUI
SE ( s [ i ] ≥ ' a ') AND ( s [ i ] ≤ ' z ') // carattere è minuscolo ALLORA s2 [ i ] � s [ i ] - 32 // è l ’ offset tra maiuscole e minuscole nella tavola ASCII
ALTRIMENTI s2 [ i ] � s [ i ] FINE SE i � i + 1 FINE MENTRE
Scrivi ( s ) Scrivi ( s1 ) Scrivi ( s2 )
FINE
Autore : Rio Chierego ( email : riochierego @ libero . it - sito web : www . riochierego . it ) Pag . 8