Actualité de CaRMetal et DGPad

Bienvenue sur cette page d'accueil du site, organisée en blog des nouveautés de CaRMetal et DGPad.
En pratique, ce blog fait aussi office d'espace de ressources car il est indexé par le composant de recherche du site. Les utilisateurs sont invités à y présenter leurs productions.


N'hésitez pas à nous faire part de vos remarques sur le forum.
Bonne visite.

Remarques :

  • La partie importante de cet article concerne la représentation graphique d'une fonction définie par un algorithme.
  • Comme pour CaRMetal, on (= le développeur Eric Hackenholz) a fait le choix de ne pas autoriser le passage à un repère natif qui ne serait pas orthonormé (le passage à ce type de de repère pervertit les outils, l'outil cercle ne produisant plus un cercle, etc). Quand on veut utiliser un repère non orthonormé, la pratique recommandée est de créer un repère flottant (voir la partie 3)).

Résumé de l'épisode précédent :

Fin 2017, l'inspection générale recommandait

  • de ne plus mettre d'affichage dans les algorithmes
  • de ne plus mettre d'instruction d'entrée de données dans les algorithmes
  • de noter l'affectation par une flèche vers la gauche
  • de définir les variables dans l'énoncé, en dehors de l'algorithme, et d'y poser des questions comme «quelle est la valeur de telle variable à la fin de l'exécution de l'algorithme ?»

Cette recommandation a été peu suivie au BTS 2018 mais assez largement au bac 2018, comme on l'a vu dans cet article. Dans l'épisode d'aujourd'hui, on va voir dans quelle mesure la recommandation a été suivie lors de la session de septembre. Les algorithmes du bac seront rédigés avec l'outil pseudo-code de CaRMetal, lequel présente ces différences minimes par rapport à la rédaction directe de l'algorithme:

  • On bénéficie de la coloration syntaxique qui fournit, en quelque sorte, des sujets en couleur
  • Les algorithmes sont exécutables et on a, en prime, la réponse à la question, en plus du sujet en couleur
  • Les sous-structures (instructions répétées en boucle par exemple) sont indentées (reculées, en l'ocurrence, de 3 espaces) ce qui permet de considérer le pseudocode de CaRMetal comme une transition entre le pseudocode et Python, qui utilise une syntaxe similaire.

Introduction

Une caustique désigne une fille à l'humour corrosif, mais pas que.
Une caustique désigne aussi l'enveloppe des rayons lumineux subissant une réflexion ou une réfraction sur une surface ou une courbe.

Si la source lumineuse est ponctuelle et située à une distance finie, on parle de caustique au flambeau.
Si la source lumineuse se trouve à une distance infinie (flux de rayons parallèles), on parle de caustique au soleil.

Une caustique par réflexion est aussi appelée catacaustique, tandis qu'une caustique par réfraction est appelée diacaustique.

1) Construction d'une semi-néphroïde comme caustique de cercle au soleil

carmetal.org sera représenté aux Journées de l'APMEP de Bordeaux 2018.

A prévoir(si possible) :

  • Ordinateur portable avec CaRMetal 4.2.8 installé.
  • Si ordinateur portable Mac ou Linux, disposer d'une version installée de DGPad.
  • tablette (si pas de portable ou par préférence de l'utilisateur pour utiliser DGPad)

Cela dit, tout pourra être fait sur place si nécessaire. Les participants peuvent se contenter d'apporter un ordinateur portable.

Pitch de l'atelier

On a volontairement choisi des exemples simples.
En faire peu, mais le faire bien.

Fondamentalement, la tortue est un paradigme de déplacement (on avance et/ou on pivote) qui s’oppose au paradigme de déplacement repéré (la téléportation).
Il peut être implémenté dans n'importe quel langage de programmation (dès lors que l'on dispose d'une interface de sortie graphique).
On peut aussi implémenter la tortue en géométrie dynamique, et implémenter une tortue dynamique.
Qu'est-ce que l'on entend par là ?

1) Exemple du pentagramme dynamique

Plus précisément, on veut construire un pentagramme dynamique par rapport à deux points libres A et B.

Construction avec CaRMetal
Construction avec DGPad

2) Patron dynamique (dépliable) du cube

Construction avec CaRMetal
Construction avec DGPad

3) Courbe donnée par son équation intrinsèque (rayon de courbure)

Exemple des « courbes à rayon sinusoïdal » définies par R=a(b+cos(s/a)).
a et b sont des paramètres réels.

Construction avec CaRMetal
Construction avec DGPad

