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

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

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

Transcription

1 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 4- Génération de valeurs aléatoire selon une distribution ad hoc 5- Génération d'un ordre aléatoire On introduit des fonctions aléatoires classiques pour lesquelles on fournit ensuite un fichier qui les implémente. 1 Le générateur aléatoire disponible en C++ Génération de valeurs aléatoires En toute rigueur, dans ce qui suit, on devrait parler de génération de nombres pseudo-aléatoires. Les fonctions nécessaires à la génération aléatoire sont contenues dans la librairie <cstdlib>. La génération de nombres aléatoires implique d'abord d'initialiser la racine (seed) par l'instruction : srand(time(0)); time est une fonction de la librairie <ctime> : sans entrer dans les détails, time(0) est la date du jour exprimée en nombre de secondes depuis le 1er janvier Le chiffre va permettre d'initialiser une séquence de nombres pseudo-aléatoires. Tous les programmes qui comprennent la génération de nombres aléatoires contiendront cette instruction ou des instructions d'initialisation de la racine des nombres aléatoires, celle qui est présentée ici étant la plus utilisée. Par suite, on utilise la fonction rand() qui renvoie (selon un tirage uniforme) un nombre entier entre 0 et un entier maximal susceptible de varier en fonction des implémentations. Un premier exemple de génération de nombre aléatoire :

2 #include <cstdlib> #include <ctime> #include <iostream> int main() srand(time(0)); for(int i=0;i<5;i++) std::cout << "Nombre aleatoire : " << rand() << "\n"; Les nombres qui sont tirés sont entre 0 et RAND_MAX (inclus) qui est une constante entière définie dans <cstdlib>. Tirage de valeurs aléatoires selon une loi uniforme sur [0:1] Pour tirer des nombres aléatoires compris dans [0:1] : #include <cstdlib> #include <ctime> #include <iostream> int main() srand(time(0)); for(int i=0;i<5;i++) std::cout << "Nombre aleatoire : " << rand()/(double)rand_max << "\n"; On peut donc créer une fonction de génération de nombres aléatoires selon une loi uniforme sur [0:1] : #include <cstdlib> #include <ctime> #include <iostream> double randomuniform() return rand()/(double)rand_max; int main()

3 srand(time(0)); for(int i=0;i<5;i++) std::cout << "Nombre aleatoire : " << randomuniform() << "\n"; 2 Création d'un générateur aléatoire uniforme sur un intervalle Tirage uniforme de réels sur un intervalle quelconque A partir de la fonction randomuniform() qui a été définie plus haut, on peut définir une fonction plus complexe qui tire des valeurs aléatoires dans un intervalle [a:b] de réels. Pour se faire, on surcharge la fonction randomuniform en passant des paramètres d'intervalle : #include <cstdlib> #include <ctime> double randomuniform() return rand()/(double)rand_max; double randomuniform(double a,double b) return (b-a)*randomuniform()+a; Cette fonction fait bien ce qui a été annoncé : tiragealeatoireuniforme01() est tiré dans [0:1] Donc (b-a)*tiragealeatoireuniforme01() est dans [0;b-a] Donc (b-a)*tiragealeatoireuniforme01()+a est dans [a;b] Note : la fonction randomuniform(double a,double b) s'exécutera quand même, même si a>b. On pourrait envisager une fonction plus complexe qui ne s'exécuterait qu'à la condition que a<=b.

4 Tirage uniforme d'entiers sur un intervalle quelconque Pour tirer des entiers dans [0;n-1], on pourrait produire une fonction assez rapidement : int randominteger(int n) return rand()%n; Certes, il est évident que la fonction renvoie des entiers dans [0:n-1]. Néanmoins, cette fonction est biaisée. En effet, supposons que RAND_MAX soit 10 et que l'on veuille faire un tirage sur [0:2], ie avec n=3. Comme RAND_MAX est 10, cela signifie que les valeurs que rand() peut renvoyer sont 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 et 10. Lorsque rand() renvoie 0, 3, 6, 9, randominteger() renvoie 0. Lorsque rand() renvoie 1, 4, 7, 10, randominteger() renvoie 1. Lorsque rand() renvoie 2, 5, 8, randominteger() renvoie 2. Donc la fonction renvoie 0 avec une probabilité 4/11, 1 avec une probabilité 4/11 et 2avec une probabilité 3/11. Donc la fonction ne tire pas les entiers de manière uniforme sur [0:2], sauf dans le cas où RAND_MAX est un entier premier (à vérifier). Pour tirer des entiers de manière uniforme, on préférera une fonction de la forme randominteger ci dessous : #include <cstdlib> #include <ctime> #include <iostream> double randomuniform() return rand()/(double)rand_max; double randomuniform(double a,double b) return (b-a)*randomuniform()+a; long arrondir(double x)//arrondi à l'entier le plus proche

5 long a=(long)x; if(a+0.5<=x) return a+1; else return a; long randominteger(long a,long b) double x=randomuniform(a-0.5,b+0.5); return arrondir(x); int main() srand(time(0)); long a=20; long b=40; unsigned long nombretests= ; unsigned long compte[b+1]; for(int i=0;i<=b;i++) compte[i]=0; for(int i=0;i<nombretests;i++) compte[randominteger(a,b)]++; double somme=0; for(int i=0;i<=b;i++) double x=compte[i]/(double)nombretests; somme+=x; std::cout << i << " " << x << "\n"; std::cout << "La somme : " << somme << "\n";

