LE BASTARD YANNICK Enseignant au LEGTA Frédéric Bazille (34) ALGORITHMIQUE AU LYCEE Colloque de Toulouse (9 et 10 Juin 2011)

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

Download "LE BASTARD YANNICK Enseignant au LEGTA Frédéric Bazille (34) ALGORITHMIQUE AU LYCEE Colloque de Toulouse (9 et 10 Juin 2011)"

Transcription

1 LE BASTARD YANNICK Enseignant au LEGTA Frédéric Bazille (34) ALGORITHMIQUE AU LYCEE Colloque de Toulouse (9 et 10 Juin 011)

2 Avant propos Les présentes notes sont inspirées d'une expérience de trois ans en lycée et sur deux niveaux différents : Licence de Biologie au LEGTA de Venours (86) : de 008 à 010, ainsi qu'en classe de seconde générale et technologique à l'issu de la réforme des programmes (été 009) durant deux années : au LEGTA de Venours et au LEGTA Frédéric Bazille (34). Mes sources sont diverses : réflexions personnelles, conversations avec des collègues (je remercie notamment Jacques Texier pour son importante contribution), lectures sur le web, ainsi que l'excellent livre de Gérard Swinnen : Apprendre à programmer avec Python. J'ai eu la chance de pouvoir enseigner pendant deux années complètes à des effectifs réduits, ce qui a permis une utilisation efficace des salles informatiques de l'établissement, mais surtout une régularité dans l'apprentissage des concepts pour les élèves et les étudiants, à raison de h/semaine pour la classe de licence et d'une heure par quinzaine en moyenne pour la classe de seconde. Ces conditions, il est vrai, exceptionnelles ont permis la réalisation de quelques projets de classe, par groupe de trois élèves en seconde et de deux pour les étudiants. La réforme de la filière S prévoit la continuité de l'apprentissage de l'algorithmique et de sa mise en œuvre sur calculette ou ordinateur jusqu'en terminale. Ces notes tiennent compte de cette évolution, et proposent un suivi à différent niveaux : depuis l'apprentissage qui peut être réalisé dès la classe de seconde jusqu'à l'écriture de scripts mathématiquement plus consistants en lien avec le programme de la terminale S. Les sujets abordés ne sont en rien originaux, mais la démarche peut-être en proposant une progression dans l'apprentissage des concepts, avec une analyse des difficultés rencontrées, s'appuyant sur l'expérience effective sur le terrain. Un outil sera utilisé : le langage de programmation Python. Des séances d'initiation sont proposées par ordre chronologique pour acquérir les bases puis sous forme de TP réalisables en classe. Ces notes ne sont pas du tout exhaustives sur le sujet à traiter et je serai infiniment reconnaissant au lecteur de toutes les suggestions ou critiques qu'il voudra bien me formuler.

3 Utilisation de ces notes Dans le cadre d'une utilisation tout au long des trois années de lycée : seconde générale et technologique, première et terminale scientifique, ces notes ont été découpées en plusieurs chapitres avec des buts bien précis. Ils sont adaptés à chacun des niveaux. On ne considère ici que la classe de seconde GT, le reste des chapitres est en construction... et en test! Même si quelques prolongements seront donnés dans le dernier chapitre. Classe de seconde Chapitres et 3 : On met en place les notions fondamentales de boucle et d'instruction conditionnelle et leur mise en œuvre sur Python. Le Chapitre 4 regroupe des idées de projets faisables à ce niveau par groupes d'élèves. Tous sont entièrement décortiqués et corrigés. Chapitre 5 : correction des exercices et des TP du chapitres 3. Classes de première et de terminale S Chapitre 6 : quelques TP et leurs corrigés.

4 TABLE DES MATIERES Chapitre 1 : Motivations...5 Chapitre : Notions d'algorithmique...8 Fiche élève n Fiche professeur n Fiche élève n...3 Fiche professeur n...6 Chapitre 3 : Python...30 Langage Python...3 Séance Python n Séance Python n...39 Séance Python n Séance Python n Séance Python n Séance Python n Fiches de complément Python...55 Fiches de TP en seconde GT...63 Chapitre 4 : Projets en seconde GT...7 Énoncé des projets...74 Corrigé des projets...83 Chapitre 5 : Corrigé des exercices du chapitre Chapitre 6 : TP en filière S Énoncé des TP Corrigé des TP...13 Bibliographie...137

5 CHAPITRE 1 : MOTIVATIONS

6 Conformément au BO n 30 du 3 Juillet 009, l'algorithmique a été introduite dans le cadre du nouveau programme de seconde générale et technologique dont voici un extrait. Al g orith miq u e (obj e c tif s p o ur l e ly c é e ) La démarche algorithmique est, depuis les origines, une composante essentielle de l activité mathématique. Au collège, les élèves ont rencontré des algorithmes (algorithmes opératoires, algorithme des différences, algorithme d Euclide, algorithmes de construction en géométrie). Ce qui est proposé dans le programme est une formalisation en langage naturel propre à donner lieu à traduction sur une calculatrice ou à l aide d un logiciel. Il s agit de familiariser les élèves avec les grands principes d organisation d un algorithme : gestion des entrées-sorties, affectation d une valeur et mise en forme d un calcul. Dans le cadre de cette activité algorithmique, les élèves sont entraînés : à décrire certains algorithmes en langage naturel ou dans un langage symbolique ; à en réaliser quelques uns à l aide d un tableur ou d un petit programme réalisé sur une calculatrice ou avec un logiciel adapté ; à interpréter des algorithmes plus complexes. Aucun langage, aucun logiciel n est imposé. L algorithmique a une place naturelle dans tous les champs des mathématiques et les problèmes posés doivent être en relation avec les autres parties du programme (fonctions, géométrie, statistiques et probabilité, logique) mais aussi avec les autres disciplines ou la vie courante. À l occasion de l écriture d algorithmes et de petits programmes, il convient de donner aux élèves de bonnes habitudes de rigueur et de les entraîner aux pratiques systématiques de vérification et de contrôle. Instructions élémentaires (affectation, calcul, entrée, sortie). Les élèves, dans le cadre d une résolution de problèmes, doivent être capables : d écrire une formule permettant un calcul ; d écrire un programme calculant et donnant la valeur d une fonction ; ainsi que les instructions d entrées et sorties nécessaires au traitement. Boucle et itérateur, instruction conditionnelle Les élèves, dans le cadre d une résolution de problèmes, doivent être capables : de programmer un calcul itératif, le nombre d itérations étant donné ; de programmer une instruction conditionnelle, un calcul itératif, avec une fin de boucle conditionnelle. S'appuyant sur cette ligne, les présentes notes ont pour but de : 1. Faire l'analyse détaillée d'un problème (géométrique, numérique, de la vie courante).. De proposer un algorithme, éventuellement plusieurs, apportant une solution. 3. De le mettre en œuvre à l'aide de l'outil informatique. La démarche adoptée a été la suivante : Définir les tenants et les aboutissants de l'algorithmique. Écrire des algorithmes en pseudo-langage et les «faire tourner à la main». Y ont été notamment définies les notions d'affectation, de boucle et d'instruction conditionnelle. Passer à la programmation en «langage machine» à l'aide du langage Python

7 AVERTISSEMENT : Il ne s'agit en aucun cas de réaliser un apprentissage poussé de ces deux langages : des ouvrages ou des sites web didactiques conçus dans ce but existent déjà ; l'idée est de s'en servir comme miroir de la réflexion de l'élève en soulevant les difficultés rencontrées dans la pratique par le professeur. Quels sont donc les intérêts d' utiliser un ordinateur ou une calculatrice? 1. Le face à face élève-machine est différent de celui, plus traditionnel, élève-professeur. Les élèves, habitués pour la très grande majorité à l'ordinateur sont familiers avec cet instrument, du moins pour certaines utilisations. Cette familiarité, cette habitude du visuel de l'écran est un point positif pour l'apprentissage. Très peu sont réfractaires à son utilisation.. Autre intérêt de ce face à face élève-machine : Lorsque la machine dit «non», il n'y a pas de contestation possible comme devant un être humain. La machine ne pardonne aucune erreur de syntaxe : voilà un excellent apprentissage de la rigueur. Il faut recommencer à la moindre faute de frappe. Même chose en cas de mauvaise conception du programme. 3. Enfin, la possibilité de voir très rapidement le résultat de son travail devant ses yeux. Dans une génération habituée à zapper, c'est un plus. Le fait de ne pas aboutir sur une machine au résultat escompté pousse le plus souvent à la ténacité : «ce n'est quand même pas un ordi qui va me résister!!»

8 CHAPITRE : NOTIONS D'ALGORITHMIQUE

9 Objectifs et mise en œuvre Le présent chapitre se compose de deux fiches élèves et autant de fiches professeur, contenant les corrigés des exercices proposés, ainsi que des commentaires pédagogiques liés aux séances. Les objectifs au cours de ces séances formelles, mais néanmoins instructives, pour ne pas dire indispensables pour la suite sont : Définir ce qu'est un algorithme et la démarche algorithmique à travers quelques exemples géométriques et calculatoires. Introduire les notions de variables, de boucle et d'instruction conditionnelle. Savoir interpréter quelques algorithmes simples. Créer des algorithmes en langage naturel, prêts à être interprétés en langage machine. Une fiche de synthèse clôt ce chapitre. Les séquences sont supposées durer entre deux et trois heures chacune.

10 Fiche élève n 1 Prolégomènes Avant de définir précisément ce qu'est l'algorithmique et quels en sont les buts, intéressons-nous de suite à un premier exemple graphique : la construction d'un objet fractal appelé flocon de Von Koch. On donne ici les deux premières étapes. A vous d'en déterminer la troisième ainsi que le processus général qui permet de passer de l'étape n à l'étape n + 1. Flocon à l'étape 0 Flocon à l'étape 1 Flocon à l'étape Récapitulons ce processus ; il comprend deux instructions à effectuer qui sont : Définitions : On peut définir un algorithme comme une suite d'instructions précises, à appliquer dans un ordre précis, pour arriver en un nombre fini d'étapes à un certain résultat. L'algorithmique est la science des algorithmes (création, amélioration...) Premiers exercices Dans les deux exercices qui suivent, vous pouvez utiliser les instructions suivantes : 1. Avancer (d'une longueur donnée). Tourner à gauche ou à droite (d'un angle donné en degré) On suppose que le «crayon» se déplace par défaut horizontalement et vers la droite au départ. Exercice 1 : Écrire un programme permettant de construire un carré de côté 50 tout en revenant à la position de départ.

11 Exercice : Écrire un programme permettant de construire un triangle équilatéral de côté 100 tout en revenant à la position de départ. Remarque : Dans l'exercice 1 comme dans le suivant, un même bloc d'instructions a été répété plusieurs fois. Repérer lequel dans chacun des deux cas. Cette répétition des mêmes instructions un certain nombre de fois peut être «résumée» en introduisant une notion très importante en programmation, et très économique au niveau du nombre de lignes à écrire. Les instructions répétitives : notion de boucle Il existe essentiellement deux méthodes pour écrire une boucle, c'est-à-dire un procédé qui permet la répétition un certain nombre de fois d'un même processus (addition, multiplication, etc...). Afin de les mettre en pratique, nous allons résoudre l'exercice 1 de cette manière. METHODE 1 Analysons le programme en langage naturel suivant : i 0 Tant que i<4 (ou i<=3) faire avancer de 50 tourner à gauche de 90 i i+1 J'affecte à i la valeur 0 Tant que la condition annoncée est vraie, on effectue les deux instructions qui suivent On réaffecte à i sa valeur précédente augmentée de 1 Quel est le résultat obtenu? On peut alors résumer la structure de boucle décrite ici de la manière suivante : Tant que condition vérifiée faire Bloc d'instructions Remarques : Si la condition n'est pas vérifiée au début, alors le bloc d'instructions ne sera pas exécuté du tout. ATTENTION! Pour que l'algorithme soit correct, il est nécessaire que la condition cesse d'être vérifiée au bout d'un nombre fini de répétitions. Sinon, le programme «boucle indéfiniment».

