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
A voir également:

5 réponses

tatou_38 Messages postés 1954 Date d'inscription   Statut Membre Dernière intervention   121
 
Qu'as tu trouvé avec ton debugeur ? Qu'observes-tu en pas-à-pas ?
0
alouizeineb Messages postés 26 Statut Membre
 
dsl tatou mais j'ai rien compris
0
alouizeineb Messages postés 26 Statut Membre
 
quelqu'un m'aidez svp ??
0
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
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