Programmes Octave

Fermé
imhere614 - 16 juin 2014 à 15:26
jisisv Messages postés 3645 Date d'inscription dimanche 18 mars 2001 Statut Modérateur Dernière intervention 15 janvier 2017 - 28 juin 2014 à 09:36
Bonjour,
je suis encore bloqué dans la réalisation de deux petits programmes en Octave, j'essaie pourtant, je vous assure.
Je demande donc votre aide, qqu peut-il m'aider s'il vous plaît ?

1er exo:
En retranchant plusieurs fois la valeur 7 à un entier positif, on finit par obtenir zéro dans le cas où il est divisible par 7 et une valeur négative dans le cas contraire.

Utiliser cette propriété pour écrire un programme en Octave qui demande un nombre à l'utilisateur puis qui détermine et affiche si cet entier est un multiple de 7 ou non.

Voici ce que j'ai fait :

A=input('Entrez un nombre :')
while((A-7) !=0)
A=A-7
endwhile
disp('Le nombre entré est un multiple de 7')

Le problème c'est que je n'arrive pas à sortir de la boucle quand (A-7) est effectivement différent de 0 .


2eme exo: (celui-ci j'ai encore plus de mal)
Pour tester l'efficacité d'un médicament, on veut répartir au hasard 100 sujets en 2 groupes (groupe placebo et groupe traité). Ecrire un programme réalisant cette répartition: pour chaque sujet, on tire une valeur au hasard entre 0 et 1; on affecte le sujet au groupe placebo si cette valeur est inférieure à 0.5, au groupe traité sinon.

Le programme devra afficher le nombre de sujets dans chaque groupe.

Voici ce que j'ai fait :

for C=1:100
rand
if (rand<0.5)
A=C
endif
if (rand>0.5)
B=C
endif
endfor
disp('sujet groupe placebo')
disp(A)
disp('sujet groupe traité')
disp(B)

4 réponses

Bonjour,

je up mon sujet au cas où il serait passé au travers.

Cordialement.
0
J'ai trouvé les réponses, si cela peut aider :

1er exo:

A=input('Entrez un nombre :')
while A>0
A=A-7
endwhile
if (A==0)
disp('Multiple de 7')
else
disp('Pas multiple de 7')
endif

2eme exo:

A=0;
B=0;
for C=1:100;
rand;
if (rand<0.5)
A=A+1;
else
B=B+1;
endif
endfor
disp('Nombre de sujets dans le groupe placebo')
disp(A)
disp('Nombre de sujets dans le groupe traité')
disp(B)
0
jisisv Messages postés 3645 Date d'inscription dimanche 18 mars 2001 Statut Modérateur Dernière intervention 15 janvier 2017 934
20 juin 2014 à 04:12
Pour le premier
 ohand@osiris: ~/src/octave $ cat div7.m
A=input('Entrez un nombre :')
while( A-7 >=0 )
A=A-7;
endwhile

if (0 == A)
disp('Le nombre entré est un multiple de 7')
else
disp('Le nombre entré n est pas un multiple de 7')
endif
johand@osiris: ~/src/octave $ octave -q div7.m
warning: function ./test.m shadows a core library function
warning: function ./diff.m shadows a built-in function
Entrez un nombre :18
A = 18
Le nombre entré n est pas un multiple de 7
johand@osiris: ~/src/octave $ octave -q div7.m
warning: function ./test.m shadows a core library function
warning: function ./diff.m shadows a built-in function
Entrez un nombre :21
A = 21
Le nombre entré est un multiple de 7
sera plus fonctionnel.
0
jisisv Messages postés 3645 Date d'inscription dimanche 18 mars 2001 Statut Modérateur Dernière intervention 15 janvier 2017 934
28 juin 2014 à 09:36
Utilise les facilités offertes par octave:


johand@osiris: ~/src/CCM/octave $ cat placebo.m
#!/usr/bin/octave -q
effectif=100;
plan = round(rand(1,effectif));
display(sum(plan));

johand@osiris: ~/src/CCM/octave $ ./placebo.m
50

Voir
Matrices and Vectors
GNU Octave pdf manual

0