3. Opérateurs et instructions. Opérateurs Expression et instruction Structures de contrôle structures alternatives structures répétitives

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

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)

Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples

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


Introduction au langage C

Programmation en langage C

Bases de programmation. Cours 5. Structurer les données

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Claude Delannoy. 3 e édition C++

Java Licence Professionnelle CISII,

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

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

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

SUPPORT DE COURS. Langage C

Algorithmique et Programmation, IMA

Programmer en JAVA. par Tama

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits

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

Qualité du logiciel: Méthodes de test

Algorithmes et Programmes. Introduction à l informatiquel. Cycle de vie d'un programme (d'un logiciel) Cycle de vie d'un programme (d'un logiciel)

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

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

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

Chap III : Les tableaux

Notions fondamentales du langage C# Version 1.0

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

INF 321 : mémento de la syntaxe de Java

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

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

Plan du cours. Historique du langage Nouveautés de Java 7

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

Rappels Entrées -Sorties

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if

Corrigé des TD 1 à 5

Programmation C++ (débutant)/instructions for, while et do...while

Conventions d écriture et outils de mise au point

as Architecture des Systèmes d Information

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

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

Aide mémoire UML & Java 1ère partie : Introduction. marc.lemaire@u-cergy.fr

Langage Éric Guérin 5 octobre 2010

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

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

STAGE IREM 0- Premiers pas en Python

Définitions. Numéro à préciser. (Durée : )

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

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

03/04/2007. Tâche 1 Tâche 2 Tâche 3. Système Unix. Time sharing

Analyse de sécurité de logiciels système par typage statique

Représentation d un entier en base b

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

Programmation système I Les entrées/sorties

Cours d Algorithmique et de Langage C v 3.0

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

Initiation à la programmation en Python

Représentation des Nombres

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars

INTRODUCTION AUX SYSTEMES D EXPLOITATION. TD2 Exclusion mutuelle / Sémaphores

V- Manipulations de nombres en binaire

Les chaînes de caractères

Recherche dans un tableau

INITIATION A LA PROGRAMMATION

COMPARAISONDESLANGAGESC, C++, JAVA ET

Solutions du chapitre 4

ET 24 : Modèle de comportement d un système Boucles de programmation avec Labview.

RAPPELS SUR LES METHODES HERITEES DE LA CLASSE RACINE Object ET LEUR SPECIALISATION (i.e. REDEFINITION)

Langage et Concepts de ProgrammationOrientée-Objet 1 / 40

Programme Compte bancaire (code)

Système binaire. Algèbre booléenne

Le langage C. Séance n 4

Initiation à LabView : Les exemples d applications :

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

Licence Sciences et Technologies Examen janvier 2010

Programmation Classique en langage C

Initiation. àl algorithmique et à la programmation. en C

Introduction au Langage de Programmation C

Cours Informatique Master STEP

Grandes lignes ASTRÉE. Logiciels critiques. Outils de certification classiques. Inspection manuelle. Definition. Test

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

ARDUINO DOSSIER RESSOURCE POUR LA CLASSE

Gestion mémoire et Représentation intermédiaire

Les structures. Chapitre 3

MISE A NIVEAU INFORMATIQUE LANGAGE C - EXEMPLES DE PROGRAMMES. Université Paris Dauphine IUP Génie Mathématique et Informatique 2 ème année

Java Licence Professionnelle CISII,

Programmation impérative

Les structures de données. Rajae El Ouazzani

Informatique Générale

Programmation en Java IUT GEII (MC-II1) 1

Cours d Informatique

