Aqui estan dos ejemplos programados en c++.
EJEMPLO 1
#include
main()
{
char cinta [13]={NULL};
int terminar = 0;
int ubicacion=0;
int estado=0;
int x;
FILE *archivo;
archivo=fopen("archivo.txt","a");
printf(" Programa que imita la maquina de turing");
printf("\n ingrese los valores de la cinta... ");
fprintf(archivo,"Programa que imita la maquina de turing");
scanf("%s", cinta);
fprintf(archivo,"\n El valor ingresado fue... %s",cinta);
printf(" %i",estado);
printf("\n %s \n", cinta);
getchar();
fprintf(archivo,"\n %i", estado);
fprintf(archivo,"\n %s \n", cinta);
do
{
if (cinta[ubicacion]==NULL)
{
terminar=1;
}
else
if (estado==0)
{
if (cinta[ubicacion]=='0')
{
cinta[ubicacion]='0';
ubicacion++;
estado=7;
}
else
if (cinta[ubicacion]=='1')
{
cinta[ubicacion]='0';
ubicacion++;
estado=1;
}
}
else
if (estado==1)
{
if (cinta[ubicacion]=='0')
{
cinta[ubicacion]='0';
++ubicacion;
estado=2;
}
else
if (cinta[ubicacion]=='1')
{
cinta[ubicacion]='1';
++ubicacion;
estado=1;
}
}
else
if (estado==2)
{
if (cinta[ubicacion]=='0')
{
cinta[ubicacion]='0';
++ubicacion;
estado=3;
}
else
if (cinta[ubicacion]=='1')
{
cinta[ubicacion]='1';
++ubicacion;
estado=2;
}
}
else
if (estado==3)
{
if (cinta[ubicacion]=='0')
{
cinta[ubicacion]='1';
ubicacion--;
estado=4;
}
else
if (cinta[ubicacion]=='1')
{
cinta[ubicacion]='1';
++ubicacion;
estado=3;
}
}
else
if (estado==4)
{
if (cinta[ubicacion]=='0')
{
cinta[ubicacion]='0';
ubicacion--;
estado=5;
}
else
if (cinta[ubicacion]=='1')
{
cinta[ubicacion]='1';
ubicacion--;
estado=4;
}
}
else
if (estado==5)
{
if (cinta[ubicacion]=='0')
{
cinta[ubicacion]='0';
ubicacion--;
estado=6;
}
else
if (cinta[ubicacion]=='1')
{
cinta[ubicacion]='1';
ubicacion--;
estado=5;
}
}
else
if (estado==6)
{
if (cinta[ubicacion]=='0')
{
cinta[ubicacion]='1';
++ubicacion;
estado=0;
}
else
if (cinta[ubicacion]=='1')
{
cinta[ubicacion]='1';
ubicacion--;
estado=6;
}
}
else
if (estado==7)
{
if (cinta[ubicacion]=='0')
{
cinta[ubicacion]='0';
++ubicacion;
estado=12;
}
else
if (cinta[ubicacion]=='1')
{
cinta[ubicacion]='0';
++ubicacion;
estado=8;
}
}
else
if (estado==8)
{
if (cinta[ubicacion]=='0')
{
cinta[ubicacion]='0';
++ubicacion;
estado=9;
}
else
if (cinta[ubicacion]=='1')
{
cinta[ubicacion]='1';
++ubicacion;
estado=8;
}
}
else
if (estado==9)
{
if (cinta[ubicacion]=='0')
{
cinta[ubicacion]='1';
ubicacion--;
estado=10;
}
else
if (cinta[ubicacion]=='1')
{
cinta[ubicacion]='1';
++ubicacion;
estado=9;
}
}
else
if (estado==10)
{
if (cinta[ubicacion]=='0')
{
cinta[ubicacion]='0';
ubicacion--;
estado=11;
}
else
if (cinta[ubicacion]=='1')
{
cinta[ubicacion]='1';
ubicacion--;
estado=10;
}
}
else
if (estado==11)
{
if (cinta[ubicacion]=='0')
{
cinta[ubicacion]='1';
++ubicacion;
estado=7;
}
else
if (cinta[ubicacion]=='1')
{
cinta[ubicacion]='1';
ubicacion--;
estado=11;
}
}
else
{
terminar=1;
}
printf(" ");
fprintf(archivo," ");
for(x=0;x
printf(" ");
fprintf(archivo," ");
}
printf("%i",estado);
printf("\n %s \n", cinta);
fprintf(archivo,"%i",estado);
fprintf(archivo,"\n %s \n", cinta);
getchar();
}
while (terminar!=1);
printf("\n El resultado es: %s ", cinta);
fprintf(archivo,"\n El resultado es: %s ", cinta);
getchar();
getchar();
fclose (archivo);
return 0;
}
EJEMPLO2 SUMA DE 1´S
#include
main()
{
char cinta1 [11]={NULL};
char cinta [12]={NULL};
int terminar = 0;
int ubicacion=1;
int estado=0;
int x,a;
FILE *archivo;
archivo=fopen("archivo.txt","a");
printf(" Programa que imita la maquina de turing 2");
printf("\n ingrese los valores de la cinta... ");
fprintf(archivo,"Programa que imita la maquina de turing");
scanf("%s", cinta1);
fprintf(archivo,"\n El valor ingresado fue... %s",cinta);
printf(" %i",estado);
printf("\n %s \n", cinta1);
getchar();
fprintf(archivo,"\n %i", estado);
fprintf(archivo,"\n %s \n", cinta1);
cinta [0]='x';
for(a=0;a<12;a++)
{
cinta[a+1]=cinta1[a];
}
do
{
if (cinta[ubicacion]==NULL)
{
terminar=1;
break;
}
else
if (estado==0)
{
if (cinta[ubicacion]=='$')
{
cinta[ubicacion]='$';
++ubicacion;
estado=1;
}
}
else
if (estado==1)
{
if (cinta[ubicacion]=='$')
{
cinta[ubicacion]='$';
++ubicacion;
estado=6;
}
else
if (cinta[ubicacion]=='0')
{
cinta[ubicacion]='0';
++ubicacion;
estado=1;
}
else
if (cinta[ubicacion]=='1')
{
cinta[ubicacion]='a';
--ubicacion;
estado=2;
}
}
else
if (estado==2)
{
if (cinta[ubicacion]=='$')
{
cinta[ubicacion]='$';
--ubicacion;
estado=3;
}
else
if (cinta[ubicacion]=='0')
{
cinta[ubicacion]='0';
--ubicacion;
estado=2;
}
else
if (cinta[ubicacion]=='1')
{
cinta[ubicacion]='1';
--ubicacion;
estado=2;
}
}
else
if (estado==3)
{
if (cinta[ubicacion]=='0')
{
cinta[ubicacion]='1';
++ubicacion;
estado=4;
}
else
if (cinta[ubicacion]=='1')
{
cinta[ubicacion]='2';
++ubicacion;
estado=4;
}
else
if (cinta[ubicacion]=='2')
{
cinta[ubicacion]='3';
++ubicacion;
estado=4;
}
else
if (cinta[ubicacion]=='3')
{
cinta[ubicacion]='4';
++ubicacion;
estado=4;
}
else
if (cinta[ubicacion]=='4')
{
cinta[ubicacion]='5';
++ubicacion;
estado=4;
}
else
if (cinta[ubicacion]=='5')
{
cinta[ubicacion]='6';
++ubicacion;
estado=4;
}
else
if (cinta[ubicacion]=='6')
{
cinta[ubicacion]='7';
++ubicacion;
estado=4;
}
else
if (cinta[ubicacion]=='7')
{
cinta[ubicacion]='8';
++ubicacion;
estado=4;
}
else
if (cinta[ubicacion]=='8')
{
cinta[ubicacion]='9';
++ubicacion;
estado=4;
}
else
if (cinta[ubicacion]=='9')
{
cinta[ubicacion]='0';
++ubicacion;
estado=3;
}
else
if (cinta[ubicacion]=='x')
{
cinta[ubicacion]='1';
++ubicacion;
estado=4;
}
}
else
if (estado==4)
{
if (cinta[ubicacion]=='$')
{
cinta[ubicacion]='$';
++ubicacion;
estado=5;
}
}
else
if (estado==5)
{
if (cinta[ubicacion]=='0')
{
cinta[ubicacion]='0';
++ubicacion;
estado=5;
}
else
if (cinta[ubicacion]=='1')
{
cinta[ubicacion]='1';
++ubicacion;
estado=5;
}
else
if (cinta[ubicacion]=='a')
{
cinta[ubicacion]='1';
++ubicacion;
estado=1;
}
}
else
{
terminar=1;
break;
}
printf(" ");
fprintf(archivo," ");
for(x=0;x
printf(" ");
fprintf(archivo," ");
}
printf("%i",estado);
printf("\n %s \n", cinta);
fprintf(archivo,"%i",estado);
fprintf(archivo,"\n %s \n", cinta);
getchar();
}
while (terminar!=1);
printf("\n El resultado es: %s ", cinta);
fprintf(archivo,"\n El resultado es: %s ", cinta);
getchar();
getchar();
fclose (archivo);
return 0;
}
Ademas genera un archivo de texto para que imprimas el resultado...
Eso es todo...
1 comentario:
Esta chido
Publicar un comentario