12 Exercice 3 : Que fait le programme suivant? S 80 Tant que S>0 faire S S + 10 METHODE Une autre manière courante d'écrire une boucle est : Pour i variant de 0 à 3 (ou de 1 à 4) faire avancer de 50 tourner à gauche de 90 La variable i évolue comme indiqué, par défaut de 1 en 1. Les deux instructions suivantes sont alors effectuées Le résultat obtenu est exactement le même : le dessin d'un carré de côté 50. On peut alors résumer la structure de boucle décrite ici de la manière suivante : Pour i variant de 0 à N (ou de 1 à N) faire Bloc d'instructions Exercice 4 : Écrire deux programmes utilisant chaque type de boucle pour résoudre l'exercice. Problème type : on veut calculer la somme S = Analyse : Bien évidemment, on ne va pas saisir à la machine cette longue opération! Il nous faut donc trouver un moyen pour que cette dernière l'exécute, mais en écrivant le moins de lignes possible. On commence par remarquer que l'opération qui est sans cesse utilisée est l'addition. D'où l'idée d'utiliser une boucle : on répète plusieurs fois le même procédé : ici additionner. Additionner oui, mais quoi? 1 d'abord, puis, puis 3,, jusqu'à 100. Autrement dit on additionne une suite de nombres qui «varient», dans le cas présent de 1 en 1. L'idée essentielle est de calculer S petit à petit, comme on le ferait à la main en ajoutant peu à peu tous les termes contenus dans l'addition. Comme S va évoluer et les termes qui la composent aussi, on a l'idée d'introduire deux variables : S elle-même et un «compteur» i, qui devra prendre successivement les valeurs 1,, 3,, 100. Nous allons résoudre ce problème en créant un algorithme efficace, utilisant (mais ce n'est pas une obligation), le premier type de boucle.

13 Mise en œuvre : Instructions Signification S 0 i 1 Tant que i 100 faire On affecte à S la valeur 0 (valeur initiale) On affecte à i la valeur 1 (valeur initiale) La condition est posée: i varie jusqu'à 100 S S+i i i+1 On réaffecte à S sa valeur précédente plus la valeur actuelle de i On réaffecte à i sa valeur augmentée de 1 Afficher S Une fois sorti de la boucle, on affiche S Vous allez à présent «faire tourner l'algorithme à la main», c'est-à-dire regarder, étape par étape l'évolution des variables i et S, et enfin le résultat final. Pour cela, compléter le tableau suivant. Vous ne donnerez pas le résultat du calcul de S à chaque étape, mais seulement l'écriture de S sous la forme d'une somme. Après l'itération i S Quelle est la dernière valeur prise par la variable S? Quel est le résultat affiché par le programme? Exercice 5 : Écrire un programme utilisant une boucle Tant que calculant et affichant le résultat de : S = P = S = Exercice 6 : Construire la figure suivante en utilisant l'instruction Tant que (longueur d'un côté du quadrillage 50).On partira du point A.

14 Exercices supplémentaires : Ces exercices sont destinés à vous entraîner à utiliser la notion de boucle. Ils sont classés par ordre progressif de difficulté. Reportez-vous à ceux déjà faits lors de cette séance. Travaillez en profondeur votre compréhension du cours. Il suffit de quelques modifications pour trouver la solution. Exercice 7 : Vous pouvez utiliser les instructions suivantes : Avancer (d'une longueur donnée) Tourner à gauche ou à droite (d'un angle donné en degré) 1. Construire la figure suivante en utilisant une boucle (longueur du côté du quadrillage égale à 30). On partira du point central.. En utilisant toujours une boucle, construire la figure suivante (longueur du côté du quadrillage égale à 30). Le repère n'a aucune importance.

15 Exercice 8 : En utilisant une boucle Tant que, écrivez un programme permettant de calculer puis d'afficher le résultat de la somme suivante : T = Indication : bien analyser de combien de variables vous avez besoin. Exercice 9 : En utilisant l'instruction Tant que, soit une fois soit deux fois dans le même programme, obtenir le dessin suivant : Carré de côté 10 et intervalle entre les carrés 10. Vous disposez en plus de deux instructions : lever le crayon (permet d'avancer sans que ceci dessine quoi que ce soit) baisser le crayon (permet de redessiner à nouveau)

16 Fiche professeur n 1 Construction du flocon On donne ici les deux premières étapes. A vous d'en déterminer la troisième ainsi que le processus général qui permet de passer de l'étape n à l'étape n + 1. Flocon à l'étape 0 Flocon à l'étape 1 Flocon à l'étape Récapitulons ce processus ; il comprend deux instructions à effectuer qui sont : On partage chacun des segments en trois segments de longueurs égales. On construit extérieurement un triangle équilatéral de base le segment du milieu. Corrigé des exercices Corrigé de l'exercice 1 : Avec les instructions dont on dispose, on peut construire un carré de côté 50 de la manière suivante : Avancer de 50 Tourner à gauche de 90 Avancer de 50 Tourner à gauche de 90 Avancer de 50 Tourner à gauche de 90 Avancer de 50 Tourner à gauche de 90 Remarque : on aurait tout aussi bien pu écrire : Tourner à droite de 90 à chaque fois.

17 Le bloc d'instructions qui se répète est : Avancer de 50 Tourner à gauche de 90 Commentaire pédagogique : Beaucoup d'élèves disent : pourquoi ne pas multiplier ça par 4? L'idée de boucle est déjà sous-jacente. Corrigé de l'exercice : Avancer de 100 Tourner à gauche de 10 Avancer de 100 Tourner à gauche de 10 Avancer de 100 Tourner à gauche de 10 Le bloc d'instructions qui se répète est : Avancer de 100 Tourner à gauche de 10 Commentaire pédagogique : Le «piège» est de penser immédiatement : Tourner de 60. Le professeur démontre rapidement par un petit dessin au tableau que c'est erroné et laisse trouver aux élèves la bonne mesure d'angle. Corrigé de l'exercice 3 : La variable S est initialisée à 80. Par conséquent la condition S>0 est vérifiée. Or le bloc d'instructions de la boucle est composée d'une seule ligne : réaffecter à S sa valeur augmentée de 10. Il s'ensuit que la variable S va prendre des valeurs de plus en plus grandes et la condition de la boucle sera toujours vérifiée. Le programme boucle indéfiniment! Commentaire pédagogique : Cet exercice permet de mettre en garde les élèves sur la condition choisie. On veut arriver à un certain résultat en un nombre fini d'étapes. Corrigé de l'exercice 4 : Avec une boucle Tant que i 0 Tant que i<3 faire avancer de 100 tourner à gauche de 10 i i+1 Avec une boucle Pour Pour i variant de 0 à (ou de 1 à 3) faire avancer de 100 tourner à gauche de 10 Commentaire pédagogique : La boucle Tant que, universelle quel que soit le langage de programmation choisie me semble préférable à celle de Pour, dont la syntaxe est très variable. Par ailleurs, on y voit mieux l'évolution du «compteur» i.

18 Analyse du problème résolu : Ceci permet de compléter pas à pas le tableau donné aux élèves. Situation initiale i 1 S 0 Comme i est égal à 1 et que 1 100, la condition de la boucle est bien vérifiée, donc cette dernière exécute la suite d'instructions précédente : S est remplacé par sa valeur précédente : 0 à laquelle on rajoute la valeur actuelle de i : 1. Ainsi, S = soit S = 1. i est remplacé par sa valeur actuelle : 1 à laquelle on rajoute 1. Ainsi i = soit i =. Situation après une itération i S 1 Comme i est égal à et que 100, la condition de la boucle est bien vérifiée, donc cette dernière exécute la suite d'instructions précédente : S est remplacé par sa valeur précédente : 1 à laquelle on rajoute la valeur actuelle de i :. Ainsi, S = 1 + i est remplacé par sa valeur actuelle : à laquelle on rajoute 1. Ainsi i = + 1 soit i = 3. Situation après deux itérations i 3 S 1+ Et ainsi de suite... Tant que la condition de la boucle est valide, le bloc d'instruction est exécuté. Situation après 99 itérations i 100 S Comme i est égal à 100 et que , la condition de la boucle est bien vérifiée, donc cette dernière exécute la suite d'instructions précédente : S est remplacé par sa valeur précédente : à laquelle on rajoute la valeur actuelle de i : 100. Ainsi, S = i est remplacé par sa valeur actuelle : 100 à laquelle on rajoute 1. Ainsi i = 101 Situation après 100 itérations i 101 S Cette fois-ci, i est égal à 101, donc la condition de la boucle n'est plus valide. La boucle s'arrête. Le programme effectue alors la dernière instruction (qui n'était pas dans la boucle) : afficher la valeur de S, c'est-à-dire le résultat de

19 On remarque, puisque S évolue en premier dans le bloc d'instructions, qu'il y aura toujours 1 d'écart entre i et la dernière valeur apparaissant dans la somme constituant S. Ceci permet de compléter le tableau après 99 itérations. Après l'itération i S Corrigé de l'exercice 5 : Question 1 : Il s'agit de sommer tous les multiples de 3 compris entre 3 et 01. L'idée est la même que dans le problème résolu : utiliser une boucle (car on répète l'opération «addition») et utiliser deux variables : i, variable qui va énumérer touts les termes à additionner et S (la somme recherchée qui va évoluer à chaque itération de i). Un algorithme possible est : S 0 i 3 Tant que i 01 faire S S+i i i+3 Afficher S Question : Cette fois-ci, on multiplie tous les entiers pairs de à 40. P 1 i Tant que i 40 faire P P*i i i+ Afficher P On initialise le produit P à 1 (préciser pourquoi pas à 0) On initialise i à On remplace P par sa valeur précédente multipliée par la valeur actuelle de i i est incrémenté de à chaque itération

20 Question 3 : Remarquons que l'on peut réécrire la somme cherchée sous la forme S = L'idée est la même que dans le problème résolu : utiliser une boucle (car on répète l'opération «addition»). Cette fois encore, on aura besoin de deux variables : i qui prendra successivement les valeurs des dénominateurs successifs 1,, 3, jusqu'à 10, et S qui évoluera à chaque itération de i. S 0 i 1 Tant que i 10 faire S S + 1/i i i+1 Afficher S Corrigé de l'exercice 6 : Il s'agit de tracer un hexagone régulier. i 0 Tant que i<6 faire avancer de150 tourner à gauche de 60 i i+1 Il y a 6 côtés... de longueur 150 Corrigé des exercices supplémentaires : Question 1 : Dessin d'une spirale dont la mesure des segments varie. L'idée est d'utiliser une boucle car on répète plusieurs fois le même processus : avancer, puis tourner à gauche de 90. La différence par rapport à la question précédente est qu'à chaque itération, on avance de 30 unités supplémentaires. D'où l'idée d'utiliser deux variables : i qui va compter le nombre de segments de la spirale et l la longueur du premier segment, qui va s'accroître de 30 à chaque itération. i 0 l 30 Tant que i<9 faire avancer de l tourner à gauche de 90 l l + 30 i i+1 Il y a neuf segments. On avance de l l est incrémenté de 30

21 Question : Dessin d'une spirale dont la mesure des segments varie mais pas consécutivement. L'idée est d'utiliser une boucle car on répète plusieurs fois le même processus : avancer, puis tourner à gauche de 90. La différence par rapport à la question précédente est que deux segments consécutifs ont la même longueur. D'où l'idée d'utiliser deux variables : i qui va compter le nombre de segments de la spirale et l la longueur du premier segment, qui va s'accroître de 30 à chaque itération. Le bloc d'instructions «avancer, tourner» sera répété deux fois par rapport à la question 1. i 0 l 30 Tant que i<6 faire avancer de l tourner à gauche de 90 avancer de l tourner à gauche de 90 l l + 30 i i+1 Corrigé de l'exercice 8 : Remarquons que l'on peut réécrire la somme cherchée sous la forme T = Cette fois-ci, on aura besoin de trois variables : i qui prendra successivement les valeurs 1,, 3, jusqu'à 10, P qui prendra successivement les valeurs 1, 1, 1 3,, jusqu'à 1 10 et T qui évoluera en même temps que les deux autres variables. Tableau des premières itérations en partant des conditions initiales. i 1 P 1 i P T T / Tant que i 10 faire P P*i T T + 1/P i i+1 Afficher T valeurs initiales Après itération 1 Après itération

22 Corrigé de l'exercice 9 : Cet exercice va nécessiter deux boucles, donc deux compteurs i et j par exemple ; l'un servira pour dessiner un carré, l'autre servira pour le nombre de carrés à dessiner. Attention de ne pas oublier les espaces entre les carrés! j 0 Tant que j<10 faire i 0 Tant que i<4 faire avancer de 10 tourner à gauche de 90 i i+1 lever le crayon avancer de 0 baisser le crayon j j+1 j est le compteur qui sert à dessiner les 10 carrés i est le compteur qui sert à dessiner les 4 côtés d'un carré Bien analyser pourquoi il est placé ici! on avance de = 0 comme demandé dans l'énoncé Remarque : Les blocs d'instructions sont indentés. On verra plus loin que cette écriture est essentielle lorsque l'on écrit un programme en langage Python. Commentaire pédagogique : Il est intéressant de faire apparaître bien précisément les blocs d'instructions en précisant à quelle boucle ils sont rattachés.

23 Fiche élève n Instructions conditionnelles Nous avons vu à la séance précédente la notion de boucle, utilisée dans le cas où une même suite d'opérations est répétée un certain nombre de fois. Nous allons nous intéresser ici au cas d'instructions conditionnelles. Cette notion permet à un algorithme d'effectuer certaines instructions seulement si une certaine condition est remplie. Ceci prend la forme suivante en pseudo-langage : Si (condition vérifiée) faire Bloc d'instructions Dans le cas où la condition de départ n'est pas vérifiée, il est également possible d'indiquer à l'algorithme une alternative qu'il doit effectuer. On obtient alors la structure suivante : Si (condition vérifiée) faire Bloc d'instructions n 1 Sinon faire Bloc d'instruction n Exercice 1 Écrire dans la zone de texte adjacente le résultat affiché à l'écran par l'ordinateur pour chacun des programmes suivants : Question 1 N 4 a 7 Si N<a faire écrire «Eh» Sinon écrire «Oh» Question i 1 Tant que i<5 faire Si i est divisible par faire écrire 3*i Sinon écrire i i i+1

24 Exercice Écrire un programme qui demande à l'utilisateur d'écrire son sexe à l'écran : M pour masculin ; F pour féminin. a) Si l'utilisateur saisit M, l'ordinateur affichera : Bonjour monsieur! b) Si l'utilisateur saisit F, l'ordinateur affichera : Bonjour mademoiselle! Le symbole de comparaison égalité se note = Vous avez le droit aux instructions suivantes : Si Sinon écrire (un texte apparaissant à l'écran) lire (un texte sur l'écran de l'ordinateur) Notons le cas où la condition de départ peut être constituée de plusieurs autres conditions qui doivent être vérifiées simultanément. Nous obtenons alors une suite d'instructions conditionnelles imbriquées. Il y a essentiellement deux structures pour décrire ceci. Méthode n 1 Méthode n Si (condition 1 vérifiée) faire Si (condition 1 vérifiée ET condition vérifiée Si (condition vérifiée) faire ET ET condition k vérifiée) faire Si (condition 3 vérifiée) faire Bloc d'instructions Si (condition k vérifiée) faire Bloc d'instructions Exercice 3 Un automobiliste veut louer une grosse cylindrée dans une agence. Ceci n'est possible que s'il a 5 ans ou plus et au minimum 5 ans de permis. Écrire un programme qui demande à l'utilisateur son âge, puis le nombre d'années qu'il possède son permis et renvoie le résultat «Location acceptée» ou «Location refusée» selon les réponses saisies. Analyse : L'utilisateur doit vérifier deux conditions pour que sa location soit acceptée : «Avoir un âge au moins égal à 5 ans» ET «posséder le permis depuis au moins 5 ans». Vous avez le droit aux instructions suivantes : Si Sinon écrire (un texte apparaissant à l'écran) lire (une valeur sur l'écran de l'ordinateur) On dispose aussi de l'opérateur logique OU au sens mathématique du terme (ce n'est pas un OU exclusif). Exercice 4 : Déterminer si une année (dont le millésime est introduit par l'utilisateur) est bissextile ou non. (Une année A est bissextile si A est divisible par 4. Elle ne l'est cependant pas si A est un multiple de 100, à moins que A ne soit multiple de 400). Vous disposez des mêmes instructions qu'à l'exercice précédent ainsi que de l'instruction : est divisible par et de son contraire.

25 Dans certains cas, il se peut que plusieurs alternatives soient possibles si la condition initiale n'est pas vérifiée. On obtient alors la structure suivante : Si (condition 1 vérifiée) faire Bloc d'instructions n 1 Sinon si (condition vérifiée) faire Remarque : L'écriture «Sinon si» signifie que les conditions 1,,..., N-1 ne sont jamais vérifiées simultanément deux à deux. On a une partition des cas possibles. Bloc d'instruction n etc... Sinon si (condition N-1 vérifiée) faire Exemple : le fait que la condition 3 soit vérifiée implique nécessairement que les conditions 1 et ne l'aient pas été. Bloc d'instructions n N-1 Sinon faire Bloc d'instruction n N Exercice 5 : Convertir une note scolaire N quelconque (sur 0), entrée par l'utilisateur sous forme de points (par exemple 1,75), en une note standardisée suivant le code suivant : Note N >= > N >=1 1 > N >= > N >= 8 N<8 Appréciation A B C D E Vous avez le droit aux instructions suivantes : Si Sinon si Sinon écrire (un texte apparaissant à l'écran) lire (une valeur sur l'écran de l'ordinateur)

26 Fiche professeur n Corrigé des exercices Corrigé de l'exercice 1 Question 1 : Il va s'afficher Eh Question : Il va s'afficher la suite de nombres : Commentaire pédagogique : La dernière question de cet exercice fait travailler simultanément les notions de boucle et d'instruction conditionnelle, ce qui présente une difficulté. Certains élèves peuvent confondre l'instruction écrire 3*i avec réaffecter à i la valeur 3*i. Corrigé de l'exercice écrire "Quel est votre sexe? M ou F?" lire texte Si texte="m" faire écrire "Bonjour Monsieur!" Sinon faire écrire "Bonjour Mademoiselle!" Corrigé de l'exercice 3 écrire "Quel est votre âge? " lire age écrire "Depuis combien de temps avez-vous le permis? " lire N Si (age>=5) ET (N>=5) faire écrire "Location acceptée" Sinon faire écrire "Location refusée" Corrigé de l'exercice 4 Analyse : Le texte ne semble pas si évident a priori. On peut néanmoins le modéliser à l'aide d'un diagramme de Venn ("patatoïde") qui va donner tout le squelette de l'algorithme. Remarquons que : Tout multiple de 400 est un multiple de 100 (Réciproque fausse) Tout multiple de 100 est un multiple de 4 (Réciproque fausse)

27 A divisible par 4 A divisible par 100 A divisible par 400 écrire "Entrez une année " lire A Si (A est divisible par 4 ET A n'est pas divisible par 100) OU (A est divisible par 400) faire écrire "Cette année est bissextile" Sinon faire écrire "Cette année n'est pas bissextile" Corrigé de l'exercice 5 Analyse : Les différentes conditions sont liées à la valeur de la note N. On peut les résumer dans le programme en pseudo-langage suivant. Algorithme Si N>=16 faire Commentaires La première condition est N>=16 écrire "A" Sinon si N>=1 faire écrire "B" Pas besoin d'écrire 16>N>=1. En effet si la première condition n'est pas vérifiée, on a nécessairement N<16. La seconde condition ne porte plus que sur la comparaison de N à 1. Sinon si N>=10 faire écrire "C" Sinon si N>=8 faire écrire "D" Sinon faire écrire "E" Pas besoin d'écrire Sinon si N<8. En effet, lorsque toutes les conditions précédentes ne sont pas vérifiées, il n'y a plus qu'une alternative.

28 Commentaire pédagogique : Ces exercices sont difficiles de premier abord. Il convient d'avoir travaillé auparavant en classe les notions de logique standard. Bien que ne figurant pas explicitement au programme, les tables de vérité sont un bon outil pour manipuler ET, OU. On peut les travailler à partir d'exemples mathématiques ou non... Un exemple pour comprendre... Une table de vérité. A, B sont des propositions, C'est-à-dire des «phrases logiques» qui ne peuvent avoir que deux valeurs de vérité : VRAI ou FAUX. Un des principes fondamentaux est celui du «tiers-exclus», à savoir qu'une proposition ne peut pas être vraie et fausse à la fois, alors que toute proposition est vraie ou bien fausse. On peut résumer ceci dans un tableau illustrant les «connecteurs» logiques ET OU. A B F F F V V F V V A et B A ou B Ainsi, pour N entier, la proposition «N est pair» et «N est impair» sera toujours fausse, tandis que la proposition «N est pair» ou «N est impair» est toujours vraie : on parle de tautologie. Ces opérateurs logiques ET ; OU peuvent être aisément combinés avec les instructions conditionnelles : SI...alors ; Tant que (condition) faire... pour créer des algorithmes plus complexes. Exercice possible : Vous avez droit aux instructions suivantes : a) Les opérateurs logiques ET ; OU b) L'instruction conditionnelle SI c) L'instruction «être divisible par» (un entier) d) lire (un entier) e) écrire (une phrase) Écrire un programme en pseudo-langage demandant à l'utilisateur d'entrer deux entiers. Si ces deux entiers sont divisibles par 3 et par 5, écrire N est divisible par 15, sinon écrire N n'est pas divisible par 15.

