[C, Algoritmo Numero pari o Dispari]
Risolto Grazie
Risposte
La MdT può lavorare solo sul nastro come input. Nel nastro lungo 20 hai le prime $n$ celle riempite di 1, e le altre "vuote" (dove vuoto può essere rappresentato da un carattere speciale, ad esempio dallo zero). Dovrai quindi come prima cosa devi scrivere sul nastro gli $1$ e i caratteri blank (con due funzioni interne diverse e muovendoti a destra o a sinistra di una casella per volta). Questo lo hai già implementato.
Poi dovrai contare gli 1 per individuare se il numero è pari o dispari. Se hai un numero dispari di 1 il numero $n$ è dispari, se sono pari il numero è pari. Dato che però la macchina ha due stati (1 e 0), devi contare in modo binario. Parti salvandoti come carattere lo 0. Parti dalla prima casella, se c'è un 1 ti salvi 1, se invece c'è 0 vai alla casella successiva. Alla casella successiva, se c'è un 1 e hai salvato 0 ti salvi 1, se invece hai salvato 1 memorizzi 0, andando sempre a destra se trovi uno 0, Quando arrivi all'ultima casella, scrivi li dentro il risultato memorizzato.
Poi dovrai contare gli 1 per individuare se il numero è pari o dispari. Se hai un numero dispari di 1 il numero $n$ è dispari, se sono pari il numero è pari. Dato che però la macchina ha due stati (1 e 0), devi contare in modo binario. Parti salvandoti come carattere lo 0. Parti dalla prima casella, se c'è un 1 ti salvi 1, se invece c'è 0 vai alla casella successiva. Alla casella successiva, se c'è un 1 e hai salvato 0 ti salvi 1, se invece hai salvato 1 memorizzi 0, andando sempre a destra se trovi uno 0, Quando arrivi all'ultima casella, scrivi li dentro il risultato memorizzato.