Programmes Octave

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. Modérateur
    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

    1. Modérateur
      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.
      1. 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)
        1. Bonjour,

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

          Cordialement.