1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

Código sobre espaço amostral - erro no case 3

ESTOU COM PROBLEMAS NA IMPLEMENTAÇAO DO CASE 3 DO CODIGO A SEGUIR:

/*Bibliotecas*/
#include iostream.h
#include stdio.h
#include string.h
/*============================================================================*/
/*Macro*/
#define limite 12
/*============================================================================*/


//OBSERVAÇÃO 1:
//AQUI ESTÃO PROPOSTAS ALGUMAS FUNÇÕES QUE PODEM SER CRIADAS.
//PORÉM, NÃO HÁ A ABRIGATORIEDADE DE UTILIZAR ESTA ESTRUTURA.


/*Protótipos*/
/*Calcula uma probabilidade*/
double Probabilidade(int cardA,int cardEAm);

/*Imprime na tela o complementar de um conjunto*/
int Complemetar(int conj[500],int esp[500],int cardconj,int cardesp);

/*Retorna o conjuto intersecção e sua cardinalidade*/
int Inter(int conjA[500],int conjB[500],int cardA,int cardB,int intersec[500]);

/*Retorna o conjunto união e sua cardinalidade*/
int Uniao(int conjA[500],int conjB[500],int cardA,int cardB,int uniao[500]);


/*============================================================================*/
/****************************Programa de Estatística***************************/
/*============================================================================*/
main()
{

   //OBSERVAÇÃO 2:
   //ESTAS SÃO ALGUMAS VARIÁVEIS QUE PODERIAM SER UTILIZADAS NO CÓDIGO.
   //PORÉM ESTA É SÓ UMA SUGESTÃO. FICA A CRITÉRIO SO ALUNO A CRIAÇÃO E
   //DENOMINAÇÃO DAS VARIÁVEIS QUE JULGAR NECESSÁRIAS

   /*Types*/
   int  conjA[500],conjB[500],espAm[500],intersec[500],uniao[500];
   int  i=0,cardA=0,cardB=0,cardEAm=0,opcao=0,cardInter=0,cardUniao=0;
   int  retorno = 1000;

   double ProbA = 0.,ProbB = 0., ProbInter = 0.,ProbUniao = 0.;
   double ProbAcomp = 0.,ProbBcomp = 0;
   double ProbCondAB = 0.,ProbCondBA = 0.;

   char checkword[4] = "s";
   char password[4]  = "";

   bool chave      = true;

   FILE *imput1,*imput2,*imput3;

/*============================================================================*/
/******************************The code begins here****************************/
/*============================================================================*/
cout<<"==============================================================================="<<endl;
cout<<"****************************-Calculo de Probabilidades-************************"<<endl;
cout<<"==============================================================================="<<endl;

//OBSERVAÇÃO 3:
//A PARTIR DAQUI COMEÇA O CÓDIGO.
//PODE-SE VERIFICAR QUE AS ROTINAS DE ABERTURA DE ARQUIVO PARA LEITURA JÁ
//ESTÃO PRESENTES.


   /*Abrindo arquivo para leitura: ConjA.dat*/
   imput1 = fopen("ConjA.dat","r");/*Abre arquivo para ler em modo texto*/
      if(imput1==NULL)
       {
        cout<<"O conjunto A não pode ser aberto";
        exit(0);
       }

   /*Abrindo arquivo para leitura: ConjB.dat*/
   imput2 = fopen("ConjB.dat","r");/*Abre arquivo para ler em modo texto*/
      if(imput2==NULL)
       {
        cout<<"O conjunto B não pode ser aberto";
        exit(0);
       }

   /*Abrindo arquivo para leitura: EspAm.dat*/
   imput3 = fopen("EspAm.dat","r");/*Abre arquivo para ler em modo texto*/
      if(imput3==NULL)
       {
        cout<<"O conjunto Espaço Amostral não pode ser aberto";
        exit(0);
       }

/*============================================================================*/
//OBSERVAÇÃO 4:
//A PARTIR DESTE PONTO TEM INÍCIO A LEITURA DO CONTEÚDO DOS ARQUIVOS QUE JÁ
//FORAM ABERTOS.


   /*Lendo o Conjunto A*/
   fscanf(imput1,"%d\n",&cardA);

   /*Carregando conteúdo do arquivo ConjA.dat para o vetor ConjA*/
   cout<<"Conjunto A:\n";
   for(i=0;i<cardA;i++)
   {
    fscanf(imput1,"%d\n",&conjA[i]);
    cout<<conjA[i]<<"  ";
   }
   cout<<endl<<endl;
   fclose(imput1);/*Fechando arquivo de entrada nº 1*/

/*============================================================================*/
   /*Lendo o Conjunto B*/
   fscanf(imput2,"%d\n",&cardB);

   /*Carregando conteúdo do arquivo ConjA.dat para o vetor ConjA*/
   cout<<"Conjunto B:\n";
   for(i=0;i<cardB;i++)
   {
    fscanf(imput2,"%d\n",&conjB[i]);
    cout<<conjB[i]<<"  ";
   }
   cout<<endl<<endl;
   fclose(imput2);/*Fechando arquivo de entrada nº 2*/
/*============================================================================*/
   /*Lendo o Espaço amostral*/
   fscanf(imput3,"%d\n",&cardEAm);

   /*Carregando conteúdo do arquivo ConjA.dat para o vetor ConjA*/
   cout<<"Espaco Amostral:\n";
   for(i=0;i<cardEAm;i++)
   {
    fscanf(imput3,"%d\n",&espAm[i]);
    cout<<espAm[i]<<"  ";
   }
   cout<<endl<<endl;
   fclose(imput3);/*Fechando arquivo de entrada nº 3*/
/*============================================================================*/

//OBSERVAÇÃO 5:
//A PARTIR DAQUI AS OPÇÕES COMEÇAM A SEREM APRESENTADAS PARA O USUÁRIO


   do//ESTE "do" FAZ PARTE DO LAÇO DE REPETIÇÃO PARA DISPONIBILIZAR AS OPÇÕES.
   {
    /*Opções de Processamento*/
    cout<<"1  - Probabilidade do Conjunto A \n";
    cout<<"2  - Probabilidade do Conjunto B \n";
    cout<<"3  - Conjunto A complementar \n";
    cout<<"4  - Conjunto B complementar \n";
    cout<<"5  - Probabilidade do A complemetar \n";
    cout<<"6  - Probabilidade do B complemetar \n";
    cout<<"7  - Conjunto A inter B \n";
    cout<<"8  - Probabilidade do Conjunto A inter B \n";
    cout<<"9  - Conjunto A uniao B\n";
    cout<<"10 - Probabilidade do Conjunto A uniao B \n";
    cout<<"11 - Probabilidade Condicional A/B \n";
    cout<<"12 - Probabilidade Condicional B/A \n";
    cout<<endl;
/*============================================================================*/

//OBSERVAÇÃO 6:
//NESTE BLOCO COLETA-SE A OPÇÃO DO USUÁRIO.


    /*Opção de Processamento*/
    /*Inicializando "chave" para próxima iteração*/
    chave = true;
    do
    {
     printf("Entre com sua opcao: ");

     retorno = scanf("%d",&opcao); //Quando nada é digitado, scanf retorna "0".

     if ((opcao>limite)||(opcao<1)||(retorno==0))
      {
       printf("\n Numero de opcao invalido \n\n");
       cout<<endl;
       fflush(stdin);//Limpa todos os caracteres da entrada padrão
                     //meste caso o teclado. Será útil se o usuário
                     //entrar com um valor inválido de opção.
      }
     else chave = false;
    } while (chave == true); //Fim do Do_while


/*============================================================================*/
//OBSERVAÇÃO 7:
//A PARTIR DAQUI CADA GRUPO CONSTRUIRÁ O CÓDIGO PARA A EXECUÇÃO DAS OPÇÕES
//LISTADAS ACIMA.


   /*Rotinas para processamento*/
    cout<<endl;
    switch(opcao)
    {
     case 1:

        ProbA = (double (cardA))/(double(cardEAm));
        printf("Probabilidade de A: %lf \n",ProbA);

       break;

     case 2:

       ProbB = (double (cardB))/(double(cardEAm));
       printf("Probabilidade de B: %lf \n",ProbB);
       break;

     case 3:
          int complementar [500];
          int ProbAcomp[100];
          bool dif = false;
          int k=0;
          for (i=0 ; i<cardEAm ; i++) {
          for (int j=0; j<cardA; j++)
          if (espAm[i]==conjA[j]) {dif = true; continue;}
          }
          if(dif=false) {
          {complementar[k]= espAm[i]; k++}
          dif=false;
         // printf ("%d",ProbAcomp);
           }
     break;
       //Evento A complementar

     case 4:

       //evento B complementar

       break;

     case 5:

       //Probabilidade de A complementar

       break;

     case 6:

       //Probabilidade de B complementar

       break;

     case 7:

       // Evento Conjunto A inter B

       break;

     case 8:

       //Probabilidade de A inter B: ";

       break;

     case 9:

       //Evento A uniao B

       break;

     case 10:

       //Probabilidade de A uniao B

       break;

     case 11:

       //Probabilidade A condicional B

       break;

     case 12:

       //Probabilidade B condicional A

       break;
    }/*Fim do Switch-case*/

/*============================================================================*/
    printf ("Deseja sair? (s/n): ");
    scanf("%s",password);
    cout<<endl;
   }while(strcmp(password,checkword));//ESTA LINHA ENCERRA A EXECUÇÃO DO PRO-
                                      //GRAMA E FUNCIONA EM CONJUNTO COM O
                                      //"do" inicial.

}/*Fim do Main*/


