• 28 Mars 2024, 15:55:39


Auteur Sujet: Les différents opérateurs [niveau: tous]  (Lu 24102 fois)

0 Membres et 1 Invité sur ce sujet

Hors ligne R@f

  • *
  • GTAOnline Addict
  • Messages: 4655
    • Voir le profil
Re : Les différents opérateurs
« Réponse #15 le: 23 Janvier 2009, 17:32:13 »
Oui mais ça imprime le fil de discutions en entier, moi je trouve aussi que le PDF est pratique quand on a pas accès à internet ^^

++
R@f

Hors ligne Syg

  • Expert programmeur C/C++/PAWN
  • *
  • The GTAOnline Jesus
  • Messages: 3908
    • Voir le profil
Re : Les différents opérateurs
« Réponse #16 le: 26 Janvier 2009, 15:24:10 »
Sinon, copier le contenu du post, le coller dans Word (qui garde plus ou moins la mise en forme) et le tour en joué.

++
Syg
Courtesy of GtaManiac

Hors ligne S!m

  • *
  • Messages: 2341
    • Voir le profil
Re : Les différents opérateurs
« Réponse #17 le: 27 Janvier 2009, 02:18:37 »
Salut,

j'ai tester et en copiant sur word, ça garde une mise en forme acceptable mais il fait 17 pages ;D

on pourra pas dire que c'est court XD

++Sim++





Hors ligne Bayshore

  • *
  • Grand Banditisme
  • Messages: 923
    • Voir le profil
Re : Les différents opérateurs
« Réponse #18 le: 08 Février 2009, 01:16:06 »
Avec un pdf ce sera plus ou moins pareil...

Sinon je crois que l'on peut aussi faire var /= 3; pour diviser par 3.

