Air max du rectangle inscrit dan un triangle

alouizeineb Messages postés 26 Statut Membre -  
 spam -
bonsoir
svp aidez moi pour trouver la faute dans ce program pascal !

Soit un triangle équilatéral ABC dont le coté AC = a en cm.
on inscrit dans ce dernier un rectangle MNPQ
on pose BM=x
on propose de déterminer la valeur de x tel que l'aire du rectangle soit maximale

voila mon essai mais j'ai une mauvaise resultat :-(

program ev;
uses wincrt;
var
x,p,a,airmax:real;
procedure saisir (var a,p:real);
begin
repeat
writeln('donner la coté a ');
readln (a);
writeln('donner la valeur du pas');
readln(p);
until (a>0) and (p>0);
end;
function valeur (a,p:real):real;
var
air,airmax,xmax,x:real;
begin
xmax:=0;
airmax:=0;
repeat
x:=x+p;
air:=(a-(2*x))*(x*sqrt(3));
if air >airmax then
airmax:=air ;
xmax:=x;
until (x>=(a/2));
valeur:=xmax;
end;
begin
saisir(a,p);
x:=valeur(a,p);
airmax:=(a-(2*x))*(x*sqrt(3));
writeln('la valeur du pas est ',p:1:5);
writeln('la valeur maximale du l''aire du rectangle est :',airmax:1:5);
writeln('la valur de x est ', x:2:10);
end.

merrrrrrrrrrrrrrrrcccccccie d'avance
Configuration: Windows XP
Firefox 2.0.0.12

5 réponses

  1. tatou_38 Messages postés 1220 Date d'inscription   Statut Membre Dernière intervention   121
     
    Qu'as tu trouvé avec ton debugeur ? Qu'observes-tu en pas-à-pas ?
    0
  2. alouizeineb Messages postés 26 Statut Membre
     
    dsl tatou mais j'ai rien compris
    0
  3. alouizeineb Messages postés 26 Statut Membre
     
    quelqu'un m'aidez svp ??
    0
  4. Kadcaled
     
    voissi le correctif de votre programme je pense que c'est juste en tout cas essayer puis si vous avez des problèmes ...

    program ev;
    uses wincrt;
    var
    x,p,a,airmax:real;
    procedure saisir (var a,p:real);

    begin
    repeat
    writeln('donner la coté a ');
    readln (a);
    writeln('donner la valeur du pas');
    readln(p);
    until (a>0) and (p>0);
    end;

    function valeur (a,p:real):real;
    var
    air,airmax,xmax,x:real;
    begin
    xmax:=0;
    airmax:=0;

    repeat
    x:=x+p;
    air:=((a-(2*x))*x*sqrt(3));

    if air>airmax then
    airmax:=air ;
    xmax:=x;

    until (x>=((a-2*x)/2));
    valeur:=xmax;
    end;

    begin
    repeat
    saisir(a,p);
    x:=valeur(a,p);

    airmax:=((a-(2*x))*x*sqrt(3));
    writeln('la valeur du pas est ',p:1:5);
    writeln('la valeur maximale du l''aire du rectangle est :',airmax:1:5);
    writeln('la valur de x est ', x:2:10);
    until keypressed;
    end.
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. spam
     
    salut,
    je crois que l'erreur se trouve ici (tu as simplement oublie le begin et end dans la structure if ) :

    function valeur (a,p:real):real;
    var
    air,airmax,xmax,x:real;
    begin
    xmax:=0;
    airmax:=0;
    repeat
    x:=x+p;
    air:=(a-(2*x))*(x*sqrt(3));
    if air >airmax then
    begin
    airmax:=air ;
    xmax:=x;
    end;
    until (x>=(a/2));
    valeur:=xmax;
    end;
    0