{ énoncé 1 énoncé 2 énoncé 3... énoncé n }

Documents pareils
I. Programmation I. 1 Ecrire un programme en Scilab traduisant l organigramme montré ci-après (on pourra utiliser les annexes):

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

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

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)

Java Licence Professionnelle CISII,

Examen Médian - 1 heure 30

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

Programmer en JAVA. par Tama

Exercices sur SQL server 2000

Génération de code binaire pour application multimedia : une approche au vol

Cours Bases de données 2ème année IUT


WEB page builder and server for SCADA applications usable from a WEB navigator

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

Durée estimée :1 journée Date de la réalisation : Description Fournisseur Référence Nombre PU HT LM35CZ, LM35AZ LM35DZ

VTP. LAN Switching and Wireless Chapitre 4

Langage SQL : créer et interroger une base

Les Triggers SQL. Didier DONSEZ. Université de Valenciennes Institut des Sciences et Techniques de Valenciennes

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

Once the installation is complete, you can delete the temporary Zip files..

Surveillance de Scripts LUA et de réception d EVENT. avec LoriotPro Extended & Broadcast Edition

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

ARDUINO DOSSIER RESSOURCE POUR LA CLASSE

Qualité du logiciel: Méthodes de test

Module Administration BD Chapitre 1 : Surcouche procédurale dans les SGBDS

4. Groupement d objets

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

Project 1 Experimenting with Simple Network Management Tools. ping, traceout, and Wireshark (formerly Ethereal)

Solutions du chapitre 4

Plan du cours Cours théoriques. 29 septembre 2014

SNT4U16 - Initiation à la programmation TD - Dynamique de POP III - Fichiers sources

Recherche dans un tableau

Cours de didactique du français langue étrangère (*) French as a foreign language (*)

Introduction au langage C

Programmation en langage C

Algorithmique et programmation : les bases (VBA) Corrigé

Claude Delannoy. 3 e édition C++

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

Chap III : Les tableaux

Programme Compte bancaire (code)

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

TP 1. Prise en main du langage Python

Présentation du langage et premières fonctions

SUPPORT DE COURS. Langage C

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

Instructions Mozilla Thunderbird Page 1

Les processus légers : threads. Système L3, /31

Cours d algorithmique pour la classe de 2nde

Corrigé des TD 1 à 5

Les structures de données. Rajae El Ouazzani

Exemple PLS avec SAS

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

OpenPaaS Le réseau social d'entreprise

Compléments de documentation Scilab : affichage de texte et formatage de nombres

Algorithmique et Programmation, IMA

Gestion mémoire et Représentation intermédiaire

Langage propre à Oracle basé sur ADA. Offre une extension procédurale à SQL

Application Form/ Formulaire de demande

STAGE IREM 0- Premiers pas en Python

Le No.1 de l économie d énergie pour patinoires.

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

Notions fondamentales du langage C# Version 1.0

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

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

AMENDMENT TO BILL 32 AMENDEMENT AU PROJET DE LOI 32

Initiation à la programmation en Python

Les structures. Chapitre 3

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

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

APPENDIX 6 BONUS RING FORMAT

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

Cours de Programmation 2

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

Grandes tendances et leurs impacts sur l acquisition de produits et services TI.

ETABLISSEMENT D ENSEIGNEMENT OU ORGANISME DE FORMATION / UNIVERSITY OR COLLEGE:

LMI 2. Programmation Orientée Objet POO - Cours 9. Said Jabbour. jabbour@cril.univ-artois.fr

Description du logiciel Modbus RTU

Java Licence Professionnelle CISII,

LOGICIEL D'ADMINISTRATION POUR E4000 & G4000 MANAGEMENT SOFTWARE FOR E4000 & G4000

Supervision et infrastructure - Accès aux applications JAVA. Document FAQ. Page: 1 / 9 Dernière mise à jour: 15/04/12 16:14

Initiation à la Programmation en Logique avec SISCtus Prolog

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

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

Conventions d écriture et outils de mise au point

Insérer des images dans Base

ACTIVITÉ DE PROGRAMMATION

PAR_ _09543_EUR DATE: 17/12/2014. Suite à l'avis PAR_ _08654_EUR

Rapport de Mini-Projet en ArcGIS Engine

Calculation of Interest Regulations. Règlement sur le calcul des intérêts CONSOLIDATION CODIFICATION. Current to August 4, 2015 À jour au 4 août 2015

Auto-évaluation Programmation en Java

I. COORDONNÉES PERSONNELLES / PERSONAL DATA

Configurer la supervision pour une base MS SQL Server Viadéis Services

as Architecture des Systèmes d Information

