GEF 243B Programmation informatique appliquée Expressions de type mixte et blocs §3.3 - 3.6.

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 :
Introduction au langage C
Portée des variables VBA & Excel
Calculs de complexité d'algorithmes
Les fractions.
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 Expressions et opérateurs §
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
GEF 243B Programmation informatique appliquée
GEF 243B Programmation informatique appliquée
Hiver 2010JGA Beaulieu GEF 243B Programmation informatique appliquée Fonctions.
Hiver 2010JGA Beaulieu GEF 243B Programmation informatique appliquée Tableaux et pointeurs §10.1.
C.
Les attributions de valeur (le signe =). Dans cette présentation, nous allons tenter de représenter ce qui se passe dans la mémoire de lordinateur quand.
8. Les tableaux P. Costamagna – ISEN N1.
Points importants de la semaine Les commentaires. Les variables. Les instructions conditionnelles. Les instructions itératives (les boucles).
Cours de programmation
Récursivité.
Points importants de la semaine Les boucles. Les types arithmétiques. Les opérateurs.
44 Contrôle du déroulement du programme. 4-2 Objectifs A la fin de ce cours, vous serez capables de : Utiliser les constructions de prise de décision.
Expressions et assignations
RESUMES Module II1 SOMMAIRE CYCLE 1 : Saisir – Afficher – Données
8PRO100 Éléments de programmation Allocation dynamique de la mémoire.
Le codage des nombres en informatique
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.
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.
Révision des notions OO et Java Semaine 1 Jian-Yun Nie.
Les Fonctions. Définir une fonction Sections de code indépendantes que lon peut appeler à nimporte quel moment et dans nimporte quel ordre. Bout de code.
Points importants de la semaine Le préprocesseur. La conversion de types. Les fonctions.
Principes de programmation
IFT 6800 Atelier en Technologies d’information
Chapitre 3 Syntaxe et sémantique.
8PRO100 Éléments de programmation Les types composés.
COURS DE PROGRAMMATION ORIENTEE OBJET :
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 des données
1 Notations Asymptotiques Et Complexité Notations asymptotiques : 0 et  Complexité des algorithmes Exemples de calcul de complexité.
Les Pointeurs et les Tableaux Statiques et Tableaux Dynamiques
CYCLE 6 : FONCTIONS Faire un programme en C avec des FONCTIONS 1- A quoi servent les FONCTIONS ? 2- Comment écrire un programme avec FONCTIONS ? 3- Comment.
Ecrire des expressions arithmétiques et logiques
Algorithmique et programmation (1)‏
Un survol du language C.
Master 1 SIGLIS Java Lecteur Stéphane Tallard Les erreurs communes en Java.
Cours LCS N°4 Présenté par Mr: LALLALI
B.Shishedjiev - Affectation1 Expressions et affectation Comment produire des nouvelles valeurs.
Codage de l’information
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.
Philippe Gandy – 10 novembre 2015 Basé sur les notes de cours de Daniel Morin et Roch Leclerc.
Introduction au langage C
C++ BY AURÉLIEN MODULO MARION. PLAN DES TROIS PRÉSENTATIONS C++ avancé C++ orienté objet Bases de C++
Transcription de la présentation:

GEF 243B Programmation informatique appliquée Expressions de type mixte et blocs §

21-Jan-14 2 JGA Beaulieu Revue Quel genre dopérateur est sizeof() ? Quel est la valeur de toutes les variables pour les expressions suivantes? 1.int a=5, b=3, c=4, d; d=++a%c-b--*b; 2.float x=7.2, y=-3, z; bool w; w = y>-x; z = x%y;

21-Jan-14 3 JGA Beaulieu Synopsis Conversion de type Implicite Explicite Énoncés Énoncés composés (Blocs)

21-Jan-14 4 JGA Beaulieu Les Types Revisité Un type définit Un ensemble (plage) de valeurs Un ensemble dopérations Pourquoi dit on que les opérateurs sont différents pour les types? Ils font les mêmes opérations … non?

21-Jan-14 5 JGA Beaulieu Exemple daddition Faisons ces deux additions à la mitaine Additionnez les int suivants Additionnez les float suivants e e-1 Les int et float demande que lon fasse laddition de façon différente

