• Aucun résultat trouvé

Énoncé On définit une procédure

N/A
N/A
Protected

Academic year: 2022

Partager "Énoncé On définit une procédure"

Copied!
2
0
0

Texte intégral

(1)

Informatique MPSI B Hoche

Énoncé

On définit une procédureboustrophedonpar le code Maple suivant boustrophedon := proc(n)

local B,i,j;

B:= array(0..n,0..n);

for i from 0 to n do for j from 0 to n do

B[i,j] := 0;

od;

od;

B[0,0] :=1;

for i from 1 to n do if i mod 2 = 1 then

j:=1;

while j<= i do

B[i,j] := B[i-1,j-1] + B[i,j-1];

j:= j+1;

od;

else j:=i-1;

while j>= 0 do

B[i,j] := B[i-1,j] + B[i,j+1];

j:= j-1;

od;

fi;

od;

return(eval(B));

end proc:

1. On suppose que l’on a exécutéA:=boustrophedon(5). Former le tableau des valeursA[i,j]oùireprésente une ligne etjune colonne.

2. On définit une famille de nombreb(i, j) pouri∈Net j∈ {0,· · · , i}par : b(0,0) = 1

∀i∈N:

(iimpair ⇒b(i,0) = 0 ipair ⇒b(i, i) = 0

∀i∈N: i impair 0< j≤i )

⇒b(i, j) =b(i−1, j1) +b(i, j−1)

∀i∈N: ipair 0≤j < i )

⇒b(i, j) =b(i−1, j) +b(i, j+ 1)

Définir en code Maple une procédure récursive dont l’appel permet de ren- voyer unb(i, j). On ne demande pas ici de diagramme ou de langage usuel.

Cette création est mise à disposition selon le Contrat

Paternité-Pas d’utilisations commerciale-Partage des Conditions Initiales à l’Identique 2.0 France disponible en ligne http://creativecommons.org/licenses/by-nc-sa/2.0/fr/

1 Rémy Nicolai Aboustro

(2)

Informatique MPSI B Hoche

Corrigé

1. Le tableau est initialisé avec des valeurs nulles partout. Chaque ligne se construit à partir de la précédente, de gauche à droite pour les lignes impaires, de droite à gauche pour les lignes paires. Pour la ligne i, seules les valeurs dej entre 0 etisont modifiées. Après l’appel de la procédure on obtient les valeurs suivantes

i\j 0 1 2 3 4 5

0 1 0 0 0 0 0

1 0 1 0 0 0 0

2 1 1 0 0 0 0

3 0 1 2 2 0 0

4 5 5 4 2 0 0

5 0 5 10 14 16 16

2. On reconnait dans la définition de la familleb(i, j) les mêmes formules que dans la procédure boustrophedon. Il s’agit donc de former une procédure récursive produisant le même algorithme. Par exemple :

boustro_r := proc(i,j) if i=0 and j=0 then

return 1;

fi;

if i mod 2 = 1 and j=0 then return 0;

fi;

if i mod 2 =0 and j=i then return 0

fi;

if i mod 2 = 1 then

return boustro_r(i-1,j-1) + boustro_r(i,j-1);

fi;

if i mod 2 = 0 then

return boustro_r(i-1,j) + boustro_r(i,j+1);

fi;

end proc:

Cette création est mise à disposition selon le Contrat

Paternité-Pas d’utilisations commerciale-Partage des Conditions Initiales à l’Identique 2.0 France disponible en ligne http://creativecommons.org/licenses/by-nc-sa/2.0/fr/

2 Rémy Nicolai Aboustro

Références

Documents relatifs

Au second tour des élections régionales de 2004, la gauche devance la droite de 13 points et devient majoritaire en voix pour la première fois depuis 1988, tandis que l’extrême

Entoure en rouge les animaux qui se dirigent vers

[r]

Jeudi, jour de la plus grande récolte, elle cuit 16 kg de cerises avec 10 kg de sucre.. Samedi, fin de la récolte, elle cuit 5 kg de cerises avec 3 kg

Comme l'instrument permet de tracer des parallèles à une droite donnée passant par des points donnés, on est donc en mesure de transférer le rapport (1 5 )/2 sur n'importe

[r]

Illustrer avec des images découpées, le texte de l'histoire utilisant un vocabulaire spatial Associer chaque image au texte correspondant à la direction surveillée. e place les

[r]