LOI SUR LA RECONNAISSANCE DE L'ADOPTION SELON LES COUTUMES AUTOCHTONES ABORIGINAL CUSTOM ADOPTION RECOGNITION ACT

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

Cours Informatique Master STEP

Présentation du PL/SQL

Perl Console. Votre compagnon pour développer en Perl. Les Journées du Perl , 17 novembre, Lyon. Alexis Sukrieh

Génie Logiciel avec Ada. 4 février 2013

PHP et mysql. Code: php_mysql. Olivier Clavel - Daniel K. Schneider - Patrick Jermann - Vivian Synteta Version: 0.9 (modifié le 13/3/01 par VS)

Transcription:

Énoncés simples. Affectations multiples. n1 = GetInteger(); total = n1 + n2; printf( The total is %d.\n, total); n1 = n2 = n3 = 0; d = i = 1.5; double d; int i; associativité droite (c-à-d de droite à gauche) de l opérateur d affectation expression; n1 + n2; Un énoncé simple est composé d une expression suivie d un point-virgule. Énoncés composés (ang. blocks). énoncé 1 énoncé 2 énoncé 3... énoncé n x = 6; (x = 6) + (y = 7); Chap. 4. Énoncés. 1 Septembre 1997 Chap. 4. Énoncés. 2 Septembre 1997 Énoncés de contrôle. 1. Énoncés conditionnels. 2. Itérations. Composantes d un énoncé de contrôle. - ligne de contrôle - corps Énoncés de contrôle imbriqués. Données booléennes (logiques, ang. Boolean). Type bool, constantes TRUE et FALSE (de la librairie genlib) Opérateurs relationnels. > plus grand que (>) < plus petit que (<) >= plus grand ou égal à ( ) <= plus petit ou égal à ( ) == égal (=)!= non-égal ( ) if (x = 0)... incorrect if (x == 0)... données atomiques Chap. 4. Énoncés. 3 Septembre 1997 Chap. 4. Énoncés. 4 Septembre 1997

Opérateurs logiques.! "non" logique (TRUE si son opérande est FALSE) && "et" logique (TRUE si les deux opérandes sont TRUE) "ou" logique (TRUE si au moins un de ses opérateurs est TRUE) Évaluation court-circuit. exp1 && exp2 exp1 exp2 tableaux de vérité Exemple: Tester si x n est pas égal à 2 ni à 3. if (x!= 2 x!= 3)... test incorrect if (!(x == 2 x == 3))... if (x!= 2 && x!= 3)... Lois de Morgan.!(p q) est équivalent à!p &&!q Exemple. (x!= 0) && (y % x == 0) Variables drapeaux. bool fait; fait = TRUE; fait = FALSE; fait = (ItemsATraiter == 0);!(p &&q) est équivalent à!p!q 0 < x < 10 0 < x && x < 10 Chap. 4. Énoncés. 5 Septembre 1997 Chap. 4. Énoncés. 6 Septembre 1997 Exemple: Détermination si une année est bissextile. Expressions logiques rédondantes. if (ItemsATraiter == 0) fait = TRUE; else fait = FALSE; fait = (ItemsATraiter == 0); if (fait == TRUE)... if (fait)... ((year % 4 == 0) && (year % 100!= 0)) (year % 400 == 0) * File: leapyear.c * Reads in a year and determines whether it is a * leap year. A year is a leap year if it is * divisible by four, unless it is divisible by 100. * Years divisible by 100 are leap years only if * divisible by 400. int year; bool isleapyear; printf("program to determine whether a year is a leap year.\n"); printf("what year? "); year = GetInteger(); isleapyear = ((year % 4 == 0) && (year % 100!= 0)) (year % 400 == 0); if (isleapyear) printf("%d is a leap year.\n", year); else printf("%d is not a leap year.\n", year); Chap. 4. Énoncés. 7 Septembre 1997 Chap. 4. Énoncés. 8 Septembre 1997

