.hovertable {
font-family: verdana,arial,sans-serif;
font-size:11px;
margin: -2px;
width: 100%;
overflow: hidden;
background: #FFF;
color: #024457;
border:2px solid #167F92;
border-radius: 10px;
border-collapse: separate;
}
.hovertable th {
background-color:#c3dde0;
border-width: 1px;
color:#024457;
padding: 8px;
border-: solid;
border-color: #a9c6c9;
}
.hovertable tr {
border: 1px solid #D9E4E6;
&:nth-child(odd) { // highlight the odd rows with a color
background-color: #EAF3F3;
}
.hovertable td {
border-width: 1px;
padding: 8px;
border-: solid;
border-color: #a9c6c9;
}
summary {
cursor: pointer;
font-size: 16px;
font-weight: bold;
text-decoration-line: underline;
content: « + »;
}
.coin {
background-color:#E4EFFF;
border:1px solid #9FC6FF;
padding:5px;
/*arrondir les coins en haut à gauche et en bas à droite*/
-moz-border-radius:10px;
-webkit-border-radius:10px;
border-radius:10px;
font-family: ‘Trebuchet MS’, Verdana, sans-serif;
}
Les opérateurs en C# (V.S.2015)
- Dans cet article, qui s’intitule « Les opérateurs de comparaison en C# (V.S. 2015)« , je vais vous montrer comment les utiliser en combinaison avec les instructions conditionnelles.
- Les opérateurs sont des mots clés du langage permettant l’exécution d’opérations sur le contenu de certains éléments, en général des variables, des constantes, des valeurs littérales, ou des retours de fonctions.
- La combinaison d’un ou plusieurs opérateurs et d’éléments sur lesquels les opérateurs vont s’appuyer se nomme une expression. Ces expressions sont évaluées au moment de leur exécution, en fonction des opérateurs et des valeurs qui sont associées .
- En C#, un opérateur est un élément de programme qui s’applique à un ou plusieurs opérandes dans une expression ou une instruction.
- Les opérateurs qui prennent un opérande, comme l’opérateur d’incrément (++) ou new, portent le nom d’opérateurs unaires.
- Les opérateurs qui prennent deux opérandes, comme les opérateurs arithmétiques (+, -, *, /) portent le nom d’opérateur binaires.
- Un opérateur, l’opérateur conditionnel (?:), prend trois opérandes et est le seul opérateur ternaire en C#.
MSDN
Vidéo:Les opérateurs de comparaison en C#
(adsbygoogle = window.adsbygoogle || []).push({});
C#: Les opérateurs arithmétiques.
C#: Les opérateurs arithmétiques.
- Les opérateurs arithmétiques utilisent des valeurs numériques (variables ou littéraux) comme opérandes et renvoient une valeur numérique.
- L’addition (+), la soustraction (-), la multiplication (*), et la division (/) et % sont appelés opérateurs arithmétiques.
- Les opérateurs arithmétiques permettent d’effectuer des calculs sur le contenu des variables.
-
Opérateur de multiplication.
- L’opérateur de multiplication permet d’obtenir le produit des opérandes.
- Écrire un programme avec C# pour afficher le résultat de la multiplication des trois nombres qui seront entrés par l’utilisateur.
- Exemple de traitement:
- Entrez le premier nombre à multiplier : 4
- Entrez le second numéro à multiplier : 7
- Entrez le troisième nombre à multiplier : 9
- Résultat de multiplication :4*7*9=252
Multiplication de nombres entiers :
int operator *(int x, int y); uint operator *(uint x, uint y); long operator *(long x, long y); ulong operator *(ulong x, ulong y);
Rappel
Type | Gamme | Taille | .NET Framework type | Valeur par défaut |
---|---|---|---|---|
int | -2,147,483,648 to 2,147,483,647 | Signé entier de 32 bits | Système . Int32 | 0 |
uint | 0 à 4294967295 | Unsigned entier de 32 bits | Système . UInt32 | 0 |
long | –9,223,372,036,854,775,808 to 9,223,372,036,854,775,807 | Signed 64-bit integer | Système . Int64 | 0 |
ulong | 0 à 18.446.744.073.709.551.615 | Unsigned entier de 64 bits | Système . UInt64 | 0 |
Exercice d’application apcpedagogie07
<ul
Multiplication de nombres à virgule flottante :
float operator *(float x, float y); double operator *(double x, double y);
Multiplication de nombres décimaux :
decimal operator *(decimal x, decimal y);
Opérateur de division.
- L’opérateur de division produit le quotient de ces opérandes avec l’opérande gauche comme numérateur et l’opérande droit comme dénominateur.
Division de nombres entiers :
int operator /(int x, int y); uint operator /(uint x, uint y); long operator /(long x, long y); ulong operator /(ulong x, ulong y);
Division de nombres à virgule flottante :
float operator /(float x, float y); double operator /(double x, double y);
Division de nombres décimaux :
decimal operator /(decimal x, decimal y);
Exercice d’application opérateurs division 01
Exercice opérateurs division 01
- Écrire un programme avec C# pour afficher le résultat de la division des deux nombres qui seront entrés par l’utilisateur.
- Exemple de traitement:
- Entrez le numérateur : 15
- Entrez dénominateur : 7
- Résultat de division :15/7=2,143
<ul
Opérateur de reste.
- L’opérateur « reste » renvoie le reste de la division du premier opérande par le second.
- Le résultat obtenu a toujours le signe du numérateur (la quantité divisée).
- Cela correspond à var1 modulo var2, avec var1 et var2 étant des variables.
- La fonction modulo est le reste entier de la division de var1 par var2.
Exemple:
12 % 5 // 2 -1 % 2 // -1 NaN % 2 // NaN 1 % 2 // 1 2 % 3 // 2 -4 % 2 // -0 5.5 % 2 // 1.5
Reste de nombres entiers :
int operator %(int x, int y); uint operator %(uint x, uint y); long operator %(long x, long y); ulong operator %(ulong x, ulong y);
Reste de nombres à virgule flottante :
float operator %(float x, float y); double operator %(double x, double y);
Reste de nombres décimaux :
decimal operator %(decimal x, decimal y);
Opérateur d’addition
Addition de nombres entiers :
int operator +(int x, int y); uint operator +(uint x, uint y); long operator +(long x, long y); ulong operator +(ulong x, ulong y);
Addition de nombres à virgule flottante :
float operator +(float x, float y); double operator +(double x, double y);
Addition de nombres décimaux :
decimal operator +(decimal x, decimal y);
Addition d’énumérations :
E operator +(E x, U y); E operator +(U x, E y);
Concaténation de chaînes :
string operator +(string x, string y); string operator +(string x, object y); string operator +(object x, string y);
Opérateur de soustraction
- L’opérateur de soustraction soustrait les deux opérandes pour obtenir leur différence.
Soustraction de nombres entiers :
int operator –(int x, int y); uint operator –(uint x, uint y); long operator –(long x, long y); ulong operator –(ulong x, ulong y);
Soustraction de nombres à virgule flottante :
float operator –(float x, float y); double operator –(double x, double y);
Soustraction de nombres décimaux :
decimal operator –(decimal x, decimal y);
C#: Les opérateurs de comparaison.
C#: Les opérateurs de comparaison.
- Les Opérateurs de comparaison sont utilisés dans les structures de contrôle d’une application (if then, do loop…). Ils renvoient une valeur de type boolean en fonction du résultat de la comparaison effectuée. Cette valeur sera ensuite utilisée par la structure de contrôle.
- C# fournit de nombreux opérateurs, qui sont des symboles spécifiant quelles opérations effectuer dans une expression.
- Une condition se construit grâce à des opérateurs de comparaison.
- Les opérateurs de comparaisons, les plus courants sont :
Opérateur | Description | exemples |
---|---|---|
== | Egalité | 5 = = 2 ; x+1 = = 3 ; etc… |
!= | Différence | 5 != 2 ; x+1 != 3 ; etc… |
> | Supérieur à | 5 2 ; x+1 3 ; etc… |
Inférieur à | 5 2 ; x+1 3 ; y-2 x*4 | |
>= | Supérieur ou égal | 5 >= 2 ; etc… |
<= | Inférieur ou égal | -5 <= 2 ; x+1 = 3 ; etc… |
&& | ET logique | (5 = = 2) (x+1 3) ; etc… |
|| | OU logique | (5 != 2) || (x+1 >= 3) ; etc… |
! | Négation | ! (5 2) ; !(x+1 3) ; etc… |
C#: Les opérateurs logiques conditionnels.
C#: Les opérateurs logiques conditionnels.
- Les opérateurs && et || sont appelés opérateurs logiques conditionnels.
- Ils sont également appelés opérateurs logiques « court-circuitant ».
- L’opérateur AND conditionnel ()
- L’opérateur AND conditionnel () effectue une opération AND logique sur les opérandes de type bool, mais évalue uniquement le second opérande, si nécessaire.
- L’opérateur OR conditionnel (||)
- L’opérateur OR conditionnel (||) retourne vrai si l’un des deux opérandes est vrai.
C#: Les opérateurs conditionnel.
C#: Les opérateurs conditionnel.
- L’opérateur ?: est appelé l’opérateur conditionnel. Il est parfois également appelé l’opérateur ternaire.
- L’opérateur conditionnel (?:) retourne l’une de deux valeurs selon la valeur d’une expression booléenne.
- Syntaxe:condition ? first_expression : second_expression;
- La condition est évaluée entre true ou false.
- Si condition est true, first_expression est évaluée et devient le résultat.
- Si condition est false, second_expression est évaluée et devient le résultat.
- Seule une des deux expressions peut être évaluée.
- Cette expression est l’équivalent d’une boucle if else
Type var var = Condition ? Expression_1 : Expression_2;//opérateur conditionnel // est équivalent à if (Condition) {//test avec le if var = Expression_1; } else { var = Expression_2; }
Le résultat de Condition doit être un booléen.
Val1 et val2 doivent être de même type.
-
Il s’utilise de cette façon : a ? b : c;.
- a doit être une expression conditionnelle (qui retourne true ou false). À l’exécution, cette expression est évaluée.
- Si elle vaut true, l’expression b sera exécutée et son résultat sera retourné ; l’expression a sera ignorée.
- Si elle vaut false, l’expression c sera exécutée et son résultat sera retourné ; l’expression b sera ignorée.
-
Exemple :
string ma_chaine = (2 == 5) ? « les nombres sont égaux » : « les nombres ne sont pas égaux »;
Après exécution, ma_chaine vaut « les nombres ne sont pas égaux » car (2 == 5) a retourné false.
- Déclarer et définir 2 variables nombre_premier et lenomlbre de type number.
- En utilisant uniquement l’opérateur ternaire, on affiche :
- Si les 2 nombres sont égaux Congratulations !
- Sinon
- Si le nombre lenomlbre est inférieur au nombre nombre_premier , on affiche +
- Sinon on affiche –
C#: Les opérateurs unaires.
C#: Les opérateurs unaires.
-
+x :
-
Négation unaire (-)(-x):
-
Négation logique (!x) :
-
~x :
- L’opérateur de complément à un (~), parfois appelé l’opérateur de complément de bits, génère un complément à un au niveau du bit de son opérande. Autrement dit, chaque bit qui est 1 dans l’opérande est 0 dans le résultat. Inversement, chaque bit qui est 0 dans l’opérande est 1 dans le résultat. L’opérande de l’opérateur de complément à un doit être un type intégral.
-
Incrément (++):
- Si l’opérateur est utilisé en suffixe (par exemple : x++), il renvoie la valeur avant l’incrémentation.
- Si l’opérateur est utilisé en préfixe (par exemple : ++x), il renvoie la valeur après l’incrémentation.
-
Décrément (–) :
- Si l’opérateur est utilisé en suffixe (par exemple : x–), il renvoie la valeur avant la décrémentation.
- Si l’opérateur est utilisé en préfixe (par exemple : –x), il renvoie la valeur après la décrémentation.
-
(T)x :
-
&x :
-
*x :
renvoie la valeur de x.
Négation numérique.
L’opérateur de négation unaire précède son opérande et prend son opposé.
int i = 3; j = -i; // j = -3, i = 3
bool estVrai = true; if (!estVrai) Console.WriteLine("C'est faux !"); else Console.WriteLine("C'est vrai !");
complément au niveau du bit.
Exemple: 0000 0010 → 1111 1101
L’opérateur d’incrément ajoute une unité à son opérande et renvoie une valeur.
Exemple:
// Suffixe int i = 3; j = i++; // j = 3, i = 4 // Préfixe int a = 2; b = ++a; // a = 3, b = 3
L’opérateur de décrément soustrait une unité à son opérande et renvoie une valeur.
// Suffixe int i = 2; j = i--; // j = 2, i = 1 // Préfixe int a = 3; b = --a; // a = 2, b = 2
cast de type.
Await : attend un Task.
adresse de.
déréférencement.
C#: Les opérateurs de décalage.
C#: Les opérateurs de décalage.
- Les opérateurs de décalage de bits sont l’opérateur de décalage vers la droite (>>), qui déplace les bits de shift_expression vers la droite et l’opérateur de décalage vers la gauche (<<), qui déplace les bits de shift_expression vers la gauche.
- Décalages vers la gauche(<<)
- Décale la valeur d’une variable vers la gauche, du nombre de bits spécifié dans la valeur d’une expression, et assigne le résultat à la variable.
-
Exemple
var temp temp = 14 temp <<= 2
- La variable temp a la valeur 56 puisque 14 (00001110 en binaire) décalé vers la gauche de deux bits est égal à 56 (00111000 en binaire). Les bits sont remplis de zéros lors du décalage.
- Pour illustrer le fonctionnement du masquage, examinons l’exemple suivant.
- L’emploi de cet opérateur est presque équivalent à celui de result = result << expression, sauf que result n’est évalué qu’une seule fois.
- L’opérateur <<= décale les bits de result vers la gauche, du nombre de bits spécifié dans expression. L’opérateur masque expression pour éviter un décalage trop important de result.
- En effet, si le nombre de positions de décalage était supérieur au nombre de bits dans le type de données de result, tous les bits d’origine seraient décalés hors des limites et donneraient un résultat non significatif.
- Pour garantir que chaque décalage laisse au moins un des bits d’origine, les opérateurs de décalage utilisent la formule suivante pour calculer le nombre réel de positions de décalage : masquer expression (avec l’opérateur de bits AND) avec un de moins que le nombre de bits dans result.
var x : byte = 15; // Un octet stocke 8 bits. // Les bits sont stockés dans x 00001111 x <<= 10; // changement réel est 10 & (8-1) = 2 // Les bits sont stockés dans x 00111100 // La valeur de x est 60 print(x); // Prints 60
C#: L’opérateur is.
C#: L’opérateur is.
- L’opérateur is vérifie si un objet est compatible avec un type donné.
- Opération réalisée: comparaison de type de variable avec le type de donnée.
- Par exemple, le code suivant peut déterminer si un objet est une instance du type de MonObjet, ou d’ un type qui dérive de MonObjet:
if (obj is MyObject) { }
class Class1 {} class Class2 {} class Class3 : Class2 { } class IsTest { static void Test(object o) { Class1 a; Class2 b; if (o is Class1) { Console.WriteLine("o is Class1"); a = (Class1)o; // Do something with "a." } else if (o is Class2) { Console.WriteLine("o is Class2"); b = (Class2)o; // Do something with "b." } else { Console.WriteLine("o is neither Class1 nor Class2."); } } static void Main() { Class1 c1 = new Class1(); Class2 c2 = new Class2(); Class3 c3 = new Class3(); Test(c1); Test(c2); Test(c3); Test("a string"); } } /* Output: o is Class1 o is Class2 o is Class2 o is neither Class1 nor Class2. */
C#: Les opérateurs de conversion.
C#: Les opérateurs de conversion.
- Une déclaration d’opérateur de conversion comprend le mot clé implicit ou explicit
- Conversion qui comprend le mot clé implicit
- Une déclaration d’opérateur de conversion qui comprend le mot clé implicit présente une conversion implicite définie par l’utilisateur.
- Les conversions implicites peuvent se produire dans diverses situations, y compris dans des appels de fonctions membres, des expressions cast et des assignations.
- Conversion qui comprend le mot clé explicit
- Une déclaration d’opérateur de conversion qui comprend le mot clé explicit présente une conversion explicite définie par l’utilisateur.
- Les conversions explicites peuvent se produire dans des expressions cast.
C#: L’opérateur as.
C#: L’opérateur as.
- Vous pouvez utiliser l’opérateur as pour exécuter certains types de conversions entre des types de référence compatibles ou des types Nullable.
- Le code suivant est fourni à titre d’exemple.
class csrefKeywordsOperators { class Base { public override string ToString() { return "Base"; } } class Derived : Base { } class Program { static void Main() { Derived d = new Derived(); Base b = d as Base; if (b != null) { Console.WriteLine(b.ToString()); } } } }
C#: Les opérateurs d’affectation.
- Le seul opérateur disponible dans cette catégorie est l’opérateur =. Il permet d’affecter une valeur à une variable. Le même opérateur est utilisé quel que soit le type de la variable (numérique, chaîne de caractères…).
C#: Opérateur de concaténation.
C#: Opérateur de concaténation.
- L’opérateur est utilisé pour la concaténation de chaînes de caractères. C’est le même opérateur qui est utilisé pour l’addition. Cependant il n’y a pas de risque de confusion car Visual C# ne fait pas de conversion implicite des chaînes de caractères en numérique. Il détermine donc que si l’un des deux opérandes et une chaîne de caractères c’est une concaténation qui doit être exécutée. même si une des chaînes représente une valeur numérique.
- L’inconvénient de l’opérateur + est qu’il n’est pas très rapide pour la concaténation. Si vous avez de nombreuses concaténations à exécuter sur une chaîne, il est préférable d’utiliser StringBuilder.
Le code suivant
-
– string chaîne – « 123 »:
– Console .WriteLine (chaine + 456) ;
–affiche
–123456
Exercices d’application.
Exercice : terminologie
-
Soit le morceau de code suivant : (x * 3) + 1
-
– Quel nom donne-t-on à ce morceau de code tout entier ?
– Quels sont les opérateurs ?
– Quels sont les opérandes de * ?
– Quels sont les opérandes de + ?
– Quel genre de chose est x dans ce morceau de code ?
– Quel(s) type(s) a ou peut éventuellement avoir x ?
– Quel est le type de 3 et 1 ?
– Quel est le type de (x * 3) + 1 ?
– Quelle est la valeur de (x * 3) + 1 ?
Exercice_apcpedagogie06
- Écrire un programme C# qui va afficher le résultat de l’addition , la soustraction, la multiplication ,la division et le reste de la division de deux nombres saisies par l’utilisateur.
- Exemple de traitement:
- Entrez le premier numéro : 25
- Entrez le second numéro : 4
- Résultat attendu :
- 25 + 4 = 29
- 25-4 = 21
- 25 x 4 = 100
- 25/4 = 6
- 25 mod 4 = 1.
<ul
Exercice les opérateurs 01
- On considère le code suivant:
int i 12;
int j=i++%6;
Quel est la valeur de i et de j après exécution de ce code?
Quel est la valeur de i après l’exécution du code suivant :
Int i = 17 ;
I >>=1;
Exercice les opérateurs 02
- Quelles sont les valeurs affichées par ce code après exécution :
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace exercice_operateur_02 { class Program { static void Main(string[] args) { int i, j; double x, y; i = 2; j = 6; Console.WriteLine("évaluation de l'expression i*j+1 : " + (i * j + 1)); Console.WriteLine("évaluation de l'expression i*(j+1) : " + (i * (j + 1))); Console.WriteLine("évaluation de l'expression j/(2*i) : " + (j / (2 * i))); Console.WriteLine("évaluation de l'expression j/i : " + (j / i)); Console.WriteLine("évaluation de l'expression (j+1)/i : " + ((j + 1) / i)); Console.WriteLine("évaluation de l'expression j/2*i : " + (j / 2 * i)); Console.WriteLine("évaluation de l'expression j%i : " + (j % i)); Console.WriteLine("évaluation de l'expression (j+1)%i : " + ((j + 1) % i)); x = i; y = j; Console.WriteLine("évaluation de l'expression x/y : " + (x / y)); Console.WriteLine("évaluation de l'expression (x+5.0)%y : " + ((x + 5.0) % y)); Console.WriteLine("évaluation de l'expression y+i-x/3+(2+j)%x/y : " + (y + i - x / 3 + (2 + j) % x / y)); } } }
Exercice les opérateurs 03
- Corrigez les erreurs et trouvez le résultat
Double t = 160.0; String sexe = "M"; String s = (t<150)? (sexe == "M" ? "Petit" : "Grande"): (sexe == "F" ? "Petite" : "Grand"); Console.WriteLine(s); Console.ReadLine();
Exercice les opérateurs 04
- Corrigez les erreurs et trouvez le résultat
int i; String[] var = new String[]{"test"}; if(var.length == 1 | var[1].equals("test") | ++i > 0) { Console.WriteLine("valeur i : "+i); } if(var.length == 1 || var[1].equals("test") || ++i > 0) { Console.WriteLine("valeur i : "+i); } Console.ReadLine();;
Exercice les opérateurs 05
- Compilez et exécutez le programme suivant
- Expliquez pourquoi la valeur retournée est différente d’une partie à l’autre.
//Partie: 1 double noteProgrammation_1 = 6.0; double noteMOS_1 = 5.0; Console.WriteLine("Ma moyenne pour 1 est :" + (noteProgrammation_1++ + noteMOS_1) / 2.0); //Partie: 2 double noteProgrammation_2 = 6.0; double noteMOS_2 = 5.0; Console.WriteLine("Ma moyenne pour 2 est :" + (++noteProgrammation_2 + noteMOS_2) / 2.0); //Partie: 3 double noteProgrammation_3 = 6; double noteMOS_3 = 5;
Console.WriteLine(« Ma moyenne pour 3 est : » + (double)((noteProgrammation_3 + noteMOS_3) / 2));
Console.ReadLine();
Exercice les opérateurs 06
- Indiquez, pour chaque affectation dans le programme Transtypage ci-dessous, si l’affectation est possible et, le cas échéant, la valeur exacte qui sera affectée à la variable.
class Transtypage { static void Main(string[] args) { int n1 = 2; double r1 = 2.7; int n2 = 2.7; double r2 = 5; int n3 = (int) 5.6; double r3 = 5.6; int n4 = 9; double r4 = (double) n4; double r5 = (int) r4; int n5 = 19 / 4; double r6 = 5.0; int n6 = n5 / r5; int n7 = (int) (n5 / r5); double r7 = 19.0 / r6; double r8 = 15.0 / n3; double r9 = 19 / 4; double r10 = (double) (19 / 4); double r11 = (double) 19 / (double) 4; } }
Exercice les opérateurs 07
-
Réaliser une muni-calculatrice qui effectue les opérations suivantes:
- Dit bonjour
- Demande deux nombres entiers à l’utilisateur
- Additionne, soustrait, multiplie et divise les deux nombres
- Dit au revoir.
- Voici ce que vous devez obtenir
- Veuillez saisir le premier nombre: 4
- Veuillez saisir le deuxième nombre: 7
- 4+7=11
- 4-7=-3
- 4*7=28
- 4/7=0,571
- Ici 4 et 7 étant les nombres saisies par l’utilisateur.
-
*******************Bonjour********************
*******************Calcul********************
********************Au revoir********************
Exercice les opérateurs 07
-
Ecrire un programme en c# qui calcule et affiche la factorielle d’un nombre lu au clavier.