Informatique II : Cours de programmation (C++) INTRODUCTION

Dimension: px
Commencer à balayer dès la page:

Download "Informatique II : Cours de programmation (C++) INTRODUCTION"

Transcription

1 Informatique II : Cours de () INTRODUCTION Haroud Laboratoire d Intelligence Artificielle Faculté I&C Informatique II Cours 1 : Introduction 1 / 65

2 Objectifs du d aujourd hui Présenter le Objectifs («Quoi?») Administration («Comment?») Présenter la matière : Qu est-ce que (notamment par rapport à C)? Qu est-ce que la orientée-objet? Bases élémentaires de (rappels) : Variables et Informatique II Cours 1 : Introduction 2 / 65

3 Objectifs du 1. Apprendre à programmer de façon plus concise et modulaire mais aussi plus fiable et élégante en exploitant les concepts orientés-objets au moyen du langage 2. Approfondir quelques notions de structuration des données (algorithmique, généricité) Informatique II Cours 1 : Introduction 3 / 65

4 Présentation générale du Public : Cours obligatoire pour les étudiants de 2 e semestre de la section des Sciences de la Vie. Connaissances supposées acquises : bases de la en C Langue : Français Moyens : Concepts théoriques introduits lors de magistraux ex-cathedra (Mardi ) mis en pratique, de manière guidée, lors de séances d exercices sur machines (Vendredi ) Informatique II Cours 1 : Introduction 4 / 65

5 Présentation générale du Horaires et Contenu : Un planning détaillant le contenu de chaque séance est disponible sur le site internet du. Encadrement : Deux assistants et 12 assistants-étudiants (voir également le site internet du ) Informatique II Cours 1 : Introduction 5 / 65

6 Interaction avec les enseignants Plusieurs moyens pour contacter les enseignants, assistants et étudiants-assistants pour poser des questions sur le ou les exercices : Durant les séances d exercices : c est le moyen le plus direct, et généralement le plus efficace. Par l intermédiaire du forum (dans site Moodle) moyen idéal pour diffuser la connaissance N hésitez pas à en faire usage! par aux assistants : mais pour les cas généraux, préférez le forum. Les contacts personnels avec l enseignant ( , téléphone ou visites) devront être strictement réservés aux cas personnels et/ou urgents! Informatique II Cours 1 : Introduction 6 / 65

7 Support de Transparents mis à disposition via le site Web parfois enrichis de notes techniques (mini-références) détaillant certains concepts évoqués pendant le, en particulier les éléments du langage également parfois des références complémentaires (bibliographiques et/où hyperliens Internet) Énoncé des exercices disponibles sur le site Web en fin de semaine. Corrigé des exercices disponibles sur le site Web en fin de semaine suivante. Informatique II Cours 1 : Introduction 7 / 65

8 Support de Ces éléments devraient constituer une documentation suffisante pour ce! Si vous souhaitez la compléter, les ouvrages suivant sont également recommandés Marylène Micheloud & Medard Rieder Programmation orientée objets en une approche évolutive, PPUR, Il est disponible pour un prix avoisinant les 43 CHF. Informatique II Cours 1 : Introduction 8 / 65

9 Support de Ces éléments devraient constituer une documentation suffisante pour ce! Si vous souhaitez la compléter, les ouvrages suivant sont également recommandés J.-C. Chappelier & F. Seydoux par la pratique recueil d exercices corrigés et aide-mémoire, PPUR, nouvelle édition corrigée, Il est disponible pour un prix avoisinant les 50 CHF. Informatique II Cours 1 : Introduction 8 / 65

10 Les épreuves de continu seront les suivantes : Série notée (bonus) Examen théorique Projet individuel, 1h15 individuel, 1h45 en binômes, environ 8 semaines Informatique II Cours 1 : Introduction 9 / 65

11 Calcul de la note La note, N individuel, pour les tests individuels est calculée comme suit : N individuel = max( (N SerieNotee +N TestEcrit) 2,N TestEcrit ) La note finale, N, est calculée comme suit : N = (N individuel+n projet ) 2 Les notes intermédiaires ne sont pas arrondies. Les Informatique I et II comptent chacun pour la moitié du semestre. Le calcul de la note se fait sur les notes non-arrondies de chaque semestre. L arrondi de la note finale se fait au demi-point le plus proche. Informatique II Cours 1 : Introduction 10 / 65

12 Série notée Objectif : vérifier la maîtrise des concepts du langage exposés en. Séance d exercices, à l issue de laquelle le travail réalisé est envoyé par courrier électronique aux assistants responsables. Réalisée individuellement La série notée aura lieu le : Jeudi 3 Mai Informatique II Cours 1 : Introduction 11 / 65

13 Examen Le semestre sera clôturé par un examen écrit portant sur le contenu du et les séances d exercices. Date : Mardi 21 Mai Informatique II Cours 1 : Introduction 12 / 65

14 «Défense» du projet La dernière séance de TP sera consacrée aux défenses de projets (pas vraiment de préparation nécessaire si vous avez suivi l échéancier proposé) Date : Vendredi 31 Mai Vous présenterez : ce que vous avez fait (petite démonstration) comment vous avez procédé : choix, méthodes, organisation quelles difficultés vous avez rencontrées et comment vous les avez traitées en conclusion : ce que vous avez retenu du projet. Informatique II Cours 1 : Introduction 13 / 65

15 Le langage (1) Extension objet du langage C Développé initialement par Bjarn Stroustrup ( ) Normalisé ISO en 1998 puis 2002 Le C date de Informatique II Cours 1 : Introduction 14 / 65

16 Le langage (2) Plus précisément, le langage est un langage orienté-objet compilé fortement typé : = C + typage fort + objets Parmi les avantages de, on peut citer : Un des langages objets les plus utilisés Un langage compilé, ce qui permet la réalisation d applications efficaces (disponibilité d excellents compilateurs open-source (GNU)) Un typage fort, ce qui permet au compilateur d effectuer de nombreuses vérifications lors de la compilation moins de «bugs»... Un langage disponible sur pratiquement toutes les plate-formes; Similarité syntaxique et facilité d interfaçage avec le C Informatique II Cours 1 : Introduction 15 / 65

17 Le langage (3)... et les inconvénients : Similarité syntaxique avec le C! Pas de gestion automatique de la mémoire Pas de protection de la mémoire Syntaxe parfois lourde et peu intuitive ( pousse-au-crime ) Gestion facultative des exceptions Effets parfois indésirables et peu intuitifs dus à la production automatique de code Informatique II Cours 1 : Introduction 16 / 65

18 La nouvelle norme 11 La nouvelle norme 11, acceptée par le comité ISO le 12 Août 2011, introduit de nombreuses nouveautés. Stratégie du : Introduire petit à petit certains des concepts les plus importants Les compilateurs actuels intègrent de plus en plus de ces nouveautés Tout ce que vous écrivez comme code sous l ancienne norme fonctionnera aussi avec la nouvelle Vous êtes bien sûr libres de coder votre projet selon la nouvelle norme (dans la limite des compétences des compilateurs disponibles en salle CO). Voir la mini-référence sur 11 Informatique II Cours 1 : Introduction 17 / 65

19 Qu est-ce que la Programmation Orientée Objets? Dans les grandes lignes : c est une manière de structurer les données et les traitements intéragissant dans un programme; la POO n est pas spécifique à un langage particulier (voir Gtk par exemple) en POO, un objet regroupe les données et les traitements relatifs à un concept particulier. Les objets interagissent entre eux. Un objet peut être vu comme une struct : dotée de fonctions qui lui sont spécifiques (méthodes) et qui permettent de manipuler les données qu elle contient; dans laquelle l accès direct aux données peut-être interdit pour définir un cadre d utilisation précis. Informatique II Cours 1 : Introduction 18 / 65

20 Concepts caractéristiques de la POO Abstraction des données : les données sont manipulées à l aide de méthodes qui cachent leur représentation interne on peut imposer que ces méthodes vérifient l intégrité des données (fiabilité) l utilisation d une donnée ne dépend plus des choix faits pour sa représentation (facilité de maintenance) des données différentes peuvent être manipulées de manière identique(concision) Héritage : on peut prendre un type d objets déjà existant et lui rajouter des données et/ou des méthodes pour en faire un nouveau type d objets on peut donc établir des liens sémantiques entre des types d objets et éviter des redondances dans leurs descriptions (concision). Informatique II Cours 1 : Introduction 19 / 65

