TP Algorithmique Avancée numéro 1 bis

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

Download "TP Algorithmique Avancée numéro 1 bis"

Transcription

1 TP Algorithmique Avancée numéro 1 bis Licence Informatique - 2 me année année durée : 3 heures L objectif de ce TP est d étudier quelques aspects des langages C/C++, non directement liés aux structures de données, ni à l algorithmique avancée. Il est à réaliser de manière optionnelle, si vous terminez plus rapidement le TP précédent ou les TPs à venir. Préliminaires Créez, dans le dossier AAC, un sous-dossier nommé TP1bis, dans lequel vous développerez l ensemble des exercices de ce TP. 1 Génération du fichier d entiers Dans le TP précédent, des fichiers de et entiers vous étaient fournis, pour effectuer vos tests de performance. Dans cette première partie, vous allez développer un programme permettant de générer des fichiers de ce type. Génération d un nombre aléatoire Les fichiers à générer doivent contenir un certain nombre d entiers, qui seront générés aléatoirement. Pour ce faire, la bibliothèque cstdlib fournit une fonction nommée rand(), qui permet de retourner un nombre entier aléatoire compris entre 0 et RAND MAX. RAND MAX est le nom d une constante entière, également définie dans cstdlib, qui représente donc le plus gand entier qui peut être retourné par cette fonction 1. Pout obtenir un nombre compris entre 0 et une autre valeur, inférieure ou égale à RAND MAX, une manière assez simple d opérer est de calculer le reste de la division entière de la valeur retournée par rand(), par la valeur suivante de la valeur maximale souhaitée. Par exemple, si on souhaite obtenir un nombre aléatoire compris entre 0 et 99, il suffit d utiliser l opération rand()%100. Notez qu à chaque nouvel appel de rand(), un nouvel entier aléatoire est renvoyé. Question 1 Créer un fichier nommé genficint.cpp, y inclure les bibliothèques iostream et cstdlib et y définir la fonction main. Dans cette fonction, écrire le code permettant de générer et afficher 5 entiers aléatoires compris entre 0 et 100. Un dernier entier négatif devra être affiché, pour être compatible avec l application développée dans le TP précédent. Compiler votre application de telle sorte que l exécutable porte le nom genficint, puis tester celle-ci. Question 2 Votre application affiche ses résultats sur l écran. Or, on souhaite pouvoir ranger ceux-ci dans un fichier, qui pourra ensuite être utilisé par l application développée dans le TP précédent. Une manière simple de ranger les entiers générés dans un fichier, sans passer par du code spécifique, est d utiliser la forme inverse de la redirection vue dans le TP précédent. Ainsi, la commande :./genficint > monfichierdesortie.txt 1. La valeur de cette constante dépend de différents paramètres, tels que le compilateur utilisé ou la plateforme matérielle cible. À titre d exemple, sur une plateforme 64 bits et pour une version 4.8.4, sa valeur est de De manière générale, le standard du langage assure que la plus petite valeur possible de RAND MAX sera de

2 indiquera au système, via l opérateur de redirection >, que tout ce qui doit être affiché par l application ne doit pas être envoyé à l écran, mais vers le fichier dont le nom suit. Tester cet opérateur avec un nom de fichier à votre convenance. À noter que cet opérateur crée le fichier s il n existe pas, ou remplace son contenu par les données générées si le fichier existait déjà. Si vous souhaitez ajouter des données à un fichier existant, il faut utiliser l opérateur de redirection >>, qui permet de concaténer le contenu du fichier existant avec les nouvelles valeurs générées. Question 3 Vous avez dû noter qu à chaque fois que vous relanciez votre application, vous obteniez les mêmes 5 valeurs entières. Ceci est lié au fait que le générateur de nombres aléatoires interne au système est réinitialisé automatiquement de manière identique à chaque fois que l application démarre. De manière plus précise, ce générateur correspond à l évaluation de la formule mathématique d une suite v n, pour laquelle les nombres renvoyés par rand() démarrent systématiquement à l indice 0 : le premier appel à rand() retourne la valeur v 0, le second retourne la valeur v 1, et ainsi de suite. Pour pouvoir récupérer une suite d entiers différents à chaque nouvelle exécution, il est nécessaire d initialiser différemment le générateur de nombres aléatoires au lancement de l application. Une manière simple d effectuer cela est d utiliser la ligne d instruction suivante, au début de la fonction main : srand(time(null)); // initialisation du générateur de nombres aléatoires avec : srand(n) la fonction permettant d initialiser le générateur. Le paramètre n est un entier appelé graine, qui permet de changer l indice de la suite à partir duquel les nombres aléatoires sont calculés ; time(null) la fonction (définie dans ctime) qui, ici, va retourner le nombre de secondes écoulées depuis le 1er janver Modifier votre code en conséquence et vérifier que cela fonctionne. Modifier la fonction main de manière à ce qu elle demande d abord à l utilisateur le nombre de valeurs à générer et la valeur maximale autorisée. Lors du test de votre application, ne redirigez pas les résultats vers un fichier. 2 Passage de paramètre à la fonction main Relancez votre application, en redirigeant cette fois les résultats vers un fichier. Vous notez que votre application semble bloquée. Entrez un entier qui correspond au nombre de valeurs à générer, puis la valeur maximale autorisée. Vous notez que votre programme s arrête, mais qu il n a absolument rien affiché. Ceci est normal, puisque vous avez redirigé les affichages dans un fichier. Examinez à présent le contenu du fichier vers lequel vous avez redirigé les affichages : vous notez que les valeurs générées s y trouvent bien, mais qu elles sont précédées par les messages d interrogation à destination de l utilisateur. Lorsque l on redirige ce qui est affiché vers un fichier, tout y est envoyé, ce qui pose 2 problèmes ici : 1. l utilisateur ne voit plus les messages qui lui sont destinés ; 2. le fichier généré n est plus utilisable tel quel, puisqu il contient autre chose qu une liste d entiers. Pour pallier ce problème, nous allons voir comment passer des paramètres à un programme directement depuis la ligne de commande, de manière à ne pas avoir à interroger l utilisateur sur la valeur du nombre d entiers à générer et sur leur valeur maximale. Etape 1 Modifiez vos sources de manière à ajouter les paramètres suivants à la fonction main : int main(int argc, char*argv[]) avec : argc le nombre d arguments (argument count) passés sur la ligne de commande (y compris le nom de la commande) ; 2

3 argv un tableau de chaînes de caractères, chaque chaîne représentant l un des arguments de la ligne de commande (argument value). Ces paramètres sont les paramètres standards à utiliser lorsque l on souhaite passer des paramètres à la fonction main 2. Le principe de leur fonctionnement est illustré sur la figure 1 ci-dessous, sur un exemple mettant en jeu une application nommée essai. Figure 1 Passage de paramètres dans la fonction main. Lorsque l utilisateur entre la commande essai toto , le système lance l exécutable de l application nommée essai et lui passe 4 (argc) arguments dans le tableau argv. Le premier (case 0 du tableau) correspond toujours au nom de la commande lancée, et les suivants correspondent à chacun des mots et/ou valeurs fournis derrière le nom de la commande. Etape 2 Dans le programme, l utilisateur peut récupérer le nombre d arguments passé, qui sera toujours au moins égal à 1 (le nom de la commande) et les analyser pour déterminer ce qu il doit en faire. Modifiez votre fichier source de manière à : 1. commenter la partie dédiée à la saisie, au calcul et à l affichage des valeurs entières ; 2. ajouter les lignes suivantes : cout << "nb arguments = " << argc << endl; for(int i=0; i<argc; i++){ cout << i << " : " << argv[i] << endl; } Recompilez l application et testez là en passant différents paramètres sur la ligne de commande. Etape 3 Modifiez votre fichier source de telle sorte qu il récupère le nombre d entiers à générer et la valeur maximale autorisée sur la ligne de commande. On précise les points suivants : le contenu d une case du tableau argv peut être transformé en valeur entière (sous réserve de ne contenir que des chiffres), à l aide de la fonction atoi de la bibliothèque ctype. Par exemple :./genficint int i=atoi(argv[1]); => i vaut int j=atoi(argv[2]), => j vaut 200 si les deux paramètres correspondant aux valeurs à récupérer ne sont pas fournis, le programme devra s arrêter en affichant un message d erreur. Il ne vous reste plus qu à décommenter la partie générant et affichant les valeurs entières aléatoires et à rediriger l affichage vers un fichier pour stocker la liste de ces entiers. 3 Lecture dans un fichier Dans cette partie, vous allez étudier la manière de récupérer des informations dans un fichier texte 3 sans passer par les redirections, mais en accédant directement aux données. 2. Il est également possible de passer la liste des variables d environnement, mais cela ne sera pas vu ici. 3. Lire des données dans un fichier au format binaire est un peu différent et ne sera pas abordé ici. 3

4 Question 1 Créez un fichier nommé identite.cpp dans votre dossier TP1bis. Dans la fonction main, déclarez un vecteur de string. Ajoutez dans le fichier les deux fonctions suivantes : void lirenoms(vector<string> &v), dont l objectif est de lire une suite de noms de famille et de les stocker dans le vecteur passé en paramètre. Ces noms de famille seront lus, par redirection de l entrée standard, dans le fichier noms.txt fourni avec cet énoncé. On précise que le dernier nom stocké dans le fichier est Lejeune, afin que vous puissiez prévoir un test d arrêt pour la lecture ; void ecrirenoms(vector<string> v), dont l objectif est d afficher à l écran le contenu du vecteur passé en paramètre, qui est supposé contenir les noms de famille lus. Compilez et testez votre application. 3.1 Question 2 On souhaiterait à présent pouvoir également créer un vecteur contenant une liste de prénoms. Ces prénoms sont contenus dans le second fichier associé à cet énoncé, nommé prenoms.txt. Malheureusement, le mécanisme de redirection de l entrée standard ne peut pas accepter plusieurs fichiers différents. Il n est donc plus utilisable dans notre cas, pour lequel le contenu de deux fichiers doit être relu. Vous allez donc modifier votre application, en fonction des explications données ci-après, pour qu elle se passe de ce mécanisme et relise les données directement dans les fichiers. Explications Pour accéder au contenu d un fichier texte, plusieurs étapes successives sont nécessaires : 1. déclarer une variable de type ifstream (input file stream), qui va permettre d accéder au fichier. Ce type est déclaré dans la bibliothèque fstream ; 2. ouvrir le fichier. Cela se fait via la méthode open de la variable de type ifstream ; 3. lire dans le fichier. Comme pour cin que vous utilisez dejà (qui est une variable de type ifstream automatiquement initialisée au début de toute application), il suffit d utiliser l opérateur >> ; 4. refermer le fichier lorsque les lectures sont terminées, via la méthode close de la variable de type ifstream. Exemple Le code qui suit montre un exemple de ces différentes étapes, en relisant une chaîne de caractères dans un fichier. Notez les paramètres utilisés dans la méthode open, qui correspondent respectivement au nom du fichier à ouvrir et à son mode d ouverture (ici, en mode lecture). #include <iostream> #include <fstream> using namespace std; int main () { ifstream ifs; string s; // ouverture du fichier en mode lecture ifs.open ("test.txt", ifstream::in); // lecture d une cha^ıne dans le fichier ifs >> s; // affichage de la cha^ıne lue cout << s; // fermeture du fichier ifs.close(); } return 0; Application Modifiez le code de votre fonction lirenoms, de telle sorte qu elle relise les données dans le fichier noms.txt. Compilez et testez le fonctionnement de votre application. 4

5 Question 3 L un des inconvenients actuels de votre application est qu elle se doit de connaître le dernier nom du fichier pour pouvoir s arrêter. Il est possible de se passer de cette information, en utilisant la fonction eof() (end of file), utilisable depuis la variable de type ifstream utilisée pour la lecture. Cette méthode retourne true si la fin de fichier a été rencontrée lors d une tentative de lecture précédente. En utilisant cette méthode, modifiez votre fonction lirenoms de telle sorte que vous n ayez plus à tester la chaîne lue pour savoir si vous devez stopper la lecture. Un autre inconvénient de votre code actuel est que le nom du fichier à relire est codé de manière littérale dans votre source. Impossible donc de charger un autre fichier. Pour résoudre ce problème, vous allez modifier votre code de telle sorte que le prototype de la fonction lirenoms soit le suivant : void lirenoms(vector<string> &v, const char *filename); Le second paramètre (une chaîne de caractères) représentera le nom du fichier à relire. Modifiez en conséquence l appel à la méthode open. Vous modifierez ensuite votre fonction main de telle sorte qu elle accepte le nom du fichier à relire comme paramètre. La ligne de commande pour lancer votre application sera alors :./identite noms.txt On souhaite à présent que l application puisse également charger le fichier prenoms.txt et stocke tous les prénoms qu il contient dans un second vecteur. Le programme devra être lancé par la commande suivante :./identite noms.txt prenoms.txt Remarque Avant de démarrer le développement de cette fonctionnalité, vous vous poserez la question de savoir quelles sont les parties qu il est réellement nécessaire de coder... Question 5 Les deux fichiers à charger sont susceptibles de contenir la même valeur (nom ou prénom) en plusieurs exemplaires. On souhaite que les vecteurs qui sont remplis lors de la lecture ne comportent qu un seul exemplaire de chaque nom et prénom. 1. écrire le code de la fonction suivante, qui retourne true si la chaîne passée en premier paramètre est présente dans le vecteur passé en second paramètre ; bool estdejapresent(string s, vector<string> &v); 2. à l aide de cette fonction, modifiez votre fonction de lecture des données, de manière à assurer qu une donnée ne soit ajoutée que si elle n est pas déjà présente. 4 Génération d un fichier d identités On souhaite à présent, à partir des deux vecteurs de noms et prénoms chargés, générer un fichier comportant des identités aléatoires. On propose la structure suivante pour représenter une identité : typedef struct { string nom; string prenom; } identite; 5

6 Question 1 1. Après avoir ajouté cette structure à votre fichier source, déclarez un vecteur de type identité dans votre fonction main ; 2. Ecrivez une fonction permettant l affichage d un vecteur de type identite ; 3. Ecrivez le code de la fonction suivante : void genereridentite(vector<string> vn, vector<string> vp, vector<identite> &vi, int nbi); avec : vn un vecteur de noms ; vp un vecteur de prénoms ; vi le vecteur d identités à remplir ; nbi le nombre d identité à générer. Le nom et le prénom de chaque nouvelle identité seront choisis aléatoirement dans les vecteurs correspondants. 4. Modifiez votre fonction main pour appeler ces deux fonctions, et testez les en vous limitant pour le moment à un petit nombre d identités. Le fichier d identités peut alors être généré en redirigeant la sortie standard vers le fichier cible. Question 2 Modifiez votre fichier source pour que le nombre d identités à générer puisse être passé comme troisième paramètre sur la ligne de commande. Question 3 Le nombre de noms et de prénoms disponibles dans les fichiers fournis est limité. Ceci implique qu il est possible d avoir plusieurs fois la même identité lors de la génération aléatoire de celles-ci, la probabilité que cela survienne augmentant avec la croissance du nombre d identité à générer. Ecrivez la fonction suivante, qui renvoit true si une identité identique (même nom et même prénom) est déjà présente dans le vecteur d identité : bool identitedejapresente(identite id, vector<identite> vi); Utilisez ensuite cette fonction pour vous assurer qu il n y aura pas d identités identiques dans le vecteur généré. Remarque Le nombre de noms et prénoms uniques présents dans les deux fichiers texte permet d obtenir au maximum un peu plus de identités différents. Au-delà, vous ne parviendrez plus à générer une identité inexistante et votre programme bouclera indéfiniment. À noter que plus vous souhaiterez un nombre d identités proche de cette borne, et plus la probabilité que l identité générée existe augmentera, avec pour corollaire une augmentation importante du temps de calcul... Effectuez toutes les modifications nécessaires à l ajout d un âge (compris aléaoirement entre 7 et 77 ans) à une identité. Ce critère interviendra également lors de la comparaison de deux identités, sachant que deux personnes portant les mêmes noms et prénoms, mais ayant un âge différent, sont considérées comme différentes. Question 5 Ecrire l une des fonctions de tris vues dans le TP précédent, de manière à ce qu elle puisse trier des identités par ordre croissant, en considérant le nom de famille comme le critère principal, le prénom comme critère secondaire et enfin l âge comme dernier critère. 6

1.6- Génération de nombres aléatoires

1.6- Génération de nombres aléatoires 1.6- Génération de nombres aléatoires 1- Le générateur aléatoire disponible en C++ 2 Création d'un générateur aléatoire uniforme sur un intervalle 3- Génération de valeurs aléatoires selon une loi normale

Plus en détail

Le prototype de la fonction main()

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

Plus en détail

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

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

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

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

Plus en détail

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

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

Plus en détail

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

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

Plus en détail

Programmation système en C/C++

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

Plus en détail

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

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

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

Plus en détail

TP : Gestion d une image au format PGM

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

Plus en détail

Arguments d un programme

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

Plus en détail

Introduction au pricing d option en finance

Introduction au pricing d option en finance Introduction au pricing d option en finance Olivier Pironneau Cours d informatique Scientifique 1 Modélisation du prix d un actif financier Les actions, obligations et autres produits financiers cotés

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

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

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

Plus en détail

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

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

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

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

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

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

Licence Bio Informatique Année 2004-2005. Premiers pas. Exercice 1 Hello World parce qu il faut bien commencer par quelque chose...

Licence Bio Informatique Année 2004-2005. Premiers pas. Exercice 1 Hello World parce qu il faut bien commencer par quelque chose... Université Paris 7 Programmation Objet Licence Bio Informatique Année 2004-2005 TD n 1 - Correction Premiers pas Exercice 1 Hello World parce qu il faut bien commencer par quelque chose... 1. Enregistrez

Plus en détail

Suivant les langages de programmation, modules plus avancés : modules imbriqués modules paramétrés par des modules (foncteurs)

Suivant les langages de programmation, modules plus avancés : modules imbriqués modules paramétrés par des modules (foncteurs) Modularité Extensions Suivant les langages de programmation, modules plus avancés : modules imbriqués modules paramétrés par des modules (foncteurs) généricité modules de première classe : peuvent être

Plus en détail

Compression de Données - Algorithme de Huffman Document de Conception

Compression de Données - Algorithme de Huffman Document de Conception ROLLET Samuel SALLE Jennifer Compression de Données - Algorithme de Huffman Document de Conception Projet d'algorithmique et Structure des Données 1 SOMMAIRE 1. Domaine d application....4 1.1 Objectifs

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

Programmation système de commandes en C

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

Plus en détail

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

Programme Compte bancaire (code)

Programme Compte bancaire (code) using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; Programme Compte bancaire (code) namespace compte_bancaire /// Classe Program public

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

INFO-F-404 : Techniques avancées de systèmes d exploitation

INFO-F-404 : Techniques avancées de systèmes d exploitation Nikita Veshchikov e-mail : nikita.veshchikov@ulb.ac.be téléphone : 02/650.58.56 bureau : 2N8.213 URL : http://student.ulb.ac.be/~nveshchi/ INFO-F-404 : Techniques avancées de systèmes d exploitation Table

Plus en détail

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

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

Plus en détail

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

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

Plus en détail

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

Premiers Pas en Programmation Objet : les Classes et les Objets

Premiers Pas en Programmation Objet : les Classes et les Objets Chapitre 2 Premiers Pas en Programmation Objet : les Classes et les Objets Dans la première partie de ce cours, nous avons appris à manipuler des objets de type simple : entiers, doubles, caractères, booléens.

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

Programmation en C/C++

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

Plus en détail

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

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

Plus en détail

et Programmation Objet

et Programmation Objet FACULTE POLYTECHNIQUE DE MONS Service d Informatique et Programmation Objet Mohammed Benjelloun 2 ème Bachelier Année académique 2008-2009 Table des matières Avant-propos--------------------------------------------------------------------------

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

Approche Contract First

Approche Contract First Exemple HelpDesk Approche Contract First Développement d un premier web service en utilisant l approche contract first (ou WSDL First) Écriture du wsdl avant d écrire le code java Autre possibilité implementation

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

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

Flux de données Lecture/Ecriture Fichiers

Flux de données Lecture/Ecriture Fichiers Flux de données Lecture/Ecriture Fichiers 1 Un flux de données est un objet qui représente une suite d octets d un programme pour une certaine destination ou issus d une source pour un programme flux d

Plus en détail

3IS - Système d'exploitation linux - Programmation système

3IS - Système d'exploitation linux - Programmation système 3IS - Système d'exploitation linux - Programmation système 2010 David Picard Contributions de : Arnaud Revel, Mickaël Maillard picard@ensea.fr Environnement Les programmes peuvent être exécutés dans des

Plus en détail

Travaux Dirigés n 1 : chaînes de caractères

Travaux Dirigés n 1 : chaînes de caractères UE LE315 Travaux Dirigés n 1 : chaînes de caractères Exercice 1 Ecrire une fonction int nombre_caract(char *chaîne) qui retourne la taille d une chaîne de caractères. Exercice 2 Ecrire la fonction void

Plus en détail

Prénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004. Loc Jeudi 29/4/2004

Prénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004. Loc Jeudi 29/4/2004 Questionnaire d'examen final INF1101 Sigle du cours Nom : Signature : Prénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004 Professeur(s)

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

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

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

Cours 1: Java et les objets

Cours 1: Java et les objets Ressources Les interface homme-machine et le langage Java DUT première année Henri Garreta, Faculté des Sciences (Luminy) Cyril Pain-Barre & Sébastien Nedjar, IUT d Aix-Marseille (Aix) Cours 1: infodoc.iut.univ-aix.fr/~ihm/

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

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

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

OS Réseaux et Programmation Système - C5

OS Réseaux et Programmation Système - C5 OS Réseaux et Programmation Système - C5 Rabie Ben Atitallah rabie.benatitallah@univ-valenciennes.fr RPC - XDR Rappel RPC: Remote Procedure Call Besoin d un environnement de haut niveau pour le développement

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

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

Chapitre 10. Les interfaces Comparable et Comparator 1

Chapitre 10. Les interfaces Comparable et Comparator 1 Chapitre 10: Les interfaces Comparable et Comparator 1/5 Chapitre 10 Les interfaces Comparable et Comparator 1 1 Ce chapitre a été extrait du document "Objets, Algorithmes, Patterns" de [René Lalement],

Plus en détail

Algorithmique I. Augustin.Lux@imag.fr Roger.Mohr@imag.fr Maud.Marchal@imag.fr. Algorithmique I 20-09-06 p.1/??

Algorithmique I. Augustin.Lux@imag.fr Roger.Mohr@imag.fr Maud.Marchal@imag.fr. Algorithmique I 20-09-06 p.1/?? Algorithmique I Augustin.Lux@imag.fr Roger.Mohr@imag.fr Maud.Marchal@imag.fr Télécom 2006/07 Algorithmique I 20-09-06 p.1/?? Organisation en Algorithmique 2 séances par semaine pendant 8 semaines. Enseignement

Plus en détail

TP, première séquence d exercices.

TP, première séquence d exercices. TP, première séquence d exercices. Benoît Valiron benoit.valiron@lipn.univ-paris13.fr 7 novembre 2010 Introduction Vous écrirez les réponses aux questions courtes sur une feuille à rendre à la fin de la

Plus en détail

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

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

Plus en détail

Une introduction à Java

Une introduction à Java Une introduction à Java IFT 287 (Semaine 1) UNIVERSITÉ DE SHERBROOKE 1 Java - Historique Développé par Sun Microsystems en 1994 Inventeur James Gosling (canadien!) Objectif langage sûr (fortement typé)

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

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

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

Introduction à l héritage en C++

Introduction à l héritage en C++ Algorithmique/Langage 1ère année Introduction à l héritage en C++ Yacine BELLIK IUT d Orsay Yacine.Bellik@iut-orsay.fr 1 Bibliographie Ce cours est basé sur le livre suivant : Programmer en C++, 5ème édition

Plus en détail

Cours Programmation Système

Cours Programmation Système Cours Programmation Système Filière SMI Semestre S6 El Mostafa DAOUDI Département de Mathématiques et d Informatique, Faculté des Sciences Université Mohammed Premier Oujda m.daoudi@fso.ump.ma Février

Plus en détail

Logiciel Libre Cours 3 Fondements: Génie Logiciel

Logiciel Libre Cours 3 Fondements: Génie Logiciel Logiciel Libre Cours 3 Fondements: Génie Logiciel Stefano Zacchiroli zack@pps.univ-paris-diderot.fr Laboratoire PPS, Université Paris Diderot 2013 2014 URL http://upsilon.cc/zack/teaching/1314/freesoftware/

Plus en détail

Les arbres binaires de recherche

Les arbres binaires de recherche Institut Galilée Année 2010-2011 Algorithmique et arbres L2 TD 6 Les arbres binaires de recherche Type en C des arbres binaires (également utilisé pour les ABR) : typedef struct noeud_s { struct noeud_s

Plus en détail

Introduction à la programmation concurrente

Introduction à la programmation concurrente Introduction à la programmation concurrente Moniteurs Yann Thoma Reconfigurable and Embedded Digital Systems Institute Haute Ecole d Ingénierie et de Gestion du Canton de Vaud This work is licensed under

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

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

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

Entraînement au concours ACM-ICPC

Entraînement au concours ACM-ICPC Entraînement au concours ACM-ICPC Concours ACM-ICPC : format et stratégies Page 1 / 16 Plan Présentation Stratégies de base Page 2 / 16 Qu est-ce que c est? ACM-ICPC : International Collegiate Programming

Plus en détail

Programmation Classique en langage C

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

Plus en détail

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

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

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

Plus en détail

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

TD3: tableaux avancées, première classe et chaînes TD3: tableaux avancées, première classe et chaînes de caractères 1 Lestableaux 1.1 Élémentsthéoriques Déclaration des tableaux Pour la déclaration des tableaux, deux notations sont possibles. La première

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

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

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

Plus en détail

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

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

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

Bases Java - Eclipse / Netbeans

Bases Java - Eclipse / Netbeans Institut Galilée PDJ Année 2014-2015 Master 1 Environnements Java T.P. 1 Bases Java - Eclipse / Netbeans Il existe plusieurs environnements Java. Il est ESSENTIEL d utiliser la bonne version, et un environnement

Plus en détail

Département Automatisation et Informatisation Année 2005-2006. Programmation en C++ Institut des Sciences et Techniques de l Ingénieur d Angers

Département Automatisation et Informatisation Année 2005-2006. Programmation en C++ Institut des Sciences et Techniques de l Ingénieur d Angers Département Automatisation et Informatisation Année 2005-2006 Programmation en C++ Institut des Sciences et Techniques de l Ingénieur d Angers 1 Bertrand Cottenceau 1. Introduction du cours de C++...3

Plus en détail

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

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

Plus en détail

Cours de C/C++ par la pratique. Hugues Talbot

Cours de C/C++ par la pratique. Hugues Talbot Cours de C/C++ par la pratique Hugues Talbot 24 octobre 2008 2 Table des matières 1 Comment démarrer? 7 1.1 Un programme simple en C pur.......................... 7 1.2 Un programme en C ++...............................

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

Le système de gestion des fichiers, les entrées/sorties.

Le système de gestion des fichiers, les entrées/sorties. Le système de gestion des fichiers, les entrées/sorties. Luigi Santocanale Laboratoire d Informatique Fondamentale, Centre de Mathématiques et Informatique, 39, rue Joliot-Curie - F-13453 Marseille 19

Plus en détail

Introduction à C++ et à wxwidgets

Introduction à C++ et à wxwidgets Introduction à C++ et à wxwidgets Master IGC 1ère année Année universitaire 2011/2012 Christophe Renaud Version 1.5 19/09/2011 Introduction Objectifs du cours Introduction au langage objet C++ Introduction

Plus en détail

Poker. A rendre pour le 25 avril

Poker. A rendre pour le 25 avril Poker A rendre pour le 25 avril 0 Avant propos 0.1 Notation Les parties sans * sont obligatoires (ne rendez pas un projet qui ne contient pas toutes les fonctions sans *). Celles avec (*) sont moins faciles

Plus en détail

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

03/04/2007. Tâche 1 Tâche 2 Tâche 3. Système Unix. Time sharing 3/4/27 Programmation Avancée Multimédia Multithreading Benoît Piranda Équipe SISAR Université de Marne La Vallée Besoin Programmes à traitements simultanés Réseau Réseau Afficher une animation en temps

Plus en détail

Programmation stochastique

Programmation stochastique Programmation stochastique (Partie 1) IFT-6512 Hiver 2008 Présentation succinte COIN-OR? COmputational INfrastructure for Operations Research. Préalablement, COIN-OR tenait pour Common Optimization INterface

Plus en détail

GESTION DES FICHIERS C/UNIX

GESTION DES FICHIERS C/UNIX Licence IG Page 1 sur 6 GESTION DES FICHIERS C/UNIX Introduction Deux modes d appel - Par la bibliothèque standard C (appel de haut niveau) - Par appels système (bas niveau) Nécessite les includes suivant

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

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

Architecture des Systèmes d Information Architecture des Systèmes d Information

Architecture des Systèmes d Information Architecture des Systèmes d Information Plan... Tableaux et tris I3 - Algorithmique et programmation 1 Rappels Nicol Delestre 2 Tableaux à n dimensions 3 Initiation aux tris Tableaux - v2.0.1 1 / 27 Tableaux - v2.0.1 2 / 27 Rappels : tableau

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

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