B.Shishedjiev - Affectation1 Expressions et affectation Comment produire des nouvelles valeurs.

Slides:



Advertisements
Présentations similaires
Premier programme en C :
Advertisements

Introduction au Langage C,C++
A RECUPERER EN ENTRANT Le polycopié de Caml Partie 1
Programmation Orienté Objet en C++
Rappels C.
Introduction au langage C
GEF 243B Programmation informatique appliquée Expressions et opérateurs §
GEF 243B Programmation informatique appliquée Expressions et opérateurs.
Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage GEF 243B Programmation informatique appliquée Types, variables et constantes.
GEF 243B Programmation informatique appliquée Expressions de type mixte et blocs §
C.
M. BENJELLOUN : Info II Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique de Mons
Tests et itérations Programmes séquentiels ne résolvent pas tous les problèmes exemple simple : calcul des racines d'un polynôme de d° 2 dans R Algorithme.
Dossier TICE Excel.
INTRODUCTION A MATLAB ENVIRONNEMENT MATLAB.
Points importants de la semaine Les types arithmétiques. Les opérateurs.
Partie 1 Etude de l'existant
Points importants de la semaine Les boucles. Les types arithmétiques. Les opérateurs.
Expressions et assignations
RESUMES Module II1 SOMMAIRE CYCLE 1 : Saisir – Afficher – Données
8PRO100 Éléments de programmation Allocation dynamique de la mémoire.
33 Types de données et opérateurs. 3-2 Objectifs A la fin de ce cours, vous serez capables de : Décrire les types de données primitives Déclarer et initialiser.
Particularités des calculs
Points importants de la semaine Les enregistrements.
Question Comment le compilateur fait-il pour évaluer une expression telle que : A + B lorsque A et B sont des données de types arithmétiques différents.
Programmation multimédia 3
Bases de la programmation en C++ 1 Les enchaînementsdinstruction Séquentiels. Exécutions dinstructions les unes à la suite des autres. Instructions séparées.
Les pointeurs Modes d’adressage de variables. Définition d’un pointeur. Opérateurs de base. Opérations élémentaires. Pointeurs et tableaux. Pointeurs et.
IFT1969 Programmation scientifique en C
Points importants de la semaine Les allocations programmées de mémoire. Les enregistrements.
Principes de programmation
CSI3525: Concepts des Langages de Programmation
IFT 6800 Atelier en Technologies d’information
Expressions et affectations
COURS DE PROGRAMMATION ORIENTEE OBJET :
C++ : variables Déclaration de variables
Les Opérateurs Ils régissent toutes les opérations ou transformations sur les valeurs des variables. Opérateur d'affectation Opérateurs arithmétiques Opérateurs.
Types de données fondamentaux
L’essentiel du langage C
Stocker plusieurs valeurs de même type dans une variable
2.1 - Historique Chapitre 2 : Introduction au langage C++
Le langage C Rappel Pointeurs & Allocation de mémoire.
Les adresses des fonctions
Ecrire des expressions arithmétiques et logiques
3 Les instructions. Cours 32 Plan du cours 3 Instruction Bloc Portée L’alternative Affectations =, +=, *=… Comment comparer –Comparer des réels –Comparer.
JavaScript.
SIF-1053 Architecture des ordinateurs
ALGORITHMIQUE ET PROGRAMMATION C
Un survol du language C.
Module I3 algorithmique et programmation
1 Deuxième journée La programmation procédurale. 2 Unité de programmation : la procédure ou fonction Très semblable au math Un programme est un ensemble.
Enchaînement d’opérations
Cours de :.
Les bases de l’algorithmique
UE MAREP Cours 10 : Projet Patricia Renault UPMC 2005/2006.
Programmation en C.
Module algorithmique et programmation
Module 133 Développer des applications Web Introduction à PHP.
8PRO107 Éléments de programmation Les adresses et les pointeurs.
Les expressions. Une expression retourne une valeur lorsqu’elle est exécutée par le programme. a+2, x==0, i++, !isdigit(c) && b, sin(Pi),… On peut donc.
PRO-1027 Programmation Scientifique en C
Philippe Gandy - 8 septembre 2015 Basé sur les notes de cours de Daniel Morin et Roch Leclerc.
Objets et Actions Élémentaires.
Philippe Gandy - 15 septembre 2015 Basé sur les notes de cours de Daniel Morin et Roch Leclerc.
Introduction au langage C
Algorithmique et programmation
A.Aarabi ´. ´ Objectifs Faciliter la prise en main du logiciel MATLAB Présenter les fonctionnalités utiles au travail scientifique.
C++ BY AURÉLIEN MODULO MARION. PLAN DES TROIS PRÉSENTATIONS C++ avancé C++ orienté objet Bases de C++
Informatique 2A Langage C 1 ère séance.
Transcription de la présentation:

B.Shishedjiev - Affectation1 Expressions et affectation Comment produire des nouvelles valeurs

B.Shishedjiev - Affectation2 Expressions L’expression est un élément du langage qui produit une règle comment calculer une nouvelle valeur à l’aide des opérandes et opérateurs ▪Les opérateurs donnent les instructions comment obtenir la valeur; ▪Les opérandes sont les données sur lesquelles les opérateurs agissent. Exécuter une expression – c’est de: ▪Produire une valeur ▪Calculer la valeur depuis les opérandes ▪Eventuellement changer la valeur d’un ou plusieurs opérandes ▪Déterminer le type de la valeur produite

B.Shishedjiev - Affectation3 Types d’opérateurs Opérateurs unaires ( sizeof - (type) ! ) Ils peuvent être préfixe ( !x ) ou postfixe ( x++ ) Opérateurs binaires ( + - * / && || ) Ils ont deux opérandes ( x + y ) Opérateurs ternaires( ?: ) z ? x : y

B.Shishedjiev - Affectation4 Priorité et associativité Ils gèrent l’ordre dans lequel sont evalués les opérateurs individuels quand l’expression comporte plusieurs opérateurs. Les opérateurs avec priorité supérieure sont évalués avant ceux avec une priorité inférieure. Quand ils sont de même priorité ils sont évalués selon le sens de l’associativité. On peut changer l’ordre à l’aide de parenthèses.

B.Shishedjiev - Affectation5 Les opérateurs de C PrioOpérateursSens de l'associativité 15()[]->. gauche à droit 14!~+ (un) - (un) & (un) * ( ­ un) (type) sizeof droit à gauche 13* (bin) /% gauche à droit 12+ (bin) - (bin) gauche à droit 11 > gauche à droit 10 >= gauche à droit 9==!= gauche à droit 8& (bin) gauche à droit 7^ 6| 5&& gauche à droit 4|| gauche à droit 3?: droit à gauche 2= *=/=%= += -= &= ^=!= >= droit à gauche 1, gauche à droit

B.Shishedjiev - Affectation6 Expressions arithmétiques Opérateurs d’addition ▪addition + ▪soustraction - Opérateurs de multiplication ▪ multiplication * ▪ division / ▪ modulo (le reste de division entière) % Opérateurs unaires ▪moins unaire - Type de résultat Opé- randes intfloat int float

B.Shishedjiev - Affectation7 Expressions arithmétiques Fonctions standards ▪Mathématiques ▪Entiers abs(i), labs(l), div(i),ldiv(l), rand(), random(i), randomize() ▪Double fabs(x) = |x|, sqrt(x)=  x,pow(x,y)= x y, pow10(x)=10 x, log(x)=ln x, exp(x)= e x, log10(x)=log 10 x, sin(x), sinh(x), cos(x), cosh(x), tan(x), asin(x), acos(x), atan(x), ceil(x), floor(x),

B.Shishedjiev - Affectation8 Expressions arithmétiques… Exemples int a=2,b =5,c =4; double x=2.5,y=1.,z=3.1; char h = ‘A’; a+b-c 3*(a-b) b/2 b/2. b % a a + b + z a + -b b / -y *z h+2 Résultat 3 Résultat -9 Résultat 2 Résultat 2.5 Résultat 1 Résultat 10.1 Résultat -3 Résultat Résultat ‘C’ ou 67

B.Shishedjiev - Affectation9 Expressions arithmétiques… Exemples (a+b)/(c+d) (1+x)*sqrt((2*sin(2*x)+pow(cos(x),2)-3*tan(x*x))/(1-exp(2+x)))

B.Shishedjiev - Affectation10 Affectation simple Syntaxe Lvalue est un objet qui peut contenir une valeur (une variable ou une expression qui vaut une adresse de la mémoire) RValue vaut une valeur (la valeur d’une variable ou une expression qui produit une valeur) Exécution de l’opérateur d’affectation ▪Calcule l’expression de Rvalue et obtient sa valeur ▪Enregistre la valeur dans Lvalue ▪Le résultat est la valeur enregistrée. =

B.Shishedjiev - Affectation11 Affectation simple Exemples int a,b,c; int d = 3; a = 5; b = 3+a; c = a = b; 4=a; a+b=c; Declarer les variables sans spécifier leur valeur Mémoire b ? c ? d 3 5 a ? Declarer la variable avec initialisation Affectations simples Affectations multiples l’associativité est de droit à gauche Instructions invalides

B.Shishedjiev - Affectation12 Opérateurs incrémentaux Opérateurs de préincrément et de prédécrement L'opérande doit être une Lvalue Opérateurs de postincrément et de postdécrement int a =5,b=3,c=1; a = c; c = 2 * -- b; Mémoire b 3 c 1 a int a =5,b=3,c=1; a = 5 + c++; c = 2 * b--; a++;--c; b 3 c 1 a

B.Shishedjiev - Affectation13 Expressions booléennes Opérateurs comparatifs ils rendent 1 si la comparaison est vraie et 0 si elle est fausse <<>=  >>=== <=  !=  a < 5 b>= 9.5 a+b != c/d Opérateurs logiques ab! ba && ba || b x 2 y>= 9.5 || y <= 3.2 a && b || !a && !b

B.Shishedjiev - Affectation14 Expressions booléennes Exécution en raccourci x 2 x > 5 || x++ < 2 Avant: x =3 Après: Resultat vrai x = 4 Avant: x =6 Après: Resultat faux x = 6 Avant: x =3 Après: Resultat faux x = 4 Avant: x =6 Après: Resultat vrai x = 6

B.Shishedjiev - Affectation15 Expression conditionnelle Syntaxe condition ? expression-1 : expression-2 Exemple int a = 2,b =4,c = -3; int d; d = a>b ? a : b; d = c>=0 ? c : -c; d = (a != b ? 5 : 1) * 2; d = 4 d = 3 d = 10

B.Shishedjiev - Affectation16 Opérateurs sur les pointeurs Indirection (déréférence) * - délivre la valeur pointée. Adresse & délivre l’adresse d’une variable Mémoire pi ? j ? int j, *pi; j = 10; pi = &j; *pi = 12; Nom Adresse Valeur 30 26

B.Shishedjiev - Affectation17 Affectation étendue Cette affectation est appelée encore élargie ou complexe Syntaxe exp1  = exp2 où  est + - * / etc. exp1 = exp1  exp2  Exemples int a = 2,b =4,c = -3; a += 5 b *= a-2 c += a>b ? a-b : b-a a = 7 b=20 c=10

B.Shishedjiev - Affectation18 L’opérateur sizeof Sizeof rend la taille de son opérande en octets Exemples int a = 2,b =4,c = -3; short i; long j; float x; double z; a = sizeof i; b = sizeof z/ sizeof x; c = sizeof(int); a = 2 b=2 c=2

B.Shishedjiev - Affectation19 Conversion des types Conversion implicite int a = 2,b =4,c = -3; short i = 4; long j=35897 float x =3.2; double z = -4.5; char d = ‘A’; a = j; b = x; c = z; x = 5; c = d; d = 66; a = b=3 c=-4 x = 5.0 c=65 d=‘B’

B.Shishedjiev - Affectation20 Conversion des types Conversion explicite – cast opérateur (type) int a = 2,b =4; unsigned c = -3; short i = 4; long j=35897 float x =3.2; double z = -4.5; char d = ‘A’; x = (float)c/2; b = (int)x; c = (unsigned int) j; a = (int)x/2; x = -1.5 b=3 c=35897 a = 1