21-Jan-14 6 JGA Beaulieu Exemple de multiplication Faisons ces deux multiplication à la mitaine Multipliez les int suivants 125 * 375 Aditionnez les float suivants e2 * 7.525e-1 Les int et float demande que lon fasse aussi la multiplication de façon différente

21-Jan-14 7 JGA Beaulieu Opérateurs et types Il devient évident que + et * demandent que lordinateur exécute des opérations différentes dépendamment du type Les autres opérateurs / - ++ … dépendent aussi du type Mais quest-ce qui ce passe si on veut additionner un int avec un float ? x = ;

21-Jan-14 8 JGA Beaulieu Expressions de types mixtes Conversion implicite Que ce passe-t-il quand on veut multiplier un entier avec un nombre avec virgule flottante? Dans un expression dassignation, lexpression final doit avoir le même type que lopérande de gauche Mais avant darriver à lassignation dans une expression complexe, C va faire une conversion implicite de type pour stocker les valeurs temporaires C a une hiérarchie de promotion de type de façon à ne pas perdre de linformation durant la conversion

21-Jan-14 9 JGA Beaulieu Expressions de types mixtes

21-Jan JGA Beaulieu Expressions de types mixtes - casting Au lieu de laisser le compilateur décider, vous pouvez explicitement spécifier vos variables temporaires (cast) Ceci est ce que nous devrions toujours faire pour sassurer que les résultats sont ce que nous voulons. Ex.: a, x et y sont int (float) a //converti a à un float (float) (x+y+3) //converti le résultat //de x+y+3 à float

21-Jan JGA Beaulieu Expressions de types mixtes - casting Mais il peut y avoir des problèmes en faisant du casting: float x,y; //mes vars de résultat int a; //une var int quelconque a = 3; // une valeur initiale x = (float) (a / 10); y = (float) a / 10; … Est-ce que x et y ont la même valeur?

21-Jan JGA Beaulieu Énoncés en C Il y a différents types dénoncés en C. Le plus évident est lénoncé dexpression. Une expression peut être converti en énoncé en ajoutant un point-virgule à la fin de la ligne. x = a + 3; y = sizeof(int); Un énoncé peut aussi être un appel de fonction. TransposeMatrix(matrixA);

21-Jan JGA Beaulieu Énoncés en C Cé plate!

21-Jan JGA Beaulieu Énoncés composés - blocs Les blocs {} sont fait dune section de déclaration (optionnelle) et un ensemble dénoncés. Les blocs peuvent être en dedans dautre blocs (imbriqués). La raison principale pour utiliser les blocs est pour créer des espaces de noms et pour allouer la mémoire plus efficacement. Une variable déclarée dans un bloc est seulement visible dans ce bloc Une fois que le bloc termine, la mémoire peut être réutilisé pour autres buts. Nous allons voir bientôt que les énoncés for, while et do…while répètent seulement un énoncé Donc nous allons utiliser les blocs pour grouper des énoncés en un énoncé composé

21-Jan JGA Beaulieu Énoncés composées - blocs Ex1.: blocs parallèles { //commence bloc A int k = 5; } //fini bloc A { //commence bloc B int i = 2; } //fini bloc B Notez quil ny a pas de point-virgule après laccolade de fermeture, cest déjà un énoncé

21-Jan JGA Beaulieu Énoncés composées - blocs Ex2.: blocs imbriqués { //commence bloc externe A int i = 2; int k = 5;//k est une variable dans le bloc A { //commence le bloc interne B int j; int k = 5; //Notez que k est une nouvelle variable!! j = k * 3; //k est celui interne (block B) k = i; //i peut être utilisé pcq il est visible } //fin du bloc interne B i = k;//quelle est la valeur de k ici? i = j – 6; //ERREUR j nest pas visible ici } //fin du bloc externe A

21-Jan JGA Beaulieu Problèmes de pratique Tout comme les expressions, la conversion de type implicite et les erreurs possibles sont sujet à lexamen Si x est float, y int et z char, quel est le type des expressions suivantes? 1.x /(y+z) ? 2.x * (double) y / z ?

21-Jan JGA Beaulieu Revue Les conversion de type implicite est fait par le compilateur dépendamment des types en jeu Lassignation dun type de haute précision à un type de plus basse précision peut engendrer une perte dinformation Les expressions composés ont des avantages: Parfois la seule façon de faire Organisation de la mémoire efficace Masquage dinformation (plus sur ce sujet en OO) Rend le code plus facile à lire