Vai al contenuto

Edizione XVII – Problema 1

  • di

Cambio di casacca

Nel Mondo dei Programmatori, la vita politica è molto intensa e piena di sorprese.
Nuove liste e partiti si formano e dissolvono di continuo, mentre i Programmatori discutono di quale sia il linguaggio migliore da utilizzare.

Per esempio, fino a qualche anno fa si contavano vari movimenti:

  • i Programmatori C Indipendenti (simbolo: c),
  • i Discreti & Continui (simbolo: d),
  • i Programmatori Strutturalisti (simbolo: s)
  • e i Programmatori Lisp Integralisti (simbolo: l).

Negli anni, questi raggruppamenti hanno cambiato molte volte nome, al punto che si è preferito numerarli per chiarezza.

Così,

  • i Programmatori C Indipendenti sono diventati il partito 0,
  • i Discreti & Continui sono diventati il partito 1,
  • i Programmatori Strutturalisti sono diventati il partito 2,
  • e i Programmatori Lisp Integralisti il partito 3.

Si scriva un programma per macchina di Turing che, ricevuta sul nastro una stringa sull’alfabeto {c, d, s, l}, in cui ogni simbolo rappresenta un elettore del corrispondente partito, lasci sul nastro gli stessi elettori, codificati però sull’alfabeto {0, 1, 2, 3}.

NASTRO INIZIALENASTRO FINALE
dccsdlcdd10021011
c0
dddd1111
lcccl30003

Algoritmo

  • Nello stato 0 attraversa tutto l’input
  • Per ogni lettera C D S L scrive la codifica corrispondente 0 1 2 3
CodiceCommenti
(0,C,0,0,>)Legge C, scrive 0
(0,D,0,1,>)Legge D, scrive 1
(0,S,0,2,>)Legge S, scrive 2
(0,L,0,3,>)Legge L, scrive 3

Lascia un commento

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