CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

question C++

elflaco
elflaco
Niveau 5
07 juillet 2003 à 21:38:28

A votre avis qu est ce qui est mieux pour commencer ?
GNU C++ ou bloodshed Dev-C++ ?
Ou encore mieux, quel est le meilleur freeware disponible pour un débutant ?

lag-it
lag-it
Niveau 10
07 juillet 2003 à 21:43:26

Personnelement, je recommande devcpp :-)))

elflaco
elflaco
Niveau 5
07 juillet 2003 à 21:49:02

merci
parce que je me suis acheté le fameux C++ pour les nuls et dedans ils parlent que de GNU C++
Au fait pas mal de gens disent que c est un mauvais livre , perso je l´ai pas fini mais je le trouve bien et vous ?

elflaco
elflaco
Niveau 5
08 juillet 2003 à 12:02:06

question qui peut sembler toute bete a vous les pros de la prog mais je voudrais savoir comment on fait pour attribuer une valeur au hasard a une variable
par ex : int variable=rand() % 1000
ca devrait choisir une valeur entre 0 et 1000 mais moi ca me met tout le temps 41 ! !!
Comment on fait svp ?

Nesca
Nesca
Niveau 5
08 juillet 2003 à 12:34:18

Il te faut avant tout comprendre que l´implémentation standard de rand() est une valeur pseudo aléatoire.

Késako ? Des appels successifs à rand() vont produire une suite de valeurs qui ressembleront bien à des nombres tirés au sort. Cependant, c´est bel et bien une suite déterministe.

Pour avoir un peu plus d´aléas, il existe une fonction, srand() qui prend en paramètre une " graine" ( le s de srand est pour " seed") qui initialise cette liste pseudo-aléatoire. Si tu fais un srand(13245); avant l´appel à rand(), tu verras qu´il te produira un autre résultat que 41, mais là encore toujours le même.

La solution est d´initialiser la liste aléatoire avec... l´heure. En effet, tu génèreras ainsi une liste aléatoire différente à chaque lancement de ton programme, à condition d´avoir suffisament de précision.

Tu peux utiliser la fonction time() qui retourne le nombre de secondes écoulées depuis le premier Janvier 1970. Cela t´assurera une variable un peu plus " aléatoire", à condition de ne pas lancer plusieurs fois ton programme par seconde, auquel cas tu aurais même valeur de time(), donc même appel de srand(), donc même initialisation de rand() et même suite aléatoire générée.

Note, le paramètre de la fonction time() est un pointeur vers un endroit où stocker la valeur de retour. Il n´est pas nécessaire dans notre cas, vu que la fonction nous retourne déjà la valeur intéressante, et on l´appelle donc avec NULL.

  1. include < stdlib.h>
  2. include < time.h>

int main ( )
{
srand(time(NULL));
int variable=rand()%1000;
return variable;
}

Lightness1024
Lightness1024
Niveau 10
08 juillet 2003 à 12:35:36

tu dois d´abord initialiser le random starting point.
dans basic on écrivait RANDOMIZE TIMER lol c des bon vieux souvenirs tout ca.

avec la librairie standard ANSI stdlib, il faut appeler la fonction:
void srand( unsigned int seed ) ;
par exemple en mettant le nombre de secondes écoulées de puis miniut dedans, avec la librairie time.h
srand(time(NULL));
ca marche bien ca. ( c un peu moche parce ke time() retourne un time_t ki est un typedef de long mais bon.)

ensuite il faut savoir ke ton nombre sera entre 0 et RAND_MAX.
heureusement 1000 est en dessous de cette valeur, mais bon, fo faire attention.

Nesca
Nesca
Niveau 5
08 juillet 2003 à 12:36:50

Hummm, RANDOMIZE TIMER...
Je l´avais oublié celui là :)
Ah, souvenirs...

Lightness1024
Lightness1024
Niveau 10
08 juillet 2003 à 12:38:00

et ben nesca ta pas honte d´écrire plus vite ke moi ?

Nesca
Nesca
Niveau 5
08 juillet 2003 à 12:43:46

Ben en fait, je tappe très très vite... Et puis franchement, je suis allé chercher la doc exacte de time(), et ça m´a pris du temps. Et puis t´as vu ? Il nous a fallu une bonne demi-heure pour repérer une question intéressante pour étaler notre savoir, réfléchir à la réponse et appuyer sur " poster le message"

Lightness1024
Lightness1024
Niveau 10
08 juillet 2003 à 12:49:55

eheh, lol moi aussi je suis allé cherché la doc de time LOL.
on est vraiment tous les meme.

elflaco
elflaco
Niveau 5
08 juillet 2003 à 13:35:47

cool ca marche
mais j ai seulement compris les 2/3 de ce que vous avez dit les gars
par ex c est quoi un typedef

Lightness1024
Lightness1024
Niveau 10
08 juillet 2003 à 14:37:32

on est la pour t´aider :)

bon et ben un typedef c´est un mot clé du langage C qui sert a réferencer un type par un autre nom ( personnalisé), cad créer une sorte d´alias sur un type.

exemple, tu en as marre d´écrire unsigned char parce ke c trop long.
tu fais:
typedef unsigned char BYTE

et voila ! apres tu peux faire:

BYTE MaVariable; // et c cool !

tu comprends ? si il y a d´autres trucs pas clair, dis le nous.

Sous forums
  • Aide à l'achat Mac
  • Création de Jeux
  • Linux
  • Programmation
  • Création de sites web
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware
La vidéo du moment