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

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

Download "Notes du cours 4M056 Programmation en C et C++ Vincent Lemaire"

Transcription

1 Notes du cours 4M056 Programmation en C et C++ Vincent Lemaire 19 janvier 2014

2 2

3 Organisation du cours 4M056 Ce cours a pour but de vous donner une base solide de programmation en C et des connaissances de programmation en C++ en insitant sur 2 concepts présents dans de nombreux langages modernes : la programmation orienté objet et la programmation générique. On insistera sur la différence entre ces 2 langages en découpant le semestre en 2 parties, la première dédiée au C et la seconde au C++. Le cours mettra l accent sur la compréhension des mécanismes de ces langages (mécanisme d appel des fonctions, pointeurs, structures, objets, héritage,...) et donnera les principales règles de syntaxe de ces langages mais ne pourra pas être exhaustif étant donné le temps imparti. Ainsi certaines fonctions des librairies standards ne seront pas vues en cours ni utilisées en TP. Le nombre d étudiants inscrits est limité à 90 étudiants. Il y a 3 groupes de TP et une répartition uniforme des étudiants sur ces 3 groupes est indispensable pour le bon fonctionnement des TP. L inscription dans l un des 3 groupes est obligatoire et nécessaire pour valider ce module. Les groupes ont lieu : lundi de 13h à 16h : Maison de la Pédagogie B006 mercredi de 13h45 à 16h45 : Maison de la Pédagogie B006 jeudi de 13h45 à 16h45 : Maison de la Pédagogie B006 Les séances de TP sur machine sont obligatoires. Elles donnent lieu à une note (à travers 2 séances de TP notés) qui compte pour 25% dans la note finale. Calendrier prévisionnel pour l année /01 au 17/02 : 5/6 cours de C TP notés en C : semaine du 24/02 17/02 au 31/03 : 6/7 cours de C++ TP notés en C++ : semaine du 07/04 Calcul de la note finale (sur 100) note finale = 1 4 ( note du TP1 + note du TP2 2 ) + 3 (note examen) 4 Les notes de cours qui suivent sont en cours de rédaction et ne contiennent pas tous les détails et commentaires vus en cours. Vous trouverez en priorité le plan du cours et les programmes d exemples. Ce document sera régulièrement mis à jour. 3

4 4

5 Première partie Programmation en C 5

6

7 Chapitre 1 Introduction On commence ce cours par 2 citations (d actualité lors de l écriture de ce polycopié) à propos de Dennis Ritchie, disparu une semaine après Steve Jobs en octobre citation de la page Wikipedia de Dennis Ritchie Dennis MacAlistair Ritchie, né le 9 septembre 1941 à Bronxville dans l État de New York et trouvé mort le 12 octobre 2011 à Berkeley Heights dans le New Jersey, est un des pionniers de l informatique moderne, inventeur du langage C et co-développeur de UNIX. Il est parfois désigné par dmr, son adresse aux Laboratoires Bell. Au début des années 1970, il travaille avec Ken Thompson en tant que programmeur dans les Laboratoires Bell sur le développement d UNIX. Pour UNIX, il s avère nécessaire d améliorer le langage B créé par Ken Thompson et c est ainsi que Ritchie crée le langage C. Par la suite, aidé de Brian Kernighan, il promeut le langage et rédige notamment le livre de référence The C Programming Language. Il reçoit conjointement avec Ken Thompson le prix Turing de l ACM en 1983 pour leur travail sur le système UNIX. citation de l article de Cade Metz dans Wired 1 When Steve Jobs died last week, there was a huge outcry, and that was very moving and justified. But Dennis had a bigger effect, and the public doesn t even know who he is, says Rob Pike, the programming legend and current Googler who spent 20 years working across the hall from Ritchie at the famed Bell Labs. On Wednesday evening, with a post to Google+, Pike announced that Ritchie had died at his home in New Jersey over the weekend after a long illness, and though the response from hardcore techies was immense, the collective eulogy from the web at large doesn t quite do justice to Ritchie s sweeping influence on the modern world. Dennis Ritchie is the father of the C programming language, and with fellow Bell Labs researcher Ken Thompson, he used C to build UNIX, the operating system that so much of the world is built on including the Apple empire overseen by Steve Jobs. Pretty much everything on the web uses those two things : C and UNIX, Pike tells Wired. The browsers are written in C. The UNIX kernel that pretty much the entire Internet runs on is written in C. Web servers are written in C, and if they re not, they re written in Java or C++, which are C derivatives, or Python or Ruby, which are implemented in C. And all of the network hardware running these programs I can almost guarantee were written in C. It s really hard to overstate how much of the modern information economy is built on the work Dennis did. Even Windows was once written in C, he adds, and UNIX underpins both Mac OS X, Apple s desktop operating system, and ios, which runs the iphone and the ipad. Jobs was the king of the visible, and Ritchie is the king of what is largely invisible, says

8 8 CHAPITRE 1. INTRODUCTION Martin Rinard, professor of electrical engineering and computer science at MIT and a member of the Computer Science and Artificial Intelligence Laboratory. Jobs genius is that he builds these products that people really like to use because he has taste and can build things that people really find compelling. Ritchie built things that technologists were able to use to build core infrastructure that people don t necessarily see much anymore, but they use everyday. From B to C Dennis Ritchie built C because he and Ken Thompson needed a better way to build UNIX. The original UNIX kernel was written in assembly language, but they soon decided they needed a higher level language, something that would give them more control over all the data that spanned the OS. Around 1970, they tried building a second version with Fortran, but this didn t quite cut it, and Ritchie proposed a new language based on a Thompson creation known as B. Depending on which legend you believe, B was named either for Thompson s wife Bonnie or BCPL, a language developed at Cambridge in the mid-60s. Whatever the case, B begat C. B was an interpreted language meaning it was executed by an intermediate piece of software running atop a CPU but C was a compiled language. It was translated into machine code, and then directly executed on the CPU. But in those days, C was considered a high-level language. It would give Ritchie and Thompson the flexibility they needed, but at the same time, it would be fast. That first version of the language wasn t all that different from C as we know it today though it was a tad simpler. It offered full data structures and types for defining variables, and this is what Richie and Thompson used to build their new UNIX kernel. They built C to write a program, says Pike, who would join Bell Labs 10 years later. And the program they wanted to write was the UNIX kernel. Ritchie s running joke was that C had the power of assembly language and the convenience of assembly language. In other words, he acknowledged that C was a less-than-gorgeous creation that still ran very close to the hardware. Today, it s considered a low-level language, not high. But Ritchie s joke didn t quite do justice to the new language. In offering true data structures, it operated at a level that was just high enough. When you re writing a large program and that s what UNIX was you have to manage the interactions between all sorts of different components : all the users, the file system, the disks, the program execution, and in order to manage that effectively, you need to have a good representation of the information you re working with. That s what we call data structures, Pike says. To write a kernel without a data structure and have it be as consist and graceful as UNIX would have been a much, much harder challenge. They needed a way to group all that data together, and they didn t have that with Fortran. At the time, it was an unusual way to write an operating system, and this is what allowed Ritchie and Thompson to eventually imagine porting the OS to other platforms, which they did in the late 70s. That opened the floodgates for UNIX running everywhere, Pike says. It was all made possible by C. Apple, Microsoft, and Beyond At the same time, C forged its own way in the world, moving from Bell Labs to the world s universities and to Microsoft, the breakout software company of the 1980s. The development of the C programming language was a huge step forward and was the right middle ground C struck exactly the right balance, to let you write at a high level and be much more productive, but when you needed to, you could control exactly what happened, says Bill Dally, chief scientist of NVIDIA and Bell Professor of Engineering at Stanford. [It] set the tone for the way that programming was done for several decades. As Pike points out, the data structures that Richie built into C eventually gave rise