L énoncé if. if (condition) énoncé if (condition) énoncé else énoncé if (entry < 0 && balance < 0) printf("this check bounces. $10 fee deducted.\n"); balance -= 10; La syntaxe de l énoncé if. 1. L énoncé if dans une ligne. 2. L énoncé if dans plusieurs lignes (avec le corps composé). 3. L énoncé if-else utilisant les accolades. 4. L énoncé if en cascade. if (valeur == sentinelle) break; Exemple: Déterminer si un nombre est pair. int n; printf("program to classify a number as even or odd.\n"); printf("n =? "); if (n % 2 == 0) printf("that number is even.\n"); else printf("that number is odd.\n"); La syntaxe de l énoncé if dans une ligne. if (condition) énoncé; condition dénote la valeur booléenne à tester énoncé est un énoncé à exécuter si condition est égale à TRUE (vraie) Le problème de "dangling else". Chap. 4. Énoncés. 9 Septembre 1997 Chap. 4. Énoncés. 10 Septembre 1997 La syntaxe de l énoncé if multiligne. if (condition) énoncés condition dénote la valeur booléenne à tester énoncés est un énoncé composé à exécuter si condition est égale à TRUE (vraie) La syntaxe de l énoncé if-else. if (condition) énoncés T else énoncés F condition dénote la valeur booléenne à tester énoncés T est un énoncé composé à exécuter si condition est égale à TRUE (vraie) énoncés F est un énoncé composé à exécuter si condition est égale à FALSE (fausse) La syntaxe de l énoncé if en cascade. if (condition 1 ) énoncés 1 else if (condition 2 ) énoncés 2 else if (condition 3 ) énoncés 3... else énoncés F chaque condition i dénote une valeur booléenne chaque énoncés i est un énoncé composé, à exécuter si condition i est égale à TRUE (vraie) énoncés F est un énoncé composé à exécuter si chaque condition i est égale à FALSE (fausse) Chap. 4. Énoncés. 11 Septembre 1997 Chap. 4. Énoncés. 12 Septembre 1997

* File: signtest.c * Reads in a number and classifies it according to its sign. int n; printf("program to classify a number by its sign.\n"); printf("n =? "); if (n > 0) printf("that number is positive.\n"); else if (n == 0) printf("that number is zero.\n"); else printf("that number is negative.\n"); L opérateur?: (condition)? expression 1 : expression 2 if (condition) valeur = expression 1 ; else valeur = expression 2 ; max = (x > y)? x : y; printf ("%d elements trouves.\n", nelements); 1 elements trouves. if (nelements > 1) printf ("%d elements trouves.\n", nelements); else printf ("%d element trouve.\n", nelements); string pluriel; pluriel = (nelements > 1)? "s" : ""; printf ("%d element%s trouve%s.\n", nelements, pluriel, pluriel); printf ("erreur = %s\n", (erreur)? "VRAIE" : "FAUSSE"); Chap. 4. Énoncés. 13 Septembre 1997 Chap. 4. Énoncés. 14 Septembre 1997 L énoncé switch. La syntaxe de l énoncé switch switch (expression) case c 1 : énoncés 1 ; break; case c 2 : énoncés 2 ; break;... default: énoncés def ; break; expression est une expression de contrôle, pour choisir les énoncés à exécuter chaque c i est une valeur constante chaque énoncés i est une séquence d énoncés à exécuter lorsque expression est égale à c i énoncés def est une séquence d énoncés à exécuter lorsqu aucune constante c i n est égale à expression case 1: case 2: énoncés break; * File: cardrank.c * Reads in a number between 1 and 13 and writes out the * appropriate symbol for a playing card of that rank. int n; printf("what is the rank of the card (1-13)? "); switch (n) case 1: printf("ace\n"); break; case 11: printf("jack\n"); break; case 12: printf("queen\n"); break; case 13: printf("king\n"); break; default: printf("%d\n", n); break; Chap. 4. Énoncés. 15 Septembre 1997 Chap. 4. Énoncés. 16 Septembre 1997

L énoncé while. La syntaxe de l énoncé while. while (condition) énoncés condition est un test logique pour déterminer si la boucle doit continuer pour une autre itération énoncés est une suite d énoncés à répéter 1. La condition logique est testée avant chaque itération de la boucle, même la première. Si la condition n est pas vérifié initialement, alors le corps de la boucle n est pas exécuté du tout. 2. Cette condition est testée seulement au debut de l itération. Si la condition devient fausse à certain moment de la boucle, le programme ne s en rende compte qu une fois le cycle est complété. En ce moment, le programme réévalue la condition à nouveau. Si elle est toujours fausse, la boucle se termine. int n, dsum; This program sums the digits in an integer. Enter a positive integer: 1729 The sum of the digits is 19 printf("this program sums the digits in an integer.\n"); printf("enter a positive integer: "); dsum = 0; Pour chaque chiffre du nombre, ajouter ce chiffre à dsum. printf("the sum of the digits is %d\n", dsum); while (n > 0) dsum += n % 10; n /= 10; Chap. 4. Énoncés. 17 Septembre 1997 Chap. 4. Énoncés. 18 Septembre 1997 * File: digitsum.c * This program sums the digits in a positive integer. * The program depends on the fact that the last digit of * a integer n is given by n % 10 and the number consisting * of all but the last digit is given by the expression n / 10. int n, dsum; printf("this program sums the digits in an integer.\n"); printf("enter a positive integer: "); dsum = 0; while (n > 0) dsum += n % 10; n /= 10; printf("the sum of the digits is %d\n", dsum); Boucles infinies. Ex.: while (n >= 0) exemple d une boucle infinie dsum += n % 10; n /= 10; Problème de la boucle-et-démi. Ex.: Lecture jusqu'à une sentinelle. 1. Lire une valeur. 2. Si la valeur est égale à la sentinelle - sortir de la boucle. 3. Traiter la valeur lue. while (TRUE) demander une valeur et la lire if (valeur == sentinelle) break; traiter la valeur qui vient d être lue Une autre solution: demander la première valeur et la lire while (valeur == sentinelle) traiter la valeur qui vient d être lue demander une nouvelle valeur et la lire Chap. 4. Énoncés. 19 Septembre 1997 Chap. 4. Énoncés. 20 Septembre 1997

