une Base Solide en Programmation
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
une Base Solide en Programmation

C++/Java/Delphi/Assembleur
 
AccueilPortailRechercherDernières imagesS'enregistrerConnexion
-50%
Le deal à ne pas rater :
-50% Baskets Nike Dunk Low
64.99 € 129.99 €
Voir le deal

 

 Nombres Aléatoires

Aller en bas 
3 participants
AuteurMessage
Benayada Houari
Administrateur
Administrateur
Benayada Houari


Masculin
Nombre de messages : 89
Age : 37
Localisation : Chlef
Loisirs : Sport
Date d'inscription : 14/03/2007

Nombres Aléatoires Empty
MessageSujet: Nombres Aléatoires   Nombres Aléatoires Icon_minitimeLun 6 Aoû - 20:20

Pour générer des nombres aléatoires if faut tapez:
Code:

srand(time(NULL));
nombreMystere = (rand() % (MAX - MIN + 1)) + MIN;
La première ligne (avec srand) permet d'initialiser le générateur de nombre aléatoires.
nombreMystere est une variable qui contiendra le nombre au hasard.
Attention:
L'instruction srand ne doit être exécutée qu'une seule fois (au début du programme). Il faut obligatoirement faire un srand une fois, et seulement une fois.
Vous pouvez ensuite faire autant de rand() que vous voulez pour générer des nombres aléatoires. Mais il ne faut PAS que l'ordinateur lise l'instruction srand 2 fois par programme, ne l'oubliez pas.
MAX et MIN sont des constantes
RMQ:Il faut utiliser la bibliothèque <time.h>
Revenir en haut Aller en bas
Admin
Administrateur
Administrateur
Admin


Masculin
Nombre de messages : 232
Age : 36
Localisation : A COTé 2MON PC
Loisirs : KUNG FU
Date d'inscription : 05/03/2007

Nombres Aléatoires Empty
MessageSujet: Re: Nombres Aléatoires   Nombres Aléatoires Icon_minitimeMar 7 Aoû - 22:49

tres bien
mais je souhaite que tu nous donnes un programme complet qui utilise cette fonction
moi je vais faire un si le temps me permet
Revenir en haut Aller en bas
http://hbpcclub.forumactif.fr
Benayada Houari
Administrateur
Administrateur
Benayada Houari


Masculin
Nombre de messages : 89
Age : 37
Localisation : Chlef
Loisirs : Sport
Date d'inscription : 14/03/2007

Nombres Aléatoires Empty
MessageSujet: Jeu version 1   Nombres Aléatoires Icon_minitimeMer 8 Aoû - 14:50