MINIMUM. connaissances nécessaires à la programmation des microcontrôleurs PIC18 en langage C (une introduction au langage c A.N.S.

Chapitre 1 : La gestion dynamique de la mémoire

Programmation système en C/C++

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

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

Enseignement secondaire technique

TRAVAUX PRATIQUES Programmation Système Langage C / Système UNIX. 2 e année Génie Informatique

Logiciel de Base. I. Représentation des nombres

Cours de C. Petits secrets du C & programmation avancée. Sébastien Paumier

Transcription:

1 3. Opérateurs et instructions Opérateurs Expression et instruction Structures de contrôle structures alternatives structures répétitives

Opérateurs 2 Affectation: = identificateur = résultat d une expression arithmétique résultat d une expression booléenne résultat retourné par une fonction lvalue rvalue réaffectation de droite à gauche : i = j = k = 1 ; Opérateurs unaires + et - -i est le négatif de i +i est la valeur de i ( nouveau dans la norme ANSI)

3 Opérateurs Arithmétiques : + - / * % il manque l exponentiation *, / et % ont même priorité : a + et - ont même priorité : b priorité a > priorité b exemples : a + b * c => a + (b * c) c * d % e => (c * d) % e Incrémentation - décrémentation addition ou soustraction de 1 x = x + 1 ; x++; ou ++x; x = x 1; x-- ; ou --x;

4 Opérateurs Relationnels : > < >= <= ==(égal)!=(différent) rend un résultat booléen : 1 ou 0 (vrai ou faux) priorité inférieure à celle des opérateurs arithmétiques a+b*c < d/f est évalué en (a+(b*c)) < (d/f) opérateur de comparaison : == comparaison des réels Logiques :! (not) && (and) (or) règles de l algèbre de Boole utilisé pour les évaluations des expressions logiques VRAI et FAUX sont codés numériquement : faux = 0 vrai 0

5 Opérateurs Manipulation de bits : & (et) (ou) ^ (xor) ~ (complément) particularité du C ne s applique pas aux réels utilisation du & et du : masques exemples : a = 21 b = 3 0 0 0 1 0 1 0 1 0 0 0 0 0 0 1 1 a & b => 1 0 0 0 0 0 0 0 1 (ne garder qu un certain nombre de bits) a b => 23 0 0 0 1 0 1 1 1 (forcer des bits à 1)

6 Opérateurs Décalage : >> (décalage à droite) << (décalage à gauche) Exemples : 7 << 2 127 >> 3 0000 0111 0001 1100 0111 1111 0000 1111 le remplissage se fait par des zéros pour le décalage à gauche dépend du compilateur pour le décalage à droite

7 Opérateurs Affectations compactées On remplace les expressions de la forme (exp1) = (exp1) op (exp2) par (exp1) op = (exp2) Exemples : i = i + 2 ; i += 2 ; j = j * 3 ; j *= 3 ; plus près de la logique humaine plus efficace intéressant si expression complexe tab[n*i-tab[3*n]] = tab[n*i-tab[3*n]] - 1; incrémentation - décréméntation

8 Instructions Instruction simple < expression ; > combinaison d identificateurs (var, fonction) et d opérateurs Instruction composée séquence d instructions simples délimitée par { et } (bloc) syntaxiquement équivalent à 1 instruction simple

9 Structures de contrôle Définissent la suite dans laquelle les instructions doivent être effectuées 2 types de structures : alternatives if else switch répétitives while for do while

10 Structures de contrôle (alternatives) Alternatives Permettent au programme de décider si oui ou non il exécute une séquence d instructions, en fonction de la valeur d une expression En C la structure usuelle : if else if ( expression ) instruction 1 else instruction 2 Exemple : if (a >b) max = a ; else max = b ; expression vrai Instr. 1 faux Instr. 2

11 Structures de contrôle (alternatives) Alternatives En C la structure usuelle : if if ( expression ) instruction Exemple : if (a >b) max = a ; c=a+b vrai a>b max =a faux c=a+b

12 Structures de contrôle (alternatives) if ( expression ) instruction 1 else instruction 2 expression logique VRAIE ou FAUSSE ( 0 ou = 0), donc évaluée comme une valeur numérique. typiquement des opérateurs relationnels (Attention: la comparaison est == et non pas l affectation = ) une instruction simple ou une instruction composée (bloc) Exemple : if (a > b) différent de if (a > b) instr1 ; instr1 ; else else instr2 ; { instr2 ; instr3 ; instr3 ; instr4 ; } instr4 ;

13 Structures de contrôle (alternatives) void main() { int i=2, k=3; if (i == 1) printf("i vaut 1\n"); else printf("i differe de 1\n"); Sortie écran: - i differe de 1 if (k!= 3) printf("k differe de 3\n"); - } if (k > i && k < 0) { printf("k negatif\n"); printf ("k sup a i\n"); } - - Note : utiliser ((k>i) && (k<0)) plutôt que ( k>i && k<0 )

14 Structures de contrôle (alternatives) Lorsqu il y a plus de 2 possibilités, utilisation de if imbriqués ou la structure switch switch ( expression ) { case label1 : instruction1 case label2 : instruction2 } expression = instruction 1 label2 label1 sinon instruction 2 l expression est évaluée et convertie en un entier on se branche à l instruction correspondant au label (1 constante: entier, char) et on exécute les instructions séquentiellement si aucun label ne correspond, on passe à l instruction suivant le bloc switch

15 Structures de contrôle (alternatives) switch ( expression ) { case label1 : instruction1 break; case label2 : instruction2 default : instructiond } break; expression = label1 instruction 1 label2 instruction 2 sinon instruction D break : sort du switch immédiatement -> instruction suivante du switch ignorées default : indique l instruction à exécuter par défaut, si aucun label ne correspond. A mettre après tous les case. Si par défaut aucune instruction, on ne met rien après default : (idem pour un label)

16 Structures de contrôle (alternatives) switch (i) { } case 1: printf("i=1!\n"); case 2: printf("i=2!\n"); break; case 3: printf("i=3!\n");} break; default: printf("bad"); Sortie écran: pour i=2: i=2! pour i=3: i=3! pour i=4: bad pour i=1: i=1! i=2!