6 3 Génération de valeurs aléatoires selon une loi normale Plusieurs méthodes sont possibles pour tirer des normes selon une loi normale à partir d'un générateur uniforme pseudo-aléatoire. La méthode la plus connue est celle de Box-Muller. On renvoie à l'exposé Wikipedia sur cette méthode pour son fonctionnement. On donne une version optimisée de cette fonction : void polarmarsaglia(double *x1,double *x2) double W,V1,V2; do double U1=randomUniform(); double U2=randomUniform(); V1=2*U1-1; V2=2*U2-1; W=V1*V1+V2*V2; while(w>1); /*Apres cette étape, V1 et V2 ont été tirés de manière uniforme sur [-1;1] / V2²+V1²<=1*/ double W_function=sqrt(-2*log(W)/W); *x1=v1*w_function; *x2=v2*w_function; Cette fonction va affecter à x1 et x2 des valeurs pseudo-aléatoires tirés selon une loi gaussienne. Il est possible de tester cette fonction en regardant quelle distribution des données elle produit : #include <cstdlib> #include <cmath> #include <iostream> #include <fstream> const double PI= ; using namespace std;

7 double randomuniform() return rand()/(double)rand_max; void polarmarsaglia(double *x1,double *x2) double W,V1,V2; do double U1=randomUniform(); double U2=randomUniform(); V1=2*U1-1; V2=2*U2-1; W=V1*V1+V2*V2; while(w>1); /*Apres cette étape, V1 et V2 ont été tirés de manière uniforme sur [-1;1] / V2²+V1²<=1*/ double W_function=sqrt(-2*log(W)/W); *x1=v1*w_function; *x2=v2*w_function; int main() /*INITIALISATION DES STRUCTURES DE DONNEES*/ srand(time(0)); int taille=1200; double nombretests= ; long compteur1[taille]; for(int i=0;i<taille;i++) compteur1[i]=0; /*TIRAGE DE VALEUR ALEATOIRE*/ for(int i=0;i<nombretests;i++) double x1,x2;

8 polarmarsaglia(&x1,&x2); compteur1[(int)(x1* )]++; compteur1[(int)(x2* )]++; /*AFFICHAGE DE LA DISTRIBUTION*/ ofstream f("c:\\cpp\\testdistribution.txt"); for(int i=0;i<1200;i+=1) double valeur=(i-600)/(double)100; if(compteur1[i]>0) f << valeur << " " << compteur1[i]/nombretests << "\n"; f.close(); Ici, l'instruction ofstream f("c:\\cpp\\testdistribution.txt") dépasse le cadre des cours qui ont été rédigés précédemment. Il s'agit de créer un objet de flux vers fichier. Lors de la création de cet objet, un fichier testdistribution.txt est crée dans le répertoire c:\cpp (il faut donc adapter le chemin en fonction de la machine). L'instruction : f << valeur << " " << compteur1[i]/nombretests << "\n"; demande l'écriture de ce qui suit sur le fichier, à l'instar de l'utilisation de std::cout qui demande l'écriture sur l'invite de commande. Enfin, l'instruction f.close() permet de fermer le fichier sur lequel on aura écrit la distribution. La distribution que l'on obtient à partir de la fonction proposée et du fichier proposé :

9 D'autres algortihmes sont possibles, dont l'algorithme de Ziggurat, ils ne sont pas évoqués ici cependant. 4 Génération de valeurs aléatoires selon une distribution ad hoc A partir d'un tableau passé en paramètre et qui représente une distribution de probabilité, on veut effectuer des tirages aléatoires. Soit l'exemple d'untel tableau : double t[ ]=0.5,0.03,0.05,0.3,0.01,0.01,0.1 : ce tableau est une distribution de probabilité : la somme des t[i] est égale à 1 et chaque t[i] est compris dans [0:1]. On peut vouloir faire des tirages, de sorte que 0 soit tiré avec une probabilité 0.5, que 1 soit tiré avec une probabilité 0.03 etc... On peut utiliser la fonction tirageselondistribution proposée dans le code qui suit, en notant qu'on ne vérifie pas, pour cette fonction, que la somme des probabilités soit égale à 1 : on ne vérifie pas qu'on ait une distribution. La fonction main() propose un test de cette fonction. #include <cstdlib> #include <ctime> #include <iostream> double randomuniform()

10 return rand()/(double)rand_max; int tirageselondistribution(double distrib[],int nbelts) double x=randomuniform(); double bornemin=0,bornemax=distrib[0]; int indicerenvoye=-1; if(bornemin<=x && x<=bornemax) indicerenvoye=0; for(int rg=1;rg<nbelts && indicerenvoye==-1;rg++) bornemin+=distrib[rg-1]; bornemax+=distrib[rg]; if(bornemin<=x && x<=bornemax) indicerenvoye=rg; return indicerenvoye; int main() srand(time(0)); double distrib[]=0.5,0.03,0.05,0.3,0.01,0.01,0.1; unsigned long nombretests= ; unsigned long compte[7]; for(int i=0;i<7;i++) compte[i]=0; for(int i=0;i<nombretests;i++) compte[tirageselondistribution(distrib,7)]++;

11 double somme=0; for(int i=0;i<7;i++) double x=compte[i]/(double)nombretests; somme+=x; std::cout << i << " " << x << "\n"; std::cout << "La somme : " << somme << "\n"; A noter qu'à partir de la fonction tirageselondistribution, on peut répondre à une série de problèmes : tirer des noms au hasard avec pour chaque nom une probabilité qui lui est associée... 5 Génération d'un ordre aléatoire Le problème est ici le suivant : on dispose d'une collection de valeurs ou d'objets, on veut modifier la collection de manière à ce que les valeurs ou objets soient mélangés dans un ordre aléatoire. A noter que ce problème se ramène à un problème plus simple. On note N la taille de la collection, vouloir mélanger les éléments de la collection est équivalent à produire une séquence aléatoire où chaque nombre entier de 0 à N-1 apparaît une et une seule fois. Il existe N! séquences possibles. La fonction ordrealeatoire(t[n]) remplit le tableau t avec une séquence aléatoire. int[] ordrealeatoire(int N) int tableaudesentiers[n]; double valeursaleatoires[n]; for(int i=0;i<n;i++) tableaudesentiers[i]=i; valeursaleatoires[i]=randomuniform(); bool b=true; while(b) b=false; for(int rang=1;rang<n;rang++)

