Algorithmique et programmation Exercices de TD avec solutions

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

Download "Algorithmique et programmation Exercices de TD avec solutions"

Transcription

1 Département d Informatique DUT Informatique S1 Année 2014/2015 Algorithmique et programmation Algorithmique et programmation Exercices de TD avec solutions Table des matières 1 Séquences d actions Écluse Radiateurs Gazon Heures, minutes, secondes Programme Gazon Conditionnelles Dérouler un algorithme Pizzas Coordonnées Mois de l année Itérations Lignes d étoiles Carrés et cubes Triangle de nombres Tables de multiplications Puissances Suite alternée Sommes de fractions Hauteurs de pluie Puissance de Chute libre Fonctions Calcul d âge Multiplication récursive Calculs de puissances Tours de Hanoï Flocon de Von Koch Tableaux Notes Températures Vote Mélange Nombres en toutes lettres Recherche dichotomique Reversi Tableaux 2D Transposée de matrice Matrice symétrique Somme et produit de matrices Jeu de la vie Version du 18 décembre

2 1 Séquences d actions 1.1 Écluse Écrire l idée de l algorithme permettant de modéliser le franchissement d une écluse par un bateau. Les portes d une écluse sont munies de vannes que l on peut ouvrir ou fermer et qui permettent de laisser passer l eau afin de mettre l écluse à niveau (figure 1). Les portes sont également équipées de feux pouvant être vert ou rouge, pour autoriser ou non le passage du bateau. feux Amont portes vannes Aval Figure 1 Schéma d un écluse On considérera dans un premier temps que le bateau descend la rivière et que lorsqu il se présente devant l écluse, celle-ci est en niveau bas. On suppose qu au départ, les deux portes sont fermées, les vannes sont fermées, et les deux feux sont au rouge. Une idée d algorithme est la suivante : ouvrir la vanne amont (l écluse se remplit) ouvrir la porte amont passer le feu amont au vert (le bateau entre dans l écluse) passer le feu amont au rouge fermer la porte amont fermer la vanne amont ouvrir la vanne aval (l écluse se vide, le bateau descend) ouvrir la porte aval passer le feu aval au vert (le bateau sort de l écluse) passer le feu aval au rouge fermer la porte aval fermer la vanne aval 1.2 Radiateurs 1. Concevoir un algorithme pour calculer le nombre de radiateurs dont on a besoin pour chauffer une pièce. On sait qu un radiateur est capable de chauffer 8 m 3. L utilisateur donnera la longueur, la largeur et la hauteur de la pièce en mètres. Aucune donnée. 2

3 Nombre de radiateurs nécessaires pour chauffer une pièce. Demander les dimensions de la pièce à l utilisateur, calculer le volume de la pièce et le diviser par la capacité de chauffage d un radiateur. En prendre ensuite la partie entière supérieure pour obtenir le nombre de radiateurs recherché. Lexique des constantes capacité (réel) = 8 capacité de chauffage d un radiateur (m 3 ) nombre (entier) nombre de radiateurs RÉSULTAT longueur (réel) longueur de la pièce INTERMÉDIAIRE largeur (réel) largeur de la pièce INTERMÉDIAIRE hauteur (réel) hauteur de la pièce INTERMÉDIAIRE volume (réel) volume de la pièce INTERMÉDIAIRE longueur lire largeur lire hauteur lire volume longueur largeur hauteur nombre volume/capacité 2. Détailler le déroulement de l algorithme pour une pièce de dimensions 6 4 2,5 m. Au cours du déroulement de l algorithme, les variables prennent les valeurs suivantes : longueur = 6, largeur=4, hauteur = 2,5, volume = 60, nombre = Traduire l algorithme dans un programme Java complet. import java. util. ; class Radiateurs { static final Scanner input = new Scanner(System.in); public static void main(string [] args) { final double capacite = 8; int nombre; double longueur; double largeur ; double hauteur; double volume; longueur = input.nextdouble(); largeur = input.nextdouble(); hauteur = input.nextdouble(); volume = longueur largeur hauteur; nombre = (int )Math.ceil(volume / capacite ); } System.out. println ("Nombre = " + nombre); } 1.3 Gazon On veut calculer la surface du gazon et le temps de tonte du gazon pour un terrain rectangulaire sur lequel sont bâtis une maison rectangulaire et un appentis triangulaire, et qui comporte une piscine circulaire. On sait que la tonte du gazon prend x secondes au m 2 (x est donné), et on donne les dimensions indiquées sur la figure 2. 3

4 longmais largter largmais longapp raypisc longter Figure 2 Schéma du terrain à tondre Dimensions du terrain et des éléments, comme sur le plan (m), temps de tonte unitaire (s/m 2 ). Surface de gazon et temps total de tonte. Calculer la surface de gazon en retranchant de la superficie du terrain, la superficie occupée par les différents éléments. Calculer ensuite le temps total de tonte en multipliant la surface de gazon par le temps de tonte unitaire. Lexique des constantes PI (réel) = 3, constante mathématique π longter (réel) longueur du terrain (m) DONNÉE largter (réel) largeur du terrain (m) DONNÉE longmais (réel) longueur de la maison (m) DONNÉE largmais (réel) largeur de la maison (m) DONNÉE longapp (réel) longueur de l appentis (m) DONNÉE raypisc (réel) rayon de la piscine (m) DONNÉE x (réel) temps de tonte unitaire (s/m 2 ) DONNÉE surface (réel) surface du terrain (m 2 ) RÉSULTAT temps (réel) temps total de tonte (s) RÉSULTAT surface longter largter surface surface longmais largmais surface surface (longapp largmais)/2 surface surface PI raypisc raypisc temps x surface 1.4 Heures, minutes, secondes Écrire un algorithme pour convertir un nombre de secondes en un nombre d heures, de minutes et de secondes. On utilisera les opérateurs modulo et division entière. Une durée, en secondes. La même durée, en heures, minutes, secondes. Décomposer le nombre total des secondes par division entières successives, sachant qu il y a 60 secondes dans une minute et 3600 secondes dans une heure. 4

5 duree (entier) durée à convertir, en secondes DONNÉE heures (entier) nombre d heures RÉSULTAT minutes (entier) nombre de minutes RÉSULTAT secondes (entier) nombre de secondes RÉSULTAT heures duree/3600 minutes (duree mod 3600)/60 secondes duree mod Programme Gazon Utiliser les algorithmes précédents pour écrire un programme Java qui calcule et affiche surface de gazon et temps de tonte. Les informations nécessaires seront demandées à l utilisateur. Le temps de tonte sera affiché en heures, minutes, secondes. Indications En Java, l opération modulo (mod) se note %. Par exemple : duree % la constante mathématique π est définie par Math.PI. 5

6 import java. util. ; class Gazon { static final Scanner input = new Scanner(System.in); public static void main(string [] args) { / de l algorithme du gazon / float longter; float largter ; float longmais; float largmais ; float longapp; float raypisc ; float x; / s de l algorithme du gazon / float surface ; float temps; / Donnée de l algorithme de la durée / int duree; / s de l algorithme de la durée / int heures; int minutes; int secondes; / Entrée des données / System.out. println ("Entrer la longueur et la largeur du terrain (m)"); longter = input.nextfloat (); largter = input.nextfloat (); System.out. println ("Entrer la longueur et la largeur de la maison (m)"); longmais = input.nextfloat (); largmais = input.nextfloat (); System.out. println ("Entrer la longueur de l appentis (m)"); longapp = input.nextfloat (); System.out. println ("Entrer le rayon de la piscine (m)"); raypisc = input.nextfloat (); System.out. println ("Entrer le temps de tonte unitaire (s/m^2)"); x = input.nextfloat (); / du gazon / surface = longter largter ; surface = longmais largmais; surface = (longapp largmais) / 2.0; surface = Math.PI raypisc raypisc; temps = x surface ; / Préparation des données pour l algorithme de la durée / duree = Math.round(temps); / de la durée / heures = duree / 3600; minutes = (duree % 3600) / 60; secondes = duree % 60; } / Affichage des résultats / System.out. println ("Surface de gazon : " + surface + " m^2"); System.out. println ("Temps de tonte : " + heures + " heures, " + minutes + " minutes, " + secondes + " secondes"); } 6

7 2 Conditionnelles 2.1 Dérouler un algorithme Réalisez l exécution de l algorithme suivant en donnant successivement les valeurs 20, 150, 50, 51 et 400 à valeur. valeur (entier) entier donné DONNÉE si valeur > 100 alors écrire A si valeur > 200 alors écrire B sinon écrire C sinon si valeur > 50 alors écrire D sinon écrire E Donnée Sorties de l algorithme (impression) 20 E 150 A C 50 E 51 D 400 A B 2.2 Pizzas On ne fait pas forcément des économies en achetant plus gros. Est-ce vrai quand on achète des pizzas? Concevoir un algorithme qui lit le diamètre de deux pizzas, leur numéro et leur prix puis qui imprime le numéro de celle qui a le meilleur rapport taille/prix. Aucune donnée. Aucun résultat (affichage). On remarquera que le «meilleur» rapport taille/prix est celui qui est le plus grand. Pour la définition de la taille, le plus naturel est d utiliser l aire de la pizza. Il suffit ensuite de calculer les rapports taille/prix de chacune des pizzas, et de les comparer pour afficher le numéro de celle qui a le meilleur rapport. Lexique des constantes PI (réel) = 3, constante mathématique π numéro 1 (entier) numéro de la première pizza INTERMÉDIAIRE numéro 2 (entier) numéro de la deuxième pizza INTERMÉDIAIRE diamètre 1 (réel) diamètre de la première pizza INTERMÉDIAIRE diamètre 2 (réel) diamètre de la deuxième pizza INTERMÉDIAIRE prix 1 (réel) prix de la première pizza INTERMÉDIAIRE prix 2 (réel) prix de la deuxième pizza INTERMÉDIAIRE rapport 1 (réel) Rapport taille/prix de la première pizza INTERMÉDIAIRE rapport 2 (réel) Rapport taille/prix de la deuxième pizza INTERMÉDIAIRE 7