Pièce(s) jointe(s):
Télécharger ce fichier (apmep-atelier-tortue.pdf)apmep-atelier-tortue.pdf[support de travail pour l'atelier]175 Ko

carmetal.org sera représenté aux Journées de l'APMEP de Bordeaux 2018.

A prévoir (si possible)

  • Ordinateur portable avec CaRMetal 4.2.8 installé.
  • Si ordinateur portable Mac ou Linux, disposer d'une version installée de DGPad.
  • tablette (si pas de portable ou par préférence de l'utilisateur pour utiliser DGPad)

Cela dit, tout pourra être fait sur place si nécessaire. Les participants peuvent se contenter d'apporter un ordinateur portable.

Pitch de l'atelier

On a volontairement choisi des exemples simples.
En faire peu, mais le faire bien.

On appelle ici « programmation dynamique » une programmation qui intègre des éléments dynamiques et maintient des liaisons dynamiques (autrement dit dans le même sens que dans l'expression géométrie dynamique).
La programmation dynamique est un enjeu important de la programmation dans le cadre d’un espace de géométrie dynamique : le plus souvent on souhaite maintenir des liaisons dynamiques dans les objets construits par script (et le logiciel le permet).

Intérêts de la programmation dynamique

La programmation dans le cadre d’un espace de géométrie dynamique permet d’automatiser des taches de géométrie dynamique et d’obtenir des constructions complexes : on exploite le potentiel de la programmation dans le domaine de la géométrie dynamique.
Inversement (et simultanément) on exploite le potentiel de la géométrie dynamique pour développer des compétences de programmation : on travaille dans un espace familier de géométrie avec un retour visuel qui peut valider le programme.

Outils

Quand on programme dans le cadre d’un espace de géométrie dynamique on utilise un langage de programmation (typiquement Javascript ou Python) enrichi d’instructions de l’espace de géométrie dynamique utilisé.
Dans certains logiciels, une instruction particulière permet de traduire toute macro (outil personnalisé) en une instruction utilisable dans un script.
Dans certains logiciels (CaRMetal et DGPad), on dispose d’une tortue dynamique et on peut utiliser des instructions tortue dans les scripts.

TP à réaliser

1) programmation dynamique des racines d'une équation de degré 2

Présentation de l'algorithme (non dynamique) avec CaRMetal
Présentation d'une solution dynamique via l'interface
Présentation d'une solution dynamique par script
Présentation du problème du nommage
en autonomie : programmation dynamique de la somme et du produit des racines (avec nommage par le logiciel).

La surcouche Blockly : programmation dynamique des solutions avec DGPad.

Comment le faire avec Scratch?

2) Programmation dynamique de la suite définie par récurrence : \(u_{n+1} = p u_n^2 + q\), avec \(p\) et \(q\) des paramètres réels.

avec CaRMetal
avec DGPad

3) Programmation dynamique d'une spirale d'or 

Programmation non dynamique avec Scratch
Programmation dynamique avec une macro (CaRMetal)

Programmation dynamique avec la tortue dynamique (DGPad)

Pièce(s) jointe(s):
Télécharger ce fichier (apmep-atelier-progD.pdf)apmep-atelier-progD.pdf[support de travail pour l'atelier]194 Ko

Une rotation d’angle une fraction de l’angle plein peut être appelée une symétrie radiaire.
Une courbe invariante par une rotation d’angle 360/m est dite symétrique d’ordre m. On va voir comment en créer des versions dynamiques avec DGPad.

01 fig gen

(copie d'écran) figure dynamique par rapport à A, B, P1, P2, Q1, Q2 et k

Un pavage peut être caractérisé par le groupe d'isométries qui le conservent.
Il existe 17 types de pavages "périodiques" du plan. On entend par là qu'il existe 17 types de groupes d’isométries contenant un sous-groupe discret bidimensionnel de translations.
Cela
permet de classer tous les motifs bidimensionnels périodiques en fonction des isométries qui laissent ce motif invariant.

On va construire ces 17 types de pavages (et en donner une version dynamique) avec CaRMetal. On le fera en écrivant un programme général capable de construire un pavage dynamique à partir de chacune de 17 configurations initiales (les structures de maille).

maille p6m n

Dans cet article, on va "corriger" le sujet du Bac S donné en Métropole session juin 2018 avec CaRMetal et DGPad en illustrant graphiquement différentes parties.

Voir le sujet de l'épreuve

Exercice 1

On peut tracer la chaînette avec DGPad en utilisant son équation :

  1. On crée une nouvelle expression égale à (exp(x)+exp(-x)-2)/2
  2. DGPad reconnaît une formule de fonction et donne la possibilité de tracer sa courbe. On valide en appuyant sur le bouton correspondant.

courbe dgp

On obtient la courbe de la chaînette.