Raddoppi
Si scriva un programma per macchina di Turing che, ricevuto in ingresso un numero intero, lasci sul nastro il doppio del numero indicato.
| Nastro iniziale | Nastro finale |
---|
1° | 31 | 62 |
2° | 1 | 2 |
3° | 1651 | 3302 |
4° | 9 | 18 |
Diagramma di stato
- Si porta sulla prima cifra a destra
- Lo stato 2 raddoppia senza riporto
- Lo stato R raddoppia con riporto, se le cifre finiscono scrive 1
(0, [0..9], 0, [0..9], >) | Va destra |
(0, -, 2, -, <) | Si posiziona sulla cifra a destra |
| |
(2, 01234, 2, 02468, <) | Senza riporto |
(2, 56789, R, 02468, <) | C’è un riporto |
(2, - , H, -, >) | Finito! |
| |
(R, 01234, 2, 13579, <) | Senza riporto |
(R, 56789, R, 13579, <) | C’è un riporto |
(R, - , H, 1, -) | Finito con riporto di 1 |