Wikipedia dichotomie

Résolu
uesgui Messages postés 172 Date d'inscription   Statut Membre Dernière intervention   -  
uesgui Messages postés 172 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 :)

4 réponses

Marco la baraque Messages postés 996 Date d'inscription   Statut Contributeur Dernière intervention   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
kilian Messages postés 8732 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
uesgui Messages postés 172 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
uesgui Messages postés 172 Date d'inscription   Statut Membre Dernière intervention   20
 
ok
0