21 Avantages de la POO Façon naturelle de modéliser les données et traitements intervenant dans un programme Modularité : le programme est composé d un ensemble d entités (types d objets) aux rôles bien déterminés Réutisabilité : chaque type d objets peut être réutilisé, sa sémantique peut être étendue par le biais de l héritage Polymorphisme : un même code peut s appliquer à des types d objets différents Abstraction : la représentation des données est découplée de leur utilisation. De plus des règles précises d utilisation des données peuvent être imposées. d énormes librairies déjà écrites (Java, C#) Efficacité dans la conception des programmes, concision du codage, meilleures fiabilité et maintenabilité des programmes Informatique II Cours 1 : Introduction 20 / 65

22 Quelques défauts aussi... La POO peut : impliquer une certaine lourdeur pour le codage de choses simples; engendrer des coûts algorithmiques plus élevés pour la manipulation de types élémentaires En les types fondamentaux (élémentaires) ne sont pas des objets. Informatique II Cours 1 : Introduction 21 / 65

23 Exemples de langages orientés-objet Smalltalk (Xerox PARC, 1980); Objective-C (Apple, Brad Cox, 1986); Python (Open source, Guido van Rossum, 1990); Java (Sun Microsystem, 1995) C# (Microsoft, 2001) Par ailleurs, la plupart des langages non-objets admettent une extension objets : Caml PERL PHP etc... Informatique II Cours 1 : Introduction 22 / 65

24 comme sur-ensemble de C Tout ce qui est syntaxiquement valide en C l est aussi en, mais : a apporté quelques changements plus élégants la couche objet peut aussi avoir une incidence sur les choix syntaxiques à effectuer Dans ce nous adhérerons le plus possible à une syntaxe purement " ienne" Cette icône sera utilisée pour indiquer les différences principales entre C et C / Informatique II Cours 1 : Introduction 23 / 65

25 Structure générale d un programme La structure très générale d un programme est la suivante : #include <des_librairies_utiles>... using namespace std; // on y reviendra (déclaration d objets globaux) déclarations de fonctions utiles [à éviter] [recommandé] int main() //ou int main(int argc, char **argv) { corps du programme principal [si possible assez court] } Informatique II Cours 1 : Introduction 24 / 65

26 Compilation et nommage de fichiers fichier source compilateur commande : g++ hello.cc -o hello fichier exécutable hello.cc #include <iostream> using namespace std; main() { cout << } "Hello World!" << endl; hello C / En les fichiers sources se terminent par l extension.cc ou.cpp (au lieu de.c en C). Pour des systèmes de type Unix, le compilateur sera invoqué au moyen de la commande g++ (ou parfois c++) au lieu de gcc pour C. Informatique II Cours 1 : Introduction 25 / 65

27 Premier exemple de programme en Résolution d une équation du second degré : x 2 + b x+ c = 0 #include <iostream> #include <cmath> using namespace std; main() { double b(0.0); double c(0.0); double delta(0.0); données traitements structures de } cin >> b >> c; delta = b*b - 4*c; if (delta < 0.0) { cout << "pas de solutions reelles" << endl; } else if (delta == 0.0) { cout << "une solution unique : " << -b/2.0 << endl; } else { cout << "deux solutions : " << (-b-sqrt(delta))/2.0 << " et " << (-b+sqrt(delta))/2.0 << endl; } Informatique II Cours 1 : Introduction 26 / 65

28 Données et traitements Comme en C, un programme est donc à la base un ensemble de traitements s effectuant sur des données. Algorithme Traitements structures de données Données Variables Expressions & Opérateurs Fonctions Portée Chaînes de caractères Tableaux statiques Tableaux dynamiques Structures Pointeurs Entrées/Sorties L aspect orienté-objet de permet d intégrer données et traitements dans une structure unique, les objets, qui seront définis par le biais de classes. Avant de développer cet aspect, commençons par quelques rappels/mise à jour sur les concepts du tableau ci-dessus. Informatique II Cours 1 : Introduction 27 / 65

29 Variables Pour être utilisée dans un programme, une donnée doit être stockée quelque part en mémoire. C est un objet informatique qui pourra être manipulé par le programme. Ces données peuvent être : temporaire/transitoires, et anonymes (nous y reviendrons) ; identifiées/nommées pour être réutilisées : la zone mémoire utilisée est alors décrite au niveau du langage de par une variable. Informatique II Cours 1 : Introduction 28 / 65

30 Déclaration de variables En, une variable doit être déclarée avant d être utilisée. Comme en C, la syntaxe de la déclaration d une variable est : type identificateur ; où type est l identificateur de type de la variable déclarée et identificateur est une chaîne de caractères permettant de référer la variable créée et donc de l utiliser dans un programme. Exemples : int val; double delta; Un identificateur de variable peut être n importe quelle séquence composée de lettres, de chiffres ou du caractère _ et commençant par une lettre ou par _. Il ne doit pas correspondre à un mot réservé du langage (if, else, while,...) Conseil : Pour vos variables, utilisez des noms aussi explicites que possible. Une donnée temporaire n a qu un type et une valeur, mais pas de nom. Informatique II Cours 1 : Introduction 29 / 65

31 Affectation L opération d affectation affecte (!) une valeur à une variable. Comme en C, la syntaxe d une affection est : identificateur = valeur ; où valeur est une constante ou une expression (voir plus loin) du même type que la variable référencée par identificateur. Exemple : i = 3 ; Informatique II Cours 1 : Introduction 30 / 65

32 Initialisation En même temps qu elle est déclarée, une variable peut être initialisée, c est-à-dire qu on lui donne une première valeur avant même toute utilisation. Note : il est possible d utiliser une variable non initialisée. Ceci doit au maximum être évité! Initialisez toujours vos variables......cela vous évitera bien des soucis par la suite. La syntaxe de la déclaration/initialisation d une variable est : type identificateur(valeur_d initialisation) ; où valeur_d initialisation est n importe quelle constante (i.e. valeur littérale) ou expression du type indiqué. Exemples : int val(2) ; double pi(3.1415) ; char c( a ) ; int j(2*i+5) ; Les vont être définies et détaillées plus tard Informatique II Cours 1 : Introduction 31 / 65

33 Valeurs Littérales valeurs littérales de type entier : 1, 12,... valeurs littérales de type réel : 1.23,... Remarque : 12.3e4 correspond à (soit ) 12.3e-4 correspond à (soit ) valeurs littérales de type caractère : a,!,... Remarque : le caractère se représente par \ le caractère \ se représente par \\ valeurs littérales de type booléen : true, false Remarque : la valeur littérale 0 est une valeur d initialisation qui peut être affectée à une variable de n importe quel type. Informatique II Cours 1 : Introduction 32 / 65

34 auto En, on peut laisser le compilateur deviner le type d une variable grace au mot-clé auto. Le type de la variable est déduit du contexte. Il faut donc qu il y ait un contexte, c est-à-dire une initialisation. Par exemple : auto val(2); auto j(2*i+5); auto x(7.2835); Conseil : N abuser pas de cette possibilité et explicitez vos types autant que possibles. N utilisez auto que dans les cas «techniques», par exemple (qui viendra plus tard dans le ) : for (auto p = v.begin(); p!= v.end(); ++p) au lieu de for (vector<int>::iterator p = v.begin(); p!= v.end(); ++p) Informatique II Cours 1 : Introduction 33 / 65

35 Données modifiables/non modifiables Par défaut les variables sont modifiables. Comme en C, si on ne veut pas qu une variable soit modifiable : la définir comme constante par l indication du mot réservé const lors de la déclaration : int const couple(2); double const g(9.81); Une fois déclarée, une constante ne pourra donc plus être modifiée par le programme (toute tentative de modification produira un message d erreur lors de la compilation). Informatique II Cours 1 : Introduction 34 / 65

36 Expressions constantes En 11, il existe aussi le mot clé constexpr. Il est d utilisation plus générale (voir futur sur les fonctions), mais est aussi plus contraignant que const : la valeur initiale doit pouvoir être calculée à la compilation. Les deux (const et constexpr) sont donc très différents! const indique au compilateur qu une donnée ne changera pas de valeur au travers de ce nom ; mais 1. le compilateur peut très bien ne pas connaître la valeur en question au moment de la compilation ; et 2. cette valeur pourrait changer par ailleurs. constexpr indique au compilateur qu une donnée ne changera pas du tout de valeur et qu il doit pouvoir en calculer la valeur au moment de la compilation (i.e. cette valeur ne dépend pas de ce qu il va se passer plus tard dans le programme). Conseil : Si ces deux conditions sont vérifiées, on préfèrera utiliser constexpr. Informatique II Cours 1 : Introduction 35 / 65

37 Variables Cette icône sera utilisée pour indiquer les transparents «résumé», c est-à-dire reprenant les point principaux d un aspect du langage. Toutes les fiches résumé sont accessibles depuis le site web Informatique II Cours 1 : Introduction 36 / 65

38 Variables En, une valeur à conserver est stockée dans une variable caractérisée par : son type et son identificateur ; (définis lors de la déclaration) La valeur peut être définie une première fois lors de l initialisation, puis éventuellement modifiée par la suite. syntaxe : Types élémentaires : type nom ; (déclaration) int type nom(valeur); (initialisation) double char nom = expression ; (affectation) bool Exemples : int val(2) ; const double z(x+2.0*y); constexpr double pi( ); i = j + 3; Informatique II Cours 1 : Introduction 37 / 65

39 (1) Les opérateurs arithmétiques sont : * multiplication / division % modulo (Remarque : le modulo est le reste de la division entière) + addition - soustraction L évaluation d une expression conduit (naturellement) à sa valeur. Exemple : l évaluation de l expression (2*(13-3)/(1+4)) correspond à la valeur 4 Note : nous avons déjà précédemment rencontré l opérateur =, dit d affection, qui est universel : il s applique à tout type. Informatique II Cours 1 : Introduction 38 / 65

40 (2) Autres exemples d, utilisées ici pour des affectations : z = (x + 3) % y; z = (3 * x + y) / 10; fournit un certain nombre de notations abrégées pour des affectations particulières. x = x + y peut aussi s écrire x += y (idem pour -, *, / et %) x = x + 1 peut aussi s écrire ++x (idem pour - : --x) C / En C, choisir l instruction x++; plutôt que ++x; pour l incrémentation d une x variable de type élémentaire n a quasiment aucune incidence sur l efficacité du programme. En, nous verrons que x peut être un objet quelconque. Or, l opérateur postfixé copie la valeur originale de x, incrémente x, puis retourne sa valeur originale. Pour éviter une copie inutile et qui peut-être coûteuse, on utilisera systématiquement la notation préfixée,++x (sauf en cas de réelle nécessité). Informatique II Cours 1 : Introduction 39 / 65

41 ATTENTION PIÈGE! Remarque sur l opérateur de division en : si a et b sont des entiers, a/b est le quotient de la division entière de a par b Exemple : 5/2 = 2 (et a%b est le reste de la division entière de a par b Exemple : 5%2 = 1) si a ou b sont des réels, a/b est le résultat de la division réelle de a par b Exemple : 5.0/2.0 = 2.5 Note : dans une expression constante, on distingue un réel d un entier en lui ajoutant. à la fin. En général pour la lisibilité on préfère ajouter.0 : 5.0 (réel) 5 (entier) C est un point. Informatique II Cours 1 : Introduction 40 / 65

42 Priorité entre Opérateurs Il est largement préférable de parenthèser ses (ne serait-ce que pour la lisibilité!). Par exemple écrire (a * b) % c plutôt que a * b % c En l absence de parenthèsage, l ordre de priorité des opérateurs sera : * ou / ou % puis + ou - Tous ces opérateurs sont associatifs à gauche : a+b+c=(a+b)+c En cas d ambiguité entre opérateurs du même ordre de priorité c est la règle d associativité qui s applique Exemples : a * b % c = (a * b) % c a % b * c = (a % b) * c a + b * c % d = a + ((b * c) % d) Informatique II Cours 1 : Introduction 41 / 65

43 Opérateurs de comparaison Les opérateurs de comparaison sont : == égalité logique!= non égalité < inférieur > supérieur <= inférieur ou égal >= supérieur ou égal Leur résultat est un booléen. Exemples : x >= y x+y == 4 Informatique II Cours 1 : Introduction 42 / 65

44 ATTENTION PIÈGE! Ne pas confondre l opérateur de test d égalité == et l opérateur d affectation =! x = 3 : affecte la valeur 3 à la variable x (et donc modifie cette dernière) x == 3 : teste la valeur de la variable x, renvoie true si elle vaut 3 et false sinon (et donc ne modifie pas la valeur de x) Informatique II Cours 1 : Introduction 43 / 65

45 Opérateurs logiques Les opérateurs logiques sont : && «et» «ou» «ou exclusif»! négation (Remarque : cet opérateur n a qu un seul opérande) Exemples : ((z!= 0) && (2*(x-y)/z < 3)) bool un_test(true);... ((x >= 0) ((x*y > 0) &&!un_test)) Informatique II Cours 1 : Introduction 44 / 65

46 Opérateurs logiques (2) Les opérateurs logiques &&, et! sont définis par les tables de vérité usuelles : x y!x x && y x y x y true true false true true false true false false false true true false true true false true true false false true false false false Informatique II Cours 1 : Introduction 45 / 65

47 Évaluation «paresseuse» Les opérateurs logiques && et effectuent une évaluation «paresseuse» («lazy evaluation») de leur arguments : l évaluation des arguments se fait de la gauche vers la droite et seuls les arguments strictement nécessaires à la détermination de la valeur logique sont évalués. Ainsi, dans X1 && X2 &&... && Xn, les arguments Xi ne sont évalués que jusqu au 1er argument faux (s il existe, auquel cas l expression est fausse, sinon l expression est vraie); Exemple : dans (x!= 0.0) && (3.0/x > 12.0) le second terme ne sera effectivement évalué uniquement si x est non nul. La division par x ne sera donc jamais erronée. Et dans X1 X2... Xn, les arguments ne sont évalués que jusqu au 1er argument vrai (s il existe, auquel cas l expression est vraie, sinon l expression est fausse). Exemple : dans (x == 0.0) (3.0/x < 12.0) le second terme ne sera effectivement évalué uniquement si x est non nul. Informatique II Cours 1 : Introduction 46 / 65

48 Expressions logiques Une expression logique est une expression de type booléen, dont les valeurs possibles sont donc true et false. Cependant, en, n importe quelle expression de n importe quel type peut être considérée comme une expression logique. Ceci est fait via la convention suivante : Si l évaluation de l expression conditionnelle est une valeur nulle, alors la condition sera dite fausse, sinon elle sera dite vraie. Exemples d vraies Exemples d fausses true false true && false % 2 Conseil : évitez d utiliser cette possibilité du langage et préférez écrire explicitement vos logiques. Par exemple, écrivez if (x!= 0) plutôt que if (x). Informatique II Cours 1 : Introduction 47 / 65

49 Opérateurs Operateurs arithmétiques * multiplication / division % modulo + addition - soustraction ++ incrément (1 opérande) -- décrément (1 opérande) Operateurs de comparaison == teste l égalité logique!= non égalité < inférieur > supérieur <= inférieur ou égal >= supérieur ou égal Operateurs logiques && "et" logique ou ou exclusif! négation (1 opérande) Priorités (par ordre décroissant, tous les opérateurs d un même groupe sont de priorité égale) :! ++ --, * / %, + -, < <= > >=, ==!=, &&, Informatique II Cours 1 : Introduction 48 / 65

50 de base En les entrées-sorties se font par le biais de flots (streams) : Flot = objet dans lequel on peut lire (entrée) ou écrire(sortie) des données cout est le symbole associé au flot de sortie standard (terminal) cin est le symbole associé au flot d entrée standard (clavier) la lecture dans un flot se fait au moyen de l opérateur >> l écriture dans un flot se fait au moyen de l opérateur << Pour utiliser cout et cin, il faut inclure la librairie iostream Nous reviendrons plus en détails sur les entrées-sorties dans deux. C / E/S en C En pur C, les entrées-sorties se font au moyen des fonctions printf et scanf. Nous ne les utiliserons pas dans le cadre de ce. Informatique II Cours 1 : Introduction 49 / 65

51 de base : lecture #include<iostream> using namespace std; int main() { int x; double y; // Lecture: cin >> x >> y; } return 0; l opérateur >> lit des valeurs dans un flot d entrée et les affecte (dans l ordre de lecture) aux variables se trouvant sur sa droite. les différentes valeurs à lire seront séparées par un espace ou un retour à la ligne. Informatique II Cours 1 : Introduction 50 / 65

52 de base : écriture #include<iostream> using namespace std; int main() { // Ecriture: cout << "un entier :" << n << "un double :"; cout << ( ) << endl; return 0; } l opérateur << prend un flot de sortie à gauche, un type quelconque à droite. Il réalise l écriture sur le support associé au flot et retourne le flot. endl provoque un saut de ligne. Informatique II Cours 1 : Introduction 51 / 65

53 Instructions composées : les blocs En, les instructions peuvent être regroupées en blocs. Les blocs sont identifiés par des délimiteurs explicites de début et de fin de bloc : { } Exemple de bloc : { } int i ; double x ; cout << "Valeurs pour i et x : " << endl ; cin >> i >> x ; cout << "Vous avez saisi : i=" << i << ", x=" << x << endl ; Informatique II Cours 1 : Introduction 52 / 65

54 Branchement conditionnel La syntaxe générale d un branchement conditionnel est : if (condition) Instructions 1 else Instructions 2 La condition, qui s exprime au moyen d une expression, est tout d abord évaluée puis, si le résultat de l évaluation est vrai alors la séquence d instructions 1 est exécutée, sinon la séquence d instructions 2 est exécutée. Le else est optionnel Instructions 1 et Instructions 2 sont soit une instruction élémentaire, soit un bloc d instructions. Note : Il est conseillé de toujours utiliser la syntaxe par bloc. Informatique II Cours 1 : Introduction 53 / 65

55 Choix multiples On peut écrire de façon plus synthétique l enchaînement de plusieurs conditions dans le cas où l on teste différentes valeurs (entières) d une expression if (i == 1) Instructions 1 else if (i == 12) Instructions 2... else if (i == 36) Instructions N else Instructions N+1 switch (i) { case 1: Instructions 1 break; case 12: Instructions 2 break;... case 36: Instructions N break; Informatique II Cours 1 : Introduction 54 / 65

56 Exemple plus complexe Si on ne mets pas de break, l exécution ne passe pas à la fin du switch, mais continue l exécution des instructions du case suivant : switch (a+b) { case 2: case 8: instruction2; // lorsque (a+b) vaut 2 ou 8 case 4: case 3: instruction3; // lorsque (a+b) vaut 2, 3, 4 ou 8 break; case 0: instruction1; // execution uniquement lorsque break; // (a+b) vaut 0 default: instruction4; // dans tous les autres cas break; } Informatique II Cours 1 : Introduction 55 / 65

57 Boucles La syntaxe générale d une boucle avec condition de continuation a priori (on veut tester la condition avant d exécuter les instructions) est : while (condition) Instructions Tant que la condition de continuation est vérifiée, les instructions sont exécutées. a posteriori (on veut exécuter les instructions au moins une fois avant de tester la condition) est : do Instructions while (condition); Les instructions sont exécutées jusqu à ce que la condition de continuation soit fausse (et au moins une fois au départ, indépendemment de la valeur de la condition). Même remarque ici que pour if : Instructions est soit une instruction élémentaire (suivie de son ;), soit un bloc d instructions. Il est plutôt conseillé de toujours utiliser la syntaxe par bloc. Informatique II Cours 1 : Introduction 56 / 65

58 L itération for «classique» Les itérations permettent l application itérative d un traitement, contrôlée par une initialisation, une condition de continuation, et une opération de mise à jour de certaines variables. Syntaxe : for (initialisation; condition; mise_a_jour) Instructions Même remarque ici que pour if et while : Instructions est soit une instruction élémentaire (suivie de son ;), soit un bloc d instructions. Il est plutôt conseillé de toujours utiliser la syntaxe par bloc. Note : Une boucle for (sans continue!) est équivalente à la boucle while suivante : { initialisation; while (condition) { Instructions; mise_a_jour; } } Informatique II Cours 1 : Introduction 57 / 65

59 Boucles : Exercice int i(0); while (i > 1) { cout << i << endl; i = i / 2 ; } int i(0); do { cout << i << endl; i = i / 2 ; } while (i > 1); affichera affichera Informatique II Cours 1 : Introduction 58 / 65

60 L itération for : Exercice Remarque : si plusieurs instructions d initialisation ou de mise à jour sont nécessaires, elles sont séparées par des virgules. Elles sont exécutées de la gauche vers la droite. Qu affiche l instruction suivante? for (int i(0), s(0); i < 5; s += i, ++i) { cout << i << ", " << s << endl ; } Informatique II Cours 1 : Introduction 59 / 65

61 Les itérations for de 11 En, il y a DEUX sortes d itérations : les itérations «classiques» (telles que nous venons de les voir), très générales ; les nouvelles itérations, spéciquement pour parcourir des ensembles de valeurs. Les deux utilisent le mot clé for, mais se distinguent par leur syntaxe : for (initialisation; condition; mise_à_jour) for (déclaration : ensemble) Voici un exemple d itération sur un ensemble (nous y reviendrons lors des rappels sur les tableaux): for (int i : { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }) { cout << i*i << endl ; } Informatique II Cours 1 : Introduction 60 / 65

62 Sauts : break et continue fournit deux instructions prédéfinies, break et continue, permettant de r de façon plus fine le déroulement d une boucle. Si l instruction break est exécutée au sein du bloc intérieur de la boucle, l exécution de la boucle est interrompue (quelque soit l état de la condition de ); Si l instruction continue est exécutée au sein du bloc intérieur de la boucle, l exécution du bloc est interrompue et la condition de continuation est évaluée pour déterminer si l exécution de la boucle doit être poursuivie. Conseil : En toute rigueur on n aurait pas besoin de ces instructions, et tout bon programmeur évite de les utiliser. Pour la petite histoire, un bug lié à une mauvaise utilisation de break; a conduit à l effondrement du réseau téléphonique longue distance d AT&T, le 15 janvier Plus de usagers ont perdu l usage de leur téléphone pendant près de 9 heures d appels ont été perdus. [P. Van der Linden, Expert C Programming, 1994.] Informatique II Cours 1 : Introduction 61 / 65

63 Instruction break : exemple Exemple d utilisation de break : une mauvaise (!) façon de simuler une boucle avec condition d arrêt while (true) { Instruction 1;... if (condition_d_arret) break; } autres instructions; Question : quelle est la bonne façon d écrire le code ci-dessus? Informatique II Cours 1 : Introduction 62 / 65

64 Instruction continue : exemple Exemple d utilisation de continue : int i;... i = 0; while (i < 100) { ++i; if ((i % 2) == 0) continue; // L execution de la suite des instructions // ne se fait pour les entiers impairs Instructions;... } Question : quelle est une meilleure façon d écrire le code ci-dessus? (on suppose que Instructions;... ne modifie pas la valeur de i) Informatique II Cours 1 : Introduction 63 / 65

65 Les structures de les branchements conditionnels : si... alors... if (condition) instructions if (condition 1) instructions 1... else if (condition N) instructions N else instructions N+1 les boucles conditionnelles : tant que... while (condition) Instructions switch (expression) { case valeur: instructions; break;... default: instructions; } do Instructions while (condition); les itérations : pour... allant de... à... for (initialisation ; condition ; increment) instructions les sauts : break; et continue; Note : instructions représente une instruction élémentaire ou un bloc. instructions; représente une suite d instructions élémentaires. Informatique II Cours 1 : Introduction 64 / 65

66 Ce que j ai appris aujourd hui que toutes les informations utiles se trouvent sur la page web du ; que les concepts fondamentaux de la POO permettent de produire des programmes plus élégants, concis, fiables et maintenables; que la POO n est pas spécifique à mais que ce langage met en oeuvre la plupart de ses concepts fondamentaux; que ce va aussi me permettre d aborder des thèmes liés à l algorithmique; et... qu il faut bien se replonger dans le B.A-BA pour commencer : variables et, structures de s (if, while, for, break, continue) et entrées-sorties de base. je peux dès maintenant écrire des programmes non orientés-objet simples, en faisant attention à bien adhérer désormais à l «esprit» (plutôt que C). Informatique II Cours 1 : Introduction 65 / 65

Introduction au langage C

Introduction au langage C Introduction au langage C Cours 1: Opérations de base et premier programme Alexis Lechervy Alexis Lechervy (UNICAEN) Introduction au langage C 1 / 23 Les premiers pas Sommaire 1 Les premiers pas 2 Les

Plus en détail

Algorithmique et Programmation, IMA

Algorithmique et Programmation, IMA Algorithmique et Programmation, IMA Cours 2 : C Premier Niveau / Algorithmique Université Lille 1 - Polytech Lille Notations, identificateurs Variables et Types de base Expressions Constantes Instructions

Plus en détail

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

IN 102 - Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C IN 102 - Cours 1 Qu on le veuille ou non, les systèmes informatisés sont désormais omniprésents. Même si ne vous destinez pas à l informatique, vous avez de très grandes chances d y être confrontés en

Plus en détail

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)

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) 1/4 Objectif de ce cours /4 Objectifs de ce cours Introduction au langage C - Cours Girardot/Roelens Septembre 013 Du problème au programme I passer d un problème exprimé en français à la réalisation d

Plus en détail

Introduction à la programmation Travaux pratiques: séance d introduction INFO0201-1

Introduction à la programmation Travaux pratiques: séance d introduction INFO0201-1 Introduction à la programmation Travaux pratiques: séance d introduction INFO0201-1 B. Baert & F. Ludewig Bruno.Baert@ulg.ac.be - F.Ludewig@ulg.ac.be Qu est-ce que la programmation? Programmer Ecrire un

Plus en détail

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

Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation impérative et structures de données simples Introduction au langage C Sandrine Blazy - 1ère année 24 octobre 2007 Cours d Algorithmique-Programmation

Plus en détail

Licence ST Université Claude Bernard Lyon I LIF1 : Algorithmique et Programmation C Bases du langage C 1 Conclusion de la dernière fois Introduction de l algorithmique générale pour permettre de traiter

Plus en détail

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

Programmation C++ (débutant)/instructions for, while et do...while Programmation C++ (débutant)/instructions for, while et do...while 1 Programmation C++ (débutant)/instructions for, while et do...while Le cours du chapitre 4 : le for, while et do...while La notion de

Plus en détail

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

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3. 1. Structure d un programme C Un programme est un ensemble de fonctions. La fonction "main" constitue le point d entrée pour l exécution. Un exemple simple : #include int main() { printf ( this

Plus en détail

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

Bases de programmation. Cours 5. Structurer les données Bases de programmation. Cours 5. Structurer les données Pierre Boudes 1 er décembre 2014 This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License. Types char et

Plus en détail

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

Cours d initiation à la programmation en C++ Johann Cuenin Cours d initiation à la programmation en C++ Johann Cuenin 11 octobre 2014 2 Table des matières 1 Introduction 5 2 Bases de la programmation en C++ 7 3 Les types composés 9 3.1 Les tableaux.............................

Plus en détail

STAGE IREM 0- Premiers pas en Python

STAGE IREM 0- Premiers pas en Python Université de Bordeaux 16-18 Février 2014/2015 STAGE IREM 0- Premiers pas en Python IREM de Bordeaux Affectation et expressions Le langage python permet tout d abord de faire des calculs. On peut évaluer

Plus en détail

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP COURS PROGRAMMATION INITIATION AU LANGAGE C SUR MICROCONTROLEUR PIC page 1 / 7 INITIATION AU LANGAGE C SUR PIC DE MICROSHIP I. Historique du langage C 1972 : naissance du C dans les laboratoires BELL par

Plus en détail

TP 1. Prise en main du langage Python

TP 1. Prise en main du langage Python TP. Prise en main du langage Python Cette année nous travaillerons avec le langage Python version 3. ; nous utiliserons l environnement de développement IDLE. Étape 0. Dans votre espace personnel, créer

Plus en détail

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

Langage et Concepts de ProgrammationOrientée-Objet 1 / 40 Déroulement du cours Introduction Concepts Java Remarques Langage et Concepts de Programmation Orientée-Objet Gauthier Picard École Nationale Supérieure des Mines de Saint-Étienne gauthier.picard@emse.fr

Plus en détail

Cours d Algorithmique et de Langage C 2005 - v 3.0

Cours d Algorithmique et de Langage C 2005 - v 3.0 Cours d Algorithmique et de Langage C 2005 - v 3.0 Bob CORDEAU cordeau@onera.fr Mesures Physiques IUT d Orsay 15 mai 2006 Avant-propos Avant-propos Ce cours en libre accès repose sur trois partis pris

Plus en détail

COMPARAISONDESLANGAGESC, C++, JAVA ET

COMPARAISONDESLANGAGESC, C++, JAVA ET REPUBLIQUE DU BENIN *******@******* MINISTERE DE L ENSEIGNEMENT SUPERIEUR ET DE LA RECHERCHE SCIENTIFIQUE(MESRS) *******@******* UNIVERSITE D ABOMEY CALAVI(UAC) *******@******* ECOLE POLYTECHNIQUE D ABPOMEY

Plus en détail

Introduction à la programmation orientée objet, illustrée par le langage C++ Patrick Cégielski cegielski@u-pec.fr

Introduction à la programmation orientée objet, illustrée par le langage C++ Patrick Cégielski cegielski@u-pec.fr Introduction à la programmation orientée objet, illustrée par le langage C++ Patrick Cégielski cegielski@u-pec.fr Mars 2002 Pour Irène et Marie Legal Notice Copyright c 2002 Patrick Cégielski Université

Plus en détail

Claude Delannoy. 3 e édition C++

Claude Delannoy. 3 e édition C++ Claude Delannoy 3 e édition Exercices Exercices C++ en en langage langage delc++ titre 4/07/07 15:19 Page 2 Exercices en langage C++ AUX EDITIONS EYROLLES Du même auteur C. Delannoy. Apprendre le C++.

Plus en détail

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

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java Info0101 Intro. à l'algorithmique et à la programmation Cours 3 Le langage Java Pierre Delisle, Cyril Rabat et Christophe Jaillet Université de Reims Champagne-Ardenne Département de Mathématiques et Informatique

Plus en détail

Notions fondamentales du langage C# Version 1.0

Notions fondamentales du langage C# Version 1.0 Notions fondamentales du langage C# Version 1.0 Z 2 [Notions fondamentales du langage Csharp] [Date : 25/03/09] Sommaire 1 Tout ce qu il faut savoir pour bien commencer... 3 1.1 Qu est ce qu un langage

Plus en détail

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

Introduction à l algorithmique et à la programmation M1102 CM n 3 Introduction à l algorithmique et à la programmation M1102 CM n 3 DUT Informatique 1 re année Eric REMY eric.remy@univ-amu.fr IUT d Aix-Marseille, site d Arles Version du 2 octobre 2013 E. Remy (IUT d

Plus en détail

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

Cours de C++ François Laroussinie. 2 novembre 2005. Dept. d Informatique, ENS de Cachan Cours de C++ François Laroussinie Dept. d Informatique, ENS de Cachan 2 novembre 2005 Première partie I Introduction Introduction Introduction Algorithme et programmation Algorithme: méthode pour résoudre

Plus en détail

Programmation en Java IUT GEII (MC-II1) 1

Programmation en Java IUT GEII (MC-II1) 1 Programmation en Java IUT GEII (MC-II1) 1 Christophe BLANC - Paul CHECCHIN IUT Montluçon Université Blaise Pascal Novembre 2009 Christophe BLANC - Paul CHECCHIN Programmation en Java IUT GEII (MC-II1)

Plus en détail

Java Licence Professionnelle CISII, 2009-10

Java Licence Professionnelle CISII, 2009-10 Java Licence Professionnelle CISII, 2009-10 Cours 4 : Programmation structurée (c) http://www.loria.fr/~tabbone/cours.html 1 Principe - Les méthodes sont structurées en blocs par les structures de la programmation

Plus en détail

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

Le Langage C Version 1.2 c 2002 Florence HENRY Observatoire de Paris Université de Versailles florence.henry@obspm.fr Le Langage C Version 1.2 c 2002 Florence HENRY Observatoire de Paris Université de Versailles florence.henry@obspm.fr Table des matières 1 Les bases 3 2 Variables et constantes 5 3 Quelques fonctions indispensables

Plus en détail

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

Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme Rappel Ralf Treinen Université Paris Diderot UFR Informatique Laboratoire Preuves, Programmes et Systèmes treinen@pps.univ-paris-diderot.fr 6 mai 2015 Jusqu'à maintenant : un petit langage de programmation

Plus en détail

C++ Programmer. en langage. 8 e édition. Avec une intro aux design patterns et une annexe sur la norme C++11. Claude Delannoy

C++ Programmer. en langage. 8 e édition. Avec une intro aux design patterns et une annexe sur la norme C++11. Claude Delannoy Claude Delannoy Programmer en langage C++ 8 e édition Avec une intro aux design patterns et une annexe sur la norme C++11 Groupe Eyrolles, 1993-2011. Groupe Eyrolles, 2014, pour la nouvelle présentation,

Plus en détail

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

Cours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre 2009. Enrica.Duchi@liafa.jussieu.fr . Cours intensif Java 1er cours: de C à Java Septembre 2009 Enrica DUCHI LIAFA, Paris 7 Enrica.Duchi@liafa.jussieu.fr LANGAGES DE PROGRAMMATION Pour exécuter un algorithme sur un ordinateur il faut le

Plus en détail

Programmer en JAVA. par Tama (tama@via.ecp.fr( tama@via.ecp.fr)

Programmer en JAVA. par Tama (tama@via.ecp.fr( tama@via.ecp.fr) Programmer en JAVA par Tama (tama@via.ecp.fr( tama@via.ecp.fr) Plan 1. Présentation de Java 2. Les bases du langage 3. Concepts avancés 4. Documentation 5. Index des mots-clés 6. Les erreurs fréquentes

Plus en détail

Programmation Web. Madalina Croitoru IUT Montpellier

Programmation Web. Madalina Croitoru IUT Montpellier Programmation Web Madalina Croitoru IUT Montpellier Organisation du cours 4 semaines 4 ½ h / semaine: 2heures cours 3 ½ heures TP Notation: continue interrogation cours + rendu à la fin de chaque séance

Plus en détail

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars 2014. http://homepages.laas.fr/matthieu/cours/java/java.pdf

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars 2014. http://homepages.laas.fr/matthieu/cours/java/java.pdf Introduction à Java Matthieu Herrb CNRS-LAAS http://homepages.laas.fr/matthieu/cours/java/java.pdf Mars 2014 Plan 1 Concepts 2 Éléments du langage 3 Classes et objets 4 Packages 2/28 Histoire et motivations

Plus en détail

Programmation système I Les entrées/sorties

Programmation système I Les entrées/sorties Programmation système I Les entrées/sorties DUT 1 re année Université de Marne La vallée Les entrées-sorties : E/O Entrées/Sorties : Opérations d échanges d informations dans un système informatique. Les

Plus en détail

ALGORITHMIQUE ET PROGRAMMATION En C

ALGORITHMIQUE ET PROGRAMMATION En C Objectifs ALGORITHMIQUE ET PROGRAMMATION Une façon de raisonner Automatiser la résolution de problèmes Maîtriser les concepts de l algorithmique Pas faire des spécialistes d un langage Pierre TELLIER 2

Plus en détail

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

UE C avancé cours 1: introduction et révisions Introduction Types Structures de contrôle Exemple UE C avancé cours 1: introduction et révisions Jean-Lou Desbarbieux et Stéphane Doncieux UMPC 2004/2005 Introduction Types Structures de contrôle Exemple

Plus en détail

Algorithme. Table des matières

Algorithme. Table des matières 1 Algorithme Table des matières 1 Codage 2 1.1 Système binaire.............................. 2 1.2 La numérotation de position en base décimale............ 2 1.3 La numérotation de position en base binaire..............

Plus en détail

Plan du cours. Historique du langage http://www.oracle.com/technetwork/java/index.html. Nouveautés de Java 7

Plan du cours. Historique du langage http://www.oracle.com/technetwork/java/index.html. Nouveautés de Java 7 Université Lumière Lyon 2 Faculté de Sciences Economiques et Gestion KHARKIV National University of Economic Introduction au Langage Java Master Informatique 1 ère année Julien Velcin http://mediamining.univ-lyon2.fr/velcin

Plus en détail

Conventions d écriture et outils de mise au point

Conventions d écriture et outils de mise au point Logiciel de base Première année par alternance Responsable : Christophe Rippert Christophe.Rippert@Grenoble-INP.fr Introduction Conventions d écriture et outils de mise au point On va utiliser dans cette

Plus en détail

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions Cours d introduction à l informatique Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions Qu est-ce qu un Une recette de cuisine algorithme? Protocole expérimental

Plus en détail

Les chaînes de caractères

Les chaînes de caractères Les chaînes de caractères Dans un programme informatique, les chaînes de caractères servent à stocker les informations non numériques comme par exemple une liste de nom de personne ou des adresses. Il

Plus en détail

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

INTRODUCTION A JAVA. Fichier en langage machine Exécutable INTRODUCTION A JAVA JAVA est un langage orienté-objet pur. Il ressemble beaucoup à C++ au niveau de la syntaxe. En revanche, ces deux langages sont très différents dans leur structure (organisation du

Plus en détail

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

Structure d un programme et Compilation Notions de classe et d objet Syntaxe Cours1 Structure d un programme et Compilation Notions de classe et d objet Syntaxe POO 1 Programmation Orientée Objet Un ensemble d objet qui communiquent Pourquoi POO Conception abstraction sur les types

Plus en détail

Recherche dans un tableau

Recherche dans un tableau Chapitre 3 Recherche dans un tableau 3.1 Introduction 3.1.1 Tranche On appelle tranche de tableau, la donnée d'un tableau t et de deux indices a et b. On note cette tranche t.(a..b). Exemple 3.1 : 3 6

Plus en détail

SUPPORT DE COURS. Langage C

SUPPORT DE COURS. Langage C Dpt Informatique 2010-2011 SUPPORT DE COURS Langage C Semestre 1 par : «CaDePe» Marie-Françoise Canut Marianne de Michiel André Péninou Table des Matières 1 Généralités...8 1.1 Introduction aux langages

Plus en détail

V- Manipulations de nombres en binaire

V- Manipulations de nombres en binaire 1 V- Manipulations de nombres en binaire L ordinateur est constitué de milliards de transistors qui travaillent comme des interrupteurs électriques, soit ouverts soit fermés. Soit la ligne est activée,

Plus en détail

Le langage C. Séance n 4

Le langage C. Séance n 4 Université Paris-Sud 11 Institut de Formation des Ingénieurs Remise à niveau INFORMATIQUE Année 2007-2008 Travaux pratiques d informatique Le langage C Séance n 4 But : Vous devez maîtriser à la fin de

Plus en détail

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

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if Pierre Boudes 28 septembre 2011 This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike

Plus en détail

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java Langages objets Introduction M2 Pro CCI, Informatique Emmanuel Waller, LRI, Orsay présentation du module logistique 12 blocs de 4h + 1 bloc 2h = 50h 1h15 cours, 45mn exercices table, 2h TD machine page

Plus en détail

Programmation Classique en langage C

Programmation Classique en langage C DI GALLO Frédéric Programmation Classique en langage C Cours du Cycle d Approfondissement CNAM ANGOULEME 2000-2001 DI GALLO Frédéric Page 1 01/04/01 PROGRAMMATION CLASSIQUE : LANGAGE C DI GALLO Frédéric

Plus en détail

Chap III : Les tableaux

Chap III : Les tableaux Chap III : Les tableaux Dans cette partie, on va étudier quelques structures de données de base tels que : Les tableaux (vecteur et matrice) Les chaînes de caractères LA STRUCTURE DE TABLEAU Introduction

Plus en détail

Initiation à la programmation en Python

Initiation à la programmation en Python I-Conventions Initiation à la programmation en Python Nom : Prénom : Une commande Python sera écrite en caractère gras. Exemples : print 'Bonjour' max=input("nombre maximum autorisé :") Le résultat de

Plus en détail

Introduction à MATLAB R

Introduction à MATLAB R Introduction à MATLAB R Romain Tavenard 10 septembre 2009 MATLAB R est un environnement de calcul numérique propriétaire orienté vers le calcul matriciel. Il se compose d un langage de programmation, d

Plus en détail

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

UE Programmation Impérative Licence 2ème Année 2014 2015 UE Programmation Impérative Licence 2 ème Année 2014 2015 Informations pratiques Équipe Pédagogique Florence Cloppet Neilze Dorta Nicolas Loménie prenom.nom@mi.parisdescartes.fr 2 Programmation Impérative

Plus en détail

Le langage C++ est un langage de programmation puissant, polyvalent, on serait presque tenté de dire universel, massivement utilisé dans l'industrie

Le langage C++ est un langage de programmation puissant, polyvalent, on serait presque tenté de dire universel, massivement utilisé dans l'industrie Chapitre I : Les bases du C++ Le langage C++ est un langage de programmation puissant, polyvalent, on serait presque tenté de dire universel, massivement utilisé dans l'industrie du logiciel, et ce depuis

Plus en détail

Cours Informatique Master STEP

Cours Informatique Master STEP Cours Informatique Master STEP Bases de la programmation: Compilateurs/logiciels Algorithmique et structure d'un programme Programmation en langage structuré (Fortran 90) Variables, expressions, instructions

Plus en détail

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

Notes du cours 4M056 Programmation en C et C++ Vincent Lemaire et Damien Simon Notes du cours 4M056 Programmation en C et C++ Vincent Lemaire et Damien Simon 13 janvier 2015 2 Table des matières Organisation générale du cours 7 1 Notions générales d algorithmique et de programmation

Plus en détail

Programmation système de commandes en C

Programmation système de commandes en C Programmation système de commandes en C Cours de Programmation système Tuyêt Trâm DANG NGOC Université de Cergy-Pontoise 2012 2013 Tuyêt Trâm DANG NGOC Programmation système de commandes

Plus en détail

Les structures. Chapitre 3

Les structures. Chapitre 3 Chapitre 3 Les structures Nous continuons notre étude des structures de données qui sont prédéfinies dans la plupart des langages informatiques. La structure de tableau permet de regrouper un certain nombre

Plus en détail

TP : Gestion d une image au format PGM

TP : Gestion d une image au format PGM TP : Gestion d une image au format PGM Objectif : L objectif du sujet est de créer une classe de manipulation d images au format PGM (Portable GreyMap), et de programmer des opérations relativement simples

Plus en détail

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

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile Dans ce TP, vous apprendrez à définir le type abstrait Pile, à le programmer en Java à l aide d une interface

Plus en détail

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

Initiation. àl algorithmique et à la programmation. en C Initiation àl algorithmique et à la programmation en C Initiation àl algorithmique et à la programmation en C Cours avec 129 exercices corrigés Illustration de couverture : alwyncooper - istock.com Dunod,

Plus en détail

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

Programmation C. J.-F. Lalande. 15 novembre 2012 Programmation C J.-F. Lalande novembre 0 Ce cours est mis à disposition par Jean-François Lalande selon les termes de la licence Creative Commons Attribution - Pas d Utilisation Commerciale - Partage à

Plus en détail

Projet L1, S2, 2015: Simulation de fourmis, Soutenance la semaine du 4 mai.

Projet L1, S2, 2015: Simulation de fourmis, Soutenance la semaine du 4 mai. Projet L1, S2, 2015: Simulation de fourmis, Soutenance la semaine du 4 mai. 1 Introduction On considère une grille de 20 lignes 20 colonnes. Une case de la grille peut être vide, ou contenir une et une

Plus en détail

Programmation en C/C++

Programmation en C/C++ INSA de Lyon Département Génie Electrique Module IF1,IF3,IF4 Programmation en C/C++ Thomas Grenier Nicolas Ducros Tanneguy Redarce Lyon, le 3 mars 2015 2 / 63 Table des matières 1 Développement en C++

Plus en détail

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

Cours de C. Petits secrets du C & programmation avancée. Sébastien Paumier Cours de C Petits secrets du C & programmation avancée Sébastien Paumier paumier@univ-mlv.fr Illustrations provenant du site http://tux.crystalxp.net/ 1 Affectations étendues a+=expression a=a+expression

Plus en détail

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

Algorithmes et Programmes. Introduction à l informatiquel. Cycle de vie d'un programme (d'un logiciel) Cycle de vie d'un programme (d'un logiciel) Algorithmes et Programmes Introduction à l informatiquel! Vie d'un programme! Algorithme! Programmation : le langage! Exécution et test des programmes Chapitre : Algorithmes et Programmes 2 Cycle de vie

Plus en détail

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

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application Université de Provence Licence Math-Info Première Année V. Phan Luong Algorithmique et Programmation en Python Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application 1 Ordinateur Un

Plus en détail

Représentation d un entier en base b

Représentation d un entier en base b Représentation d un entier en base b 13 octobre 2012 1 Prérequis Les bases de la programmation en langage sont supposées avoir été travaillées L écriture en base b d un entier est ainsi défini à partir

Plus en détail

Rappels Entrées -Sorties

Rappels Entrées -Sorties Fonctions printf et scanf Syntaxe: écriture, organisation Comportement Données hétérogènes? Gestion des erreurs des utilisateurs 17/11/2013 Cours du Langage C ibr_guelzim@yahoo.fr ibrahimguelzim.atspace.co.uk

Plus en détail

Programmation système en C/C++

Programmation système en C/C++ Programmation système en C/C++ Jean-Baptiste Vioix (jb.vioix@free.fr) LE2I - ENESAD http://jb.vioix.free.fr 1-41 Programmation en C/C++ sous Unix Il existe des très nombreux outils de développement sous

Plus en détail

Le prototype de la fonction main()

Le prototype de la fonction main() Le prototype de la fonction main() 1. Introduction...1 2. Paramètres et type de retour de la fonction main()...1 3. Exemple 1...2 4. La fonction exit() du C...2 5. Détecter le code de retour d un programme

Plus en détail

Cours 1 : Qu est-ce que la programmation?

Cours 1 : Qu est-ce que la programmation? 1/65 Introduction à la programmation Cours 1 : Qu est-ce que la programmation? Yann Régis-Gianas yrg@pps.univ-paris-diderot.fr Université Paris Diderot Paris 7 2/65 1. Sortez un appareil qui peut se rendre

Plus en détail

Présentation du langage et premières fonctions

Présentation du langage et premières fonctions 1 Présentation de l interface logicielle Si les langages de haut niveau sont nombreux, nous allons travaillé cette année avec le langage Python, un langage de programmation très en vue sur internet en

Plus en détail

Programmation C. Apprendre à développer des programmes simples dans le langage C

Programmation C. Apprendre à développer des programmes simples dans le langage C Programmation C Apprendre à développer des programmes simples dans le langage C Notes de cours sont disponibles sur http://astro.u-strasbg.fr/scyon/stusm (attention les majuscules sont importantes) Modalités

Plus en détail

LES TYPES DE DONNÉES DU LANGAGE PASCAL

LES TYPES DE DONNÉES DU LANGAGE PASCAL LES TYPES DE DONNÉES DU LANGAGE PASCAL 75 LES TYPES DE DONNÉES DU LANGAGE PASCAL CHAPITRE 4 OBJECTIFS PRÉSENTER LES NOTIONS D ÉTIQUETTE, DE CONS- TANTE ET DE IABLE DANS LE CONTEXTE DU LAN- GAGE PASCAL.

Plus en détail

Machines virtuelles Cours 1 : Introduction

Machines virtuelles Cours 1 : Introduction Machines virtuelles Cours 1 : Introduction Pierre Letouzey 1 pierre.letouzey@inria.fr PPS - Université Denis Diderot Paris 7 janvier 2012 1. Merci à Y. Régis-Gianas pour les transparents Qu est-ce qu une

Plus en détail

Arguments d un programme

Arguments d un programme Arguments d un programme L2 SPI, Bruno Jacob 1 Arguments Quand on appelle un programme dans un environnement UNIX ou MS- DOS, on compose une ligne de commandes de la forme : nom-du-programme argument1

Plus en détail

INFO-F-105 Language de programmation I Séance VI

INFO-F-105 Language de programmation I Séance VI INFO-F-105 Language de programmation I Séance VI Jérôme Dossogne Année académique 2008 2009 Un grand merci à Yves Roggeman pour ses relectures et remarques des codes et commentaires qui ont contribuées

Plus en détail

Représentation des Nombres

Représentation des Nombres Chapitre 5 Représentation des Nombres 5. Representation des entiers 5.. Principe des représentations en base b Base L entier écrit 344 correspond a 3 mille + 4 cent + dix + 4. Plus généralement a n a n...

Plus en détail

Rappels sur les suites - Algorithme

Rappels sur les suites - Algorithme DERNIÈRE IMPRESSION LE 14 septembre 2015 à 12:36 Rappels sur les suites - Algorithme Table des matières 1 Suite : généralités 2 1.1 Déition................................. 2 1.2 Exemples de suites............................

Plus en détail

Licence Sciences et Technologies Examen janvier 2010

Licence Sciences et Technologies Examen janvier 2010 Université de Provence Introduction à l Informatique Licence Sciences et Technologies Examen janvier 2010 Année 2009-10 Aucun document n est autorisé Les exercices peuvent être traités dans le désordre.

Plus en détail

Informatique Générale

Informatique Générale Informatique Générale Guillaume Hutzler Laboratoire IBISC (Informatique Biologie Intégrative et Systèmes Complexes) guillaume.hutzler@ibisc.univ-evry.fr Cours Dokeos 625 http://www.ens.univ-evry.fr/modx/dokeos.html

Plus en détail

Exceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ;

Exceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ; CNAM NFP121 TP 10 19/11/2013 (Séance 5) Objectif Manipuler les exceptions ; 1 Entrées/sorties Exercice 1 : Lire un entier à partir du clavier Ajouter une méthode readint(string message) dans la classe

Plus en détail

as Architecture des Systèmes d Information

as Architecture des Systèmes d Information Plan Plan Programmation - Introduction - Nicolas Malandain March 14, 2005 Introduction à Java 1 Introduction Présentation Caractéristiques Le langage Java 2 Types et Variables Types simples Types complexes

Plus en détail

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

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux. UEO11 COURS/TD 1 Contenu du semestre Cours et TDs sont intégrés L objectif de ce cours équivalent a 6h de cours, 10h de TD et 8h de TP est le suivant : - initiation à l algorithmique - notions de bases

Plus en détail

TP3 : Manipulation et implantation de systèmes de fichiers 1

TP3 : Manipulation et implantation de systèmes de fichiers 1 École Normale Supérieure Systèmes et réseaux Année 2012-2013 TP3 : Manipulation et implantation de systèmes de fichiers 1 1 Répertoire de travail courant Le but de l exercice est d écrire une commande

Plus en détail

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

ET 24 : Modèle de comportement d un système Boucles de programmation avec Labview. ET 24 : Modèle de comportement d un système Boucles de programmation avec Labview. Sciences et Technologies de l Industrie et du Développement Durable Formation des enseignants parcours : ET24 Modèle de

Plus en détail

30.avr.10 Présentation miniprojet. 9.mars.10 Cours 3 4.mai.10 Cours C++ 1. 16.mars.10 Cours 4 11.mai.10 Cours C++ 2

30.avr.10 Présentation miniprojet. 9.mars.10 Cours 3 4.mai.10 Cours C++ 1. 16.mars.10 Cours 4 11.mai.10 Cours C++ 2 2ème partie de cours: 23.fév.10 Cours 1 20.avr.10 TEST 24.fév.10 TP1 21.avr.10 miniprojet 26.fév.10 TP réserve 23.avr.10 miniprojet 2.mars.10 Cours 2 27.avr.10 Présentation miniprojet 3.mars.10 TP2 28.avr.10

Plus en détail

Génie Logiciel I. Cours VI - Typage statique / dynamique, fonctions virtuelles et classes abstraites, flots d entrées / sorties, et string

Génie Logiciel I. Cours VI - Typage statique / dynamique, fonctions virtuelles et classes abstraites, flots d entrées / sorties, et string Génie Logiciel I Cours VI - Typage statique / dynamique, fonctions virtuelles et classes abstraites, flots d entrées / sorties, et string Nicolas Kielbasiewicz C.D.C.S.P./I.S.T.I.L./I.C.J. Filière M.A.M.

Plus en détail

Programmation en langage C

Programmation en langage C Programmation en langage C Anne CANTEAUT INRIA - projet CODES B.P. 105 78153 Le Chesnay Cedex Anne.Canteaut@inria.fr http://www-rocq.inria.fr/codes/anne.canteaut/cours C 2 Table des matières 3 Table des

Plus en détail

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

MISE A NIVEAU INFORMATIQUE LANGAGE C - EXEMPLES DE PROGRAMMES. Université Paris Dauphine IUP Génie Mathématique et Informatique 2 ème année 2003-2004 Université Paris Dauphine IUP Génie Mathématique et Informatique 2 ème année MISE A NIVEAU INFORMATIQUE LANGAGE C - EXEMPLES DE PROGRAMMES Maude Manouvrier La reproduction de ce document par

Plus en détail

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51 DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51 PLAN DU COURS Introduction au langage C Notions de compilation Variables, types, constantes, tableaux, opérateurs Entrées sorties de base Structures de

Plus en détail

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

Programmation en langage C d un µcontrôleur PIC à l aide du compilateur C-CCS Sommaire Programmation en langage C d un µcontrôleur PIC à l aide du compilateur C-CCS CCS Sommaire Généralités sur le langage. 2 Structure d un programme en C.. 3 Les constantes et équivalences.. 4 Les variables...

Plus en détail

Principes des langages de programmation INF 321. Eric Goubault

Principes des langages de programmation INF 321. Eric Goubault Principes des langages de programmation INF 321 Eric Goubault 24 mars 2014 2 Table des matières 1 Introduction 7 2 Programmation impérative 11 2.1 Variables et types........................... 11 2.2 Codage

Plus en détail

Seance 2: En respectant la méthode de programmation par contrat, implémentez les autres fonctions de jeu.

Seance 2: En respectant la méthode de programmation par contrat, implémentez les autres fonctions de jeu. Seance 2: Complétion du code de jeu. (durée max: 2h) Mot clé const et pointeurs: En respectant la méthode de programmation par contrat, implémentez les autres fonctions de jeu. Implémentez jeu_recupere_piece

Plus en détail

Utilisation d objets : String et ArrayList

Utilisation d objets : String et ArrayList Chapitre 6 Utilisation d objets : String et ArrayList Dans ce chapitre, nous allons aborder l utilisation d objets de deux classes prédéfinies de Java d usage très courant. La première, nous l utilisons

Plus en détail

STS SE. FreeRTOS. Programmation réseau WIFI. Programmation réseau. Socket Tcp. FlyPort smart Wi-Fi 802.11 module

STS SE. FreeRTOS. Programmation réseau WIFI. Programmation réseau. Socket Tcp. FlyPort smart Wi-Fi 802.11 module François SCHNEIDER Lycée Victor-Hugo BESANÇON. STS SE FreeRTOS Programmation réseau WIFI Programmation réseau Socket Tcp FlyPort smart Wi-Fi 802.11 module Prérequis : langage C, connaissance réseau : Ip,

Plus en détail

Langage Éric Guérin 5 octobre 2010

Langage Éric Guérin 5 octobre 2010 Langage Éric Guérin 5 octobre 2010 Langage C TABLE DES MATIÈRES Table des matières 1 Introduction 7 1.1 Historique........................................... 7 1.2 Architecture matérielle....................................

Plus en détail

Manuel d utilisation 26 juin 2011. 1 Tâche à effectuer : écrire un algorithme 2

Manuel d utilisation 26 juin 2011. 1 Tâche à effectuer : écrire un algorithme 2 éducalgo Manuel d utilisation 26 juin 2011 Table des matières 1 Tâche à effectuer : écrire un algorithme 2 2 Comment écrire un algorithme? 3 2.1 Avec quoi écrit-on? Avec les boutons d écriture........

Plus en détail