//OBSERVAÇÃO 8:
//AS FUÇÕES QUE PROPOSTAS ABAIXO SÃO AQUELAS QUE TIVERAM OS SEUS PROTÓTIPOS
//DECLARADOS NO INÍCIO DO CÓDIGO. DA MESMA FORMA COMO O QUE FOI DITO NO
//PRINCÍPIO, ELAS SÃO DE USO OPCIONAL.


/*============================================================================*/
                       /*           FUNÇÕES          */
/*============================================================================*/
/*Com base em NCF e NCP, calcula a probabilidade*/
double Probabilidade(int cardA,int cardEAm)
{




}

/*============================================================================*/
/*Imprime na tela o complementar de um conjunto*/
int Complemetar(int conj[500],int esp[500],int cardconj,int cardesp)
{



}

/*============================================================================*/
/*Retorna o conjuto intersecção e sua cardinalidade*/
int Inter(int conjA[500],int conjB[500],int cardA,int cardB,int intersec[500])
{



}

/*============================================================================*/
/*Retorna o conjunto união e sua cardinalidade*/
int Uniao(int conjA[500],int conjB[500],int cardA,int cardB,int uniao[500])
{



}

OBS: ConjA.dat= 1 2 3 4 ConjB.dat= 3 4 7 8 EspAm.dat = 1 2 3 4 5 6 7 8 9 10

  • Cara por favor, especifique melhor sua dúvida, e procure formatar seu código dentro do bloco de código, está impossível intender o que foi feito ate agora

    Gabriel Guimarães   28 de nov de 2013
  • Ao invés de dizer que tem "Um problema" no código a seguir, prefira dizer "QUAL" problema.

    ViniGodoy   28 de nov de 2013
  • Paulo, pode ser que não seja isso, mas esse seu if está errado, ele está recebendo ao invés de comparar if(dif=false)

    shockerDragon   30 de nov de 2013
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

0 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags c c++ ou faça a sua própria pergunta.