29 Fiche de synthèse Les notions du cours Définitions 1. Dans un programme, une variable correspond à un emplacement de la mémoire de la calculatrice ou de l'ordinateur. Elle est repérée par un nom et contient une valeur.. La notion d'affectation (ou d'assignation) désigne l'opération par laquelle on établit un lien entre le nom de la variable et sa valeur (son contenu). On l'a noté ici avec le symbole 3. L'entrée des données (ou lecture des données) est l'opération qui consiste à saisir des valeurs pour qu'elles soient utilisées par le programme. On la note «Saisir valeur» ou «lire valeur». Remarque : une valeur peut être un nombre entier, un nombre réel, une chaîne de caractères La sortie des résultats (ou écriture des résultats) permet d'afficher les valeurs des variables après traitement. On note cette instruction «Afficher valeur» ou «écrire valeur» La notion de boucle Elle est utilisée lorsqu'une même suite d'instructions doit être répétée un certain nombre de fois. On en rencontre essentiellement deux dans la pratique : Initialisation des variables Tant que condition faire Bloc d'instructions Pour i variant de 0 à N (ou de 1 à N) faire Bloc d'instructions Les instructions conditionnelles Selon qu'une condition est vérifiée ou non, on effectuera un bloc d'instruction ou bien un autre. Par exemple, un nombre entier est pair s'il est divisible par et impair dans le cas contraire. Si (condition vérifiée) faire Bloc d'instructions n 1 Sinon faire Bloc d'instruction n Dans le cas où l'on dispose de plusieurs alternatives incompatibles les unes avec les autres, la structure précédente est légèrement plus complexe. Par exemple : Si (condition 1 vérifiée) faire Bloc d'instructions 1 Sinon si (condition vérifiée) faire Blocs d'instructions Sinon faire Blocs d'instructions 3

30 CHAPITRE 3 : LE LANGAGE PYTHON

31 Objectifs et mise en œuvre Jusqu'à présent, nous avons conçu des algorithmes, c'est-à-dire une suite d'instructions bien précises pour résoudre un problème posé. Cependant un algorithme n'est pas un programme. Ce-dernier doit être écrit dans un langage de programmation que l'ordinateur interprétera. Je cite : La programmation d'un ordinateur consiste à «expliquer» en détail à une machine ce qu'elle doit faire. Un programme est une suite d'instructions, encodées en respectant de manière très stricte un ensemble de conventions fixées à l'avance, qu'on appelle un langage informatique. La machine est pourvue d'un mécanisme qui décode ces instructions en associant à chaque «mot» du langage une instruction précise. Autrement dit, elle traduit les instructions que vous lui fournissez à l'écran en «langage machine» : une longue suite de 0 et de 1, que l'on appelle le langage binaire. Le système de traduction s'appelle interpréteur ou compilateur. Le langage de programmation est un ensemble de mots clés, associé à un ensemble de règles très précises indiquant comment on peut assembler ces «mots» pour former des «phrases» que l'interpréteur ou le compilateur puisse traduire en langage machine. (Gérard Swinnen : apprendre à programmer avec Python) A l'issu des deux séances précédentes d'introduction à l'algorithmique, il est indispensable que les élèves se confrontent à un langage de programmation ou du moins un avatar. Les notions vues précédemment vont y trouver des applications innombrables, et la rigueur sera obligatoire, leur créativité mise à l'épreuve. Il faudra en effet : repérer les données nécessaires à la résolution du problème (variables, données saisies au clavier par l'utilisateur...) Créer un algorithme utilisant ces données pour apporter une solution au problème, Le transcrire en langage informatique. Dans ces notes, un logiciel (libre) va être étudié : le langage Python. Comme d'autres logiciels, il a ses particularités, ses forces et ses faiblesses pour l'enseignement du second degré. Sa puissance tient à ses nombreuses possibilités, alliée à une simplicité de syntaxe remarquable Prise en main du logiciel (séance 1) Travail sur la notion de boucle (séances et 3) Travail sur la notion d'instruction conditionnelle (séance 4) Travail avec des données du type chaîne de caractères et listes (séance 5) Travail sur la notion de fonction (informatique) Compléments utiles en pratique : les annexes. Fiches de TP en lien avec les chapitres du programme de seconde Certaines séances demandent du temps ( à 3h ou plus). Des énoncés de TP sont également proposés.

32 LE LANGAGE PYTHON (version 3.1)

33 INITIATION AU LANGAGE PYTHON séance n 1 L'environnement de travail Python présente la particularité de pouvoir être utilisé de plusieurs manières différentes. Vous allez d'abord l'utiliser en mode interactif, c'est-à-dire d'une manière telle que vous pourrez dialoguer avec lui directement depuis le clavier. Cela vous permettra de découvrir très vite un grand nombre de fonctionnalités du langage. Dans un second temps, vous apprendrez comment créer vos premiers programmes (scripts) et les sauvegarder sur disque dur ou sur clef USB. Si vous utilisez une interface graphique telle que Windows, Gnome, WindowMaker ou KDE, vous préférerez vraisemblablement travailler dans une «fenêtre de terminal», ou encore dans un environnement de travail spécialisé tel que IDLE. Voici par exemple ce qui apparaît dans une fenêtre de Windows : Les trois caractères «supérieur à» constituent le signal d'invite, ou prompt principal, lequel vous indique que Python est prêt à exécuter une commande. Calculer avec Python Vous pouvez utiliser l'interpréteur comme une simple calculatrice de bureau. Testez par exemple les commandes suivantes dans l'environnement IDLE : >>> 15+3 >>> - 17 # les espaces sont facultatifs >>> * 4 # la hiérarchie des opérations mathématiques # est-elle respectée? >>> (8+3)*4 >>> 0 / 3 Comme vous pouvez le constater, les opérateurs arithmétiques pour l'addition, la soustraction, la multiplication et la division sont respectivement +, -, * et /. Les parenthèses sont fonctionnelles.

34 Affectation-réaffectation Nous avons vu en cours l'opération d'affectation, qui consiste à donner à une variable une valeur (nombre entier, réel, chaîne de caractères, etc...). En pseudo-langage, l'opération d'affectation a été symbolisée par le sigle " " Exemple : a 5 # J'affecte à la variable a la valeur 5 En langage Python l'opération d'affectation s'écrit «=». Testez par exemple les commandes suivantes : >>> a=3 >>>a >>>a+10 >>>a/ Ne croyez pas que cette affectation soit définitive. On peut réaffecter à la variable «a» une nouvelle valeur en réutilisant le symbole «=». >>>a #Quelle est la valeur actuelle de a? >>>a=a+5 >>>a #On réaffecte à a sa valeur précédente augmentée de 5 #Que vaut a maintenant? Remarque : le signe «=» utilisé ici n'a absolument aucun rapport avec l'égalité au sens mathématique du terme. Python a une convention :si ce que l'on écrit est vrai, il renverra true en réponse ; si c'est faux, il renverra false. Par exemple, testez les commandes suivantes (en vous souvenant bien de la dernière valeur affectée à la variable a). >>> a<1 >>>a> >>>a==8 #le sigle «==» est l'égalité classique, au sens mathématique usuel. >>>a!=4 #le sigle «!=» signifie «différent». Que va renvoyer l'instruction a>=4? Synthèse partielle : Quelle différence fondamentale faîtes-vous entre l'écriture a=10 et a==10?

35 Typage des variables La variable a que nous avons rencontrée jusqu'ici appartient à une seule catégorie : celle des entiers. En anglais, cela se dit «Integer». Testez les commandes suivantes : >>>a >>>type(a) #Quel est le résultat affiché? Signification? >>>b=.3 #Le séparateur décimal est le point, pas la virgule. >>>type(b) #Quel est le résultat affiché? Signification? >>>c="salut" >>>type(c) >>>d=[0,35,87,1] >>>type(d) >>>e=[5, "coucou",3.5,"hugh"] #Mélange de types dans un autre? >>>type(e) Ces variables appartiennent à des types très différents. Nous verrons dans quelle mesure les utiliser séparément, puis ensemble. Rappeler ces types : Opérations sur les variables Commençons par réaffecter à chacune des valeurs a,b c et d d'autres valeurs. Testez les commandes suivantes: >>>a= >>>b=5.5 >>>c="hello " >>>d="vous!" #avec l'espace entre Hello et le guillemet de fin. >>>a+b >>>c+d >>>print(c+d) #Quelle différence remarquez-vous entre les deux commandes précédentes? >>>a+c #On ne mélange pas les genres! >>> a* >>>a**

36 >>>a**3 >>>a**4 >>>a**5 Que signifie l'opération «**» entre un nombre et un entier? >>>c* >>>c*3 Même question entre une chaîne de caractères et un entier non nul pour «*». Exercices : 1. Signalons au passage la disponibilité de l'opérateur modulo, représenté par le symbole %. Cet opérateur fournit le reste de la division entière d'un nombre par un autre. Essayez par exemple : >>> 10 % 3 (et notez ce qui se passe!) >>> 10 % 5 Cet opérateur vous sera très utile plus loin, notamment pour tester si un nombre a est divisible par un nombre b. Il suffira en effet de vérifier que a % b donne un résultat égal à zéro. Vérifier à l'aide de la commande modulo si le nombre 3394 est divisible par 3 puis par 17.. Écrire un programme qui permet d'échanger la valeur de nombres a et b indépendamment des valeurs affectées à a et à b au départ.

37 Récapitulatif A faire sur feuille, sans ordinateur I) Affectation Définition : La notion d'affectation (ou d'assignation) désigne l'opération par laquelle on établit un lien entre le nom de la variable et sa valeur (son contenu). On l'a noté en langage usuel avec le symbole Question 1 : Comment se note-t-elle en Python? Question : Comment fait-on pour affecter à une variable a la valeur 3? Question 3 : Cette affectation est-elle définitive? Comment fait-on pour lui ré-affecter une autre valeur? Question 4 : Quelle est la signification du symbole «==» en Python? Question 5 : On écrit les lignes de commande suivantes. Quel résultat va renvoyer l'ordinateur? >>>a=5 >>>a >>>a==3 >>>a==5 >>>a=18 >>>a<0 >>>a>10 >>>a=a+6 >>>a >>>b=30 >>>b>a >>>a+b Question 6 : On écrit les lignes de commande suivantes. Quel résultat va renvoyer l'ordinateur? >>>a=10 >>>b="salut" >>>a+b Même question avec : >>>a=10 >>>b= 5. >>>a+b

38 II) Typage des variables Question 7 : Rappeler les différents types de variables rencontrés. Question 8 : a) Comment assigne-t-on à une variable a le type string? (chaîne de caractères) b) Que signifie l'opération concaténer deux chaînes de caractères? c) Que va renvoyer les commandes suivantes? >>>a="bonjour " >>>b="vous!" >>>a+b >>>print(a+b) Question 9 : Que va renvoyer la commande suivante? >>> a="oui " >>>a*3 Question 10 : On admet que le premier élément d'une liste LIST se note LIST[0], le second LIST[1], etc... On se donne une liste par la commande suivante : >>>LIST=[5,48,-57,"ABC",451.9,"soleil",-789] Que va renvoyer les commandes suivantes? >>>LIST[0] >>>LIST[] >>>LIST[5] Pour un complément sur la notion d'affectation avec Python, se référer à la fiche : Plus sur l'affectation.

39 INITIATION AU LANGAGE PYTHON séance n Objectifs : savoir écrire un script en Python et l'enregistrer pour une utilisation ultérieure. Travailler la notion de boucle. Consignes : La dernière fois, nous avons utilisé Python en mode interactif grâce à l'interface IDLE (Python Gui). De cette manière, nous avons été en mesure d'apprécier «en direct» quelques outils néanmoins fondamentaux : affectation d'une valeur à une variable, les différents types de variables : int, float, string, list... Mais dès lors que nous fermons la fenêtre dans laquelle nous avons travaillé, toutes les données sont irrémédiablement perdues. Au cours de cette séance, vous allez apprendre comment écrire un script et l'enregistrer pour une éventuelle ré-utilisation dans le futur. Exercice 1 : votre premier programme Remarque : Tout ce qui suit le signe dièse : # est considéré par Python comme un commentaire. Cela n'apparaîtra pas dans le script final et n'est destiné qu'à votre intention ou à celle des lecteurs du programme. Il sera ESSENTIEL que vous commentiez vos programmes. D'une cela facilite leur compréhension, et de deux cela vous aidera à les reprendre plus tard si vous ne les avez pas terminé. 1. Rechercher le logiciel Python dans menu démarrer>programmes>python 3.1>IDLE(Python GUI). Ouvrir une nouvelle fenêtre à l'aide de l'onglet file puis New window. Il apparaît une fenêtre vierge attendant vos instructions. 3. Saisir alors exactement le texte ci-dessous. La mise en forme se fait automatiquement. En particulier l'indentation du bloc d'instructions suivant while est ESSENTIELLE. Elle se fera automatiquement sous IDLE. 4. TRES IMPORTANT : enregistrez ce fichier sur votre clef USB dans le dossier TP Python en lui donnant le nom suivant : TP_exercice1.py (l'extension.py est capitale) 5. Vous allez compiler le programme en appuyant simultanément sur les touches Ctrl et F5. 6. Alors, que se passe-t-il?

40 Exercice En créant une nouvelle feuille vierge grâce à l'instruction file New Window, répondez au problème suivant. Vous l'enregistrerez sous le nom : TP_exercice.py Construire la figure suivante en utilisant l'instruction while (longueur d'un côté du quadrillage 50). Quel nom porte cette figure? Quelques instructions pour obtenir les figures demandées. from turtle import * left(x) right(x) Permet d'importer les commandes pour les tracés. On efface tout et on recommence Aller à l'endroit(x,y) Avancer de la distance x Reculer de la distance x Relever le crayon (pour pouvoir avancer sans dessiner). Abaisser le crayon pour recommencer à dessiner. Tourner à gauche d'un angle en degrés égal à x. Tourner à droite d'un angle en degrés égal à x. sqrt(x) racine carré de x ( reset() goto(x,y) forward(x) backward(x) up() down() Instructions en Python while condition: Bloc d'instructions x ) Commentaires while signifie «tant que» Les «:» sont indispensables pour dire «faire» L'indentation après while est obligatoire.

41 Exercice 3 De même, après avoir écrit votre programme dans une nouvelle feuille vierge, enregistrez-le sur votre clef USB sous le nom : TP_exercice3.py. En utilisant toujours l'instruction while, soit une fois soit deux fois, obtenir la figure suivante (longueur d'un côté d'un petit carré : 50. Cette figure devra être construite en une seule fois. On construira d'abord les côtés de l'hexagone puis les trois diagonales. Exercice 4 Écrire un programme dans une nouvelle feuille vierge calculant et affichant le résultat de S = Vous l'enregistrerez sur votre clef USB sous le nom : TP_exercice4.py La commande pour afficher une variable S est : print(s)

42 Récapitulatif Écrire une boucle «Tant que» avec Python Syntaxe en langage usuel Tant que condition vérifiée faire bloc d'instructions Syntaxe en Python while condition vérifiée : bloc d'instructions Remarques : Les : sont obligatoires après la condition associée à while. l'indentation du bloc d'instructions associé à while est obligatoire. Utilisation du module turtle Toute utilisation des outils graphique du module turtle nécessite qu'on l'ait «appelé» par la commande : from turtle import * avant toute chose. On redonne les commandes usuelles pour tracer des figures : reset() On efface tout et on recommence goto(x,y) Aller à l'endroit(x,y) forward(x) Avancer de la distance x backward(x) Reculer de la distance x up() Relever le crayon (pour pouvoir avancer sans dessiner). Abaisser le crayon pour recommencer à dessiner. Tourner à gauche d'un angle en degrés égal à x. Tourner à droite d'un angle en degrés égal à x. down() left(x) right(x)

43 INITIATION AU LANGAGE PYTHON séance n 3 Objectifs : Travailler la notion de boucle sur des exemples plus poussés. Consignes : on veillera dans cette séance à enregistrer soigneusement ses programmes pour une utilisation ultérieure dans certains scripts. Exercice 1 1. Rappeler dans l encart de texte ci-dessous un script écrit en Python qui permet de dessiner un carré de côté 10. Vous utiliserez une boucle while.. En modifiant ce script, en écrire un autre qui trace une série de dix carrés de côté 10. L espace entre les carrés est de 10. Vous enregistrerez votre programme sous le nom : TP3_exercice1.py 3. En modifiant le script précédent, en écrire un autre qui trace une série de quatre carrés dont les côtés augmentent de 15 en 15. Le premier carré a un côté de 10 et l espace entre chaque carré est de 10. Vous l enregistrerez sous le nom : TP3_exercice1bis.py

44 Exercice Écrire un script en Python qui trace une série alternée de carrés et d hexagones espacés de 30. Les carrés comme les hexagones ont leurs côtés égaux à 0. Vous l'enregistrerez sous le nom TP3_exercice.py. Exercice 3 Considérons une liste de nombres entiers ou flottants : a=[0,3.5,44, 37, 151, 8,15.5] Le premier élément de la liste se note a[0], le second a[1],etc... Il existe une fonction prédéfinie en Python qui renvoie le nombre d'éléments d'une liste : c'est la fonction len. Dans le cas présent, si l'on tape len(a), l'ordinateur affichera 7. Écrire un script qui : part d'une liste de nombres entiers ou flottants, par exemple on prendra la liste précédente. En parcourant la liste, renvoie au final la somme des éléments qui la constitue. Vous utiliserez une boucle while et la fonction len. Vous enregistrerez votre programme sous le nom TP3_exercice3.py Pour un complément sur la notion de saisie de données avec Python, se référer à la fiche : Plus sur la saisie de données.

45 INITIATION AU LANGAGE PYTHON séance n 4 Objectifs : Travailler la notion d'instruction conditionnelle. Consignes : on enregistrera également tous les programmes réalisés au cours de la séance. Écrire une instruction conditionnelle «Si...alors» avec Python Syntaxe en langage usuel Si condition vérifiée faire Syntaxe en Python if condition vérifiée: bloc d'instructions bloc d'instructions Remarques : Les : sont obligatoires après la condition associée à if. l'indentation du bloc d'instructions associé à if est obligatoire. Exercice 1 Écrivez un programme qui affiche les 0 premiers termes de la table de multiplication par 7, en signalant au passage (à l'aide d'une astérisque) ceux qui sont des multiples de 3. Exemple : * * 49 (penser à utiliser la commande modulo %) Enregistrez votre programme sous le nom TP4_exercice1.py Exercice Écrivez un programme qui : demande à l'utilisateur de saisir une chaîne de caractères compte le nombre d'occurrences du caractère «g» dans cette chaîne. Enregistrez votre programme sous le nom TP4_exercice.py Écrire une instruction conditionnelle «Si...alors...sinon» avec Python Syntaxe en langage usuel Si condition vérifiée faire Syntaxe en Python if condition vérifiée: bloc d'instructions 1 Sinon faire bloc d'instructions bloc d'instructions 1 else: bloc d'instructions Remarques : Les : sont obligatoires après la condition associée à if ainsi qu'après else. l'indentation du bloc d'instructions associé à if est obligatoire ; même chose pour celui associé à else. if et else sont indentés identiquement

46 Exercice 3 Écrire un programme qui demande à l'utilisateur de saisir un entier naturel N. Si N est un multiple de 5, il sera affiché «multiple de 5», sinon ce sera «pas multiple de 5» Enregistrez votre programme sous le nom TP4_exercice3.py Exercice 4 Écrire un programme qui demande à l'utilisateur de saisir un entier naturel N. Si N est pair, le programme dessinera un carré de côté 50, sinon il dessinera un triangle équilatéral de côté 70. Enregistrez votre programme sous le nom TP4_exercice4.py Écrire une instruction conditionnelle «Si...Sinon si...sinon» avec Python Syntaxe en langage usuel Si (condition 1 vérifiée) faire Syntaxe en Python if (condition 1 vérifiée): bloc d'instructions n 1 Sinon si (condition vérifiée) faire bloc d'instructions n 1 elif (condition vérifiée): bloc d'instructions n etc... bloc d'instructions n...etc... Sinon si (condition N-1 vérifiée) faire bloc d'instructions n N-1 Sinon faire bloc d'instruction n N elif (condition N-1 vérifiée): bloc d'instructions n N-1 else: bloc d'instruction n N Remarques : elif signifie sinon si Les : sont obligatoires après la condition associée à if ainsi qu'après celles associées aux elif et à else. l'indentation du bloc d'instructions associé à if est obligatoire ; même chose pour celui associés aux elif et à else. if, elif et else sont indentés identiquement Toutes les conditions énoncées sont par construction incompatibles deux à deux. Exercice 5 Lors d'un sondage, une personne interrogée a le choix entre trois réponses : satisfait moyennement satisfait pas satisfait Écrire un programme qui demande à l'utilisateur son avis parmi ces trois propositions dans l'ordre précité. Si la première réponse est donnée, il affichera "Merci! Very Good" ; si c'est la seconde il affichera "Ok ok" sinon il affichera "Snif! "

47 INITIATION AU LANGAGE PYTHON séance n 5 Objectifs : Travailler la notion de chaîne de caractères et de liste. Consignes : on enregistrera également tous les programmes réalisés au cours de la séance. Les chaînes de caractères (type string) Sous Python, une donnée de type string est une suite quelconque de caractères (texte ou même nombres) délimitée soit par des apostrophes (simple quotes), soit par des guillemets (double quotes). Exemples : >>> phrase1='voilà un écrit ' >>> phrase='bien intéressant' >>> print(phrase1,phrase) Voilà un écrit bien intéressant A l'intérieur d'une chaîne de caractères, l'antislash «\» permet d'insérer un certain nombre de codes spéciaux (sauts à la ligne, apostrophes, guillemets, etc.). On ne donne que l'exemple des apostrophes. >>> phrase3='comment s\'appelle-t-il?' # L'antislash est placé avant l'apostrophe >>> print(phrase3) Comment s'appelle-t-il? Python considère les chaînes de caractères comme une collection ordonnée d'éléments. Pour accéder à un élément de la chaîne, on saisit le nom de la variable et on lui accole entre crochets le numéro de l'élément considéré. Attention, la numérotation commence à zéro! Exemples : >>> mot='erg4ju6op' >>> print(mot[0]) e >>> print(mot[3]) 4 Opérations sur les chaînes de caractères 1. La concaténation Cette opération consiste à mettre bout à bout les éléments constitutifs de plusieurs chaînes de caractères. Elle se symbolise à l'aide de l'opération + Exemple : >>> mot1='mais c\'est ' >>> mot='merveilleux!' >>> print(mot1+mot) Mais c'est merveilleux! >>> print(mot+mot1) merveilleux!mais c'est # on concatène mot1 et mot # L'ordre est important.

48 . Déterminer la longueur d'une chaîne Cette opération s'effectue grâce à la fonction len(). Exemple : >>> mot="adseghbm55f" >>> len(mot) Convertir une chaîne de caractères en nombre Exemple : >>> nb1='54' >>> nb1+5 Traceback (most recent call last): File "<pyshell#7>", line 1, in <module> nb+5 TypeError: Can't convert 'int' object to str implicitly >>> int(nb1)+5 # on convertit la chaîne nb1 en entier grâce à la fonction int() 59 >>> nb='0.36' >>> float(nb)+4 # on convertit la chaîne nb en flottant grâce à la fonction float() 4.36 Remarque : La chaîne qui ne contient aucun élément se note "" (rien entre les guillemets) Exercice 1 Écrire un programme qui : demande à l'utilisateur de saisir une chaîne de caractères compte le nombre d'occurrences du caractère «a» dans cette chaîne. Si «a» n'apparaît pas, le programme le rajoute à la fin de la chaîne. Enregistrez votre programme sous le nom TP5_exercice1.py Exercice Écrire un programme qui recopie une chaîne (dans une nouvelle variable) en l'inversant. Ainsi par exemple, «bouchon» deviendra «nohcuob». Enregistrez votre programme sous le nom TP5_exercice.py Les listes d'éléments (type list) Sous Python, on peut définir une liste comme une collection d'éléments (éventuellement de types divers) séparés par des virgules, l'ensemble étant encadré par des crochets. Exemple : >>> maliste=['abc','hello',0,3.14,'coucou'] >>> print(maliste) ['abc', 'hello', 0, 3.14, 'coucou'] Remarque : Comme les chaînes de caractères, les éléments d'une liste sont numérotés en commençant à zéro.

49 Exemple : >>> maliste=['abc','hello',0,3.14,'coucou'] >>> maliste[0] 'abc' >>> maliste[] 0 A retenir : l'indice d'une liste de n éléments commence à 0 et se termine à n-1 Opérations sur les listes 1. Concaténation et duplication Comme pour les chaînes de caractères, l'opérateur + sert pour concaténer des listes et * pour les dupliquer. Exemple : >>> liste1=[35,'bonjour',65,69] >>> liste=['ha','gros',564] >>> liste1+liste [35, 'bonjour', 65, 69, 'ha', 'gros', 564] >>> liste*3 ['ha', 'gros', 564, 'ha', 'gros', 564, 'ha', 'gros', 564]. Ajouter ou supprimer un élément dans une liste Python est un langage «orienté objet». On dispose de méthodes spécifiques permettant d'effectuer certaines actions sur des objets. Nous considérerons ici qu'une liste est un objet. Ajouter un élément à la fin d'une liste Exemple : >>> maliste=[01,45.8,1] >>> maliste.append(35) >>> maliste [01, 45.8, 1, 35] On a appliqué la méthode append() à l'objet maliste avec l'argument 35. La syntaxe est : liste.append(objet) Ajouter un élément à l'intérieur d'une liste Exemple : >>> maliste=[01,45.8,1,35,89] >>> maliste.insert(3,100) >>> maliste [01, 45.8, 1, 100, 35, 89] La commande liste.insert(indice,objet) insère l'objet dans la liste avant l'indice précisé. Supprimer un élément dans une liste Cette opération s'effectue grâce à la commande del liste[indice]

50 Exemple : >>> maliste=[55,01,89,33] >>> del maliste[1] >>> maliste [55, 89, 33] Remarque : la liste vide se note []. La méthode append() est particulièrement adaptée pour construire une liste à partie d'une boucle. La fonction len() renvoie également le nombre d'éléments d'une liste. Exemple : >>> maliste=[55,10,40,-8] >>> len(maliste) 4 Exercice 3 Écrire un programme qui : demande à l'utilisateur de saisir une liste de nombres, par exemple [0,35,11,56,41,10]. détermine le plus grand élément de cette liste, affiche cet élément. Par exemple si l'utilisateur saisit [0,35,11,56,41,10] il s'affichera : le plus grand élément de cette liste est 56 Enregistrez votre programme sous le nom TP5_exercice3.py Exercice 4 Écrire un programme qui : demande à l'utilisateur de saisir deux listes, alterne les éléments de la première liste avec ceux de la seconde. Par exemple si l'utilisateur saisit ['coucou','bonjour','ça va?'] et ['Charles','Edouard','Au poil!'], il s'affichera : ['coucou','charles','bonjour','edouard','ça va?','au poil!'] Enregistrez votre programme sous le nom TP5_exercice4.py

51 INITIATION AU LANGAGE PYTHON séance n 6 Objectifs : Initiation à la notion de fonction. Motivation : De même qu'un organisme vivant (donc une structure biologiquement complexe) est constitué d'un assemblage de nombreuses cellules, un programme «compliqué» se structure en un assemblage de plus petits sous-programmes, chacun ayant un rôle bien défini. Nous allons découvrir au cours de cette séance, comment créer ces petits sous-programmes et les utiliser pour en construire un autre plus compliqué. L'utilité de ces sous-programmes, que l'on appellera fonctions est primordiale lorsque l'on veut réaliser plusieurs fois la même opération au sein d'un même programme. La syntaxe Python pour définir une fonction est la suivante : def nom_de_la_fonction(liste de paramètres): Blocs d'instructions Vous pouvez choisir n'importe quel nom pour la fonction que vous créez, à l'exception des mots réservés du langage, et à la condition de n'utiliser aucun caractère spécial ou accentué (le caractère souligné «_» est permis). Comme les instructions if et while que vous connaissez déjà, l'instruction def est une instruction composée. La ligne contenant cette instruction se termine obligatoirement par un double point, lequel introduit un bloc d'instructions que vous ne devez pas oublier d'indenter. La liste de paramètres spécifie quelles informations il faudra fournir en guise d'arguments lorsque l'on voudra utiliser cette fonction (Les parenthèses peuvent parfaitement rester vides si la fonction ne nécessite pas d'arguments). (Gérard Swinnen. Programmer avec Python) Tout en suivant les instructions, vous répondrez sur cette feuille aux questions posées au cours des exercices. Exercice 1 Pour le moment nous allons utiliser Python en mode interactif. Ouvrez un fichier vierge via : menu démarrer>tous les programmes>python 3.1>IDLE (Python GUI). Recopiez ensuite le script cidessous et tapez deux fois entrée. Le prompt de commande >>> apparaît. Écrire alors table5() >>> def table5(): i=0 while i<11: print("5 *",i," = ",5*i) i=i+1 # Pas de paramètres en argument ici # Remarquez l'indentation du bloc d'instructions de def # Remarquez l'indentation du bloc d'instructions de while >>> table5() # Que s'affiche-t-il à l'écran?

