Sites Grátis no Comunidades.net

 maxprimenumber


Programas C

/*           Desenvolvido por Adriano Rocha Pereira            */
/*             e-mail:  maxprimenumber@gmail.com               */
/*      Home Page:  http://maxprimenumber.comunidades.net      */


#include 

void joga_na_tela ( char v[], int a, int k, int *lancefeito );

int
main ()
{
  int i, k, n, a, entra, analisa, lancefeito;
  char v[9];

  entra=1;
  while ( entra ) {
    analisa=3;
    for ( i = 0 ; i < 9 ; i++ )
      v[i]=' ';

    printf("
");
    printf("                           J O G O     D A     V E L H A  
");
    printf("
");
    printf("
");
    printf("                            Desenvolvido por |AstroRei|   
");
    printf("
");
    printf("                                     H      H         
");
    printf("                                 A1  H  A2  H  A3     
");
    printf("                                     H      H         
");
    printf("                               ====================   
");
    printf("                                     H      H         
");
    printf("                                 A4  H  A5  H  A6     
");
    printf("                                     H      H         
");
    printf("                               ====================   
");
    printf("                                     H      H         
");
    printf("                                 A7  H  A8  H  A9     
");
    printf("                                     H      H         
");
    for ( i = 0 ; i < 4 ; i++ )
      printf("
");
    printf(" O Jogador1 joga com 'X' e o Jogador2 joga com 'O'.   
");
    printf("
");
    printf("
");
    printf(" Jogador1, por gentileza, qual lance deseja fazer? A");
    scanf("%d", &a);

    k=0;
    joga_na_tela ( v, a, k, &lancefeito );
    k++;

    n=1;
    while ( n ) {
      printf(" Jogador%d, por gentileza, qual lance deseja fazer? A", ((k%2)+1));
      scanf("%d", &a);
      joga_na_tela ( v, a, k, &lancefeito );
      if ( lancefeito )
        while ( lancefeito ) {
          printf(" Esta jogada ja foi feita, por gentileza, escolha outro lance. A");
          scanf("%d", &a);
          joga_na_tela ( v, a, k, &lancefeito );
        }
      k++;
      if (    ( (v[0] == 'X') && (v[1] == 'X') && (v[2] == 'X') ) || ( (v[3] == 'X') && (v[4] == 'X') && (v[5] == 'X') )
           || ( (v[6] == 'X') && (v[7] == 'X') && (v[8] == 'X') ) || ( (v[0] == 'X') && (v[3] == 'X') && (v[6] == 'X') )
           || ( (v[1] == 'X') && (v[4] == 'X') && (v[7] == 'X') ) || ( (v[2] == 'X') && (v[5] == 'X') && (v[8] == 'X') )
           || ( (v[0] == 'X') && (v[4] == 'X') && (v[8] == 'X') ) || ( (v[2] == 'X') && (v[4] == 'X') && (v[6] == 'X') ) ) {
        n=0;
        analisa=0;
      }
      if (    ( (v[0] == 'O') && (v[1] == 'O') && (v[2] == 'O') ) || ( (v[3] == 'O') && (v[4] == 'O') && (v[5] == 'O') )
           || ( (v[6] == 'O') && (v[7] == 'O') && (v[8] == 'O') ) || ( (v[0] == 'O') && (v[3] == 'O') && (v[6] == 'O') )
           || ( (v[1] == 'O') && (v[4] == 'O') && (v[7] == 'O') ) || ( (v[2] == 'O') && (v[5] == 'O') && (v[8] == 'O') )
           || ( (v[0] == 'O') && (v[4] == 'O') && (v[8] == 'O') ) || ( (v[2] == 'O') && (v[4] == 'O') && (v[6] == 'O') ) ) {
        n=0;
        analisa=1;
      }
      if ( k == 9 )
        n=0;
    }
    if ( analisa == 0 ) {
      printf("                 !!!!! O Jogador1 foi o Grande Vencedor !!!!! 
");
      printf("
");
      printf("
");
    }
    else
      if ( analisa == 1 ) {
        printf("                 !!!!! O Jogador2 foi o Grande Vencedor !!!!! 
");
        printf("
");
        printf("
");
      }
      else {
        printf("                   !!!!! O Jogo Terminou Sem Vencedor !!!!! 
");
        printf("
");
        printf("
");
      }
    printf("Digite '1' para iniciar um novo jogo, ou '0' para sair ");
    scanf("%d", &entra);
  }

  return 0;
}


void
joga_na_tela ( char v[], int a, int k, int *lancefeito )
{
  int i, lance;

  a=a-1;

  lance=0;
  if ( ( v[a] == 'X' ) || ( v[a] == 'O' ) )
    lance=1;

  if ( lance == 0 ) {
    if ( (k%2) == 0 )
      v[a]='X';
    else
      v[a]='O';

    for ( i = 0 ; i < 5 ; i++ )
      printf("
");
    printf("                                     H     H         
");
    printf("                                  %c  H  %c  H  %c     
", v[0], v[1], v[2]);
    printf("                                     H     H         
");
    printf("                                =================    
");
    printf("                                     H     H         
");
    printf("                                  %c  H  %c  H  %c     
", v[3], v[4], v[5]);
    printf("                                     H     H         
");
    printf("                                =================    
");
    printf("                                     H     H         
");
    printf("                                  %c  H  %c  H  %c     
", v[6], v[7], v[8]);
    printf("                                     H     H         
");
    for ( i = 0 ; i < 8 ; i++ )
      printf("
");

    *lancefeito=lance;
  }
  else
    *lancefeito=lance;
}

 

------ ------ ------

 

/*           Desenvolvido por Adriano Rocha Pereira            */
/*             e-mail:  maxprimenumber@gmail.com               */
/*      Home Page:  http://maxprimenumber.comunidades.net      */


#include 
#define MAX 506

int le_vetor ( int a[], int digito );

void prod ( int vet1[], int digv1, int d, int digv2, int subsoma[][MAX], int quant[] );

void maior ( int vetor[], int w, int *maxmaior );

void resultado ( int somavetor[][MAX], int h, int g, int b[], int *arp );

int
main ()
{
  int r, u, t, i, d, adic, elemaior, maxmaior, maravearp, arp;
  int quant[MAX], result[MAX];
  int l, c, subsoma[MAX][MAX];
  int digito, num1[MAX], dig1, num2[MAX], dig2;

  printf("
");
  printf("                            2-3-5-7-11-13-17-19-23-29-31 
");
  printf("                           |                           | 
");
  printf("                           97    D e v e l o p e d    37 
");
  printf("                           |            by             | 
");
  printf("                           89        AstroRei         41 
");
  printf("                           |                           | 
");
  printf("                           83-79-73-71-67-61-59-53-47-43 
");
  printf("
");
  printf("
");
  printf("                               Super  Multiplicadora     
");
  printf("
");
  printf("
");
  printf("
");
  printf("
");
  printf("
");
  printf("
");
  printf("
");
  printf("
");
  printf("
");
  printf("
");
  printf("
");
  printf("
");

  while (1) {

    printf("
");
    printf("Quantos digitos tera o numero1: ");
    scanf("%d", &digito);
    if ( digito > (((MAX-(MAX%2))/2)-3) ) {
      printf("
");
      printf("!!*** Valor Invalido ***!! O numero de digitos deve ser menor ou igual a %d. 
", (((MAX-(MAX%2))/2)-3));
      return 0;
    }
    else {
      dig1=digito;
      printf("
");
      printf("Quais os digitos do numero1 
");
      printf("
");
      r=le_vetor ( num1, dig1 );
      if ( r ) {
        printf("
");
        printf("!!*** Valor Invalido ***!! Digite apenas um unico algarismo entre 0 a 9. 
");
        return 0;
      }
      else {
        printf("
");
        printf(" Numero1 = ");
        for ( i = (dig1-1) ; i >= 0 ; i-- )
          printf("%d ", num1[i]);
        printf("
");

        printf("
");
        printf("Quantos digitos tera o numero2: ");
        scanf("%d", &digito);
        if ( digito > (((MAX-(MAX%2))/2)-3) ) {
          printf("
");
          printf("!!*** Valor Invalido ***!! O numero de digitos deve ser menor ou igual a %d. 
", (((MAX-(MAX%2))/2)-3));
          return 0;
        }
        else {
          dig2=digito;
          printf("
");
          printf("Quais os digitos do numero2 
");
          printf("
");
          r=le_vetor ( num2, dig2 );
          if ( r ) {
            printf("
");
            printf("!!*** Valor Invalido ***!! Digite apenas um unico algarismo entre 0 a 9. 
");
            return 0;
          }
          else {
            printf("
");
            printf(" Numero1 = ");
            for ( i = (dig1-1) ; i >= 0 ; i-- )
              printf("%d ", num1[i]);
            printf("
");
            printf(" Numero2 = ");
            for ( i = (dig2-1) ; i >= 0 ; i-- )
              printf("%d ", num2[i]);
            printf("
");

            for ( i = 0 ; i < dig2 ; i++ ) {
              d=num2[i];
              prod ( num1, dig1, d, i, subsoma, quant );
            }

            maior ( quant, dig2, &maxmaior );
            elemaior=maxmaior;

            for ( u = 0 ; u < dig2 ; u++ )
              for ( t = quant[u] ; t < elemaior ; t++ )
                subsoma[u][t]=0;

            printf("
");
            printf("--------------------------------------------------------------------------------");

            printf("     ");
            for ( c = (dig1-1) ; c >= 0 ; c-- )
              printf("%d ", num1[c]);
            printf("
");
            printf("      x ");
            for ( c = (dig2-1) ; c >= 0 ; c-- )
              printf("%d ", num2[c]);
            printf("
");

            printf("--------------------------------------------------------------------------------");

            printf("
");
            for ( l = 0 ; l < dig2 ; l++ ) {
              printf("     ");
              for ( c = (elemaior-1) ; c >= 0 ; c-- )
                printf("%d ", subsoma[l][c]);
              printf("
");
            }
            printf(" +   
");

            printf("--------------------------------------------------------------------------------");

            resultado ( subsoma, elemaior, dig2, result, &arp );
            maravearp=arp;

            if ( maravearp == elemaior ) {
              printf("     ");
              for ( i = (maravearp-1) ; i >= 0 ; i-- )
                printf("%d ", result[i]);
              printf("
");
              printf("--------------------------------------------------------------------------------");
            }
            else {
              printf("   ");
              for ( i = (maravearp-1) ; i >= 0 ; i-- )
                printf("%d ", result[i]);
              printf("
");
              printf("--------------------------------------------------------------------------------");
            }
          }
        }
      }
    }
  }

  return 0;
}


int le_vetor ( int a[], int digito )
{
  int i, k;

  k=0;
  for ( i = (digito-1) ; i >= 0 ; i-- ) {
    scanf("%d", &a[i]);
    if ( (a[i]/10) != 0 ) {
      k=1;
      i=-1;
    }
  }
  if ( k )
    return 1;
  else
    return 0;
}


void prod ( int vet1[], int digv1, int d, int digv2, int subsoma[][MAX], int quant[] )
{
  int k, c, adic;

  adic=0;
  for ( c = digv2 ; c < (digv1+digv2) ; c++ )
    if ( ( d*vet1[c-digv2]+adic ) < 10 ) {
      subsoma[digv2][c]=d*vet1[c-digv2]+adic;
      adic=0;
      if ( c == (digv1+digv2-1) )
        quant[digv2]=digv1+digv2;
    }
    else {
      subsoma[digv2][c]=(d*vet1[c-digv2]+adic)%10;
      if ( c == (digv1+digv2-1) ) {
        quant[digv2]=digv1+digv2+1;
        subsoma[digv2][digv1+digv2]=(d*vet1[c-digv2]+adic)/10;
      }
      adic=(d*vet1[c-digv2]+adic)/10;
    }

  for ( k = 0 ; k < digv2 ; k++ )
    subsoma[digv2][k]=0;
}


void maior ( int vetor[], int w, int *maxmaior )
{
  int i, maximo;

  maximo=vetor[0];
  for ( i = 1 ; i < w ; i++ )
    if ( vetor[i] > maximo )
      maximo=vetor[i];

  *maxmaior=maximo;
}


void resultado ( int somavetor[][MAX], int h, int g, int b[], int *arp )
{
  int i, j, adic, soma, tarpf;

  adic=0;
  for ( i = 0 ; i < h ; i++ ) {
    soma=0;
    for ( j = 0 ; j < g ; j++ ) {
      soma=somavetor[j][i]+soma+adic;
      adic=0;
    }
    if ( soma < 10 ) {
      b[i]=soma;
      adic=0;
      if ( i == (h-1) )
        tarpf=h;
    }
    else {
      b[i]=soma%10;
      adic=soma/10;
      if ( i == (h-1) ) {
        tarpf=h+1;
        b[i+1]=adic;
      }
    }
  }

  *arp=tarpf;
}

 

------ ------ ------

 

/*           Desenvolvido por Adriano Rocha Pereira            */
/*             e-mail:  maxprimenumber@gmail.com               */
/*      Home Page:  http://maxprimenumber.comunidades.net      */
/*     Desenvolvido entre os dias 22 e 25 de maio de 2005      */

/*            Não me preocupei com a programação preventiva!          */
/*       Também não utilizei o conceito de função na programação      */
/*    de modo a evitar a "repetição" do código (mas isto é apenas     */
/*        "artigo de perfumaria", hehehe, facilmente moldável).       */
/*       O que importa é o funcional para saciar a curiosidade.       */

/*      O "progarpmoeda" guarda em sua memória as sequências novas distintas,         */
/*    possibilitando, assim, após aplicado o movimento A ou B, a eliminação de        */
/*    sequências (que computam um total de 10, já que o movimento é aplicado a        */
/* partir de cada uma das 10 moedas disponibilizadas em círculo) vindouras repetidas. */


#include 
#define MAX 13
#define MAX1 1100

int
main () {
 int i, j, k, e, apliq;
 int m, n, c, d, f, p, t, g, h, z, x, r, s, o, l, u, seqigual;
 int a[MAX], b[MAX], org[MAX1];
 int vet[MAX1][MAX];

 for (i = 0; i <= 9; i++)
   vet[0][i] = 1;
 m = 1;
 e = 1;
 while (e) {
   printf("
");
   printf("                             ProgRAma Moeda 
");
   printf("                         (desenvolvido pelo ARP) 
");
   printf("
");
   printf("A sequencia e: a1  a2  a3  a4  a5  a6  a7  a8  a9  a10 
");
   printf("
");
   printf("a1, a2, ..., a10 so podem assumir os valores `0` ou `1`. Imagine que a1, a2, ..., ");
   printf("a10 estao ao redor de uma circunferencia, portanto a1 esta ao lado de a10. ");
   printf("
");
   printf("Note que as sequencias a seguir possuem a mesma disposicao(pois estao dispostas ");
   printf("ao redor de uma circunferencia): 1100011001, 1000110011, 0001100111, 0011001110.");
   printf("
");
   printf("Movimento A: trocar quatro numeros consecutivos da sequencia. 
");
   printf("Movimento B: trocar cinco numeros consecutivos X X Y X X da sequencia, onde `X` deve ser ");
   printf("trocado e `Y` deve permanecer inalterado. 
");
   printf("
");
   printf("Tendo este programa em maos voce podera saber rapidamente, pensando de forma adequada, ");
   printf("todas as possiveis configuracoes a partir da aplicacao dos movimentos A e B. 
");
   printf("
");
   printf("E possivel atraves de uma sequencia finita de movimentos A e B, tendo inicialmente a1 = a2 = ");
   printf("... = a10 = 1, obter a1 = a2 = ... = a10 = 0 ? 
");
   printf("
");
   printf("Entre com os valores da sequencia para poder aplicar o movimento A ou B. 
");
   printf("
");

   for (i = 0; i <= 9; i++) {
     printf("a%d = ", i+1);
     scanf("%d", &a[i]);
     printf("
");
   }

   printf("
");
   printf("A sequencia desejada e:       ");
   for (i = 0; i <= 9; i++)
     printf("%d ", a[i]);
   printf("
");
   printf("
");
   printf("
");

   printf("Deseja aplicar qual movimento? Para A, digite `1`, para B, digite `2`  ");
   scanf("%d", &apliq);
   printf("
");

   if (apliq == 1) {
     for (i = 0; i <= 6; i++) {
       for (j = 0; j <= 9; j++)
         b[j] = a[j];
       for (j = 0; j <= 3; j++)
         if (a[i+j] == 0)
           b[i+j] = 1;
         else
           b[i+j] = 0;

       for (j = 0; j <= 9; j++)
         vet[m+i][j] = b[j];
     }
     for (i = 7; i <= 9; i++) {
       for (j = 0; j <= 9; j++)
         b[j] = a[j];
       for (j = 0; j <= i-7; j++)
         if (a[j] == 0)
           b[j] = 1;
         else
           b[j] = 0;
       for (j = i; j <= 9; j++)
         if (a[j] == 0)
           b[j] = 1;
         else
           b[j] = 0;

       for (j = 0; j <= 9; j++)
         vet[m+i][j] = b[j];
     }

     h = 0;
     for (s = 0; s <= m+9; s++) {
       z = 1;
       for (g = 0; g < h; g++)
         if (s == org[g]) {
           g = h;
           z = 0;
         }
       for (r = s+1; r <= m+9 && z; r++) {
         u = 1;
         for (g = 0; g < h; g++)
           if (r == org[g]) {
             g = h;
             u = 0;
           }
         if (u) {
           //
           i = 0;
           t = 0;
           //
           for (j = 0; j <= 9; j++) {
             o = vet[r][j];
             if (o == vet[s][i]) {
               i++;
               if (j == 9)
                 if (t != 0)
                   for (p = 0; p < t; p++) {
                     l = vet[r][p];
                     if (l == vet[s][i]) {
                       i++;
                       if (p == t-1)
                         seqigual = 1;
                     }
                     else {
                       p = t;
                       seqigual = 0;
                     }
                   }
                 else
                   seqigual = 1;
             }
             else {
               t++;
               if (i != 0) {
                 j = j-i;
                 i = 0;
               }
               if (j == 9)
                 seqigual = 0;
             }
		   }
		   //
           if (seqigual != 1) {
             i = 0;
             t = 0;
             //
             for (j = 9; j >= 0; j--) {
               o = vet[r][j];
               if (o == vet[s][i]) {
                 i++;
                 if (j == 0)
                   if (t != 0)
                     for (p = 9; p > 9-t; p--) {
                       l = vet[r][p];
                       if (l == vet[s][i]) {
                         i++;
                         if (p == 10-t)
                           seqigual = 1;
                       }
                       else {
                         p = 9-t;
                         seqigual = 0;
                       }
                     }
                   else
                     seqigual = 1;
               }
               else {
                 t++;
                 if (i != 0) {
                   j = j+i;
                   i = 0;
                 }
                 if (j == 0)
                   seqigual = 0;
               }
             }
             //
           }
           if (seqigual) {
             org[h] = r;
             h++;
           }
         //
         }
       }
     }

   }
   else {
     for (i = 0; i <= 5; i++) {
       for (j = 0; j <= 9; j++)
         b[j] = a[j];
       for (j = 0; j <= 4; j++)
         if (j != 2)
           if (a[i+j] == 0)
             b[i+j] = 1;
           else
             b[i+j] = 0;
         else
           ;

       for (j = 0; j <= 9; j++)
         vet[m+i][j] = b[j];
     }
     for (i = 6; i <= 9; i++) {
       for (j = 0; j <= 9; j++)
         b[j] = a[j];
       for (j = 0; j <= i-6; j++)
         if (i == 8)
           for (k = 1; k <= 2; k++)
             if (a[k] == 0)
               b[k] = 1;
             else
               b[k] = 0;
         else
           if (i == 9)
             for (k = 0; k <= 3; k++)
               if (k != 1)
                 if (a[k] == 0)
                   b[k] = 1;
                 else
                   b[k] = 0;
               else
                 ;
           else
             if (a[j] == 0)
               b[j] = 1;
             else
               b[j] = 0;
       for (j = i; j <= 9; j++)
         if (j != i+2 )
           if (a[j] == 0)
             b[j] = 1;
           else
             b[j] = 0;
         else
           ;

         for (j = 0; j <= 9; j++)
           vet[m+i][j] = b[j];
     }

     h = 0;
     for (s = 0; s <= m+9; s++) {
       z = 1;
       for (g = 0; g < h; g++)
         if (s == org[g]) {
           g = h;
           z = 0;
         }
       for (r = s+1; r <= m+9 && z; r++) {
         u = 1;
         for (g = 0; g < h; g++)
           if (r == org[g]) {
             g = h;
             u = 0;
           }
         if (u) {
           //
           i = 0;
           t = 0;
           //
           for (j = 0; j <= 9; j++) {
             o = vet[r][j];
             if (o == vet[s][i]) {
               i++;
               if (j == 9)
                 if (t != 0)
                   for (p = 0; p < t; p++) {
                     l = vet[r][p];
                     if (l == vet[s][i]) {
                       i++;
                       if (p == t-1)
                         seqigual = 1;
                     }
                     else {
                       p = t;
                       seqigual = 0;
                     }
                   }
                 else
                   seqigual = 1;
             }
             else {
               t++;
               if (i != 0) {
                 j = j-i;
                 i = 0;
               }
               if (j == 9)
                 seqigual = 0;
             }
		   }
		   //
           if (seqigual != 1) {
             i = 0;
             t = 0;
             //
             for (j = 9; j >= 0; j--) {
               o = vet[r][j];
               if (o == vet[s][i]) {
                 i++;
                 if (j == 0)
                   if (t != 0)
                     for (p = 9; p > 9-t; p--) {
                       l = vet[r][p];
                       if (l == vet[s][i]) {
                         i++;
                         if (p == 10-t)
                           seqigual = 1;
                       }
                       else {
                         p = 9-t;
                         seqigual = 0;
                       }
                     }
                   else
                     seqigual = 1;
               }
               else {
                 t++;
                 if (i != 0) {
                   j = j+i;
                   i = 0;
                 }
                 if (j == 0)
                   seqigual = 0;
               }
             }
             //
           }
           if (seqigual) {
             org[h] = r;
             h++;
           }
         //
         }

       }
     }

   }

   x = 0;
   for (f = m; f <= m+9; f++)
     for (g = 0; g < h; g++)
       if (f == org[g])
         g = h;
       else
         if (g == h-1) {
           for (c = 0; c <= 9; c++)
             vet[m+x][c] = vet[f][c];
           x++;
         }
   m = m+x;

   printf("
");
   printf("Seguem as sequencias distintas ate entao (a partir do inicio do programa ate este exato instante): 
");
   printf("
");
   for (d = 0; d < m; d++) {
     printf("Sequencia %d:  ", d);
     for (n = 0; n <= 9; n++)
       printf("%d ", vet[d][n]);
     printf("
");
   }

   printf("
");
   printf("Digite o numero `1` e aperte ENTER para entrar com uma nova sequencia  ");
   scanf("%d", &e);
 }

 return 0;
}
Criar um Site Grátis   |