Résumé du TP 2 (Boucles et hasard)

Documents pareils
Initiation à la programmation en Python

Algorithmique et structures de données I

STAGE IREM 0- Premiers pas en Python

Cours d algorithmique pour la classe de 2nde

Cours 1 : Qu est-ce que la programmation?

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if

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

1 Recherche en table par balayage


Introduction à l algorithmique et à la programmation (Info 2)

TP 1. Prise en main du langage Python

Programmation C++ (débutant)/instructions for, while et do...while

Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, , ISBN :

Rappels sur les suites - Algorithme

Support de TD ArcGIS Introduction à l automatisation et au développement avec ArcGIS 10.1 JEAN-MARC GILLIOT e année ingénieur

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP


Grille fluide. Une grille fluide sert à structurer la mise en page, la rendre harmonieuse et faciliter le passage au responsive web design

Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples

TP : Shell Scripts. 1 Remarque générale. 2 Mise en jambe. 3 Avec des si. Systèmes et scripts

Introduction à MATLAB R

ACTIVITÉ DE PROGRAMMATION

Les structures. Chapitre 3

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

LES TYPES DE DONNÉES DU LANGAGE PASCAL

INF111. Initiation à la programmation impérative en C amini/cours/l1/inf111/ Massih-Reza Amini

Algorithmique avec Algobox

I. Introduction aux fonctions : les fonctions standards

Présentation du PL/SQL

Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme

Compétences en fin de maternelle Comparer des quantités.

Introduction à l algorithmique et à la programmation M1102 CM n 3

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

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

ET 24 : Modèle de comportement d un système Boucles de programmation avec Labview.

Correction TD algorithmique

Chapitre 2 Devine mon nombre!

Cours d Informatique

Application 1- VBA : Test de comportements d'investissements

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

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)

Conventions d écriture et outils de mise au point

Algorithmique et Programmation, IMA

Traduction des Langages : Le Compilateur Micro Java

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions

TP Service HTTP Serveur Apache Linux Debian

TD n o 8 - Domain Name System (DNS)

eduscol Ressources pour la voie professionnelle Français Ressources pour les classes préparatoires au baccalauréat professionnel

Structure d un programme et Compilation Notions de classe et d objet Syntaxe

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

Évaluation et implémentation des langages

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

Glossaire des nombres

Calcul Formel et Numérique, Partie I

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

Chap III : Les tableaux

Projet Active Object

NAVIGATION SUR INTERNET EXPLORER

TP, première séquence d exercices.

Jade. Projet Intelligence Artificielle «Devine à quoi je pense»

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

1 Introduction C+ + Algorithm e. languag. Algorigramm. machine binaire. 1-1 Chaîne de développement. Séance n 4

Probabilités Loi binomiale Exercices corrigés

ASR1 TD7 : Un microprocesseur RISC 16 bits

Notions fondamentales du langage C# Version 1.0

Chapitre 2. Eléments pour comprendre un énoncé

Java DataBaseConnectivity

Solutions du chapitre 4

Simulation de variables aléatoires

Calcul Formel et Numérique, Partie I

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

exigences des standards ISO 9001: 2008 OHSAS 18001:2007 et sa mise en place dans une entreprise de la catégorie des petites et moyennes entreprises.

EVALUATION Nombres CM1

Corrigé des TD 1 à 5

Microprocesseur + Logiciel

WIMS. Découvrir et utiliser

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

Capacité d un canal Second Théorème de Shannon. Théorie de l information 1/34

OCL - Object Constraint Language

Programmation système I Les entrées/sorties

Probabilités. Rappel : trois exemples. Exemple 2 : On dispose d un dé truqué. On sait que : p(1) = p(2) =1/6 ; p(3) = 1/3 p(4) = p(5) =1/12

Partie 1. Fonctions plus complexes dans Excel. Fonctions Si(), Et(), Ou() et fonctions imbriquées. Opérateurs logiques. I.1.

Cours 1 : La compilation

Algorithme. Table des matières

Chap 4: Analyse syntaxique. Prof. M.D. RAHMANI Compilation SMI- S5 2013/14 1

Représentation d un entier en base b

Séance 0 : Linux + Octave : le compromis idéal

Algorithmique I. Algorithmique I p.1/??

Bernard Lecomte. Débuter avec HTML

TP1 - Prise en main de l environnement Unix.

Vérification de programmes et de preuves Première partie. décrire des algorithmes

