Objectifs: Expressions. Expressions: type, conversion et priorités. Définition d'une expression. determiner la valeur et le type d'une expression

Documents pareils
UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51

Informatique Générale

MICROINFORMATIQUE NOTE D APPLICATION 1 (REV. 2011) ARITHMETIQUE EN ASSEMBLEUR ET EN C

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.

Rappels Entrées -Sorties

Cours d Informatique

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

SUPPORT DE COURS. Langage C

Introduction à l algorithmique et à la programmation M1102 CM n 3

Représentation d un entier en base b

IN Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C

Représentation des Nombres

Logiciel de Base. I. Représentation des nombres

Claude Delannoy. 3 e édition C++

UE C avancé cours 1: introduction et révisions

IV- Comment fonctionne un ordinateur?


TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

Programmation en C. École Nationale Supérieure de Techniques Avancées. Pierre-Alain Fouque et David Pointcheval

Cours d Algorithmique et de Langage C v 3.0

Programmation en langage C

Le chiffre est le signe, le nombre est la valeur.

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

Programmation Structurée en Langage C

Chap 4: Analyse syntaxique. Prof. M.D. RAHMANI Compilation SMI- S5 2013/14 1

UE Programmation Impérative Licence 2ème Année

Chap III : Les tableaux

Cours Informatique 1. Monsieur SADOUNI Salheddine

Le Langage C Version 1.2 c 2002 Florence HENRY Observatoire de Paris Université de Versailles florence.henry@obspm.fr

Notes du cours 4M056 Programmation en C et C++ Vincent Lemaire et Damien Simon

Travaux pratiques. Compression en codage de Huffman Organisation d un projet de programmation

Algorithmique, Structures de données et langage C

Langage C. Patrick Corde. 22 juin Patrick Corde ( Patrick.Corde@idris.fr ) Langage C 22 juin / 289

Architecture de l ordinateur

Centre CPGE TSI - Safi 2010/2011. Algorithmique et programmation :

Langages et Concepts de Programmation Introduction à la programmation en langage C

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application

Codage d information. Codage d information : -Définition-

Déroulement. Evaluation. Préambule. Définition. Définition. Algorithmes et structures de données 28/09/2009

PROJET ALGORITHMIQUE ET PROGRAMMATION II

Programmation Classique en langage C

Exo7. Calculs de déterminants. Fiche corrigée par Arnaud Bodin. Exercice 1 Calculer les déterminants des matrices suivantes : Exercice 2.

Gestion de la mémoire

CORRIGE LES NOMBRES DECIMAUX RELATIFS. «Réfléchir avant d agir!»

Le Langage C Licence Professionnelle Qualité Logiciel Pr. Mouad BEN MAMOUN ben_mamoun@fsr.ac.ma Année universitaire 2011/2012

Le langage C. Introduction, guide de reference

TP : Gestion d une image au format PGM

BTS IRIS Cours et Travaux Pratiques. Programmation C. A. Lebret, TSIRIS, Lycée Diderot, 1995/06. en conformité avec le référentiel du BTS IRIS

Cours de C++ François Laroussinie. 2 novembre Dept. d Informatique, ENS de Cachan

TP 1. Prise en main du langage Python

INF 321 : mémento de la syntaxe de Java

REPUBLIQUE ALGERIENNE DEMOCRATIQUE ET POPULAIRE UNIVERSITE M HAMED BOGARA DE BOUMERDES

Architecture matérielle des systèmes informatiques

INF111. Initiation à la programmation impérative en C amini/cours/l1/inf111/ Massih-Reza Amini

STAGE IREM 0- Premiers pas en Python

Notions fondamentales du langage C# Version 1.0

Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme

UNITÉS ET MESURES UNITÉS DE MESURE DES LONGUEURS. Dossier n 1 Juin 2005

Algorithmique et Programmation, IMA

Introduction au langage C

Les chaînes de caractères

Les structures de données. Rajae El Ouazzani

Projet d informatique M1BI : Compression et décompression de texte. 1 Généralités sur la compression/décompression de texte

Programmation C. J.-F. Lalande. 15 novembre 2012

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère

Structure d un programme et Compilation Notions de classe et d objet Syntaxe

Architecture des ordinateurs

Introduction au Langage de Programmation C

INITIATION A LA PROGRAMMATION

V- Manipulations de nombres en binaire

Anis ASSÈS Mejdi BLAGHGI Mohamed Hédi ElHajjej Mohamed Salah Karouia

Cours de programmation avancée. Le langage C. Université du Luxembourg

Initiation à la programmation en Python

DU BINAIRE AU MICROPROCESSEUR - D ANGELIS CIRCUITS CONFIGURABLES NOTION DE PROGRAMMATION

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits

Programmation en C - Sommaire

Cours de Programmation Impérative: Zones de mémoires et pointeurs

Cours d initiation à la programmation en C++ Johann Cuenin

Recherche dans un tableau

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Licence Sciences et Technologies Examen janvier 2010

La mémoire. Un ordinateur. L'octet. Le bit

Rappels d architecture

Cours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre Enrica.Duchi@liafa.jussieu.fr

Méthodes de programmation systèmes UE n NSY103. Notes de cours. Nombre d'heures : 55h (~ cours de 3 heures)

Les opérations binaires

Python - introduction à la programmation et calcul scientifique

Programmation en langage C d un µcontrôleur PIC à l aide du compilateur C-CCS Sommaire

