Support de Cours de Langage C. Christian Bac

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

Download "Support de Cours de Langage C. Christian Bac"

Transcription

1 Support Cours Langage C Christian Bac 24 avril 2003

2 ii

3 Table s matières Avant-propos 1 Historique et présentation Historique Présentationdulangage Idéesfondamentales En-chaîneurpasses Pré-processeur Compilateur Optimiseurco Assembleur Éditeurliens Quelquesoptionscc Généralités sur la syntaxe 2.1 Miseenpage Intiant Espaceslexicaux Motsréservés Constantes Instructions Types et variables Typesbase Typesentiers Typesavecpartiesdécimales Taillesstypes Constantesassociéesauxtypesbase Constantestypeentier Constantesavecpartiedécimale Constantestypecaractère xi

4 iv TABLE DES MATIÈRES Chaînescaractères Qualicatifs Tailleetnormalisation Dénitionvariables Typesdérivésstypesbase Tableauxetstructures Pointeurs Initialisationvariables Conversiontype Conversionsimplicites Déclarationetdénition Exercicessurlestypesetvariables Exercice Exercice Exercice Exercice Eléments base Bonjour Lireetécrire Quelquesopérations Plussur printf() et scanf() Exercicessur printf() et scanf() Exercice Exercice Exercice Exercice Opérateurs et expressions Opérateursun-aires Opérateurréférencement Opérateurdéréférencementouindirection Utilisations&et* Opérateursd'incrémentationetdécrémentation Opérateurtaille Opérateurnégationlogique Plusetmoinsunaires Complémentàun Opérateursbinaires Opérateursarithmétiques

5 TABLE DES MATIÈRES v Opérateursmanipulantlesbits Opérateursdécalage Opérateursrelation Opérateurbinaired'aectationetsuccession Opérateursd'aectation Opérateurternaire Précéncesopérateurs Expressions Instructions Exercicessurlesopérateursetlesexpressions Exercice Exercice Exercice Exercice Exercice5:Operateurternaire Exercice Instructions contrôle Instructionsconditionnelles Test Tablebranchement Instructionsitératives while for do while Remarquessurlesinstructionsitératives Rupturesséquence continue break goto return Exercicessurlesinstructionscontrôle Exercice Exercice Exercice Exercice Exercicessurlesrupturesséquence Exercice Exercice

6 vi TABLE DES MATIÈRES 7 Programmation structurée Historique Idéesfondamentales LangageCetprogrammationstructurée AmbitionsdulangageC Cetstructuresfondamentales Quelquesexemples Exempleavecstests Exempleavecuneboucle Fonctions Dénitiond'unefonction Retourfonction Passagesparamètres Passageconstantes Passagevariables Utilisationpointeursenparamètres Conversiontypelorssappels Récursivité Argumentslafonctionmain() Pointeurfonction Étapesd'unappelfonction Exercicessurlesfonctions Exercice Exercice Exercice Compilations séparées Programme Fichiersource Visibilité Espacesnommageetvisibilité Extensionlavisibilité Prototypessfonctions Fonctionsexternes Fonctionsdéniesultérieurement Véricationsprototypes Multiplesdéclarationsetdénitions Fichiersd'inclusion Réductionlavisibilité

7 TABLE DES MATIÈRES vii Variableslocalesrémanentes Travaillerengroupe Exercicessurlesfonctionsetlavisibilitésvariables Exercice1:simulationd'unascenseur Exercice2:racinesd'uneéquationduuxièmegré Exercice3:utilisationschiersd'inclusion Pointeurs et tableaux Tableauxàunedimension Arithmétiqued'adresseettableaux Tableauxmultidimensionnels Pointeursettableaux Tableaupointeurs Pointeursversuntableau Exercicessurlestableauxetlespointeurs Exercice1:tritableauxd'entiers Structures Dénition Utilisation Opérationssurleschamps Opérationssurlavariabledanssonensemble Structuresetlisteschaînées Champsbits Exercicessurlesstructures Exercice Exercice Unions Dénition Accèsauxchamps Exercicessurlesunionsetleschampsbits Exercice Exercice Énumérations Dénition Utilisation Limitessénumérations Types synonymes et complexes 157

8 viii TABLE DES MATIÈRES 14.1 Typessynonymes Typescomplexes Fonctionsettableaux Exercicessurlesdéclarationscomplexes Exercice Exercice Exercice Préprocesseur Commentaires Inclusionchiers Variablespré-compilation Dénitionconstantescompilation Dénitionstinéeàlasélection Dénitionmacro-expressions Eacementd'unedénition Dénitionàl'appell'enchaîneurpasses Sélectionco Sélectionavec #if Sélectionavec #iff et #ifnf Exercicessurlepréprocesseur Exercice Exercice Entrées-sorties la bibliothèque Entrée-sortiesstandards Échangescaractèreparcaractère Échangesligneparligne Échangesavecformats Ouvertured'unchier Fermetured'unchier Accèsaucontenuduchier Accèscaractèreparcaractère Accèsligneparligne Accèsenregistrementparenregistrement Entrée-sortiesformatées Formats:caslalecture Formats:casl'écriture Conversionsurlesentrée-sortiesstandards Conversionenmémoire