12 if(valeursaleatoires[i-1]>valeursaleatoires[i]) int inter=tableaudesentiers[i]; tableaudesentiers[i]=tableaudesentiers[i-1]; tableaudesentiers[i-1]=inter; double inter2=valeursaleatoires[i]; valeursaleatoires[i]=valeursaleatoires[i-1]; valeursaleatoires[i-1]=inter2; b=true; Attention ici, la procédure de tri pourrait être améliorée : on a en effet choisi d'adopter une méthode de tri à bulle pour simplifier la présentation de la fonction quand un algorithme de tri-fusion aurait beaucoup amélioré la fonction en rendant sa lecture plus confuse cependant. Conclusions Un fichier contient toutes les fonctions qui viennent d'être présentées : On peut utiliser les fonctions de ce fichier dans un autre fichier, à partir du moment où dans cet autre fichier, on met include "utilitairealea.cpp" on met le fichier utilitairealea.cpp dans le même répertoire que le nouveau fichier.

13 C'est un premier exemple de répartition du code en plusieurs fichiers. Les fonctions présentées dans le présent cours et dans le fichier utilitairealea.cpp permettent de résoudre un assez grand nombre des problèmes de générations aléatoire, les exercices liés à ce cours illustrent quelques utilisations.

2.5- Les flux. 1- Librairies de flux. 2- Manipulation de cin. 3- Lecture et écriture de fichiers. 4- Les flux et les chaînes

2.5- Les flux. 1- Librairies de flux. 2- Manipulation de cin. 3- Lecture et écriture de fichiers. 4- Les flux et les chaînes 2.5- Les flux 1- Librairies de flux 2- Manipulation de cin 3- Lecture et écriture de fichiers 4- Les flux et les chaînes 5- Passage de paramètres en ligne de commande 6- Un exemple de récupération CSV

Plus en détail

1.1- Compiler et exécuter un premier programme en C++

1.1- Compiler et exécuter un premier programme en C++ 1.1- Compiler et exécuter un premier programme en C++ 1- Un premier programme en C++ 2- Compilation et exécution 1- Un premier programme en C++ Le premier programme que propose le cours consiste à afficher

Plus en détail

Programmation C++ (débutant)/les tableaux statiques

Programmation C++ (débutant)/les tableaux statiques Programmation C++ (débutant)/les tableaux statiques 1 Programmation C++ (débutant)/les tableaux statiques Le cours du chapitre 6 : les tableaux statiques Les tableaux Une variable entière de type int ne

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

Examen de Programmation I

Examen de Programmation I Examen de Programmation I Sciences et Technologies du Vivant, Semestre 1 Mercredi 22 décembre 2010 1. N oubliez pas de mettre vos NOM et PRÉNOM sur toutes vos copies. 2. Merci de garder la donnée. 3. Vous

Plus en détail

Trier des tableaux en C++ : efficacité du std::sort (STL) et tris paramétrés

Trier des tableaux en C++ : efficacité du std::sort (STL) et tris paramétrés Trier des tableaux en C++ : efficacité du std::sort (STL) et tris paramétrés Hélène Toussaint, juillet 2014 Sommaire 1. Efficacité du std::sort... 1 1.1. Conditions expérimentales... 1 1.2. Tableaux de

Plus en détail

1.5- Les pointeurs et la gestion de la mémoire

1.5- Les pointeurs et la gestion de la mémoire 1.5- Les pointeurs et la gestion de la mémoire 1- Notion de pointeur, déclaration et initialisation 2- La gestion de la mémoire et ses dangers 3- Opérations sur les pointeurs 4- Pointeurs et tableaux 5-

Plus en détail

0- Le langage C++ 1- Du langage C au langage C++ 2- Quelques éléments sur le langage. 3- Organisation du cours

0- Le langage C++ 1- Du langage C au langage C++ 2- Quelques éléments sur le langage. 3- Organisation du cours 0- Le langage C++ 1- Du langage C au langage C++ 2- Quelques éléments sur le langage 3- Organisation du cours Le présent cours constitue une introduction pour situer le langage C++, beaucoup des concepts

Plus en détail

C3 : Manipulations statistiques

C3 : Manipulations statistiques C3 : Manipulations statistiques Dorat Rémi 1- Génération de valeurs aléatoires p 2 2- Statistiques descriptives p 3 3- Tests statistiques p 8 4- Régression linéaire p 8 Manipulations statistiques 1 1-

Plus en détail

Programmation Objet - Cours II

Programmation Objet - Cours II Programmation Objet - Cours II - Exercices - Page 1 Programmation Objet - Cours II Exercices Auteur : E.Thirion - Dernière mise à jour : 05/07/2015 Les exercices suivants sont en majorité des projets à

Plus en détail

Tableaux dynamiques avec vector

Tableaux dynamiques avec vector Tableaux dynamiques avec vector Tableaux statiques Les tableaux que nous avons vus jusqu'ici sont des tableaux statiques: int tab[3]; Cette forme de tableaux vient du langage C, et est encore très utilisée.

Plus en détail

420KEL Petite révision v. 1,65. Petite révision

420KEL Petite révision v. 1,65. Petite révision Petite révision Quelques petits exercices pour vous rafraîchir la mémoire et vous remettre en forme. Dans les exercices pour lesquels on vous demande de programmer, cherchez à produire un résultat à la

Plus en détail

TP Interface graphique et C++ numéro 1

TP Interface graphique et C++ numéro 1 TP Interface graphique et C++ numéro 1 Master IGC - 1 re année année 2010-2011 Ce premier TP a pour objectif de vous familiariser avec le compilateur C++, les entréessorties du langage et l utilisation

Plus en détail

LIF1 : ALGORITHMIQUE ET PROGRAMMATION IMPÉRATIVE, INITIATION

LIF1 : ALGORITHMIQUE ET PROGRAMMATION IMPÉRATIVE, INITIATION Licence STS Université Claude Bernard Lyon I LIF1 : ALGORITHMIQUE ET PROGRAMMATION IMPÉRATIVE, INITIATION 1 COURS 7 : Structures et Fichiers OBJECTIFS DE LA SÉANCE Deux notions abordées dans ce cours Celle