Cours 3 : Python, les conditions

Approche Contract First

COURS WINDEV NUMERO 3

Pi, poker et informatique ; une «épuisante» alliance pour des projets en mathématiques

Outils pour la pratique

HTML. Notions générales

Continuité et dérivabilité d une fonction

Problème 1 : applications du plan affine

Transcription:

ULCO-IUT GTE 2012-2013 TP informatique DUT FI 1 Résumé du TP 2 (Boucles et hasard) 1. Boucles Il est fréquent en programmation d avoir besoin de répéter les mêmes instructions plusieurs fois en boucle jusqu à ce qu une certaine condition soit vérifiée. C est à cela que servent les instructions while et for. 1.1. Boucles while. La syntaxe d une boucle while est la suivante. Syntaxe de la boucle while Voici un premier exemple, le programme suivant demande à l utilisateur un nombre entre 10 et 100, puis insiste tant que la réponse obtenue n est pas satisfaisante. Le programme suivant demande un entier à l utilisateur, puis en affiche la table de multiplication :

2 Le programme précédent aurait pu être écrit de la manière suivante pour éviter d avoir à le relancer lorsqu on souhaite afficher plusieurs tables : 1.2. Boucles for. La syntaxe de la boucle for est la suivante :

3 Par exemple, le programme suivant est le strict équivalent de celui, avec une boucle while, permettant d afficher la table demandée par l utilisateur : À remarquer que ce programme aurait pu être écrit de la manière suivante : Le programme suivant utilise deux boucles for imbriquées l une dans l autre pour afficher d un seul coup toutes les tables de multiplication.

4 Le programme suivant va utiliser une troisième boucle imbriquée de manière à afficher les tables sur plusieurs colonnes (le nombre de colonnes étant spécifié par l utilisateur). On remarque qu il y a un défaut d affichage avec le programme précédent : les colonnes sont mal alignées. Voici par exemple le résultat obtenu avec un affichage sur quatre colonnes :

5 Ceci a pour cause le décalage d un espace qui s accumule à chaque fois que le résultat d une multiplication est un nombre à deux chiffres. Pour pallier ce défaut, on va d abord remarquer que le programme précédent est équivalent au suivant (où un quatrième niveau d imbrication des boucles a été ajouté). Il n y a plus qu à écrire que lorsque le résultat d une multiplication est à deux chiffres, on souhaite placer quatre espaces entre les colonnes, cinq sinon :

6 Voici le résultat obtenu pour quatre colonnes : 2. Simuler le hasard Il est fréquent qu on ait besoin d écrire des programmes dont l exécution va dépendre du hasard. Dans le domaine des jeux par exemple cette situation est très fréquente, ne serait-ce que si l on souhaite simuler un lancé de dés ou la distribution de cartes. Ceci est particulièrement problématique car il est impossible d écrire un programme qui retourne des nombres véritablement au hasard. Cependant, il existe des fonctions { f : N N telles que les termes successifs u 0 N u 0, u 1, u n, de la suite définie par récurrence par présentent toutes les caractéristiques u n+1 = f(u n ) d une séquence de nombres au hasard. Une telle fonction f est implémentée en langage c par la fonction rand dont les appels successifs retournent dans l ordre les entiers u 1, u 2, u n,. Le programme suivant par exemple affiche les vingt premiers termes de u 1 jusqu à u 20.

7 Le défaut du programme précédent est que chaque exécution retourne la même séquence de nombres. Une première manière de contourner cela consiste à modifier l entier u 0 (appelé la graine). C est précisément à cela que sert la fonction srand comme l illustre le programme suivant : Il existe une astuce communément utilisée pour choisir automatiquement une valeur de graine : cela consiste à utiliser l heure courante. C est ce que fait le programme suivant : Un autre défaut, plus subtil, apparaît lorsqu on exécute plusieurs fois de suite le programme précédent : Les valeurs de u 1, bien que différentes d une exécution à la suivante, restent anormalement voisines (essayer!). On remarque que cet effet s estompe si au lieu de comparer entre elles les valeurs des u 1, on compare par exemple les valeurs des termes u 100. Aussi est-il recommandé de faire tourner à vide la fonction rand avant de l utiliser. C est ce que fait le programme suivant par exemple :

8 Voici un programme qui simule vingt lancés successifs d un dé et affiche les résultats : Pour finir, un jeu qui consiste à deviner le nombre entre 0 et 100 qu a choisi l ordinateur :