Aussi il y a ^= (et certainement d'autres), mais je ne suis pas sûr de savoir à quoi il sert...

Hors ligne Syg

  • Expert programmeur C/C++/PAWN
  • *
  • The GTAOnline Jesus
  • Messages: 3908
    • Voir le profil
Re : Les différents opérateurs
« Réponse #19 le: 09 Février 2009, 16:33:47 »
Tout à fait bayshore, /= fonctionne bien comme les autres opérateurs.
var/=3; équivaut à var = var/3;

Pour ^=, c'est la même chose.
var^=3; équivaut à var = var^3;

L'opérateur ^ est un ou exclusif bit à bit qui n'est pas cité par Sim mais dont l'utilité en PAWN/SA-MP est discutable.
Exemple :
6^3=5

Si on décompose en base 2 :
6 -> 110
3 -> 011
5 -> 101

Le règles de calculs avec le ou exclusif sont les suivantes :
0^0=0
1^1=0
0^1=1
1^0=1

Comme autres opérateurs, on peut aussi citer l'opérateur % (modulo) :
var%=3; qui équivaut à var = var%3;

++
Syg



Courtesy of GtaManiac

Hors ligne S!m

  • *
  • Messages: 2341
    • Voir le profil
Re : Les différents opérateurs
« Réponse #20 le: 10 Février 2009, 00:09:53 »
Salut,

le modulo, je l'ai connu quelque peut après la dernière version de ce simili tuto,
par contre j'ignorais totalement la signification de ^
merci Syg et bayshore, j'ajoute aussi tôt que possible :D

++Sim++





Hors ligne [viruz]rider_77

  • *
  • Mafioso
  • C/C++ programming
  • Messages: 2154
    • Voir le profil
Re : Les différents opérateurs
« Réponse #21 le: 10 Février 2009, 01:01:57 »
alors je vais expliqué rapidement ce que j'ai compris aux différents opérateurs présents en pawn,
Les opérateurs sont sensiblement les même dans la plupart des languages de programmation  :king



Voici une autre contribution à ton tuto de ma part :

Faudrait pas oublier:

-=
+= (je sais pu s'il est déjà dans le tuto)
*=
!=

-=
Les codes suivant font le même travail:
Code: (c) [Sélectionner]
new Var = 10;
Var = Var - 3;

Code: (c) [Sélectionner]
new Var = 10;
Var -= 3;

En gros, -= signifie que l'opération sera : La valeur de la variable - le chiffre qui suit "-=".
Ainsi, la variable en question vaudra la valeur de la variable - le chiffre qui suit.

+=
Les codes suivant font le même boulot:
Code: (c) [Sélectionner]
new Var = 10;
Var = Var + 3;

Code: (c) [Sélectionner]
new Var = 10;
Var += 3;

En gros, += signifie que l'opération sera : La valeur de la variable + le chiffre qui suit "+=".
Ainsi, la variable en question vaudra la valeur de la variable + le chiffre qui suit.

*=
Les codes suivant font le même boulot:
Code: (c) [Sélectionner]
new Var = 10;
Var = Var * 3;

Code: (c) [Sélectionner]
new Var = 10;
Var *= 3;

En gros, *= signifie que l'opération sera : La valeur de la variable * le chiffre qui suit "*=".
Ainsi, la variable en question vaudra la valeur de la variable * le chiffre qui suit.

!=
Voici un exemple d'utilisation:
Code: (c) [Sélectionner]
new Var = 10;
if(Var != 10)
{
      //Instructions...
}
else
{
      //Instructions...
}

Le symbole != veut tout simplement dire différent de ....
Ainsi dans l'exemple ci-dessous, si Var est différente de 10 (!= 10) on entre dans les accolades...
Sinon on va voir dans le else :D

« Modifié: 10 Février 2009, 01:05:37 par [viruz]rider_77 »

Hors ligne Syg

  • Expert programmeur C/C++/PAWN
  • *
  • The GTAOnline Jesus
  • Messages: 3908
    • Voir le profil
Re : Les différents opérateurs
« Réponse #22 le: 10 Février 2009, 08:58:44 »
Tous les opérateurs que tu cites Rider sont déjà dans le tuto de Sim.
Et effectivement, tous ces opérateurs sont exactement les mêmes qu'en C/C++

++
Syg
Courtesy of GtaManiac

Hors ligne Bayshore

  • *
  • Grand Banditisme
  • Messages: 923
    • Voir le profil
Re : Re : Les différents opérateurs
« Réponse #23 le: 14 Février 2009, 15:02:08 »
OK merci pour l'info sur le ^.

L'opérateur ^ est un ou exclusif bit à bit qui n'est pas cité par Sim mais dont l'utilité en PAWN/SA-MP est discutable.

Je l'avais vu dans la fonction Encript() de PEN1 (celle qui donne la fameuse faille)...

Code: (pawn) [Sélectionner]
public Encript(string[])
{
for(new x=0; x < strlen(string); x++)
  {
  string[x] += (3^x) * (x % 15);
  if(string[x] > (0xff))
  {
  string[x] -= 256;
  }
  }
return 1;
}
« Modifié: 14 Février 2009, 15:36:10 par Bayshore »

Hors ligne [viruz]rider_77

  • *
  • Mafioso
  • C/C++ programming
  • Messages: 2154
    • Voir le profil
Re : Re : Les différents opérateurs
« Réponse #24 le: 14 Février 2009, 15:29:30 »
Tous les opérateurs que tu cites Rider sont déjà dans le tuto de Sim.
Et effectivement, tous ces opérateurs sont exactement les mêmes qu'en C/C++

++
Syg
J'avais pas vu :P

vincentdu90

  • Invité
Re : Les différents opérateurs
« Réponse #25 le: 31 Août 2010, 10:32:06 »
Je sais que ce tuto date de plus d'un an mais si j'ai bien compris l'utilité de l'opérateur "!"

Ceci :

if (strlen(Variable) == 0)
{
/* Action */
}

Equivaut à cela :

if (!strlen(Variable))
{
/* Action */
}

 ??

Hors ligne Syg

  • Expert programmeur C/C++/PAWN
  • *
  • The GTAOnline Jesus
  • Messages: 3908
    • Voir le profil
Re : Les différents opérateurs
« Réponse #26 le: 31 Août 2010, 10:40:21 »
Oui, c'est équivalent mais pour une meilleure lisibilité, il vaut mieux utiliser la première notation (avec le ==).

D'ailleurs, en terme de rapidité, la première forme est plus rapide car dans la deuxième, il faut faire une négation bit à bit avant de pourvoir faire la comparaison. Même si sur un seul test la différence n'est pas quantifiable.

++
Syg
Courtesy of GtaManiac

vincentdu90

  • Invité
Re : Les différents opérateurs
« Réponse #27 le: 31 Août 2010, 10:42:23 »
Ok , merci de l'info Syg  ;)

Hors ligne Xartrick

  • *
  • C & Pawn Programmer
  • Messages: 1391
    • Voir le profil
    • Xartrick's Area
Re : Les différents opérateurs [niveau: tous]
« Réponse #28 le: 27 Novembre 2011, 01:41:33 »
L'opérateur logique '^'

Appelé XOR, cet opérateur est un OU exclusif bit-à-bit.
Peut servir à vérifier si seulement une seule des conditions est vrai.


if ((IsPlayerConnected(playerid)) ^ (IsPlayerAdmin(playerid)))
0 ^ 0 = 0
1 ^ 1 = 0
1 ^ 0 = 1
0 ^ 1 = 1



L'opérateur '%'

Appelé modulo, cet opérateur sert à récupérer le reste d'une division.
Peut servir à savoir si un nombre est divisible par un autre.
Lorsque que (x % y) = 0, x est divisible par y.


9 % 3 = 0
25 % 5 = 0
10 % 6 = 4
40 % 3 = 1
« Modifié: 27 Novembre 2011, 02:04:15 par Xartrick »

Hors ligne mehdi-jumper

  • *
  • Bandit
  • Messages: 311
    • Voir le profil
Re : Les différents opérateurs [niveau: tous]
« Réponse #29 le: 27 Novembre 2011, 11:53:39 »
Et evidemment pas d'avertissement pour avoir uper un vieux sujet...
 Mais toi pour un HS tu t'en manges un ;)
Lui n'a fait que compléter un tuto.