Forum de mathématiques - Bibm@th.net
Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
Pages : 1
#1 24-04-2013 20:20:38
- BIENVENU MABIKA
- Membre
- Inscription : 23-04-2013
- Messages : 5
[SCILA] écrire un fonction
bonsoir
j'ai un exercice que j'ai resolu et je voudrais savoir si je suis dans le bon chemin
EXERCICE:
soit n appartenant à N* ecrire une fonction qui à n associe la matrice A de taille nxn donnée par
Aij={i+J si i+j est pair
{0 sinon
tester pour differentes valeurs de n
mon programme:
function A=MAT(n,n);
A=zeros(n,n);
endfunction
A=zeros(n,n);
for i=1:n, for j=1:n, A(i,j)=i+j if(i+j=2*n)
else
A(i,j)=0
end
end
s'il ya des erreurs vous pouvez me mettre sur le bon chemin
Hors ligne
#2 24-04-2013 20:51:17
- yoshi
- Modo Ferox
- Inscription : 20-11-2005
- Messages : 17 385
Re : [SCILA] écrire un fonction
Salut,
Conseils :
1. Mettre une instruction par ligne : ça facilite ta relecture et la nôtre...
2. Essaie de respecter l'indentation via la balise code...
Ensuite tu écris : if (i+j=2*n)
1. Syntaxe fausse, il faut écrire if (i+j==2*n) (j'ai vérifié)
2. if (i+j==2*n) ne signifie pas : "si i+j est pair" mais "si i+j vaut le double de n".
Tu dois utiliser la fonction modulo (j'ai vérifié) :
if (modulo(i+j,2)==0)
Un nombre pair s'il est congru à 0 modulo 2, c'est à dire si le reste de ce nombre dans la division par 2 est 0...
De plus ton else est totalement inutile puisque ta matrice de départ (si je comprends bien) n'est composée que de zéros : tu as juste à remplacer le zéro en A(i,j) par i+j si i+j est pair.
Dans le cas contraire, A'i,j) vaut déjà 0, donc inutile de vouloir écrire ce zéro : il y est déjà !
--------------------------------------------------------------------------
Va voir ta première discussion sur les suites : j'ai fait une erreur...
@+
[EDIT]
Là aussi, j'ai vérifié : ça me semblait bizarre...
On n'écrit pas :
A(i,j) = i+j if (modulo(i+j,2)==0)
Mais
if (modulo(i+j,2)==0) then, A(i,j) = i + j
ou en retournant à la ligne :
if (modulo(i+j,2)==0) then
A(i,j) = i+j
end
Dernière modification par yoshi (25-04-2013 07:26:49)
Hors ligne
#4 11-05-2013 09:23:50
- yoshi
- Modo Ferox
- Inscription : 20-11-2005
- Messages : 17 385
Re : [SCILA] écrire un fonction
Bonjour,
voilà le code :
scilab.org/product/dic-mat-sci/M2SCI_doc.htm">function[n]=Matrice(n)
M=zeros(n,n)
scilab.org/product/dic-mat-sci/M2SCI_doc.htm">endfunction
n=4
Matrice(n)
scilab.org/product/dic-mat-sci/M2SCI_doc.htm">for i=1:n
scilab.org/product/dic-mat-sci/M2SCI_doc.htm">for j=1:n
scilab.org/product/dic-mat-sci/M2SCI_doc.htm">if modulo(i+j,2)==0
M(i,j)=i+j
scilab.org/product/dic-mat-sci/M2SCI_doc.htm">end
scilab.org/product/dic-mat-sci/M2SCI_doc.htm">end
scilab.org/product/dic-mat-sci/M2SCI_doc.htm">end
disp(M)
Sortie :
Initialisation :
Chargement de l'environnement de travail-->exec('C:\Program Files\scilab-5.4.1\matrice_remplir.sci', -1)
2. 0. 4. 0.
0. 4. 0. 6.
4. 0. 6. 0.
0. 6. 0. 8.
Et je vois qu'avec retour à la ligne le then ne semble pas obligatoire puisque ça marche sans...
@+
Hors ligne
Pages : 1







