Exemplo de sistema especialista usando Inteligęncia Artificial

Publicado por Diego Lopes (última atualizaçăo em 12/04/2017)

[ Hits: 9.314 ]

Homepage:

Download 6610.BT7271.c




Sistema usando funções de Inteligência Artificial para auxiliar na compra de ações.

  



Esconder código-fonte

/*
Autor:RedBullDog
Data:22/02/2017
Descrição:Primeiro prototipo de sistema especialista usando conceitos de IA
----------------------------------------------------------------------------
Autor:RedBullDog
Data:02/03/201
Descrição:Criando base de conhecimento, balanço e matriz de memorias e coreção de bugs
*/

//bibliotecas padrões de entra e saida
#include<stdio.h>
#include<stdlib.h>

//definindo constante n no valor de 3
#define n 3
#define m 8

//declarando vetor que funciona com base de raciocinio
int cerebro[n];
//int vetguard[1][n];
//variavel para controle de raciocinio para fila
int ponteiro=0;
int vjr,dl,bcj;

//vetor para armazenar as repostas
int vetresp[n];
int pont=0;

//banco de conhecimento
int bconhecimento[m][n];

int ressystem = 1;
int ressystem1 = 1;
int ressystem2 = 1;


int fBrain(); //função que constroi pilha para matriz de raciocinio e retorna resposta
void fsauda();//função de saudação para o usuário
void fJurosin();//função de validação de juros
void fDolarAlta();//função para validação aumento do dolar
void fBCJuros();//função para validar BCJuros
void fLimpaConciencia();//função limpa a matriz conciencia
void fCompra();//pilha que armazena
void flimpaResp();
void fRespCompra();


int main(){
   int resp,lc;
   int resp2;
   int retsoma;
   fsauda();
   
   scanf("%d",&resp2);
   if(resp2 == 1){
      do{      
         system("cls");   
         fJurosin();
         fLimpaConciencia();   
         fDolarAlta();
         fLimpaConciencia();   
         fBCJuros();
         fLimpaConciencia();
         retsoma=fBrain();   
         printf("%d\n",retsoma);
         if(retsoma == 0){
            printf("Compra sem ricos\n");
         }else if(retsoma == 1){
            printf("Compra com um possivel risco\n");
         }else{
            printf("Compra com muito risco\n");
         }
         for(lc=0;lc<n;lc++){
            flimpaResp();
            
         }
         printf("Deseja simular novamente 1= Sim 0 = Nao\n");
         scanf("%d",&resp);
         
      }while(resp!=0);
      printf("Fim de simulacao\n");
   }else{
      printf("Fim de simulacao\n");
   }
      
}


//função para suadação ao usuário
void fsauda(){
   printf("Versao:BT7271\n");
   printf("Bem vindo.\n");
   printf("Eu vou ajudar voce na compra e venda de acoes\n");
   printf("Iniciar Simulacao 1=Sim 2=Nao");
}



//função carrega matriz de raciocinio
int fBrain(){
   
   bconhecimento[0][0]=1;
   bconhecimento[0][1]=1;
   bconhecimento[0][2]=1;
   //--------------------
   bconhecimento[1][0]=1;
   bconhecimento[1][1]=1;
   bconhecimento[1][2]=0;
   //--------------------
   bconhecimento[2][0]=1;
   bconhecimento[2][1]=0;
   bconhecimento[2][2]=1;
   //--------------------
   bconhecimento[3][0]=0;
   bconhecimento[3][1]=1;
   bconhecimento[3][2]=1;
   //--------------------
   bconhecimento[4][0]=0;
   bconhecimento[4][1]=0;
   bconhecimento[4][2]=1;
   //--------------------
   bconhecimento[5][0]=1;
   bconhecimento[5][1]=0;
   bconhecimento[5][2]=0;
   //--------------------
   bconhecimento[6][0]=0;
   bconhecimento[6][1]=1;
   bconhecimento[6][2]=0;
   //--------------------
   bconhecimento[7][0]=0;
   bconhecimento[7][1]=0;
   bconhecimento[7][2]=0;
   int i,soma=0;
   

   //busca na base de conhecimento
   for(i=0;i<m;i++){
      if((bconhecimento[i][0]==vetresp[0])&&(bconhecimento[i][1]==vetresp[1])&&(bconhecimento[i][2]==vetresp[2])){
         soma=bconhecimento[i][0]+bconhecimento[i][1]+bconhecimento[i][2];
      } 
   }
   //retorna soma de dados na busca
   return soma;
}



//função limpa matriz
void fLimpaConciencia(){
   int i;
   if(ponteiro > 0){
     for(i=0;i<ponteiro;i++){
      cerebro[i]=cerebro[i+1];
     }
   }
   else{
      printf("Pensamento Processado\n");
     }
}

//Função para obter dados de juros
void fJurosin(){
   char resp1;
   
   printf("\nJuros em Alta?[y/n]");
   scanf("%s",&resp1);
   
   if((resp1 == 'y') || (resp1 == 'Y')){
      vjr = 1;
      fCompra(vjr);
   }
   else if((resp1 == 'n')||(resp1 == 'N'))
   {
      fCompra(0);
   }else{
      if(ressystem%2==0){
      
         printf("Ja falei para prestar atencaos.\n");
      }else{
         printf("Por favor se atente a pergunta.\n");
         
      }
      ressystem++;
      fJurosin();
   }
}


//função para validar alta do dolar
void fDolarAlta(){
   char dolar;
      
   printf("\nDolar em Alta?[y/n]");
   scanf("%s",&dolar);
   
   if((dolar == 'y') || (dolar == 'Y')){
      dl = 1;
      fCompra(dl);
   }
   else if((dolar == 'n')||(dolar == 'N')){
      fCompra(0);
   }
   else{
      
      if(ressystem1%2==0){
         
         printf("Ja falei para prestar atencao.\n");
      }else{
         printf("Por favor se atente a pergunta.\n");
         
      }
      ressystem1++;
      fDolarAlta();
    }
   
}

//função para validar BCJuros
void fBCJuros(){
   char bcjr;
   
   printf("\nBCJuros em alta [y/n]?");
   scanf("%s",&bcjr);
   
   if((bcjr == 'y') || (bcjr == 'Y')){
      bcj = 1;
      fCompra(bcj);
   }
   else if((bcjr == 'n' )||(bcjr == 'N')){
      fCompra(0);
   }
   else{
      if(ressystem2%2==0){
      
         printf("Ja falei para prestar atencao.\n");
      }else{
         printf("Por favor se atente a pergunta.\n");
         
      }
      
      fBCJuros();
   }
   
}

//armazena informações na pilha de respostas
void fCompra(int rp){
   if(pont < n){
      vetresp[pont]=rp;
      pont++;
   }
}

//limpa pilha de respostas da simulação
void flimpaResp(){
   int laco1;
   if(pont > 0){
         for(laco1=0;laco1<n;laco1++){
            vetresp[laco1]=vetresp[laco1+1];
            pont--;
         }
   }
}

Scripts recomendados

Fibonnaci com Memoization

Rotina para controle de portas paralelas em C. (biblioteca LP.h)

Combustivel

Árvore AVL, usando arquivos para armazenamento de dados

Jogo Windows Invaders (com gráficos)


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts