GEF 243B Programmation informatique appliquée Expressions et opérateurs §3.1 - 3.4.

Slides:



Advertisements
Présentations similaires
GEF 243B Programmation informatique appliquée Listes chaînées I – Tableaux de structures §15.1 – 15.2.
Advertisements

GEF 243B Programmation informatique appliquée
Hiver 2010JGA Beaulieu GEF 243B Programmation informatique appliquée Structure de base des programmes en C.
GEF 243B Programmation informatique appliquée
Premier programme en C :
Structures de données et complexité
GEF 243B Programmation informatique appliquée Boucles §
GEF 243B Programmation Informatique Appliquée
Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage GEF 243B Programmation informatique appliquée Tests.
GEF 243B Programmation informatique appliquée
GEF 243B Programmation informatique appliquée Structures §12.3.
GEF 243B Programmation informatique appliquée
GEF 243B Programmation informatique appliquée
GEF 243B Programmation informatique appliquée Tableaux et pointeurs §10.1.
GEF 243B Programmation informatique appliquée Listes chaînées II §15.1 – 15.2.
GEF 243B Programmation informatique appliquée Pointeurs et adresses §9.1.
GEF 243B Programmation informatique appliquée Décisions de design avec structures de données §15.1 – 15.2.
GEF 243B Programmation informatique appliquée Flot de contrôle et énoncés de sélection §
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 Types dérivés, structures et tableaux §
GEF 243B Programmation informatique appliquée
GEF 243B Programmation informatique appliquée Expressions de type mixte et blocs §
GEF 243B Programmation informatique appliquée
GEF 243B Programmation informatique appliquée
GEF 243B Programmation informatique appliquée
Hiver 2010JGA Beaulieu GEF 243B Programmation informatique appliquée Modules et masquage dinformation.
Hiver 2010JGA Beaulieu GEF 243B Programmation informatique appliquée Tableaux et pointeurs §10.1.
Cours n°2M2. IST-IE (S. Sidhom) UE 303 Promo. M2 IST-IE 2005/06 Conception dun système d'information multimédia Architecture trois-tiers : PHP/MySQL &
Les requêtes La Requête est une méthode pour afficher les enregistrements qui répondent à des conditions spécifiques. La requête est donc un filtre.
Semaine #1 INF155 par Frédérick Henri.
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
Algorithmique et structure de données
RESUMES Module II1 SOMMAIRE CYCLE 1 : Saisir – Afficher – Données
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.
Lundi, 13 septembre 2010 Algorithmie (cours 2) Cégep de Saint- Hyacinthe Par Hugo St-Louis.
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.
Semaine #1 INF130 par Frédérick Henri.
Semaine #1 INF135 par Frédérick Henri.
Points importants de la semaine La représentation cachée. Les enregistrements.
Principes de programmation
CSI3525: Concepts des Langages de Programmation
IFT 6800 Atelier en Technologies d’information
Expressions et affectations
8PRO100 Éléments de programmation Les types composés.
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
Structures des données
2.1 - Historique Chapitre 2 : Introduction au langage C++
Notions de pointeurs en C
Ecrire des expressions arithmétiques et logiques
ALGORITHMIQUE ET PROGRAMMATION C
Chapitre 3 :Algèbre de Boole
Un survol du language C.
B.Shishedjiev - Affectation1 Expressions et affectation Comment produire des nouvelles valeurs.
UE MAREP Cours 10 : Projet Patricia Renault UPMC 2005/2006.
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.
Philippe Gandy - 15 septembre 2015 Basé sur les notes de cours de Daniel Morin et Roch Leclerc.
Introduction au langage C
ALGORITHME ET PROGRAMMATION RÉVISION Informatique et Sciences du Numérique.
Transcription de la présentation:

GEF 243B Programmation informatique appliquée Expressions et opérateurs §

21-Jan-14 2 JGA Beaulieu Revue Quelles sont les quatre types de base dans le langage C? Quelles sont les trois types intégraux dont nous sommes intéressé? Quelles sont les valeurs de vrai et faux en C? Pourquoi lutilisation des constantes littérales (tel que 5) nest-t-elle pas une bonne idée pour votre code. (au lieu dutiliser des constantes définies ou de mémoire)?

21-Jan-14 3 JGA Beaulieu Une note… Parce que vous avez déjà une base en programmation dans ce cours, nous nous concentrons sur les différences entre ce que vous avez appris entre Matlab ou autre langage et C. Plusieurs choses que vous allez voir dans les prochaines semaines vont être une revue de ce que vous devriez déjà savoir avec quelques changements dans la syntaxe.

21-Jan-14 4 JGA Beaulieu Synopsis Expressions en C primaire postfix préfix unaire binaire Affectations Affectations composées Opérateurs spécifiques par type Opérateurs, précédence et associativité Conversion de type implicite

21-Jan-14 5 JGA Beaulieu Expressions en C Il y a deux choses qui séparent C de plusieurs langages de programmation: Expressions Pointeurs Aujourdhui nous allons étudier la puissance que C nous donne pour les expressions

21-Jan-14 6 JGA Beaulieu Expressions en C Une expression est une séquence dopérandes et dopérateurs qui se réduit en une seule valeur. Toutes les points suivants sont des expressions valides (a + b) a++ --c x = a + b + c y *= z !(a > b || c) -a

21-Jan-14 7 JGA Beaulieu Expressions en C a, 5, (5 + a – z) a , t || f x = y b, !f, -a

21-Jan-14 8 JGA Beaulieu Lexpression postfix Vous êtes déjà familier avec ceci: a++ Ex.: Nous voulons que x ait la valeur de a et que ensuite, a soit auto incrémenté après laffectation Dans plusieurs langages: (valeur initiale de a = 10) x = a.. Valeur de a et x 10 a = a a = 11 En C: x = a++; // même résultat quen haut

21-Jan-14 9 JGA Beaulieu Lexpression unaire Vous êtes aussi familier avec cela: ++a Ex.: Nous voulons que x ait la valeur de a mais seulement après que a ait été incrémenté Dans plusieurs langages: (valeur initiale de a = 10) a = a a = 11 x = a.. Valeur de a et x 11 En C: x = ++a; // même résultat quen haut

21-Jan JGA Beaulieu Lexpression unaire Mais saviez vous que? x = -a //si a = 10 x = -10 //si a = -10 x = 10 Et il y en a encore plus… sizeof() est aussi une expression unaire sizeof(int) sizeof(x) x = sizeof(3.1416) sizeof((a + b -1)+(2-18.3)) (int)x …

21-Jan JGA Beaulieu Lexpression binaire Un opérateur est placé entre deux expressions forme une expression binaire x + 1, y * 3 (z + 2) * y Deux expressions binaires Une assignation à une variable est une forme dexpression.

21-Jan JGA Beaulieu Affectations composées Vous connaissez lopérateur daffectation = Mais connaissez vous les affectations composées Compound expressionEquivalent expression x *= yx = x * y x /= yx = x / y x %= yx = x % y x += yx = x + y x -= yx = x - y

21-Jan JGA Beaulieu Opérateurs, précédence & associativité Vous connaissez déjà touts les opérateurs que vous allez avoir besoin en 243 de votre cours en programmation (INF101) Sauf pour les opérateurs de bits, dadresses et de pointeurs Comme vous lavez appris durant votre cours de première année, il y a un ordre de précédence entre les opérateurs. Si vous ne pouvez pas vous en souvenir, il y a un tableau sur la couverture intérieure de Forouzan.

21-Jan JGA Beaulieu Types revisités Souvenez-vous quun type définit deux choses: Un ensemble de valeurs et Un ensemble dopérateurs Les types intrinsèques en C void char bool Integers Short int, int, long int, long long int Réels Float, double, long double Nous allons examiner des opérateurs qui sont spécifiques pour certains types en C

21-Jan JGA Beaulieu Opérateurs spécifiques par type C inclus un ensemble dopérateurs arithmétiques, booléens et logiques Tel que mentionné plus tôt, la fonctionnalité des opérateurs dépend du type des données, variables Arithmétiques + - * / % Booléens & | ! && || ^ Logiques == != > = <=

21-Jan JGA Beaulieu Opérateurs valides pour void void na pas de valeurs et aucun opérateur void est très utile pour les pointeurs ce que nous voyons plus tard Opérateurs

21-Jan JGA Beaulieu Opérateurs valides pour bool Le type booléen ( bool ) est une adition récente à C int est utilisé pour stocker ce genre de données logiques Lutilisation du type bool requiert normalement linclusion de la bibliothèque stdbool.h Cependant, cette bibliothèque nest pas disponible pour BrickOS donc nous lavons inclus dans 243_lib.h Définit bool, true et false false est définit comme int 0 true est définit comme int 1 (1==1) true (1!=1) false (i=0) false

21-Jan JGA Beaulieu Opérateurs valides int et char int et char ont les mêmes opérateurs valides Arithmétiques: Addition + Soustraction - Multiplication* Division/ Modulo % Pré/post incré++ Pré/post décré-- Booléens: AND&& OR || NOT! AND par Bit& OR par Bit | XOR par Bit^

21-Jan JGA Beaulieu Opérateurs valides int et char int et char ont les mêmes opérateurs valides Logiques: Plus grand que > Plus petit que < Plus grand ou égal>= Plus petit ou égal<= Égal== Pas égal != ATTENTION: = ET == NE SONT PAS LA MÊME CHOSE

21-Jan JGA Beaulieu Notes sur les opérateurs int % modulo Retourne le reste de la division dentiers Ex: connaissant que 7/4 = 1 reste 3 7%4 retourne 3 7/4 retourne 1 Puissance: Il ny a pas dopérateurs de puissance en C ^ est un opérateur sur les bits ( XOR ) En MATLAB pour X 2 : x^2 En C pour X 2 on écrit : x * x Notez quil y a une fonction pow() dans

21-Jan JGA Beaulieu Opérateurs valides float float ont les mêmes opérateurs valides Arithmétiques: Addition + Soustraction - Multiplication* Division/ Modulo % Pré/post incré++ Pré/post décré-- Booléens: AND&& OR || NOT! AND par Bit& OR par Bit | XOR par Bit^

21-Jan JGA Beaulieu Opérateurs valides float float ont les mêmes opérateurs valides Logiques: Plus grand que > Plus petit que < Plus grand ou égal>= Plus petit ou égal<= Égal== Pas égal != ATTENTION: Avec les floats Nutilisez pas == pour en comparer deux 1.1e-19 nest pas exactement 0 Utilisez … fabs(x-y)<0.0001;

21-Jan JGA Beaulieu Opérateurs, précédence & associativité Associativité est utilisée pour déterminer lordre dans lequel les opérateurs de même précédence sont évalués dans une expression complexe La plus part des expressions utilise lassociativité de gauche, donc: 3 * 8 / 4 % 4 * 5 est équivalent à ((((3 * 8) / 4) % 4) * 5) Ou graphiquement:

21-Jan JGA Beaulieu Opérateurs, précédence & associativité Lassociativité de droite est seulement utilisée pour trois types dexpressions: Unaire (cas simple), Ternaire (plus tard), et Associativité dexpressions daffectation a += b *= c -= 5 est le même que: (a = a + ( b = b * ( c = c – 5))) ou:

21-Jan JGA Beaulieu Opérateurs, précédence & associativité Souvenez-vous: premièrement précédence, ensuite associativité Si vous regardez la table de précédence, les expressions avec parenthèses sont au haut de la chaîne alimentaire. Quand vous avez un doute sur lordre implicite, utilisez les parenthèses La bonne chose dans lutilisation des parenthèses est … le compilateur les vérifie!

21-Jan JGA Beaulieu Effets secondaires Certains opérateurs modifient les valeurs des variables en mémoire Cette modification du contenu de la mémoire est appelé un effet secondaire Par exemple, x = ++a ; a deux effets: a est pré incrémenté x se voit assigné la nouvelle valeur de a

21-Jan JGA Beaulieu Problèmes pratique Les questions pour évaluer la précédence des expressions sont toujours sur les examens Si il y a de ces questions, on vous donne la table des précédences. Si vous faites les questions suivantes, je vais les corriger: (assume int x, y, z ) 3.23 (assume float x, y, z ) 3.24

21-Jan Problèmes pratique (continue) Si au début, a=2, b=5, c=1 et d= -1, quelles sont les valeurs de ces expressions? (si int a,b,c,d; ) 1.a=b+=c+d 2.c=d+=a*=b%=3 3.a+=(a==b)*c*=-2+d; 4.a>b + b>c + c>d + d>a Pour char a ='d'; int b=6; float c = ; quelles sont les valeurs pour ces expressions? char d; int e; float f; d = a*b; e = a*b; d= a*c; e=a*c f = a*c; f =c%2; 28 Winter 2011 Prof S.P. Leblanc

21-Jan JGA Beaulieu Quiz Time Quelle est la valeur de cette expression * 5 Si a = 3 et b = 5 quelles sont leurs valeurs après: x = --a + b++ ? b += a-- ? y = -b++ ?