8 écrire Entrer numéro, diamètre et prix de la première pizza numéro 1 lire diamètre 1 lire prix 1 lire écrire Entrer numéro, diamètre et prix de la deuxième pizza numéro 2 lire diamètre 2 lire prix 2 lire rapport 1 diamètre 1 diamètre 1 PI/(4 prix 1) rapport 2 diamètre 2 diamètre 2 PI/(4 prix 2) si rapport 1 > rapport 2 alors écrire C est la pizza, numéro 1, qui a le meilleur rapport taille/prix. sinon si rapport 1 < rapport 2 alors écrire C est la pizza, numéro 2, qui a le meilleur rapport taille/prix. sinon écrire Les deux pizzas on le même rapport taille/prix. Remarque : Ce n est pas équivalent de prendre le périmètre et l aire comme mesure de la taille. Par exemple, si diamètre 1 = 4, diamètre 2 = 6, prix 1 = 2 et prix 2 = 4, alors avec le périmètre, c est la pizza n o 1 qui a le meilleur rapport : périmètre 1 = 4π rapport 1 = 4π/2 = 2π périmètre 2 = 6π rapport 2 = 6π/4 = 1,5π avec l aire, c est la pizza n o 2 qui a le meilleur rapport : 2.3 Coordonnées aire 1 = (4/2) 2 = 4π rapport 1 = 4π/2 = 2π aire 2 = (6/2) 2 = 9π rapport 2 = 9π/4 = 2,25π Écrire un algorithme qui, étant donné les coordonnées x et y d un point, détermine dans quelle partie (A, B, C ou D) du plan se trouve le point (cf. figure 3). B A O C D Figure 3 Parties du plan Coordonnées (x, y) d un point. Affichage de la partie du point dans laquelle se trouve le point. Un simple enchaînement de structures conditionnelles. x (réel) abscisse du point DONNÉE y (réel) ordonnée du point DONNÉE 8

9 si x < 0 alors si y < 0 alors écrire C sinon si y > 0 alors écrire B sinon // y = 0 écrire BC sinon si x > 0 alors si y < 0 alors écrire D sinon si y > 0 alors écrire A sinon // y = 0 écrire AD sinon // x = 0 si y < 0 alors écrire CD sinon si y > 0 alors écrire AB sinon // y = 0 écrire O (ABCD) Pour aller plus loin. Écrire un algorithme de conversion des coordonnées du point en coordonnées polaires. La valeur de l angle doit être dans l intervalle [0 ; 2π[. 2.4 Mois de l année Écrire un algorithme qui demande un numéro de mois à l utilisateur et indique en retour son nom et le nombre de jours dans ce mois. Aucune donnée. Aucun (affichage). (i) demander un numéro de mois à l utilisateur ; (ii) afficher le nom et le nombre de jours correspondant au numéro de mois (utiliser pour cela une structure selon que). mois (entier) numéro de mois INTERMÉDIAIRE 9

10 écrire Entrer un numéro de mois mois lire selon que mois est cas 1 : écrire janvier (31 jours) cas 2 : écrire février (28 ou 29 jours) cas 3 : écrire mars (31 jours) cas 4 : écrire avril (30 jours) cas 5 : écrire mai (31 jours) cas 6 : écrire juin (30 jours) cas 7 : écrire juillet (31 jours) cas 8 : écrire août (31 jours) cas 9 : écrire septembre (30 jours) cas 10 : écrire octobre (31 jours) cas 11 : écrire novembre (30 jours) cas 12 : écrire décembre (31 jours) défaut : écrire numéro invalide fselon 10

11 3 Itérations 3.1 Lignes d étoiles 1. Concevoir un algorithme qui, pour un caractère imprimable et un nombre n donnés, imprime une barre horizontale de n de ces caractères. **************** Un caractère imprimable, une longueur de ligne n. Affichage d une ligne de n fois le caractère. Répéter n fois l affichage du caractère, à l aide d une boucle pour car (caractère) un caractère imprimable DONNÉE n (entier) longueur de la ligne DONNÉE i (entier) compteur de caractères INTERMÉDIAIRE pour i de 1 à n faire écrire car écrire \n 2. Modifier l algorithme pour l impression d une barre double. **************** **************** Un caractère imprimable, une longueur de ligne n. Affichage de deux lignes de n fois le caractère. Répéter 2 fois l algorithme précédent. car (caractère) un caractère imprimable DONNÉE n (entier) longueur de la ligne DONNÉE i (entier) compteur de caractères INTERMÉDIAIRE pour i de 1 à n faire écrire car écrire \n pour i de 1 à n faire écrire car écrire \n 3. Modifier l algorithme pour l impression d une barre d épaisseur quelconque donnée. 11

