TP 2. Structures de contrôle

Documents pareils
Initiation à la programmation en Python

TP 1. Prise en main du langage Python

STAGE IREM 0- Premiers pas en Python

Découverte de Python

Présentation du langage et premières fonctions

1 Recherche en table par balayage

Algorithmique et Programmation, IMA

Corrigé des TD 1 à 5

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)

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application

CORRECTION EXERCICES ALGORITHME 1

Chapitre 2 Devine mon nombre!

1 Définition et Appel d une fonction. V. Phan Luong. Cours 4 : Fonctions

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP


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

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

Licence Sciences et Technologies Examen janvier 2010

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

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

Cours d algorithmique pour la classe de 2nde

Algorithmique et programmation : les bases (VBA) Corrigé

L informatique en BCPST

1. Structure d'un programme FORTRAN 95

Initiation à l algorithmique

Cours 3 : Python, les conditions

Conventions d écriture et outils de mise au point

Cours d Algorithmique et de Langage C v 3.0

SNT4U16 - Initiation à la programmation TD - Dynamique de POP III - Fichiers sources

C f tracée ci- contre est la représentation graphique d une

Examen Médian - 1 heure 30

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

Cours 7 : Utilisation de modules sous python

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java

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

Recherche dans un tableau

2 Comment fonctionne un ordinateur, dans les grandes lignes

Programmation C. Apprendre à développer des programmes simples dans le langage C

Cours Informatique Master STEP

1 Lecture de fichiers

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

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

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

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

DM 1 : Montre Autoquartz ETA

V- Manipulations de nombres en binaire

Résolution d équations non linéaires

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

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

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

Optimisation, traitement d image et éclipse de Soleil

Feuille TD n 1 Exercices d algorithmique éléments de correction

Algorithmique et structures de données I

Représentation d un entier en base b

L ALGORITHMIQUE. Algorithme

Notions fondamentales du langage C# Version 1.0

# let rec concat l1 l2 = match l1 with [] -> l2 x::l 1 -> x::(concat l 1 l2);; val concat : a list -> a list -> a list = <fun>

Algorithmes et mathématiques. 1. Premiers pas avec Python. Exo Hello world!

INF 321 : mémento de la syntaxe de Java

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits

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

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

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

1 de 46. Algorithmique. Trouver et Trier. Florent Hivert. Mél : Florent.Hivert@lri.fr Page personnelle : hivert

Introduction à MATLAB R

MIS 102 Initiation à l Informatique

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

ACTIVITÉ DE PROGRAMMATION

Introduction au langage C

Algorithmes récursifs

Souad EL Bernoussi. Groupe d Analyse Numérique et Optimisation Rabat http ://

Probabilités sur un univers fini

Programme Compte bancaire (code)

Programmation avec Xcas ou Python

Java Licence Professionnelle CISII,

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

Calcul Formel et Numérique, Partie I

Les chaînes de caractères

IN Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C

Correction du baccalauréat STMG Polynésie 17 juin 2014

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

Exercices - Polynômes : corrigé. Opérations sur les polynômes

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

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.

Module Com231A - Web et Bases de Données Notion 5 : Formulaires et utilisation des Bases de Données avec PHP

Langage Java. Classe de première SI

Calcul matriciel. Définition 1 Une matrice de format (m,n) est un tableau rectangulaire de mn éléments, rangés en m lignes et n colonnes.

Tp 1 correction. Structures de données (IF2)

Simulation de variables aléatoires

Les arbres binaires de recherche

UE Programmation Impérative Licence 2ème Année

Contexte. Pour cela, elles doivent être très compliquées, c est-à-dire elles doivent être très différentes des fonctions simples,

R, Bonnes pratiques. Christophe Genolini

Algorithmes et Programmes. Introduction à l informatiquel. Cycle de vie d'un programme (d'un logiciel) Cycle de vie d'un programme (d'un logiciel)

Algorithme. Table des matières

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

Quelques algorithmes simples dont l analyse n est pas si simple

Le Langage C Version 1.2 c 2002 Florence HENRY Observatoire de Paris Université de Versailles florence.henry@obspm.fr

Utilisation d objets : String et ArrayList

Transcription:

TP. Structures de contrôle Lorsqu un problème est résolu par un algorithme, pour obtenir sa solution, il convient de suivre les instructions les unes à la suite des autres. C est d ailleurs ce que fait Python lorsqu on exécute un programme : il réalise les instructions les unes après les autres dans l ordre où elles sont écrites. Ce chemin s appelle le flux d exécution. Nous étudions dans ce TP des structures qui vont nous permettre de controler le flux d exécution. Structure conditionnelle On appelle structure conditionnelle les instructions qui permettent de tester si une condition est vraie ou non.. Le test if L instruction if est la structure de test la plus basique. Elle permet d exécuter une série d instructions si une condition est vraie. La syntaxe de cette expression est la suivante : La condition est un booléen (type bool, cf TP). Exemple. En ligne de commande. a= if a>0 : a est positif print( a est positif ) if condition : bloc d instructions ; attention à l indentation (notamment en mode script). Un bloc d instructions est associé à une ligne d en-tête : «if condition». Les instructions qui dépendent de cette condition doivent être décalées d un même nombre d espaces. L environnement IDLE réalise cette indentation automatiquement lorsque vous passez à la ligne (touche : Entrée) : elle est de 4 espaces ou tabulation. if a>0 : print(positif) Exercice. Réaliser un programme pair.py qui teste si une variable a (de type entier) est un nombre pair et affiche, le cas échéant, L entier a est pair.. La structure conditionnelle avec alternative : if... elif... else L instruction else (sinon) permet de programmer une éxecution alternative lorsque la condition suivant if n est pas réalisée. L instruction elif (contraction de else if ) permet de définir des conditions alternatives. La structure générale est la suivante : if condition : elif condition :... else:

Exercice. Rédiger et exécuter le programme Python suivant sous le nom de vab.py. Tester pour différentes valeurs de la variable a. Que réalise-t il? a=- if a>=0 : print(a) print(-a) Exercice 3. Compléter le programme pair.py précédent en affichant l alternative L entier a est impair. Exercice 4. Que réalise les deux programmes Python ci-dessous? a,b=, if a>b : print(a) print(b) a,b=, if a>b : m=a m=b print(m) En s appuyant sur les modèles précédents, réaliser un programme max3 qui affiche la plus grande valeur parmi trois variables entières a,b et c. Indication. max(a, b, c) = max(max(a, b), c). Tester votre programme pour les valeurs : a,b,c =,,3 ; a,b,c =,3, et a,b,c = 3,,. Exercice 5. Réaliser un programme Pyhton, nommé heuresinfo.py qui demande à un utilisateur (élève de PCSI) d entrer : un numéro de semaine (calendrier du lycée : entre 0 et 35) puis un jour de la semaine (en minuscule). Le programme affiche le nombre d heures d informatique (cours ou TP) dans l emploi du temps de PCSI de la journée donnée. Numéro de la semaine? 3 Jour de la semaine? dimanche Vous n avez aucune heure d informatique. Pour vous entraîner à domicile : Exercice 6. Rédiger un programme Python sous le nom de bissextile.py qui, pour une variable recevant une valeur entière, indique si l année correspondante est bissextile en affichant : "Cette année est bissextile" ou "Cette année n est pas bissextile" selon le cas. Rappel. Les années bissextiles sont celles qui sont divisibles par 4, sauf lorsqu elles débutent un siècle non multiple de 400. (Par exemple : l année 000 était bissextile : 000 débute un siècle mais 000/400 = 50 ; l année 00 ne sera pas bissextile). Tester votre programme avec les années 000, 03, et 00. Exercice 7. Réaliser un programme trinome.py qui demande à l utilisateur de saisir un trinôme du second degré. On suppose que l utilisateur rentre successivement les valeurs (nombres à virgule flottante) a,b puisc pour désigner le polynôme P = ax + bx + c. Le programme retourne le ou les racines réelles du polynôme ou, le cas échéant, un message indiquant que ce polynôme n a pas de racine réelle. Prévoir le cas a = 0. Exercice 8. Complément à l exercice 0 du TP. Réaliser un programme heure.py qui demande à l utilisateur l horaire de départ de son train. On suppose que l utilisateur rentre les horaires sous le format : XYhZT (exemples : 9h5, 08h0) où X, Y, Z et T sont des entiers. Votre programme affiche un message si l utilisateur saisi un horaire erroné (exemple : 5h6). Dans l interpréteur votre résultat ressemble à ça : Horaire de départ? 7h5 Cette horaire n existe pas.