Note: idem sans l instruction i++; è boucle infinie d affichage de 1! 17 Structures de contrôle (répétitives) Répétitives Des boucles permettent d exécuter une séquence d opérations de façon répétitive, jusqu à ce qu une condition soit remplie. En C une structure possible : while while ( expression ) instruction expression faux vrai Instruction Exemple : int i = 1 ; while (i < 5) { printf( %i \n, i); i++ ; } Sortie écran: 1 2 3 4

18 Structures de contrôle (répétitives) Autre structure répétitive : for for ( expression1 ; expression2 ; expression3 ) instruction 1) expression1 est évaluée la première fois uniquement 2) expression2 est évaluée si expression2 est vraie alors instruction est exécutée et expression3 est évaluée sinon sortie de la boucle équivalant à : expression1; while ( expression2) { instruction; expression3; } expression1 expression2 faux vrai Instruction; expression3;

19 Structures de contrôle (répétitives) Le plus utilisé de tous pour une boucle simple! : (écriture concise) for for ( initialisation ; condition ; incrémentation ) instruction Exemple: int i; for (i=1 ; i<5 ; i++) { printf( %i \n, i);} Sortie écran: 1 2 3 4 Note: 1 seule instruction élémentaire à répéter è { } facultatives

20 Structures de contrôle (répétitives) for Exemple: somme des éléments d un tableau void main() { int i, somme=0; int tab[4]={1,5,-3,7}; for (i=0 ; i<4 ; i++) somme +=tab[i]; printf("somme du tableau : %d\n", somme); }

21 Structures de contrôle (répétitives) while et for testent la condition au début de la boucle Autre structure répétitive : do while do instruction while (expression) ; la condition est évaluée en fin de boucle è exécution de l instruction au moins 1 fois! Instruction expression faux vrai Exemple : i = 1 ; do { printf( % i \ n, i); i++ ; } while ( i < 5) ; Sortie écran: 1 2 3 4

22 Structures de contrôle (répétitives) do instruction while (expression) Exemple : Forcer la saisi d un entier positif int c= -1 ; do { printf( Entrer un nombre positif:\n ); scanf( %i, &c); } while ( c < 0) ; printf( merci\n ); Exemple de bug : Boucle infinie while (i<10) ; { printf( ok ); i++;}

23 Divers break sortie du switch dans une boucle for, while ou do while, le break fait sortir de la boucle de façon brutale (a n utiliser que si on ne peut faire autrement) continue proche de l instruction break dans une boucle, le continue fait passer brutalement à l itération suivante

24 Divers goto label ; retourne à la ligne de code où se trouve le label choisi, label : instruction; et reprendre l exécution de là. A utiliser en dernier recours