Deuxième séance d’algorithmique: les suites de figures
Table des matières
1 Proposition de scénario
- Durée de l’activité: 1h00-1h30.
- Objectif: Introduire la notion de fonction. Motiver la notion de boucle.
- Déroulement: Ce TP fait suite au précédent sur les figures téléphonées.
Après s’être approprié la notion de fonction, les élèves vont devoir écrire des fonctions puis les utiliser pour construire des suites de figures. Le TP se termine par une question qui légitimera l’introduction des boucles.
- Quelques remarques:
- L’enregistreur de programme de la Tortue Xcas facilite l’écriture des fonctions puisqu’un élève peut copier/coller la suite de consignes permettant la construction d’un carré.
- L’assistant d’Xcas est une aide précieuse pour l’écriture des première fonctions.
- Si la notion de polygone régulier n’a pas été vue en amont, il faudra trouver un moment pour en parler pendant le TP.
2 Des suites de Figures
L’Épisode précédent...
Lorsque nous avons construit pas à pas la figure ci-dessous, nous avons remarqué que des consignes se répétaient dans l’enregistreur de programme situé à droite:
efface; avance; tourne_gauche; avance; tourne_droite; avance; tourne_gauche; avance; tourne_droite; avance; tourne_gauche; avance; tourne_gauche; avance(20); tourne_gauche; avance; tourne_droite; avance; tourne_gauche; avance(20); tourne_gauche;
onload
Pour éviter toutes ces répétitions on aurait pu utiliser un programme.
-
Création d’un premier programme,
G()
, pour avancer et tourner à gauche.-
Avec Xcas
-
Appelle le nouveau programme G, supprime le contenu des cases "Arguments", "Variables locales" et "Valeur Renvoyée"
- Recopie le programme suivant:
- Clique sur Ok.
-
Appelle le nouveau programme G, supprime le contenu des cases "Arguments", "Variables locales" et "Valeur Renvoyée"
- Avec la Casio Graph 90+e
- Ouvrir l’éditeur si nécessaire (menu F6 Fich,Cfg puis 1 Nouveau script),
- Placer le curseur avant la commande
efface;
, taper sur les touches shift et PRGM, sélectionnerfonction def
pour insérer le code définissant une fonction. - Remplacer
f(x)
parG()
(pour saisir la lettre G taper sur la touche alpha rouge puis la touche de label rouge G). - En utilisant le menu tortue (raccourci clavier shift-QUIT) et
les touches ALPHA et F1 (pour
;
), insérer entre les deux ligneslocal j;
etreturn ;
1 les commandes
avance;
tourne_gauche();
- Déplacer le curseur après
efface;
et insérerG();
. L’écran doit ressembler à : - Tester (touches F6 1 ou shift-Ans)
- Avec Xcas pour Firefox
-
Cliquer dans la zone de saisie contenant
/* fonctions du script */
. (Rappel : cette zone apparait quand on clique sur le boutonProg
puisTortue
puisnouveau
). - Cliquer sur le bouton
fonct
. Il apparait alors un assistant Nouvelle fonction .... MettreG
comme nom de la fonction et enleverx
de la liste des arguments qui doit être vide. - Insérer entre les lignes
fonction G();
etffonction;
les commandesavance ;
ettourne_gauche ;
en cliquant sur les boutons av et tg. - Cliquez dans la deuxième zone de saisie commençant par la commande
efface;
, tapez la commandeG();
puis validez.
-
Cliquer dans la zone de saisie contenant
-
Avec Xcas
- Écris un programme "D()", qui permet d’avancer puis de tourner à droite
fonction G() avance; tourne_gauche; ffonction:; fonction D() avance; tourne_droite; ffonction:;
onload
On peut alors demander à Xcas d’exécuter une des suites de commandes suivante:
efface; G(); D(); G(); D(); G(); G(); avance(20); tourne_gauche; D(); G(); avance(20); tourne_gauche;
ou
efface; repete(2,G(),D()); repete(2,G()); avance(20); tourne_gauche; D(); G(); avance(20); tourne_gauche;
- Écris un programme qui s’appelle "Carré()" et qui construit un carré de côté 1 unité.
- Écris un programme qui s’appelle "Carré(L)", qui prend comme argument "L" et qui construit un carré de côté L unités lorsqu’il est exécuté.
- Écris un programme qui s’appelle "Hexagone()" et qui construit un hexagone régulier de côté 1 unité.
- Écris un programme qui s’appelle "Polygone(n,L)", qui prend comme argument "n" et "L" et qui construit un polygone régulier de n côtés de longueur L unités lorsqu’il est exécuté.
Des suites de figures
Construis les figures ci-dessous:
# def Carre(n): for j in range(4): avance n tourne_gauche efface for k in range(1,7): Carre(k*10)
onload
# def polyg(n,l): for j in range(n): avance l tourne_gauche 360/n efface for k in range(3,10): polyg(k,20)
onload
# efface for k in range(4): Carre(2**k*10)
onload
Nom :Prénom :Classe :
Compte-rendu
-
Recopie tes fonctions "Carré()" ,"Carré(L)", "Hexagone()" et "Polygone(n,L)".
-
Explique comment tu as procédé pour construire les suites de figures.
- Utiliserais-tu la même méthode pour construire une suite de 30 figures ou en privilégierais-tu une autre? Explique.
-
Explique comment tu as procédé pour construire les suites de figures.