* File: addlist.c * --------------- * This program adds a list of numbers. The end of the * input is indicated by entering 0 as a sentinel value. * This version of the implementation uses a while loop * without a break statement, which forces some duplication * of code. int value, total; printf("this program adds a list of numbers.\n"); printf("signal end of list with a 0.\n"); total = 0; printf("? "); value = GetInteger(); while (value!= 0) total += value; printf("? "); value = GetInteger(); printf("the total is %d\n", total); L énoncé for. for (i= 0;... for (i =- 7;... La syntaxe de l énoncé for. for (init; test; pas) énoncés où init est une expression évaluée pour initialiser la boucle test est un test logique déterminant si la boucle devrait continuer (comme dans l énoncé while) pas est une expression qui est exécutée à la fin de chaque itération de la boucle énoncés est une suite des énoncés exécutés durant chaque itération de la boucle for (i = 0; i < n; i++) for (i = 1; i <= n; i++) Chap. 4. Énoncés. 21 Septembre 1997 Chap. 4. Énoncés. 22 Septembre 1997 * File: liftoff.c * --------------- * Simulates a countdown for a rocket launch. * Constant: StartingCount ------- * Change this constant to use a different starting value * for the countdown. #define StartingCount 10 Main program int t; for ( ; ; ) 10 9 8 7 6 5 4 3 2 1 0 Liftoff! while (TRUE) for (t = StartingCount; t >= 0; t--) printf("%2d\n", t); printf("liftoff!\n"); Chap. 4. Énoncés. 23 Septembre 1997 Chap. 4. Énoncés. 24 Septembre 1997

Boucles for imbriquées. 1 2 3 4 5 6 7 8 9 10 2 4 6 8 10 12 14 16 18 20 3 6 9 12 15 18 21 24 27 30 4 8 12 16 20 24 28 32 36 40 5 10 15 20 25 30 35 40 45 50 6 12 18 24 30 36 42 48 54 60 7 14 21 28 35 42 49 56 63 70 8 16 24 32 40 48 56 64 72 80 9 18 27 36 45 54 63 72 81 90 10 20 30 40 50 60 70 80 90 100 * File: timestab.c * Generates a multiplication table where each axis * runs from LowerLimit to UpperLimit. * Constants * --------- * LowerLimit -- Starting value for the table * UpperLimit -- Final value for the table #define LowerLimit 1 #define UpperLimit 10 Main program int i, j; for (i = LowerLimit; i <= UpperLimit; i++) for (j = LowerLimit; j <= UpperLimit; j++) printf(" %4d", i * j); printf("\n"); Chap. 4. Énoncés. 25 Septembre 1997 Chap. 4. Énoncés. 26 Septembre 1997 La relation entre boucle for et boucle while. Boucles for et les données en virgule flottante. for (init; test; pas) énoncés; init; while (test) énoncés; pas; for (i = 0; i < 10; i++)... corps... for (i = 0; i <= 10; i +=2)... for (x = 1.0; x <= 2.0; x += 0.1)... peut echouer for (x = 1.0; x <= 2.0; x += 0.1) peut jamais arriver a 2.0 printf ("%.1f\n", x); for (i = 10; i <= 20; i++) x = i / 10.0; printf ("%.1f\n", x); i = 0; while (i < 10)... corps... i++; Chap. 4. Énoncés. 27 Septembre 1997 Chap. 4. Énoncés. 28 Septembre 1997

Priorités des opérateurs vus jusqu'à date. Opérateurs Associativité - unaire ++ --! (type cast) droite à gauche * / % gauche à droite + - gauche à droite < <= > >= gauche à droite ==!= gauche à droite & gauche à droite && gauche à droite gauche à droite?: droite à gauche = op= droite à gauche Chap. 4. Énoncés. 29 Septembre 1997