miércoles, 13 de febrero de 2008

Maquina de turing

Bueno, la maquina de turing es un algoritmo para resolver "algoritmos", realizado por turing... aunque explicarlo es complejo, mejor busquenlo en wikipedia...
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...

domingo, 10 de febrero de 2008

Ahora hago encuestas

Por que hacer encuestas?
Pues solo para saber mas de la gente...
Hice una encuesta piloto, espero la contesten, esta del lado derecho de esta pagina...

Mi video preferido

Este video me gusto mucho veanlo...