bonjour,
alors voilà le problème, je dois écrire un algorithme, plus précisément une procédure Maple pour remplir un carré dont la dimension n est impaire.
je suis pas très bon en informatique mais j'ai un ami qui avait déjà eu à répondre à cette question, qui a bien voulu me donner sa procédure qui est la suivante:
> carre := proc (n) local i, j, k, A; A := matrix(n, n, 0); i := (1/2)*n-1/2; j := (1/2)*n+1/2; for k from 0 to n^2-1 do if irem(i, n) = 0 and irem(j, n) <> 0 then if A[n, irem(j, n)] = 0 then A[n, irem(j, n)] := k+1; i := n+1; j := irem(j, n)+1 else if irem(j, n) <> 1 then A[1, irem(j, n)-1] := k+1; i := 2; j := irem(j, n) else A[1, n] := k+1; i := 2; j := 1 end if end if elif irem(i, n) <> 0 and irem(j, n) = 0 then if A[irem(i, n), n] = 0 then A[irem(i, n), n] := k+1; i := irem(i, n)+1; j := 1 else if irem(i, n)+2 <> n+1 then A[irem(i, n)+1, n-1] := k+1; i := irem(i, n)+2; j := n else A[irem(i, n)+1, n-1] := k+1; i := 1; j := n end if end if elif irem(i, n) = 0 and irem(j, n) = 0 then if A[n, n] = 0 then A[n, n] := k+1; i := 1; j := 1 else A[1, n-1] := k+1; i := n+2; j := n end if else if A[irem(i, n), irem(j, n)] = 0 then A[irem(i, n), irem(j, n)] := k+1; i := irem(i, n)+1; j := irem(j, n)+1 else if irem(j, n) <> 1 then A[irem(i, n)+1, irem(j, n)-1] := k+1; i := irem(i, n)+2; j := irem(j, n) else A[irem(i, n)+1, n] := k+1; i := irem(i, n)+2; j := 1 end if end if end if end do; print(evalm(A)) end proc;
mais voilà il y a un hic car avec cette procédure j'obtiens un carré dont les valeurs "descendent" (voir image): ici le 2 et en bas à droite du 1 alors que moi je voudrais plutôt que le 2 soit en haut à droite du 1,etc...
merci de votre aide