Syntaxe ??? [Résolu]

Signaler
Messages postés
120
Date d'inscription
dimanche 22 octobre 2000
Statut
Membre
Dernière intervention
26 février 2014
-
Messages postés
3819
Date d'inscription
dimanche 12 décembre 2004
Statut
Modérateur
Dernière intervention
28 septembre 2020
-
bonjour
je suis entrain d’étudier le fonctionnement d'un programme en c++ mais il y'a quelques syntaxe que je ne connait pas.
Voila j'aimerais savoir ce que signifie dans un calcul de ce type la syntaxe pval->
PWR[9] = (pval->MLP[1]*1000)

autre declaration
Static Tlcc_32 XXXXX;

de plus j'ai vu ceci

Pad déclarée comme variable

puis dans le programme

Pad[line], pourtant Pad n'est pas déclarée en tant que tableau ????

d'avance merci pour vos reponses


Diablo_SV

5 réponses

Messages postés
3819
Date d'inscription
dimanche 12 décembre 2004
Statut
Modérateur
Dernière intervention
28 septembre 2020
113
Bonjour.

Je vais essayer de t'aider, mais tu donnes assez peu de détails :)

pval->PWR[9] = (pval->MLP[1]*1000)

pval doit être un pointeur sur une classe. Elle doit sûrement ressembler à cela:
class Value
{
public:
  int PWR[SIZE];
  int MLP[SIZE];
};

Value* pval = new Value;
[...]

Donc, il met dans la 10ème case de PWR, la valeur de la 2ème case de MLP multiplié par 1000.

Static Tlcc_32 XXXXX;

Je t'avoue que "static", je connait mais "Static", n'existe pas. Soit tu as a fait une faute de frappe, soit il y a un define (une macro en gros) par dessus et j'ai besoin de la voir pour savoir ce qui se cache derrière.
"static" sert à dire que la variable sera locale à son scope. Soit limité à être vu dans le fichier, soit, si mis dans une fonction, une variable globale qui est limitée en visibilité à la portée de celle-ci.


Pad déclarée comme variable
puis dans le programme
Pad[line], pourtant Pad n'est pas déclarée en tant que tableau ????

Si c'est "type* Pad;" n'oublie pas qu'un pointeur et un tableau c'est la même chose en C et C++.

________________________________________________________________________
Historique de mes créations, et quelques articles:
[ http://0217021.free.fr/portfolio http://0217021.free.fr/portfolio]
Merci d'utiliser Réponse acceptée si un post répond à votre question
Messages postés
120
Date d'inscription
dimanche 22 octobre 2000
Statut
Membre
Dernière intervention
26 février 2014

Merci pour tes reponses


effectivement la syntaxe est static et non Static

Pour la formule le 1er pval-> ne compte pas.
PWR[9] = (pval->MLP[2] * 1000)
pour ma part j’essaie de réécrire le code en VB donc d’après ton explication cela pourrait signifier PWR(9) = MLP(2) * 1000.


Diablo_SV
Messages postés
3819
Date d'inscription
dimanche 12 décembre 2004
Statut
Modérateur
Dernière intervention
28 septembre 2020
113
cela pourrait signifier PWR(9) = MLP(2) * 1000.

La première case d'un tableau en VB, est-ce 0 ou 1 ?
En C et en C++, un tableau commence à 0. Soit: PWR(10) = MLP(2) * 1000 ?
S'il y a des classes ou des structures en VB (dont je ne connais pas la syntaxe), alors ce n'est pas MP(2) mais le membre MP d'une classe.

________________________________________________________________________
Historique de mes créations, et quelques articles:
[ http://0217021.free.fr/portfolio http://0217021.free.fr/portfolio]
Merci d'utiliser Réponse acceptée si un post répond à votre question
Messages postés
120
Date d'inscription
dimanche 22 octobre 2000
Statut
Membre
Dernière intervention
26 février 2014

en vb on commence a 0 un tableau
donc PWR(9) = MLP(2) * 1000

MLP et PWR etant des tableaux

Que signifie cette syntaxe

for(col=0;col<MAX_COLUMN;TprioT[((Tlcc_32) pval->PRIO[col])-1]=col++);

pour moi c'est la meme chose que cela

For col = 0 To MAX_COLUMN - 1

TprioT(PRIO(col) - 1) = col

Next

Mais que peut signifier le Tlcc_32 ( je ne l'ai pas trouve en tant que variable ).
De plus -1, on ne peut indexer une case negative !!!!!
Diablo_SV
Messages postés
3819
Date d'inscription
dimanche 12 décembre 2004
Statut
Modérateur
Dernière intervention
28 septembre 2020
113
donc PWR(9) = MLP(2) * 1000

Au vu du code précédent, PWR(9) = MLP(1) * 1000, non ?

Mais que peut signifier le Tlcc_32 ( je ne l'ai pas trouve en tant que variable ).

Je pense que c'est: "typedef int Tlcc_32", donc simplement un type "int".


for(col=0;col<MAX_COLUMN;TprioT[((Tlcc_32) pval->PRIO[col])-1]=col++);

C'est vraiment très moche ! (C'est peut être pour cela qu'on te demande de le réécrire :p).

Pour ceci: "TprioT[((Tlcc_32) pval->PRIO[col])-1]"
- "pval->PRIO[col]" => Il récupère la valeur de la case "col" du tableau PRIO
- "TprioT[((Tlcc_32) VAL) - 1]" => Puis "cast" le résultat en "Tlcc_32", que je suppose être un type entier de 32 bits (soit "int").
- TprioT[VAL - 1] => Enfin, il prend la case précédente. Tant que VAL > 0, il n'y aura pas de souci.

________________________________________________________________________
Historique de mes créations, et quelques articles:
[ http://0217021.free.fr/portfolio http://0217021.free.fr/portfolio]
Merci d'utiliser Réponse acceptée si un post répond à votre question