[C] figer la valeur d'une variable
matéo
-
matéo -
matéo -
Bonjour,
Pour mon BTS IRIS j'ai besoin de développer une fonction qui permet de récuperer la valeur d'une varaiable augmentant continuellement à un moment voulu.
Mon problème c'est que le résultat m'affiche tout le temps 0.
Est ce que qq'un pourrait me faire un exemple tout bête?!
PS: Voici mon algo en 2 mots -->
//déclarations variables
float Opacity, temp_Opacity, memo_Opacity;
//fonction affichage opacité mémorisée
CASE slot1
IF slot1.seuil_min <= slot1.Opacity <= slot1.seuil_max
ALORS
temp_Opacity = Opacity;
memo_Opacity = temp_Opacity;
SetCtrlAttribute(mainPanel3, MainPanel3_OpacityButton, ATTR_CTRL_VAL, memo_Opacity)
Pour mon BTS IRIS j'ai besoin de développer une fonction qui permet de récuperer la valeur d'une varaiable augmentant continuellement à un moment voulu.
Mon problème c'est que le résultat m'affiche tout le temps 0.
Est ce que qq'un pourrait me faire un exemple tout bête?!
PS: Voici mon algo en 2 mots -->
//déclarations variables
float Opacity, temp_Opacity, memo_Opacity;
//fonction affichage opacité mémorisée
CASE slot1
IF slot1.seuil_min <= slot1.Opacity <= slot1.seuil_max
ALORS
temp_Opacity = Opacity;
memo_Opacity = temp_Opacity;
SetCtrlAttribute(mainPanel3, MainPanel3_OpacityButton, ATTR_CTRL_VAL, memo_Opacity)
A voir également:
- [C] figer la valeur d'une variable
- Figer les volets - Guide
- Logiciel gratuit calcul valeur nutritionnelle - Télécharger - Santé & Bien-être
- Valeur ascii - Guide
- Vba excel sélectionner une plage de cellules variable ✓ - Forum VB / VBA
- Figer une feuille excel - Forum Excel
4 réponses
Salut,
Si ton code c'est du C, donne nous plutôt le code ;). Et utilise la balise "conservation automatique du code" (à droite de souligner).
Cdt
Si ton code c'est du C, donne nous plutôt le code ;). Et utilise la balise "conservation automatique du code" (à droite de souligner).
Cdt
(slt[0].Seuil_MIN <= slt[0].Opacity <= slt[0].Seuil_MAX) !
pour moi c'est toujours vrai !
a<b<c est lu en c ainis : (a<b)<c, c'est à dire que tu compare un booléen à c. Pour peu que c soit plus grand que 1, c'est toujours vrai.
pour moi c'est toujours vrai !
a<b<c est lu en c ainis : (a<b)<c, c'est à dire que tu compare un booléen à c. Pour peu que c soit plus grand que 1, c'est toujours vrai.
Oui mais dans ton cas, on ne rentre jamais dans la boucle.
Pour t'en convaincre, prenons le cas stslt[0].Opacity= 0.2 (on doit donc rentrer dans la boucle).
0.185<=0.2 renvoie 1 (true). Donc slt[0].Seuil_MIN <= slt[0].Opacity <= slt[0].Seuil_MAX donne 0.185<=0.2<=0.25, soit 1<=0.25, ce qui est faux.
Cdt
if (slt[0].Seuil_MIN <= slt[0].Opacity <= slt[0].Seuil_MAX)doit être remplacé par
if (slt[0].Seuil_MIN <= slt[0].Opacity && slt[0].Opacity <= slt[0].Seuil_MAX) !
Pour t'en convaincre, prenons le cas stslt[0].Opacity= 0.2 (on doit donc rentrer dans la boucle).
0.185<=0.2 renvoie 1 (true). Donc slt[0].Seuil_MIN <= slt[0].Opacity <= slt[0].Seuil_MAX donne 0.185<=0.2<=0.25, soit 1<=0.25, ce qui est faux.
Cdt
{
case 0: SetCtrlAttribute(mainpanel3,MainPanel3_VEILLE1,ATTR_TEXT_BGCOLOR, VAL_TRANSPARENT);
SetCtrlAttribute(mainpanel3,MainPanel3_VEILLE1,ATTR_TEXT_COLOR, VAL_BLACK);
SetCtrlAttribute(mainpanel3,MainPanel3_ALARM1,ATTR_TEXT_BGCOLOR, VAL_YELLOW);
SetCtrlAttribute(mainpanel3,MainPanel3_ALARM1,ATTR_TEXT_COLOR, VAL_RED);
//ALARME_1... = VISIBLE
SetCtrlAttribute(mainpanel3,MainPanel3_ALARME_11,ATTR_VISIBLE, 1);
if (slt[0].Seuil_MIN <= slt[0].Opacity <= slt[0].Seuil_MAX)
{
SetCtrlAttribute(mainpanel3,MainPanel3_CONFORME1,ATTR_TEXT_COLOR, VAL_RED);
SetCtrlVal(mainpanel3,MainPanel3_CONFORME1,NON_CONFORME);
}
VOICI LE VRAI
switch (index)
{
case 0: SetCtrlAttribute(mainpanel3,MainPanel3_VEILLE1,ATTR_TEXT_BGCOLOR, VAL_TRANSPARENT);
SetCtrlAttribute(mainpanel3,MainPanel3_VEILLE1,ATTR_TEXT_COLOR, VAL_BLACK);
SetCtrlAttribute(mainpanel3,MainPanel3_ALARM1,ATTR_TEXT_BGCOLOR, VAL_YELLOW);
SetCtrlAttribute(mainpanel3,MainPanel3_ALARM1,ATTR_TEXT_COLOR, VAL_RED);
//ALARME_1... = VISIBLE
if (slt[0].Seuil_MIN <= slt[0].Opacity <= slt[0].Seuil_MAX)
{
SetCtrlAttribute(mainpanel3,MainPanel3_CONFORME1,ATTR_TEXT_COLOR, VAL_RED);
SetCtrlVal(mainpanel3,MainPanel3_CONFORME1,NON_CONFORME);
GetCtrlVal (mainpanel3, MainPanel3_OPACITY, temp_Opacity10);
temp_Opacity10 = slt[0].Opacity;
SetCtrlAttribute(mainpanel3,MainPanel3_OPACITY1,ATTR_CTRL_VAL,temp_Opacity10);
}