9 1.1. LANGAGE DE PROGRAMMATION 9 to the object-oriented paradigm used by modern languages such as C++ and Java. The revolution began in 1973, when Ritchie published his research paper on the language, and five years later, he and colleague Brian Kernighan released the definitive C book : The C Programming Language. Kernighan had written the early tutorials for the language, and at some point, he twisted Dennis arm into writing a book with him. Pike read the book while still an undergraduate at the University of Toronto, picking it up one afternoon while heading home for a sick day. That reference manual is a model of clarity and readability compared to latter manuals. It is justifiably a classic, he says. I read it while sick in bed, and it made me forget that I was sick. Like many university students, Pike had already started using the language. It had spread across college campuses because Bell Labs started giving away the UNIX source code. Among so many other things, the operating system gave rise to the modern open source movement. Pike isn t overstating it when says the influence of Ritchie s work can t be overstated, and though Ritchie received the Turing Award in 1983 and the National Medal of Technology in 1998, he still hasn t gotten his due. As Kernighan and Pike describe him, Ritchie was an unusually private person. I worked across the hall from him for more than 20 years, and yet I feel like a don t knew him all that well, Pike says. But this doesn t quite explain his low profile. Steve Jobs was a private person, but his insistence on privacy only fueled the cult of personality that surrounded him. Ritchie lived in a very different time and worked in a very different environment than someone like Jobs. It only makes sense that he wouldn t get his due. But those who matter understand the mark he left. There s that line from Newton about standing on the shoulders of giants, says Kernighan. We re all standing on Dennis shoulders. 1.1 Langage de programmation Un programme désigne un fichier texte (que l on écrit avec un éditeur de texte et non un traitement de texte) composé d instructions qui doivent respecter des règles de syntaxe. Chaque langage de programmation a ses propres instructions et règles de syntaxes. Un outil lié au langage de programmation est utilisé pour transformer ce programme texte en une suite de blocs de 8, 16, 32 ou 64 bits. Chaque bloc est appelé un mot machine et la suite de ces blocs constitue un programme en langage machine executable par la machine. Bien entendu, ce programme machine est constitué d une suite de 0 et de 1 et est incompréhensible pour le programmeur. De façon schématique, il existe deux outils permettant de faire executer un programme par la machine un interpréteur : qui à chaque execution parcourt le fichier texte (appelé dans ce cas script) et traduit la suite des instructions en langage machine aussitôt executé, un compilateur : qui traduit une seule fois le fichier texte (appelé dans ce cas fichier source) en un fichier machine (fichier objet) executable. Un programme dans un langage interprété est souvent plus facile à apprendre, à écrire, à corriger et à maintenir mais sera plus long à l execution (car la phase d interprétation peut être coûteuse en temps). De nombreux logiciels scientifiques possèdent leur propre langage de programmation interprété, par exemple : scilab, matlab, mathematica, mapple. De même, on peut citer les langages très utilisés actuellement comme : Perl, Python, Ruby, Lua et des langages plus spécialisés comme javascript, sql, php, etc. La compilation permet la transformation directe d un fichier source en un fichier objet compréhensible par la machine. Ce fichier objet peut être en lien avec d autres fichiers objets et le tout forme ce qu on appelle communément un programme ou une application. Des fichiers objets peuvent aussi être regroupés pour former ce qu on appelle une librairie (par exemple un fichier.dll sous windows ou.a ou.so sur des systèmes UNIX). Une librairie est un ensemble de codes qui peut être appelé (utilisé) dans un autre programme. Les langages C et C++ sont des langages compilés et le compilateur utilisé dans ce cours est le

10 10 CHAPITRE 1. INTRODUCTION GNU Compiler Collection ou GCC disponible sur toutes les architectures que vous pouvez utiliser. De nombreux langages compilés existent et ont tous leurs propres usages. On peut citer Fortran, Pascal, Java, OCaml, ObjectiveC, etc. 1.2 Evolution du langage C Le langage C a été «modernisé» depuis sa création il y a environ 40 ans. Le C classique, aussi connu sous le nom de C K&R, se réfère au livre fondateur de Kernighan et Ritchie intitulé The C Programming Language paru en Le langage a ensuité été normalisé en 89 et donne lieu au ANSI C qui correspond au standard utilisé par tous les compilateurs sur toutes les architectures (ordinateurs personnels, supercalculateurs, puces spécialisées, etc.). Cette norme a depuis évolué 2 fois : en 99 ce qui a donné lieu au C99 et l année dernière en La norme C99 commence a être intégrée par tous les compilateurs (entièrement prise en charge dans gcc) et la norme C11 qui ajoute de nombreuses fonctionnalités n est pas encore bien implémentée. Dans ce cours, on présente le ANSI C avec de nombreuses parenthèses sur le C99. création en et popularisé en 1978 : C K&R normalisation en 1989 : ANSI C normalisation en 1999 : C99 normalisation en 2011 : C Phases de compilation Ce qu on appelle compilation est en fait composée de 3 phases : le préprocesseur : mécanisme rudimentaire qui applique des règles pour préparer le code : inclusion de fichiers d en-tête (header) contenant la déclaration de fonctions, déclaration de constante et de macros. Ce mécanisme de règles ne fait pas partie du langage C : il n y a pas de notion d instruction (donc pas de «;»), pas de variables, pas de fonctions, etc. Moralement, on peut voir ce mécanisme comme un copié/collé automatisé. Ce mécanisme rudimentaire est néanmoins très efficace et est utilisé par d autres langages comme le C++. De nombreux codes écrits dans les années 80 utilisent des macros pour optimiser le code. Dans ce cours, on n autorisera pas l utilisation de ces macros qui peuvent produire des erreurs importantes (cf. plus tard...) Pour information, le résultat de cette phase est accessible en utilisant le compilateur gcc avec les options -E et -P (pour plus de lisibilité). la compilation et l assemblage : c est la phase principale où le code source est vérifié et si aucune erreur de syntaxe n est détectée il est traduit en code objet. Il y a donc pour chaque fichier source.c un fichier objet.o créé. Plus précisément le code source est d abord traduit en langage assembleur (propre à l architecture du système) puis ce code assembleur est transformé en fichier binaire. Ces deux premières phases sont accessibles avec l option -c de gcc. l édition de liens : mécanisme permettant de faire le liens entre les différents fichiers objets produits et les fichiers objets des fonctions système (c est à ce moment que le code objet d une fonction est intégrée au programme). S il n y a pas d erreurs (si le compilateur trouve tous les bouts de code objets dont il a besoin) alors il y a création d un fichier executable. Ce fichier executable est ce qu on appelle communément programme ou application. Par défaut sur un système Linux le fichier executable produit s appelle a.out. Pour obtenir un nom différent on utilise l option -o de gcc. Pour l utilisation de certaines librairies (l inclusion de certains fichiers d en-têtes) il peut être nécessaire d indiquer un chemin au compilateur qui lui permet de trouver le code objet correspondant. Par exemple pour utiliser le fichier système math.h qui contient la déclaration de fonctions mathématiques (comme sqrt, pow, abs, fabs, etc.) on doit ajouter l option -lm.