COURS DE LANGAGE C. DIAO Oumar. Université de Rennes 1. Master 1

Programmation impérative

Priorités de calcul :

CORRECTION EXERCICES ALGORITHME 1

Arithmétique binaire. Chapitre. 5.1 Notions Bit Mot

ALGORITHMIQUE ET PROGRAMMATION En C

COURS D'INFORMATIQUE: LANGAGE C NOTES DE COURS

Microprocesseur + Logiciel

Algorithmique & Langage C IUT GEII S1. Notes de cours (première partie) cours_algo_lgc1.17.odp. Licence

TD3: tableaux avancées, première classe et chaînes

Transcription:

: type, conversion et priorités Delannoy chap2 (partiel) chap3 (partiel) Objectifs: determiner la valeur et le type d'une expression appliquer les mécanismes de conversion de types appliquer les priorités et l'associativité S3 3a 1/20 S3 3a 2/20 Rappel ICC : Terminologie Définition d'une expression Un algorithme travaille sur des données qu il utilise et/ou modifie. Une donnée nommée est ce que l on appelle une variable dans un algorithme. opérateur Opérations élémentaires Construite avec 0, 1 ou plusieurs opérateurs agissant sur un ou plusieurs opérandes delta donnée nommée (variable) b^2-4*a*c opérande Possède un type et une valeur opérateur Opérations élémentaires Equivalence en Langage C: c'est tout? delta = b*b - 4*a*c donnée nommée (variable) opérande int a, b ; opérateur de la division a / b est une expression opérande opérande La valeur de l'expression int (division entière) S3 3a 3/20 S3 3a 4/20

Opérateurs arithmétiques Circuit spécialisé réalisant chaque opération Sur des opérandes de même types Produit un résultat du même type que les opérandes c/d c=3.; d=2.; int a=3; int b=2; a/b S3 3a 6/20 S3 3a 7/20 Les opérateurs arithmétiques (2) + - * / % L'opérateur modulo, noté % ne travaille qu'avec des opérandes de type entier int a = 11, b = 4 ; a / b quotient de la division entière, valeur = a % b reste de la division entière, valeur = Règles de conversions Variantes du type int type abrégé en TP sizeof(type) short int short 2 octets long int long 4 octets unsigned int unsigned 4 octets pour représenter seulement des entier positifs l'opérateur sizeof(... ) s'applique sur un type ou une expression dont il détermine le type. il calcule le nombre de char (= nb d'octet) utilisé pour ce type. ex: sizeof(33) donne : 4 C99, nouveaux types avec <stdint.h> : intn_t, uintn_t, avec N = 8, 16, 32, 64 S3 3a 8/20 S3 3a 9/20

Règles de conversions 1. char et short sont automatiquement converti en int Hiérarchie des types 2. Opérandes de types différent? int < long < < double < long double Remarque : Force d'un type = domaine couvert (vu en sem 6) facile à retenir: 1) nb d'octets, 2) nb entier < nb à virgule Règle : Le type faible est converti dans le type fort int a=5; b=2.; int n ; long p ; x ; (n * p) + x long long a/b S3 3a 10/20 S3 3a 11/20 niveaux de priorités des opérateurs 45 opérateurs 15 niveaux de priorités Delannoy p 48 Associativité: pour les opérateurs de même priorité Gauche >Droite / Left to Right Droite >Gauche / Right to Left S3 3a 12/20

Opérateurs arithmétiques associativité et usage des parenthèses a - b + c a + b % c est évalué comme (a - b)+c est évalué comme a + (b%c) Les parenthèses permettent de forcer l'ordre d'évaluation (a + b)% c l'addition est évaluée en premier S3 3a 15/20 S3 3a 16/20 Opérateurs d'affectation associativité droite > Gauche = += -= *= /= %= conversion automatique dans le type à gauche de l'opérateur: int n ; x = 1.9 ; n = x ; // n reçoit 1 z, total = 3.5 ; int y ; 4.5 4. 4 z = y = total + 1 ; // perte de la partie fractionnaire! int w = 3; w += 4 ; // équivalent à w = w + 4 ; Opérateurs d'incrémentation/décrémentation note: risques d'erreurs dans une expression avec affectation Très utilisé pour le contrôle d'itération avec des compteurs post- i++ ou pré- ++i Différence entre post- / pré- dans une expression avec = Action en deux étapes, exemple sur la post-incrémentation: 1) Usage de la valeur actuelle de l opérande dans l expression 2) Puis incrémentation de la valeur de l opérande en mémoire int a=3,b; a++ ++a b = a++ La valeur de a est augmentée d'une unité dans tous les cas b reçoit la valeur 3 b = ++a b reçoit la valeur 4 S3 3a 17/20 S3 3a 18/20

Opérateur de cast : (type)opérande change le type de son opérande Priorité très élevée mais moins que les parenthèses Le type de l expression est type La valeur est celle de l opérande convertie en type int n = 7, p = 2 ; déterminer le type et la valeur des expressions: (double) n Résumé conversion automatique de char en int conversion automatique quand il y a affectation conversion dans les expressions selon la force des types le langage C offre 45 opérateur répartis sur 15 niveaux de priorité (voir Delannoy p 48). on peut utiliser des parenthèses pour forcer le calcul de sous-expressions. (double) (n/p) (double) n/p ce chapitre vous permet de maîtriser l'écriture d'expressions arithmétiques S3 3a 19/20 S3 3a 20/20