12 Un caractère imprimable, une longueur de ligne n, une épaisseur m. Affichage de m lignes de n fois le caractère. Répéter m fois le premier algorithme. Utiliser pour cela une boucle pour. car (caractère) un caractère imprimable DONNÉE n (entier) longueur de la ligne DONNÉE m (entier) nombre de lignes DONNÉE i (entier) compteur de lignes INTERMÉDIAIRE j (entier) compteur de caractères INTERMÉDIAIRE pour i de 1 à m faire pour j de 1 à n faire écrire car écrire \n 4. (optionnel) Transformer les algorithmes ci-dessus en fonctions. 5. Écrire un programme Java implémentant la dernière version de l algorithme (épaisseur quelconque). import java. util. ; class Lignes { static final Scanner input = new Scanner(System.in); public static void main(string [] args) { char car ; // caractère à imprimer int n; // longueur de ligne int m; // épaisseur int i ; // compteur de lignes int j ; // compteur de caractères System.out. print ("Caractère? "); car = input.next (). charat(0); System.out. print ("Longueur? "); n = input. nextint (); System.out. print ("Épaisseur? "); m = input.nextint (); } } for ( i = 1; i <= m; ++i) { for ( j = 1; j <= n; ++j) System.out. print (car ); System.out. println (); } 3.2 Carrés et cubes Écrire un algorithme qui imprime la suite des carrés et des cubes des entiers compris entre 10 et

13 Aucune donnée. Aucun (affichage). Énumérer les valeurs de borneinf à bornesup (utiliser une boucle pour), et utiliser la valeur de l indice de boucle pour en calculer le carré et le cube. Lexique des constantes borneinf (entier) = 10 borne inférieure de l intervalle bornesup (entier) = 100 borne supérieure de l intervalle i (entier) compteur INTERMÉDIAIRE carré (entier) valeur de i 2 INTERMÉDIAIRE cube (entier) valeur de i 3 INTERMÉDIAIRE pour i de borneinf à bornesup faire carré i i cube carré i écrire i, carré, cube 3.3 Triangle de nombres Concevoir un algorithme qui imprime pour n donné : n Un entier n. Aucun (affichage suivant énoncé). Énumérer les lignes et, pour chaque ligne, imprimer les nombres de 1 au numéro de ligne. Utiliser pour cela deux boucles imbriquées. n (entier) le paramètre donné DONNÉE i (entier) compteur de lignes INTERMÉDIAIRE j (entier) compteur de colonnes INTERMÉDIAIRE pour i de 1 à n faire pour j de 1 à i faire écrire j écrire \n 13

14 3.4 Tables de multiplications Concevoir un algorithme qui imprime l ensemble des tables de multiplication par 1, 2,..., 12. Modifier ensuite l algorithme pour qu il imprime 3 tables côte à côte. Affichage table par table Aucune. Aucun (affichage). Utiliser deux boucles imbriquées pour énumérer tous les produits : une première boucle sur les tables (de 1 à 12), et une seconde sur les lignes dans les tables (de 1 à 12 également). i (entier) compteur pour les tables INTERMÉDIAIRE j (entier) compteur pour les lignes dans les tables INTERMÉDIAIRE produit (entier) produit de i par j INTERMÉDIAIRE pour i de 1 à 12 faire pour j de 1 à 12 faire produit i j écrire i,, j, =, produit, \n écrire \n Affichage des tables trois par trois Aucune. Aucun (affichage). Utiliser trois boucles imbriquées pour énumérer tous les produits : une première boucle sur les lignes de tables (de 1 à 4), une seconde sur les lignes dans les tables (de 1 à 12), et une troisième sur les tables (3 tables à chaque fois, les bornes sont définies à partir de la ligne de table courante). i (entier) compteur pour les tables INTERMÉDIAIRE j (entier) compteur pour les lignes dans les tables INTERMÉDIAIRE k (entier) compteur pour les lignes de tables INTERMÉDIAIRE produit (entier) produit de i par j INTERMÉDIAIRE pour k de 1 à 4 faire pour j de 1 à 12 faire pour i de 3 (k 1) + 1 à 3 k faire produit i j écrire i,, j, =, produit écrire \n écrire \n 3.5 Puissances Imprimer la suite des puissances de x (nombre réel donné) : x, x 2,..., x n, avec n un entier positif donné. La solution ne devra pas utiliser d opération «puissance». 14

15 Un réel x et un entier positif n. Affichage de x, x 2,..., x n. La valeur de x k est calculée comme x x k 1, avec x 0 = 1. x (réel) paramètre DONNÉE n (entier) paramètre DONNÉE i (entier) compteur d itérations INTERMÉDIAIRE p (réel) valeurs successives de la suite des puissances x i INTERMÉDIAIRE p 1 pour i de 1 à n faire p p x écrire p 3.6 Suite alternée Imprimer les termes de la suite alternée : Un entier positif n. Affichage des termes de la suite donnée. 1, 2!, 3!, 4!,..., ( 1) n+1 n! Notons u k = ( 1) k+1 k! le k e terme de la suite. Il s agit alors d afficher les termes u 1, u 2,..., u n de la suite. On remarque que les termes de la suite peuvent être calculés par la relation u k = k u k 1, avec u 0 = 1. n (entier) paramètre DONNÉE i (entier) compteur d itérations INTERMÉDIAIRE u (entier) valeurs successives de la suite ( 1) i+1 i! INTERMÉDIAIRE u 1 pour i de 1 à n faire u i u écrire u 3.7 Sommes de fractions 1. Écrire un algorithme qui, pour n donné, calcule la somme : n 15

16 Un entier n. Valeur de n 1. k=1 k Énumérer les valeurs i = 1... n, et accumuler la somme des 1 i. n (entier) le paramètre donné DONNÉE somme (réel) valeur de n 1 RÉSULTAT k=1 k i (entier) compteur d itérations INTERMÉDIAIRE somme 0 pour i de 1 à n faire somme somme + 1,0/i // attention à la division entière! 2. Même question avec : n Un entier n. Valeur de n k=0 1 2 k. Énumérer les valeurs i = 0... n, et accumuler la somme des 1 2 i. On remarque que = 1, et 1 2 i = i 1. n (entier) le paramètre donné DONNÉE somme (réel) valeur de n 1 RÉSULTAT k=0 2 k i (entier) compteur d itérations INTERMÉDIAIRE u (réel) valeurs successives de 1 INTERMÉDIAIRE 2 i somme 0 u 1 pour i de 0 à n faire somme somme + u u u/2,0 3.8 Hauteurs de pluie Écrire un algorithme qui lit les hauteurs de pluie (en mm) tombée durant un an (de janvier à décembre), puis imprime la hauteur de pluie la plus forte ainsi que le numéro du mois où cela s est produit, la hauteur de pluie la plus faible ainsi que le numéro du mois où cela s est produit et la moyenne des hauteurs de pluie tombées par mois. On suppose que les hauteurs de pluie tombée sont différentes chaque mois et l on ne vérifie pas ce fait. 16

17 Aucune. Aucun. Lire une première hauteur, et initialiser les différentes variables en conséquence (hauteur et mois min., hauteur et mois max., somme des hauteurs). Lire ensuite les hauteurs suivantes, et mettre les variables à jour au fur et à mesure. Enfin calculer la moyenne et afficher les résultats. Lexique des constantes NB_MOIS (entier) = 12 nombre de mois à traiter mois (entier) numéro de mois INTERMÉDIAIRE hauteur (entier) hauteur de pluie pour le mois INTERMÉDIAIRE h_min (entier) hauteur minimale INTERMÉDIAIRE m_min (entier) mois avec la hauteur minimale INTERMÉDIAIRE h_max (entier) hauteur maximale INTERMÉDIAIRE m_max (entier) mois avec la hauteur maximale INTERMÉDIAIRE somme (entier) somme des hauteurs de pluie INTERMÉDIAIRE moyenne (entier) moyenne des hauteurs de pluie INTERMÉDIAIRE hauteur lire h_min hauteur m_min 1 h_max hauteur m_max 1 somme hauteur pour mois de 2 à NB_MOIS faire hauteur lire si hauteur < h_min alors h_min hauteur m_min mois si hauteur > h_max alors h_max hauteur m_max mois somme somme + hauteur moyenne somme/nb_mois écrire Hauteur min.:, h_min, pour le mois, m_min écrire Hauteur max.:, h_max, pour le mois, m_max écrire Hauteur moy.:, moyenne 3.9 Puissance de 2 On donne un réel x supposé positif, trouver le plus petit entier n tel que 2 n soit plus grand que x. Un nombre positif x. Plus petit entier n tel que 2 n x. L idée générale est de calculer les puissance de 2, jusqu à dépasser la valeur de x. Il faut cependant distinguer le cas où x 1 et le cas où x < 1. Dans le premier cas, on calcule les puissances 2 1, 2 2, 2 3,... jusqu à ce que 2 n x. Dans le second cas, on calcule les puissances 2 1, 2 2, 2 3,... jusqu à ce que 2 n < x. 17

18 x (réel) le nombre positif donné DONNÉE n (entier) plus petit entier tel que 2 n x RÉSULTAT p (réel) valeur de 2 n INTERMÉDIAIRE n 0 p 1 si x 1 alors tant que p < x faire n n + 1 p 2 p ftant sinon tant que p x faire n n 1 p p/2 ftant n n + 1 Remarque : la solution peut aussi être calculée directement par la formule n = log 2 x Chute libre On veut imprimer les effets de la gravité sur un objet qui tombe depuis une tour de hauteur donnée en mètres. Pour cela, on imprime la hauteur à laquelle l objet se trouve toutes les x (réel) secondes pendant sa chute. On sait que la distance d parcourue par un objet en fonction du temps de parcours t est donnée par la formule : d = 1 2 gt2 où g est la constante de gravitation (9,806 65). On écrira le message «boum» quand l objet heurte le sol. Hauteur de la tour h, intervalle de temps pour la simulation x. Aucun (affichage). Simuler la chute de l objet. Pour cela, calculer la hauteur de l objet en fonction du temps écoulé depuis le début. Si la hauteur est positive, recommencer en ajoutant x au temps écoulé. Finir par l affichage du message «boum». Lexique des constantes G (réel) = 9, constante de gravitation h (réel) hauteur de la tour, en mètres DONNÉE x (réel) intervalle de temps pour la simulation, en secondes DONNÉE t (réel) temps écoulé depuis le début INTERMÉDIAIRE haut (réel) hauteur de l objet INTERMÉDIAIRE t 0 haut h tant que haut 0 faire écrire t =, t, ; hauteur =, haut t t + x haut h G t t/2,0 ftant écrire BOUM! 18

19 4 Fonctions 4.1 Calcul d âge Écrire une fonction qui calcule le nombre d années (entières) qui s écoulent entre deux dates (jour, mois, année). L utiliser dans un algorithme qui doit imprimer l âge d une personne étant donné sa date de naissance et indique sous forme de message si la personne est mineure, adulte ou peut bénéficier de la carte Vermeil (plus de 60 ans)! La fonction... fonction diffdates(in ja : entier, in ma : entier, in aa : entier, in jb : entier, in mb : entier, in ab : entier) : ret entier Retourne le nombre d années entières écoulées entre les dates ja/ma/aa et jb/mb/ab. On suppose que la première date est antérieure à la seconde. Calculer la différence des années, et en retrancher 1 si la dernière année n est pas complète. Lexique local des variables diff (entier) nombre d année entières entre les deux dates de diffdates diff ab aa si mb < ma (mb = ma jb < ja) alors // la dernière année n est pas complète diff diff 1 retourner diff... et l algorithme... La date de naissance d une personne, et la date du jour, sous la forme jour/mois/année. Aucun (affichage). Utiliser la fonction définie précédemment pour calculer l âge de la personne. Lexique des fonctions fonction diffdates(in ja : entier, in ma : entier, in aa : entier, in jb : entier, in mb : entier, in ab : entier) : ret entier Retourne le nombre d années entières écoulées en les dates ja/ma/aa et jb/mb/ab. On suppose que la première date est antérieure à la seconde. jnaiss (entier) jour de naissance de la personne DONNÉE mnaiss (entier) mois de naissance de la personne DONNÉE anaiss (entier) année de naissance de la personne DONNÉE jcour (entier) jour courant DONNÉE mcour (entier) mois courant DONNÉE acour (entier) année courant DONNÉE age (entier) âge de la personne INTERMÉDIAIRE age diffdates(jnaiss, mnaiss, anaiss, jcour, mcour, acour) écrire Cette personne est âgée de, age, ans. si age < 18 alors écrire Elle est mineure. sinon écrire Elle est adulte. si age 60 alors écrire Et elle peut bénéficier de la carte Vermeil. 19

20 4.2 Multiplication récursive Écrire une fonction récursive qui fait le produit de deux nombres entiers positifs en utilisant des additions. L idée est que : { 0 si a = 0 a b = (a 1) b + b si a > 0 Exécuter la fonction pour a = 4 et b = 5 (pour cela, présenter les appels récursifs successifs sous forme d un arbre), puis pour a = 5 et b = 4. Pour quel appel l arbre est-il le plus haut? Noter sur quel argument porte la récursion. Conclure. fonction produit(in a : entier, in b : entier) : ret entier Retourne le produit a b. de produit si a = 0 alors retourner 0 sinon retourner produit(a 1, b) + b L arbre des appels pour le calcul de 4 5 est : -> produit(4, 5)...: 20 -> produit(3, 5)...: 15 -> produit(2, 5)...: 10 -> produit(1, 5)..: 5 -> produit(0, 5) : 0 L arbre des appels pour le calcul de 5 4 est : -> produit(5, 4)...: 20 -> produit(4, 4)...: 16 -> produit(3, 4)...: 12 -> produit(2, 4)...: 8 -> produit(1, 4)..: 4 -> produit(0, 4) : 0 On remarque que la hauteur de l arbre est égale a + 1 (avec a la valeur du premier paramètre). C est normal, car c est cette valeur qui est utilisée pour contrôler la récursion. Si on veut minimiser la hauteur de l arbre, et donc le nombre d appels de fonction, il faut donc passer la plus petite valeur en premier. 4.3 Calculs de puissances 1. Écrire une fonction récursive qui calcule x n sachant que : { x n 1 si n = 0 = x n 1 x si n > 0 fonction puissance1(in x : réel, in n : entier) : ret réel Retourne la valeur de x n. Lexique local des variables res (réel) résultat de la fonction 20

21 de puissance1 si n = 0 alors res 1 sinon res x puissance1(x, n 1) retourner res 2. Écrire une fonction récursive qui calcule x n sachant que : 1 si n = 0 x n ( = ) x n/2 2 pour n > 0 pair ( ) x (n 1)/2 2 x pour n > 0 impair fonction puissance2(in x : réel, in n : entier) : ret réel Retourne la valeur de x n. Lexique local des variables y (réel) pour la valeur de x n/2 res (réel) résultat de la fonction de puissance2 si n = 0 alors res 1 sinon si n mod 2 = 0 alors y puissance2(x, n/2) res y y sinon y puissance2(x, (n 1)/2) res y y x retourner res 3. Comparer les exécutions (avec arbre des appels) des deux fonctions ci-dessus pour n = 11 et x = 2. Quel est l arbre le plus court? Qu en conclure? Arbres des appels pour le calcul de 2 11, première version : -> puissance1 (2, 11)...: > puissance1 (2, 10)...: > puissance1 (2, 9)...: 512 -> puissance1 (2, 8)...: 256 -> puissance1 (2, 7)...: 128 -> puissance1 (2, 6)...: 64 -> puissance1 (2, 5)...: 32 -> puissance1 (2, 4)...: 16 -> puissance1 (2, 3)...: 8 -> puissance1 (2, 2)...: 4 -> puissance1 (2, 1)..: 2 -> puissance1 (2, 0) : 1 Arbres des appels pour le calcul de 2 11, deuxième version : -> puissance2 (2, 11)...: > puissance2 (2, 5)...: 32 -> puissance2 (2, 2)...: 4 -> puissance2 (2, 1)..: 2 -> puissance2 (2, 0) : 1 On peut montrer que la hauteur de l arbre est de n + 1 pour la première version, et de 1 + log 2 (n + 1) pour la deuxième. L arbre est donc plus court pour la deuxième version, dès que n > 2. On peut en déduire que la deuxième version s exécutera plus rapidement. 21

22 4.4 Tours de Hanoï Autrefois, à Hanoï, l empereur a conçu un puzzle de n disques et trois piquets : A (départ), B (échangeur) et C (arrivée). Les disques étaient tous de tailles différentes et avaient un trou au milieu afin que l on puisse passer les disques dans les piquets. À cause de leur poids important, on ne pouvait pas mettre un disque plus lourd au dessus de disques qui étaient plus petits. Le but du jeu est de transférer tous les disques du piquet A au piquet C, en ne déplaçant qu un seul disque à la fois. Concevoir une solution récursive qui imprime un message décrivant la solution. Pour lancer la résolution, il faut faire l appel de fonction suivant : hanoï(n, A, C, B ). fonction hanoï(in n : entier, in départ : caractère, in arrivée : caractère, in échangeur : caractère) : vide Imprime une description des étapes de résolution du problème des tours de Hanoï, où il faut déplacer n disques du piquet départ vers le piquet arrivée, en utilisant éventuellement un troisième piquet : échangeur. Le problème des tours de Hanoï à n disques se résout très simplement de manière récursive. Il suffit de remarquer que pour déplacer n disques du piquet A au piquet C, il faut : déplacer (n 1) disques du piquet A vers le piquet B ; déplacer le dernier disque du piquet A vers le piquet C ; déplacer (n 1) disques du piquet B vers le piquet C. de hanoï si n = 1 alors écrire déplacement de, départ, vers, arrivée sinon hanoï(n 1, départ, échangeur, arrivée) hanoï(1, départ, arrivée, échangeur) hanoï(n 1, échangeur, arrivée, départ) 4.5 Flocon de Von Koch Une famille de fonctions mathématiques donne des représentations graphiques intéressantes, il s agit des fractales. Le principe de dessin d une famille de fractales est de remplacer chaque segment de la figure initiale par un motif et de réitérer le processus sur les segments de la figure obtenue. On arrête le processus en fixant le nombre maximal de subdivisions à effectuer (niveau de récursion). Dans l exemple de la fractale de Von Koch (cf. figure 4), on considère l ajout des points C, D et E dans la figure initiale [AB], en considérant que les longueurs des nouveaux segments [AC], [CD], [DE] et [EB] sont toutes égales à 1/3 de la longueur du segment initial [AB]. E 1/3 1/3 A B A 1/3 1/3 C D niveau 0 niveau 1 E B lig A B col niveau 2 C D Figure 4 Exemple de la fractale de Von Koch 1. Écrire un algorithme permettant de calculer les coordonnées C, D et E, à partir des coordonnées des points A et B. 22

23 Coordonnées (Ax, Ay) et (Bx, By) des points A et B. Coordonnées (Cx, Cy), (Dx, Dy) et (Ex, Ey) des points C, D et E. Les point C et D sont placés respectivement à 1/3 et 2/3 du segment [AB]. En notant AB le vecteur AB, on a : et donc C = A + AC = A + 1 AB 3 D = A + 2 AD = A + AB 3 Cx = Ax (Bx Ax) = 1 (2Ax + Bx) 3 Cy = Ay (By Ay) = 1 (2Ay + By) 3 Dx = Ax (Bx Ax) = 1 (Ax + 2Bx) 3 Dy = Ay (By Ay) = 1 (Ay + 2By) 3 Le vecteur CE est l image du vecteur CD par la rotation d angle Π/3, et E = C+ CE. Soit (x, y) les coordonnées du vecteur CD, et (x, y ) les coordonnées du vecteur CE. Alors : et x = Dx Cx y = Dy Cy x = x cos( Π 3 ) y sin( Π 3 ) = 1 2 x 3 2 y = 1 2 (x 3y) y = x sin( Π 3 ) + y cos( Π 3 ) = 3 2 x y = 1 2 ( 3x + y) Or donc E = C + CE Ex = Cx + x = Cx (x 3y) Ey = Cy + y = Cy ( 3x + y) Ax (réel) abscisse du point A DONNÉE Ay (réel) ordonnée du point A DONNÉE Bx (réel) abscisse du point B DONNÉE By (réel) ordonnée du point B DONNÉE Cx (réel) abscisse du point C RÉSULTAT Cy (réel) ordonnée du point C RÉSULTAT Dx (réel) abscisse du point D RÉSULTAT Dy (réel) ordonnée du point D RÉSULTAT Ex (réel) abscisse du point E RÉSULTAT Ey (réel) ordonnée du point E RÉSULTAT x (réel) abscisse du vecteur CD y (réel) ordonnée du vecteur CD INTERMÉDIAIRE INTERMÉDIAIRE 23

24 Cx (2 Ax + Bx)/3 Cy (2 Ay + By)/3 Dx (Ax + 2 Bx)/3 Dy (Ay + 2 By)/3 x Dx Cx y Dy Cy Ex Cx + (x 3 y)/2 Ey Cy + ( 3 x + y)/2 2. Écrire une fonction récursive de dessin de la fractale de Von Koch pour deux points de départ et un niveau de récursion donnés. Pour effectuer le dessin, on considère que l on dispose d une fonction qui trace une ligne entre deux points donnés : fonction ligne(in x 1 : entier, in y 1 : entier, in x 2 : entier, in y 2 : entier) : vide Trace une ligne entre les points (x 1, y 1) et (x 2, y 2). fonction vonkoch(in recur : entier, in Ax : réel, in Ay : réel, in Bx : réel, in By : réel) : vide Trace la courbe de Von Koch entre les points A et B, avec le niveau de récursion donné. Calculer les coordonnées des points C, D et E, et recommencer récursivement sur chacun des segments tant que le niveau de récursion souhaité est supérieur à 0. Lexique local des fonctions fonction ligne(in x 1 : entier, in y 1 : entier, in x 2 : entier, in y 2 : entier) : vide Trace une ligne entre les points (x 1, y 1) et (x 2, y 2). Lexique local des variables Cx (réel) abscisse du point C Cy (réel) ordonnée du point C Dx (réel) abscisse du point D Dy (réel) ordonnée du point D Ex (réel) abscisse du point E Ey (réel) ordonnée du point E de vonkoch si recur > 0 alors //... // ici, // calculer les coordonnées des points C, D et E en utilisant l algorithme précédent //... vonkoch(recur 1, Ax, Ay, Cx, Cy) vonkoch(recur 1, Cx, Cy, Ex, Ey) vonkoch(recur 1, Ex, Ey, Dx, Dy) vonkoch(recur 1, Dx, Dy, Bx, By) sinon ligne(ax, Ay, Bx, By) 24

25 5 Tableaux 5.1 Notes Écrire un algorithme qui, étant donné les notes des 30 élèves d une classe, calcule le nombre de ceux qui ont obtenu une note supérieure à la moyenne et le nombre de ceux qui ont obtenu une note inférieure à la moyenne. Question subsidiaire Résoudre le même problème, mais en utilisant la moyenne de la classe. Les notes des 30 élèves d une classe. Le nombre d élèves qui ont une note 10, et le nombre de ceux qui ont une note < 10 Les notes sont stockées dans un tableau de réels. Parcourir ensuite les notes pour compter le nombre d élèves ayant la moyenne. Le nombre de ceux qui n ont pas la moyenne est ensuite obtenu par soustraction du nombre total d élèves. Lexique des constantes NB_NOTES (entier) = 30 le nombre de notes notes (tableau [NB_NOTES] de réels) les notes DONNÉE nb_sup (entier) nombre d élèves avec une note 10 RÉSULTAT nb_inf (entier) nombre d élèves avec une note < 10 RÉSULTAT i (entier) indice de parcours INTERMÉDIAIRE nb_sup 0 pour i de 0 à NB_NOTES 1 faire si notes[i] 10 alors nb_sup nb_sup + 1 nb_inf NB_NOTES nb_sup 5.2 Températures Écrire un algorithme qui, étant donné un relevé de températures sur un mois de 30 jours, imprime le ou les jours du mois où il y a eu le plus grand écart par rapport à la moyenne de ces températures. Un relevé de températures pour les 30 jours d un mois. Aucun (affichage des jours où il y a eu le plus grand écart par rapport à la moyenne des températures). Le relevé de températures va être modélisé à l aide d un tableau de 30 réels. Le calcul se fera ensuite à l aide de trois parcours successifs du tableau : (i) un premier parcours pour calculer la somme, puis la moyenne des températures ; (ii) un deuxième parcours pour calculer les écarts par rapport à la moyenne, et le plus grand d entre eux (ces écarts seront stockés dans un tableau) ; (iii) enfin un troisième parcours pour trouver les jours atteignant l écart maximal, et les afficher. Lexique des constantes NB_JOURS (entier) = 30 le nombre total de jours 25

26 températures (tableau [NB_JOURS] de réels) le relevé de températures DONNÉE somme (réel) la somme des températures INTERMÉDIAIRE moyenne (réel) la moyenne des températures INTERMÉDIAIRE écarts (tableau [NB_JOURS] de réels) les écarts de température par rapport à la INTERMÉDIAIRE moyenne écart_max (réel) la valeur du plus grand écart par rapport à INTERMÉDIAIRE la moyenne i (entier) indice de parcours INTERMÉDIAIRE // calcul de la moyenne des températures somme 0 pour i de 0 à NB_JOURS 1 faire somme somme + températures[i] moyenne somme/nb_jours // calcul des écarts à la moyenne, et de leur maximum écart_max 0 // un écart est toujours positif pour i de 0 à NB_JOURS 1 faire écarts[i] températures[i] moyenne // prendre la valeur absolue si écarts[i] > écart_max alors écart_max écarts[i] // affichage des jours atteignant l écart maximal pour i de 0 à NB_JOURS 1 faire si écarts[i] = écart_max alors écrire Écart maximal atteint au jour, i Vote Une organisation vote pour renouveler son directeur. Il y a 5 candidats numérotés de 1 à 5. Les noms des candidats sont, dans l ordre de leur numéros : Ariane, Jean, Lucie, Marc, et Michel. Chaque membre de l organisation envoie un bulletin de vote qui porte le numéro qui correspond au candidat de son choix. Écrire un algorithme pouvant servir à faire le décompte des voix, et afficher le ou les noms des candidats ayant le plus de voix. Aucune. Aucun (lecture des votes, puis affichage des vainqueurs). Chaque candidat se voit attribuer un numéro entre 1 et le nombre de candidats. De cette manière, les noms des candidats, et leurs nombres de voix peuvent être stockées dans des tableaux. Le calcul s effectue en trois étapes : (i) lecture des votes, et décomptes des voix ; (ii) calcul du nombre de voix maximal ; (iii) affichage des vainqueurs. Lexique des constantes NB_CANDIDATS (entier) = 5 le nombre de candidats CANDIDATS (tableau [NB_CANDIDATS] de chaînes) = { Ariane, Jean, Lucie, Marc, Michel } les noms des candidats 26

27 voix (tableau [NB_CANDIDATS] d entiers) le décompte des voix INTERMÉDIAIRE vote (entier) un vote INTERMÉDIAIRE voix_max (entier) le maximum de voix atteint par un INTERMÉDIAIRE candidat i (entier) indice de parcours INTERMÉDIAIRE // initialisation du décompte des voix pour i de 0 à NB_CANDIDATS 1 faire voix[i] 0 // saisie des votes vote Lire tant que vote EOF faire si vote 1 vote NB_CANDIDATS alors voix[vote 1] 1 + voix[vote 1] sinon écrire Vote invalide :, vote vote Lire ftant // calcul du maximum voix_max 0 pour i de 0 à NB_CANDIDATS 1 faire si voix[i] > voix_max alors voix_max voix[i] // affichage du résultat pour i de 0 à NB_CANDIDATS 1 faire si voix[i] = voix_max alors écrire Le gagnant est, CANDIDATS[i], avec, voix[i], voix. 5.4 Mélange Écrire une fonction permettant de mélanger les valeurs d un tableau d entiers. On suppose que l on dispose d une fonction de tirage aléatoire : fonction nombrealéatoire(in a : entier, in b : entier) : ret entier Retourne un nombre entier tiré aléatoirement dans l intervalle [a ; b[. fonction mélange(in-out tab : tableau d entiers, in taille : entier) : ret vide Mélange aléatoirement les valeurs du tableau tab de taille taille. Le tableau est parcouru de gauche à droite, et la valeur de chaque case est échangée avec celle d une autre case se trouvant après elle dans le tableau. Cette autre case est choisie de manière aléatoire. On utilise pour cela une fonction qui retourne un nombre aléatoire, et qui n est pas détaillée ici. Lexique local des fonctions fonction nombrealéatoire(in a : entier, in b : entier) : ret entier Retourne un nombre entier tiré aléatoirement dans l intervalle [a ; b[. Lexique local des variables i (entier) compteur pour le parcours du tableau j (entier) indice de la valeur à échanger tmp (réel) variable temporaire pour l échange 27

28 de mélange pour i de 0 à taille 2 faire j nombrealéatoire(i, taille) tmp tab[i] tab[i] tab[j] tab[j] tmp 5.5 Nombres en toutes lettres Écrire un algorithme qui lit des nombres entiers supposés positifs et inférieurs à et les imprime en toutes lettres. Par exemple, avec 367, on imprime trois cent soixante-sept. On utilisera des tableaux de constantes chaînes de caractères appropriés. Aucune donnée. Aucun résultat (affichage). L algorithme est très simple : dès qu un nombre est lu, on vérifie que ce nombre est valide et on utilise la fonction imprimenombre pour l affichage. Lexique des fonctions fonction imprimenombre999999(in nombre : entier) : vide Imprime en toutes lettres le nombre nombre compris entre 0 et nombre (entier) le nombre à afficher INTERMÉDIAIRE nombre lire tant que nombre EOF faire si nombre 0 nombre alors imprimenombre999999(nombre) sinon écrire Le nombre doit être compris entre 0 et nombre lire ftant Il faut cependant définir la fonction imprimenombre Avant cela, on définit des constantes globales (des tableaux de chaînes de caractères) et les fonctions auxiliaires imprimenombre99 et imprimenombre999. Quelques constantes globales L idée, pour ces constantes, est de définir des tableaux avec les valeurs correspondant aux indices (0 pour zéro dans CH_UNITÉS ou 2 pour vingt dans CH_DIZAINES par exemple). Plus tard, cela permettra de retrouver facilement les constantes. Lexique des constantes CH_UNITÉS (tableau [20] de chaînes) = [ zéro, un, deux, trois, quatre, cinq, six, sept, huit, neuf, dix, onze, douze, treize, quatorze, quinze, seize, dix-sept, dix-huit, dix-neuf ] CH_DIZAINES (tableau [9] de chaînes) = [,, vingt, trente, quarante, cinquante, soixante,, quatre-vingt ] La fonction imprimenombre99 fonction imprimenombre99(in nombre : entier, in esse : booléen) : vide Imprime en toutes lettres le nombre nombre compris entre 0 et 99. Si le paramètre esse est faux, n imprime pas de «s» terminal pour «quatre-vingts.» 28

29 On commence par imprimer les dizaines, en faisant attention aux cas soixante-... et quatre-vingt-... On imprime ensuite les unités restantes. Lexique local des variables dizaines (entier) nombre de dizaines unités (entier) nombre d unités restantes de imprimenombre99 si nombre 20 alors si nombre 60 alors // soixante ou quatre-vingt dizaines 2 (nombre/20) unités nombre mod 20 sinon dizaines nombre/10 unités nombre mod 10 écrire CH_DIZAINES[dizaines] si esse dizaines = 8 unités = 0 alors écrire s si unités mod 10 = 1 dizaines 8 alors écrire et sinon si unités 0 alors écrire - sinon unités nombre si nombre = 0 unités 0 alors écrire CH_UNITÉS[unités] La fonction imprimenombre999 fonction imprimenombre999(in nombre : entier, in esse : booléen) : vide Imprime en toutes lettres le nombre nombre compris entre 0 et 999. Si le paramètre esse est faux, n imprime pas de «s» terminal pour «quatre-vingts» et «cents.» On imprime le nombre de centaines, puis on utilise la fonction imprimenombre99 pour imprimer le reste. Lexique local des fonctions fonction imprimenombre99(in nombre : entier, in esse : booléen) : vide Lexique local des variables centaines (entier) nombre de centaines nombre99 (entier) dizaines et unités du nombre de imprimenombre999 centaines nombre/100 nombre99 nombre mod 100 si centaines 1 alors si centaines 2 alors écrire CH_UNITÉS[centaines] écrire écrire cent si esse centaines 2 nombre99 = 0 alors écrire s si nombre99 0 alors écrire si nombre = 0 nombre99 0 alors imprimenombre99(nombre99, esse) 29

30 La fonction imprimenombre fonction imprimenombre999999(in nombre : entier) : vide Imprime en toutes lettres le nombre nombre compris entre 0 et On utilise deux fois la fonction imprimenombre999 : une première fois pour imprimer le nombre de milliers et une deuxième fois pour imprimer le reste. Lexique local des fonctions fonction imprimenombre999(in nombre : entier, in esse : booléen) : vide Lexique local des variables milliers (entier) nombre de milliers nombre999 (entier) nombre modulo 1000 de imprimenombre milliers nombre/1000 nombre999 nombre mod 1000 si milliers 1 alors si milliers 2 alors imprimenombre999(milliers, faux) écrire écrire mille si nombre999 0 alors écrire si nombre = 0 nombre999 0 alors imprimenombre999(nombre999, vrai) 5.6 Recherche dichotomique Exécuter la trace de l algorithme de recherche dichotomique appliqué aux recherches successives des entiers 6, 1, 12, 30, 0, 21, 29 dans un tableau d entiers contenant les valeurs 1, 5, 9, 12, 15, 21, 29. Vous vous appuierez sur les deux versions (récursive et itérative) données en cours. Tableau: [ 1, 5, 9, 12, 15, 21, 29 ] Recherche de 6 =============== -> rechdichorec(tab, 0, 6, 6): milieu = 3, tab[milieu] = 12 -> rechdichorec(tab, 0, 2, 6): milieu = 1, tab[milieu] = 5 -> rechdichorec(tab, 2, 2, 6): milieu = 2, tab[milieu] = 9 -> rechdichorec(tab, 2, 1, 6): deb > fin <- -1 <- -1 <- -1 <- -1 -> rechdichoiter(tab, 0, 6, 6): min (0) <= max (6), milieu = 3, tab[milieu] = 12 min (0) <= max (2), milieu = 1, tab[milieu] = 5 min (2) <= max (2), milieu = 2, tab[milieu] = 9 min (2) > max (1) <- -1 Recherche de 1 =============== -> rechdichorec(tab, 0, 6, 1): milieu = 3, tab[milieu] = 12 -> rechdichorec(tab, 0, 2, 1): milieu = 1, tab[milieu] = 5 -> rechdichorec(tab, 0, 0, 1): milieu = 0, tab[milieu] = 1 30

31 <- 0 <- 0 <- 0 -> rechdichoiter(tab, 0, 6, 1): min (0) <= max (6), milieu = 3, tab[milieu] = 12 min (0) <= max (2), milieu = 1, tab[milieu] = 5 min (0) <= max (0), milieu = 0, tab[milieu] = 1 <- 0 Recherche de 12 =============== -> rechdichorec(tab, 0, 6, 12): milieu = 3, tab[milieu] = 12 <- 3 -> rechdichoiter(tab, 0, 6, 12): min (0) <= max (6), milieu = 3, tab[milieu] = 12 <- 3 Recherche de 30 =============== -> rechdichorec(tab, 0, 6, 30): milieu = 3, tab[milieu] = 12 -> rechdichorec(tab, 4, 6, 30): milieu = 5, tab[milieu] = 21 -> rechdichorec(tab, 6, 6, 30): milieu = 6, tab[milieu] = 29 -> rechdichorec(tab, 7, 6, 30): deb > fin <- -1 <- -1 <- -1 <- -1 -> rechdichoiter(tab, 0, 6, 30): min (0) <= max (6), milieu = 3, tab[milieu] = 12 min (4) <= max (6), milieu = 5, tab[milieu] = 21 min (6) <= max (6), milieu = 6, tab[milieu] = 29 min (7) > max (6) <- -1 Recherche de 0 =============== -> rechdichorec(tab, 0, 6, 0): milieu = 3, tab[milieu] = 12 -> rechdichorec(tab, 0, 2, 0): milieu = 1, tab[milieu] = 5 -> rechdichorec(tab, 0, 0, 0): milieu = 0, tab[milieu] = 1 -> rechdichorec(tab, 0, -1, 0): deb > fin <- -1 <- -1 <- -1 <- -1 -> rechdichoiter(tab, 0, 6, 0): min (0) <= max (6), milieu = 3, tab[milieu] = 12 min (0) <= max (2), milieu = 1, tab[milieu] = 5 min (0) <= max (0), milieu = 0, tab[milieu] = 1 min (0) > max (-1) <- -1 Recherche de 21 =============== -> rechdichorec(tab, 0, 6, 21): milieu = 3, tab[milieu] = 12 -> rechdichorec(tab, 4, 6, 21): milieu = 5, tab[milieu] = 21 <- 5 <- 5 -> rechdichoiter(tab, 0, 6, 21): min (0) <= max (6), milieu = 3, tab[milieu] = 12 min (4) <= max (6), milieu = 5, tab[milieu] = 21 <- 5 31

32 Recherche de 29 =============== -> rechdichorec(tab, 0, 6, 29): milieu = 3, tab[milieu] = 12 -> rechdichorec(tab, 4, 6, 29): milieu = 5, tab[milieu] = 21 -> rechdichorec(tab, 6, 6, 29): milieu = 6, tab[milieu] = 29 <- 6 <- 6 <- 6 -> rechdichoiter(tab, 0, 6, 29): min (0) <= max (6), milieu = 3, tab[milieu] = 12 min (4) <= max (6), milieu = 5, tab[milieu] = 21 min (6) <= max (6), milieu = 6, tab[milieu] = 29 < Reversi L algorithme doit simuler un jeu appelé Reversi. Le jeu commence par afficher les chiffres de 1 à 9 dans le désordre. Le joueur donne un entier compris entre 1 et 9 qui indique le nombres de chiffres à inverser à partir de la gauche. La nouvelle configuration du jeu est affichée. Par exemple pour la configuration : si le joueur donne l entier 5, la nouvelle configuration sera : Le jeu s arrête quand on atteint une configuration où les chiffres sont placés par ordre croissant. L objectif du joueur est de réaliser ce but avec le moins de tours possible. L algorithme permettra d imprimer en combien de tours le joueurs a réalisé le tri et lui permettra de recommencer le jeu sur la même configuration initiale autant de fois qu il le désire. La configuration initiale est supposée fournie par une fonction dont on ne décrira pas l algorithme : fonction inittab(out tab : tableau d entiers, in taille : entier) : ret vide Remplit le tableau tab avec les nombre de 1 à taille, dans le désordre. Aucune donnée. Aucun résultat (programme interactif). On utilisera des tableaux pour stocker les configurations. On commence par générer la configuration initiale. Pour une partie, on prend une copie de la configuration initiale, on l affiche et on initialise le nombre de tours à 0. Ensuite, les tours de jeu sont enchaînés tant que les valeurs ne sont pas dans l ordre (une fonction sera définie pour vérifier ce fait). Pour chaque tour, le joueur entre son choix (k), puis les k premières valeurs du tableau sont inversées à l aide d une fonction appropriée. Le nombre de tours est incrémenté et le nouvel état du tableau est affiché. À la fin de la partie, le nombre de tours est affiché et il est proposé au joueur de recommencer une partie. Lexique des constantes TAILLE (entier) = 9 taille du tableau de jeu 32

Algorithmes récursifs

Algorithmes récursifs Licence 1 MASS - Algorithmique et Calcul Formel S. Verel, M.-E. Voge www.i3s.unice.fr/ verel 23 mars 2007 Objectifs de la séance 3 écrire des algorithmes récursifs avec un seul test rechercher un élément

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

Petit lexique de calcul à l usage des élèves de sixième et de cinquième par M. PARCABE, professeur au collège Alain FOURNIER de BORDEAUX, mars 2007

Petit lexique de calcul à l usage des élèves de sixième et de cinquième par M. PARCABE, professeur au collège Alain FOURNIER de BORDEAUX, mars 2007 Petit lexique de calcul à l usage des élèves de sixième et de cinquième par M. PARCABE, professeur au collège Alain FOURNIER de BORDEAUX, mars 2007 page 1 / 10 abscisse addition additionner ajouter appliquer

Plus en détail

Architecture des Systèmes d Information Architecture des Systèmes d Information

Architecture des Systèmes d Information Architecture des Systèmes d Information Plan... Tableaux et tris I3 - Algorithmique et programmation 1 Rappels Nicol Delestre 2 Tableaux à n dimensions 3 Initiation aux tris Tableaux - v2.0.1 1 / 27 Tableaux - v2.0.1 2 / 27 Rappels : tableau

Plus en détail

Représentation géométrique d un nombre complexe

Représentation géométrique d un nombre complexe CHAPITRE 1 NOMBRES COMPLEXES 1 Représentation géométrique d un nombre complexe 1. Ensemble des nombres complexes Soit i le nombre tel que i = 1 L ensemble des nombres complexes est l ensemble des nombres

Plus en détail

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

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

Baccalauréat ES Pondichéry 7 avril 2014 Corrigé

Baccalauréat ES Pondichéry 7 avril 2014 Corrigé Baccalauréat ES Pondichéry 7 avril 204 Corrigé EXERCICE 4 points Commun à tous les candidats. Proposition fausse. La tangente T, passant par les points A et B d abscisses distinctes, a pour coefficient

Plus en détail

1 radian. De même, la longueur d un arc de cercle de rayon R et dont l angle au centre a pour mesure α radians est α R. R AB =R.

1 radian. De même, la longueur d un arc de cercle de rayon R et dont l angle au centre a pour mesure α radians est α R. R AB =R. Angles orientés Trigonométrie I. Préliminaires. Le radian Définition B R AB =R C O radian R A Soit C un cercle de centre O. Dire que l angle géométrique AOB a pour mesure radian signifie que la longueur

Plus en détail

Priorités de calcul :

Priorités de calcul : EXERCICES DE REVISION POUR LE PASSAGE EN QUATRIEME : Priorités de calcul : Exercice 1 : Calcule en détaillant : A = 4 + 5 6 + 7 B = 6 3 + 5 C = 35 5 3 D = 6 7 + 8 E = 38 6 3 + 7 Exercice : Calcule en détaillant

Plus en détail

EVALUATIONS FIN CM1. Mathématiques. Livret élève

EVALUATIONS FIN CM1. Mathématiques. Livret élève Les enseignants de CM1 de la circonscription de METZ-SUD proposent EVALUATIONS FIN CM1 Mathématiques Livret élève Circonscription de METZ-SUD page 1 NOMBRES ET CALCUL Exercice 1 : Écris en chiffres les

Plus en détail

Corrigé des TD 1 à 5

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

Plus en détail

1 Recherche en table par balayage

1 Recherche en table par balayage 1 Recherche en table par balayage 1.1 Problème de la recherche en table Une table désigne une liste ou un tableau d éléments. Le problème de la recherche en table est celui de la recherche d un élément

Plus en détail

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

C f tracée ci- contre est la représentation graphique d une TLES1 DEVOIR A LA MAISON N 7 La courbe C f tracée ci- contre est la représentation graphique d une fonction f définie et dérivable sur R. On note f ' la fonction dérivée de f. La tangente T à la courbe

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

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

Les algorithmes de base du graphisme

Les algorithmes de base du graphisme Les algorithmes de base du graphisme Table des matières 1 Traçage 2 1.1 Segments de droites......................... 2 1.1.1 Algorithmes simples.................... 3 1.1.2 Algorithmes de Bresenham (1965).............

Plus en détail

Probabilités sur un univers fini

Probabilités sur un univers fini [http://mp.cpgedupuydelome.fr] édité le 7 août 204 Enoncés Probabilités sur un univers fini Evènements et langage ensembliste A quelle condition sur (a, b, c, d) ]0, [ 4 existe-t-il une probabilité P sur

Plus en détail

Recherche dans un tableau

Recherche dans un tableau Chapitre 3 Recherche dans un tableau 3.1 Introduction 3.1.1 Tranche On appelle tranche de tableau, la donnée d'un tableau t et de deux indices a et b. On note cette tranche t.(a..b). Exemple 3.1 : 3 6

Plus en détail

TSTI 2D CH X : Exemples de lois à densité 1

TSTI 2D CH X : Exemples de lois à densité 1 TSTI 2D CH X : Exemples de lois à densité I Loi uniforme sur ab ; ) Introduction Dans cette activité, on s intéresse à la modélisation du tirage au hasard d un nombre réel de l intervalle [0 ;], chacun

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

Baccalauréat ES Polynésie (spécialité) 10 septembre 2014 Corrigé

Baccalauréat ES Polynésie (spécialité) 10 septembre 2014 Corrigé Baccalauréat ES Polynésie (spécialité) 10 septembre 2014 Corrigé A. P. M. E. P. Exercice 1 5 points 1. Réponse d. : 1 e Le coefficient directeur de la tangente est négatif et n est manifestement pas 2e

Plus en détail

Probabilités sur un univers fini

Probabilités sur un univers fini [http://mp.cpgedupuydelome.fr] édité le 10 août 2015 Enoncés 1 Proailités sur un univers fini Evènements et langage ensemliste A quelle condition sur (a,, c, d) ]0, 1[ 4 existe-t-il une proailité P sur

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

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

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

TOUT CE QU IL FAUT SAVOIR POUR LE BREVET

TOUT CE QU IL FAUT SAVOIR POUR LE BREVET TOUT E QU IL FUT SVOIR POUR LE REVET NUMERIQUE / FONTIONS eci n est qu un rappel de tout ce qu il faut savoir en maths pour le brevet. I- Opérations sur les nombres et les fractions : Les priorités par

Plus en détail

Coefficients binomiaux

Coefficients binomiaux Probabilités L2 Exercices Chapitre 2 Coefficients binomiaux 1 ( ) On appelle chemin une suite de segments de longueur 1, dirigés soit vers le haut, soit vers la droite 1 Dénombrer tous les chemins allant

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

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

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

Plus en détail

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

Baccalauréat S Antilles-Guyane 11 septembre 2014 Corrigé

Baccalauréat S Antilles-Guyane 11 septembre 2014 Corrigé Baccalauréat S ntilles-guyane 11 septembre 14 Corrigé EXERCICE 1 6 points Commun à tous les candidats Une entreprise de jouets en peluche souhaite commercialiser un nouveau produit et à cette fin, effectue

Plus en détail

Probabilités conditionnelles Loi binomiale

Probabilités conditionnelles Loi binomiale Exercices 23 juillet 2014 Probabilités conditionnelles Loi binomiale Équiprobabilité et variable aléatoire Exercice 1 Une urne contient 5 boules indiscernables, 3 rouges et 2 vertes. On tire au hasard

Plus en détail

SOMMAIRE... SOMMAIRE... SOMMAIRE... SOMMAIRE... SOMMAIRE... SOMMAIRE... LES MESURES

SOMMAIRE... SOMMAIRE... SOMMAIRE... SOMMAIRE... SOMMAIRE... SOMMAIRE... LES MESURES SOMMAIRE... SOMMAIRE... SOMMAIRE... SOMMAIRE... SOMMAIRE... SOMMAIRE... LES MESURES MES 1 Les mesures de longueurs MES 2 Lecture de l heure MES 3 Les mesures de masse MES 4 Comparer des longueurs, périmètres.

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

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

Baccalauréat ES/L Amérique du Sud 21 novembre 2013

Baccalauréat ES/L Amérique du Sud 21 novembre 2013 Baccalauréat ES/L Amérique du Sud 21 novembre 2013 A. P. M. E. P. EXERCICE 1 Commun à tous les candidats 5 points Une entreprise informatique produit et vend des clés USB. La vente de ces clés est réalisée

Plus en détail

Cours 7 : Utilisation de modules sous python

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

Plus en détail

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

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

SINE QUA NON. Découverte et Prise en main du logiciel Utilisation de bases

SINE QUA NON. Découverte et Prise en main du logiciel Utilisation de bases SINE QUA NON Découverte et Prise en main du logiciel Utilisation de bases Sine qua non est un logiciel «traceur de courbes planes» mais il possède aussi bien d autres fonctionnalités que nous verrons tout

Plus en détail

Chapitre 2 Le problème de l unicité des solutions

Chapitre 2 Le problème de l unicité des solutions Université Joseph Fourier UE MAT 127 Mathématiques année 2011-2012 Chapitre 2 Le problème de l unicité des solutions Ce que nous verrons dans ce chapitre : un exemple d équation différentielle y = f(y)

Plus en détail

Fonctions de plusieurs variables

Fonctions de plusieurs variables Module : Analyse 03 Chapitre 00 : Fonctions de plusieurs variables Généralités et Rappels des notions topologiques dans : Qu est- ce que?: Mathématiquement, n étant un entier non nul, on définit comme

Plus en détail

Conversion d un entier. Méthode par soustraction

Conversion d un entier. Méthode par soustraction Conversion entre bases Pour passer d un nombre en base b à un nombre en base 10, on utilise l écriture polynomiale décrite précédemment. Pour passer d un nombre en base 10 à un nombre en base b, on peut

Plus en détail

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

1 de 46. Algorithmique. Trouver et Trier. Florent Hivert. Mél : Florent.Hivert@lri.fr Page personnelle : http://www.lri.fr/ hivert 1 de 46 Algorithmique Trouver et Trier Florent Hivert Mél : Florent.Hivert@lri.fr Page personnelle : http://www.lri.fr/ hivert 2 de 46 Algorithmes et structures de données La plupart des bons algorithmes

Plus en détail

Cours d Analyse. Fonctions de plusieurs variables

Cours d Analyse. Fonctions de plusieurs variables Cours d Analyse Fonctions de plusieurs variables Licence 1ère année 2007/2008 Nicolas Prioux Université de Marne-la-Vallée Table des matières 1 Notions de géométrie dans l espace et fonctions à deux variables........

Plus en détail

Corrigé du baccalauréat S Asie 21 juin 2010

Corrigé du baccalauréat S Asie 21 juin 2010 Corrigé du baccalauréat S Asie juin 00 EXERCICE Commun à tous les candidats 4 points. Question : Le triangle GBI est : Réponse a : isocèle. Réponse b : équilatéral. Réponse c : rectangle. On a GB = + =

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

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

Items étudiés dans le CHAPITRE N5. 7 et 9 p 129 D14 Déterminer par le calcul l'antécédent d'un nombre par une fonction linéaire

Items étudiés dans le CHAPITRE N5. 7 et 9 p 129 D14 Déterminer par le calcul l'antécédent d'un nombre par une fonction linéaire CHAPITRE N5 FONCTIONS LINEAIRES NOTION DE FONCTION FONCTIONS LINEAIRES NOTION DE FONCTION FONCTIONS LINEAIRES NOTION DE FONCTION Code item D0 D2 N30[S] Items étudiés dans le CHAPITRE N5 Déterminer l'image

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

FONCTIONS DE PLUSIEURS VARIABLES (Outils Mathématiques 4)

FONCTIONS DE PLUSIEURS VARIABLES (Outils Mathématiques 4) FONCTIONS DE PLUSIEURS VARIABLES (Outils Mathématiques 4) Bernard Le Stum Université de Rennes 1 Version du 13 mars 2009 Table des matières 1 Fonctions partielles, courbes de niveau 1 2 Limites et continuité

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

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

Algorithmique et structures de données I

Algorithmique et structures de données I Algorithmique et structures de données I Riadh Ben Messaoud Université 7 novembre à Carthage Faculté des Sciences Économiques et de Gestion de Nabeul 1ère année Licence Fondamentale IAG 1ère année Licence

Plus en détail

Fonctions de plusieurs variables

Fonctions de plusieurs variables Maths MP Exercices Fonctions de plusieurs variables Les indications ne sont ici que pour être consultées après le T (pour les exercices non traités). Avant et pendant le T, tenez bon et n allez pas les

Plus en détail

Thème 17: Optimisation

Thème 17: Optimisation OPTIMISATION 45 Thème 17: Optimisation Introduction : Dans la plupart des applications, les grandeurs physiques ou géométriques sont exprimées à l aide d une formule contenant une fonction. Il peut s agir

Plus en détail

Deux disques dans un carré

Deux disques dans un carré Deux disques dans un carré Table des matières 1 Fiche résumé 2 2 Fiche élève Seconde - version 1 3 2.1 Le problème............................................... 3 2.2 Construction de la figure avec geogebra...............................

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

Problèmes de dénombrement.

Problèmes de dénombrement. Problèmes de dénombrement. 1. On se déplace dans le tableau suivant, pour aller de la case D (départ) à la case (arrivée). Les déplacements utilisés sont exclusivement les suivants : ller d une case vers

Plus en détail

Exercices - Nombres complexes : corrigé. Formes algébriques et trigonométriques, module et argument

Exercices - Nombres complexes : corrigé. Formes algébriques et trigonométriques, module et argument Formes algébriques et trigonométriques, module et argument Exercice - - L/Math Sup - On multiplie le dénominateur par sa quantité conjuguée, et on obtient : Z = 4 i 3 + i 3 i 3 = 4 i 3 + 3 = + i 3. Pour

Plus en détail

Initiation à LabView : Les exemples d applications :

Initiation à LabView : Les exemples d applications : Initiation à LabView : Les exemples d applications : c) Type de variables : Créer un programme : Exemple 1 : Calcul de c= 2(a+b)(a-3b) ou a, b et c seront des réels. «Exemple1» nom du programme : «Exemple

Plus en détail

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

Exercices - Polynômes : corrigé. Opérations sur les polynômes Opérations sur les polynômes Exercice 1 - Carré - L1/Math Sup - Si P = Q est le carré d un polynôme, alors Q est nécessairement de degré, et son coefficient dominant est égal à 1. On peut donc écrire Q(X)

Plus en détail

1S Modèles de rédaction Enoncés

1S Modèles de rédaction Enoncés Par l équipe des professeurs de 1S du lycée Parc de Vilgénis 1S Modèles de rédaction Enoncés Produit scalaire & Corrigés Exercice 1 : définition du produit scalaire Soit ABC un triangle tel que AB, AC

Plus en détail

Baccalauréat ES Antilles Guyane 12 septembre 2014 Corrigé

Baccalauréat ES Antilles Guyane 12 septembre 2014 Corrigé Baccalauréat ES Antilles Guyane 12 septembre 2014 Corrigé EXERCICE 1 5 points Commun à tous les candidats 1. Réponse c : ln(10)+2 ln ( 10e 2) = ln(10)+ln ( e 2) = ln(10)+2 2. Réponse b : n 13 0,7 n 0,01

Plus en détail

1 Définition. 2 Systèmes matériels et solides. 3 Les actions mécaniques. Le système matériel : Il peut être un ensemble.un sous-ensemble..

1 Définition. 2 Systèmes matériels et solides. 3 Les actions mécaniques. Le système matériel : Il peut être un ensemble.un sous-ensemble.. 1 Définition GÉNÉRALITÉS Statique 1 2 Systèmes matériels et solides Le système matériel : Il peut être un ensemble.un sous-ensemble..une pièce mais aussi un liquide ou un gaz Le solide : Il est supposé

Plus en détail

Vision industrielle et télédétection - Détection d ellipses. Guillaume Martinez 17 décembre 2007

Vision industrielle et télédétection - Détection d ellipses. Guillaume Martinez 17 décembre 2007 Vision industrielle et télédétection - Détection d ellipses Guillaume Martinez 17 décembre 2007 1 Table des matières 1 Le projet 3 1.1 Objectif................................ 3 1.2 Les choix techniques.........................

Plus en détail

Cours IV Mise en orbite

Cours IV Mise en orbite Introduction au vol spatial Cours IV Mise en orbite If you don t know where you re going, you ll probably end up somewhere else. Yogi Berra, NY Yankees catcher v1.2.8 by-sa Olivier Cleynen Introduction

Plus en détail

Baccalauréat ES/L Métropole La Réunion 13 septembre 2013 Corrigé

Baccalauréat ES/L Métropole La Réunion 13 septembre 2013 Corrigé Baccalauréat S/L Métropole La Réunion 13 septembre 2013 Corrigé A. P. M.. P. XRCIC 1 Commun à tous les candidats Partie A 1. L arbre de probabilité correspondant aux données du problème est : 0,3 0,6 H

Plus en détail

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

TD3: tableaux avancées, première classe et chaînes TD3: tableaux avancées, première classe et chaînes de caractères 1 Lestableaux 1.1 Élémentsthéoriques Déclaration des tableaux Pour la déclaration des tableaux, deux notations sont possibles. La première

Plus en détail

Baccalauréat L spécialité, Métropole et Réunion, 19 juin 2009 Corrigé.

Baccalauréat L spécialité, Métropole et Réunion, 19 juin 2009 Corrigé. Baccalauréat L spécialité, Métropole et Réunion, 19 juin 2009 Corrigé. L usage d une calculatrice est autorisé Durée : 3heures Deux annexes sont à rendre avec la copie. Exercice 1 5 points 1_ Soit f la

Plus en détail

Statistiques Descriptives à une dimension

Statistiques Descriptives à une dimension I. Introduction et Définitions 1. Introduction La statistique est une science qui a pour objectif de recueillir et de traiter les informations, souvent en très grand nombre. Elle regroupe l ensemble des

Plus en détail

Excel Avancé. Plan. Outils de résolution. Interactivité dans les feuilles. Outils de simulation. La valeur cible Le solveur

Excel Avancé. Plan. Outils de résolution. Interactivité dans les feuilles. Outils de simulation. La valeur cible Le solveur Excel Avancé Plan Outils de résolution La valeur cible Le solveur Interactivité dans les feuilles Fonctions de recherche (ex: RechercheV) Utilisation de la barre d outils «Formulaires» Outils de simulation

Plus en détail

La programmation linéaire : une introduction. Qu est-ce qu un programme linéaire? Terminologie. Écriture mathématique

La programmation linéaire : une introduction. Qu est-ce qu un programme linéaire? Terminologie. Écriture mathématique La programmation linéaire : une introduction Qu est-ce qu un programme linéaire? Qu est-ce qu un programme linéaire? Exemples : allocation de ressources problème de recouvrement Hypothèses de la programmation

Plus en détail

Optimisation non linéaire Irène Charon, Olivier Hudry École nationale supérieure des télécommunications

Optimisation non linéaire Irène Charon, Olivier Hudry École nationale supérieure des télécommunications Optimisation non linéaire Irène Charon, Olivier Hudry École nationale supérieure des télécommunications A. Optimisation sans contrainte.... Généralités.... Condition nécessaire et condition suffisante

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

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

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

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

Plus en détail

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

Exercices sur le chapitre «Probabilités»

Exercices sur le chapitre «Probabilités» Arnaud de Saint Julien - MPSI Lycée La Merci 2014-2015 1 Pour démarrer Exercices sur le chapitre «Probabilités» Exercice 1 (Modélisation d un dé non cubique) On considère un parallélépipède rectangle de

Plus en détail

Fonction inverse Fonctions homographiques

Fonction inverse Fonctions homographiques Fonction inverse Fonctions homographiques Année scolaire 203/204 Table des matières Fonction inverse 2. Définition Parité............................................ 2.2 Variations Courbe représentative...................................

Plus en détail

Note de cours. Introduction à Excel 2007

Note de cours. Introduction à Excel 2007 Note de cours Introduction à Excel 2007 par Armande Pinette Cégep du Vieux Montréal Excel 2007 Page: 2 de 47 Table des matières Comment aller chercher un document sur CVMVirtuel?... 8 Souris... 8 Clavier

Plus en détail

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

Bases de programmation. Cours 5. Structurer les données Bases de programmation. Cours 5. Structurer les données Pierre Boudes 1 er décembre 2014 This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License. Types char et

Plus en détail

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

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

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

Plus en détail

Baccalauréat ES Amérique du Nord 4 juin 2008

Baccalauréat ES Amérique du Nord 4 juin 2008 Baccalauréat ES Amérique du Nord 4 juin 2008 EXERCICE 1 Commun à tous les candidats f est une fonction définie sur ] 2 ; + [ par : 4 points f (x)=3+ 1 x+ 2. On note f sa fonction dérivée et (C ) la représentation

Plus en détail

La classification automatique de données quantitatives

La classification automatique de données quantitatives La classification automatique de données quantitatives 1 Introduction Parmi les méthodes de statistique exploratoire multidimensionnelle, dont l objectif est d extraire d une masse de données des informations

Plus en détail

Définitions. Numéro à préciser. (Durée : )

Définitions. Numéro à préciser. (Durée : ) Numéro à préciser (Durée : ) On étudie dans ce problème l ordre lexicographique pour les mots sur un alphabet fini et plusieurs constructions des cycles de De Bruijn. Les trois parties sont largement indépendantes.

Plus en détail

Mathématiques financières

Mathématiques financières Mathématiques financières Table des matières 1 Intérêt simple 1 1.1 Exercices........................................ 1 2 Intérêt composé 2 2.1 Taux nominal, taux périodique, taux réel.......................

Plus en détail

BACCALAUREAT GENERAL MATHÉMATIQUES

BACCALAUREAT GENERAL MATHÉMATIQUES BACCALAUREAT GENERAL FEVRIER 2014 MATHÉMATIQUES SERIE : ES Durée de l épreuve : 3 heures Coefficient : 5 (ES), 4 (L) 7(spe ES) Les calculatrices électroniques de poche sont autorisées, conformement à la

Plus en détail

Les nombres entiers. Durée suggérée: 3 semaines

Les nombres entiers. Durée suggérée: 3 semaines Les nombres entiers Durée suggérée: 3 semaines Aperçu du module Orientation et contexte Pourquoi est-ce important? Dans le présent module, les élèves multiplieront et diviseront des nombres entiers concrètement,

Plus en détail

CORRECTION EXERCICES ALGORITHME 1

CORRECTION EXERCICES ALGORITHME 1 CORRECTION 1 Mr KHATORY (GIM 1 A) 1 Ecrire un algorithme permettant de résoudre une équation du second degré. Afficher les solutions! 2 2 b b 4ac ax bx c 0; solution: x 2a Solution: ALGORITHME seconddegré

Plus en détail

Mesures et incertitudes

Mesures et incertitudes En physique et en chimie, toute grandeur, mesurée ou calculée, est entachée d erreur, ce qui ne l empêche pas d être exploitée pour prendre des décisions. Aujourd hui, la notion d erreur a son vocabulaire

Plus en détail

ÉVALUATION EN FIN DE CM1. Année scolaire 2014 2015 LIVRET DE L'ÉLÈVE MATHÉMATIQUES

ÉVALUATION EN FIN DE CM1. Année scolaire 2014 2015 LIVRET DE L'ÉLÈVE MATHÉMATIQUES ÉVALUATION EN FIN DE CM1 Année scolaire 2014 2015 LIVRET DE L'ÉLÈVE MATHÉMATIQUES NOM :....... Prénom :....... Né le :./../ École :............ Classe : Domaine Score de réussite NOMBRES ET CALCUL GÉOMÉTRIE

Plus en détail

Feuille d exercices 2 : Espaces probabilisés

Feuille d exercices 2 : Espaces probabilisés Feuille d exercices 2 : Espaces probabilisés Cours de Licence 2 Année 07/08 1 Espaces de probabilité Exercice 1.1 (Une inégalité). Montrer que P (A B) min(p (A), P (B)) Exercice 1.2 (Alphabet). On a un

Plus en détail

Enoncé et corrigé du brevet des collèges dans les académies d Aix- Marseille, Montpellier, Nice Corse et Toulouse en 2000. Énoncé.

Enoncé et corrigé du brevet des collèges dans les académies d Aix- Marseille, Montpellier, Nice Corse et Toulouse en 2000. Énoncé. Enoncé et corrigé du brevet des collèges dans les académies d Aix- Marseille, Montpellier, Nice Corse et Toulouse en 2000. Énoncé. I- ACTIVITES NUMERIQUES (12 points) Exercice 1 (3 points) On considère

Plus en détail

La fonction exponentielle

La fonction exponentielle DERNIÈRE IMPRESSION LE 2 novembre 204 à :07 La fonction exponentielle Table des matières La fonction exponentielle 2. Définition et théorèmes.......................... 2.2 Approche graphique de la fonction

Plus en détail

Angles orientés et fonctions circulaires ( En première S )

Angles orientés et fonctions circulaires ( En première S ) Angles orientés et fonctions circulaires ( En première S ) Dernière mise à jour : Jeudi 01 Septembre 010 Vincent OBATON, Enseignant au lycée Stendhal de Grenoble (Année 006-007) Lycée Stendhal, Grenoble

Plus en détail

Gestion distribuée (par sockets) de banque en Java

Gestion distribuée (par sockets) de banque en Java Gestion distribuée (par sockets) de banque en Java Université Paris Sud Rappel sur la solution locale de gestion simple de banque L objet de cet exercice était de créer une application java qui implante

Plus en détail

CM2B Ste Marthe NOMBRES CROISES

CM2B Ste Marthe NOMBRES CROISES CMB Ste Marthe NOMBRES CROISES Règles Les nombres croisés sont des grilles à remplir en suivant les instructions. Les consignes ne sont données que pour les nombres à plus de deux chiffres. Si plusieurs

Plus en détail