11 1.4. PREMIER PROGRAMME EN C Premier programme en C Voici à quoi ressemble un programme très simple en C. Le fichier source s appelle test.c. Fichier test.c # include <stdio.h> 2 int main( void) { 4 printf("bonne annee!"); return 0; 6 } Commentaires ligne 1 : il ne s agit pas d une instruction en langage C mais d une ligne destinée au préprocesseur : on indique que l on a besoin de fonctions déclarées dans le fichier système stdio.h. Ce fichier d en-tête (header) contient les fonctions standards d entrées-sorties (stdandard input output), c est à dire les fonctions qui lisent ou qui écrivent sur la ligne de commande, dans un fichier, ou plus généralement dans ce qu on appelle un flux. Toutes les lignes qui débutent par le caractère # dans un programme sont destinées au préprocesseur (cf. annexe pour plus de détails). ligne 2 : il s agit de la déclaration de la fonction qui s appelle main qui ne prend aucun argument (void) et qui renvoie un entier int. Le nom de la fonction main n est pas choisi par hasard, il fait partie de la syntaxe du langage. Cette fonction main joue un rôle très particulier car c est la première fonction appelée lors de l execution du programme, et sa présence est nécessaire pour créer un fichier executable lors de l édition de liens. Un programme qui ne contient pas de fonction main peut néanmoins être compilé en un fichier objet. lignes 3 et 6 : ouverture et fermeture d un bloc qui contient des instructions, ici les lignes 4 et 5. Ce bloc constitue la définition de la fonction main déclarée à la ligne 2. Ainsi on dira que les lignes 2 à 6 constituent la déclaration et la définition de la fonction main. ligne 4 : appel de la fonction printf avec l argument "Bonne annee!". L argument est une chaîne de caractères (au format ASCII c est à dire sans les caractères accentués). Cette ligne forme une instruction en C (appel d une fonction avec un argument) et se termine par un point virgule. Ce caractère «;» est utilisé pour séparer les instructions. Le saut de ligne est facultatif pour le compilateur mais nécessaire pour une bonne lisibilité du code. La fonction printf affiche la chaîne de caractère donnée en argument sur la ligne de commande qui execute le programme. ligne 5 : le mot-clé return fait partie du langage C et doit être suivi d une expression «compatible» avec ce que renvoie la fonction. Ici on se trouve dans la définition de la fonction main qui renvoie un entier int donc le mot-clé return doit être suivi d un entier. Le 0 que l on renvoie dans cet exemple indique au système d exploitation que le programme s est bien déroulé. Dans des programmes plus complexes on peut renvoyer un entier codant pour une erreur particulière (tout cela devant être documenté dans la page de manuel accompagnant le programme). Compilation Pour effectuer uniquement la phase du préprocesseur et voir le code C produit, on peut taper dans un terminal la commande suivante 2 : $ gcc -E -P test.c Si l on veut sauver le résultat dans un fichier texte test_apres_preproc.c on peut rediriger cette sortie 2. le symbole $ en début de ligne indique qu il s agit d une commande dans un terminal et ne doit pas être recopié

12 12 CHAPITRE 1. INTRODUCTION en utilisant l opérateur > de l interpréteur de la ligne de commande (bash, zsh ou bien d autres...). On peut donc taper $ gcc -E -P test.c > test_apres_preproc.c puis éditer ce fichier test_apres_preproc.c pour voir son contenu. Pour vérifier qu il n y a pas d erreur de syntaxe et que l appel des fonctions existentes est correct, on effectue la phase de compilation (et d assemblage) qui produit un fichier objet. Ainsi, on tape la commande $ gcc -c test.c qui produit le fichier test.o s il n y a pas d erreur. C est à cette étape qu il faut souvent corriger les erreurs de syntaxe. Enfin pour créer le fichier executable que l on appelle ici prog1 on utilise la commande suivante $ gcc test.c -o prog1 L option -o indique le nom du fichier executable créé s il n y a pas d erreur lors de l édition de liens. Sans cette option, le fichier executable s appelle a.out sur les systèmes UNIX. Les erreurs qui peuvent se produire lors de cette phase viennent principalement du fait que gcc ne trouve pas les fichiers objets correspondants aux fonctions déclarées dans les fichiers d en-têtes (fichier header) Pour executer ce fichier executable sur un système UNIX on tape $./prog1 1.5 Un deuxième programme # include <stdio.h> 2 # include <math.h> # define PI Fichier aire.c // declaration et definition la fonction aire_rectangle 6 double aire_rectangle( double l1, double l2) { return l1* l2; 8 }; 10 /* declaration de la fonction aire_cercle puis definition ligne 18 */ 12 double aire_cercle( double rayon); 14 int main( void) { double aire = aire_cercle (0.5 * sqrt(5)); 16 printf(" aire du cercle de diametre racine de 5: %g", aire); return 0; 18 }; 20 double aire_cercle( double rayon) { return PI* rayon* rayon; 22 };

13 1.6. ORGANISATION D UN PROGRAMME 13 Commentaires lignes 1-3 : 3 lignes destinées au préprocesseur : inclusion des 2 fichiers systèmes stdio.h et math.h et définition d une constante PI suivie de sa valeur. Attention la «définition» de PI constitue un racourci d écriture pour la suite du programme et non la création d une variable. ligne 5 : tout ce qui suit // est mis en commentaire jusqu au bout de la ligne. lignes 6-8 : déclaration et définition de la fonction aire_rectangle (dont on a choisi le nom) qui prend 2 arguments l1 et l2 qui sont des variables de type double (représentant les nombres réels) et qui renvoie une variable de type double. La fonction aire_rectangle est la représentation d une fonction ( R R R, (l 1, l 2 ) l 1 l 2 ). Cette définition de fonction est suivie d un «;» à la ligne 8. lignes : tout le texte entre /* et */ est mis en commentaire, même les sauts de ligne. ligne 12 : déclaration de la fonction aire_cercle qui prend un argument qui s appelle rayon de type double et qui renvoie un double. lignes : déclaration et définition de la fonction principale l.15 : déclaration de la variable aire de type double et initialisation de cette variable avec la valeur aire_cercle(0.5 * sqrt(5)). Cette valeur est le résultat de l appel de la fonction aire_cercle avec l argument 0.5 * sqrt(5)). De même, sqrt(5) est le résultat de l appel de la fonction sqrt (square root) déclarée dans le fichier math.h. les appels de fonctions peuvent être imbriqués sans restriction. La variable aire est dite locale car elle est déclarée dans une fonction. Dans ce cours, on utilisera exclusivement des variables locales l.16 : appel de la fonction d affichage printf avec 2 arguments. attention il est rare qu une fonction en C puisse s appeler avec un nombre variable d arguments (ici 2 et dans le premier programme 1). Ces fonctions à nombre variables d arguments sont plus complexes à écrire et utilisent le préprocesseur. Dans un premier temps il faut donc voir la fonction printf comme un cas particulier de fonction en C (cf. annexe pour plus de détails). lignes 20 : définition de la fonction aire_cercle précédemment déclarée. Compilation Pour compiler et executer ce programme on utilise alors les commandes suivantes : $ gcc aire.c -o prog2 -lm $./prog2 1.6 Organisation d un programme Comme dans les deux exemples vus précédemment, un programme doit être composé (pas forcément ordonné) de la façon suivante : des lignes destinées au préprocesseur précédées d un # des lignes de commentaires précédées de // ou entre /* et */ des déclarations de fonctions qui doivent précédées (dans le code source) leur utilisation. Notez que la définition peut se trouver après dans le code. Par exemple la fonction aire_cercle est déclarée ligne 12 puis utilisée ligne 15 et enfin définie ligne 20. des définitions de fonctions qui contiennent des instructions séparées par «;» des définitions de types (que nous verons plus tard) Enfin, un code source peut contenir en dehors de toute fonction des variables déclarées. Ces variables sont appelées variables globales et sont utilisables dans les lignes qui suivent leur déclaration. Dans ce cours, on n utilisera pas ces variables globales.

