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. Bonjour,

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

    Cordialement.
    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. 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. 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