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.

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
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.
GEF 243B Programmation informatique appliquée Expressions de type mixte et blocs §
C.
Ordre et inégalités Objectifs: - Comparer des nombres.
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.
FLSI602 Génie Informatique et Réseaux
Présentation Unité de codage
Langage de Programmation: I - Le Langage C -
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
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.
INITIATION AU CALCUL LITTERAL
Particularités des calculs
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.
Base de programmation Script unity en c#.
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.
Points importants de la semaine Le préprocesseur. La conversion de types. Les fonctions.
Principes de programmation
CSI3525: Concepts des Langages de Programmation
Miguel Garzon CrUise Lab - SITE. Introduction Data Types and Sizes Constants Logic Operators Type conversions Example.
IFT 6800 Atelier en Technologies d’information
Expressions et affectations
COURS DE PROGRAMMATION ORIENTEE OBJET :
CSI3525: Concepts des Langages de Programmation Notes # 6: Langages de Programmation Fonctionelle II: Introduction au ML.
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.
Structures alternative et répétitive
L’essentiel du langage C
2.1 - Historique Chapitre 2 : Introduction au langage C++
Ecrire des expressions arithmétiques et logiques
SIF-1053 Architecture des ordinateurs
ALGORITHMIQUE ET PROGRAMMATION C
Algorithmique et programmation en
Cours Architecture des Systèmes Informatiques
Un survol du language C.
Sémantique des expressions arithmétiques pour le langage Z minimal Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Chapitre 7 Calcul littéral.
 Syntaxe du langage PHP
Les opérateurs L’amitié Les opérateurs Introduction
Enchaînement d’opérations
B.Shishedjiev - Affectation1 Expressions et affectation Comment produire des nouvelles valeurs.
1. Spoon Christophe Delagarde, septembre 1998 I.U.T., Université de la Méditerrainée 2.
[Title of the course] Présentation du langage Campus-Booster ID : 301
UE MAREP Cours 1 : Algèbre de Boole et entiers naturels
Programmation en C.
Introduction à la programmation (420-PK2-SL) cours 1
Module algorithmique et programmation
Module 133 Développer des applications Web Introduction à PHP.
Meriem BENHADDI FSTG Marrakech
8PRO107 Éléments de programmation Les adresses et les pointeurs.
PRO-1027 Programmation Scientifique en C
pour les programmeurs en C++ Java 2 Part 1 3 Histoire de Java Projet de connexion des machines: 1991 Le nom Java a été introduit dans un café Développé.
Philippe Gandy - 8 septembre 2015 Basé sur les notes de cours de Daniel Morin et Roch Leclerc.
Objets et Actions Élémentaires.
CHAPITRE 5 Les nombres entiers 1. Les entiers 2 Les entiers signés représentations pour le 0.
Philippe Gandy - 15 septembre 2015 Basé sur les notes de cours de Daniel Morin et Roch Leclerc.
Enchaînement d’opérations
CHAPITRE 8 Les booléens et les chaines de bits 1.
Introduction au langage C
Algorithmique et programmation
La forme exponentielle
Transcription de la présentation:

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 utiliser le résultat d’une expression comme partie d’une autre expression…

Opérateurs arithmétiques Unaires: + - « Deuxaires »: –Entiers et réels: +, -, *, / –Entiers seuls:% reste de la division –Attention, des opérandes de types différents provoquent un cast implicite.(voir plus loin)

Opérateurs logiques Effectuent des opérations au niveau des bits. & : and ( 7 & 12 donne 4 car 0111 & 1100 donne 0100) | : or (7 | 12 donne 15 car 0111 | 1100 donne 1111) ^ : xor (3^5 donne 6 car 0011^0101 donne 0110 )  : décalage à gauche (3  2 donne 24 car 0011  2 donne 1100)  : décalage à droite (5  2 donne car 0101  2 donne 0001 ) ~ : complément à 1 (~5 donne 10 car ~0101 donne 1010)

Opérateurs d’affectation C’est le signe égal = La RValue est calculée puis affectée à la LValue L’opération d’affectation rend une valeur. Son résultat est égal à la valeur final de la LValue. Donc: i=(j=(k=6)); Simplification d’écriture: +=, -=, *=, /=, …x+=3; équivaut à x=x+3; 6 6 6

Opérateur d’incrémentation Incrémentation préfixée/postfixée. a++ est équivalent à a=a+1; b=a++; est équivalent à b=a; puis a=a+1; b=++a; est équivalent à a=a+1; puis b=a; Attention aux expressions complexes: b=a++ + a*2; Le sens du calcul dépend de l’implémentation

Opérateur relationnels ==, !=, , ,  =,  = Attention; ne pas confondre = et == (évaluation) &&, ||, ! expr1 && expr2 donne: si expr1 alors (si expr2 alors 1 sinon 0) sinon 0 expr1 || expr2 donne: si expr1 alors 1 sinon (si expr2 alors 1 sinon 0)

Autres opérateurs Conditionnel: a?b:c Vaut la valeur de b si a est vrai, c sinon. Séquentiel:, (ceci est une virgule) Permet de regrouper deux sous expressions en une seule. Exemple: for(i=j=0; i  10;i++,j++) D’adresse: utilisé avec les pointeurs, les structures et unions & *. 

Ordre de priorité des opérateurs 1 fonction/sélection ( ) [ ].  GD 2unaire* & - ! ~++ -- sizeofDG 3multiplicatif* / %GD 4additif+ -GD 5décalage     GD 6relationnel =GD 7inégalité/égalité== !=GD 8ET logique&GD 9XOR logique^GD 10OU logique|GD 11ET relationnel&&GD 12OU relationnel||GD 13conditionnel?GD 14affectation= DG 15virgule,GD

Evaluation d’une expression Même symboles n’auront pas même signification selon contexte ‘3’+4 ‘a’ + 0x20 ‘s’ – ‘a’ Conversion implicite de type pour opérateur arithmétique: –char et short en int –un des opérande en double, tout en double –un des opérande en long, tout en long –Un des opérande en unsigned, tout en unsigned Utilisation du cast pour lever ambiguïtés

Conversion explicite de types (cast, transtypage) (type) expression; type étant élémentaire ou un pointeur sur un type élémentaire. int h; h = (int) (3.9 / 4.) Attention: int x,y; float z; x=3; y=2; z=x/y; z=(float) (x/y); z=(float)(x) /(float) (y);