Fórum de Matemática
DÚVIDAS? Nós respondemos!

Um Fórum em Português dedicado à Matemática
Data/Hora: 21 jun 2025, 07:16

Os Horários são TMG [ DST ]




Fazer Nova Pergunta Responder a este Tópico  [ 20 mensagens ]  Ir para página Anterior  1, 2
Autor Mensagem
MensagemEnviado: 21 fev 2015, 00:57 
Offline

Registado: 13 fev 2015, 12:42
Mensagens: 11
Localização: São Paulo
Agradeceu: 3 vezes
Foi agradecido: 0 vez(es)
Baltuilhe, consegui gerar o arquivo, o problema é que não estava encontrando o arquivo .txt com as combinações geradas no codeblocks! ^^

Bem, gostaria de só tirar mais uma dúvida. De que maneira posso inserir mais números nas linhas ou colunas pelo código? Por exemplo:

Se eu quiser colocar mais números na linha, tipo 116 117 118, mas ainda tendo o 125 como último número da última coluna...

101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118
101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 119
101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 120
101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 121
101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 122
101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 123
101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 124
101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 125

ou aumentar somente os últimos números da última coluna...

101 102 103 104 105 106 107 108 109 110 111 112 113 114 115
101 102 103 104 105 106 107 108 109 110 111 112 113 114 116
101 102 103 104 105 106 107 108 109 110 111 112 113 114 117
101 102 103 104 105 106 107 108 109 110 111 112 113 114 118
101 102 103 104 105 106 107 108 109 110 111 112 113 114 119
101 102 103 104 105 106 107 108 109 110 111 112 113 114 120
101 102 103 104 105 106 107 108 109 110 111 112 113 114 121
101 102 103 104 105 106 107 108 109 110 111 112 113 114 122
101 102 103 104 105 106 107 108 109 110 111 112 113 114 123
101 102 103 104 105 106 107 108 109 110 111 112 113 114 124
101 102 103 104 105 106 107 108 109 110 111 112 113 114 125
101 102 103 104 105 106 107 108 109 110 111 112 113 114 126
101 102 103 104 105 106 107 108 109 110 111 112 113 114 127

Ou então as duas coisas combinadas?


Topo
 Perfil  
 
MensagemEnviado: 21 fev 2015, 05:48 
Offline

Registado: 08 jan 2015, 18:39
Mensagens: 930
Localização: Campo Grande - MS - Brasil
Agradeceu: 14 vezes
Foi agradecido: 475 vezes
ramon123 Escreveu:
Baltuilhe, consegui gerar o arquivo, o problema é que não estava encontrando o arquivo .txt com as combinações geradas no codeblocks! ^^

Bem, gostaria de só tirar mais uma dúvida. De que maneira posso inserir mais números nas linhas ou colunas pelo código? Por exemplo:

Se eu quiser colocar mais números na linha, tipo 116 117 118, mas ainda tendo o 125 como último número da última coluna...

101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118
101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 119
101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 120
101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 121
101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 122
101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 123
101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 124
101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 125

ou aumentar somente os últimos números da última coluna...

101 102 103 104 105 106 107 108 109 110 111 112 113 114 115
101 102 103 104 105 106 107 108 109 110 111 112 113 114 116
101 102 103 104 105 106 107 108 109 110 111 112 113 114 117
101 102 103 104 105 106 107 108 109 110 111 112 113 114 118
101 102 103 104 105 106 107 108 109 110 111 112 113 114 119
101 102 103 104 105 106 107 108 109 110 111 112 113 114 120
101 102 103 104 105 106 107 108 109 110 111 112 113 114 121
101 102 103 104 105 106 107 108 109 110 111 112 113 114 122
101 102 103 104 105 106 107 108 109 110 111 112 113 114 123
101 102 103 104 105 106 107 108 109 110 111 112 113 114 124
101 102 103 104 105 106 107 108 109 110 111 112 113 114 125
101 102 103 104 105 106 107 108 109 110 111 112 113 114 126
101 102 103 104 105 106 107 108 109 110 111 112 113 114 127

Ou então as duas coisas combinadas?


Boa noite!

