Simplex

350 palavras 2 páginas
#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 de maximizacao*/

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 =

Relacionados

  • Simplex
    1778 palavras | 8 páginas
  • Simplex
    2858 palavras | 12 páginas
  • simplex
    980 palavras | 4 páginas
  • Simplex
    4622 palavras | 19 páginas
  • Simplex
    1764 palavras | 8 páginas
  • Simplex
    11743 palavras | 47 páginas
  • Simplex
    727 palavras | 3 páginas
  • Simplex
    1900 palavras | 8 páginas
  • simplex
    306 palavras | 2 páginas
  • Simplex
    450 palavras | 2 páginas