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



Documents pareils
Bien lire l énoncé 2 fois avant de continuer - Méthodes et/ou Explications Réponses. Antécédents d un nombre par une fonction

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

avec des nombres entiers

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

CORRECTION EXERCICES ALGORITHME 1

Licence Sciences et Technologies Examen janvier 2010

Sub CalculAnnuite() Const TITRE As String = "Calcul d'annuité de remboursement d'un emprunt"

Rappels sur les suites - Algorithme

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

La fonction exponentielle

Introduction à l étude des Corps Finis

Programmation linéaire

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

Présentation du langage et premières fonctions

Université Paris-Dauphine DUMI2E 1ère année, Applications

DUT Techniques de commercialisation Mathématiques et statistiques appliquées

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

Complément d information concernant la fiche de concordance

De même, le périmètre P d un cercle de rayon 1 vaut P = 2π (par définition de π). Mais, on peut démontrer (difficilement!) que

Leçon N 4 : Statistiques à deux variables

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

Seconde Généralités sur les fonctions Exercices. Notion de fonction.

Algorithme. Table des matières

4. Les structures de données statiques

Correction de l examen de la première session

Pour l épreuve d algèbre, les calculatrices sont interdites.

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

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

Correction TD algorithmique

Les équations différentielles

Correction du Baccalauréat S Amérique du Nord mai 2007

Définition 0,752 = 0,7 + 0,05 + 0,002 SYSTÈMES DE NUMÉRATION POSITIONNELS =

Quelques tests de primalité

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

Bac Blanc Terminale ES - Février 2011 Épreuve de Mathématiques (durée 3 heures)

BACCALAURÉAT GÉNÉRAL SESSION 2012 OBLIGATOIRE MATHÉMATIQUES. Série S. Durée de l épreuve : 4 heures Coefficient : 7 ENSEIGNEMENT OBLIGATOIRE

Corrigé des TD 1 à 5

Maple: premiers calculs et premières applications

Continuité et dérivabilité d une fonction

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

alg - Classes, instances, objets [oo] Exercices résolus

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

Correction du baccalauréat ES/L Métropole 20 juin 2014

L ALGORITHMIQUE. Algorithme

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

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

Fonction inverse Fonctions homographiques

Probabilités Loi binomiale Exercices corrigés

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

DOCM Solutions officielles = n 2 10.

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

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

108y= 1 où x et y sont des entiers

V- Manipulations de nombres en binaire

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

Cours d arithmétique Première partie

Initiation à l algorithmique

Plus courts chemins, programmation dynamique

3 Approximation de solutions d équations

Chapitre VI - Méthodes de factorisation

Arithmétique binaire. Chapitre. 5.1 Notions Bit Mot

Nombre dérivé et tangente

Résolution d équations non linéaires

t 100. = 8 ; le pourcentage de réduction est : 8 % 1 t Le pourcentage d'évolution (appelé aussi taux d'évolution) est le nombre :

Calculer avec Sage. Revision : 417 du 1 er juillet 2010

introduction Chapitre 5 Récursivité Exemples mathématiques Fonction factorielle ø est un arbre (vide) Images récursives

Représentation des Nombres

Optimisation, traitement d image et éclipse de Soleil

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits

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

PROBLEMES D'ORDONNANCEMENT AVEC RESSOURCES

Chapitre 6. Fonction réelle d une variable réelle

Taux d évolution moyen.

BACCALAURÉAT PROFESSIONNEL ÉPREUVE DE MATHEMATIQUES. EXEMPLE DE SUJET n 2

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

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

LE PROBLEME DU PLUS COURT CHEMIN

Découverte du logiciel ordinateur TI-n spire / TI-n spire CAS

chapitre 4 Nombres de Catalan

F7n COUP DE BOURSE, NOMBRE DÉRIVÉ

Fibonacci et les paquerettes

Notion de fonction. Résolution graphique. Fonction affine.

Continuité en un point

Sur certaines séries entières particulières

Probabilités sur un univers fini

Algorithmique avec Algobox

Atelier C TIA Portal CTIA04 : Programmation des automates S7-300 Opérations numériques

EXERCICES - ANALYSE GÉNÉRALE

1 Recherche en table par balayage

NOMBRES COMPLEXES. Exercice 1 :

