1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100
| begin
write('entrer le type du probleme_____MAX____ ou _____MIN_____ ==');
read(tpe);
write('entrer le nbr des contraintes == ');
read(nbc);
write('etrer le nombre de variables == ');
read(nbv);
for i := 1 to nbc do
begin
for j := 1 to nbv do
begin
write('enter la valeur de la variable t[',i,',',j,'] de la contrainte numero ',i,' == ');
read(t[i,j]);
end;
write('contrainte numero',i,' si _____<_______ entrer: -1 _____ si ___> entrer: 1 _____si ______=______entrer: 0 == ');
read(t[i,nbv + 1]);
write(' entrer la valeur',i,'du vecteur b == ');
read(t[i,nbv + 2]);
end;
{========================================= variable artificiel ==================================}
v := nbv;
for i := 1 to nbc do
begin
if (t[i,v + 1] = -1)
then
begin
varajou[i,1] := 1;
nbv := nbv + 1;
end
else
if (t[i,v + 1] = 1)
then
begin
varajou[i,1] := -1;
nbv := nbv + 1;
end;
if ((varajou[i,1] * t[i,v + 2]) < 0)
then
begin
varajou[i,2] := 1;
nbv := nbv + 1; {ajout de la variable artificiel}
end
else
begin
varajou[i,2] := 0; {ne pas ajouter les variable arti}
end;
end;
{ + + + + + + A EFFACER + + + + + }
for i := 1 to nbc do
begin
writeln('||');
for j := 1 to 2 do
begin
write('[_',varajou[i,j],'_] ');
end;
end;
{==============================pmlissage de la matrice initiale=================================================}
{ + + + + + + + + + replissage des couts des variable initiales + + + + + + + + + }
for j := 2 to v + 1 do
begin
writeln('entrer les couts de la fonction economique initiales', j,'== ');
read(init[1,j]);
writeln('init[1,',j,'] ==',init[1,j]);
end;
{ + + + + + + + + + remplissage des couts des variables ajouter + + + + + + + + + }
i := 1;
r := 1;
while (i <= nbc) do
begin
if (varajou[i,1] <> 0) and (varajou[i,2] <> 0)
then
begin
init[1,j] := 0;
xr[r] := -122;
r := r + 1;
end
else
if (varajou[i,1] <> 0) and (varajou[i,2] = 0)
then
begin
xr[r] := 0;
r := r + 1;
end
else
if (varajou[i,1] = 0) and (varajou[i,2] <> 0)
then
begin
xr[r] := -122;
r := r + 1;
end;
end;
ir := 1;
for j := nbv + 2 - r to nbv + 1 do
begin
init[1,j] := xr[ir];
ir := ir + 1;
end; |
Partager