Menu

Seja Bem Vindo!

Seja Bem Vindo!
Rodrigo Fernando Da Luz!
Novo!

Maquina De Turing!


/*Rodrigo Fernando da Luz*/
/*Faculdades SPEI*/
#include <conio.h>
#include <malloc.h>
#include <stdio.h>
#include <stdlib.h>
/*..........................................................................*/
/*          Estados   ->  0 1 2 3 4 5 6                                     */
/*                        1 0 0 0 0 0 1                                     */
/*..........................................................................*/
int numero;
int i,e;//contador //
int *ponteiro; //ponteiro em um vetor //

main()
{
   printf("..............................................................\n\n");
   printf ("\t(1)-  Entrar no programa Maquina de estados!\n");
   printf ("\t(2)-  Sair do programa!\n\n");
   printf("..............................................................\n\n");
   printf ("\tEscolha uma opcao: ");
   scanf ("%d", &e);

   while ((e<1)||(e>2));//Condição do menu//

      switch (e){
         case 1://Entra no programa do menu.//
        ponteiro= (int*) malloc( numero *sizeof(int));//Atribui valor ao ponteiro//
            int estado = 1;
            printf("\n _____________________________________________________\n\n");
            printf("\nDIGITE O TAMANHO DO VETOR :\n\n ");
            printf("\n _____________________________________________________\n\n");
            scanf("%d", &numero);

/* Será digitado os valores da fita somente com o numero um(1) e varios
               zeros(0), para termino na última a POSIÇÃO coloque (1).*/

            printf("Digite somente [1] ou [0]!\n\n");

            for(i=0;i<numero;i++) {
               printf("[(FITA):] [%d] ", i + 1);
               scanf("%d", &ponteiro [i]);  //Irá ler o valor do vetor em um ponteiro//
            }

            while(estado < 6) {//6 ESTADOS O PONTEIRO VAR LER.//
               switch (estado) {
                  case 1:
                     if (*ponteiro == 1) {//PROCURA PONTEIRO igual estado 1//
                        *ponteiro = 1;
                        estado = 2;
                        printf("%d",*ponteiro);
                     }
                  break;
                  case 2:
                     if(*ponteiro == 0) {
                        //PROCURA PONTEIRO igual estado 0//
                        *ponteiro = 0;
                        estado = 2;
                        printf("%d",*ponteiro);
                     } else {
                        *ponteiro = 0;
                        estado = 3;
                        printf("%d",*ponteiro);
                     }
                  break;
                  case 3:
                     if(*ponteiro == 0) { //PROCURA PONTEIRO igual estado 1//
                        *ponteiro = 0;
                        estado = 3;
                        printf("%d",*ponteiro);
                     } else {
                        *ponteiro = 1;
                        estado = 4;
                        printf("%d");
                        printf("%d",*ponteiro);
                        printf("%d",*ponteiro);
                  }
               break;
            }

            if ( estado <= 4) {//ponteiro esta na posição 0 no estado 4!//
               //inverte ponteiro a direita e a esquerda//
                  ponteiro++;//INCREMENTO A DIREITA//
               } else {
                  ponteiro--; //DECREMENTO A  ESQUERDA//
                  *ponteiro = 1;
                  estado = 5; //PROCURA DIGITO 0 EM SUBSTITUE POR 1//
                  printf("%d", *ponteiro);/*Alocar valor do estado 5*/
                  estado = 6; /*fecha o programa*/
                  printf("\n\n"); //stop//
                  break;
               }
            }
         break;
         case 2://Sai do menu do programa//
            printf (" \tSair do programa MAQUINA DE ESTADOS!\n\n");
         break;
      }

   system("PAUSE");


}

Um comentário:

  1. A máquina de Turing é um dispositivo teórico conhecido como máquina universal, que foi concebido pelo matemático britânico Alan Turing (1912-1954), muitos anos antes de existirem os modernos computadores digitais (o artigo de referência foi publicado em 1936). Num sentido preciso, é um modelo abstrato de um computador, que se restringe apenas aos aspectos lógicos do seu funcionamento (memória, estados e transições) e não à sua implementação física. Numa máquina de Turing pode-se modelar qualquer computador digital.

    Turing também se envolveu na construção de máquinas físicas para quebrar os códigos secretos das comunicações alemãs durante a II Guerra Mundial, tendo utilizado alguns dos conceitos teóricos desenvolvidos para o seu modelo de computador universal.

    ResponderExcluir

chat conversa

CHAT CONVERSA

Get your own Chat Box! Go Large!
Rodrigo Luz