Dans un parcours de graphe G=(X, ?), il arrive souvent que ...



TD10

Calcul numérique (avec Maple)

Licence 1 SMS Math Info, Math Physique 2005-2006

tableaux

Question 1 :

Ecrire la procédure de manière itérative et récursive, qui vérifie qu’un mot est un palindromes. Exemple de palindrome : « LAVAL », « ELU PAR CETTE CRAPULE »

palindrome := proc(s::string)

local pal ::boolean,

i ::integer,

iMax ::integer,

taille::integer;

i := 1;

pal := true;

taille := length(s);

iMax := floor(taille/2);

while ((i decalageGauche := proc(tab::array)

local i ::integer,

taille::integer;

taille := nops(convert(tab,'list')); #Le nops donne 1 sur un array

for i from 1 to taille-1

do

tab[i] := tab[i+1];

od:

tab[taille] := 0;

return tab;

end:

t := array([1, 2, 3, 4, 5]);

decalageGauche(t):

convert(t,'list');

[pic]

[pic]

Question 3 :

Ecrire la procédure qui effectue un décalage d’une case à droite d’un tableau d’entier.

> decalageDroite := proc(tab::array)

local i ::integer,

taille::integer;

taille := nops(convert(tab,'list')); #Le nops donne 1 sur un array

i:=taille;

while (i>1)

do

tab[i] := tab[i-1];

i:=i-1;

od:

tab[1] := 0;

return tab;

end:

t := array([1, 2, 3, 4, 5]);

decalageDroite(t):

convert(t,'list');

[pic]

[pic]

Question 4 :

Ecrire la procédure qui effectue la somme de tous les éléments d’une matrice.

sommeMat := proc(m::array)

local nbLi ::integer,

nbCo ::ineteger,

i ::integer,

j ::integer,

somme::numeric;

nbLi := nops(convert(m, 'listlist')); #Le nops donne 1 sur un array

nbCo := nops(convert(m,'listlist')[1]); #Le nops donne 1 sur un array

somme := 0;

for i from 1 to nbLi

do

for j from 1 to nbCo

do

somme := somme+m[i,j];

od:

od:

return somme;

end:

Question 5 : Sudoku

Le sudoku, est un jeu en forme de grille défini en 1979 et inspiré du carré latin ainsi que du problème des 36 officiers de Leonhard Euler. Le but du jeu est de remplir cette grille avec des chiffres allant de 1 à 9 en respectant certaines contraintes, quelques chiffres étant déjà disposés dans la grille. La grille de jeu est un carré de neuf cases de côté, subdivisé en autant de carrés identiques, appelés régions (voir figure). La règle du jeu est simple : chaque ligne, colonne et région ne doit contenir qu'une seule fois tous les chiffres de un à neuf. Formulé autrement, chacun de ces ensembles doit contenir tous les chiffres de un à neuf. Ci dessous, une grille de sudoku rempli.

On souhaite écrire une procédure qui vérifie qu’une grille de sudoku à bien été rempli. Pour ce faire :

a) Ecrire une procédure qui vérifie qu’une ligne d’une matrice est bien rempli.

b) Ecrire une procédure qui vérifie qu’une colonne d’une matrice est bien rempli.

c) Ecrire une procédure qui vérifie qu’une région est bien rempli.

d) Ecrire une procédure qui vérifie qu’une grille de sudoku est bien rempli.

verifLigne := proc(M::array, ligne::integer)

local correct::boolean,

nbCo ::integer,

coeff ::integer,

ens ::set,

colonne::integer;

nbCo := nops(convert(M,'listlist')[1]); #Le nops donne 1 sur un array

colonne := 1;

correct := true;

ens := NULL;

while (correct and (colonne ................
................

In order to avoid copyright disputes, this page is only a partial summary.

Google Online Preview   Download

To fulfill the demand for quickly locating and searching documents.

It is intelligent file search solution for home and business.

Literature Lottery

Related download