Complexité. Licence Informatique - Semestre 2 - Algorithmique et Programmation

ÉPREUVE COMMUNE DE TIPE Partie D

U102 Devoir sur les suites (TST2S)

C++ - Classes, instances, objets [oo] Exercices résolus

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

Solutions du chapitre 4

TOUT CE QU IL FAUT SAVOIR POUR LE BREVET

TD1 Signaux, énergie et puissance, signaux aléatoires

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

Exercices - Fonctions de plusieurs variables : corrigé. Pour commencer

Transcription:

Master Sciences, Technologies, Santé Mention Mathématiques, spécialité Enseignement des mathématiques Algorithmique et graphes, thèmes du second degré Feuille TD n 1 Exercices d algorithmique éléments de correction Exercice 1. Résolution d une équation du 1 er degré Écrire un algorithme permettant de résoudre une équation à coefficients réels de la forme ax + b = 0 (a et b seront entrés au clavier). Réponse. L algorithme est le suivant : Algorithme equationpremierdegré # cet algorithme résout une équation de la forme ax + b = 0 # a et b sont entrés au clavier. variables a, b : réels Entrer ( a, b ) # résolution de l équation # cas où a = 0 si ( a = 0 ) alors si ( b = 0 ) alors Afficher ( "Tous les réels sont solution" ) sinon Afficher ( "Pas de solution" ) # cas où a 0 sinon Afficher ( -b / a ) Exercice 2. Minimum de trois nombres Écrire un algorithme permettant d afficher le plus petit de trois nombres entrés au clavier. Réponse. Un algorithme possible est le suivant : si a est plus petit que b, il suffit de comparer a à c sinon, il faut comparer b à c : Algorithme minimumtroisnombres # cet algorithme permet d afficher le plus petit de trois nombres # entrés au clavier. variables a, b, c : entiers naturels Entrer ( a, b, c ) # comparaisons si ( a < b ) alors si ( a < c ) alors Afficher ( a ) sinon Afficher ( c ) sinon si ( b < c )

alors Afficher ( b ) sinon Afficher ( c ) Exercice 3. Durée d un vol d avion Écrire un algorithme permettant de calculer la durée d un vol d avion, connaissant l horaire de départ (heures et minutes) et l horaire d arrivée (heures et minutes), sans convertir les horaires en minutes. On suppose que le vol dure moins de 24 heures. Réponse. On effectue le calcul sans tenir compte des valeurs et on ajuste le cas échéant. L algorithme est alors le suivant : Algorithme duréevolavionsansconversion # cet algorithme permet de calculer la durée d un vol d avion # sans convertir les horaires de départ et d arrivée en minutes. variables h_depart, m_depart, h_arrivee, m_arrivee : entiers naturels h_duree, m_duree : entiers naturels Entrer ( h_depart, m_depart, h_arrivee, m_arrivee ) # calcul de la durée h_duree h_arrivee h_depart m_duree m_arrivee m_depart # on rectifie les minutes si nécessaire si ( m_durée < 0 ) alors m_duree 60 + m_duree h_duree = h_duree - 1 # on rectifie les heures si nécessaire si ( h_duree < 0 ) alors h_duree = 24 + h_duree Afficher ( h_duree, m_duree ) Exercice 4. Lecture d algorithme Que fait l algorithme suivant? Algorithme mystèreboucle2 # c est à vous de trouver ce que fait cet algorithme variables a, b, c : entiers naturels Entrer ( a, b ) # initialisation et calculs c 1 tantque ( b 0 ) si ( ( b mod 2 ) = 1 ) alors c c * a a a * a b b div 2 _tantque Afficher ( c )

