Comment generer pour chaque resultat un fichier [Résolu]

Signaler
Messages postés
6
Date d'inscription
vendredi 13 octobre 2017
Statut
Membre
Dernière intervention
27 novembre 2017
-
Messages postés
6
Date d'inscription
vendredi 13 octobre 2017
Statut
Membre
Dernière intervention
27 novembre 2017
-
bonjour je voudrai savoir comment generer avec ce code source un fichier pour chaque resultat.voici le code

#include <stdio.h>
#define nb_boules 50
int main(void) {
 int i,j,k,m,n,p;

 FILE * fichier; 
 fichier=fopen("resultats.txt","w"); 
 printf("Debut du programme\nPatientez...\n\n"); 
 for(i=1;i<=nb_boules-5;i++)
  for(j=i+1;j<=nb_boules-4;j++)
   for(k=j+1;k<=nb_boules-3;k++)
    for(m=k+1;m<=nb_boules-2;m++)
     for(n=m+1;n<=nb_boules-1;n++)
      for(p=n+1;p<=nb_boules;p++)
       fprintf(fichier,"%d %d %d %d %d %d\n",i,j,k,m,n,p); 
 fclose(fichier);
 printf("Le programme a termine. Fin;)\n\n");
 return 0;
}


EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI

Merci d'y penser dans tes prochains messages.

6 réponses

Messages postés
2427
Date d'inscription
samedi 11 janvier 2014
Statut
Contributeur
Dernière intervention
6 mai 2021
137
Bonsoir
J'espère ne pas me tromper mais .........
Te rends-tu compte que ceci va te générer 15 890 700 combinaisons ( testé en VB Net ) donc plus de 15 millions de fichiers sur ton Pc !!!!!


Dim Nb As Long = 0
Dim Nombre As Integer = 50
For i = 1 To Nombre - 5 ' for(i=1;i<=Nombre-5;i++)
For j = i + 1 To Nombre - 4
For k = j + 1 To Nombre - 3
Application.DoEvents()
For m = k + 1 To Nombre - 2
For n = m + 1 To Nombre - 1
For p = n + 1 To Nombre
Nb = Nb + 1
Next
Next
Next
Next
Next
Next
MessageBox.Show(Nb.ToString) ' nombre de combinaisons

et avec un seul fichier texte avec une combinaison par ligne avec un tiret entre chaque chiffre ceci te donne un fichiers texte de 220 megaoctets et des poussières ( pas fait le calcul exact)
1-2-3-4-5-6
1-2-3-4-5-7
1-2-3-4-5-8
1-2-3-4-5-9
1-2-3-4-5-10
etc .....


2-3-4-5-6-7
2-3-4-5-6-8
2-3-4-5-6-9
etc......

46-47-48-49-50 ( dernière combinaison)

Cas particulier du loto
Pour calculer la probabilité de trouver 6 numéros au loto, il suffit de trouver combien il existe de séries non ordonnées de 6 nombres choisis parmi 49. On trouve :
(44 x 45 x 46 x 47 x 48 x 49) / (6 x 5 x 4 x 3 x 2)
soit 13 983 816.

La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi. 
Messages postés
6
Date d'inscription
vendredi 13 octobre 2017
Statut
Membre
Dernière intervention
27 novembre 2017

bonjour vb95 peut tu m integrer l ouverture des fichiers automatique.je compte l utiliser pour un petit nombre de fichier.je te remercie d avance
Messages postés
2427
Date d'inscription
samedi 11 janvier 2014
Statut
Contributeur
Dernière intervention
6 mai 2021
137
bonjour
Je ne connais pas grand chose en C++ ( je pratique plutôt Vb Net et un peu le C#)
Je t'ai répondu pour te mettre en garde contre le nombre énorme de fichiers que cela allait créer
Je ne puis t'aider pour ta demande proprement dite
D&solé
Messages postés
6
Date d'inscription
vendredi 13 octobre 2017
Statut
Membre
Dernière intervention
27 novembre 2017

bonjour vb95 j ai tester le code vb net mais il ne marche pas..est til complet merci d avance
Messages postés
2427
Date d'inscription
samedi 11 janvier 2014
Statut
Contributeur
Dernière intervention
6 mai 2021
137
bonjour
Le code VB Net fonctionne très bien
La preuve en image



La Messagebox en bas à droite m'affiche bien le nombre total de combinaisons que j'ai indiqué dans mon premier message
Clique sur l'image pour l'agrandir

La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi. 
Messages postés
6
Date d'inscription
vendredi 13 octobre 2017
Statut
Membre
Dernière intervention
27 novembre 2017

oui en effet c'est moi,si tu peus me le mettre en texte pour que je le copie coller merci
Messages postés
2427
Date d'inscription
samedi 11 janvier 2014
Statut
Contributeur
Dernière intervention
6 mai 2021
137 >
Messages postés
6
Date d'inscription
vendredi 13 octobre 2017
Statut
Membre
Dernière intervention
27 novembre 2017

Bonjour
Tu peux le copier-coller dans mon premier message
Messages postés
6
Date d'inscription
vendredi 13 octobre 2017
Statut
Membre
Dernière intervention
27 novembre 2017


j'ai une erreur je suis nul en vb net
Messages postés
15933
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
14 mai 2021
545
Bonsoir,

à l'instar de C++, en VB.Net, le code exécutable est écrit dans une méthode.
Pour tester son exemple, VB95 a mis la partie utile du code, dans une méthode abonnée à l'événement click d'un bouton, lui-même placé sur un formulaire (sur la photo, pas dans le code plus haut).
Si ton compilateur en ligne n'a pas ce formulaire, ni ce bouton sous la main, ça plante forcément. (Je n'ai pas envie de me créer un compte juste pour essayer).
En plus il se sert de Mono, il peut y avoir des subtilité entre cette framework et l'originale.
Je l'ai testé sur un autre compilateur en ligne (sans login et gratuit), il m'a fallut le modifier légèrement.
 Dim Nb As Long = 0
 Dim Nombre As Integer = 50
 Dim i,j,k,l,m,n,p as Integer
 For i = 1 To Nombre - 5  ' for(i=1;i<=Nombre-5;i++)
    For j = i + 1 To Nombre - 4
        For k = j + 1 To Nombre - 3
            'Application.DoEvents()
            For m = k + 1 To Nombre - 2
                For n = m + 1 To Nombre - 1
                    For p = n + 1 To Nombre
                       Nb = Nb + 1
                    Next
                Next
            Next
        Next
    Next
Next
'MessageBox.Show(Nb.ToString) 
'Your code goes here
Console.WriteLine(Nb.ToString)





Par défaut, pour tester un code VB.Net écrit avec Visual Studio, il vaut mieux Visual Studio, il existe des versions gratuite (Express et Community). Mais au final je ne voie pas à quoi ça va t'avancer, tu peux écrire exactement la même boucle avec C++
Messages postés
6
Date d'inscription
vendredi 13 octobre 2017
Statut
Membre
Dernière intervention
27 novembre 2017

merci