52 Analyse : L'intérieur des parenthèses est vide. Dans cette fonction, nous n'avons utilisé aucun paramètre, c'est-à-dire que l'utilisateur ne se donne pas le choix de faire varier par exemple le choix de la table : 5 est fixé. Bien remarquer l'indentation après l'instruction def suivie de deux points. Elle est obligatoire. Exercice On aimerait pouvoir écrire n'importe quelle table d'entiers. Encore faut-il le choisir! Pour cela, on mettra celui-ci en paramètre. A la suite de ce que vous avez saisi précédemment, écrire le script cidessous : >>> def table_d_entiers(n): i=0 while i<11: print(n," * ",i," = ",n*i) i=i+1 Appuyez deux fois sur la touche Entrée. Le prompt de commande >>> réapparait. Saisir : >>>table_d_entiers(4) # Que s'affiche-t-il à l'écran? Saisir : >>>table_d_entiers(8) # Que s'affiche-t-il à l'écran? Analyse : Le fait d'avoir mis un entier n en paramètre (à l'intérieur des parenthèses) permet d'afficher la table de multiplication de l'entier n. Il suffit de remplacer n par la valeur choisie en appelant la fonction. On aimerait néanmoins demander à l'utilisateur de saisir n à l'écran pour qu'ensuite la fonction soit appelée et affiche la table de multiplication de n. On séparera donc en deux la construction de la fonction et le programme principal. Exercice 3 A partir de la fenêtre présentement ouverte, ouvrir une fenêtre vierge via file>new Window. Saisir ensuite le script qui suit : def table_d_entiers(n): i=0 while i<11: print(n," * ",i," = ",n*i) i=i+1 # programme principal n=int(input("saisissez un entier ")) table_d_entiers(n) # Construction de la fonction

53 1. Enregistrez ce programme sous le nom : TP6_exercice3.py. Appuyez sur Ctrl + F5 simultanément pour le faire fonctionner. Vous choisirez n'importe quelle valeur de n pour le tester. Remarque : Tout programme en Python un peu complexe prendra nécessairement la forme suivante : Liste de fonctions # il peut n'y en avoir qu'une Programme principal # on utilise les fonctions précédentes Exercice 4 Ouvrir une autre fenêtre vierge via file>new Window 1. Écrire une fonction carre(taille) permettant de dessiner un carré de côté taille.. Écrire le programme principal à la suite. Celui-ci : a) demandera à l'utilisateur de saisir la taille du côté d'un carré b) dessinera 5 carrés de la taille choisie, l'espace entre les carrés étant de Enregistrez le programme sous le nom TP6_exercice4.py 4. Le tester en appuyant sur Ctrl+F5 simultanément. Exercice 5 Ouvrir une autre fenêtre vierge via file>new Window 1. Copier le script de la fonction carré précédente.. Écrire le programme principal à la suite. Celui-ci : a) demandera à l'utilisateur de saisir la taille du côté du carré initial. b) construira une suite de 4 carrés dont les côtés s'accroissent de 15 à chaque fois. c) sera tel que l'espace entre les carrés est de Vous enregistrez ce programme sous le nom TP6_exercice5.py et le testerez.

54 Exercice 6 Écrire un programme utilisant deux fonctions carre(taille) et hexagone(taille) permettant de dessiner le motif suivant. Les carrés comme les hexagones ont leur côtés égaux à 0 et l'espace entre chaque figure est de 30. Vous l'enregistrerez sous le nom TP6_exercice6.py et le testerez. Exercice 7 En créant deux fonctions pentagone et triangle, écrire un programme qui dessine une alternance pentagone (de côté 15, de couleur bleue) et triangle équilatéral (sommet vers le bas, de côté 5, de couleur rouge) 5 fois de suite. L'espacement entre la base d'un pentagone et d'un triangle est de 0. On partira du point de coordonnées (-100,0). Vous l'enregistrerez sous le nom TP6_exercice7.py et le testerez. Liste de couleurs : 'blue','red','green','yellow','pink',etc... Pour affecter une couleur à une ligne la commande est : color(couleur) Remarque : Les exercices 4, 5 et 6 ont déjà été traités avant. Quelle différence notez-vous? Pour un complément sur la notion de fonction avec Python, se référer à la fiche : Plus sur la notion de fonction

55 Fiches de complément Python

56 PLUS SUR LA NOTION D'AFFECTATION L'affectation Dans le langage de programmation Python, on dispose de l'opération d'affectation symbolisée par le signe «égale» : = Par exemple, analysez les séquences d'instructions suivantes : 1. L'affectation simple >>> a = 3 >>> b = 4 # J'affecte à la variable a la valeur 3 # J'affecte à la variable b la valeur 4. L'affectation parallèle >>> a,b = 3,4 # J'affecte simultanément à a la valeur 3 et à b la valeur 4 Ici, la ligne de code ci-dessus parvient exactement au même résultat que les lignes de codes précédentes. ATTENTION! Il convient cependant de bien comprendre comment fonctionne l'affectation parallèle par rapport à l'affectation simple. Exercice résolu : on souhaite échanger les valeurs de variables a et b. Résolution avec l'affectation simple >>> a = 3 >>> b = 4 # Fausse bonne idée : échanger directement les valeurs de a et b >>> a = b # a prend la valeur 4 >>> b = a # La valeur 4 étant à présent affectée à la variable a, b la prend aussi! # Au final, a et b valent 4 # On va avoir besoin d'une variable supplémentaire pour stocker la valeur initiale de a. Corrigeons-donc notre script... >>> a = 3 >>> b = 4 >>> c= a # J'affecte à c la valeur initiale de a, ç'est-à-dire 3 >>> a = b # a prend la valeur de b, ç'est-à-dire 4 >>> b = c # b prend la valeur de c, ç'est-à-dire la valeur initiale de a : 3 Résolution avec l'affectation parallèle >>> a,b= 3,4 # J'affecte simultanément à a la valeur 3 et à b la valeur 4 >>> a,b = b,a #ET LA, GROSSE DIFFERENCE : les expressions de la partie droite sont d'abord toutes évaluées avant qu'aucune affectation ne se fasse. Comme b vaut 3 et a vaut 4, le tour est joué! Exercice Quelles valeurs vont être affectées à a et à b au final après les lignes de codes suivantes? >>> a,b = 6,10 >>> a,b= 6,10 >>> a = b OU >>> a,b = b, a - b >>> b = a b On a aussi la notion d'affectation multiple. Exemple a=b=5 On affecte à a et b la valeur 5

57 PLUS SUR LA SAISIE DE DONNEES La commande input() Dans le langage de programmation Python, on dispose de la fonction prédéfinie input() qui permet à l'utilisateur de saisir des données à l'écran. Par exemple testez : >>> a=input() 3 >>> a '3' >>> type(a) <class 'str'> >>> a=int(input()) 3 >>> a 3 >>> type(a) <class 'int'> # l'ordinateur attend la saisie de l'utilisateur. # Attention même si c'est un entier qui est saisi, a est du type «string» # Comment le convertir en entier? La commande input() permet aussi d'afficher du texte. Il suffit d'écrire entre guillemets ou simple quotes le message à l'intérieur des parenthèses. Exemple : >>> a=input("saisissez un nombre décimal ") Saisissez un nombre décimal # l'ordinateur attend la saisie de l'utilisateur # Si l'on veut que a soit du type float, on doit composer deux instructions. # On modifie la ligne précédente par : >>> a=float(input("saisissez un nombre décimal ")) Saisissez un nombre décimal 0.6 # je saisis 0.6 par exemple >>> type(a) <class 'float'> # La variable a a été convertie en flottant On retiendra : la commande a=input() permet d'affecter à la variable a ce qui est saisi par l'utilisateur à l'écran. ATTENTION! On gardera à l'esprit que a est du type string. Si l'on souhaite travailler avec des nombres ou des listes, il faudra convertir a en composant une instruction adéquate avec la commande input().

58 PLUS SUR LA NOTION DE FONCTION Comment retourner une valeur? Lorsqu'une fonction est destinée à renvoyer une valeur, on utilise l'instruction return(argument) Exercice 1 Dans une fenêtre vierge, recopier le script suivant : def puissance3(x) return(x**3) Puis testez ce programme en l'enregistrant sous le nom : TP_fonctions_calcul1.py. Appuyez ensuite sur Ctrl+F5. Testez: 1. puissance3(). puissance3(10) Exercice On souhaite dans cet exercice calculer le volume d'un parallélépipède rectangle. Écrire une fonction volume dépendant de trois paramètres qui renvoie le volume d'un tel parallélépipède. Testez-la ensuite sur quelques exemples. Vous enregistrerez ce programme sous le nom : TP_fonctions_calcul.py Variables locales et globales Lorsque l'on définit une fonction, il est nécessaire de connaître la portée des variables. Exemple : Définissons une fonction en mode interactif sous IDLE. >>> def fonction1(): x=3 print("dans cette fonction x est égal à ",x) >>> fonction1() Dans cette fonction x est égal à 3 >>> x # message d'erreur Traceback (most recent call last): File "<pyshell#14>", line 1, in <module> x NameError: name 'x' is not defined Remarque : la variable x n'existe pas en dehors de la fonction où elle a été définie. On dit que x est une une variable locale. Par contre, une valeur déclarée à la racine du module principal est visible partout. Exemple : >>> def fonction(): print(x) >>> x=4

59 >>> fonction() 4 >>> x=5 >>> fonction() 5 On dit que x est une variable globale. Cette variable est visible dans tout le module. ATTENTION aux types modifiables comme les listes >>> liste=[1,,3] >>> def change_liste(): liste[1]=-15 >>> change_liste() >>> liste [1, -15, 3] # liste est une variable globale # liste a été modifiée par la fonction change_liste() De la même manière, en passant une liste en arguments, elle est tout autant modifiable! >>> liste=[1,,3] >>> def change_liste(x): x[1]=-0 >>> change_liste(liste) >>> liste [1, -0, 3] # x est passé en argument # liste a été modifiée par la fonction change_liste() La règle LGI Nous avons vu au paragraphe précédent les notions de variables locales ou globales. Il existe aussi un troisième type de variables : les variables internes. Exemple : la fonction len() qui renvoie la taille d'une liste ou d'une chaîne de caractères et qui existe dès qu'on lance Python. Python traite les variables par ordre de priorité : 1. D'abord, il regarde si la variable considérée est une variable locale,. Ensuite, si elle n'existe pas localement, il regarde si c'est une variable globale, 3. Enfin, il regarde si c'est une variable interne. Exemple : >>> def fonction(): x=10 print('dans la fonction x vaut ',x) >>> x=0 >>> fonction() Dans la fonction x vaut 10 >>>print('dans le module principal x vaut ',x) Dans le module principal x vaut 0 # x est une variable locale # x est une variable globale

60 Remarque : Notez bien ce qui s'est passé. x a pris en priorité la valeur qui lui était définie localement par rapport à celle qui lui était définie globalement. Il est possible de forcer une variable à prendre sa valeur globale dans une fonction avec le mot clé : global Exemple : >>> def double(): global x x=x* >>> x=3 >>> double() >>> x 6 Remarque : cette notion a son importance lorsque dans une fonction qui renvoie une ou plusieurs valeurs, on souhaite que ces dernières servent dans le programme principal. On doit donc les déclarer en tant que variables globales. Exemple : On souhaite subdiviser un intervalle [a ; b] en n sous-intervalles égaux. On accepte le chevauchement aux points de subdivision. def subdivision(a,b,n): global subdi subdi=[] i,c=0,0 while i<=n: c=a+i*(b-a)/n subdi.append(c) i=i+1 # la variable subdi est déclarée comme globale # on initialise subdi par la liste vide # on construit les points de la subdivision return subdi # programme principal a=float(input("entrer la borne inférieure de l\'intervalle ")) b=float(input("entrer la borne supérieure de l\'intervalle ")) n=int(input(" Entrer le nombre d\'intervalles n de la subdivision ")) subdivision(a,b,n) print (subdi) # on compile le programme avec Ctrl+F5 Entrer la borne inférieure de l'intervalle Entrer la borne supérieure de l'intervalle 10 Entrer le nombre d'intervalles n de la subdivision 0 [.0,.4,.8, 3., 3.6, 4.0, 4.4, 4.8, 5., 5.6, 6.0, 6.4, 6.8, 7., 7.6, 8.0, 8.4, 8.8, 9., 9.6, 10.0]

