Programmes Octave

imhere614 -  
jisisv Messages postés 3678 Statut Modérateur -
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

  1. imhere614
     
    Bonjour,

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

    Cordialement.
    0
  2. imhere614
     
    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
  3. jisisv Messages postés 3678 Statut Modérateur 936
     
    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
  4. jisisv Messages postés 3678 Statut Modérateur 936
     
    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