Réponse. Cet algorithme calcule la valeur de a élevé à la puissance b (exponentiation rapide). Cet algorithme utilise le même principe que le précédent : cette fois, c est la décomposition binaire de b qui est utilisée. La variable a, elle, prend successivement les valeurs a, a 2, a 4, a 8, etc. Lorsqu un tour de boucle correspond à un 1 dans la décomposition binaire de b, la variable c «cumule par produit» la puissance correspondante de a. Ainsi, pour b = 21 = 2 4 + 2 2 + 2 0, la variable c vaudra alement a * a 4 * a 16 = a 1+4+16 = a 21 = a b. Cet algorithme calcule donc la valeur de a à la puissance b, ce que l on peut aisément vérifier en le faisant tourner sur un (petit) exemple Exercice 5. Afficher les diviseurs d un entier Écrire un algorithme permettant d afficher les diviseurs d un entier naturel par ordre croissant. Réponse. La boucle Pour vient encore à notre rescousse ici (notons qu il est inutile cependant de parcourir l intervalle [n/2 + 1, n]). Attention, si n = 0, tous les entiers divisent n!... L algorithme est le suivant : Algorithme diviseursordrecroissant # cet algorithme permet d afficher les diviseurs d un entier naturel # par ordre croissant variables n, diviseur : entiers naturels # cas où n est nul si ( n = 0 ) alors Afficher ( "Tous les entiers non nuls sont diviseurs de 0" ) # cas général sinon # boucle de parcours, si diviseur divise n, on l affiche pour diviseur de 1 à n div 2 si ( n mod diviseur = 0 ) alors Afficher ( diviseur ) _pour Afficher ( n ) Exercice 6. Nombre premier Écrire un algorithme permettant de déterminer si un entier naturel entré au clavier est premier. Réponse. Il suffit de chercher un diviseur de n dans l intervalle [2,RacineCarrée(n)]. Dès qu un tel diviseur est trouvé, le nombre n n est pas premier. On utilisera donc la structure tantque qui permet d arrêter la recherche dès qu un diviseur est découvert. L algorithme est le suivant : Algorithme nombrepremier # cet algorithme permet de déterminer si un entier naturel entré au clavier # est premier variables n, diviseur : entiers naturels rac : réel

rac RacineCarrée ( n ) diviseur 2 # fonction racine carrée # boucle de recherche d un diviseur tantque ( ( n mod diviseur 0 ) et ( diviseur rac ) ) diviseur diviseur + 1 _tantque si ( diviseur > rac ) alors Afficher ( "Le nombre est premier" ) sinon Afficher ( "Le nombre n est pas premier" ) Exercice 7. Nombres premiers jumeaux inférieurs à 1000 Deux nombres premiers sont jumeaux si leur différence vaut 2 (par exemple, 5 et 7 sont deux nombres premiers jumeaux). Écrire un algorithme permettant d afficher tous les couples de nombres premiers jumeaux inférieurs à 1000. Réponse. Il suffit de modifier l algorithme précédent, en mémorisant le dernier nombre premier trouvé. On obtient alors : Algorithme nombrespremiersjumeaux # cet algorithme permet d afficher la liste de tous les nombres premiers # inférieurs à 100 variables i, n, nprec, diviseur : entiers naturels rac : réel # initialisation nprec 2 # boucle principale pour i de 3 à 999 _pour rac RacineCarrée ( n ) diviseur 2 # fonction racine carrée # boucle de recherche d un diviseur tantque ( ( n mod diviseur 0 ) et ( diviseur rac ) ) diviseur diviseur + 1 _tantque # si n premier si ( diviseur rac ) alors # jumeau avec nprec? si ( n nprec = 2 ) alors Afficher ( nprec, n ) # on met à jour nprec nprec n Exercice 8. Calcul du n ième nombre de Fibonnacci Écrire un algorithme permettant de calculer le nombre de Fibonacci F(n) : F(0) = 0, F(1) = 1, et F(n) = F(n-1) + F(n-2). Réponse. On mémorise les valeurs de F(n) et F(n-1), que l on maintient à jour au fur et à mesure de l avancée du calcul

L algorithme est le suivant : Algorithme nombrefibonacci # cet algorithme permet de calculer le nombre de Fibonacci F(n) variables n, i, fibo, moins1 : entiers naturels fibo 1 moins1 0 # test si cas simple ( n = 0 ) si ( n = 0 ) alors Afficher ( 0 ) sinon # boucle de calcul pour le cas général pour i de 2 à n fibo fibo + moins1 moins1 fibo moins1 _pour Afficher ( fibo ) Remarquons ici les opérations du corps de boucle pour : nous nous sommes permis d utiliser un artifice évitant l utilisation d une variable supplémentaire. Si nous avons effectué par exemple 3 tours de boucles, nous avons moins1 = 2 et fibo = 3 (on a calculé F(4)). Au 4 ème tour, nous faisons fibo 3 + 2 = 5, puis moins1 5 2 = 3, ce qui est bien correct.