61 LA RECURSIVITE Définition : Un algorithme est dit récursif s'il s'appelle lui-même. Reprenons l'exemple de la factorielle vu en classe. On rappelle que : n doit être un entier naturel. 1. Si n=0, on a n! = 1 ie 0! = 1. Si n est supérieur ou égal à 1, on a n!= n. n! se lit «factorielle n» Écrire une fonction factorielle(n) qui renvoie la factorielle d'un entier naturel choisi par l'utilisateur. Quel lien existe-t-il entre n! et n 1!? Ce lien nous suggère l'algorithme récursif suivant, où la fonction factorielle va s'appeler elle-même. def factorielle(n): if n = = 0: return 1 else: return n * factorielle(n-1) # la fonction factorielle est appelée à l'intérieur d'elle même. Essayez de comprendre ce qui se passe. Schématisez-le pour n=. Exercice : on pose u 0 = et pour tout entier naturel n non nul, u n = 3 u n 1 8. Créer une fonction suite(n) en utilisant un algorithme récursif capable de calculer n'importe quelle valeur un.

62 Test avec un tableur : Calcul des 0 premiers termes A n B u_n Utilisation du logiciel Python : def suite(n): if n==0: return else: return 3*suite(n-1)+8 # programme principal a=0 while a<=0: print suite(a) a=a+1 On compile ensuite ce code. Formule dans B3 : Résultat à l'écran >>> >>> =3*B+8

63 Fiches de TP en seconde GT

64 TP GEOMETRIE N 1 DISTANCE ET COORDONNEES Question 1 : Écrire un programme qui étant donné les coordonnées x A et y A d'un point A, puis x B et y B d'un point B, renvoie les coordonnées du point I, milieu du segment [AB]. Sous Python vous créerez une fonction milieu(x_a,x_b,y_a,y_b) Question : Écrire un programme qui étant donné les coordonnées puis x B et y B d'un point B, renvoie la distance AB. xa et ya d'un point A, Sous Python la fonction racine carrée se note sqrt() : sqrt(x) est la racine carrée d'un réel positif x. Vous créerez une fonction distance(x_a,x_b,y_a,y_b). Question 3 : Soit C le cercle de diamètre [AB]. Dans un repère orthonormé on se donne A(- ;) et B(3 ; -5). On cherche à savoir si un point M(x ; y) appartient ou non au cercle C. 1. Écrire un programme utilisant les deux fonctions précédentes qui réponde à la question Le tester avec M( 1; 14) puis M ; Rappels mathématiques : A x A ; y A et B x B ; y B alors I milieu de [AB] a pour coordonnées x x y yb. I A B ; A. Dans un repère orthonormé O ; i ; j, si A x A ; y A et B x B ; y B, alors AB = x B x A y B y A 1. Si PS : Vous pouvez répondre à toutes les questions sans utiliser la notion de fonction. La question 3 sera alors plus longue à programmer.

65 TP GEOMETRIE N VECTEURS ET PARALLELOGRAMME Question 1 : On considère un repère O ; i ; j. On se donne deux points A, B repérés par leurs coordonnées. Écrire un programme qui étant donné les coordonnées x A et y A d'un point A, puis x B et y B d'un point B, renvoie celles du vecteur AB sous la forme d'une liste. Sous Python vous pouvez créer une fonction vecteur(x_a,x_b,y_a,y_b) Question : On se donne quatre points distincts du plan A, B, C et D repérés par leurs coordonnées. 1. Écrire un programme qui étant donné les coordonnées des points A,B,C et D affiche si le quadrilatère ABCD est un parallélogramme.. Écrire un programme qui étant donné les coordonnées des points A,B,C et D affiche si le quadrilatère ABCD est un trapèze. Vous pourrez vous servir de la fonction créée à la question 1. Les tester avec A(-1 ; ), B (3 ; 4), C(1 ; 5) et D(9 ; 7) Question 3 : On se donne trois points du plan A,B et C repérés par leurs coordonnées. Écrire un programme qui étant donné les coordonnées des points A,B,C détermine les coordonnées x D ; y D du point D tel que ABCD soit un parallélogramme. Rappels mathématiques : AB x B x A ; y B y A. 1. Si A x A ; y A et B x B ; y B alors. ABCD est un parallélogramme si et seulement si AB = DC 3. ABCD est un trapèze si et seulement si les vecteurs AB et DC sont colinéaires.

66 TP FONCTION N 1 TRACE D'UNE COURBE Comment créer un graphique avec Python? Il faut d'abord importer les modules matplotlib et numpy associés à votre distribution de Python et à votre système d'exploitation. Vous pouvez les trouver à l'adresse suivante : x x 1. 6 Le module matplotlib a tous les outils graphiques utiles pour les tracés de fonctions. Le module numpy possède quant à lui plein de fonctions prédéfinies. Exemple : on souhaite tracer la fonction f définie sur [-4 ; 5] par f x = Ouvrez une fenêtre via démarrer>tous les programmes>python 3.1>IDLE (Python Gui) Testez ensuite les commandes suivantes : >>> import matplotlib.pyplot as plt >>> import numpy as np >>> x=np.linspace(-4,5,100) # la courbe est tracée à partir de 100 points >>> plt.plot(x,x**3/6-x**+1) [<matplotlib.lines.lined object at 0x03ADD10>] >>> plt.show() Remarque : le curseur de la souris indique les coordonnées du point. Après avoir importé les modules matplotlib et numpy comme dans l'exemple précédent :

67 Commandes signification np.linspace(a,b,n) On crée une matrice ligne de N valeurs régulièrement espacées entre a et b. plt.plot(x,f(x)) plt.show() plt.clf() plt.axis([xmin,xmax,ymin,ymax]) plt.savefig() plt.grid(true ou False) Tracer la fonction f de variable x Afficher le graphique Efface la fenêtre graphique Spécifie un rectangle de représentation Sauvegarde le graphique en format PNG Affiche une grille en pointillés Exercice : 1. Tracer dans une fenêtre graphique la courbe représentative C de la fonction f définie sur [ 4 ; 8] par f x = x 3 x 10. On affichera une grille.. Résoudre graphiquement l'équation f x = Sur le même graphique, tracer la droite d'équation y = a) Trouver les antécédents de 1 par f. b) Résoudre graphiquement l'inéquation f x a) Tracer la droite d'équation y = 10 b) Trouver les coordonnées du sommet S de C. PS : tracer d'abord tous les graphiques : C et les deux droites avant d'utiliser l'instruction plt.show() Remarquer aussi que x 0 = 1 pour le tracé des droites horizontales.