Voila un programme(c'est un jeu) qui utilise les nombres aléatoires.

Tous d'abord je veux dire que j'ai trouvé l'idée (et pas le programme-code-) dans un site.
--L'ordinateur tire au sort un nombre entre 1 et 100
--Il vous demande de deviner le nombre. Vous rentrez donc un nombre entre 1 et 100
--L'ordinateur compare le nombre que vous avez rentré avec le nombre "mystère" qu'il a tiré au sort. Il vous dit si le nombre mystère est supérieur ou inférieur à celui que vous avez entré
--Puis, l'ordinateur vous redemande le nombre.
... Et il vous indique si le nombre mystère est supérieur ou inférieur.
Et ainsi de suite, jusqu'à ce que vous ayez trouvé le nombre mystère.

Je pense que avez compris le principe de jeu...
(Allez au travail...sans regarder le code au-dessous)...
Ici dans ce programme le nombre mystère est la varaible b, et le nombre que vous avez entré est la variable a...
Enfin je suis trés intréssant au programmation des jeux...
Alors, j'espère que vous m'envoyer des idées pour améliorer ce jeu plus plus...

Code:

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main(int argc, char *argv[])
{
    const long max=100,min=1;
  int a,b=0;
  srand(time(NULL));
  a=(rand()%(max-min+1))+min;
  do
  {
      printf("Quel est le nombre ? ");
      scanf("%ld",&b);
      if (b<a)
            printf("C'est plus \n");
      else if (b>a)
            printf("C'est moins \n");
  }
  while (a!=b);
      printf("Bravon Vous avez trouve le nombre mystere !!!\n");
  system("PAUSE");   
  return 0;
}
Revenir en haut Aller en bas
Benayada Houari
Administrateur
Administrateur
Benayada Houari


Masculin
Nombre de messages : 89
Age : 37
Localisation : Chlef
Loisirs : Sport
Date d'inscription : 14/03/2007

Nombres Aléatoires Empty
MessageSujet: Jeu version 2   Nombres Aléatoires Icon_minitimeMer 8 Aoû - 16:37

Dans Cette version j'ai ajouté un compteur, qui compte combien tu vas essayer pour trouvé le nombre...

Code:

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main(int argc, char *argv[])
{
    const long max=100,min=1;
  int a=0,b=0,coup=0;
  srand(time(NULL));
  a=(rand()%(max-min+1))+min;
  do
  {
      printf("Quel est le nombre ? ");
      scanf("%ld",&b);
      coup++;
      if (b<a)
            printf("C'est plus \n");
      else if (b>a)
            printf("C'est moins \n");
  }
  while (a!=b);
      printf("Bravon Vous avez trouve le nombre mystere en %ld coup!!!\n",coup);
  system("PAUSE");   
  return 0;
}
Revenir en haut Aller en bas
Benayada Houari
Administrateur
Administrateur
Benayada Houari


Masculin
Nombre de messages : 89
Age : 37
Localisation : Chlef
Loisirs : Sport
Date d'inscription : 14/03/2007

Nombres Aléatoires Empty
MessageSujet: Jeu Version 3   Nombres Aléatoires Icon_minitimeMer 8 Aoû - 20:07

Dans cette version, j'ai utilisé une boucle entour de tous le programme, l'utilité de cette boucle est de questionner le joueur s'il veut jouer une autre partie, et il va répond par o)ui (jouer une autres partie) on n)on (sortir du jeu)...

Code:

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main(int argc, char *argv[])
{
    char r;
  do
  {
  const long max=100,min=1;
  int a=0,b=0,coup=0;
  srand(time(NULL));
  a=(rand()%(max-min+1))+min;
  do
  {
      printf("Quel est le nombre ? ");
      scanf("%ld",&b);
      coup++;
      if (b<a)
            printf("C'est plus \n");
      else if (b>a)
            printf("C'est moins \n");
  }
  while (a!=b);
      printf("Bravon Vous avez trouve le nombre mystere en %ld coup!!!\n",coup);
  printf("Jouer une autres fois ?");
  scanf("%ls",&r);
}
while (r!='n');
    system("PAUSE");   
  return 0;
}
Revenir en haut Aller en bas
Admin
Administrateur
Administrateur
Admin


Masculin
Nombre de messages : 232
Age : 36
Localisation : A COTé 2MON PC
Loisirs : KUNG FU
Date d'inscription : 05/03/2007

Nombres Aléatoires Empty
MessageSujet: Re: Nombres Aléatoires   Nombres Aléatoires Icon_minitimeMer 8 Aoû - 22:59

tres bien
mais s.t.p quand les membres veulent complier ce programme sous borland c
il ne sera pas etre compilé
alors teste tes programmes sous borland c avant les poster parce que la majorité utilise ce compilateur
Revenir en haut Aller en bas
http://hbpcclub.forumactif.fr
Benayada Houari
Administrateur
Administrateur
Benayada Houari


Masculin
Nombre de messages : 89
Age : 37
Localisation : Chlef
Loisirs : Sport
Date d'inscription : 14/03/2007

Nombres Aléatoires Empty
MessageSujet: Compil   Nombres Aléatoires Icon_minitimeJeu 9 Aoû - 19:44

Non, Il suffit juste de enlever l'instruction
Code:
system("pause")
pour que le programme  marche sous BORLAND C++
Revenir en haut Aller en bas
Benayada Houari
Administrateur
Administrateur
Benayada Houari


Masculin
Nombre de messages : 89
Age : 37
Localisation : Chlef
Loisirs : Sport
Date d'inscription : 14/03/2007

Nombres Aléatoires Empty
MessageSujet: Jeu version 4   Nombres Aléatoires Icon_minitimeJeu 9 Aoû - 19:46

Jeu aux niveaux

Code:

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main(int argc, char *argv[])
{
    char r;
  do
  {
  int niveau=0,max=0,min=1;
  printf("Choisissez le niveau :\n");
  printf("1.NIVEAU 1 (entre 1 et 100)\n");
  printf("2.NIVEAU 2 (entre 1 et 1000)\n");
  printf("3.NIVEAU 3 (entre 1 et 10000)\n");
  scanf("%ld",&niveau);
  switch (niveau)
  {
      case 1:
          max=100;
          break;
      case 2:
          max=1000;
          break;
      case 3:
          max=10000;
          break;
  }
    int a=0,b=0,coup=0;
  srand(time(NULL));
  a=(rand()%(max-min+1))+min;
  do
  {
      printf("Quel est le nombre ? ");
      scanf("%ld",&b);
      coup++;
      if (b<a)
            printf("C'est plus \n");
      else if (b>a)
            printf("C'est moins \n");
  }
  while (a!=b);
      printf("Bravon Vous avez trouve le nombre mystere en %ld coup!!!\n",coup);
  printf("Jouer une autres fois ?");
  scanf("%ls",&r);
}
while (r!='n');
    system("PAUSE");   
  return 0;
}
Revenir en haut Aller en bas
Benayada Houari
Administrateur
Administrateur
Benayada Houari


Masculin
Nombre de messages : 89
Age : 37
Localisation : Chlef
Loisirs : Sport
Date d'inscription : 14/03/2007

Nombres Aléatoires Empty
MessageSujet: Jeu version 5   Nombres Aléatoires Icon_minitimeJeu 9 Aoû - 19:47

L'utilisation du fonction non-prototype pour générer les nbrs aléatoires
Code:

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int genere(int max,int min)
{
    int a0=0;
    srand(time(NULL));
    a0=(rand()%(max-min+1))+min;
    return a0;
}
  int main(int argc, char *argv[])
{
    char r;
  do
  {
  int niveau=0,max=0,min=1;
  printf("Choisissez le niveau :\n");
  printf("1.NIVEAU 1 (entre 1 et 100)\n");
  printf("2.NIVEAU 2 (entre 1 et 1000)\n");
  printf("3.NIVEAU 3 (entre 1 et 10000)\n");
  scanf("%ld",&niveau);
  switch (niveau)
  {
      case 1:
          max=100;
          break;
      case 2:
          max=1000;
          break;
      case 3:
          max=10000;
          break;
  }
    int a=0,b=0,coup=0;
  a=genere(max,min);
  do
  {
      printf("Quel est le nombre ? ");
      scanf("%ld",&b);
      coup++;
      if (b<a)
            printf("C'est plus \n");
      else if (b>a)
            printf("C'est moins \n");
  }
  while (a!=b);
      printf("Bravon Vous avez trouve le nombre mystere en %ld coup!!!\n",coup);
  printf("Jouer une autres fois ?");
  scanf("%ls",&r);
}
while (r!='n');
    system("PAUSE");   
  return 0;
}
Revenir en haut Aller en bas
chaouge
soldat
soldat



Masculin
Nombre de messages : 22
Age : 36
Localisation : my town
Loisirs : leisure
Date d'inscription : 28/11/2007

Nombres Aléatoires Empty
MessageSujet: Re: Nombres Aléatoires   Nombres Aléatoires Icon_minitimeJeu 29 Nov - 0:15

Benayada Houari a écrit:
Pour générer des nombres aléatoires if faut tapez:
Code:

srand(time(NULL));
nombreMystere = (rand() % (MAX - MIN + 1)) + MIN;
La première ligne (avec srand) permet d'initialiser le générateur de nombre aléatoires.
nombreMystere est une variable qui contiendra le nombre au hasard.
Attention:
L'instruction srand ne doit être exécutée qu'une seule fois (au début du programme). Il faut obligatoirement faire un srand une fois, et seulement une fois.
Vous pouvez ensuite faire autant de rand() que vous voulez pour générer des nombres aléatoires. Mais il ne faut PAS que l'ordinateur lise l'instruction srand 2 fois par programme, ne l'oubliez pas.
MAX et MIN sont des constantes
RMQ:Il faut utiliser la bibliothèque
pourquoi on a mis (max - min + 1) + min ?
Revenir en haut Aller en bas
Admin
Administrateur
Administrateur
Admin


Masculin
Nombre de messages : 232
Age : 36
Localisation : A COTé 2MON PC
Loisirs : KUNG FU
Date d'inscription : 05/03/2007

Nombres Aléatoires Empty
MessageSujet: Re: Nombres Aléatoires   Nombres Aléatoires Icon_minitimeJeu 29 Nov - 23:03

tu peut mette se que tu veut mais en met cette fonction pour mettre les choses un peut difficile(pour que le joueur ne peut pas deviner la truck facilement avec +eurs fois)
Revenir en haut Aller en bas
http://hbpcclub.forumactif.fr
Benayada Houari
Administrateur
Administrateur
Benayada Houari


Masculin
Nombre de messages : 89
Age : 37
Localisation : Chlef
Loisirs : Sport
Date d'inscription : 14/03/2007

Nombres Aléatoires Empty
MessageSujet: Re: Nombres Aléatoires   Nombres Aléatoires Icon_minitimeVen 30 Nov - 20:28

Slt chaouge
Pour ta question sur la fonction rand(), je t'explique:
La fonction rand() retourne un numéro aléatoire entre : 0 et 32767, et pour vérifier, essayer ce code:
Code:

printf("%d",RAND_MAX);
Ok, notre nombre alors est entre 0 et 32767, mais on veut le limiter par exmple entre MIN et MAX (par exemple MIN=5 et MAX=10, ou MIN=5 et MAX=100, comme tu veux...), Alors on fait l'opération MODULO ( % ),
Code:
printf("%d",rand()%MAX);

pour ne pas dépasser MAX que l'on a fixer au-dessus, si le nombre dépasse le MAX il revient au 0...
Bien, mais notre domaine est [MIN=5 , MAX=10], et pas [0 , MAX=10], alors on ajoute MIN à la formule :
Code:
printf("%d",rand()%MAX+MIN);
Bien Bien,mais si tu regarde le code, on a génère un problem comme ça, notre domaine maitenant est [MIN , MAX+MIN],
cad le MAX est décalé MIN fois a droite, cad notre domaine maitenant est [MIN=5 , MAX=10+MIN], mais on veut [MIN=5 , MAX=10], que ce qu'on faire à votre avis?, alors nous allons soustracter de MAX la valeur que l'on a ajoutée, et on obtient à la fin notre domaine [MIN=5 , MAX=10+MIN-MIN] ===> [MIN=5 , MAX=10]
Code:
 printf("%d",rand()%(MAX-MIN)+MIN);
PS: Comme ça le programme génère des nombres entre MIN et MAX-1, Alors on ajoute +1
Code:
 printf("%d",rand()%(MAX-MIN+1)+MIN;

Exemple:
Nous voulons créer un programme génère un nombre aléatoire entre 50 et 100
alors:
MIN=50, MAX=100

Code:
printf("%d",rand()); /* Le code génère un nombre entre 0 et 32767 */

Code:
printf("%d",rand()%MAX); /* Le code génère un nombre entre 0 et MAX-1 (de 0 à 99)*/

Code:
printf("%d",rand()%MAX+MIN); /* Le code génère un nombre entre MIN et (MAX-1)+MIN (de 50 à 149) */

Code:
printf("%d",rand()%(MAX-MIN)+MIN ); /* Le code génère un nombre entre MIN et (MAX-1) (de 50 à 99) */

Code:
printf("%d",rand()%(MAX-MIN+1)+MIN); /* Le code génère un nombre entre MIN et MAX (de 50 à 100) */

ET TOUT CA N'OUBLIE PAS D'INCLURE LA LIBRAIRIE time.h
Revenir en haut Aller en bas
chaouge
soldat
soldat



Masculin
Nombre de messages : 22
Age : 36
Localisation : my town
Loisirs : leisure
Date d'inscription : 28/11/2007

Nombres Aléatoires Empty
MessageSujet: Re: Nombres Aléatoires   Nombres Aléatoires Icon_minitimeVen 30 Nov - 22:18

jazaka allahou khairan Benayada Houari
Revenir en haut Aller en bas
Contenu sponsorisé





Nombres Aléatoires Empty
MessageSujet: Re: Nombres Aléatoires   Nombres Aléatoires Icon_minitime

Revenir en haut Aller en bas
 
Nombres Aléatoires
Revenir en haut 
Page 1 sur 1

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
une Base Solide en Programmation :: HBPCCLUB ACADEMY :: C-
Sauter vers:  
Ne ratez plus aucun deal !
Abonnez-vous pour recevoir par notification une sélection des meilleurs deals chaque jour.
IgnorerAutoriser