begin process at 2012 05 29 18:54:25
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Windows

 > 

Autre

 > 

Pb - stockage de deux valeurs dans une variable


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Pb - stockage de deux valeurs dans une variable

vendredi 30 octobre 2009 à 20:05:46 | Pb - stockage de deux valeurs dans une variable

lectpe

Bonjour.

J'ai créé une structure représentant une fonction mathématique dans laquelle est défini une variable "Domain" qui correspond au type de la fonction qui permet de la classer selon différentes catégories.

Ces catégories sont :
Fonctions de bases (puissance, factorielle, exponentielle, inverse...)
Fonctions particulières (indicatrice d'Euler)
Fractions (mise en fraction, simplification de fraction...)
Paire de nombres (PGCD, PPCM...)
Primalité (décomposition en facteurs premiers...)
Statistiques (moyenne, écart-type, variance...)
Trigonométrie (cosinus, sinus, tangente, cosinus hyperbolique...)

Le problème est que l'une des fonctions que j'ai implémentée qui sert à vérifier si deux nombres sont premiers entre eux se trouve dans deux catégories : Primalité et Paire de nombres.

Ma structure étant définie ainsi :
typedef struct
{
...
int Domain;
...
}FUNCTION;

Chaque catégorie correspondant à un "int", je ne peux pas mettre les deux catégories dedans, je ne peux en mettre qu'une seule.

Je voudrais pouvoir faire comme lorsque l'on déclare les styles dans la fonction CreateWindow par exemple avec WS_CHILD | WS_VISIBLE.

Je voudrais donc savoir s'il serait possible de remplacer le type "int" par un autre afin de pouvoir ranger soit un, soit deux, soit plusieurs types dans la variable associée à ce type. (deux ça me suffirait pour l'instant)

En espérant votre aide au plus vite, je vous remercie par avance.

Grégory.
vendredi 30 octobre 2009 à 20:36:55 | Re : Pb - stockage de deux valeurs dans une variable

BruNews

Administrateur CodeS-SourceS
Le 'style' d'une fenetre n'est qu'un INT, pas une structure. On remplit ses bits par des OR, voila tout.
Pour résumer, style ne peut contenir que 32 styles, différents ou combinés.

Si tu considères par contre Domain sur sa valeur et non ses bits, tu peux y mettre plus de 4 milliards de possibilités de choix.

ciao...
BruNews, MVP VC++
vendredi 30 octobre 2009 à 21:51:32 | Re : Pb - stockage de deux valeurs dans une variable

lectpe

Merci d'avoir répondu.

Le problème, c'est que je voudrais mettre deux valeurs en même temps dans la même variable en les associant avec un OR. Alors je ne sais pas si c'est possible et si ça l'est, je ne sais pas comment faire.

Parce que ça m'embête de créer une deuxième variable, juste pour une seule fonction, mais si c'est la seule solution, bah je ferai ça.
samedi 31 octobre 2009 à 12:38:53 | Re : Pb - stockage de deux valeurs dans une variable

CptPingu

Administrateur CodeS-SourceS
Réponse acceptée !
Brunews vient de te répondre, et t'en a expliquer le principe.
On peut mettre plusieurs valeurs dans une variable en utilisant une astuce avec des décalage de bits.

Code:
Code C/C++ :
#include <stdio.h>

static const int WS_INIT = 1;
static const int WS_CHILD = 2 << 0;
static const int WS_VISIBLE = 2 << 1;
static const int WS_ONTOP = 2 << 2;
static const int WS_POUET = 2 << 3;

void contains(int option)
{
  printf("Option = %i\n", option);

  printf("WS_INIT: %s\n", option & WS_INIT ? "OK" : "Non");
  printf("WS_CHILD: %s\n", option & WS_CHILD ? "OK" : "Non");
  printf("WS_VISIBLE: %s\n", option & WS_VISIBLE ? "OK" : "Non");
  printf("WS_ONTOP: %s\n", option & WS_ONTOP ? "OK" : "Non");
  printf("WS_POUET: %s\n", option & WS_POUET ? "OK" : "Non");
  printf("\n");
}

int main(void)
{
  int option = 0;

  printf("%i, %i, %i, %i, %i\n", WS_INIT,
	 WS_CHILD, WS_VISIBLE, WS_ONTOP, WS_POUET);

  option = WS_CHILD | WS_VISIBLE;
  contains(option);
  contains(WS_INIT);
  contains(WS_INIT | WS_VISIBLE | WS_POUET);
  contains(WS_INIT | WS_CHILD | WS_VISIBLE | WS_ONTOP | WS_POUET);

  return 0;
}


Sortie:
Code :
1, 2, 4, 8, 16
Option = 6
WS_INIT: Non
WS_CHILD: OK
WS_VISIBLE: OK
WS_ONTOP: Non
WS_POUET: Non

Option = 1
WS_INIT: OK
WS_CHILD: Non
WS_VISIBLE: Non
WS_ONTOP: Non
WS_POUET: Non

Option = 21
WS_INIT: OK
WS_CHILD: Non
WS_VISIBLE: OK
WS_ONTOP: Non
WS_POUET: OK

Option = 31
WS_INIT: OK
WS_CHILD: OK
WS_VISIBLE: OK
WS_ONTOP: OK
WS_POUET: OK

samedi 31 octobre 2009 à 14:08:15 | Re : Pb - stockage de deux valeurs dans une variable

lectpe

Merci à toi CptPingu. Je vais faire en me basant sur le code que tu viens d'écrire.


Cette discussion est classée dans : fonction, variable, type, fonctions, catégories


Répondre à ce message

Sujets en rapport avec ce message

type de donnée inconnu [ par jeffise57 ] dans une fonction developper par une autre personne j'ai un type char** trucmuche, cette variable est un buffer qui doit recevoir le résultat qu'est c Variable de type char [ par wolfcyber ] bonjour, J'aimerais savoir l'equivalent en C++ de la fonction "Mid(int nStart,int nCount)" de la classe CString, pour une variable de type char. Cet MFC ( fonction + variables globales ) [ par indusine ] Salut! Je développe une MFC AppWizard(exe).Mon application est Dialog based (ni SDI ni MDI).J'utilise des fonctions auquelles je dois faire appel dans Pb avec variable char [ par enrageur ] voila j'utilise des variables de type char. je l'initialise de la maniere suivante :char tab[256];Mon probleme est que j'aimerais initialiser le table pb pointeurs [ par Arnaud16022 ] bonsoirj'ai un peu de mal avec les pointeurs et ma fonction marche pas trop.Le but est de passer une variable en parametre a une fonction, qui va stoc fonction 'pow' [ par caro_perf ] Bonjour tt le monde, Voila moi j'ai fait un programme de calcul mathématiques en c++. Mes fonctions contiennent la fontion "normalement" prédéfinie po Vérifier le type d'une variable [ par Radama ] Slt ! J'aimerai savoir comment on fait en C pour vérifier le type d'une variable et empêcher qu'on entre un caractère au lieu d'un entier,etc,etc,... Programmer en hexadécimal [ par luhtor ] Bonjour à tous, je me lance dans un interpréteur de formules ou plus exactement de fonctions. On pourra définir une nouvelle fonction de "n" variables strcmp() sous Windows ? [ par tintin72 ] Bonjour,J'aimerai connaître l'équivalent de la fonction C strcmp() sous Windows.C'est à dire une fonction qui prend en charge le type TCHAR et s'adapt DLL et variables [ par CyberP ] Voilà je voudrais donner la possibilitée à une dll d'appeler une fonction de l'application mèreDonc j'ai créé une structure que j'appelle PLUGINSYNC (


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,530 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales