Wikipedia dichotomie

Résolu
uesgui Messages postés 163 Date d'inscription   Statut Membre Dernière intervention   -  
uesgui Messages postés 163 Date d'inscription   Statut Membre Dernière intervention   -
Bonsoir,
J'ai trouvé le code pour la dichotomie sur une page de Wikipedia :
https://fr.wikipedia.org/wiki/Dichotomie
MAIS je ne sait pas comment m'en servir je veux dire dans quoi il faut l'entrer.
Dans un logiciel ? Une calculatrice ?
Comment faire ?

Merci de m'aider :)
Configuration: Windows Vista
Internet Explorer 7.0

4 réponses

  1. Marco la baraque Messages postés 1030 Statut Contributeur 329
     
    Bonsoir,
    Le "code" qui est présent sur cette page est un algorithme, ce qui signifie que ce n'est pas exploitable directement. L'algorithme, c'est une manière de traduire un programme en français, ou du moins d'expliquer comment trouver les solutions à un problème donné, et qui est sensé être compréhensible par tout le monde.

    Une fois écrit de la sorte, il est très facile de le traduire dans un langage particulier (C, C++, Java, Python, langage compréhensible par ta calculatrice...).

    Bref, pour être utilisable, il te faut encore un petit peu d'efforts.

    Cordialement,
    0
  2. kilian Messages postés 8675 Date d'inscription   Statut Modérateur Dernière intervention   1 526
     
    Si tu as fait du Pascal, la traduction algo->pascal est souvent très naturelle, il suffit parfois de remplacer juste quelques mots.

    Ceci dit, si tu as l'habitude d'un langage particulier, même si tu n'as pas l'habitude de l'algo, tu peux éventuellement retrouver le sens du programme en lisant bien l'algo et le retraduire...

    0
  3. uesgui Messages postés 163 Date d'inscription   Statut Membre Dernière intervention   20
     
    Bonjour
    Merci pour toutes ces explications.
    Je commence tout juste a découvrir la programmation et il me semble que j'ai trouvé un code pour ma dichotomie en pascal mais il ne me donne pas le résultat escompté (celui que je devrai trouver) à 1*10-6 prés voici le code :

    program dichotomie;
    var y:integer;
    function f(var x:real):real;

    begin
    if y=1 then f:=(ln (x))/x+((x*x)-1) /2*(1/x) end;

    procedure verif;
    var a,b,m,ep,va:real;
    i,n:integer;
    r,c:char;
    begin repeat
    writeln('f[x]=ln(x)/x + ((x*x)-1)/2*(1/x)');

    writeln('pour calculer la fonction f[x]=1 donnez l intervalle[a,b]') ;
    write(' a=');
    readln(a);
    write(' b=');
    readln(b);
    begin

    writeln('la fonctin f admet une solution dans [',a,';',b,']');
    write(' ');
    write('entrer le nombre d"iteration n=');
    readln(n);
    m:=(a+b)/2; if f(m)=1 then ep:=m
    else
    begin for i:=1 to n-1 do
    begin if f(m)*f(a)>0 then begin a:=m; m:=(b+m)/2; end
    else m:=(a+m)/2; b:=2*m-a;
    end;
    end; i:=i+1;
    ep:=m;
    writeln(' la valeur pour l"iteration ',n,' est epsilon=',ep);
    write('voulez vous continuer O/N? ');
    readln(r); end;
    until r='N';

    end;

    begin
    writeln(' DICHOTOMIE ');
    writeln(' ');

    writeln(' ');
    verif;

    end.
    0
  4. uesgui Messages postés 163 Date d'inscription   Statut Membre Dernière intervention   20
     
    ok
    0