9 TABLE DES MATIÈRES ix Conversiondansleschiers Déplacementdanslechier Gestionstampons Gestionserreurs Autres fonctions la bibliothèque Fonctionsmanipulationchaînescaractères Typescaractères Quelquesfonctionsgénérales system() exit() GNU Free Documentation License ApplicabilityandDenitions VerbatimCopying CopyinginQuantity Modications CombiningDocuments CollectionsofDocuments AggregationWithInpenntWorks Translation Termination FutureRevisionsofThisLicense Liste s programmes exemples 212 Liste s gures 215 Liste s tableaux 218 Bibliographie 220 Inx 221

10 x TABLE DES MATIÈRES

11 Avant-propos Notice copyright - NOTICE COPYRIGHT c ou moi) Ce support l'institut cours National correspond Télécommunications, au cours langage 9 C rue Charles Christian Fourier Bac 91011, (ci-après Évry, l'auteur, France. je Cedocumentestdisponibleauxformatslatex,PostScriptouHTML,surlewebàl'URL: http ://picolibre.int-evry.fr/projects/coursc/. sur Il son est utilisabilité, fourni tel quel, ni sur l'auteur l'exactitu ayant fait s informations son mieux qu'il pour contient. supprimer les erreurs, sans garantie licencedocumentationlibre,version1.1outouteversionpostérieurepubliéeparlafreesoftware Vous avez le droit copier, distribuer et/ou modier ce document selon les termes la Foundation; avec une section invariante le chapitre Avant-propos texte spécique en première et en quatrième couverture. Une copie qui contient la licence cette est licence, inclue dans sans le chapitre intitulé"gnu Free Documentation License". Toute remarque ou erreur peut être notiée à l'auteur à l'adresse électronique suivante: Christian.Bac AT int-evry.fr Fin la NOTICE COPYRIGHT c - Conventions d'écriture Voici les conventions d'écriture suivies dans ce support: lestyle italique en anglais comme n'estquasimentjamaisutilisécarjenel'aimepas,jeleréservepourlesphrases The C programming Language les et pour les locutions latines comme versus; caractères et les parties programme, type imprimante comme à /usr/inclu/stdio.h; boule(teletype) sont utilisés pour les noms chiers le style gras les caractères est sont utilisé plus lorsqu'un larges dans mot l'énoncé me semble règles important, ou par parties exemple syntaxe instructions; la syntaxe la conversion explicite: (type) expression; telles que lesmotsquinesontpasfrançaismaissontsouventutilisésdanslejargonsinformaticiens commequote Ainsijepeuxappeleruninx-noeuddusystèmechiersUNIX:unino; sontconsidéréscommetypeneutreetsevoientappliquerlegenremasculin. dans noms les entourés ssins par représentant s pointillés l'espace sont s mémoire adresses occupé et non par s les variables. variables ou les tableaux, les

12 xii Vocabulaire courant Voici quelques mots que j'utilise manière courante: Bit (BinarydigiT)ouélémentbinaire,lapluspetitepartiemanipulableparunordinateur.Comme sonnoml'indiqueunélémentbinairepeutprendreuxvaleurs:0ou1. Octet groupeestleplussouvent(commesonnoml'indique)constituéhuitbits.enlangagec, ou byte, le groupe bits qui permet supporter la représentation d'un caractère. Ce l'octet compliquées sert dans comme les calculs le mot d'occupation machine ont d'espace une taille mémoire donnée et en en nombre particulier d'octets. les variables plus Pile ou programmeteniràjourssériesvariablesactives.cetespaceestgérécommeunepile pile d'exécution, c'est une partie l'espace mémoire d'une application qui permet au d'assiettes, cet espace seulement c'est-à-dire par que le l'on haut. peut Ainsi, ajouter les rniers l'espace éléments (faire grandir qui ont la été pile) ajoutés ou diminuer pile sont les plus facilement accessible, une pile représente le modèle LIFO sur une (Last In First Out) opérations les rniers d'agrandissement éléments qui ou y sont réduction ajoutés sont la pile les premiers sont faites à pouvoir manière être automatique retirés. Les lors à partir s d'un appels espace fonctions mémoire et respectivement taille xe qui est s attribué retours manière fonctions. automatique La pile est par gérée système d'exploitation. Le processeur tient à jour sa relation avec la pile à travers un registre le internequidécritlesommetpileetunautreregistrequimaintientunliensurlecontexte (arguments l'appel et variables locales). Un peu d'histoire CecourslangageCalagénéalogiesuivante: Génèse assurer 1. Il a la été formation créé en 1985 en interne. lorsque j'étais au centre calcul du CNET Paris A, pour 2. La première version était tapée avec les accents français grâce à une version d'emacs sur Multics améliorée par M. Arditti. Cette version d'emacs accents. permettait taper les 3. LesexercicesassociésontétéréaliséssurunemachinetypeSM Les Auguste personnes et M. Sabatier m'ayant du aidé CNET. dans la réalisation cette première version sont : M. Tro 1. Lorsque le DWB (Documentation WorkBench) ticipation du CNET à travers la personne M. a Gien, été disponible dans l'organisation suite à une intense la conférence par- une version Européenne troff. sur UNIX à Paris en 1986, j'ai décidé faire migrer ce cours sous 2. J'ai car elles alors faisaient choisi d'utiliser partie les la macros distribution qui me semblaient voir être la future référence d'unix system V, les macros -mm quej'aiétéleseul). (je crois 3. Lespremièresguressontapparuesdanscesupportgrâceàladisponibilitél'utilitaire pic. 4. Lespersonnesm'ayantaidédanslaréalisationcetteversionsont:M.FondainetM. Horn du CNET. Utilisation formation continue venirtravailleràl'inten1989.elleaalorsservisupportcourspourlamiseenplace Cette version m'a suivi lorsque j'ai quitté le CNET pour d'un le service ensemble national cours la dus formation à l'arrivée France du système Télécom. UNIX dans les services opérationnels, par Macintosh J'ai arrété modier cette version en 1991, pour ux raisons:

13 CHAPITRE0. AVANT-PROPOS xiii 1. premièrement, j'ai écrit s adndas avec Microsoft Word ndas avaient pour but d'expliquer les modications apportées pour par Macintosh. la normalisation Ces ad- du langage. 2. uxièmement, s phrases et en j'ai modiant constitué les un polices jeu transparents caractères à partir manière ce à cours le rendre en supprimant foisprojeté.cejeutransparentsestvenumonnouveausupportcoursetjel'ai lisible une fait évoluer manière indépendante. LaTeX J'ai décidé en 1997 reconstituer ce support en utilisant LaTeX, avec plusieurs buts: 1. pourmoi,cefutuntrèsbonapprentissage LaTeX lorsque je veux rédiger un nouveau document; etilconstitueunesorteréférence 2. grâce supportsurleworldwiweb; à s outils comme LaTeX2HTML, je peux permettre aux autres consulter ce 3. j'aimesurélalimitestransparentssurtoutlorsqu'ilssontutilisésparlesélèvescomme support cours. Je etlalevéedanslarelectureetlacorrectioncesupport.jesuisaussirevable,àcernier tiens à souligner la participation active Mmes. Monget et Carpentier, Ms. Conan, Volt moult conseils relatifs à l'utilisation LaTeX2e. GnuFDL s cos En 2003, mais je aussi suis du convaincu savoir, s j'ai vertus placé ce du cours partage sous au licence travers GNU d'internet, Free Documentation non seulement Licence collèguesenseignantsfrancophones.pourl'occasion,j'enaiprottépourassocieràcesupport pour lui permettre continuer à vivre et pour faciliter son utilisation par mes quelques exercices et leurs corrigés qui étaient sur un support séparé. permettent Je tiens à enn ce cours à remercier s'améliorer. les internautes qui m'envoient s correctifs ou s remarques qui

14 xiv

15 Chapitre 1 Historique et présentation Ce chapitre essaye placer le langage C[BK78] dans son contexte historique et technique, manière à approcher l'état d'esprit du langage qui nous permet viner les règles sous-jacentes aulangagesanspourcelaavoiràlesmémoriser. 1.1 Historique Le langage C [DR78] est lié à la conception du système UNIX1 ayant inuencé son développement sont: par les Bell-Labs. Les langages lelangage BCPL le langage M.Richards1967; B CesuxlangagespartagentaveclelangageC: développé aux Bell-Labs les l'usage structures s pointeurs; contrôle; Ces la ux récursivité. vaillaient que langages sur s données prédécesseurs décrites du par C avaient un mot la machine particularité ce qui d'être leur sans donnait type. un Ils gré ne tra- portabilité nul. Le langage C comble ces lacunes en introduisant s types données tels que l'entier, ou le caractère. Les dates marquantes l'histoire du langage C 1970diusionlafamillePDP11. sont les suivantes: 1971 son mot début mémoire du travail est sur 2 octets, le langage il est C, nécessaire car le PDP pour 11 utiliser peut manipuler les fonctionnalités un octet du alors PDP11 que introduire compteparlelangageb,ellesleserontdanssonsuccesseurlec. un type donnée char et un type int. Ces notions type n'étant pas prises en 1972 M. Ritchie. la première version C est écrite en assembleur par Brian W. Kernighan et Dennis Alan Steve Snyr C. Johnson écrit un écrit compilateur et présente C le portable(thèse PCC (Portable MIT). le compilateur le plus répandu. Le PCC a longtemps assuré C sa Compiler). propre norme C'était puisqu'il à l'époque plus simple porter le PCC que réécrire un compilateur C (25 % du co du PCC était modier). à 1987 X3 J-11. début la normalisation du langage par l'ieee avec constitution d'un comité appelé: 1À l'époque UNIX était une marque déposée s laboratoires Bell. Aujourd'hui, c'est venu un nom quasiment commun :-), bien que la marque soit toujours la propriété The Open Group qui pratique s programmes certication.

16 PRÉSENTATION DU LANGAGE sortie réalisation du premier du document document nal normalisé normalisé appelé auprès norme l'iso: ANSI ISO/IEC X première révision la norme ISO/IEC 9899[ISO99]. 9899[ISO89]; B. W. Jusqu'en1987,iln'yavaitpasnorme.Lelivre"TheCProgrammingLanguage"[BK78] langageappelée Kernighan et D. M. Ritchie dénit le langage. Ce livre contient une scription précise du "C Reference [BK88]ainsiquelanormeISO[ISO89]sontàlabasececours. Manual".Celivrequialuiaussiétéremisaugoutdujouren1988 ce langage. Le livre Philippe Dax[Dax92] est lui aussi une bonne introduction pour l'apprentissage 1.2 Présentation du langage manipulent LelangageCestunlangagebasniveaudanslesensoùilpermetl'accèsàsdonnéesque langages les évolués ordinateurs tels que (bits, Fortran, octets, Pascal adresses) ou ADA. et qui ne sont pas souvent disponibles à partir 90%dunoyaudusystèmeUNIXestécritenlangageC.LecompilateurClui-mêmeestécriten LelangageCaétéconçupourl'écrituresystèmesd'exploitationetdulogicielbase.Plus gran pour les partie autres en outils langage la C chaîne ou à partir compilation d'outils générant (assembleur, du langage éditeur C [SJ78]. liens, Il pré-processeur). en est même De plus, tous les utilitaires du système sont écrits en C(shell, outils). typescientiqueouencorepourl'accèsauxbasesdonnées.parlebiaissbasesdonnées, Il est cependant susamment général pour permettre développer s applications variées il personnels, est utilisé tels dans que les Microsoft applications Word ou gestion. Microsoft De nombreux Excel, sont logiciels eux-aussi du écrits domaine à partir s ordinateurs Cousonsuccesseurorientéobjet:C++[Str86]. langage nécessaires Bien que à pouvant la conception être considéré s applications bas niveau, structurées. le langage Cette C caractéristique supporte les structures le range dans base catégorie s langages haut niveau. Il est aussi un s premiers langages orant s possibilités la plusieurs programmation modules. modulaire, Chaque module c'est-à-dire est qu'un un chier programme source que l'on langage peut C compiler peut être constitué autonomepourobtenirunchierobjet.l'ensembleschiersobjetsparticipantsàunprogramme manière doivent être associés pour constituer un chier exécutable. sait Lorsque faire le compilateur nous parlons lui-même. du langage Comme C, dans nous cette le première verrons plus partie, loin nous dans faisons la section référence 1.4, plusieurs à ce que outils gramme, interviennent en un chier dans binaire la transformation exécutable, qui d'un est ensemble le résultat chiers ce que sources, l'on appelle constituant communément un pro- la en compilation. objet, suivies Il serait la réunion plus juste s chiers dire les objets. compilations suivies par les traductions d'assembleur Le peuvent compilateur être traduites langage ecacement C se limite en aux instructions fonctionnalités machine. qui fait La directement règle fonctionnement par le compilateur du compilateur lui-même et C, ce édictée qui ne ci-ssus, peut l'être. permet Essayons détecter d'illustrer ce qui cette est règle par Le compilateur quelques exemples: puler s éléments C est binaires(bits) capable générer ou s s groupes instructions d'éléments machine binaires. qui permettent Il peut donc réaliser mani- s l'intérieur masques pour mots sélectionner machine. s groupes bits, ou encore faire s décalages bits à Il qui permet représentent les manipulations s valeurs entières algébriques ou s (addition, valeurs multiplication, décimales. etc.) groupes d'octets

17 CHAPITRE 1. HISTORIQUE ET PRÉSENTATION 3 Il permet manipuler s caractères en considérant qu'un caractère est représenté par un octetàpartirducoascii2 Ilnepermetpasmanipulerdirectementstableaux.Enparticulier,ilnepermetpar. manipuler tères. Pour directement cela, il faut les faire groupes appel à s caractères fonctions utilisés bibliothèques pour stocker dont les le chaînes nom commence carac- par str De manière comme contradictoire strcat(). collection données groupées à la (structure) règle précénte, par une le collection compilateur données accepte l'aectation type intique, d'une puislanormalisationdulangage.cecis'expliqueparlefaitqu'unestructureestconsidérée dans donnée le langage même comme type. une donnée simple, elle doit donc pouvoir être aectée à une autre ou Pour faire réaliser appel aux s fonctions opérations prédénies plus compliquées, la bibliothèque le programmeur du langage doit écrire C (voir ses propres chapitres fonctions 17). Ces fonctions sont, elles aussi, standardisées. La rédaction la norme a supprimé un 16 petit et problème 11 Digital qui Equipment venait la sur référence lequel sous-jacente ont été conçues aux les opérations premières possibles versions sur du le compilateur processeur C. du Cette PDP machine était cependant susamment générale pour que cela ne transparaisse pas. 1.3 Idées fondamentales c'est Ilestdicileprésenterlesdiérentsconceptsdulangageindépenmmentlesunssautres, chapitres pourquoi, pour n'être certains approfondis concepts, comme que plus la tard. visibilité s variables, sont abordés dans les premiers est Nous montré allons dans décrire la gure les 1.1, principales un programme composantes en C est d'un constitué programme d'un écrit ensemble en langage chiers C. Comme sources il stinés sont aussi à appelés être compilés modules séparément et ce type et à programmation subir une édition est appelé liens programmation commune. Ces chiers modulaire. sources notions visibilités associées à la programmation modulaire sont approfondies dans le chapitre Les 9. programmes Le fait pouvoir manière compiler modulaire chaque en chier regroupant, source dans manière chaque autonome chier source, amène s à concevoir fonctions s manipulent les mêmes variables ou qui participent aux mêmes algorithmes. qui appelle Chacune aussi s module. parties peut être regroupée dans un ou plusieurs chiers langage C que l'on nom Prenonspourexempleunprogrammequienregistreunesérienomsetnotesd'élèves.Chaque rang est note associé et ache à une note. cette liste Une ainsi fois la triée. saisie Puis terminée il trie la le liste programme s élèves trie par la liste ordre s alphabétique élèves par à sedécouperentroispartiescorrespondantàlagure1.1: partir leurs noms et stocke cette liste dans un chier sur disque. Ce type d'application peut la lapartiecalculquidanscecasestuntri(parnoteouparnom)(fichier2.c); partie interactive qui échange les informations avec l'utilisateur(fichier1.c; Chaque la partie chier(voir stockage s g. 1.2) données contient sur disque les éléments une fois suivants ces données dans un triées(fichier3.c). s références à s variables ou s fonctions externes (sous forme ordre quelconque: références décrivent les types s variables ou le prototype s fonctions déclarations). utilisées dans Ces module mais dénies dans d'autres modules; ce s dénitions variables globales et fonctions, qui peuvent être référencées3 dans les 2ASCII : Americans Standard Co for Information Interchange. ISO 646 :1983, Information processing - ISO 7-bit cod character set for information interchange. 3Nous verrons plus en détail l'ensemble s possibilités associées aux déclarations et aux dénitions dans les chapitres 3 et 9.

18 IDÉESFONDAMENTALES Fig. 1.1 Structure d'un programme C Fig. 1.2 Fichier source

19 CHAPITRE 1. HISTORIQUE ET PRÉSENTATION 5 Fig. 1.3 Structure d'une fonction C s autres lignes chiers; Une fonction(fig. directives 1.3) est construite compilation(pour à partir: le pré-processeur). d'une ses interface paramètres; constituée du type et du nom la fonction suivis par les types et les noms La d'unbloc,appeléaussicorpslafonction. fonction main() conçu à partir l'ensemble est particularisée, s chiers source, en ce sens commence que l'exécution par elle. du chier binaire exécutable, Unblocestconstitué: d'une s dénitions accola s ouvrante; s instructions; variables locales au bloc; Une d'une instruction accola peut fermante. être: unbloc4 ouuneexpression5 ; ou une instruction suivied'unpointvirgule( contrôle ot(test, boucle, ;); Nous parlerons en détail s possibilités du pré-processeur rupture dans le chapitre séquence) En-chaîneur passes compilation, L'étu s permet diérentes mieux actions comprendre entreprises lors quel outils ce que proviennent nous appelons les diérentes manière caractéristiques la programmation en langage C. abusive la facilement Nous prenons séparables. le cas Dans s un outils système utilisés type dans UNIX, les systèmes pour obtenir type un UNIX chier car exécutable les actions à partir sont d'unsourcec,lacommanusuelleest cc6 : cc options nom_du_fichier.c tionnement, Ces compilateurs et les options sont en cc. fait Cet s outils en-chaîneurs sert à appeler passes; les diérents nous allons utilitaires voir l'usage, nécessaires le fonc- la transformation d'un programme C en un chier exécutable. L'en-chaîneur passes à cc uvre cinq utilitaires: met en lecompilateurc,quenousappellerons le pré-processeur, que nous appellerons cpp; c0+c1 carilpeutêtredécoupéenuxparties; 4On voit apparaître une dénition récursive à l'intérieur du langage : à savoir un bloc contient s instructions qui peuvent être s blocs qui contiennent s instructions,... 5Les expressions sont explicitées dans le chapitre 5. 6cc ou tout autre compilateur comme gcc.

20 EN-CHAÎNEUR DE PASSES Fig. 1.4Schémafonctionnement cc

21 CHAPITRE 1. HISTORIQUE ET PRÉSENTATION 7 l'optimiseur l'assembleur, que co, nous appelé nommerons c2; l'éditeurliens,dontlenomlepluscourantest as; La gure1.4 donne un organigramme s diérentes ld. passes. Les chiers temporaires 1 à 3 décrits dans cette actions gure entreprises sont utilisés par par un en-chaîneur les outils pour stocker les données intermédiaires nécessaires à la traduction s diérents cos Pré-processeur pilateur. Le pré-processeur C'est un manipulateur ou pré-compilateur chaînes est un caractères. utilitaire Il qui retire traite les le parties chier source commentaires, avant le com- sont comprises entre qui /* et */. Il prend aussi en compte les lignes du texte source ayant un # première colonne pour créer le texte que le compilateur analysera. Ses possibilités sont trois en ordres(voirchap.15): inclusion dénition d'alias chiers; sélection parties et texte. macro-expressions; Compilateur dantes. Le compilateur Le compilateur lit ce lit que le texte génère source le pré-processeur une seule fois et du crée début les du lignes chier d'assembleur à la n. Cette correspon- conditionne les contrôles qu'il peut faire, et explique pourquoi toute variable ou fonction doit lecture déclarée avant d'être utilisée. être Optimiseur co sséquencesd'instructionsparsinstructionsplussophistiquéesetpropresauprocesseur.cette L'optimiseur co élimine les parties du co assembleur qui ne sont pas utiles. Il remplace opération premières versions donne un co compilateur, plus compact il est et arrivé plus que rapi. sur certaines Ensuite, machines il optimise l'optimisation les sauts. Dans crée les petits problèmes qui se résument par: après l'optimisation, le programme ne marche plus Assembleur et génère L'assembleur un chier prend en format le co relogeable. généré par Ce le compilateur, chier possè éventuellement s références modié insatisfaites par l'optimiseur, résolues par l'éditeur liens. Sur les machines utilisant un système type UNIX, ce qui chier seront suxépar est.o Éditeur liens module L'éditeur chargeable. liens Il se prend sert le bibliothèques ou les chiers pour en format résoudre relogeable les références et les indénies, associe pour en particulier créer un la bibliothèque démarrage du standard(libc.a). programme. Il utilise aussi un module spécial, crt0.o, qui contient le co dans PardéfautsurunsystèmetypeUNIX,l'éditeurlienmetlerésultatl'éditionliens un chier qu'il appelle a.out. 7De mauvaises langues prétennt que sur d'autres types système un mauvais esprit aurait osé les suxer par.obj

22 EN-CHAÎNEUR DE PASSES Quelques options cc passées. La gure1.4 Les donne un schéma fonctionnement cc, relativement aux options qui lui sont options l'enchaineur passes sont précédées d'un tiret8 les plus couramment utilisées: (-). Voici les options -c provoque la génération d'un module objet non exécutable, il s'arrête avant l'édition liens. cc -c toto.c toto.o -E lance par le.i. pré-processeur seul, cpp, qui écrit sur la sortie standard ou génère un chier suxé cc -E toto.c stdout ou toto.i -S génère suxé le par chier.s. assembleur après passage du pré-processeur et du compilateur. Le chier est cc -S toto.c toto.s -O optimise le co généré(utilisation c2). -o nom donnelenomauchierexécutableaulieu a.out. cc -o toto toto.c toto -v option bavar, cc annonce ce qu'il fait. Deux options sont utiles sur le compilateur GNU gcc correspondant à la norme ANSI: pour forcer la vérication d'une syntaxe -ansi sans avec extensions cette option le langage compilateur correspondant se comporte au C comme GNU; un compilateur langage C ANSI -pedantic ansi; cette option man au compilateur refuser la compilation programme non -Wall rencontre cette option s constructions augmente le nombre dangereuses. messages d'alerte générés par le compilateur lorsqu'il L'utilisation compilateur gcc. ces options est recommandée lors l'apprentissage du langage C en utilisant le 8Selon la tradition du système UNIX. c ChristianBac

Support de Cours de Langage C. Christian Bac

Support de Cours de Langage C. Christian Bac Support de Cours de Langage C Christian Bac 15 février 2013 ii Table des matières Avant-propos xi 1 Historique et présentation 1 1.1 Historique........................................... 1 1.2 Présentation

Plus en détail

Programmation Structurée en Langage C

Programmation Structurée en Langage C École Centrale Marseille Programmation Structurée en Langage C Stéphane Derrode Mathématique et Informatique Révision 2.5, 2006. Table des matières 1 En guise d'introduction... 7 1.1 Quelques repères

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

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

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

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

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

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

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

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

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

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

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

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

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

Conception de circuits numériques et architecture des ordinateurs

Conception de circuits numériques et architecture des ordinateurs Conception de circuits numériques et architecture des ordinateurs Frédéric Pétrot Année universitaire 2014-2015 Structure du cours C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 Codage des nombres en base 2, logique

Plus en détail

Cours Langage C/C++ Programmation modulaire

Cours Langage C/C++ Programmation modulaire Cours Langage C/C++ Programmation modulaire Thierry Vaira BTS IRIS Avignon tvaira@free.fr «v0.1 Rappel Programmation modulaire (1/2) Le découpage d'un programme en sous-programmes est appelée programmation

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

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

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

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

TP 1 : 1 Calculs en binaire, octal et hexadécimal

TP 1 : 1 Calculs en binaire, octal et hexadécimal Univ. Lille 1 - Licence Informatique 2ème année 2013-14 Objectifs du TP Ce TP a pour but Codage de l'information TP 1 : 1. de découvrir quelques opérations logiques sur les nombres 2. et quelques formats

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

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

Télécom Nancy Année 2013-2014

Télécom Nancy Année 2013-2014 Télécom Nancy Année 2013-2014 Rapport 1A Ajout du langage C dans la Programmer's Learning Machine GIANNINI Valentin Loria 615, rue du Jardin Botanique 54600, Villers-Lès-Nancy Maître de stage : QUINSON

Plus en détail

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

Travaux pratiques. Compression en codage de Huffman. 1.3. Organisation d un projet de programmation Université de Savoie Module ETRS711 Travaux pratiques Compression en codage de Huffman 1. Organisation du projet 1.1. Objectifs Le but de ce projet est d'écrire un programme permettant de compresser des

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

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

MICROINFORMATIQUE NOTE D APPLICATION 1 (REV. 2011) ARITHMETIQUE EN ASSEMBLEUR ET EN C Haute Ecole d Ingénierie et de Gestion Du Canton du Vaud MICROINFORMATIQUE NOTE D APPLICATION 1 (REV. 2011) ARITHMETIQUE EN ASSEMBLEUR ET EN C Programmation en mode simulation 1. DOCUMENTS DE RÉFÉRENCE...

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

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

Centre CPGE TSI - Safi 2010/2011. Algorithmique et programmation : Algorithmique et programmation : STRUCTURES DE DONNÉES A. Structure et enregistrement 1) Définition et rôle des structures de données en programmation 1.1) Définition : En informatique, une structure de

Plus en détail

Généralités sur le Langage Java et éléments syntaxiques.

Généralités sur le Langage Java et éléments syntaxiques. Généralités sur le Langage Java et éléments syntaxiques. Généralités sur le Langage Java et éléments syntaxiques....1 Introduction...1 Genéralité sur le langage Java....1 Syntaxe de base du Langage...

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

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

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

Annexe : La Programmation Informatique

Annexe : La Programmation Informatique GLOSSAIRE Table des matières La Programmation...2 Les langages de programmation...2 Java...2 La programmation orientée objet...2 Classe et Objet...3 API et Bibliothèque Logicielle...3 Environnement de

Plus en détail

I. Introduction aux fonctions : les fonctions standards

I. Introduction aux fonctions : les fonctions standards Chapitre 3 : Les fonctions en C++ I. Introduction aux fonctions : les fonctions standards A. Notion de Fonction Imaginons que dans un programme, vous ayez besoin de calculer une racine carrée. Rappelons

Plus en détail

Cours Informatique 1. Monsieur SADOUNI Salheddine

Cours Informatique 1. Monsieur SADOUNI Salheddine Cours Informatique 1 Chapitre 2 les Systèmes Informatique Monsieur SADOUNI Salheddine Un Système Informatique lesystème Informatique est composé de deux parties : -le Matériel : constitué de l unité centrale

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

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 C. École Nationale Supérieure de Techniques Avancées. Pierre-Alain Fouque et David Pointcheval

Programmation en C. École Nationale Supérieure de Techniques Avancées. Pierre-Alain Fouque et David Pointcheval École Nationale Supérieure de Techniques Avancées Programmation en C Pierre-Alain Fouque et David Pointcheval E-mail : Pierre-Alain.Fouque@ens.fr Web : http://www.di.ens.fr/~fouque/ Table des matières

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

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

Chapitre 1 : La gestion dynamique de la mémoire

Chapitre 1 : La gestion dynamique de la mémoire Chapitre 1 : La gestion dynamique de la mémoire En langage C un programme comporte trois types de données : Statiques; Automatiques ; Dynamiques. Les données statiques occupent un emplacement parfaitement

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

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

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

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

Base de l'informatique. Généralité et Architecture Le système d'exploitation Les logiciels Le réseau et l'extérieur (WEB)

Base de l'informatique. Généralité et Architecture Le système d'exploitation Les logiciels Le réseau et l'extérieur (WEB) Base de l'informatique Généralité et Architecture Le système d'exploitation Les logiciels Le réseau et l'extérieur (WEB) Généralité Comment fonctionne un ordinateur? Nous définirons 3 couches Le matériel

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

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

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

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

ACTIVITÉ DE PROGRAMMATION

ACTIVITÉ DE PROGRAMMATION ACTIVITÉ DE PROGRAMMATION The purpose of the Implementation Process is to realize a specified system element. ISO/IEC 12207 Sébastien Adam Une introduction 2 Introduction Ø Contenu Utilité de l ordinateur,

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

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

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

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère L'héritage et le polymorphisme en Java Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère En java, toutes les classes sont dérivée de la

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

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

Langages et Concepts de Programmation Introduction à la programmation en langage C Langages et Concepts de Programmation Introduction à la programmation en langage C Cours 1A 2013-2014 Jean-Jacques Girardot, Marc Roelens girardot@emse.fr, roelens@emse.fr Septembre 2013 École Nationale

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

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

Compilation (INF 564)

Compilation (INF 564) Présentation du cours Le processeur MIPS Programmation du MIPS 1 Compilation (INF 564) Introduction & architecture MIPS François Pottier 10 décembre 2014 Présentation du cours Le processeur MIPS Programmation

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

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

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

É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

INITIATION A LA PROGRAMMATION

INITIATION A LA PROGRAMMATION 2004-2005 Université Paris Dauphine IUP Génie Mathématique et Informatique INITIATION A LA PROGRAMMATION PROCEDURALE, A L'ALGORITHMIQUE ET AUX STRUCTURES DE DONNEES PAR LE LANGAGE C Maude Manouvrier La

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

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

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

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

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

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

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

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

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

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

Chapitre 2. Classes et objets

Chapitre 2. Classes et objets Chapitre 2: Classes et Objets 1/10 Chapitre 2 Classes et objets Chapitre 2: Classes et Objets 2/10 Approche Orientée Objet Idée de base de A.O.O. repose sur l'observation de la façon dont nous procédons

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

Rappels d architecture

Rappels d architecture Assembleur Rappels d architecture Un ordinateur se compose principalement d un processeur, de mémoire. On y attache ensuite des périphériques, mais ils sont optionnels. données : disque dur, etc entrée

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

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

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

Langage Java. Classe de première SI

Langage Java. Classe de première SI Langage Java Table des matières 1. Premiers pas...2 1.1. Introduction...2 1.2. Mon premier programme...2 1.3. Les commentaires...2 2. Les variables et les opérateurs...2 3. La classe Scanner...3 4. Les

Plus en détail

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

Cours de programmation avancée. Le langage C. Université du Luxembourg 2005 2006 Université du Luxembourg 2005 2006 Cours de programmation avancée. Le langage C Sébastien Varrette Version : 0.4 Nicolas Bernard 2 Table des matières

Plus en détail

INF2015 Développement de logiciels dans un environnement Agile. Examen intra 20 février 2014 17:30 à 20:30

INF2015 Développement de logiciels dans un environnement Agile. Examen intra 20 février 2014 17:30 à 20:30 Examen intra 20 février 2014 17:30 à 20:30 Nom, prénom : Code permanent : Répondez directement sur le questionnaire. Question #1 5% Quelle influence peut avoir le typage dynamique sur la maintenabilité

Plus en détail

REPUBLIQUE ALGERIENNE DEMOCRATIQUE ET POPULAIRE UNIVERSITE M HAMED BOGARA DE BOUMERDES

REPUBLIQUE ALGERIENNE DEMOCRATIQUE ET POPULAIRE UNIVERSITE M HAMED BOGARA DE BOUMERDES REPUBLIQUE ALGERIENNE DEMOCRATIQUE ET POPULAIRE MINISTERE DE L ENSEIGNEMENT SUPERIEUR ET DE LA RECHERCHE SCIENTIFIQUE UNIVERSITE M HAMED BOGARA DE BOUMERDES FACULTE DES SCIENCES - DEPARTEMENT PHYSIQUE

Plus en détail

Éléments d'architecture des ordinateurs

Éléments d'architecture des ordinateurs Chapitre 1 Éléments d'architecture des ordinateurs Machines take me by surprise with great frequency. Alan Turing 1.1 Le Hardware Avant d'attaquer la programmation, il est bon d'avoir quelques connaissances

Plus en détail

COURS DE LANGAGE C. DIAO Oumar. oumar.diao@univ-rennes1.fr. Université de Rennes 1. Master 1

COURS DE LANGAGE C. DIAO Oumar. oumar.diao@univ-rennes1.fr. Université de Rennes 1. Master 1 COURS DE LANGAGE C DIAO Oumar oumar.diao@univ-rennes1.fr Université de Rennes 1 Master 1 théorie de l'information & cryptographie analyse numérique & modélisation Année universitaire 20112012 1 Table des

Plus en détail

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

BTS IRIS Cours et Travaux Pratiques. Programmation C. A. Lebret, TSIRIS, Lycée Diderot, 1995/06. en conformité avec le référentiel du BTS IRIS BTS IRIS Cours et Travaux Pratiques Programmation C A. Lebret, TSIRIS, Lycée Diderot, 1995/06 en conformité avec le référentiel du BTS IRIS Activité Codage et Réalisation Tâches T3.3, T3.4 et T3.5 Temps

Plus en détail

length : A N add : Z Z Z (n 1, n 2 ) n 1 + n 2

length : A N add : Z Z Z (n 1, n 2 ) n 1 + n 2 1 Univ. Lille1 - Licence info 3ème année 2013-2014 Expression Logique et Fonctionnelle... Évidemment Cours n o 1 : Introduction à la programmation fonctionnelle 1 Introduction La programmation fonctionnelle

Plus en détail

CRÉER UNE BASE DE DONNÉES AVEC OPEN OFFICE BASE

CRÉER UNE BASE DE DONNÉES AVEC OPEN OFFICE BASE CRÉER UNE BASE DE DONNÉES AVEC OPEN OFFICE BASE 2 ème partie : REQUÊTES Sommaire 1. Les REQUÊTES...2 1.1 Créer une requête simple...2 1.1.1 Requête de création de listage ouvrages...2 1.1.2 Procédure de

Plus en détail

Partie 1. Professeur : Haouati Abdelali. CPGE Lycée Omar Ibn Lkhattab - Meknès www.haouati.com haouaticpge@gmail.com

Partie 1. Professeur : Haouati Abdelali. CPGE Lycée Omar Ibn Lkhattab - Meknès www.haouati.com haouaticpge@gmail.com Partie 1 Professeur : Haouati Abdelali CPGE Lycée Omar Ibn Lkhattab - Meknès www.haouati.com haouaticpge@gmail.com Partie I : Généralités et algorithmique de base 1. Environnement matériel et logiciel

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

Permis de conduire info

Permis de conduire info Permis de conduire info Questions théoriques DB - 6 octobre 2014 1 Module(s) 1 1. M1.- L'affirmation suivante est-elle vraie ou fausse? "Un ordinateur ne manipule que des données binaires. Il ne comprend

Plus en détail

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

Algorithmique & Langage C IUT GEII S1. Notes de cours (première partie) cours_algo_lgc1.17.odp. Licence Licence Algorithmique & Langage C Paternité - Pas d'utilisation Commerciale Partage des Conditions Initiales à l'identique 2.0 France Vous êtes libres : * de reproduire, distribuer et communiquer cette

Plus en détail

SYSTÈME DE GESTION DE FICHIERS

SYSTÈME DE GESTION DE FICHIERS SYSTÈME DE GESTION DE FICHIERS - DISQUE 1 Les couches logiciels réponse requête Requêtes E/S Système E/S Pilote E/S Interruptions utilisateur traitement S.E. commandes S.E. S.E. matériel Contrôleur E/S

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

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