Structure conditionnelle itérative : boucle while Les structures itératives permettent d exécuter plusieurs fois une même série d instructions (itérations). L instruction while (tant que) permet d exécuter les blocs d instructions qui en dépendent tant que la condition suivant le while est vraie. La syntaxe générale est la suivante : La condition est un booléen (type bool, cf TP). while condition : bloc d instructions ; Précisément, le fonctionnement de cette instruction est le suivant :. on évalue condition ;. si elle est vraie, on exécute le bloc instructions et on reprend en ; 3. si elle est fausse, le programme passe au bloc d instructions suivant. Encore une fois, attention à l indentation qui délimite les blocs d instructions. Exercice 9. Rédiger et exécuter les lignes de commandes suivantes. On affiche les dix premiers multiples de 7. while c<0 : c=c+ Exercice 0. Voici des commandes soumises à l interpréteur Python par un élève peu scrupuleux. Qu en penser? Tester ces lignes de commandes (?). Programme A. while c>=0 : c=c+ Commentaires sur ces deux programmes : Programme B. while c<0 : Exercice. Calculs de sommes.. Dans cette question on se propose d écrire un programme somme.py qui calcule la somme + + 3 +... + N des N premiers entiers où N est un entier naturel. Voici une proposition de programme. Vous semble-t elle raisonnable? Si oui la rédiger ; sinon la corriger. En parallèle, écrire les valeurs successivement prises par les variables indice et somme dans ce programme. N = 5 somme = 0 indice = while indice<=n : somme 0 3 indice somme = somme + indice indice = indice + print(somme). On se place dans la position d un élève peu scrupuleux qui ne connaît pas ses sommes classiques 3

. Reprendre le programme précédent en le modifiant de la manière suivante : on définit une variable Vmax (tester avec Vmax = 000). Le programme affiche la première valeur de N pour laquelle : + + 3 +... + N V max 3. Reprendre les deux programmes précédent avec la somme H N = + + 3 +... + N entiers. Répondre aux questions suivantes : des inverses des N premiers H 0 6... et H N 6 dès que N... Exercice. Devine qui c est? La commande randrange(,n) retourne un entier choisi «au hasard» entre et N-. Il faut l importer du module random.. Réaliser un programme devinekic.py dans lequel l utilisateur doit deviner un entier choisi «au hasard» entre et 00. La machine interroge l utilisateur tant qu il n a pas trouvé le nombre mystère et le félicite cordialement lorsqu il gagne. Voici un exemple de ce que peut donner votre programme à l exécution : Devinez le nombre mystère? 4 Ce n est pas le nombre mystère. Quel est le nombre mystère? 7 Ce n est pas le nombre mystère. Quel est le nombre mystère? Bravo, vous avez trouvé le nombre mystère!. Compléter votre programme en affichant le nombre de coup joués par l utilisateur. 3. Compléter votre programme : l ordinateur indique si le nombre mystère est plus petit ou plus grand que le nombre donné par l utilisateur. Exercice 3. La multiplication des lapins. Vous allez faire l acquisition d un couple de bébés lapins. Au bout d un mois ce couple est adulte. Le mois suivant il donne naissance à un couple de bébés lapins : vous avez maintenant 4 lapins. Puis chaque couple engendre tous les mois un nouveau couple deux mois après sa naissance. Nous avons le schéma ci-contre : Légende : m : bébé lapin ; M : lapin adulte. Mois 0. m m Mois. M M Mois. M M m m Mois 3. M M M M m m Mois 4. M M M M M M m m m m Notons F N le nombre de lapins que l on a au bout du N-ième mois. On convient que : F 0 =. Nous avons donc F = puis F = 4 et F 3 = 6. Plaçons nous au mois N +, nous aurons tous les couples de lapins du mois précédent (le mois N + ) et toutes les progénitures des couples de lapins du mois N. Nous avons donc la relation : F N+ = F N+ + F N Les pythons mangent les lapins.. Rédiger un programme Python lapin.py qui calcule de manière itérative le nombre de lapins au bout d un an (le mois N = ). F =.... Au bout de combien de mois dépasse-t on le milliard de lapins? N =... 4

3 Structure itérative : boucle for L instruction for... in permet de faire parcourir à une variable l intégralité d une structure de données (comme les caractères d une chaine ou une liste d entiers) et d itérer un bloc d instructions au fil de ce parcours. C est une structure itérative qui peut représenter une alternative intéressante à l instruction while. Exercice 4. Voici deux exemples d utilisation. Les tester. for k in range(,0) : print(k) for l in Bonjour : print(l) Exercice 5. Écrire une ligne de commande qui affiche tous les multiples de 7 entre 0 et 70. Exercice 6.. Rédiger un programme avec les lignes qui suivent. En parallèle, écrire les valeurs successivement prises par les variables k et s dans ce programme. Que calcule ce programme? k s - 0 s=0 for k in range(,6) : s=s+k. Rédiger un programme factorielle.py qui calcule le nombre n! où n est une variable de type int. Tester votre programme avec n = 3, 4 et. Exercice 7. Écrire un programme voyelles.py qui affiche le nombre de voyelles d un mot (écrit en minuscule, sans caractère accentué). Tester votre programme sur le mot informatique. Exercice 8.. Écrire un progamme moyennealea.py qui calcule et affiche la moyenne d un nombre donné (disons 000) d entiers entre et 0 choisis au hasard (à l aide de la fonction randrange).. Réécrire ce même programme en ne tenant plus compte des occurences du nombre. 5