68 TP PROBAS-STATS Question 1 : Écrire un programme qui demande à un utilisateur de saisir N notes entre 0 et 0 (N choisi par l'utilisateur) sous la forme d'une liste et N nombres entre 1 et 3 (les coefficients de ces notes), puis qui renvoie la moyenne pondérée de ces N notes. Question : On considère un dé à 6 faces parfait et 3 urnes numérotées de 1 à 3. L'urne 1 contient 3 boules blanches, 4 boules noires et 3 boules vertes. L'urne contient boules blanches, boules noires et 6 boules vertes. L'urne 3 contient 4 boules blanches, 4 boules noires et boules vertes. Toutes ces boules sont indiscernables au toucher. On considère l'expérience aléatoire qui consiste à lancer d'abord le dé puis : Si le numéro est 1 ou, on tire une boule dans l'urne n 1 Si le numéro est 3, 4 ou 5 on tire une boule dans l'urne n Sinon, on tire une boule dans l'urne n Modéliser cette situation à l'aide d'un arbre de probabilité. On pourra prendre comme événements : «U_1» : obtenir 1 ou ; «U_» : obtenir 3,4 ou 5 ; «U_3» : obtenir 6, puis «B» : tirer une boule blanche ; «N» : tirer une boule noire et «V» : tirer une boule verte.. Écrire un algorithme modélisant le lancer du dé, suivi du tirage d'une boule dans l'une des 3 urnes et le programmer sous Python. 3. Faire tourner le programme n fois (n choisi par l'utilisateur) et relever la fréquence d'apparition d'une boule blanche, d'une boule noire et d'une boule verte. On testera avec n=50, 100 et Compléter le tableau donné en annexe avec n= Calculer p(b), p(n) et p(v) et comparer avec les résultats trouvés à la question précédente. Remarque : Pour simuler le tirage au sort d'un entier aléatoire entre 1 et N, on importe la fonction randint de la bibliothèque random via la commande from random import randint ; randint(a,b) renvoie un entier aléatoire entre a et b. L'instruction break sert à sortir d'une boucle. Indication : On pourra numéroter les boules de chaque urne pour modéliser le tirage dans les urnes ; par exemple dans l'urne 1 on notera : 1,,3 pour les boules blanches ; 4, 5, 6, 7 pour les boules noires et 8, 9, 10 pour les boules vertes. Fréquence Expérience n fb f N Moyenne des fréquences fb est la fréquence d'apparition d'une boule blanche, etc... fv

69 TP EQUATIONS DE DROITE Rappels mathématiques : Une équation de droite s'écrit sous la forme x=c (droite verticale) ou sous la forme y=m x p (équation réduite d'une droite non verticale). Le réel s'appelle m est appelé coefficient directeur et p ordonnée à l'origine. Deux droites parallèles (et non verticales) ont le même coefficient directeur. Réciproquement, si deux droites ont le même coefficient directeur, elles sont parallèles (au sens large). Question 1 : Écrire une fonction estverticale(x_a,y_a,x_b,y_b) qui étant donné deux points A x A ; y A et B x B ; y B détermine si la droite (AB) est verticale ou pas. La valeur renvoyée par cette fonction sera un booléen : True pour vertical et False dans le cas contraire. Question : Dans le cas où la droite (AB) ne soit pas verticale, écrire une fonction equation(x_a,y_a,x_b,y_b) qui : calcule le coefficient directeur m calcule l'ordonnée à l'origine p affiche le résultat sous la forme : "La droite (AB) a pour équation y = ",m,"x+",p On stockera le couple (m,p) dans une liste. Question 3 : Écrire un programme qui détermine si les droites (AB) et (CD) sont parallèles ou pas. Le cas où ces deux droites sont verticales sera considéré.

70 Seconde B le 10/1/009 Devoir de programmation Exercice 1 ( A TTENTION, à faire sans l'ordinateur!) Écrire dans la zone de texte adjacente le résultat affiché à l'écran par l'ordinateur pour chacun des programmes suivants : N 1 i,s=1,0 while i<6: S=S+i i=i+1 N from turtle import * forward(50) left(90) forward(30) goto(0,0) N 3 i=1 while i<5: if i% = = 0: print 3*i else: print i N 4 N=4 a=7 if N<a: print «Eh» else: print «Oh» N 5 a,b=3,4 a=b b=a print a,b

71 Exercice Ecrire un script utilisant la fonction while permettant de calculer S = Exercice 3 A l'aide du mode turtle, écrire un script permettant d'obtenir la figure ci-dessous. Cette figure devra être construite en une seule fois. On construira d'abord les côtés de l'hexagone (de longueur 50) puis les trois diagonales. Indication : la fonction while sera utilisée fois.

72 CHAPITRE 4 : PROJETS EN SECONDE GT

73 Objectifs et mise en œuvre La liste de projets qui suit a été effectivement proposée en classe de seconde générale pendant l'année Des groupes de trois élèves ont été constitués à cet effet et la durée de recherche a été de l'ordre d'un mois et demi environ. Ils disposaient de Python chez eux et l'accès à une salle informatique en semaine pour les internes (la grande majorité). Les sujets ont été distribués mi mars 010 et résolus sous la forme d'un rapport écrit suivi d'une soutenance orale et sur machine en mai de la même année. L'expérience fut enrichissante, tant pour les élèves que pour le professeur, de par les interrogations qui n'ont pas manqué de se poser, la relative liberté de création jusqu'à l'apprentissage du travail collectif. Une heure par semaine était consacrée en classe à la recherche des activités proposées. Certains projets étaient ardus et ont nécessité beaucoup de travail de fond, ce qui m'a permis également d'éclaircir certains points. Bien entendu, les élèves qui en ont hérité ont reçu une aide plus poussée.

74 PROJET n 1 Le but de ce projet est de construire une suite d'étoiles à 5 branches de tailles variées. Le choix de la taille de chaque branche et de l'espacement entre chaque étoile est de votre choix. Vous commencerez d'abord par créer une fonction étoile avec pour variable la taille, que vous utiliserez dans votre script principal. Indication : pour construire l'étoile à 5 branches, imaginez-là inscrite dans un ABC. pentagone régulier. Vous pourrez calculer l'angle

75 PROJET n Le but de ce projet est de trouver un nombre mystère choisi par l'ordinateur en un nombre limité d'essais. Comme pour l'utilisation du mode Turtle pour effectuer des dessins, il faudra demander à l'ordinateur d'appeler une bibliothèque gérant tout ce qui concerne la simulation du hasard. On écrira donc : from random import * On aura également besoin de la fonction prédéfinie randint(a,b). Cette fonction permet à l'ordinateur de choisir un entier aléatoire (donc non connu de vous a priori) entre les entiers a et b. Vous écrirez un programme qui demande à l'ordinateur de choisir un entier aléatoire N entre 1 et 100 et proposant à l'utilisateur de le deviner. L'utilisateur aura alors cinq essais maximum pour réussir. Si au cours de ces essais le nombre saisi par l'utilisateur est plus petit que N, il apparaîtra à l'écran : «plus grand» ; s'il est plus grand, il apparaîtra à l'écran : «plus petit». Si l'utilisateur le trouve avant les 5 essais, il apparaîtra : «gagné en (nombre d'essais utilisés)». Si l'utilisateur ne l'a pas trouvé avant les 5 essais réglementaires, il apparaîtra : «perdu». On affichera alors le nombre mystère qu'il fallait trouver. PS : Ce n'est pas nécessaire pour ce programme, mais cela peut être utilisé : la fonction prédéfinie break permet de sortir d'une boucle.

76 PROJET n 3 Le but de ce projet est de construire une «spirale» de 8 triangles équilatéraux de tailles toutes différentes choisies par vous. L'espacement entre les bases des triangles sera de 0 au départ et ira en s'accroissant de 50 en 50 ; de même la taille des côtés des triangles ira en augmentant de 10 en 10. Et important, tous les côtés des triangles seront respectivement parallèles deux à deux. Vous créerez d'abord une fonction triangle(taille). Pour le script principal, vous utiliserez une boucle while permettant de placer les triangles aux bons emplacements. Le dessin obtenu devra ressembler à ceci : j'ai pris 15 pour côté du premier triangle et je suis parti du point de coordonnées (80,-60). Indication : on pourra créer les variables abscisse et ordonnee indiquant l'emplacement exact du point de départ des triangles à construire..on utilisera aussi la commande goto(... ;...) pour se déplacer à l'endroit voulu.

77 PROJET n 4 Le but de ce projet est de résoudre le problème suivant : On demande à l'utilisateur de choisir un entier compris entre 1 et L'ordinateur le convertit ensuite en nombres romains. Rappel : En nombres romains, on a : I : un II : deux III : trois IV : quatre VII : sept VIII : huit IX : neuf L : cinquante C : cent D : 500 M : mille V : cinq X : dix VI:six Vous chercherez sur Internet le principe d'écriture d'un nombre en nombre romain. Testez-le ensuite sur quelques exemples : Convertir en nombres romains :

78 PROJET n 5 Le but de ce projet est de résoudre le problème suivant : Un programme principal saisit une chaîne d ADN valide et une séquence d ADN valide («valide» signifie qu elles ne sont pas vides et sont formées exclusivement d une combinaison arbitraire de "a", "t", "g" ou "c") Écrire une fonction valide qui renvoie vrai si la saisie est valide, faux sinon. Écrire une fonction saisie qui effectue une saisie valide et renvoie la valeur saisie sous forme d une chaîne de caractères. Écrire une fonction proportion qui reçoit deux arguments, la chaîne et la séquence et qui retourne la proportion de séquence dans la chaîne (c està-dire son nombre d occurrences). Le programme principal appelle la fonction saisie pour la chaîne et pour la séquence et affiche le résultat. Exemple d affichage : Il y a % de "ca" dans votre chaîne. PS : vous rechercherez dans l'aide Python la commande count pour les chaines de caractères. La syntaxe est chaine.count(sous_chaine).

79 PROJET n 6 Le but de ce projet est de résoudre le problème suivant : Le jeu de Nim Écrire un programme qui joue au jeu de Nim contre un être humain. Le principe est le suivant : Au départ, il y a un nombre N d'allumettes. Tour à tour, chaque joueur (humain comme ordinateur) a le droit de prendre entre 1 et 3 allumettes. Celui qui prend la dernière allumette a perdu. Étape 1 : On suppose d'abord qu'il y a 15 allumettes initialement et que l'utilisateur joue en premier. On suppose en plus que le joueur ne triche pas en prenant bien entre 1 et 3 allumettes. Étape : Modifiez le programme précédent de sorte que l'on puisse choisir le nombre initial d'allumettes et qui commence (le joueur humain ou l'ordinateur). Étape 3 : Finalisez le programme de l'étape en incluant un test qui empêche le joueur humain de tricher. PS : s'il reste moins de 3 allumettes et que c'est à l'ordinateur de jouer, il adopte une stratégie gagnante. Vous pouvez même programmer, dans le cas où l'ordinateur débute la partie, une stratégie où il gagne à coup sûr!

80 PROJET n 7 Le but de ce projet est de construire le motif suivant : Vous fabriquerez d'abord une fonction carre(taille,couleur) et une fonction triangle(taille,couleur). Dans l'exemple choisi le carré a pour côté 50 et le triangle 35. Je me suis placé au départ au point de coordonnées (-100,-100). Sur la rangée du bas comme sur la rangée du haut, l'écart entre le premier carré et le triangle au milieu est de 0, puis de 35 entre le triangle du milieu et le carré de droite. Verticalement, sur la première colonne comme sur la troisième, je passe du premier carré au triangle du milieu avec un écart de 0, puis du triangle du milieu au carré du haut avec un écart de 40.

81 PROJET n 8 Le but de ce projet est de dessiner le flocon de Von Koch à une étape arbitraire choisie par l'utilisateur et pour un triangle équilatéral initial de côté choisi par l'utilisateur. Pour rappel, on donne les trois premières figures, correspondant aux trois premières étapes : Flocon à l'étape 0 Flocon à l'étape 1 On pourra utiliser une programmation par récursivité. Flocon à l'étape

Initiation à la programmation en Python

Initiation à la programmation en Python I-Conventions Initiation à la programmation en Python Nom : Prénom : Une commande Python sera écrite en caractère gras. Exemples : print 'Bonjour' max=input("nombre maximum autorisé :") Le résultat de

Plus en détail

Présentation du langage et premières fonctions

Présentation du langage et premières fonctions 1 Présentation de l interface logicielle Si les langages de haut niveau sont nombreux, nous allons travaillé cette année avec le langage Python, un langage de programmation très en vue sur internet en

Plus en détail

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

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux. UEO11 COURS/TD 1 Contenu du semestre Cours et TDs sont intégrés L objectif de ce cours équivalent a 6h de cours, 10h de TD et 8h de TP est le suivant : - initiation à l algorithmique - notions de bases

Plus en détail

Série TD 3. Exercice 4.1. Exercice 4.2 Cet algorithme est destiné à prédire l'avenir, et il doit être infaillible! Exercice 4.3. Exercice 4.

Série TD 3. Exercice 4.1. Exercice 4.2 Cet algorithme est destiné à prédire l'avenir, et il doit être infaillible! Exercice 4.3. Exercice 4. Série TD 3 Exercice 4.1 Formulez un algorithme équivalent à l algorithme suivant : Si Tutu > Toto + 4 OU Tata = OK Alors Tutu Tutu + 1 Tutu Tutu 1 ; Exercice 4.2 Cet algorithme est destiné à prédire l'avenir,

Plus en détail

Date : 18.11.2013 Tangram en carré page

Date : 18.11.2013 Tangram en carré page Date : 18.11.2013 Tangram en carré page Titre : Tangram en carré Numéro de la dernière page : 14 Degrés : 1 e 4 e du Collège Durée : 90 minutes Résumé : Le jeu de Tangram (appelé en chinois les sept planches

Plus en détail

TP 1. Prise en main du langage Python

TP 1. Prise en main du langage Python TP. Prise en main du langage Python Cette année nous travaillerons avec le langage Python version 3. ; nous utiliserons l environnement de développement IDLE. Étape 0. Dans votre espace personnel, créer

Plus en détail

Logiciel SCRATCH FICHE 02

Logiciel SCRATCH FICHE 02 1. Reprise de la fiche 1: 1.1. Programme Figure : Logiciel SCRATCH FICHE 02 SANS ORDINATEUR : Dessiner à droite le dessin que donnera l'exécution de ce programme : Unité : 50 pas : Remarque : vous devez

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

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

Traitement de texte : Quelques rappels de quelques notions de base

Traitement de texte : Quelques rappels de quelques notions de base Traitement de texte : Quelques rappels de quelques notions de base 1 Quelques rappels sur le fonctionnement du clavier Voici quelques rappels, ou quelques appels (selon un de mes profs, quelque chose qui

Plus en détail

Le chiffre est le signe, le nombre est la valeur.

Le chiffre est le signe, le nombre est la valeur. Extrait de cours de maths de 6e Chapitre 1 : Les nombres et les opérations I) Chiffre et nombre 1.1 La numération décimale En mathématique, un chiffre est un signe utilisé pour l'écriture des nombres.

Plus en détail

Algorithmique avec Algobox

Algorithmique avec Algobox Algorithmique avec Algobox 1. Algorithme: Un algorithme est une suite d instructions qui, une fois exécutée correctement, conduit à un résultat donné Un algorithme doit contenir uniquement des instructions

Plus en détail

LE PROBLEME DU PLUS COURT CHEMIN

LE PROBLEME DU PLUS COURT CHEMIN LE PROBLEME DU PLUS COURT CHEMIN Dans cette leçon nous définissons le modèle de plus court chemin, présentons des exemples d'application et proposons un algorithme de résolution dans le cas où les longueurs

Plus en détail

Algorithme. Table des matières

Algorithme. Table des matières 1 Algorithme Table des matières 1 Codage 2 1.1 Système binaire.............................. 2 1.2 La numérotation de position en base décimale............ 2 1.3 La numérotation de position en base binaire..............

Plus en détail

Chapitre 2 Devine mon nombre!

Chapitre 2 Devine mon nombre! Python 3 : objectif jeux Chapitre 2 Chapitre 2 Devine mon nombre! 2.1. Thèmes abordés dans ce chapitre commentaires modules externes, import variables boucle while condition : if... elif... else la fonction

Plus en détail

Création d'un questionnaire (sondage)

Création d'un questionnaire (sondage) Création d'un questionnaire (sondage) Le but de ce petit tuto est d'avoir les séquences pas à pas pour la création d'un questionnaire de façon à ne pas devoir rechercher la manière de procéder si l'outil

Plus en détail

Algorithmique avec Algobox

Algorithmique avec Algobox Algorithmique avec Algobox Fiche 2 Cette fiche est la suite directe de la première. 1. Instructions conditionnelles : 1.1. Reprise de la fiche 1 : Lecture d'un algorithme : ORDINATEUR INTERDIT : Après

Plus en détail

V- Manipulations de nombres en binaire

V- Manipulations de nombres en binaire 1 V- Manipulations de nombres en binaire L ordinateur est constitué de milliards de transistors qui travaillent comme des interrupteurs électriques, soit ouverts soit fermés. Soit la ligne est activée,

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

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

L informatique en BCPST

L informatique en BCPST L informatique en BCPST Présentation générale Sylvain Pelletier Septembre 2014 Sylvain Pelletier L informatique en BCPST Septembre 2014 1 / 20 Informatique, algorithmique, programmation Utiliser la rapidité

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

Cours d Informatique Cours d Informatique 1ère année SM/SMI 2007/2008, Info 2 Département de Mathématiques et d Informatique, Université Mohammed V elbenani@hotmail.com sayah@fsr.ac.ma 2007/2008 Info2, 1ère année SM/SMI 1

Plus en détail

Introduction à l informatique en BCPST

Introduction à l informatique en BCPST Introduction à l informatique en BCPST Alexandre Benoit BCPST L informatique en BCPST «L enseignement de l informatique en classes préparatoires de la filière BCPST a pour objectif d introduire puis de

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

Cours 1 : Qu est-ce que la programmation?

Cours 1 : Qu est-ce que la programmation? 1/65 Introduction à la programmation Cours 1 : Qu est-ce que la programmation? Yann Régis-Gianas yrg@pps.univ-paris-diderot.fr Université Paris Diderot Paris 7 2/65 1. Sortez un appareil qui peut se rendre

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

LES NOMBRES DECIMAUX. I. Les programmes

LES NOMBRES DECIMAUX. I. Les programmes LES NOMBRES DECIMAUX I. Les programmes Au cycle des approfondissements (Cours Moyen), une toute première approche des fractions est entreprise, dans le but d aider à la compréhension des nombres décimaux.

Plus en détail

Cours d algorithmique pour la classe de 2nde

Cours d algorithmique pour la classe de 2nde Cours d algorithmique pour la classe de 2nde F.Gaudon 10 août 2009 Table des matières 1 Avant la programmation 2 1.1 Qu est ce qu un algorithme?................................. 2 1.2 Qu est ce qu un langage

Plus en détail

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits Architecture des ordinateurs TD1 - Portes logiques et premiers circuits 1 Rappel : un peu de logique Exercice 1.1 Remplir la table de vérité suivante : a b a + b ab a + b ab a b 0 0 0 1 1 0 1 1 Exercice

Plus en détail

1. Introduction... 2. 2. Création d'une macro autonome... 2. 3. Exécuter la macro pas à pas... 5. 4. Modifier une macro... 5

1. Introduction... 2. 2. Création d'une macro autonome... 2. 3. Exécuter la macro pas à pas... 5. 4. Modifier une macro... 5 1. Introduction... 2 2. Création d'une macro autonome... 2 3. Exécuter la macro pas à pas... 5 4. Modifier une macro... 5 5. Création d'une macro associée à un formulaire... 6 6. Exécuter des actions en

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

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

CRÉER UNE BASE DE DONNÉES AVEC OPEN OFFICE BASE

CRÉER UNE BASE DE DONNÉES AVEC OPEN OFFICE BASE CRÉER UNE BASE DE DONNÉES AVEC OPEN OFFICE BASE 2 ème partie : REQUÊTES Sommaire 1. Les REQUÊTES...2 1.1 Créer une requête simple...2 1.1.1 Requête de création de listage ouvrages...2 1.1.2 Procédure de

Plus en détail

Représentation d un entier en base b

Représentation d un entier en base b Représentation d un entier en base b 13 octobre 2012 1 Prérequis Les bases de la programmation en langage sont supposées avoir été travaillées L écriture en base b d un entier est ainsi défini à partir

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

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

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

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

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions Cours d introduction à l informatique Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions Qu est-ce qu un Une recette de cuisine algorithme? Protocole expérimental

Plus en détail

DESSIN ASSISTÉ PAR ORDINATEUR D.A.O. EN LYCÉE PROFESSIONNEL

DESSIN ASSISTÉ PAR ORDINATEUR D.A.O. EN LYCÉE PROFESSIONNEL 119 DESSIN ASSISTÉ PAR ORDINATEUR EN LYCÉE PROFESSIONNEL En lycée professionnel l'enseignement du D.A.O. n'est pas explicitement intégré dans la formation en dessin technique. Il me fallait introduire

Plus en détail

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

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application Université de Provence Licence Math-Info Première Année V. Phan Luong Algorithmique et Programmation en Python Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application 1 Ordinateur Un

Plus en détail

RapidMiner. Data Mining. 1 Introduction. 2 Prise en main. Master Maths Finances 2010/2011. 1.1 Présentation. 1.2 Ressources

RapidMiner. Data Mining. 1 Introduction. 2 Prise en main. Master Maths Finances 2010/2011. 1.1 Présentation. 1.2 Ressources Master Maths Finances 2010/2011 Data Mining janvier 2011 RapidMiner 1 Introduction 1.1 Présentation RapidMiner est un logiciel open source et gratuit dédié au data mining. Il contient de nombreux outils

Plus en détail

2. RAPPEL DES TECHNIQUES DE CALCUL DANS R

2. RAPPEL DES TECHNIQUES DE CALCUL DANS R 2. RAPPEL DES TECHNIQUES DE CALCUL DANS R Dans la mesure où les résultats de ce chapitre devraient normalement être bien connus, il n'est rappelé que les formules les plus intéressantes; les justications

Plus en détail

ALGORITHMIQUE ET PROGRAMMATION En C

ALGORITHMIQUE ET PROGRAMMATION En C Objectifs ALGORITHMIQUE ET PROGRAMMATION Une façon de raisonner Automatiser la résolution de problèmes Maîtriser les concepts de l algorithmique Pas faire des spécialistes d un langage Pierre TELLIER 2

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

Indications pour une progression au CM1 et au CM2

Indications pour une progression au CM1 et au CM2 Indications pour une progression au CM1 et au CM2 Objectif 1 Construire et utiliser de nouveaux nombres, plus précis que les entiers naturels pour mesurer les grandeurs continues. Introduction : Découvrir

Plus en détail

Rappels sur les suites - Algorithme

Rappels sur les suites - Algorithme DERNIÈRE IMPRESSION LE 14 septembre 2015 à 12:36 Rappels sur les suites - Algorithme Table des matières 1 Suite : généralités 2 1.1 Déition................................. 2 1.2 Exemples de suites............................

Plus en détail

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

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java Langages objets Introduction M2 Pro CCI, Informatique Emmanuel Waller, LRI, Orsay présentation du module logistique 12 blocs de 4h + 1 bloc 2h = 50h 1h15 cours, 45mn exercices table, 2h TD machine page

Plus en détail

SOCLE COMMUN - La Compétence 3 Les principaux éléments de mathématiques et la culture scientifique et technologique

SOCLE COMMUN - La Compétence 3 Les principaux éléments de mathématiques et la culture scientifique et technologique SOCLE COMMUN - La Compétence 3 Les principaux éléments de mathématiques et la culture scientifique et technologique DOMAINE P3.C3.D1. Pratiquer une démarche scientifique et technologique, résoudre des

Plus en détail

Raisonnement par récurrence Suites numériques

Raisonnement par récurrence Suites numériques Chapitre 1 Raisonnement par récurrence Suites numériques Terminale S Ce que dit le programme : CONTENUS CAPACITÉS ATTENDUES COMMENTAIRES Raisonnement par récurrence. Limite finie ou infinie d une suite.

Plus en détail

Chapitre 1 I:\ Soyez courageux!

Chapitre 1 I:\ Soyez courageux! Chapitre 1 I:\ Soyez courageux! Pour ne rien vous cacher, le langage d'assembleur (souvent désigné sous le terme "Assembleur", bien que ce soit un abus de langage, puisque "Assembleur" désigne le logiciel

Plus en détail

Arithmétique binaire. Chapitre. 5.1 Notions. 5.1.1 Bit. 5.1.2 Mot

Arithmétique binaire. Chapitre. 5.1 Notions. 5.1.1 Bit. 5.1.2 Mot Chapitre 5 Arithmétique binaire L es codes sont manipulés au quotidien sans qu on s en rende compte, et leur compréhension est quasi instinctive. Le seul fait de lire fait appel au codage alphabétique,

Plus en détail

Vers l'ordinateur quantique

Vers l'ordinateur quantique Cours A&G Vers l'ordinateur quantique Données innies On a vu dans les chapîtres précédents qu'un automate permet de représenter de manière nie (et même compacte) une innité de données. En eet, un automate

Plus en détail

Logiciel EV3 LEGO MINDSTORMS Education

Logiciel EV3 LEGO MINDSTORMS Education Robot éducateur : LEGO Education a le plaisir de vous présenter Robot éducateur, une sélection d'activités pédagogiques vous permettant de prendre en main votre EV3 LEGO MINDSTORMS Education de façon structurée

Plus en détail

VOS PREMIERS PAS AVEC TRACENPOCHE

VOS PREMIERS PAS AVEC TRACENPOCHE Vos premiers pas avec TracenPoche page 1/16 VOS PREMIERS PAS AVEC TRACENPOCHE Un coup d'oeil sur l'interface de TracenPoche : La zone de travail comporte un script, une figure, un énoncé, une zone d analyse,

Plus en détail

Algorithmique et programmation : les bases (VBA) Corrigé

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

Plus en détail

modélisation solide et dessin technique

modélisation solide et dessin technique CHAPITRE 1 modélisation solide et dessin technique Les sciences graphiques regroupent un ensemble de techniques graphiques utilisées quotidiennement par les ingénieurs pour exprimer des idées, concevoir

Plus en détail

Premiers pas sur e-lyco

Premiers pas sur e-lyco Premiers pas sur e-lyco A destination des parents, ce document présente les premiers éléments pour accéder aux services de l'ent e-lyco d'un lycée. Que signifient ENT et e-lyco? ENT = Espace ou Environnement

Plus en détail

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

Chapitre 2. Eléments pour comprendre un énoncé Chapitre 2 Eléments pour comprendre un énoncé Ce chapitre est consacré à la compréhension d un énoncé. Pour démontrer un énoncé donné, il faut se reporter au chapitre suivant. Les tables de vérité données

Plus en détail

6. Les différents types de démonstrations

6. Les différents types de démonstrations LES DIFFÉRENTS TYPES DE DÉMONSTRATIONS 33 6. Les différents types de démonstrations 6.1. Un peu de logique En mathématiques, une démonstration est un raisonnement qui permet, à partir de certains axiomes,

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

Définition : On obtient les nombres entiers en ajoutant ou retranchant des unités à zéro.

Définition : On obtient les nombres entiers en ajoutant ou retranchant des unités à zéro. Chapitre : Les nombres rationnels Programme officiel BO du 8/08/08 Connaissances : Diviseurs communs à deux entiers, PGCD. Fractions irréductibles. Opérations sur les nombres relatifs en écriture fractionnaire.

Plus en détail

Excel 2007 Niveau 3 Page 1 www.admexcel.com

Excel 2007 Niveau 3 Page 1 www.admexcel.com Excel 2007 Niveau 3 Page 1 TABLE DES MATIERES UTILISATION DE LISTES DE DONNEES... 4 REMARQUES PREALABLES SUR LES LISTES DE DONNEES... 4 METTRE EN FORME LE TABLEAU... 6 METTRE LA LISTE A JOUR... 7 a/ Directement

Plus en détail

5 semaines pour apprendre à bien jouer un morceau de piano

5 semaines pour apprendre à bien jouer un morceau de piano 5 semaines pour apprendre à bien jouer un morceau de piano Ce guide peut être librement imprimé et redistribué gratuitement. Vous pouvez pouvez l'offrir ou le faire suivre à vos amis musiciens. En revanche,

Plus en détail

INSERER DES OBJETS - LE RUBAN INSERTION... 3 TABLEAUX

INSERER DES OBJETS - LE RUBAN INSERTION... 3 TABLEAUX TABLE DES MATIERES Livret Utilisateur Excel 2007 Niveau 2 INSERER DES OBJETS - LE RUBAN INSERTION... 3 TABLEAUX... 4 Les tableaux croisés dynamiques... 4 Création d un tableau croisé... 5 Comparer des

Plus en détail

Solutions du chapitre 4

Solutions du chapitre 4 Solutions du chapitre 4 Structures de contrôle: première partie 4.9 Identifiez et corrigez les erreurs (il peut y en avoir plus d une par segment de code) de chacune des proposition suivantes: a) if (

Plus en détail

L'instruction if permet d'exécuter des instructions différentes selon qu'une condition est vraie ou fausse. Sa forme de base est la suivante:

L'instruction if permet d'exécuter des instructions différentes selon qu'une condition est vraie ou fausse. Sa forme de base est la suivante: 420-183 Programmation 1 8. Les structures conditionnelles Dans l'écriture de tout programme informatique, une des premières nécessités que nous rencontrons est de pouvoir faire des choix. Dans une application

Plus en détail

Utiliser CHAMILO pour le travail collaboratif

Utiliser CHAMILO pour le travail collaboratif 1/5 TP utiliser CHAMILO pour le travail collaboratif Chamilo 1.8 Utiliser CHAMILO pour le travail collaboratif 1. Qu'est ce que CHAMILO? Chamilo est une plate-forme d apprentissage à distance offrant une

Plus en détail

Dans la série LES TUTORIELS LIBRES présentés par le site FRAMASOFT. Compression - Décompression avec 7-Zip. Georges Silva

Dans la série LES TUTORIELS LIBRES présentés par le site FRAMASOFT. Compression - Décompression avec 7-Zip. Georges Silva Dans la série LES TUTORIELS LIBRES présentés par le site FRAMASOFT Compression - Décompression avec 7-Zip Georges Silva Logiciel : 7-Zip site : http://www.7-zip.org Niveau : Débutant Auteur : Georges Silva

Plus en détail

LES CARTES À POINTS : POUR UNE MEILLEURE PERCEPTION

LES CARTES À POINTS : POUR UNE MEILLEURE PERCEPTION LES CARTES À POINTS : POUR UNE MEILLEURE PERCEPTION DES NOMBRES par Jean-Luc BREGEON professeur formateur à l IUFM d Auvergne LE PROBLÈME DE LA REPRÉSENTATION DES NOMBRES On ne conçoit pas un premier enseignement

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

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

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

ET 24 : Modèle de comportement d un système Boucles de programmation avec Labview. ET 24 : Modèle de comportement d un système Boucles de programmation avec Labview. Sciences et Technologies de l Industrie et du Développement Durable Formation des enseignants parcours : ET24 Modèle de

Plus en détail

1 TD 2 : Construction d'une chier Acrobat et envoi par email

1 TD 2 : Construction d'une chier Acrobat et envoi par email 1 TD 2 : Construction d'une chier Acrobat et envoi par email (correction page??) Un professeur de maths a instauré une coutume lors de la dernière séance de la semaine. Le vendredi est consacré à la correction

Plus en détail

MAT2027 Activités sur Geogebra

MAT2027 Activités sur Geogebra MAT2027 Activités sur Geogebra NOTE: Il n est pas interdit d utiliser du papier et un crayon!! En particulier, quand vous demandez des informations sur les différentes mesures dans une construction, il

Plus en détail

Interface PC Vivago Ultra. Pro. Guide d'utilisation

Interface PC Vivago Ultra. Pro. Guide d'utilisation Interface PC Vivago Ultra Pro Guide d'utilisation Version 1.03 Configuration de l'interface PC Vivago Ultra Configuration requise Avant d'installer Vivago Ultra sur votre ordinateur assurez-vous que celui-ci

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

Dessin assisté par ordinateur en lycée professionnel

Dessin assisté par ordinateur en lycée professionnel Dessin assisté par ordinateur en lycée professionnel Bernard Dauga To cite this version: Bernard Dauga. Dessin assisté par ordinateur en lycée professionnel. Bulletin de l EPI (Enseignement Public et Informatique),

Plus en détail

MEGA ITSM Accelerator. Guide de Démarrage

MEGA ITSM Accelerator. Guide de Démarrage MEGA ITSM Accelerator Guide de Démarrage MEGA 2009 SP4 1ère édition (juin 2010) Les informations contenues dans ce document pourront faire l objet de modifications sans préavis et ne sauraient en aucune

Plus en détail

CREATION D UNE EVALUATION AVEC JADE par Patrick RUER (www.mathenvideo.comuv.com)

CREATION D UNE EVALUATION AVEC JADE par Patrick RUER (www.mathenvideo.comuv.com) TABLE DES MATIERES I) Le logiciel JADE 2 II) Etablissements 3 1) Configuation de l établissement 3 2) Importation des classes avec SCONET 4 3) Les groupes d élèves 6 4) Les variables supplémentaires 6

Plus en détail

Représentation des Nombres

Représentation des Nombres Chapitre 5 Représentation des Nombres 5. Representation des entiers 5.. Principe des représentations en base b Base L entier écrit 344 correspond a 3 mille + 4 cent + dix + 4. Plus généralement a n a n...

Plus en détail

SHERLOCK 7. Version 1.2.0 du 01/09/09 JAVASCRIPT 1.5

SHERLOCK 7. Version 1.2.0 du 01/09/09 JAVASCRIPT 1.5 SHERLOCK 7 Version 1.2.0 du 01/09/09 JAVASCRIPT 1.5 Cette note montre comment intégrer un script Java dans une investigation Sherlock et les différents aspects de Java script. S T E M M E R I M A G I N

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

TABLEAU CROISE DYNAMIQUE

TABLEAU CROISE DYNAMIQUE EXCEL NIVEAU III Mireille DUCELLIER MARS 2003 BASE DE DONNEES RAPPEL Une base de données est une plage de cellules contiguës située sur une la feuille 1. Elle commence en A1. On parle alors de champs,

Plus en détail

TP, première séquence d exercices.

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

Plus en détail

LES DECIMALES DE π BERNARD EGGER

LES DECIMALES DE π BERNARD EGGER LES DECIMALES DE π BERNARD EGGER La génération de suites de nombres pseudo aléatoires est un enjeu essentiel pour la simulation. Si comme le dit B Ycard dans le cours écrit pour le logiciel SEL, «Paradoxalement,

Plus en détail

Complément d information concernant la fiche de concordance

Complément d information concernant la fiche de concordance Sommaire SAMEDI 0 DÉCEMBRE 20 Vous trouverez dans ce dossier les documents correspondants à ce que nous allons travailler aujourd hui : La fiche de concordance pour le DAEU ; Page 2 Un rappel de cours

Plus en détail

Dans la série. présentés par le site FRAMASOFT

Dans la série. présentés par le site FRAMASOFT Dans la série Les tutoriels libres présentés par le site FRAMASOFT CRÉER DES EXERCICES AVEC JCLIC-AUTHOR Logiciel: JClic-author Plate-forme(s): Linux, Windows, Mac OS X Version: 0.1.1.9 Licence: GNU General

Plus en détail

DOCM 2013 http://docm.math.ca/ Solutions officielles. 1 2 10 + 1 2 9 + 1 2 8 = n 2 10.

DOCM 2013 http://docm.math.ca/ Solutions officielles. 1 2 10 + 1 2 9 + 1 2 8 = n 2 10. A1 Trouvez l entier positif n qui satisfait l équation suivante: Solution 1 2 10 + 1 2 9 + 1 2 8 = n 2 10. En additionnant les termes du côté gauche de l équation en les mettant sur le même dénominateur

Plus en détail

Soit la fonction affine qui, pour représentant le nombre de mois écoulés, renvoie la somme économisée.

Soit la fonction affine qui, pour représentant le nombre de mois écoulés, renvoie la somme économisée. ANALYSE 5 points Exercice 1 : Léonie souhaite acheter un lecteur MP3. Le prix affiché (49 ) dépasse largement la somme dont elle dispose. Elle décide donc d économiser régulièrement. Elle a relevé qu elle

Plus en détail

1 CRÉER UN TABLEAU. IADE Outils et Méthodes de gestion de l information

1 CRÉER UN TABLEAU. IADE Outils et Méthodes de gestion de l information TP Numéro 2 CRÉER ET MANIPULER DES TABLEAUX (Mise en forme, insertion, suppression, tri...) 1 CRÉER UN TABLEAU 1.1 Présentation Pour organiser et présenter des données sous forme d un tableau, Word propose

Plus en détail

François Émond psychologue 2003 Centre François-Michelle. Liste des 24 catégories de connaissances et compétences à développer

François Émond psychologue 2003 Centre François-Michelle. Liste des 24 catégories de connaissances et compétences à développer Programme par Cœur François Émond psychologue 2003 Centre François-Michelle Trousse de consolidation des connaissances et compétences scolaires Attention, mémoire, raisonnement, stratégies, habiletés linguistiques

Plus en détail

1. Introduction...2. 2. Création d'une requête...2

1. Introduction...2. 2. Création d'une requête...2 1. Introduction...2 2. Création d'une requête...2 3. Définition des critères de sélection...5 3.1 Opérateurs...5 3.2 Les Fonctions...6 3.3 Plusieurs critères portant sur des champs différents...7 3.4 Requête

Plus en détail

www.systhag-online.cm PREINSCRIPTION EN LIGNE

www.systhag-online.cm PREINSCRIPTION EN LIGNE UNIVERSITE DE DOUALA THE UNIVERSITY OF DOUALA www.systhag-online.cm PREINSCRIPTION EN LIGNE Guide de l'utilisateur Part. 1 (Mise à jour: 26 septembre 2012) 1 TABLE DES MATIERES I- AVANT DE COMMENCER 3

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

BANQUES DE DONNÉES PÉDAGOGIQUES

BANQUES DE DONNÉES PÉDAGOGIQUES 223 Daniel BURET, Jean-Claude BLANCHARD. HISTORIQUE L'EPI a entrepris en 1989 de créer des bases d'énoncés mathématiques destinées aux enseignants pour la production de documents et accompagnées d'un outil

Plus en détail

Organiser des séquences pédagogiques différenciées. Exemples produits en stage Besançon, Juillet 2002.

Organiser des séquences pédagogiques différenciées. Exemples produits en stage Besançon, Juillet 2002. Cycle 3 3 ème année PRODUCTION D'ECRIT Compétence : Ecrire un compte rendu Faire le compte rendu d'une visite (par exemple pour l'intégrer au journal de l'école ) - Production individuelle Précédée d'un

Plus en détail