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

pierro31100 6 Messages postés vendredi 13 octobre 2017Date d'inscription 27 novembre 2017 Dernière intervention - 13 oct. 2017 à 17:16 - Dernière réponse : pierro31100 6 Messages postés vendredi 13 octobre 2017Date d'inscription 27 novembre 2017 Dernière intervention
- 27 nov. 2017 à 22:07
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.
Afficher la suite 
6Messages postés vendredi 13 octobre 2017Date d'inscription 27 novembre 2017 Dernière intervention

10 réponses

Répondre au sujet
vb95 1385 Messages postés samedi 11 janvier 2014Date d'inscriptionContributeurStatut 11 décembre 2017 Dernière intervention - Modifié par vb95 le 13/10/2017 à 23:43
0
Utile
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. 
Commenter la réponse de vb95
pierro31100 6 Messages postés vendredi 13 octobre 2017Date d'inscription 27 novembre 2017 Dernière intervention - 15 oct. 2017 à 15:48
0
Utile
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
Commenter la réponse de pierro31100
vb95 1385 Messages postés samedi 11 janvier 2014Date d'inscriptionContributeurStatut 11 décembre 2017 Dernière intervention - 15 oct. 2017 à 15:55
0
Utile
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é
Commenter la réponse de vb95
pierro31100 6 Messages postés vendredi 13 octobre 2017Date d'inscription 27 novembre 2017 Dernière intervention - 26 nov. 2017 à 20:21
0
Utile
bonjour vb95 j ai tester le code vb net mais il ne marche pas..est til complet merci d avance
Commenter la réponse de pierro31100
vb95 1385 Messages postés samedi 11 janvier 2014Date d'inscriptionContributeurStatut 11 décembre 2017 Dernière intervention - Modifié par vb95 le 26/11/2017 à 20:51
0
Utile
2
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. 
pierro31100 6 Messages postés vendredi 13 octobre 2017Date d'inscription 27 novembre 2017 Dernière intervention - 27 nov. 2017 à 17:37
oui en effet c'est moi,si tu peus me le mettre en texte pour que je le copie coller merci
vb95 1385 Messages postés samedi 11 janvier 2014Date d'inscriptionContributeurStatut 11 décembre 2017 Dernière intervention > pierro31100 6 Messages postés vendredi 13 octobre 2017Date d'inscription 27 novembre 2017 Dernière intervention - 27 nov. 2017 à 19:01
Bonjour
Tu peux le copier-coller dans mon premier message
Commenter la réponse de vb95
pierro31100 6 Messages postés vendredi 13 octobre 2017Date d'inscription 27 novembre 2017 Dernière intervention - 27 nov. 2017 à 20:59
0
Utile
2

j'ai une erreur je suis nul en vb net
Whismeril 10512 Messages postés mardi 11 mars 2003Date d'inscriptionContributeurStatut 11 décembre 2017 Dernière intervention - 27 nov. 2017 à 21:28
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++
pierro31100 6 Messages postés vendredi 13 octobre 2017Date d'inscription 27 novembre 2017 Dernière intervention - 27 nov. 2017 à 22:07
merci
Commenter la réponse de pierro31100

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.