14 14 CHAPITRE 1. INTRODUCTION De plus, les fonctions ne peuvent pas être imbriquées les unes dans les autres : on en peut pas déclarer et définir une fonction dans une autre fonction. Par contre, les appels peuvent être imbriqués sans restriction. 1.7 Outils pour le développeur (non utilisés dans ce cours) Le compilateur est l outil essentiel pour le programmeur. Cependant il existe tout un «écosystème» d outils puissants pour aider le développeur. On peut citer par exemple un système de construction qui permet d automatiser les appels au compilateure et d éviter les lignes de commande trop longues ou complexes. L outil historique et encore très utilisé est l utilitaire make qui nécessite l écriture d un Makefile (cf. annexe pour des exemples). Il existe aussi scons. un débogueur (debugger) qui permet de suivre l execution d un programme pour trouver les sources d erreur (bugs). On peut vérifier l état de la mémoire, de chaque variable du programme, visualiser le code assembleur, etc. Le débogueur du projet GNU s appelle gdb. un gestionnaire de versions, très utile pour développer un projet à plusieurs : il gère les conflits entre les différents codes, garde des versions antérieures, etc. On peut citer CVS, Subversion ou git. un environnement de développement intégré (IDE) qui regroupe dans une interface graphique cohérente un éditeur de texte avec coloration syntaxique (mot-clés du langage en couleur), un système de construction, un débogueur, un gestionnaire de versions, etc. Un exemple d un tel IDE est eclipse. un profileur de code qui permet d aider à optimiser le code en analysant les performances du programme. Par exemple on peut utiliser gprof ou valgrind.

15 Chapitre 2 Syntaxe du C On représente la mémoire qui contient les données binaires (en base 2) du programme par le graphe suivant. Chaque case représente une zone mémoire qui contient un ou plusieurs octets (8 bits). Certaines cases possèdent un nom et/ou une adresse qui permet d accéder au contenu mémoire (la valeur). De plus, à chaque case correspond un type qui permet de «décoder» le contenu, c est à dire connaître la signification des bits. adresse nom Les cases qui ne possèdent ni nom, ni adresse (mais bien un type et une valeur) seront appelées constantes. 2.1 Vocabulaire Le langage C est un langage fortement typé c est à dire qu il faut déclarer le type de chaque variable que l on veut utiliser dans la suite du programme. De même pour les fonctions qu il faut déclarer avant de les appeler. Définition 1 Une variable est un espace réservé en mémoire qui possède les caractéristiques suivantes : son nom (unique) qui permet de l identifier, son type, c est la convention d interprétation de la séquence de bits qui constitue la variable, sa valeur, c est la séquence de bits elle-même, son adresse, c est l endroit dans la mémoire où elle est stockée. La déclaration d une variable se fait en choisissant un nom précédé d un type (le type est un mot-clé du langage ou défini précédemment dans le programme par le mot-clé typedef). Le nom doit ếtre lisible, avoir du sens pour aider la compréhension du programme, composé d une combinaison de caractères alpha-numériques sans accent (a...z A...Z 0...9) et du caractère «_». Le nom d une variable ne peut pas commencer par un chiffre. La lecture ou l accès à la valeur de la variable se fait simplement en utilisant son nom. Une variable a une durée de vie qui correspond à l endroit du code dans laquelle elle existe. Par défaut une variable existe uniquement dans le bloc défini entre accolades { } et elle est accessible et modifiable par les instructions de ce bloc. Ce comportement peut être modifié en utilisant des mot-clés appelés qualifieurs. Les plus importants sont const, static et extern. Dans ce cours, on insistera essentiellement sur const qui est fondamental. En général, on place le qualifieur devant le type de la variable que l on déclare. Il ne peut pas changer par la suite. 15

16 16 CHAPITRE 2. SYNTAXE DU C Pour agir sur ces variables on utilise deux mécanismes : des opérateurs et des appels de fonction 1. On parle d expression simple pour désigner une constante(0, 3.14, 'A', etc.) ou une variable existante (i.e. déjà déclarée). Attention, une déclaration n est pas une expression! Définition 2 Un opérateur est un symbole qui agit sur une ou deux expression(s) simple(s) (variable ou constante) pour créer une expression complexe. S il agit sur une seule expression on parle d opérateur unaire et sinon d opérateur binaire. On peut regrouper ces opérateurs de la façon suivante : opérateurs arithmétique (binaires) : + - * / % opérateurs arithmétique (unaires) : opérateurs sur les bits 2 : << >> & ^ ~ opérateurs d affectation : = += -= *= /= %= opérateurs de comparaison : ==!= < <= > >= opérateurs logiques :! && opérateurs «système» (unaires 3 ) : () [] * &. ->,?: sizeof() (type simple) En C il n est pas possible de définir de nouveaux opérateurs ou de changer le comportement de ces opérateurs. Dans toute la suite de ce cours on désigne par expression toute combinaison valide (syntaxiquement correcte) d expressions simples (variables ou constantes), d opérateurs et d appels de fonctions. Définition 3 Une instruction se termine toujours par un point-virgule et peut-être définie par une expression suivie par un point-virgule, ou une combinaison de mot-clés 4 agissant sur des expressions et des instructions. Un bloc est un ensemble de déclarations et d instructions rassemblées entre accolades { }. Notations : Dans les codes qui suivent, on notera expr l endroit où le programmeur doit mettre une expression isolée, instr là où l on attend une instruction ou un bloc d instructions, et type pour le type d une variable. L affectation permet d attribuer une nouvelle valeur à une variable. Pour cela on utilise l opérateur = avec à sa gauche le nom de la variable et à sa droite la nouvelle valeur. Lorsqu on donne une première valeur à la variable on parle d initialisation (on utilise alors le symbole = qui n est pas équivalent à l opérateur d affectation =). Syntaxe de deux blocs qui ont le même effet { 2 type var = expr; // déclaration et initialisation } 4 { type var; // déclaration 6 var = expr; // affection } On peut enchaîner les déclarations et initialisations éventuelles de variables de même type en utilisant l opérateur «,». Exemple : Syntaxe de déclarations multiples type var1 = expr1, var2, var3 = expr3; // déclarations Tout ce vocabulaire doit être maîtrisé pour suivre le cours. 1. en fait il s agit aussi de l action d un opérateur sur une zone mémoire 2. non utilisés dans ce cours 3. avec arguments possibles 4. mots définis dans le langage : if, else, do, while, for, switch, break, continue, return

17 2.2. TYPES Types Le type d une variable permet de lire corectement la valeur (l ensemble des bits) de la variable. En particulier, c est le type qui donne la taille de cette zone mémoire. Pour accéder à cette information on peut utiliser l opérateur sizeof() qui agit directement sur le type (cf. l exemple plus bas). Il y a peu de types prédéfinis en C mais on a la possibilité d en définir de nouveaux. On fait souvent la distinction entre types simples (entiers, réels, adresse) et types composés : tableaux, structures, etc Types simples Types entiers Plusieurs mots-clés sont définis pour représenter les entiers (relatifs et naturels). La seule différence entre ces types est la taille de la zone mémoire utilisée pour le stockage de la valeur de l entier. Une remarque importante est que cette taille peut changer d une architecture à une autre. Cependant sur des systèmes classiques (ordinateurs personnels) on peut donner les informations suivantes : short codé sur 2 octets int codé sur 4 octets long codé sur 4 ou 8 octets long long 5 codé sur 8 octets Par défaut ces types représentent des entiers relatifs c est à dire signés. Pour utiliser des entiers naturels on fait précéder le type du mot-clé unsigned. Les constantes entières peuvent s écrire en base 10 (par défaut), en base 8 (1 octet, nombre octal) ou en base 16 (2 octets, nombre hexadécimal). Dans ce cours on utilisera uniquement des nombres en base 10 mais il existe un piège à éviter : pour écrire un nombre en base 8 on fait précéder ce nombre du caractère 0 pour écrire un nombre en base 16 on fait précéder ce nombre des caractères 0x Par exemple le résultat de l extrait de code suivant est l affichage de 0 (car 27 en base 10 s écrit 33 en base 8) : Attention, le 0 devant une constante entière a une signification! int m = 033, n = 27; // déclaration et init. de n et m 2 printf(" Resultat de m-n: %d\n", m-n); Depuis le C99 il existe des types de la forme int_nt (pour les entiers signés) et uint_nt (pour les entiers non signés) où N indique la taille en bits parmi 8, 16, 32, 64. Par exemple, on peut déclarer un entier x non signé sur 32 bits par l instruction : uint_32t x; Les opérateurs utilisables sur les variables entières sont les opérateurs arithmétiques (binaires et unaires), d affectation, de comparaison et logiques. Notez que / désigne la division entière et % désigne l opération modulo. On détaillera l utilisation des opérateurs logiques plus loin dans ce cours. A propos des opérateurs d affectation il faut préciser la signification des opérateurs de la forme o= où o désigne l un des caractères + - * / % : l expression expr1 o= expr2 a le même effet que l expression expr1 = expr1 o expr2 (sauf qu il n y a qu une évalutation de expr1). Exemple : Opérateurs d affectation arithmétique unsigned long x = 45; 2 x /= 10-5; // même effet que x = x / (10-5); Reste enfin les opérateurs d incrément ++ et de décrément --. Il existe 2 versions de ces opérateurs : une version préfixée et une version postfixée. version préfixée : l opérateur est placé devant l expression et incrémente ou décrémente cette expression avant un opérateur d affecation éventuel 5. depuis le C99

18 18 CHAPITRE 2. SYNTAXE DU C version postfixée : l opérateur est placé derrière l expression et incrémente ou décrémente cette expression après un opérateur d affecation éventuel Exemple : Opérateurs d affectation arithmétique int x = 45; 2 int y = ++x; // préfixé, même effet que x=x+1; y=x; int z = x++; // postfixé, même effet que y=x; x=x+1; Type caractère Les caractères sont manipulés par le système comme des nombres entiers codés sur 1 octet. A chaque caractère correspond une valeur numérique entre 0 et 255. La table donnant la correspondance entre 1 caractère et sa valeur numérique s appelle la table ASCII. Toutes les opérations effectuées sur les entiers sont valables sur les caractères. Le mot-clé utilisé pour le type caractère est char. Une constante caractère est délimitée par des apostrophes simples ' et '. Voici un exemple complet à tester : Exemple d utilisation du type char # include <stdio.h> 2 int main( void) { char c1 = 'b'; // initialitation de c1 avec la valeur 'b' 4 char c2 = c1 / 2; printf(" Le caractere 'b' a pour code: %d\n", c1); 6 printf(" La nombre %d code le caractere: %c\n", c2, c2); return 0; 8 } Types réels La représentation d un nombre réel sur un nombre donné de bits est complexe. Quelque soit le système choisi, on utilise une approximation de ce nombre réel et l erreur commise s appelle erreur d arrondie. Plusieurs mots-clés sont définis pour coder ces représentations de réels : float codage simple précision sur 4 octets (32 bits) double codage double précision sur 8 octets (64 bits) long double encore peu utilisé Dans ce cours on privilégiera les variables de type double qui permettent une bonne précision et moins d erreurs d arrondies que le type float (cf. l exemple suivant). Les constantes réelles peuvent s écrire en notation scientifique en utilisant la lettre e (ou E). Manque de précision du type float float x = 1e-4, s = 0; 2 int i; for (i = 0; i < 1e6; ++i) 4 s += x; // i prend les valeurs de 0 à 1e6 La valeur de s à la fin de cette boucle est et non 100 comme attendu. Que se passe-t-il si on remplace l instruction s += x; par l instruction s = (j+1)*x;? Ecrire le programme avec le type double et vérifier le résultat. Les mêmes opérateurs que pour les entiers sont disponibles pour les réels (à l exception du modulo %).

19 2.2. TYPES 19 Type adresse Il existe un mécanisme très puissant que l on détaillera dans la suite du cours qui permet de manipuler des zones mémoires (des variables ou des fonctions) par leur adresse. Il faut donc définir un type adresse qui dépend du type de la zone mémoire. Par exemple à l adresse d un char se trouve un char (1 octet) et à l adresse d un double se trouve un double (8 octets) : ces deux adresses ont des types différents. La syntaxe pour déclarer une variable de type adresse sur un type est Déclaration d une variable de type adresse type * variable; Le type est suivi du caractère *. L espace entre type et *, ou celui entre * et variable, est facultatif. La notation dépend du programmeur. Définition 4 Une variable de type adresse sur un type est appelée pointeur. Par extension, le type adresse sera appelé type pointeur. Les opérateurs utilisables sont : * & -> (binaire) + (avec un entier). Les pointeurs seront détaillés dans le chapitre suivant. Conversions Tous les types simples peuvent être convertis à l aide de l opérateur (type simple). Ce mécanisme est à utilisé avec précaution mais permet par exemple la convertion d un entier en un réel. Par la convertion d un réel en un entier on utilisera plutôt les fonctions arrondi ou partie entière de la libairie mathématique : round, floor. Dans l exemple qui suit n est converti en double avant la division. Le compilateur utilise donc la division entre 2 réels et non la division entière entre 2 entiers. Exemple d utilisation d un opérateur de conversion int n = 4; 2 double x = 1 / ( double) n; // different de double x = 1 / 4; Tableaux statiques On parle de tableau statique car c est un tableau dont la taille est connue à la compilation. Tous les éléments d un tableau doivent être de même type. Pour déclarer un tableau de N éléments de même type type on utilise la syntaxe suivante : Déclaration d un tableau de taille N type variable[n]; Un tableau de taille N est indexé de 0 à N-1. L opérateur pour accéder à un élément du tableau est l opérateur d accès [] et prend pour unique argument un entier. Dans l exemple suivant on déclare un tableau de 10 double que l on initialise à 0 : Initialisation d un tableau double tab[10]; 2 int i; for (i = 0; i < 10; ++i) { 4 tab[i] = 0; // i prend les valeurs successives de 0 à 9 };

20 20 CHAPITRE 2. SYNTAXE DU C Attention l expression tab[k] avec k non dans {0,...,9} est autorisée par le compilateur (il n y a pas d erreur de syntaxe) mais peut être dangereux à l execution et créer une erreur système. Une syntaxe particulière est autorisée à l initialisation : indiquer toutes les valeurs prises par les éléments du tableau dans une liste entre accolades : Syntaxe réservée à l initialisation int tab[] = { 2, -3, 4e2, 11 }; Tableaux de tableaux Il est tout à fait possible de créer des tableaux d éléments de types quelconques, en particulier de type tableau. Pour déclarer une variable matrice qui serait un tableau de N tableaux de M éléments de type double on écrit ainsi Tableau de N tableaux de M réels double matrice[n][ M]; Il n y a pas d opérateur spécifique pour l utilisation d une telle structure de données. Il faut donc utiliser plusieurs fois l opérateurs d accès [] pour accéder à un élément : Accès à un élément matrice[i]; // accès au (i+1)- ème tableau ( de taille M) 2 matrice[i-1][ j-1]; // accès au j- ème double du i- ème tableau Chaînes de caractères Une chaîne de caractères est représentée en interne comme un tableau de char. Plus précisément, une chaîne de N caractères est codée par un tableau de N+1 char dont le dernier est le caractère nul '\0' (de code ASCII 0). Il existe une facilité d écriture des constantes chaînes de caractères à l aide des guillements " ". Initialisation d une chaîne de caractères char st1[] = "Bonjour"; 2 char st2[] = { 'B', 'o', 'n', 'j', 'o', 'u', 'r', '\0' }; Les deux variables st1 et st2 représentent les mêmes chaînes de caractères Structures Une structure est un type composé qui permet de regrouper plusieurs variables de types différents. Les variables regroupées au sein d une structure s appellent des champs. On associe souvent un nom à la structure (donné après le mot-clé struct) ce qui permet de la réutiliser dans la suite du programme. La déclaration d une structure se fait dans un fichier d en-tête.h si elle doit être réutilisée ou bien dans un fichier source : dans une fonction (déclaration locale) ou en-dehors de toute fonction (déclaration globale). La syntaxe pour définir une structure qui porte le nom nomstruc et qui contient N champs est

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

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

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

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

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

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

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

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

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

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

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

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

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

Application Form/ Formulaire de demande

Application Form/ Formulaire de demande Application Form/ Formulaire de demande Ecosystem Approaches to Health: Summer Workshop and Field school Approches écosystémiques de la santé: Atelier intensif et stage d été Please submit your application

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

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

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

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

Once the installation is complete, you can delete the temporary Zip files.. Sommaire Installation... 2 After the download... 2 From a CD... 2 Access codes... 2 DirectX Compatibility... 2 Using the program... 2 Structure... 4 Lier une structure à une autre... 4 Personnaliser une

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

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

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

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

1.The pronouns me, te, nous, and vous are object pronouns.

1.The pronouns me, te, nous, and vous are object pronouns. 1.The pronouns me, te, nous, and vous are object pronouns.! Marie t invite au théâtre?!! Oui, elle m invite au théâtre.! Elle te parle au téléphone?!! Oui, elle me parle au téléphone.! Le prof vous regarde?!!!

Plus en détail

Instructions Mozilla Thunderbird Page 1

Instructions Mozilla Thunderbird Page 1 Instructions Mozilla Thunderbird Page 1 Instructions Mozilla Thunderbird Ce manuel est écrit pour les utilisateurs qui font déjà configurer un compte de courrier électronique dans Mozilla Thunderbird et

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

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

Langage C. Patrick Corde. Patrick.Corde@idris.fr. 22 juin 2015. Patrick Corde ( Patrick.Corde@idris.fr ) Langage C 22 juin 2015 1 / 289 Langage C Patrick Corde Patrick.Corde@idris.fr 22 juin 2015 Patrick Corde ( Patrick.Corde@idris.fr ) Langage C 22 juin 2015 1 / 289 Table des matières I 1 Présentation du langage C Historique Intérêts

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

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 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

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

Lesson Plan Physical Descriptions. belle vieille grande petite grosse laide mignonne jolie. beau vieux grand petit gros laid mignon

Lesson Plan Physical Descriptions. belle vieille grande petite grosse laide mignonne jolie. beau vieux grand petit gros laid mignon Lesson Plan Physical Descriptions Objective: Students will comprehend and describe the physical appearance of others. Vocabulary: Elle est Il est Elle/Il est Elle/Il a les cheveux belle vieille grande

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

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

Utiliser une WebCam. Micro-ordinateurs, informations, idées, trucs et astuces

Utiliser une WebCam. Micro-ordinateurs, informations, idées, trucs et astuces Micro-ordinateurs, informations, idées, trucs et astuces Utiliser une WebCam Auteur : François CHAUSSON Date : 8 février 2008 Référence : utiliser une WebCam.doc Préambule Voici quelques informations utiles

Plus en détail

Dans une agence de location immobilière...

Dans une agence de location immobilière... > Dans une agence de location immobilière... In a property rental agency... dans, pour et depuis vocabulaire: «une location» et «une situation» Si vous voulez séjourner à Lyon, vous pouvez louer un appartement.

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

Forthcoming Database

Forthcoming Database DISS.ETH NO. 15802 Forthcoming Database A Framework Approach for Data Visualization Applications A dissertation submitted to the SWISS FEDERAL INSTITUTE OF TECHNOLOGY ZURICH for the degree of Doctor of

Plus en détail

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE QCM Remarque : - A une question correspond au moins 1 réponse juste - Cocher la ou les bonnes réponses Barème : - Une bonne réponse = +1 - Pas de réponse = 0

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

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

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

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

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

Le langage C. Introduction, guide de reference

Le langage C. Introduction, guide de reference Le langage C Introduction, guide de reference Ce document est une présentation du langage de programmation C, de sa syntaxe et de ses spécificités. Il est destiné essentiellement à servir de mémo-guide

Plus en détail

Table des matières PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS. Introduction

Table des matières PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS. Introduction PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS Depuis SAS 9.2 TS2M3, SAS propose un nouveau langage de programmation permettant de créer et gérer des tables SAS : le DS2 («Data Step 2»). Ces nouveautés

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

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

Le passé composé. C'est le passé! Tout ça c'est du passé! That's the past! All that's in the past!

Le passé composé. C'est le passé! Tout ça c'est du passé! That's the past! All that's in the past! > Le passé composé le passé composé C'est le passé! Tout ça c'est du passé! That's the past! All that's in the past! «Je suis vieux maintenant, et ma femme est vieille aussi. Nous n'avons pas eu d'enfants.

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

Comprendre l impact de l utilisation des réseaux sociaux en entreprise SYNTHESE DES RESULTATS : EUROPE ET FRANCE

Comprendre l impact de l utilisation des réseaux sociaux en entreprise SYNTHESE DES RESULTATS : EUROPE ET FRANCE Comprendre l impact de l utilisation des réseaux sociaux en entreprise SYNTHESE DES RESULTATS : EUROPE ET FRANCE 1 Objectifs de l étude Comprendre l impact des réseaux sociaux externes ( Facebook, LinkedIn,

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

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

MODERN LANGUAGES DEPARTMENT

MODERN LANGUAGES DEPARTMENT MODERN LANGUAGES DEPARTMENT Common Assessment Task 3 YEAR 9 Je m appelle Ma classe Mark 20 10 19 22 16 13 Total Effort Instructions For this extended piece of homework, you are going to learn and write

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

Algorithmique et programmation : les bases (VBA) Corrigé

Algorithmique et programmation : les bases (VBA) Corrigé PAD INPT ALGORITHMIQUE ET PROGRAMMATION 1 Cours VBA, Semaine 1 mai juin 2006 Corrigé Résumé Ce document décrit l écriture dans le langage VBA des éléments vus en algorithmique. Table des matières 1 Pourquoi

Plus en détail

Cours 1 : La compilation

Cours 1 : La compilation /38 Interprétation des programmes Cours 1 : La compilation Yann Régis-Gianas yrg@pps.univ-paris-diderot.fr PPS - Université Denis Diderot Paris 7 2/38 Qu est-ce que la compilation? Vous avez tous déjà

Plus en détail

APPENDIX 6 BONUS RING FORMAT

APPENDIX 6 BONUS RING FORMAT #4 EN FRANÇAIS CI-DESSOUS Preamble and Justification This motion is being presented to the membership as an alternative format for clubs to use to encourage increased entries, both in areas where the exhibitor

Plus en détail

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

Analyse de sécurité de logiciels système par typage statique Contexte Modélisation Expérimentation Conclusion Analyse de sécurité de logiciels système par typage statique Application au noyau Linux Étienne Millon UPMC/LIP6 Airbus Group Innovations Sous la direction

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

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

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

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

DIPLOME NATIONAL DU BREVET TOUTES SERIES

DIPLOME NATIONAL DU BREVET TOUTES SERIES DIPLOME NATIONAL DU BREVET SESSION : 2014 Feuille 1/7 SUJET DIPLOME NATIONAL DU BREVET TOUTES SERIES Epreuve de Langue Vivante Etrangère : ANGLAIS SESSION 2014 Durée : 1 h 30 Coefficient : 1 Ce sujet comporte

Plus en détail

Contents Windows 8.1... 2

Contents Windows 8.1... 2 Workaround: Installation of IRIS Devices on Windows 8 Contents Windows 8.1... 2 English Français Windows 8... 13 English Français Windows 8.1 1. English Before installing an I.R.I.S. Device, we need to

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

RULE 5 - SERVICE OF DOCUMENTS RÈGLE 5 SIGNIFICATION DE DOCUMENTS. Rule 5 / Règle 5

RULE 5 - SERVICE OF DOCUMENTS RÈGLE 5 SIGNIFICATION DE DOCUMENTS. Rule 5 / Règle 5 RULE 5 - SERVICE OF DOCUMENTS General Rules for Manner of Service Notices of Application and Other Documents 5.01 (1) A notice of application or other document may be served personally, or by an alternative

Plus en détail

MELTING POTES, LA SECTION INTERNATIONALE DU BELLASSO (Association étudiante de lʼensaparis-belleville) PRESENTE :

MELTING POTES, LA SECTION INTERNATIONALE DU BELLASSO (Association étudiante de lʼensaparis-belleville) PRESENTE : MELTING POTES, LA SECTION INTERNATIONALE DU BELLASSO (Association étudiante de lʼensaparis-belleville) PRESENTE : Housing system est un service gratuit, qui vous propose de vous mettre en relation avec

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

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

La mémoire. Un ordinateur. L'octet. Le bit Introduction à l informatique et à la programmation Un ordinateur Un ordinateur est une machine à calculer composée de : un processeur (ou unité centrale) qui effectue les calculs une mémoire qui conserve

Plus en détail

MapReduce. Malo Jaffré, Pablo Rauzy. 16 avril 2010 ENS. Malo Jaffré, Pablo Rauzy (ENS) MapReduce 16 avril 2010 1 / 15

MapReduce. Malo Jaffré, Pablo Rauzy. 16 avril 2010 ENS. Malo Jaffré, Pablo Rauzy (ENS) MapReduce 16 avril 2010 1 / 15 MapReduce Malo Jaffré, Pablo Rauzy ENS 16 avril 2010 Malo Jaffré, Pablo Rauzy (ENS) MapReduce 16 avril 2010 1 / 15 Qu est ce que c est? Conceptuellement Données MapReduce est un framework de calcul distribué

Plus en détail

that the child(ren) was/were in need of protection under Part III of the Child and Family Services Act, and the court made an order on

that the child(ren) was/were in need of protection under Part III of the Child and Family Services Act, and the court made an order on ONTARIO Court File Number at (Name of court) Court office address Applicant(s) (In most cases, the applicant will be a children s aid society.) Full legal name & address for service street & number, municipality,

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

DSL. Domain Specific Language. À l'aide des technologies Eclipse Modeling. Goulwen Le Fur goulwen.lefur@obeo.fr. Le 23 novembre 2012

DSL. Domain Specific Language. À l'aide des technologies Eclipse Modeling. Goulwen Le Fur goulwen.lefur@obeo.fr. Le 23 novembre 2012 DSL Domain Specific Language À l'aide des technologies Eclipse Modeling Le 23 novembre 2012 Goulwen Le Fur goulwen.lefur@obeo.fr Le but de cette session Montrer : Ce qu'est-un DSL/DSM Comment implémenter

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

Module Title: French 4

Module Title: French 4 CORK INSTITUTE OF TECHNOLOGY INSTITIÚID TEICNEOLAÍOCHTA CHORCAÍ Semester 2 Examinations 2010 Module Title: French 4 Module Code: LANG 6020 School: Business Programme Title: Bachelor of Business Stage 2

Plus en détail

Gestion des prestations Volontaire

Gestion des prestations Volontaire Gestion des prestations Volontaire Qu estce que l Income Management (Gestion des prestations)? La gestion des prestations est un moyen de vous aider à gérer votre argent pour couvrir vos nécessités et

Plus en détail

INSTALLATION ET CONFIGURATION DE OPENLDAP

INSTALLATION ET CONFIGURATION DE OPENLDAP INSTALLATION ET CONFIGURATION DE OPENLDAP Ce document a pour intérêt de décrire les étapes de l installation et de la configuration de l outil OpenLDAP sous l OS FreeBSD 4.8 Installation et Configuration

Plus en détail

How to Login to Career Page

How to Login to Career Page How to Login to Career Page BASF Canada July 2013 To view this instruction manual in French, please scroll down to page 16 1 Job Postings How to Login/Create your Profile/Sign Up for Job Posting Notifications

Plus en détail

TABLE DES MATIERES A OBJET PROCEDURE DE CONNEXION

TABLE DES MATIERES A OBJET PROCEDURE DE CONNEXION 1 12 rue Denis Papin 37300 JOUE LES TOURS Tel: 02.47.68.34.00 Fax: 02.47.68.35.48 www.herve consultants.net contacts@herve consultants.net TABLE DES MATIERES A Objet...1 B Les équipements et pré-requis...2

Plus en détail

Présentation par François Keller Fondateur et président de l Institut suisse de brainworking et M. Enga Luye, CEO Belair Biotech

Présentation par François Keller Fondateur et président de l Institut suisse de brainworking et M. Enga Luye, CEO Belair Biotech Présentation par François Keller Fondateur et président de l Institut suisse de brainworking et M. Enga Luye, CEO Belair Biotech Le dispositif L Institut suisse de brainworking (ISB) est une association

Plus en détail

ANGULAR JS AVEC GDE GOOGLE

ANGULAR JS AVEC GDE GOOGLE ANGULAR JS AVEC GDE GOOGLE JUIN 2015 BRINGING THE HUMAN TOUCH TO TECHNOLOGY 2015 SERIAL QUI SUIS-JE? ESTELLE USER EXPERIENCE DESIGNER BUSINESS ANALYST BRINGING THE HUMAN TOUCH TO TECHNOLOGY SERIAL.CH 2

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

PARIS ROISSY CHARLES DE GAULLE

PARIS ROISSY CHARLES DE GAULLE GPS 2 34 1 E 49 0 46 N GPS* 2 56 56 E 49 0 12 N Votre contact / Your contact: et / and: Accueil : Cabines téléphoniques publiques Reception: Public telephone kiosks Navette Shuttle AÉROPORT DE TT CAR TRANSIT

Plus en détail

L informatique en BCPST

L informatique en BCPST L informatique en BCPST Présentation générale Sylvain Pelletier Septembre 2014 Sylvain Pelletier L informatique en BCPST Septembre 2014 1 / 20 Informatique, algorithmique, programmation Utiliser la rapidité

Plus en détail

Deadline(s): Assignment: in week 8 of block C Exam: in week 7 (oral exam) and in the exam week (written exam) of block D

Deadline(s): Assignment: in week 8 of block C Exam: in week 7 (oral exam) and in the exam week (written exam) of block D ICM STUDENT MANUAL French 2 JIC-FRE2.2V-12 Module Change Management and Media Research Study Year 2 1. Course overview Books: Français.com, niveau intermédiaire, livre d élève+ dvd- rom, 2ième édition,

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

Quelques éléments de compilation en C et makefiles

Quelques éléments de compilation en C et makefiles Quelques éléments de compilation en C et makefiles Guillaume Feuillade 1 Compiler un programme C Le principe de la compilation consiste à passer d un ensemble de fichiers de code à un programme exécutable

Plus en détail

3615 SELFIE. http://graffitiresearchlab.fr HOW-TO / GUIDE D'UTILISATION

3615 SELFIE. http://graffitiresearchlab.fr HOW-TO / GUIDE D'UTILISATION 3615 SELFIE http://graffitiresearchlab.fr HOW-TO / GUIDE D'UTILISATION Hardware : Minitel Computer DIN FM545 45 connector (http://www.gotronic.fr/art-fiche-din-fm545-4747.htm) Cable Arduino compatible

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

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

Compléments de documentation Scilab : affichage de texte et formatage de nombres Université des Sciences et Technologies de Lille U.F.R. de Mathématiques Pures et Appliquées Agrégation externe Année 2002-2003 Compléments de documentation Scilab : affichage de texte et formatage de

Plus en détail

«Rénovation des curricula de l enseignement supérieur - Kazakhstan»

«Rénovation des curricula de l enseignement supérieur - Kazakhstan» ESHA «Création de 4 Ecoles Supérieures Hôtelières d'application» R323_esha_FT_FF_sup_kaza_fr R323 : Fiche technique «formation des enseignants du supérieur» «Rénovation des curricula de l enseignement

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

Formulaire de candidature pour les bourses de mobilité internationale niveau Master/ Application Form for International Master Scholarship Programme

Formulaire de candidature pour les bourses de mobilité internationale niveau Master/ Application Form for International Master Scholarship Programme Formulaire de candidature pour les bourses de mobilité internationale niveau Master/ Application Form for International Master Scholarship Programme Année universitaire / Academic Year: 2013 2014 A REMPLIR

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

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

Éléments de programmation et introduction à Java

Éléments de programmation et introduction à Java Éléments de programmation et introduction à Java Jean-Baptiste Vioix (jean-baptiste.vioix@iut-dijon.u-bourgogne.fr) IUT de Dijon-Auxerre - LE2I http://jb.vioix.free.fr 1-20 Les différents langages informatiques

Plus en détail

Exemple PLS avec SAS

Exemple PLS avec SAS Exemple PLS avec SAS This example, from Umetrics (1995), demonstrates different ways to examine a PLS model. The data come from the field of drug discovery. New drugs are developed from chemicals that

Plus en détail

Get Instant Access to ebook Cest Maintenant PDF at Our Huge Library CEST MAINTENANT PDF. ==> Download: CEST MAINTENANT PDF

Get Instant Access to ebook Cest Maintenant PDF at Our Huge Library CEST MAINTENANT PDF. ==> Download: CEST MAINTENANT PDF CEST MAINTENANT PDF ==> Download: CEST MAINTENANT PDF CEST MAINTENANT PDF - Are you searching for Cest Maintenant Books? Now, you will be happy that at this time Cest Maintenant PDF is available at our

Plus en détail

Principes. 2A-SI 3 Prog. réseau et systèmes distribués 3. 3 Programmation en CORBA. Programmation en Corba. Stéphane Vialle

Principes. 2A-SI 3 Prog. réseau et systèmes distribués 3. 3 Programmation en CORBA. Programmation en Corba. Stéphane Vialle 2A-SI 3 Prog. réseau et systèmes distribués 3. 3 Programmation en CORBA Stéphane Vialle Stephane.Vialle@supelec.fr http://www.metz.supelec.fr/~vialle 1 Principes 2 Architecture 3 4 Aperçu d utilisation

Plus en détail