Plus en détail

LIF 1 TP 3 : Passage de paramètres / Tableaux 1D

LIF 1 TP 3 : Passage de paramètres / Tableaux 1D LIF 1 TP 3 : Passage de paramètres / Tableaux 1D Objectifs : Traduction d algorithmes en langage C Mode de passage des paramètres : données, données/résultats (cas particulier des tableaux). Utilisation

Plus en détail

Méthodes de Monte-Carlo Simulation de grandeurs aléatoires

Méthodes de Monte-Carlo Simulation de grandeurs aléatoires Méthodes de Monte-Carlo Simulation de grandeurs aléatoires Master Modélisation et Simulation / ENSTA TD 1 2012-2013 Les méthodes dites de Monte-Carlo consistent en des simulations expérimentales de problèmes

Plus en détail

Initiation à la programmation en Python

Initiation à la programmation en Python I-onventions Initiation à la programmation en Python Une commande Python sera écrite en caractère gras. Exemples : print("bonjour") max=input("nombre maximum autorisé :") Le résultat de l'exécution d'un

Plus en détail

Analyse de la complexité algorithmique (1)

Analyse de la complexité algorithmique (1) Analyse de la complexité algorithmique (1) L analyse de la complexité telle que nous l avons vue jusqu à présent nous a essentiellement servi à déterminer si un problème est ou non facile (i.e. soluble

Plus en détail

TP1 - Introduction au langage C

TP1 - Introduction au langage C ENS Lyon L-Info PROJ1 2014-2015 TP1 - Introduction au langage C Sujet à terminer pour le dimanche 20 à 2h59, sous forme d une archive.zip contenant votre code source, par email à aurelien.cavelan@ens-lyon.fr.

Plus en détail

Simulation de variables aléatoires

Simulation de variables aléatoires Simulation de variables aléatoires S. Robin INA PG, Biométrie Décembre 1997 Table des matières 1 Introduction Variables aléatoires discrètes 3.1 Pile ou face................................... 3. Loi de

Plus en détail

Cours C++ Spécificités du C++ (hors POO) références, allocation dynamique de mémoire...

Cours C++ Spécificités du C++ (hors POO) références, allocation dynamique de mémoire... Cours C++ Spécificités du C++ (hors POO) références, allocation dynamique de mémoire... Spécifités notables du C++ Référence Allocation dynamique de mémoire : opérateur new et delete Librairie standard

Plus en détail

INFO-F-101 Programmation Projet 4

INFO-F-101 Programmation Projet 4 INFO-F-101 Programmation Projet 4 Année académique 2008-2009 1 Introduction Une image peut-être décomposée en un tableau de points élémentaires appelés pixels (abréviation de picture element). Supposons

Plus en détail

module SIN21 Rendre un syste me communicant Analyse UML et algorithmie 1 Modification du cahier des charges

module SIN21 Rendre un syste me communicant Analyse UML et algorithmie 1 Modification du cahier des charges Module SIN221 Rendre un syste me communicant Analyse UML et algorithmie Objectifs : Modifier des diagrammes UML suite à la modification du cahier des charges. Caractériser et valider une classe en C++.

Plus en détail

Chapitre 3 : Pointeurs et références

Chapitre 3 : Pointeurs et références p. 1/18 Chapitre 3 : Pointeurs et références Notion de pointeur L adresse d une variable est une valeur. On peut donc la stocker dans une variable. Un pointeur est une variable qui contient l adresse d

Plus en détail

TD 5 LES POINTEURS. Définition: Pointeur

TD 5 LES POINTEURS. Définition: Pointeur TD 5 LES POINTEURS d'après le site de F. Faber http://www.ltam.lu/tutoriel_ansi_c Définition: Pointeur Un pointeur est une variable spéciale qui peut contenir l'adresse d'une autre variable. En C, chaque

Plus en détail

1 Générateurs à Congruences Linéaires (GCL)

1 Générateurs à Congruences Linéaires (GCL) TP 4 : Générateurs pseudo-aléatoires et applications Un générateur de nombres pseudo-aléatoires, pseudorandom number generator (PRNG) en anglais, est un algorithme qui génère une séquence de nombres présentant

Plus en détail

Introduction à Make et aux fonctions pseudo-aléatoires

Introduction à Make et aux fonctions pseudo-aléatoires Introduction à Make et aux fonctions pseudo-aléatoires 1 Introduction à Make Support de TP C Make est un outil de programmation, dont une version est disponible pour les systèmes Unix sous la licence GNU

Plus en détail

Correction langage Java

Correction langage Java MINISTÈRE DE L ÉCOLOGIE, DU DÉVELOPPEMENT DURABLE, DES TRANSPORTS ET DU LOGEMENT EXAMEN PROFESSIONNEL DE VÉRIFICATION D APTIDUDE AUX FONCTIONS DE PROGRAMMEUR Session 2010 Correction langage Java Langage:

Plus en détail

CONCOURS D ADMISSION. Option économique MATHEMATIQUES III. Année 2006

CONCOURS D ADMISSION. Option économique MATHEMATIQUES III. Année 2006 ESSEC M B A CONCOURS D ADMISSION Option économique MATHEMATIQUES III Année 2006 La présentation, la lisibilité, l orthographe, la qualité de la rédaction, la clarté et la précision des raisonnements entreront

Plus en détail

JAVA année 2015 CP 2 série n 2

JAVA année 2015 CP 2 série n 2 JAVA année 2015 CP 2 série n 2 Exercices sur les conditionnelles, le contrôle de flot et les méthodes statiques Exercice 1 Écrire un programme Ex0201.java qui lit 3 nombres au clavier, les classes dans

Plus en détail

Université des Antilles et de la Guyane Département Scientifique Interfacultaire Corrigé Examen INFO1 Informatique

Université des Antilles et de la Guyane Département Scientifique Interfacultaire Corrigé Examen INFO1 Informatique Université des Antilles et de la Guyane Département Scientifique Interfacultaire Corrigé Examen INFO1 Informatique Le corrigé propose une des réponses possibles aux problèmes posés. Le but de l'examen

Plus en détail

Compte en banque : Exemple de conception et implantation par raffinement successif

Compte en banque : Exemple de conception et implantation par raffinement successif Compte en banque : Exemple de conception et implantation par raffinement successif 11 octobre 2014 1 Énoncé On veut écrire un programme qui fait la mise à jour de votre compte en banque. Le programme traite

Plus en détail

Programmation I : Cours d introduction à la programmation Pointeurs

Programmation I : Cours d introduction à la programmation Pointeurs Programmation I : Cours d introduction à la programmation Pointeurs Laboratoire d Intelligence Artificielle Faculté I&C Programmation I Pointeurs 1 / 23 Rappel du calendrier Programmation I Pointeurs 2

Plus en détail

Algorithmique IN102 TD 3

Algorithmique IN102 TD 3 Algorithmique IN10 TD 16 décembre 005 Exercice 1 Clairement, il existe des arbres de hauteur h à h + 1 éléments : il sut pour cela que leurs n uds internes aient au plus un ls non vide. On a alors un arbre

Plus en détail

Feuille d'exercices 1. Prise en main. Ecrire un programme qui ache la phrase Bonjour le monde! à l'écran.

Feuille d'exercices 1. Prise en main. Ecrire un programme qui ache la phrase Bonjour le monde! à l'écran. Master MIMSE - Spécialité 3-1ère Année J0MS7301 : Algorithmique et Programmation Objet Feuille d'exercices 1 Prise en main Exercice 0 : Ecrire un programme qui ache la phrase Bonjour le monde! à l'écran.

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

Série 2 Premiers programmes

Série 2 Premiers programmes Licence pro. GTSBD 2013-2014 Structures de données, langage Python Série 2 Premiers programmes Programmes avec des affectations, des lectures et des écritures Exo 2.1 Le problème de la machine qui rend

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

Chapitre 1: Introduction au calcul des probabilités, cas d un univers fini.

Chapitre 1: Introduction au calcul des probabilités, cas d un univers fini. Chapitre 1: Introduction au calcul des probabilités, cas d un univers fini. 1 Introduction Des actions comme lancer un dé, tirer une carte d un jeu, observer la durée de vie d une ampoule électrique, etc...sont

Plus en détail

PLAN DU COURS ENTRÉE SORTIE FONCTION PRINTF. Fonction de la bibliothèque stdio.h. Affichage d'un texte:

PLAN DU COURS ENTRÉE SORTIE FONCTION PRINTF. Fonction de la bibliothèque stdio.h. Affichage d'un texte: PLAN DU COURS Introduction au langage C Notions de compilation Variables, types, constantes, Tableaux, opérateurs Entrées sorties de base Structures de contrôle Algorithmes de recherche Algorithmes de

Plus en détail

Introduction à la programmation Travaux pratiques: séance 10 INFO0201-1. B. Baert & F. Ludewig Bruno.Baert@ulg.ac.be - F.Ludewig@ulg.ac.

Introduction à la programmation Travaux pratiques: séance 10 INFO0201-1. B. Baert & F. Ludewig Bruno.Baert@ulg.ac.be - F.Ludewig@ulg.ac. Introduction à la programmation Travaux pratiques: séance 10 INFO0201-1 B. Baert & F. Ludewig Bruno.Baert@ulg.ac.be - F.Ludewig@ulg.ac.be Programme de la séance Correction de la simulation d examen Questions

Plus en détail

Claude Delannoy. Exercices C++ en langage. 3 e édition. Groupe Eyrolles, 1997, 1999, 2007, ISBN : 978-2-212-12201-5

Claude Delannoy. Exercices C++ en langage. 3 e édition. Groupe Eyrolles, 1997, 1999, 2007, ISBN : 978-2-212-12201-5 Claude Delannoy Exercices en langage C++ 3 e édition Groupe Eyrolles, 1997, 1999, 2007, ISBN : 978-2-212-12201-5 Chapitre 3 Les fonctions Rappels Généralités Une fonction est un bloc d instructions éventuellement

Plus en détail

Tutorial: Compiler un programme en C++

Tutorial: Compiler un programme en C++ Tutorial: Compiler un programme en C++ Ce tutorial propose de reprendre dans deux cas de figures (un unique fichier source, et plusieurs fichiers sources en c++11 différentes approches permettant de compiler

Plus en détail

Simulation Numérique

Simulation Numérique Ecole Nationale de Techniques Avancées Simulation Numérique Chapitre 4 Surcharge des opérateurs Eric Lunéville Surcharge des opérateurs Le C++ utilise des opérateurs prédéfinis tels que + - * / sur les

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

Les types somme. 1 Préparation du TP. 2 Interface du module Carte. Algorithmes et Programmation Impérative 2. 2.1 Les types de donnees

Les types somme. 1 Préparation du TP. 2 Interface du module Carte. Algorithmes et Programmation Impérative 2. 2.1 Les types de donnees Univ. Lille1 - Licence Informatique 2ème année 2014-15 Algorithmes et Programmation Impérative 2 Les types somme 1 Préparation du TP Dans le prochain TP, vous allez réaliser un programme de jeu de poker

Plus en détail

APPLICATION. Définition des classes : On va définir - une classe carte - une classe piledecartes - une classe joueur

APPLICATION. Définition des classes : On va définir - une classe carte - une classe piledecartes - une classe joueur APPLICATION On souhaite écrire un programme qui permet à l utilisateur de jouer au jeu de cartes 21. Principe : L utilisateur reçoit une carte à la fois et après chaque carte il décide s il continue ou

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

L1 Informatique Université Paris 8-2010-2011 Programmation Impérative I Rim Chaabane rchaabane@ai.univ-paris8.fr - Cours 6 - Les pointeurs

L1 Informatique Université Paris 8-2010-2011 Programmation Impérative I Rim Chaabane rchaabane@ai.univ-paris8.fr - Cours 6 - Les pointeurs Les pointeurs Le langage C permet de manipuler des adresses d objets ou de fonctions par le biais de pointeurs. Pour ce faire on peut désigner des variables dites de type pointeur, destinées à contenir

Plus en détail

Programmation en Python - Cours 2 : Premiers programmes

Programmation en Python - Cours 2 : Premiers programmes Programmation en Python - Cours 2 : Premiers programmes 2013/2014 Diverses utilisations de python Utilisation en mode interactif Ecriture d un programme python Saisie de données par l utilisateur : input(),

Plus en détail

Ch. 1 : Bases de programmation en Visual Basic

Ch. 1 : Bases de programmation en Visual Basic Ch. 1 : Bases de programmation en Visual Basic 1 1 Variables 1.1 Définition Les variables permettent de stocker en mémoire des données. Elles sont représentées par des lettres ou des groupements de lettres

Plus en détail

Méthodes Numériques et Informatiques (MP050) Examen de TP du 23 juin 2010

Méthodes Numériques et Informatiques (MP050) Examen de TP du 23 juin 2010 Méthodes Numériques et Informatiques () Examen de TP du 23 juin 2010 Calculatrices et documents autorisés Les deux parties sont indépendantes. Les questions indépendantes sont signalées par le symbole

Plus en détail

Utilitaires Tableau [tb01] - Outils

Utilitaires Tableau [tb01] - Outils Utilitaires Tableau [tb01] - Outils Karine Zampieri, Stéphane Rivière, Béatrice Amerein-Soltner Unisciel algoprog Version 9 avril 2015 Table des matières 1 Utilitaires Tableau / tb01outils1 (C++) 1 1.1

Plus en détail

TP 8 : Arbres binaires de recherche

TP 8 : Arbres binaires de recherche TP 8 : Arbres binaires de recherche Semaine du 17 Mars 2008 Exercice 1 Dénir une structure struct noeud_s permettant de coder un n ud d'un arbre binaire contenant une valeur entière. Ajouter des typedef

Plus en détail

Informatique III: Programmation en C++

Informatique III: Programmation en C++ Rappel: fstream Informatique III: Programmation en C++ void open(const char *nom fichier, openmode mode) ouvre le fichiers nom fichier dans le mode mode (ifstream: par défaut en lecture, ofstream: par

Plus en détail

LIF1 : ALGORITHMIQUE ET PROGRAMMATION IMPÉRATIVE, INITIATION

LIF1 : ALGORITHMIQUE ET PROGRAMMATION IMPÉRATIVE, INITIATION Licence STS Université Claude Bernard Lyon I LIF1 : ALGORITHMIQUE ET PROGRAMMATION IMPÉRATIVE, INITIATION 1 COURS 5 : Les Tableaux PLAN DE LA SÉANCE Comprendre l utilité des tableaux Apprendre à manipuler

Plus en détail

Jeu Simon: analyse. La partie est perdue, on a eu une erreur ou un dépassement du temps limite : musique

Jeu Simon: analyse. La partie est perdue, on a eu une erreur ou un dépassement du temps limite : musique Jeu Simon: analyse 1 Algorithme du jeu : Effectuer un tirage de la séquence des couleurs (20 éléments, 3 couleurs) Répéter Afficher la séquence des couleurs et émission des notes associées Répéter Entrée

Plus en détail

Algorithmique Partie 1

Algorithmique Partie 1 Algorithmique Partie 1 IUT Informatique de Lens, 1ère Année Université d Artois Frédéric Koriche koriche@cril.fr 2011 - Semestre 1 Modalités Sommaire 1 Modalités 2 Programmation 3 Données 4 Opérateurs

Plus en détail

InitProg par l exemple

InitProg par l exemple InitProg par l exemple Martin Monperrus 16 décembre 2011 Ce cument illustre avec des programmes Ocamlcartes et Ocaml le polycopié du cours Initiation à la programmation (InitProg) de l Université Lille

Plus en détail

LM206 : Initiation à Scilab

LM206 : Initiation à Scilab Université Pierre et Marie Curie Année 2013-2014 Licence période 2 7 Au hasard LM206 : Initiation à Scilab Cette séance traite de quelques possibilités de simulation en probabilités et statistiques. Après

Plus en détail

ISN TP 3 : «Premiers pas en programmation» 18/06/2015

ISN TP 3 : «Premiers pas en programmation» 18/06/2015 ISN TP 3 : «Premiers pas en programmation» 18/06/2015 Cette année, nous allons développer des programmes dans un langage de programmation qui s appelle Python. Nous allons travailler dans un environnement

Plus en détail

Java & Algorithme Corrigé du test final

Java & Algorithme Corrigé du test final Java & Algorithme Corrigé du test final 1 QUESTIONS EN JAVA Chaque question est sur un point, sauf certaines sur deux points. En tout, le QCM est noté sur 24 : la note est divisée par 6 pour revenir entre

Plus en détail

LE LANGAGE C ADAPTÉ AU MICROCONTRÔLEURS

LE LANGAGE C ADAPTÉ AU MICROCONTRÔLEURS LE LANGAGE C ADAPTÉ AU MICROCONTRÔLEURS 1. PRÉSENTATION. Le langage C a fait son apparition en 1972 pour le développement du système d exploitation Unix. Il est devenu un standard de la norme ANSI en 1983.

Plus en détail

NFA032 Programmation objet avec Java

NFA032 Programmation objet avec Java NFA032 Programmation objet avec Java CNAM-Paris-Île-de-France Première session 2013 (sujet bis) Documents et calculatrice interdits. Le barème est donné à titre indicatif. Exercice 1 : programmation objet

Plus en détail

Jeu de l anagramme [tb06] - Exercice

Jeu de l anagramme [tb06] - Exercice Jeu de l anagramme [tb06] - Exercice Karine Zampieri, Stéphane Rivière, Béatrice Amerein-Soltner Unisciel algoprog Version 23 octobre 2016 Table des matières 1 Jeu de l anagramme / pgjeugram 2 1.1 Présentation

Plus en détail

Problème: si les tableaux que l'on trie sont déjà à peu près triés, l'algorithme n'est pas efficace.

Problème: si les tableaux que l'on trie sont déjà à peu près triés, l'algorithme n'est pas efficace. Traonmilin Yann traonmil@enst.fr MOD Algorithmique Probabiliste 1. Deux exemples 1.1. Quicksort randomisé. Dans l'algorithme de tri classique Quicksort, le pivot est choisi au début du tableau puis on

Plus en détail

ECOLE POLYTECHNIQUE DE MONTREAL DEPARTEMENT DE GENIE ELECTRIQUE ET DE GENIE INFORMATIQUE Section informatique. Cours 3.307P: INFORMATIQUE EXAMEN FINAL

ECOLE POLYTECHNIQUE DE MONTREAL DEPARTEMENT DE GENIE ELECTRIQUE ET DE GENIE INFORMATIQUE Section informatique. Cours 3.307P: INFORMATIQUE EXAMEN FINAL ECOLE POLYTECHNIQUE DE MONTREAL DEPARTEMENT DE GENIE ELECTRIQUE ET DE GENIE INFORMATIQUE Section informatique Cours 3.307P: INFORMATIQUE EXAMEN FINAL DATE : Dimanche 8 décembre 1996 HEURE: DE 13h30 A 16h00

Plus en détail

LES GENERATEURS DE NOMBRES ALEATOIRES

LES GENERATEURS DE NOMBRES ALEATOIRES LES GENERATEURS DE NOMBRES ALEATOIRES 1 Ce travail a deux objectifs : ====================================================================== 1. Comprendre ce que font les générateurs de nombres aléatoires

Plus en détail

Algorithmique. Mode d application

Algorithmique. Mode d application I - Généralités Algorithmique T ale S Définition: Un algorithme est une suite finie d instructions permettant la résolution systématique d un problème donné. Un algorithme peut-être utilisé pour décrire

Plus en détail

Chaîne d additions ATTENTION!

Chaîne d additions ATTENTION! Chaîne d additions Épreuve pratique d algorithmique et de programmation Concours commun des écoles normales supérieures Durée de l épreuve: 3 heures 30 minutes Juin 2012 ATTENTION! N oubliez en aucun cas

Plus en détail

Exercice 1 QCM. 4 i. e π ou. e π, ou : 4 ( i) 1 /4. e π. e π Réponse d. 1. Le carré de z est : ce qui donne : soit : , soit 4i

Exercice 1 QCM. 4 i. e π ou. e π, ou : 4 ( i) 1 /4. e π. e π Réponse d. 1. Le carré de z est : ce qui donne : soit : , soit 4i TSTI2D - Bac 203 - Polynésie STI2D -.0 - Corrigé.doc - Page /5 Terminale STI2D - Bac 203 - Polynésie - Corrigé. TSTI2D - Bac 203 - Polynésie STI2D -.0 - Corrigé.doc - Page 2/5 Exercice QCM. Le carré de

Plus en détail

Licence Sciences et Technologies Examen janvier 2010

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

Plus en détail

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

Fonctions et procédures. Procedures: déclaration et appel

Fonctions et procédures. Procedures: déclaration et appel Cours 5 : fonctions, procédures, passage des paramètres 1 Fonctions et procédures Idée : capitaliser sur le code déjà écrit pour introduire des nouvelles commandes et opérations. On souhaite donner un

Plus en détail

Annexe commune aux séries ES, L et S : boîtes et quantiles

Annexe commune aux séries ES, L et S : boîtes et quantiles Annexe commune aux séries ES, L et S : boîtes et quantiles Quantiles En statistique, pour toute série numérique de données à valeurs dans un intervalle I, on définit la fonction quantile Q, de [,1] dans

Plus en détail

Systeme d'exploitation

Systeme d'exploitation Introduction au dévellopement de Methodes Natives Partie I : appelle de methodes C++ sous windows Auteur: Frank Sauvage. 1 \ introduction aux methodes natives : Les methodes natives sont des methodes devellopées

Plus en détail

3 - Boucles for et Séquences (range, listes, chaînes de caractères)

3 - Boucles for et Séquences (range, listes, chaînes de caractères) 3 - Boucles for et Séquences (range, listes, chaînes de caractères) Exercices et programmes à rendre dans le compte-rendu de TP : ex 1 (TP3_1), ex 2 (TP3_2), ex 3 (TP3_3), ex 5 (TP3_5), ex 6 (TP3_6), ex

Plus en détail

Algorithmique et Structures de Données

Algorithmique et Structures de Données 1.1 Algorithmique et Structures de Données Jean-Charles Régin Licence Informatique 2ème année 1.2 Itérations Jean-Charles Régin Licence Informatique 2ème année Itération : définition 3 En informatique,

Plus en détail

Manipulations binaires en C++

Manipulations binaires en C++ Manipulations binaires en C++ Tous les exercices devront être résolus sans utiliser les opérateurs *, / et % Rappels En informatique, les nombres sont stockés sous forme binaire. Même si ce n'est pas nécessaire,

Plus en détail

Support du cours de Probabilités IUT d Orléans, Département d informatique

Support du cours de Probabilités IUT d Orléans, Département d informatique Support du cours de Probabilités IUT d Orléans, Département d informatique Pierre Andreoletti IUT d Orléans Laboratoire MAPMO (Bât. de Mathématiques UFR Sciences) - Bureau 126 email: pierre.andreoletti@univ-orleans.fr

Plus en détail

Période 3 Les tableaux

Période 3 Les tableaux Département Génie Électrique et Informatique Industrielle Période 3 Les tableaux 1/ Recopie de certains éléments d un tableau Soit les déclarations suivantes : int Tabint[10]={65,21, 9,23, 1,32,5, 69,12,

Plus en détail

Rédigé par un élève de Terminale S à l'aide de ses livres de maths (Indice, Bordas), ses cours, toute sa peine, et son stress pour le bac! J.

Rédigé par un élève de Terminale S à l'aide de ses livres de maths (Indice, Bordas), ses cours, toute sa peine, et son stress pour le bac! J. Rédigé par un élève de Terminale S à l'aide de ses livres de maths (Indice, Bordas), ses cours, toute sa peine, et son stress pour le bac! J. FAIVRE s de cours exigibles au bac S en mathématiques Enseignement

Plus en détail

Mathématiques pour l informatique 1 notes de cours sur la seconde partie

Mathématiques pour l informatique 1 notes de cours sur la seconde partie Mathématiques pour l informatique notes de cours sur la seconde partie L Université Paris-Est, Marne-la-Vallée Cyril Nicaud Organisation Ce demi-cours est composé de 6 séances de cours et 6 séances de

Plus en détail

Correction TP de programmation n o 6

Correction TP de programmation n o 6 Correction TP de programmation n o 6 Cours de programmation impérative Licence MPI L1 S2 - Info 121 Types tableau de produit et produit de tableau Cette séance de travaux pratiques est dédiée à l écriture

Plus en détail

Le mot «algorithme» vient du nom de l auteur persan Al-Khuwarizmi (né vers 780 - mort vers 850) Une définition: «un algorithme est une suite finie de

Le mot «algorithme» vient du nom de l auteur persan Al-Khuwarizmi (né vers 780 - mort vers 850) Une définition: «un algorithme est une suite finie de Le mot «algorithme» vient du nom de l auteur persan Al-Khuwarizmi (né vers 780 - mort vers 850) Une définition: «un algorithme est une suite finie de règles à appliquer dans un ordre déterminé à un nombre

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

1.3- Structures de contrôles

1.3- Structures de contrôles 1.3- Structures de contrôles 1- Instructions conditionnelles 2- Les boucles 3- Continue, break et goto 4- Localités des variables Toutes les structures de contrôle ne sont pas évoquées ici : on donne une

Plus en détail

Classes et templates C++

Classes et templates C++ Classes et templates C++ Ce TP propose une application des classes, des templates et du polymorphisme au travers du design de classes permettant de gérer des courbes de Bézier. Contents 1 Bézier unidimensionnelle

Plus en détail

Examen de Langage C Vendredi 2 Décembre 2011

Examen de Langage C Vendredi 2 Décembre 2011 Année 2011-2012 Examen de Langage C Vendredi 2 Décembre 2011 Promotion Guichet 1 ière année É. Salvat Modalités : Durée : 2 heures Seul document autorisé : carte de référence du C, pas de machine à calculer,

Plus en détail

Génie Logiciel Industriel - Travaux pratiques

Génie Logiciel Industriel - Travaux pratiques - Travaux pratiques TP1 : Recherche par dichotomie I. Introduction. L objectif de ce TP est de mettre en pratique des notions de base du langage C (entrées/sorties, structure de contrôle, fonctions, ).

Plus en détail

Licence E.E.A. TD N 2 de Langage C/C++

Licence E.E.A. TD N 2 de Langage C/C++ TD N 2 de Langage C/C++ 1 Licence E.E.A. TD N 2 de Langage C/C++ Ce TD a pour objectif de vous faire découvrir et utiliser le langage C et peut être C++. Il s agira de transcrire sous la forme d un programme

Plus en détail

Master IAD Module PS. Reconnaissance de la parole (suite) Modèles de Markov et bases de données. Gaël RICHARD Février 2008

Master IAD Module PS. Reconnaissance de la parole (suite) Modèles de Markov et bases de données. Gaël RICHARD Février 2008 Master IAD Module PS Reconnaissance de la parole (suite) Modèles de Markov et bases de données Gaël RICHARD Février 2008 1 Reconnaissance de la parole Introduction Approches pour la reconnaissance vocale

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

Sujet d examen 1. Pratique du C. Novembre 2009

Sujet d examen 1. Pratique du C. Novembre 2009 Durée 1 h 30 Documents autorisés Sujet d examen 1 Pratique du C Novembre 2009 Introduction Écrivez lisiblement et n hésitez pas à commenter votre code en langage C. Vous ne pouvez utiliser que les fonctions

Plus en détail

Série 9: Intérêt des fonctions, portée des variables, variables statiques Buts

Série 9: Intérêt des fonctions, portée des variables, variables statiques Buts Série 9: Intérêt des fonctions, portée des variables, variables statiques Buts - La notion de fonction est fondamentale car elle permet d'atteindre deux objectifs: principe d'abstraction: offrir une vue

Plus en détail

Représentation des nombres entiers et réels. en binaire en mémoire

Représentation des nombres entiers et réels. en binaire en mémoire L3 Mag1 Phys. fond., cours C 15-16 Rep. des nbs. en binaire 25-09-05 23 :06 :02 page 1 1 Nombres entiers 1.1 Représentation binaire Représentation des nombres entiers et réels Tout entier positif n peut

Plus en détail

Algorithmique et programmation : les bases (C) Corrigé

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

Plus en détail

Informatique III: Programmation en C++ Introduction. Examens. Chargé de cours François Fleuret francois.fleuret@epfl.ch

Informatique III: Programmation en C++ Introduction. Examens. Chargé de cours François Fleuret francois.fleuret@epfl.ch Informatique III: Programmation en C++ Lundi 24 Octobre 2005 Chargé de cours François Fleuret francois.fleuret@epfl.ch Assistant Mathieu Salzmann mathieu.salzmann@epfl.ch Assistants étudiants Ali Al-Shabibi

Plus en détail

Bases d algorithmique

Bases d algorithmique Bases d algorithmique Christophe ROSSIGNOL Année scolaire 2015/2016 Table des matières 1 Un peu de vocabulaire 2 1.1 Qu est-ce qu un algorithme?....................................... 2 1.2 Variable, affectation...........................................

Plus en détail