Simplex

Disponível somente no TrabalhosFeitos
  • Páginas : 2 (350 palavras )
  • Download(s) : 0
  • Publicado : 8 de fevereiro de 2013
Ler documento completo
Amostra do texto
#include
#include
#include
#include

#define MAX 30
#define RESTRICAO 10

/*programa que calcula a solução otima para uma funcao, baseada no tableau de simplex
usando algoritmo demaximizacao*/

double C[MAX], tableau[MAX + 1][MAX + RESTRICAO];
double B[RESTRICAO];

int LeituraDosDados(int *var, int op)
{
int rest, c, i;

printf("\n Formato: [c1.X1+c2.X2+...cn.Xn = b ] \n\n");
printf("Digite o valor dos coeficientes : \n (Ao digitar '0' o programa deixara de receber novos coeficientes!)\n");

c = 0;

do{
printf(" c%d: ", c+ 1);
scanf("%lf", &C[c]);
if(op == 2)
C[c] = C[c] * -1;

fflush(stdin);
c++;
} while(C[c-1]!=0);
*var = c-1;printf("\nNumero de restricoes: ");
scanf("%d", &rest);

fflush(stdin);

for(i = 0; i < rest; i++)
{
printf(" %da Restricao \n", i + 1);
for(c = 0; c < *var; c++){
printf(" c%d: ", c + 1);
scanf("%lf", &tableau[i][c]);
fflush(stdin);
}
printf(" B = ");
scanf("%lf", &B[i]);fflush(stdin);
}

return rest;
}

int main(void)
{
int rest, var, ni ;
int op;
int i, j, k, coluna, linha, cont1, cont2;
double maximo = 0, menor, aux, mult, temp;system("color 5");
printf("\t\t\t\tIsadora e Ronie\n\n");
printf("\t\t\t\tSIMPLEX\n\n");

printf("Maximizacao = '1'\nMinimizacao = '2' \n");
do{
scanf("%d", &op);fflush(stdin); }
while(op != 1 && op != 2);

rest = LeituraDosDados(&var, op);

//Criar tableau inicial do simplex
for(i = 0; i < rest; i++)
for(j = 0; j < rest; j++)if (i == j)
tableau[i][var + j] = 1;
else
tableau[i][var + j] = 0;
for(i = 0; i < rest; i++)
tableau[i][var + rest] = B[i];

for(j...
tracking img