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

Windows Discussion :

Fonction randomize differente


Sujet :

Windows

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 54
    Par défaut Fonction randomize differente
    Bonjour à tous, voila desolé je suis sur que cette question a deja ete posée à mainte reprise mais je n'ai pas vraiment trouvé mon bonheur avec la fonction rechercher


    J'ai commencé le C depuis peu en cours (je connais seulement printf scanf les boucles et structures conditionnelles) c'est pourquoi j'ai du mal à comprendre parfois vos bout de programme pour cette focntion (random)

    En cours on nous a dit d'utiliser :

    randomize() au debut du programme pour '"initialiser" mais je n'ai pas l'impression que ça marche.

    Voila mon bout de programme :

    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    #include <stdio.h>
    #include <stdlib.h>
    #include <time.h>
    #define DIM 20
    
    int main()
    {
    	int compare[DIM], min, max, i;
    	randomize();
    
        for(i=0;i<=DIM-1;i++)
        {
            /* Initialisation du tableau
            avec un nombre compris
             entre 0 et 100*/
            compare[i]=random(100);
        }
    
        min=compare[0];
        max=compare[0];
    
        for(i=0;i<=DIM-1;i++)
        {
            if(compare[i]<min)
            {
                min=compare[i];
            }
            if(compare[i]>max)
            {
                max=compare[i];
            }
        }
    
        printf("La valeur minimum du tableau est : %d",min);
        printf("La valeur maximum du tableau est : %d",max);
    
        system("pause");
    }
    Voila ce n'est pas tres dur ce programme permet d'initialiser un tableau de 20 cases avec un nombre au hasard puis d'afficher la valeur minimum et maximum du tableau

    Merci d'avance pour votre aide et desolé si cette question a deja ete posée

    dans mes #include j'ai essayé time.h et stdlib.h (comme je l'avais vu dans d'autre programme) mais cela n'a rien changé.

    Voila les erreur que j'ai (avec devC++)

    K:\cpp\tableau\excercice5.CPP||In function `int main( )':
    K:\cpp\tableau\excercice5.CPP|9|error: `randomize' undeclared (first use this function)|
    K:\cpp\tableau\excercice5.CPP|9|error: (Each undeclared identifier is reported only once for each function it appears in.)|
    K:\cpp\tableau\excercice5.CPP|16|error: `random' undeclared (first use this function)|
    ||=== Build finished: 3 errors, 0 warnings ===|

  2. #2
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Par défaut
    Au lieu de randomize(), utilise srand(0)
    Au lieu de random(), utilise rand()

    Lit l'aide en ligne des fonctions srand() et rand() et tu comprendras l'intérêt du 0 de srand et pourquoi il faut le modifier.
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

  3. #3
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 398
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 398
    Par défaut
    randomize(), c'était du Borland, non?

    PS: Puisque tu suis un cours de C, compile en C, pas en C++ : Renomme ton fichier en .c.

    Et comme Dev-C++ est un peu capricieux sur ce plan-là, pour être sûr que c'est bien en C que tu compiles, ajoute ces lignes au début de ton fichier source:
    Code C : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    #ifdef __cplusplus
    #erreur Priere de compiler en C, pas en C++
    #endif
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 54
    Par défaut
    merci de vos reponse et du mp je n'ai toujours pas reussi, sur devC++ et codblocks (avec minGW je ne sais pas si il faut preciser)

    En cours on utilise borland comme compileur (version plus ancienne que celle que l'on trouve maintenant difficilement sur internet) et je sais que ce compileur est assez bizarre. Comme nous n'avons pas encore commencer les fonction, nous faisons tout le programme en un seul bloc, et il nous demandait de mettre en haut :

    void main(void)

    Ce qui evidement ne marche pas avec devC++ ou encore codeblocks, il faut mettre

    int main()

    Je me demande si sa fonction random ne marche pas non plus seulement sur borland.

    J'ai essayé avec srand(0) et rand(100), mais lorsque je compilais l'erreur me renvoyait à stdlib.h (que je ne comprenais pas d'ailleurs ^^) mais avec la deuxieme reponse, je me suis demandé si ce n'etais pas parcequ'il manquait ces phrases en haut que cela ne marchait pas... mais non. J'ai essayer rand random randomize () (0)


    Point positif, il n'y a plus beaucoup d'erreur maintent.

    Voila les erreurs sur codeblocks avec randomize() et random(100) :

    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    #ifdef __cplusplus
    #erreur Priere de compiler en C, pas en C++
    #endif
    #include <stdio.h>
    #include <stdlib.h>
    #define DIM 20
    
    int main(void)
    {
    	int compare[DIM], min, max, i;
    	randomize();
    
        for(i=0;i<=DIM-1;i++)
        {
            /* Initialisation du tableau
            avec un nombre compris
             entre 0 et 100*/
            compare[i]=random(100);
        }
    
        min=compare[0];
        max=compare[0];
    
        for(i=0;i<=DIM-1;i++)
        {
            if(compare[i]<min)
            {
                min=compare[i];
            }
            if(compare[i]>max)
            {
                max=compare[i];
            }
        }
    
        printf("La valeur minimum du tableau est : %d",min);
        printf("La valeur maximum du tableau est : %d",max);
    
        system("pause");
    excercice5.c||undefined reference to `randomize'|
    excercice5.c||undefined reference to `random'|
    ||=== Build finished: 2 errors, 0 warnings ===|


    et juste en remplaçant randomize() par srand(0) et random(100) par rand(100) voila les erreurs :


    K:\cpp\tableau\excercice5.c||In function `main'
    K:\cpp\tableau\excercice5.c|18|error: too many arguments to function `rand'|
    ||=== Build finished: 1 errors, 0 warnings ===|


    Merci deja pour vos reponse et merci pour vos futures reponses

  5. #5
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Par défaut
    C'est parce que random ne fonctionne pas comme rand et n'attend pas de paramètres, lit la doc
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 54
    Par défaut
    j'ai lu la doc, j'ai compris certaines choses d'autres non, mais cela ne m'avance pas plus car je reste bloqué deja lorsque je vois

    int rand (void)

    car je ne connais pas encore les fonctions et j'ai du mal à comprendre.
    D'apres ce que je vois, je pense que pour mon programme principal,
    int main(void) cela devrait etre pareil mais je ne comprend toujours pas comment cela peut fonctionner et que signifie les erreurs.

    je ne sais pas declarer la fonction random ou rand ou srand à part, à vrai dire on etait juste sensé rajouter randomize() et random(100) pour que cela fonction (ce n'etait pas le but de l'exercice de faire une fonction aleatoire, on s'en servait juste)

Discussions similaires

  1. [Forth] Fonction random
    Par kamfezz dans le forum Autres langages
    Réponses: 3
    Dernier message: 16/04/2023, 14h33
  2. [Fortran 77] Fonction random
    Par ajsd0208 dans le forum Fortran
    Réponses: 1
    Dernier message: 15/07/2005, 12h58
  3. [LG]Utilisation de la fonction Random
    Par chloe95 dans le forum Langage
    Réponses: 1
    Dernier message: 01/03/2005, 14h20
  4. [LG]Fonction random
    Par platoon5 dans le forum Langage
    Réponses: 16
    Dernier message: 22/02/2005, 20h47
  5. Fonction Random en Assembleur
    Par chidi dans le forum Assembleur
    Réponses: 5
    Dernier message: 21/05/2004, 10h16

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