Da forma como gostaria de modificar teria que aprender um pouco mais sobre laços (loops) na linguagem de programação C para poder resolver quaisquer problemas que tenha.
A solução que criei foi um 'quebra-galho' para resolver rapidamente o que pediu.
Para resolver todos os casos teria que ser repensado e criar uma solução mais robusta, de forma a poder entrar os parâmetros sem precisar recriar o código.
No caso, para fazer o que gostaria, teria que criar para cada nova coluna mais um laço for, consequentemente mais uma variável (para armazenar os valores que essa coluna terá).
Para aumentar o limite teria que aumentar para todos os laços um pouco mais o limite. Para cada número a mais, um a mais (somado, mesmo).
Vou tentar modificar o código abaixo para este limite ser mais maleável.

Código:
#include<stdio.h>

int main(void)
{
   FILE *combinacoes;
   int a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, fator, limite;
   
   combinacoes = fopen("combinacoes.txt", "wt");
   
   fator = 100;
   limite = fator+25;
//   printf("%d", fator);
   for(a = fator+1; a < limite-13; a++) // { printf("%d ", a); // Como são valores de 101 a 111 aqui, por isso o limite ficou como ficou.
      for(b = a+1; b < limite-12; b++) //{ printf("%d ", b);
         for(c = b+1; c < limite-11; c++) //{ printf("%d ", c);
            for(d = c+1; d < limite-10; d++) //{ printf("%d ", d);
               for(e = d+1; e < limite-9; e++) //{ printf("%d ", e);
                  for(f = e+1; f < limite-8; f++) //{ printf("%d ", f);
                     for(g = f+1; g < limite-7; g++) //{ printf("%d ", g);
                        for(h = g+1; h < limite-6; h++) //{ printf("%d ", h);
                           for(i = h+1; i < limite-5; i++) //{ printf("%d ", i);
                              for(j = i+1; j < limite-4; j++) //{ printf("%d ", j);
                                 for(k = j+1; k < limite-3; k++) //{ printf("%d ", k);
                                    for(l = k+1; l < limite-2; l++) //{ printf("%d ", l);
                                       for(m = l+1; m < limite-1; m++) //{ printf("%d ", m);
                                          for(n = m+1; n < limite; n++) //{ printf("%d ", n);
                                             for(o = n+1; o < limite+1; o++) //{ printf("%d ", o);
                                                fprintf(combinacoes, "%d %d %d %d %d %d %d %d %d %d %d %d %d %d %d\n", a, b, c, d, e, f, g, h, i, j, k, l, m, n, o);
   
   fclose(combinacoes);
   
   return 0;
   
}


Abraços!

_________________
Baltuilhe
"Nós somos o que fazemos repetidamente. Excelência, então, não é um modo de agir, é um hábito." Aristóteles


Topo
 Perfil  
 
MensagemEnviado: 21 fev 2015, 15:01 
Offline

Registado: 13 fev 2015, 12:42
Mensagens: 11
Localização: São Paulo
Agradeceu: 3 vezes
Foi agradecido: 0 vez(es)
Ok, fico no aguardo! ;)


Topo
 Perfil  
 
MensagemEnviado: 23 fev 2015, 14:24 
Offline

Registado: 08 jan 2015, 18:39
Mensagens: 930
Localização: Campo Grande - MS - Brasil
Agradeceu: 14 vezes
Foi agradecido: 475 vezes
Bom dia!

Divirta-se! :)
Código:
#include<stdio.h>
#include<stdlib.h>

int main(void)
{
   int *variavel, ponteiro, limite_inf, limite_sup, limite, n, i;
   FILE *arquivo;

   arquivo = fopen("combinacoes.txt", "wt");

   printf("Entre com o limite inferior e o limite superior:");
   scanf("%d %d", &limite_inf, &limite_sup);

   printf("Entre com a quantidade de elementos a serem combinados por vez:");
   scanf("%d", &n);

   variavel = (int *)malloc(n*sizeof(int));

   for(i = 0; i < n; i++)
      variavel[i] = limite_inf+i;

   ponteiro = n;
   while(variavel[0] <= limite_sup-n+1)
   {
      for(i = 0; i < n-1; i++)
         fprintf(arquivo, "%d ", variavel[i]);
      fprintf(arquivo, "%d\n", variavel[n-1]);

      while(ponteiro != 0 && (variavel[ponteiro-1] == limite_sup-(n-ponteiro)))
         ponteiro--;

      if(ponteiro == 0)
         ponteiro = 1;
      variavel[ponteiro-1]++;
      for(i = ponteiro; i < n; i++)
         variavel[i] = variavel[i-1]+1;
      ponteiro = n;

   }

   free(variavel);
   fclose(arquivo);

   return 0;
}


_________________
Baltuilhe
"Nós somos o que fazemos repetidamente. Excelência, então, não é um modo de agir, é um hábito." Aristóteles


Topo
 Perfil  
 
MensagemEnviado: 23 fev 2015, 16:43 
Offline

Registado: 13 fev 2015, 12:42
Mensagens: 11
Localização: São Paulo
Agradeceu: 3 vezes
Foi agradecido: 0 vez(es)
Baltuilhe, Puxa vida, muito obrigado! Isso vai me ajudar bastante, não sei nem como agradecer... 'O'

Só gostaria que por gentileza colocasse os valores no exemplo que mostrei para que eu possa entender o código, pois estou um pouco perdido.


Topo
 Perfil  
 
 Título da Pergunta:
MensagemEnviado: 23 fev 2015, 17:59 
Offline

Registado: 08 jan 2015, 18:39
Mensagens: 930
Localização: Campo Grande - MS - Brasil
Agradeceu: 14 vezes
Foi agradecido: 475 vezes
Para gerar igual ao que pediu inicialmente entre com "101 125" (sem as aspas) e depois entre 15

_________________
Baltuilhe
"Nós somos o que fazemos repetidamente. Excelência, então, não é um modo de agir, é um hábito." Aristóteles


Topo
 Perfil  
 
MensagemEnviado: 23 fev 2015, 19:55 
Offline

Registado: 13 fev 2015, 12:42
Mensagens: 11
Localização: São Paulo
Agradeceu: 3 vezes
Foi agradecido: 0 vez(es)
Tentei inserir os valores 101 125 sem aspas em ("Entre com o limite inferior e o limite superior:") da seguinte forma:

(101 125), (101, 125), (101 125, 115) e (101, 125, 115), porém nenhuma destas maneiras funcionou.


Topo
 Perfil  
 
MensagemEnviado: 23 fev 2015, 20:39 
Offline

Registado: 08 jan 2015, 18:39
Mensagens: 930
Localização: Campo Grande - MS - Brasil
Agradeceu: 14 vezes
Foi agradecido: 475 vezes
Boa tarde!

Ficou assim?
Código:
Entre com o limite inferior e o limite superior:101 125
Entre com a quantidade de elementos a serem combinados por vez:15

Na pasta onde ele foi executado gera um arquivo combinacoes.txt com o resultado.

_________________
Baltuilhe
"Nós somos o que fazemos repetidamente. Excelência, então, não é um modo de agir, é um hábito." Aristóteles


Topo
 Perfil  
 
MensagemEnviado: 24 fev 2015, 00:02 
Offline

Registado: 13 fev 2015, 12:42
Mensagens: 11
Localização: São Paulo
Agradeceu: 3 vezes
Foi agradecido: 0 vez(es)
Quanto vou em BUILD > COMPILE CURRENT FILE, aparece os seguintes erros, como mostra a imagem:


Anexos:
erros.png
erros.png [ 73.83 KiB | Visualizado 4289 vezes ]
Topo
 Perfil  
 
MensagemEnviado: 24 fev 2015, 00:07 
Offline

Registado: 08 jan 2015, 18:39
Mensagens: 930
Localização: Campo Grande - MS - Brasil
Agradeceu: 14 vezes
Foi agradecido: 475 vezes
Ramon, boa noite!

Tente executar o programa que te passei sem alterar nada.
O próprio programa irá pedir os dados de entrada. Daí você digita (enquanto o programa estiver executando) que chegará no resultado desejado.

Abraços!

_________________
Baltuilhe
"Nós somos o que fazemos repetidamente. Excelência, então, não é um modo de agir, é um hábito." Aristóteles


Topo
 Perfil  
 
Mostrar mensagens anteriores:  Ordenar por  
Fazer Nova Pergunta Responder a este Tópico  [ 20 mensagens ]  Ir para página Anterior  1, 2

Os Horários são TMG [ DST ]


Quem está ligado:

Utilizadores a ver este Fórum: Nenhum utilizador registado e 42 visitantes


Criar perguntas: Proibído
Responder a perguntas: Proibído
Editar Mensagens: Proibído
Apagar Mensagens: Proibído
Enviar anexos: Proibído

Pesquisar por:
Ir para:  
cron