IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C Discussion :

generer un fichier avec nombres aléatoires


Sujet :

C

  1. #1
    Nouveau membre du Club
    Femme Profil pro
    Enseignant Chercheur
    Inscrit en
    Septembre 2011
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2011
    Messages : 60
    Points : 25
    Points
    25
    Par défaut generer un fichier avec nombres aléatoires
    bonjour à tous,
    je voudrais s'il vout plait, écrire un programme en C qui permet de générer un fichier à 100 lignes comme suit
    sur chaque ligne
    1 nbre aleatoire entre 15 et 120
    2 nbre aleatoire entre 15 et 120
    .
    .
    .
    100 nbre aleatoire entre 15 et 120

    je ne sais vraiment pas comment faire, ça fait au moins 6 ans que j'ai pas programmé , et maintenant de retour aux etudes je me sens vraiment égarée et aurais besoin de ce code en urgence.
    quelqu'un aurait une idée?
    merci d'avance

  2. #2
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2010
    Messages
    254
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2010
    Messages : 254
    Points : 538
    Points
    538
    Par défaut
    ça donnerai un truc comme ca:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    int      nb_ligne;
    int      index;
    FILE   *fd;
     
    srand(time(NULL));
    fd = fopen("nom_du_fichier", "w");
    for (nb_ligne = 0; nb_ligne < 100; ++nb_ligne)
    {
       for (index = 0; index < nb_ligne; ++index)
        {
           fprintf(fd, "%d", ((rand() % 105) + 15));
        }
        fprintf(fd, "\n");
    }
    "L'insanité consiste à répéter la même action dans l'espoir d'aboutir à un résultat différent" Albert Einstein
    ----------------------
    T.O.A.O 6-MarViN

  3. #3
    Nouveau membre du Club
    Femme Profil pro
    Enseignant Chercheur
    Inscrit en
    Septembre 2011
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2011
    Messages : 60
    Points : 25
    Points
    25
    Par défaut
    merci c tres gentil de votre part :-)
    franchement , rien à dire

  4. #4
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 690
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 690
    Points : 30 986
    Points
    30 986
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par 6-MarViN Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    fprintf(fd, "%d", ((rand() % 105) + 15));
    Salut

    Attention, la priorité du modulo sur l'addition rend les parenthèses inutiles. De plus, pour une plus grande homogénéité des nombres aléatoires, on conseille plutôt cette autre formule
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    fprintf(fd, "%d", rand() / (RAND_MAX + 1.0) * 105 + 15);
    In Numerical Recipes in C: The Art of Scientific Computing (William H. Press, Brian P. Flannery, Saul A. Teukolsky, William T. Vetterling; New York: Cambridge University Press, 1992 (2nd ed., p. 277)), the following comments are made:

    "If you want to generate a random integer between 1 and 10, you should always do it by using high-order bits, as in

    j = 1 + (int) (10.0 * (rand() / (RAND_MAX + 1.0)));

    and never by anything resembling

    j = 1 + (rand() % 10);

    (which uses lower-order bits)."

    Random-number generation is a complex topic. The Numerical Recipes in C book (see reference above) provides an excellent discussion of practical random-number generation issues in Chapter 7 (Random Numbers).
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  5. #5
    Nouveau membre du Club
    Femme Profil pro
    Enseignant Chercheur
    Inscrit en
    Septembre 2011
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2011
    Messages : 60
    Points : 25
    Points
    25
    Par défaut
    bonsoir,
    merci pour la rectification :-)
    j'ai dû également faire quelques autres modifications
    merci à tous

  6. #6
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 942
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 942
    Points : 5 654
    Points
    5 654
    Par défaut
    Sia,
    Citation Envoyé par Sve@r Voir le message
    Attention, la priorité du modulo sur l'addition rend les parenthèses inutiles.
    Oui, mais plus directement lisible au premier coup d'œil, ce qui n'est pas négligeable.
    Si les cons volaient, il ferait nuit à midi.

  7. #7
    Nouveau membre du Club
    Femme Profil pro
    Enseignant Chercheur
    Inscrit en
    Septembre 2011
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2011
    Messages : 60
    Points : 25
    Points
    25
    Par défaut
    c'est vrai j'aurais besoin que ça soit visible parce que je devrais ajouter maintenant une centaine de lignes de codes au moins
    maintenant je dois pouvoir recuperer les arguments à partir d'une ligne de commande , autrement dit, je voudrais avoir une éxécution paramétrée c'est à dire je pourrais par la suite spécifier le nombre de lignes à générer 100 ou 1000 ou autre ainsi que l'intervalle du nombre alétaoire à partir de la ligne de commande, comme mots clés j'ai argc et argv
    sachant que je suis sous Fedora , j'avais oublié de le préciser.
    merci pour votre aide .

  8. #8
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 690
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 690
    Points : 30 986
    Points
    30 986
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par ben_tiba_asma Voir le message
    c'est vrai j'aurais besoin que ça soit visible parce que je devrais ajouter maintenant une centaine de lignes de codes au moins
    L'utilité des commentaires n'est pas une légende urbaine...

    Citation Envoyé par ben_tiba_asma Voir le message
    maintenant je dois pouvoir recuperer les arguments à partir d'une ligne de commande , autrement dit, je voudrais avoir une éxécution paramétrée c'est à dire je pourrais par la suite spécifier le nombre de lignes à générer 100 ou 1000 ou autre ainsi que l'intervalle du nombre alétaoire à partir de la ligne de commande, comme mots clés j'ai argc et argv

    merci pour votre aide .
    Aider ne veut pas dire "faire les devoirs à ta place". argc et argv servent à récupérer les arguments passés au programme. argv[1], argv[2], ... étant successivement le premier, second, le ... argument (exprimé sous forme de chaine de caractères) et argc étant le nombre d'arguments (en comptant aussi argv[0] qui est le nom du programme).

    Donc te suffit de tester que argc a au-moins la bonne valeur sinon petit message et arrêt du programme. Puis récupérer argv[x] (sensé être un nombre mais exprimé sous forme de string style "1000") et utiliser atol() ou strtoul() pour extraire le nombre de la chaine => "1000" donnera 1000

    Citation Envoyé par ben_tiba_asma Voir le message
    sachant que je suis sous Fedora , j'avais oublié de le préciser.
    La distrib n'influe pas sur le code, le compilateur étant le même.
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  9. #9
    Nouveau membre du Club
    Femme Profil pro
    Enseignant Chercheur
    Inscrit en
    Septembre 2011
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2011
    Messages : 60
    Points : 25
    Points
    25
    Par défaut
    bonjour
    merci pour la reponse ,
    je ne demandais pas de faire les devoirs à ma place c'est juste que j'ai trouvé beaucoup de documents à lire et par faute de temps je voulais etre guidée dans mes lectures :-)
    merci encore une fois

Discussions similaires

  1. Générer une matrice avec nombre aléatoires
    Par Ryu0174 dans le forum Général Python
    Réponses: 5
    Dernier message: 23/05/2012, 21h40
  2. generer un fichier avec entete et des details lié
    Par moustaf_26 dans le forum Développement de jobs
    Réponses: 4
    Dernier message: 16/03/2012, 10h20
  3. lecture d'un fichier avec variable aléatoire.
    Par lamissgirl dans le forum PHP & Base de données
    Réponses: 12
    Dernier message: 21/03/2011, 15h02
  4. Chargement BCP d'un fichier avec nombre de champs variable
    Par GuillermoMagistrale dans le forum Outils
    Réponses: 1
    Dernier message: 22/04/2010, 17h38
  5. somme conditionnée avec nombres aléatoires
    Par djocin dans le forum Fortran
    Réponses: 1
    Dernier message: 26/06/2009, 17h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo