Vai al contenuto

Edizione X – Rotary Club

  • di

Edizione patrocinata dal Rotary Club di Pisa e aperta alle scuole della provincia di Pisa.

Problema 1 – Ababa NO

Scrivere un programma per macchina di Turing che, ricevuta in ingresso sul nastro una stringa composta di A e B, lasci sul nastro la scritta SI se la sequenza conteneva un numero uguale di A e B, NO in caso contrario.

NASTRO INIZIALENASTRO FINALE
AAABABBBSI
ABABANO
ABSI
ANO

Problema 2 – A tempo di Euro

Scrivere un programma per macchina di Turing che, ricevuto in ingresso un numero decimale che indica una quantità monetaria espressa in centesimi di Euro, lasci sul nastro la stessa cifra, in Euro, con la virgola di separazione per i centesimi (sempre due cifre) e il punto per le migliaia.

NASTRO INIZIALENASTRO FINALE
14530145,30
2192482.192,48
50,05
00,00

Problema 3 – Multipli di 5

Scrivere un programma per macchina di Turing che, ricevuto in ingresso un numero decimale, lasci sul nastro SI se il numero in questione è un multiplo di 5, NO altrimenti.

NASTRO INIZIALENASTRO FINALE
3840SI
5SI
17NO
3729NO

Problema 4 – Conversione araba

Scrivere un programma per la macchina di Turing che, ricevuto in ingresso sul nastro un numero compreso tra 1 e 30, lasci sul nastro lo stesso numero scritto in notazione latina.

NASTRO INIZIALENASTRO FINALE
19XIX
1I
24XXIV
5V

Problema 5 – Conversione latina

Scrivere un programma per macchina di Turing che, ricevuta in ingresso sul nastro un numero scritto in notazione romana, lascia sul nastro il corrispondente in notazione decimale.

Si assuma che il numero sia compreso fra 1 e 30 (si noti che i Romani non conoscevano lo 0).

NASTRO INIZIALENASTRO FINALE
XI11
IX9
II2
IXX19
V5

Problema 6 – Duplinverti

Scrivere un programma per macchina di Turing che, ricevuta in ingresso sul nastro una stringa sull’alfabeto {A, B, C}, restituisca la stessa stringa, seguita da una copia invertita della stringa stessa.

NASTRO INIZIALENASTRO FINALE
ABCABCCBA
AAA
ACCAACCAACCA
ABBACABBACCABBA

Problema 7 – Duplinvertita

Scrivere un programma per macchina di Turing che, ricevuta in ingresso sul nastro una stringa sull’alfabeto {A, B, C}, lasci sul nastro la stringa SI se la stringa in ingresso era duplinvertita, cioè composta da una sottostringa seguita da una copia invertita della stessa sottostringa.

Il programma deve lasciare sul nastro la stringa NO se la stringa in input non era duplinvertita.

NASTRO INIZIALENASTRO FINALE
ABCCBASI
ABCACBANO
BACCANO
ANO
AASI
ABCCCCBAABAABAABCCCCBASI

Problema 8 – Addizione araba

Scrivere un programma per macchina di Turing che, ricevuta in ingresso una addizione araba, lasci sul nastro il corrispondente risultato.

Una addizione araba è costituita da due numeri in notazione decimale, separati dal simbolo “+”.

NASTRO INIZIALENASTRO FINALE
248+418666
234987+5429874254533729
0+11
0+00
9+918

Problema 9 – Poesia monovocalica

Scrivere un programma per macchina di Turing che, ricevuta in ingresso una stringa sull’alfabeto A..Z, lasci sul nastro la stringa SI se la stringa conteneva una sola vocale (anche in istanze multiple), NO altrimenti.

NASTRO INIZIALENASTRO FINALE
PERCHELEGGERESEMPRELESTESSESI
CINQUEVOCALINATURACIHADATONO
FENDERELETENEBREDELLETESTESI
APPARECOMPITOASSAIINGRATONO
SOGNOSONNOCONTORTOSI
MICRESCEINPETTOUNDUBBIONO
SONOSORDOOSONOMORTOSI
ARRGGHHSI

Problema 10 – Frequenza delle vocali

Scrivere un programma per macchina di Turing che, ricevuta in ingresso una stringa sull’alfabeto A..Z, lasci sul nastro una tabella che riporti, per ogni vocale, il relativo numero di occorrenze nella stringa in ingresso.

Il risultato lasciato sul nastro deve essere formattato come mostrato negli esempi.
Si assuma che la stringa in ingresso potrà contenere al più 9 istanze di ciascuna vocale.

NASTRO INIZIALENASTRO FINALE
NELMEZZODELCAMMINDINOSTRAVITAMIRITROVAIPERUNASELVAOSCURAa=7 e=5 i=6 o=0 u=0
LETTERESEGRETEa=0 e=6 i=0 o=0 u=0
LOSOSOGNOTROPPOSOTTOLSDa=0 e=0 i=0 o=8 u=0
AIUOLEa=1 e=1 i=1 o=1 u=1

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *