Plate-forme technologique SMCS

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

Download "Plate-forme technologique SMCS"

Transcription

1 Plate-forme technologique SMCS Midis du SMCS Toujours plus vite avec R! Auteur: Alain Guillet - SMCS - IMMAQ Date: Le 1er décembre 2009 Plate-forme technologique de Support en Méthodologie et Calcul Statistique, UCL - Voie du Roman Pays, 20 B-1348 Louvain-la-Neuve Tel: (32) Fax: (32)

2 Table des matières 1 Deviner ou mesurer? 2 2 La vectorisation Pourquoi vectoriser? La famille.apply mapply() et Vectorize() Les boucles Initialisation Dedans ou dehors? Parfois nécessaires! Optimiser Gagner du temps en utilisant des fonctions optimisées Programmant en C ou Fortran En résumé : la bonne pratique 12 6 A faire : parallélisation de la tâche 12 1

3 Introduction R est un langage très utilisé pour ses aptitudes à faire de la statistique et des graphiques personnalisables. Par contre, on oublie trop souvent que R est également un langage de programmation complet bien adapté à la programmation scientifique. Comme tout langage de programmation, une mauvaise utilisation de celui-ci, voire une méconnaissance des spécificités du langage, peuvent conduire à une très forte augmentation du temps de calcul. Cependant, il est inutile de passer des heures à essayer d optimiser un programme dont le bénéfice ne sera que de quelques secondes ou bien de casser un code qui fonctionnait en introduisant une erreur dedans. Les seuls cas pour lesquels l on devrait optimiser son programme sont : pour un package pour des simulations ou, plus généralement, pour un programme qui sera exécuté un grand nombre de fois Il y a trois règles à ne jamais oublier dans tout programme R : 1. Ne pas optimiser sauf en cas de réelle nécessité 2. Toujours commencer les programmes en effaçant tous les objets de l espace de travail :rm(list=ls()) 3. Vectoriser les expressions dès la première écriture 1 Deviner ou mesurer? Lorsque le temps de calcul d un programme semble long, il ne faut pas essayer d optimiser immédiatement le code en se disant que c est ici ou là qu est le problème. Tout d abord, on calcule le temps global à l aide de la fonction system.time(), puis on va utiliser la fonction Rprof() afin de déterminer quelle étape du programme ralentit l exécution. Cette seconde fonction peut aussi donner des informations sur l utilisation de la mémoire grâce à l option memory.profiling. > Rprof("tmp.out") > toto <- Vectorize(function(fn, n) system.time(fn(n)), vectorize.args = c("n")) > time1 <- function(n) { + a <- NULL + for (i in 1:n) a <- c(a, i^2) + return(a) > exemple1 <- toto(time1, seq(0, 5000, by = 1000)) > Rprof() Les packages proftools et profr permettent de résumer l information d un profilage d exécution de code afin de mieux comprendre ce qui se passe durant son exécution. Ci-dessous un exemple avec le package proftools : > library(proftools) > flatprofile(readprofiledata("tmp.out")) total.pct total.time self.pct self.time.call <Anonymous> do.call dotrycatch eval evalfunc

4 mapply Sweave system.time toto try trycatch trycatchlist trycatchone withvisible fn gc ^ > flatprofile(readprofiledata("tmp.out"), FALSE) self.pct cum.self.time self.time total.pct total.time gc fn ^ Call <Anonymous> do.call dotrycatch eval evalfunc mapply Sweave system.time toto try trycatch trycatchlist trycatchone withvisible La vectorisation 2.1 Pourquoi vectoriser? R est un langage interprété, i.e. le code est analysé, puis évalué lors de l exécution, il est alors plus efficace d écrire du code vectorisé (qui sera exécuté de manière vectorielle). De plus, il existe un grand nombre de fonctions vectorisées dans R :%*%,%o%,colsums(),colmeans(),... Cependant, comme nous le verrons un peu plus loin, les boucles ne sont pas nécessairement mauvaises (cf. la section 3 sur les boucles) 2.2 La famille.apply La famille.apply permet d appliquer une fonction, que l on a créée ou pas, à un objet de R de manière vectorielle : apply() à une matrice ou un array en choisissant une ou plusieurs dimensions sur lesquelles on appliquera la fonction lapply(),sapply() ettapply() à un vecteur, une liste ou un dataframe rapply() qui est unlapply() d un objet de la classe dendogram récursif dendrapply() qui s applique aux noeu 3

5 Par exemple, si l on veut trouver le maximum dans chacune des colonnes d une matrice, on pourra utiliser la fonction apply() en spécifiant la dimension sur laquelle on souhaite travailler (1 : lignes, 2 : colonnes, etc.) et en passant la fonctionmax comme argument : > A <- matrix(rnorm(12), ncol = 4) > A [,1] [,2] [,3] [,4] [1,] [2,] [3,] > apply(a, 2, max) [1] Ou encore, si l on veut extraire la deuxième colonne de deux matrices qui sont les deux éléments d une liste : > A <- matrix(1:4, ncol = 2) > B <- matrix(5:10, ncol = 3) > (L <- list(a, B)) [[1]] [,1] [,2] [1,] 1 3 [2,] 2 4 [[2]] [,1] [,2] [,3] [1,] [2,] > lapply(l, "[",, 1) [[1]] [1] 1 2 [[2]] [1] 5 6 > sapply(l, function(x) x[, 1]) [,1] [,2] [1,] 1 5 [2,] 2 6 Nous avons utilisé ici les fonctionslapply() qui crée en sortie une liste etsapply() qui a simplifié le résultat, d où le s. Il est à noter que nous aurions également pu utiliser la fonction rapply(). La sortie aurait alors été un vecteur. 2.3 mapply() et Vectorize() mapply() et Vectorize() permettent de passer des vecteurs d arguments à des fonctions qui normalement utilisent un seul argument comme la fonction integrate() de R qui permet de calculer une intégrale entre deux 4

6 Densité d'une normale N(0,1) y exp( x 2) π dx x FIGURE 1 Intégrer sur la fonction de densité d une normale N(0,1) bornes. Cependant, ces deux fonctions ne sont pas tout à fait équivalentes puisquevectorize est plus générale que mapply(). En effet, on peut mettre la fonction comme paramètre alors que la fonction est fixée une fois pour toute avecmapply(). Supposons qu on veuille calculer l aire en rouge sur le graphique 1, exp( x/2) 2π, on peut utiliser la fonction integrate() de R avec la fonction dnorm. On aurait pu utiliser la fonction pnorm() qui permet de calculer une probabilité pour une distribution normale mais nous ne pourrions alors plus utiliser les fonctions mapply() et Vectorize(). > integrate(dnorm, lower = -1.96, upper = 1.96) with absolute error < 1.0e-11 > pnorm(1.96) - pnorm(-1.96) [1] Imaginions maintenant que nous souhaitions calculer l intégrale de cette fonction entre et -3, -3 et -2, -2 et -1, -1 et 0, 0 et 1, 1 et 2, 2 et 3 et enfin 3 et +. On pourrait utiliser huit fois la fonctionintegrate() en changeant 5

7 les bornes d intégration mais nous allons plutôt utiliser la fonction mapply comme ci-dessous en définissant deux vecteurs de bornes : > lo <- c(-inf, -3:3) > up <- c(-3:3, Inf) > (P <- mapply(function(lo, up) integrate(dnorm, lo, up)$value, + lo, up)) [1] [7] > sum(p) [1] 1 La fonction mapply est suffisante tant que l on intègre sur la même fonction, comme dit plus haut, et a une syntaxe plus facile que la fonction Vectorize() pour laquelle le calcul se fait en deux étapes : dans un premier temps, on crée la fonctionintegrate(), puis on l applique àdnorm() et les vecteurs de bornes des intégrales. > Integrate <- Vectorize(function(fn, lower, upper) integrate(fn, + lower, upper)$value, vectorize.args = c("lower", "upper")) > Integrate(dnorm, lower = lo, upper = up) [1] [7] C est plus compliqué mais si on veut calculer l intégrale d une autre fonction, il suffira de prendre la fonction Integrate() définit comme ci-dessus et lui appliquer les nouveaux paramètres. 3 Les boucles Contrairement à ce qui a pu être compris dans ce qui a été dit précédemment, les boucles ne sont pas toujours mauvaises. Elles sont conseillées dans les cas ci-après : Quand il est difficile d écrire du code vectorisé Quand le code vectorisé utilise beaucoup de mémoire Les boucles sont plus efficaces que les appels récursifs dans R Par ailleurs, il ne faut pas éviter de construire une boucle pour le plaisir d éviter une boucle, au contraire, si la boucle semble être le meilleur moyen de programmer un morceau de code, il faut la faire.malgré tout, afin qu une boucle ne ralentisse pas un programme, il y a quelques règles à suivre : Initialiser les nouveaux objets à leur taille définitive avant la boucle plutôt qu augmenter leurs tailles dans la boucle sinon à chaque itération la mémoire doit être allouée et l objet copié Ne pas faire dans la boucle ce qui peut être fait en dehors (un calcul, vérifier une condition sur chaque élément, etc.) 3.1 Initialisation Dans l exemple suivant, on souhaite créer le vecteur a tel que i, a i = i 2. On le fait de trois manières : la première sans initialisation de a, la deuxième en initialisant a et la dernière de manière vectorielle, puis on calcule les temps d exécution des trois procédés de création. > # Sans initialisation > initialisation1 <- function(n){ + a <- NULL 6

8 + for(i in 1:n) a <- c(a,i^2) > # Avec initialisation > initialisation2 <- function(n){ + a <- numeric(n) + for(i in 1:n) a[i] <- i^2 > # Vectoriellement > initialisation3 <- function(n){ + a <- (1:n)^2 Temps utilisateur en 10 2 seconde Boucle sans initialisation Boucle avec initialisation Opération vectorielle sans boucle n FIGURE 2 Vectoriser si possible et toujours préallouer la mémoire Comme le montre la figure 2, cela vaut la peine de mesurer les temps de calcul car les temps peuvent être très différents (la préallocation de la mémoire permet d aller trente fois plus vite sur mon ordinateur). Le plus rapide est d utiliser une approche vectorielle (initialisation3()), ce qui n est pas une surprise de part la nature de R. La chose à retenir est que lorsqu une approche vectorielle est compliquée à mettre en oeuvre, il 7

9 faut alors ne pas oublier d initialiser les objets à leurs tailles maximales lors de leurs créations si on la connait. 3.2 Dedans ou dehors? Temps utilisateur en 10 2 seconde Calcul dans la boucle Calcul hors de la boucle Opération vectorielle sans boucle n FIGURE 3 Calculer hors des boucles L exemple sur lequel on s appuie ici est le calcul du vecteur a tel que a i = 2π sin(i). > # Calcul dans la boucle > dedansdehors1 <- function(n){ + a <- numeric(n) + for(i in 1:n) a[i] <- 2*pi*sin(i) + a > # Calcul hors de la boucle > dedansdehors2 <- function(n){ + a <- numeric(n) + for(i in 1:n) a[i] <- sin(i) + 2*pi*a 8

10 > # Vectoriellement > dedansdehors3 <- function(n){ + 2*pi*sin(1:n) Il faut retenir de ceci (figure 3) que les différences entre les temps de calcul ne sont pas forcément très élevées entre les fonctions dedansdehors1() et dedansdehors2() mais elles existent malgré tout et que leurs petitesses est imputable à la simplicité du calcul réalisé ici. 3.3 Parfois nécessaires! Une boucle est parfois nécessaire et pour le montrer, on s appuie ici sur une petite histoire qui est intervenue sur la mailing-list R-help et qui fut reprise par [3]. La question était la suivante : Soit matrices la liste de matrices définies ci-dessous. > matrices <- vector(mode = "list", length = 10000) > for (i in seq_along(matrices)) matrices[[i]] <- matrix(rnorm(100), + ncol = 10) Comment sommer le grand nombre de matrices contenues dans la liste matrices? Autrement dit, comment calculer S telle que (i, j) [1,10] 2, S(i, j) = où M k est la k ème matrice de la liste définie ci-dessus? k=1 M k (i, j), 1. La première réponse est la réponse naturelle en faisant une boucle dans laquelle on additionne deux matrices. Itérativement, on obtient le résultat souhaité. > S1 <- matrix(0,ncol=10,nrow=10) > for (M in matrices) + S1 <- S1+M 2. «Quoi? Une boucle? Ce ne peut pas être la bonne réponse!» Ici se trouvent deux propositions de calcul de la somme des matrices sur la liste sans utiliser de boucle. Je dois bien reconnaitre que c est quelque peu technique... Bonne réponse numéro 1 : > S2 <- apply(array(unlist(matrices), + dim=c(10,10,10000)),1:2,sum) Bonne réponse numéro 2 : > S3 <- rowsums(array(unlist(matrices), + dim=c(10,10,10000)),dims=2) Que faut-il en conclure? Comme on peut le voir sur le graphique 4, les trois méthodes ont des temps de calcul très proches les uns des autres. Mais il y a une chose que je n ai pas montré : il y a un problème de mémoire au-delà de n = 59 (sur mon ordinateur) pour les deux propositions utilisant un array au lieu de la boucle : Error: cannot allocate vector of size Mb 4 Optimiser Dans cette section, nous allons voir deux moyens pas complètement dans R d optimiser son code. Tout d abord en utilisant les fonctions du package gsl de R, puis en programmant en C (cela pourrait aussi être réalisé en fortran). 9

11 array + apply array + rowsums Boucle for Temps utilisateur en secondes Nombre de lignes de la matrice carrée FIGURE 4 La vitesse de calcul est plus ou moins la même 4.1 Gagner du temps en utilisant des fonctions optimisées Le package gsl est un wrapper pour la GNU Scientific Library (c est une bibliothèque libre écrite en C fournissant des outils de calculs numériques en mathématiques appliquées). Quelques-une des fonctions ont été interfacées pour R et sont donc utilisables comme une fonction de R sous réserve d installer le package gsl avant. Vous pouvez trouver plus d informations sur ce package sur le site du CRAN : http ://cran.r-project.org/web/packages/gsl/index.html. On peut aussi utiliser la bibliothèque BLAS pour Basic Linear Algebra Subprograms qui agit directement au niveau du processeur pour les opérations de base de l algèbre linéaire comme la multiplication de matrices ou de vecteurs. Elle permet donc un accroissement de la vitesse d exécution des calculs sur les vecteurs et les matrices en utilisant l architecture du processeur (cache optimisé, pipelines, etc.). Pour Windows, on utilise ATLAS (Automatically Tuned Linear Algebra) qui est un BLAS optimisé. Pour ce faire, il faut remplacer le fichier Rblas.dll se trouvant dans le répertoire bin de l installation de R par celui se trouvant sur le site du CRAN dans Windows, contrib, ATLAS. Attention, il faut prendre le fichier correspondant au processeur de votre ordinateur sans quoi R risque de moins bien fonctionner voire de ne plus fonctionner du tout. Sur mon ordinateur avec un processeur Core2Duo, il n y avait pas de différence. 10

12 4.2 Programmant en C ou Fortran On veut calculer la factorielle d un nombre n sans utiliser la fonctionfactorial() de R. Le code ci-dessous est une des multiples manières de le faire dans le langage de R : > factorieller <- function(n) { + if (n == 0) + factorielle <- 1 + else for (i in 1:n) { + factorielle <- factorielle * i + return(factorielle) Programme R Programme C Temps utilisateur en secondes e+00 2e+06 4e+06 6e+06 8e+06 1e+07 n Préalablement à l écriture du code C et avant de pouvoir appeler le code dans R, il faut installer Rtools : http :// et ajouter R, MinGW et Perl dans le chemin de l environnement des variables. Ensuite, il faut écrire le code dans un fichier : { void cfactorielle(double *data,double *factorielle) 11

13 int i; factorielle[0] = 1; for (i = 0; i < *data; i++){ factorielle[0] *= (i+1);} } } Puis on compile le code créé en exécutant R CMD SHLIB nom_fichierc. Il ne reste plus qu à écrire une fonction dans R qui appellera le code C compilé : > factoriellec <- function(data) { + if (!(is.loaded("cfactorielle"))) + dyn.load("factorielle.dll") +.C("cfactorielle", as.double(data), factorielle = double(1))$factorielle Sur cet exemple, le code C est dix fois plus rapide que le code R. Par contre, il est moins rapide que la fonction factorial() qui est déjà implémentée dans R. 5 En résumé : la bonne pratique 1. Toujours commencer les programmes en effaçant tous les objets de l espace de travail : rm(list=ls()) 2. Initialiser les objets à leurs tailles maximales 3. Utiliser des opérations vectorielles simples 4. Utiliser les fonctions.apply() si c est approprié 5. Faire les calculs une seule fois en dehors d une boucle plutôt qu à chaque itération 6. Avant d essayer de gagner en vitesse d exécution, penser à mesurer le temps d exécution 7. Penser à programmer en C pour gagner du temps 8. Ne pas oublier qu un code lisible, documenté et correct vaut mieux qu un programme faux et mal optimisé 6 A faire : parallélisation de la tâche Quand un ordinateur n est pas suffisamment rapide pour exécuter un programme, il est parfois possible de paralléliser le code, c est-à-dire de partager le travail demandé entre plusieurs ordinateurs voire entre plusieurs processeurs. Je ne m étendrai pas sur ce sujet car je n ai pu que tester la parallélisation entre les coeurs (cores) de mon ordinateur core2duo à l aide du package foeeach. C était un peu plus lent que le même programme exécuté sans parallélisation et cela s explique par l utilisation d un coeur par le système d exploitation et par R en même temps. N ayant pas à disposition un cluster d ordinateurs, je n ai pas pu vérifier l apport de ce type de parallélisation. Je conseille donc de lire le très bon article sur la parallélisation [4] dans lequel les auteurs ont comparé les différentes parallélisations et les différents packages de R permettant de paralléliser. 12

14 Références [1] Robin K. S. Hankin, Duncan Murdoch, and Andrew Clausen. Package gsl, [2] Owen Jones, Robert Maillardet, and Andrew Robinson. Introduction to Scientific Programming and Simulation Using R. Chapman & Hall/CRC, Mars [3] R Help Desk (Uwe Ligges and John Fox). How can i avoid this loop or make it faster? R News, 8/1, Mai [4] Markus Schmidberger, Martin Morgan, Dirk Eddelbuettel, Hao Yu, Luke Tierney, and Ulrich Mansmann. State of the art in parallel computing with r. Journal of Statistical Software, 31(1) :1 27, [5] W. Venables. Programmer s niche. R News, 1/1,

Limitations of the Playstation 3 for High Performance Cluster Computing

Limitations of the Playstation 3 for High Performance Cluster Computing Introduction Plan Limitations of the Playstation 3 for High Performance Cluster Computing July 2007 Introduction Plan Introduction Intérêts de la PS3 : rapide et puissante bon marché L utiliser pour faire

Plus en détail

Résolution de systèmes linéaires par des méthodes directes

Résolution de systèmes linéaires par des méthodes directes Résolution de systèmes linéaires par des méthodes directes J. Erhel Janvier 2014 1 Inverse d une matrice carrée et systèmes linéaires Ce paragraphe a pour objet les matrices carrées et les systèmes linéaires.

Plus en détail

La boucle for La boucle while L utilisation du if else. while (condition) { instruction(s) }

La boucle for La boucle while L utilisation du if else. while (condition) { instruction(s) } VI Initiation à la programmation sous Comme nous l avons constaté tout au long du document, offre de nombreuses fonctionnalités En tant que nouvelles utilisateurs de il vous est désormais PRESQUE possible

Plus en détail

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

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

Plus en détail

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

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 à R. Florence Yerly. Dept. de mathématiques, Université de Fribourg (CH) SP 2011

Introduction à R. Florence Yerly. Dept. de mathématiques, Université de Fribourg (CH) SP 2011 Dept. de mathématiques, Université de Fribourg (CH) SP 2011 Qu est ce que R? Un logiciel de statistiques libre et gratuit ; Un logiciel multi-plateforme (UNIX, Windows MacOS X) R permet de faire des calculs

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

Plan du cours 2014-2015. Cours théoriques. 29 septembre 2014

Plan du cours 2014-2015. Cours théoriques. 29 septembre 2014 numériques et Institut d Astrophysique et de Géophysique (Bât. B5c) Bureau 0/13 email:.@ulg.ac.be Tél.: 04-3669771 29 septembre 2014 Plan du cours 2014-2015 Cours théoriques 16-09-2014 numériques pour

Plus en détail

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

I. Programmation I. 1 Ecrire un programme en Scilab traduisant l organigramme montré ci-après (on pourra utiliser les annexes): Master Chimie Fondamentale et Appliquée : spécialité «Ingénierie Chimique» Examen «Programmation, Simulation des procédés» avril 2008a Nom : Prénom : groupe TD : I. Programmation I. 1 Ecrire un programme

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

Calcul Formel et Numérique, Partie I

Calcul Formel et Numérique, Partie I Calcul Formel et Numérique N.Vandenberghe nvdb@irphe.univ-mrs.fr Table des matières 1 Introduction à Matlab 2 1.1 Quelques généralités.......................... 2 2 Où trouver des informations 2 3 Opérations

Plus en détail

Optimisation de logiciels de modélisation sur centre de calcul

Optimisation de logiciels de modélisation sur centre de calcul Optimisation de logiciels de modélisation sur centre de calcul Gérald Monard Pôle de Chimie Théorique http://www.monard.info/ Introduction Les ordinateurs sont des appareils électroniques permettant d

Plus en détail

Pourquoi R devient incontournable en recherche, enseignement et développement

Pourquoi R devient incontournable en recherche, enseignement et développement Pourquoi R devient incontournable en recherche, enseignement et développement Rencontre R, BoRdeaux 2012 Plan Introduction Recherche Enseignement Développement (entreprise) Conclusions Les logiciels de

Plus en détail

1. Structure d'un programme FORTRAN 95

1. Structure d'un programme FORTRAN 95 FORTRAN se caractérise par la nécessité de compiler les scripts, c'est à dire transformer du texte en binaire.(transforme un fichier de texte en.f95 en un executable (non lisible par un éditeur) en.exe.)

Plus en détail

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

Génération de code binaire pour application multimedia : une approche au vol Génération de binaire pour application multimedia : une approche au vol http://hpbcg.org/ Henri-Pierre Charles Université de Versailles Saint-Quentin en Yvelines 3 Octobre 2009 Présentation Présentation

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

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

Fiche PanaMaths Calculs avec les fonctions sous Xcas

Fiche PanaMaths Calculs avec les fonctions sous Xcas Fiche PanaMaths Calculs avec les fonctions sous Xcas Cette fiche destinée aux élèves des classes de Terminale requiert un premier niveau de connaissance du logiciel Xcas. Définition d une fonction Fonctions

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

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

Cours 7 : Utilisation de modules sous python

Cours 7 : Utilisation de modules sous python Cours 7 : Utilisation de modules sous python 2013/2014 Utilisation d un module Importer un module Exemple : le module random Importer un module Exemple : le module random Importer un module Un module est

Plus en détail

MATLAB : COMMANDES DE BASE. Note : lorsqu applicable, l équivalent en langage C est indiqué entre les délimiteurs /* */.

MATLAB : COMMANDES DE BASE. Note : lorsqu applicable, l équivalent en langage C est indiqué entre les délimiteurs /* */. Page 1 de 9 MATLAB : COMMANDES DE BASE Note : lorsqu applicable, l équivalent en langage C est indiqué entre les délimiteurs /* */. Aide help, help nom_de_commande Fenêtre de travail (Command Window) Ligne

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

Corrigé des TD 1 à 5

Corrigé des TD 1 à 5 Corrigé des TD 1 à 5 1 Premier Contact 1.1 Somme des n premiers entiers 1 (* Somme des n premiers entiers *) 2 program somme_entiers; n, i, somme: integer; 8 (* saisie du nombre n *) write( Saisissez un

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

Initiation à l analyse en composantes principales

Initiation à l analyse en composantes principales Fiche TD avec le logiciel : tdr601 Initiation à l analyse en composantes principales A.B. Dufour & J.R. Lobry Une première approche très intuitive et interactive de l ACP. Centrage et réduction des données.

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 1 : La compilation

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

Plus en détail

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

http://cermics.enpc.fr/scilab

http://cermics.enpc.fr/scilab scilab à l École des Ponts ParisTech http://cermics.enpc.fr/scilab Introduction à Scilab Graphiques, fonctions Scilab, programmation, saisie de données Jean-Philippe Chancelier & Michel De Lara cermics,

Plus en détail

Université du Québec à Chicoutimi. Département d informatique et de mathématique. Plan de cours. Titre : Élément de programmation.

Université du Québec à Chicoutimi. Département d informatique et de mathématique. Plan de cours. Titre : Élément de programmation. Université du Québec à Chicoutimi Département d informatique et de mathématique Plan de cours Titre : Élément de programmation Sigle : 8inf 119 Session : Automne 2001 Professeur : Patrice Guérin Local

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

É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

Introduction à la Programmation Parallèle: MPI

Introduction à la Programmation Parallèle: MPI Introduction à la Programmation Parallèle: MPI Frédéric Gava et Gaétan Hains L.A.C.L Laboratoire d Algorithmique, Complexité et Logique Cours du M2 SSI option PSSR Plan 1 Modèle de programmation 2 3 4

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

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 1. I- Généralités sur R II- Les fonctions de R et autres objets III-Les vecteurs

Cours 1. I- Généralités sur R II- Les fonctions de R et autres objets III-Les vecteurs Cours 1 I- Généralités sur R II- Les fonctions de R et autres objets III-Les vecteurs IV-Les facteurs I-1 Généralités sur R R (1995, AT&T Bell Laboratories) est un logiciel d analyse statistique et graphique,

Plus en détail

Cours de Systèmes d Exploitation

Cours de Systèmes d Exploitation Licence d informatique Synchronisation et Communication inter-processus Hafid Bourzoufi Université de Valenciennes - ISTV Introduction Les processus concurrents s exécutant dans le système d exploitation

Plus en détail

M2-Images. Rendu Temps Réel - OpenGL 4 et compute shaders. J.C. Iehl. December 18, 2013

M2-Images. Rendu Temps Réel - OpenGL 4 et compute shaders. J.C. Iehl. December 18, 2013 Rendu Temps Réel - OpenGL 4 et compute shaders December 18, 2013 résumé des épisodes précédents... création des objets opengl, organisation des données, configuration du pipeline, draw,... opengl 4.3 :

Plus en détail

as Architecture des Systèmes d Information

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

Plus en détail

Fiche d utilisation du logiciel. 1 - Installation. J. Thioulouse & D. Chessel

Fiche d utilisation du logiciel. 1 - Installation. J. Thioulouse & D. Chessel Fiche d utilisation du logiciel 1 - Installation J. Thioulouse & D. Chessel Résumé Cette fiche est une introduction à l'utilisation du logiciel R pour les trois environnements Unix, Windows et MacOS. Plan

Plus en détail

ARDUINO DOSSIER RESSOURCE POUR LA CLASSE

ARDUINO DOSSIER RESSOURCE POUR LA CLASSE ARDUINO DOSSIER RESSOURCE POUR LA CLASSE Sommaire 1. Présentation 2. Exemple d apprentissage 3. Lexique de termes anglais 4. Reconnaître les composants 5. Rendre Arduino autonome 6. Les signaux d entrée

Plus en détail

STAGE IREM 0- Premiers pas en Python

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

Plus en détail

Gestion mémoire et Représentation intermédiaire

Gestion mémoire et Représentation intermédiaire Gestion mémoire et Représentation intermédiaire Pablo de Oliveira March 23, 2015 I Gestion Memoire Variables locales Les variables locales sont stockées: Soit dans un registre,

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

TP 1 Introduction à Matlab Février 2009

TP 1 Introduction à Matlab Février 2009 1 Introduction TP 1 Introduction à Matlab Février 2009 Matlab pour «MATtrix LABoratory», est un logiciel qui a été conçu pour fournir un environnement de calcul numérique de haut niveau. Il est particulièrement

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

Module.NET 3 Les Assemblys.NET

Module.NET 3 Les Assemblys.NET Module.NET Chapitre 3 Les Assemblys.NET 2011/2012 Page 1 sur 13 Contenu Cours... 3 3.1 - Définition d un assembly.net... 3 3.2 - Private assembly ou assembly privé.... 3 3.3 - Shared assembly ou assembly

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

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

Correction de l examen de la première session

Correction de l examen de la première session de l examen de la première session Julian Tugaut, Franck Licini, Didier Vincent Si vous trouvez des erreurs de Français ou de mathématiques ou bien si vous avez des questions et/ou des suggestions, envoyez-moi

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

Aide - mémoire gnuplot 4.0

Aide - mémoire gnuplot 4.0 Aide - mémoire gnuplot 4.0 Nicolas Kielbasiewicz 20 juin 2008 L objet de cet aide-mémoire est de présenter les commandes de base pour faire rapidement de très jolis graphiques et courbes à l aide du logiciel

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

IMAGES NUMÉRIQUES MATRICIELLES EN SCILAB

IMAGES NUMÉRIQUES MATRICIELLES EN SCILAB IMAGES NUMÉRIQUES MATRICIELLES EN SCILAB Ce document, écrit par des animateurs de l IREM de Besançon, a pour objectif de présenter quelques unes des fonctions du logiciel Scilab, celles qui sont spécifiques

Plus en détail

TP1 : Initiation à Java et Eclipse

TP1 : Initiation à Java et Eclipse TP1 : Initiation à Java et Eclipse 1 TP1 : Initiation à Java et Eclipse Systèmes d Exploitation Avancés I. Objectifs du TP Ce TP est une introduction au langage Java. Il vous permettra de comprendre les

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

Dossier projet isn 2015 par Victor Gregoire

Dossier projet isn 2015 par Victor Gregoire Dossier projet isn 2015 par Victor Gregoire Plan: I) But du projet: créer un jeu de blackjack fonctionnel et le poster sur une page web mise en ligne. Le jeu sera developpé en C++ a l'aide de code blocks.

Plus en détail

Évaluation et implémentation des langages

Évaluation et implémentation des langages Évaluation et implémentation des langages Les langages de programmation et le processus de programmation Critères de conception et d évaluation des langages de programmation Les fondations de l implémentation

Plus en détail

Une bibliothèque de templates pour CUDA

Une bibliothèque de templates pour CUDA Une bibliothèque de templates pour CUDA Sylvain Collange, Marc Daumas et David Defour Montpellier, 16 octobre 2008 Types de parallèlisme de données Données indépendantes n threads pour n jeux de données

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

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

Souad EL Bernoussi. Groupe d Analyse Numérique et Optimisation Rabat http ://www.fsr.ac.ma/ano/

Souad EL Bernoussi. Groupe d Analyse Numérique et Optimisation Rabat http ://www.fsr.ac.ma/ano/ Recherche opérationnelle Les démonstrations et les exemples seront traités en cours Souad EL Bernoussi Groupe d Analyse Numérique et Optimisation Rabat http ://www.fsr.ac.ma/ano/ Table des matières 1 Programmation

Plus en détail

Python - introduction à la programmation et calcul scientifique

Python - introduction à la programmation et calcul scientifique Université de Strasbourg Environnements Informatique Python - introduction à la programmation et calcul scientifique Feuille de TP 1 Avant de commencer Le but de ce TP est de vous montrer les bases de

Plus en détail

Machines virtuelles. Brique ASC. Samuel Tardieu sam@rfc1149.net. Samuel Tardieu (ENST) Machines virtuelles 1 / 40

Machines virtuelles. Brique ASC. Samuel Tardieu sam@rfc1149.net. Samuel Tardieu (ENST) Machines virtuelles 1 / 40 Machines virtuelles Brique ASC Samuel Tardieu sam@rfc1149.net École Nationale Supérieure des Télécommunications Samuel Tardieu (ENST) Machines virtuelles 1 / 40 Machines virtuelles La compilation peut

Plus en détail

Présentation du logiciel

Présentation du logiciel Chapitre A Présentation du logiciel R Pré-requis et objectif La lecture du chapitre sur l installation de R dans les Annexes peut se révéler utile. Ce chapitre présente les origines, l objectif et les

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

Rapport de stage Master 2

Rapport de stage Master 2 Rapport de stage Master 2 Informatique Haute Performance et Simulation, 2 ème année Ecole Centrale Paris Accélération des méthodes statistiques sur GPU Auteur : CHAI Anchen. Responsables: Joel Falcou et

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

Cette application développée en C# va récupérer un certain nombre d informations en ligne fournies par la ville de Paris :

Cette application développée en C# va récupérer un certain nombre d informations en ligne fournies par la ville de Paris : Développement d un client REST, l application Vélib 1. Présentation L application présentée permet de visualiser les disponibilités des vélos et des emplacements de parking à la disposition des parisiens

Plus en détail

Environnements de développement (intégrés)

Environnements de développement (intégrés) Environnements de développement (intégrés) Tests unitaires, outils de couverture de code Patrick Labatut labatut@di.ens.fr http://www.di.ens.fr/~labatut/ Département d informatique École normale supérieure

Plus en détail

td3a correction session7az

td3a correction session7az td3a correction session7az August 19, 2015 1 Séance 7 : PIG et JSON et streaming avec les données vélib (correction avec Azure) Plan Récupération des données Connexion au cluster et import des données

Plus en détail

Les concepts de base, l organisation des données

Les concepts de base, l organisation des données Chapitre 1 Les concepts de base, l organisation des données Objectif Ce chapitre présente les concepts de base du logiciel R (mode calculatrice, opérateur d affectation, variables, utilisation de fonctions,

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

Métriques de performance pour les algorithmes et programmes parallèles

Métriques de performance pour les algorithmes et programmes parallèles Métriques de performance pour les algorithmes et programmes parallèles 11 18 nov. 2002 Cette section est basée tout d abord sur la référence suivante (manuel suggéré mais non obligatoire) : R. Miller and

Plus en détail

Auto-évaluation Programmation en Java

Auto-évaluation Programmation en Java Auto-évaluation Programmation en Java Document: f0883test.fm 22/01/2013 ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium TRAINING & CONSULTING INTRODUCTION AUTO-ÉVALUATION PROGRAMMATION EN

Plus en détail

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

Perl Console. Votre compagnon pour développer en Perl. Les Journées du Perl 2007 16, 17 novembre, Lyon. Alexis Sukrieh <sukria@sukria. Perl Console Votre compagnon pour développer en Perl Les Journées du Perl 2007 16, 17 novembre, Lyon Alexis Sukrieh Plan Pourquoi une console? Le modèle «Read-Eval-Print-Loop» Dépendances

Plus en détail

R, Bonnes pratiques. Christophe Genolini

R, Bonnes pratiques. Christophe Genolini R, Bonnes pratiques Christophe Genolini 1 Table des matières 1 Des bonnes pratiques, pour quoi faire? 4 2 Choix de l éditeur de texte 4 3 Architecture du code 6 4 Variables 10 5 Commentaires et documentation

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

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

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

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

Plus en détail

4. Groupement d objets

4. Groupement d objets Conception objet en Java avec BlueJ une approche interactive 4. Groupement d objets Collections et itérateurs David J. Barnes, Michael Kölling version française: Patrice Moreaux Rédigé avec 1.0 Principaux

Plus en détail

Programmation Par Objets

Programmation Par Objets Programmation Par Objets Structures de données package java.util B. Carré Polytech Lille 1 Tableaux et structures de données Tableaux «Objets» taille fixe type des éléments : primitif (homogène) ou objets

Plus en détail

Principe de symétrisation pour la construction d un test adaptatif

Principe de symétrisation pour la construction d un test adaptatif Principe de symétrisation pour la construction d un test adaptatif Cécile Durot 1 & Yves Rozenholc 2 1 UFR SEGMI, Université Paris Ouest Nanterre La Défense, France, cecile.durot@gmail.com 2 Université

Plus en détail

MANIPULATION ET VISUALISATION DE GROSSES BASES DE DONNÉES AVEC R

MANIPULATION ET VISUALISATION DE GROSSES BASES DE DONNÉES AVEC R MANIPULATION ET VISUALISATION DE GROSSES BASES DE DONNÉES AVEC R Jeudi 10 octobre 2013 CHAIGNEAU Alicia GAZAN Rozenn DAUFOUY Camille JOURDAN Sandra Introduction 2 Evolution des outils de collecte Big data

Plus en détail

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

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

Plus en détail

Jérôme Mathieu janvier 2007. Débuter avec R. Ce document est disponible sur le site web : http://www.jerome.mathieu.freesurf.

Jérôme Mathieu janvier 2007. Débuter avec R. Ce document est disponible sur le site web : http://www.jerome.mathieu.freesurf. Jérôme Mathieu janvier 2007 Débuter avec R Ce document est disponible sur le site web : http://www.jerome.mathieu.freesurf.fr - 1 - Sommaire 1 Principes de base pour utiliser R... 3 $$$ Démarrer R pour

Plus en détail

INSTALLATION ET CONFIGURATION DE OPENLDAP

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

Plus en détail

URECA Initiation Matlab 2 Laurent Ott. Initiation Matlab 2

URECA Initiation Matlab 2 Laurent Ott. Initiation Matlab 2 Initiation Matlab 2 1 Chaînes de caractères (string) Une chaîne de caractères (string en anglais) est une suite ordonnée de caractères (du texte, par exemple). Sous matlab, les chaînes de caractères sont

Plus en détail

1 Description générale de VISFIELD

1 Description générale de VISFIELD Guide d utilisation du logiciel VISFIELD Yann FRAIGNEAU LIMSI-CNRS, Bâtiment 508, BP 133 F-91403 Orsay cedex, France 11 décembre 2012 1 Description générale de VISFIELD VISFIELD est un programme écrit

Plus en détail

INTRODUCTION AUX SYSTEMES D EXPLOITATION. TD2 Exclusion mutuelle / Sémaphores

INTRODUCTION AUX SYSTEMES D EXPLOITATION. TD2 Exclusion mutuelle / Sémaphores INTRODUCTION AUX SYSTEMES D EXPLOITATION TD2 Exclusion mutuelle / Sémaphores Exclusion mutuelle / Sémaphores - 0.1 - S O M M A I R E 1. GENERALITES SUR LES SEMAPHORES... 1 1.1. PRESENTATION... 1 1.2. UN

Plus en détail

Etude des propriétés empiriques du lasso par simulations

Etude des propriétés empiriques du lasso par simulations Etude des propriétés empiriques du lasso par simulations L objectif de ce TP est d étudier les propriétés empiriques du LASSO et de ses variantes à partir de données simulées. Un deuxième objectif est

Plus en détail

Initiation à l algorithmique

Initiation à l algorithmique Informatique S1 Initiation à l algorithmique procédures et fonctions 2. Appel d une fonction Jacques TISSEAU Ecole Nationale d Ingénieurs de Brest Technopôle Brest-Iroise CS 73862-29238 Brest cedex 3 -

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

OUTIL DE TRAVAIL COLLABORATIF

OUTIL DE TRAVAIL COLLABORATIF B i b l i o t h è q u e OUTIL DE TRAVAIL COLLABORATIF Septembre 2012 TitanPad est un outil de travail collaboratif permettant de prendre des notes ou de rédiger à plusieurs un même texte à distance en

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

Calcul Formel et Numérique, Partie I

Calcul Formel et Numérique, Partie I Calcul Formel et Numérique NicolasVandenberghe nvdb@irphe.univ-mrs.fr Table des matières 1 Introduction à Matlab 2 1.1 Quelques généralités.......................... 2 1.2 Où trouver des informations......................

Plus en détail

Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT

Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT Ces exercices portent sur les items 2, 3 et 5 du programme d informatique des classes préparatoires,

Plus en détail