Exemples d'utilisation de BMF


Sommaire :


  1. Une activité d'initiation à BMF
  2. Il s'agit ici d'utiliser un programme BMF pour résoudre un problème de mathématiques. Le programme écrit sera donc effectivement utilisé pour donner une réponse à ce problème qui devra avoir pour qualité de ne pas pouvoir être résolu trop simplement par d'autres moyens pour un élève de collège.
    L'apprentissage du langage se fait en écrivant des versions du programme de plus en plus évoluées.

    Enoncé du problème

    Enoncé
    Calculer l'arête d'un cube dont le volume est 2.

    Mode de résolution
    On cherche la solution en effectuant des essais successifs : on propose une valeur pour l'arête, on calcule le volume correspondant, on compare à la valeur demandée et on recommence avec une nouvelle valeur.
    La calculatrice sera utilisée dans un premier temps.

    Intérêt de l'ordinateur
    Le travail effectué est répétitif. On est amené à écrire plusieurs fois le même nombre. Pour automatiser cette recherche on utilisera l'ordinateur.

    Fonctionnement d'un programme

    Il s'agit du petit exposé fait aux élèves avant de les emmener en salle informatique pour utiliser BMF la première fois.

    Schéma général
    Un programme se composera de trois parties : introduction de données, traitement des données et affichage des résultats.
    Dans notre exemple, cela se traduit par : attendre l'introduction d'une valeur qui sera l'arête du cube, calculer le volume, afficher le volume.

    Le langage BMF
    Le programme doit être traduit dans un langage compréhensible par l'ordinateur. Nous allons utiliser le langage BMF. Notre programme sera donc formé d'une suite d'instructions élémentaires de BMF.

    Ecriture du premier programme

    La première version
    Les variables
    Notre programme utilisera 2 variables : A pour l'arête du cube et V pour le volume du cube.
    Le programme
    Le programme se compose de 3 lignes :
    
    Lire A
    V=A*A*A
    Ecrire V
    

    Déroulement du programme
    Utilisation du programme
    Pour lancer le programme on appuie sur la touche F9 ou on utilise l'instruction BMFCalc du menu Outils de l'éditeur Le programme est lancé, on voit un simple curseur clignoter à l'écran. On entre une valeur de l'arête du cube et on lit le volume affiché.

    Premières améliorations

    Notre premier programme est très court, mais il offre peu d'avantages par rapport à la calculatrice. Il faut toujours introduire des nombres puis en lire d'autres sans indication sur leur sens. De plus, il faut sans cesse relancer le programme.
    Voyons comment améliorer cette situation.

    Introduction de messages
    Avant de demander l'entrée d'une valeur nous allons provoquer l'affichage d'un message d'invite. On utilisera de nouveau l'instruction Lire, mais en insérant le message d'invite avant le nom de la variable :
    
    Lire "Entrer la valeur de l'arête du cube : " A
    
    Le message doit être entre guillemets pour ne pas être interprété comme une variable.
    De même, avant l'affichage du volume, on pourra introduire un message avec la ligne de programme :
    
    Ecrire "Le volume du cube est : " V
    


    Boucle perpétuelle
    Lorsque le volume est calculé, notre premier programme se termine. Pour automatiser la répétition de son exécution on utilisera la nouvelle instruction Recommence.

    Le nouveau programme
    
    Lire "Entrer la valeur de l'arête du cube " A
    V=A*A*A
    Ecrire "Le volume du cube est : " V
    Recommence
    


    Utilisation
    On ne lance le programme qu'une seule fois. Il suffit ensuite de choisir les valeurs de l'arête du cube et de lire les volumes calculés.
    On arrête le programme en appuyant sur Entrée sans introduire de données ou en appuyant sur Echap.

    Conclusion
    A ce stade nous avons un programme qui permet de résoudre le problème posé à condition de proposer des valeurs judicieuses pour l'arête. Son utilisation va permettre de définir une stratégie de résolution qui sera traduite en un nouveau programme plus performant.

    Utiliser une boucle de calcul

    L'idée
    Au lieu d'effectuer un seul calcul par valeur fournie, notre programme va effectuer des séries de 10 calculs. Il suffira de lui fournir un pas de calcul qu'il ajoutera 10 fois à la valeur initialement choisie. Pour mettre cette stratégie en oeuvre nous utiliserons une boucle qui sera obtenue en marquant son point de départ et en testant la valeur d'un compteur.
    Deux nouvelles variables vont apparaître dans le programme : I qui sera un compteur pour la boucle et Pas qui contiendra le pas de calcul.
    La marque de début de boucle se fait en utilisant l'instruction Marque suivie d'un nom. Le test du compteur s'effectue avec l'instruction Si .... Alors..... Le saut à la marque se fait avec l'instruction Rallier suivie du nom de la marque.

    Le texte du programme
    
    Lire "Valeur initiale de l'arête du cube : " A
    Lire "                     Pas de calcul : " Pas
    I=0
    Marque Boucle
    V=A*A*A
    Ecrire "Arête du cube : " A "   Volume du cube : " V
    A=A+Pas
    I=I+1
    Si I<10
    Rallier Boucle
    Ecrire ""
    Recommence
    


    Utilisation du programme
    On lance le programme. On indique ensuite 0 comme valeur de l'arête et 1 comme pas. Le programme affiche l'arête et le volume du cube pour les valeurs de l'arête allant de 0 à 9. On note la dernière valeur pour laquelle le volume est inférieur à 2. On réintroduit cette valeur avec cette fois un pas égal à 0,1 et on recommence. Les procédures de tatonnements sont simplifiées, mais on a encore besoin d'intervenir de façon raisonnée pour aboutir au résultat cherché.

    Version évoluée

    Pour terminer, on pourra encore automatiser le travail du programme en réduisant l'intervention de l'utilisateur à l'entrée du volume cherché. Pour cela on s'inspirera de la méthode précédente : chercher la dernière valeur de l'arête pour laquelle le volume est inférieur au résultat cherché, puis diviser le pas de calcul par 10. Le processus devra s'arrêter lorsque le pas deviendra inférieur à la précision recherchée. Aucune instruction nouvelle n'est utilisée, si ce n'est l'instruction Rem qui permet d'introduire des remarques. Celles-ci n'influent pas sur le déroulement du programme.

    Le texte du programme
    
    Ecrire "" 
    Ecrire "Calcul de l'arête d'un cube"
    Ecrire "==========================="
    Ecrire ""
    REM Entrée du volume et initialisation des variables
    Lire "Entrer le volume du cube : " Volume
    Lire "       Précision désirée : " Prec
    REM On commence avec la valeur 0 pour l'arête 
    REM et 1 pour le pas
    A = 0
    Pas = 1
    REM Calcul du volume et interprétation
    Marque Calcul
    V = A * A * A
    REM On vérifie si le résultat dépasse la valeur cherchée
    Si V > Volume 
    Alors Rallier Sup
    REM On passe à la valeur suivante en ajoutant le pas
    A = A + Pas
    REM On reprend le calcul
    Rallier Calcul
    REM Dépassement de la valeur cherchée
    Marque Sup
    REM On revient à la valeur précédente de l'arête
    A = A - Pas
    REM Si le pas est inférieur à la précision cherchée
    REM on a fini
    Si Pas < Prec 
    Alors Rallier Fin
    REM Le nouveau pas est 10 fois plus petit
    Pas = Pas / 10
    REM On reprend le calcul
    Rallier Calcul
    REM Affichage du résultat
    Marque Fin 
    Ecrire "           Arête du cube : " A
    Recommence
    


    Utilisation du programme
    On lance le programme. On indique le volume cherché, puis la précision désirée. Le programme donne, après quelques instants, la valeur de l'arête.

    Autres améliorations possibles
    Le programme fonctionne maintenant de façon optimale. Il ne demande que 2 interventions de l'utilisateur. Il est possible de vérifier la validité de ces interventions. Le volume à chercher est-il positif ? La précision demandée n'est- elle pas illusoire ?

  3. Doublement du capital
  4. Enoncé

    On place 10000F à la Caisse d'Epargne au taux de 4,5%.
    Au bout de combien d'années le capital sera-t-il doublé ?
    Ce nombre dépend-il de la valeur initiale du capital ?

    Texte du programme

    
    Rem Doublement du capital
    Ecrire ""
    Ecrire "Doublement d'un capital placé à 4,5%"
    Ecrire "===================================="
    Ecrire ""
    Rem Entrée du capital initial
    Lire "Capital initial : " Initial
    Rem Initialisation du nombre d'années et du capital
    Rem calculé
    An=0
    Capital=Initial
    Rem Début de la boucle de calcul
    Marque Boucle
    Si Capital > 2*Initial
    Alors Rallier Fin
    Capital=Capital+Capital*4.5/100
    An=An+1
    Rallier Boucle
    Marque Fin
    Ecrire "Le capital a doublé après " An " années."
    Ecrire "Il a atteint la valeur " Capital "F"
    Recommence
    

    Utilisation du programme

    Lorsque le programme est lancé, il affiche un titre puis demande la valeur du capital initial. Lorsque celle-ci est validée avec la touche Entrée, le programme affiche le nombre d'années nécessaires au doublement du capital, ainsi que la valeur atteinte. On recommence ensuite avec un nouveau capital initial.
    On constate immédiatement que le nombre d'années nécessaires pour doubler le capital est indépendant de la valeur initiale. Cela peut fournir une bonne entrée en matière pour une activité sur les pourcentages et les puissances.

  5. Calcul d'une racine carrée avec BMF
  6. Il est possible de calculer la racine carrée d'un nombre en utilisant une démarche similaire à celle présentée pour le calcul de la racine cubique de 2. Nous utiliserons ici une autre méthode classique.

    La méthode de calcul

    Soit à calculer la racine carrée de S, c'est à dire le côté d'un carré d'aire S. Nous allons nous approcher de ce carré en utilisant des rectangles dont l'aire est aussi égale à S.
    Notre premier rectangle aura une dimension a égale à 1, et l'autre b sera par conséquent égale à S. Le côté du carré cherché se trouve entre a et b. Nous allons donc construire un second rectangle dont les dimensions seront entre a et b. Pour cela il suffira de prendre la moyenne entre a et b comme première dimension et le quotient de S par cette moyenne comme seconde dimension. La différence entre les deux dimensions a été réduite, on s'est donc approché du carré cherché. Mais, comme le côté de ce carré se trouve encore entre a et b, il est possible de réitérer le processus en calculant un nouveau rectangle encore plus proche du carré.
    On démontre que ce processus permet de s'approcher très rapidement du carré cherché avec une précision aussi grande qu'on le désire. Nous allons le mettre en oeuvre dans le programme qui suit.

    Texte du programme

    
    Rem Calcul d'une racine carrée
    Rem Utilisation d'une suite de rectangle
    Ecrire ""
    Ecrire "Calcul de la racine carrée de X." 
    Ecrire "================================"
    Marque XPositif
    Ecrire ""
    Lire "Entrer la valeur de X : " X
    Rem Vérifions que X est positif
    Si X>=0
    alors Rallier Suite
    Ecrire "X doit être supérieur à 0."
    Rallier XPositif
    Marque Suite
    Rem A contient la 1ère dimension du rectangle qui
    Rem sera aussi la réponse fournie
    A=0
    Rem Si X=0 la réponse est 0
    Si X=0
    alors Rallier Fin
    Rem 1ère dimension du premier rectangle
    A=1
    Marque Encore
    Ecrire A
    B=(A+X/A)/2
    Rem si A et B sont assez proches on arrête le
    Rem processus
    SI abs(A-B)<1E-6
    ALORS Rallier Fin
    Rem Pour le rectangle suivant c'est la moyenne
    Rem contenue dans B qui sera la 1ère dimension 
    A=B
    Rallier Encore
    Marque Fin
    Ecrire "La racine carrée de " X " est " A
    Recommence
    


Voir aussi :