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 INIZIALE | NASTRO FINALE |
---|---|
dccsdlcdd | 10021011 |
c | 0 |
dddd | 1111 |
lcccl | 30003 |
Algoritmo
- Nello stato 0 attraversa tutto l’input
- Per ogni lettera C D S L scrive la codifica corrispondente 0 1 2 3
Codice | Commenti |
---|---|
(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 |