Bibm@th

Forum de mathématiques - Bibm@th.net

Bienvenue dans les forums du site BibM@th, des forums où on dit Bonjour (Bonsoir), Merci, S'il vous plaît...

Vous n'êtes pas identifié(e).

#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

#3 25-04-2013 18:01:48

yoshi
Modo Ferox
Inscription : 20-11-2005
Messages : 17 385

Re : [SCILA] écrire un fonction

Re,

C'est fait...
J''ai écrit ton programme scilab : il fonctionne !

@+

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

Réponse rapide

Veuillez composer votre message et l'envoyer
Nom (obligatoire)

E-mail (obligatoire)

Message (obligatoire)

Programme anti-spam : Afin de lutter contre le spam, nous vous demandons de bien vouloir répondre à la question suivante. Après inscription sur le site, vous n'aurez plus à répondre à ces questions.

Quel est le résultat de l'opération suivante (donner le résultat en chiffres)?
huit plus soixante
Système anti-bot

Faites glisser le curseur de gauche à droite pour activer le bouton de confirmation.

Attention : Vous devez activer Javascript dans votre navigateur pour utiliser le système anti-bot.

Pied de page des forums