Ir para conteúdo
Fórum Script Brasil
  • 0

Ajuda Com Simplex


BSBgirl2006

Pergunta

3 respostass a esta questão

Posts Recomendados

  • 0

Alguém pode me identificar os erros desse programa, ele compila mas não executa

//--------------------Metodo SIMPLEX

#define H0 3

#define V0 2

#define VMAX 24

#define HMAX 78

#define H1 50

#define V 4

#define H 6

#include<stdio.h>

int MALHA2(int I,int J){

clrscr();

//------------------INICIO MALHAS----------------------

//---------Linhas Basicas

for(I=H0;I<HMAX;I++){

gotoxy(I,V0);printf("\xc4");

gotoxy(I,VMAX);printf("\xc4");

}

for(I=V0+1;I<VMAX;I++){

gotoxy(H0,I);printf("\xb3");

gotoxy(HMAX,I);printf("\xb3");

}

gotoxy(H0,V0);printf("\xc9");

gotoxy(H0,VMAX);printf("\xc8");

gotoxy(HMAX,V0);printf("\xbb");

gotoxy(HMAX,VMAX);printf("\xbc");

//-------Fim

for(I=H0+1;I<H1;I++){

gotoxy(I,11);printf("\xdc");

}

for(I=V0+1;I<12;I++){

gotoxy(50,I);printf("\xb3");

}

for(I=4;I<78;I++){

gotoxy(I,13);printf("\xc4");

gotoxy(I,15);printf("\xc4");

gotoxy(I,17);printf("\xc4");

gotoxy(I,19);printf("\xc4");

gotoxy(I,21);printf("\xc4");

}

for(I=14;I<24;I++){

gotoxy(18,I);printf("\xb3");

gotoxy(27,I);printf("\xb3");

gotoxy(37,I);printf("\xb3");

gotoxy(57,I);printf("\xb3");

gotoxy(67,I);printf("\xb3");

gotoxy(47,I);printf("\xb3");

gotoxy(55,3);printf("METODO SIMPLEX");

//------------------------------------------------FIM MALHA--------

}

int MALHA1(int I,int J){

clrscr();

//------------------INICIO MALHAS----------------------

//---------Linhas Basicas

for(I=H0;I<HMAX;I++){

gotoxy(I,V0);printf("\xc4");

gotoxy(I,VMAX);printf("\xc4");

}

for(I=V0+1;I<VMAX;I++){

gotoxy(H0,I);printf("\xb3");

gotoxy(HMAX,I);printf("\xb3");

}

gotoxy(H0,V0);printf("\xc9");

gotoxy(H0,VMAX);printf("\xc8");

gotoxy(HMAX,V0);printf("\xbb");

gotoxy(HMAX,VMAX);printf("\xbc");

for(I=4;I<78;I++){

gotoxy(I,5);printf("\xc4");

gotoxy(I,7);printf("\xc4");

gotoxy(I,9);printf("\xc4");

gotoxy(I,11);printf("\xc4");

gotoxy(I,13);printf("\xc4");

gotoxy(I,15);printf("\xc4");

gotoxy(I,17);printf("\xc4");

gotoxy(I,19);printf("\xc4");

gotoxy(I,21);printf("\xc4");

}

for(I=6;I<24;I++){

gotoxy(18,I);printf("\xb3");

gotoxy(27,I);printf("\xb3");

gotoxy(37,I);printf("\xb3");

gotoxy(57,I);printf("\xb3");

gotoxy(67,I);printf("\xb3");

gotoxy(47,I);printf("\xb3");

}

//-------Fim

gotoxy(60,3);printf("METODO SIMPLEX");

//------------------------------------------------FIM MALHA--------

}

int MALHAF(int I,int J){

clrscr();

//------------------INICIO MALHAS----------------------

//---------Linhas Basicas

for(I=H0;I<HMAX;I++){

gotoxy(I,V0);printf("\xc4");

gotoxy(I,VMAX);printf("\xc4");

}

for(I=V0+1;I<VMAX;I++){

gotoxy(H0,I);printf("\xb3");

gotoxy(HMAX,I);printf("\xb3");

}

gotoxy(H0,V0);printf("\xc9");

gotoxy(H0,VMAX);printf("\xc8");

gotoxy(HMAX,V0);printf("\xbb");

gotoxy(HMAX,VMAX);printf("\xbc");

}

void main(void){

// float M[V][H]={-3,-5,0,0,0,0,1,0,1,0,0,4,0,2,0,1,0,12,3,2,0,0,1,18};

float M[V][H];

float CPIVO[V],LPIVO[H],LINHAZERO[H],M2[V][H];

float NOVALINHA2[H],NOVALINHA3[H];

float AUX,MAIOR=0,NPIVO=9999999,NUM,N,N1=999999;

int X1,X2,I=0,J,L=2,COLUNA,LINHA,VEZES=0,TESTE=0;

int MAXITERADA;

char t;

clrscr();

//----------------Leitura da forma Tabular

MALHA1(I,J);

gotoxy(20,3);printf("Leitura do Quadro Simplex");

for(I=0;I<H-1;I++){

gotoxy(10*I+10,6);printf(" X%d",I+1);

}

for(I=0;I<V;I++){

for(J=0;J<H;J++){

gotoxy(10*J+10,2*I+8);scanf("%f",&M[J]);

}

}

gotoxy(20,25);printf("Digite o n\xa7 Maximo de Iteradas :");scanf("%d",&MAXITERADA);

//------------------FIM

//----------------------COMECO DAS ITERADAS

while(VEZES<MAXITERADA){

gotoxy(60,22);printf("Iterada = %d",VEZES+1);

//--------------Mostra a Tabela Simplex

MALHA1(I,J);

gotoxy(6,3);printf("Iterada n\xa7: %d",VEZES+1);

gotoxy(30,3);printf("Quadro Simplex");

for(I=0;I<H-1;I++){

gotoxy(10*I+10,6);printf(" X%d",I+1);

}

for(I=0;I<V;I++){

for(J=0;J<H;J++){

gotoxy(10*J+10,2*I+8);printf(" %3.3f",M[J]);

}

}

t=getch();

//--------------------FIM

//---------Determina o coeficiente de maior valor da equacao(0)

for(I=0;I<H;I++){

if(M[0]<0){

AUX=-M[0];

if(AUX>MAIOR){

MAIOR=AUX;

COLUNA=I;

}

}

}

clrscr();

MALHA2(I,J);

MAIOR=-MAIOR;

//-----------------fim

//------Determina a Coluna Pivo

gotoxy(53,5);printf("-> Coluna Pivo:");

for(I=0;I<V;I++){

CPIVO=M[COLUNA];

gotoxy(60,7+I);printf("%3.3f",CPIVO);

}

//------------FIM

//-------Determina o Numero Pivo

for(I=0;I<V;I++){

if(CPIVO!=0 && CPIVO!=MAIOR){

N=M[V+1];

NUM=N/CPIVO;

if(NUM<N1){

N1=NUM;

NPIVO=CPIVO;

LINHA=I;

}

}

}

//----FIM

gotoxy(5,3);printf("-> Outros Resultados :");

gotoxy(5,5);printf("Maior Coeficiente = %3.3f",MAIOR);

gotoxy(5,6);printf("Numero Pivo = %3.3f",NPIVO);

gotoxy(5,7);printf("Indice da coluna Pivo = %d",COLUNA);

gotoxy(5,8);printf("Indice da linha Pivo = %d",LINHA);

gotoxy(64,12);printf("Iterada n\xa7: %d",VEZES+1);

//---------Determina LINHA PIVO

for(I=0;I<H;I++){

LPIVO=M[LINHA];

}

//--------Determina Nova Linha Pivo

for(I=0;I<H;I++){

LPIVO=LPIVO/NPIVO;

}

//-------FIM

//---------Determina NOVAS LINHA

gotoxy(5,12);printf("-> Resultados dos Calculos das Novas Linhas:");

gotoxy(6,14);printf("Linha Zero");

gotoxy(6,16);printf("Linha Pivo");

gotoxy(6,18);printf("Linha I");

gotoxy(6,20);printf("Linha II");

///***************Testa quais Linhas estao Livres************

//Para este Caso: 2 linhas Livres -> Tirando L0 E LPIVO

for(J=0;J<V;J++){

if(LINHA!=J && J!=0){

X1=J;

break;

}

}

for(J=0;J<V;J++){

if(LINHA!=J && J!=0 && J!=X1){

X2=J;

break;

}

}

//******************Fim do Teste*****************

//-------Calculo das Linhas---------

for(I=0;I<H;I++){

//-------Linha ZERO Fixa

LINHAZERO=M[0]-CPIVO[0]*LPIVO;

gotoxy(10*I+20,14);printf("%3.3f",LINHAZERO);

//------Mostra nova lINHA PIVO

gotoxy(10*I+20,16);printf("%3.3f",LPIVO);

//------linha I - VARIAVEL

NOVALINHA2=M[X1]-CPIVO[X1]*LPIVO;

gotoxy(10*I+20,18);printf("%3.3f",NOVALINHA2);

//------linha II - VARIAVEL

NOVALINHA3=M[X2]-CPIVO[X2]*LPIVO;

gotoxy(10*I+20,20);printf("%3.3f",NOVALINHA3);

}

//---------------------------------------------------------------

t=getch();

clrscr();

//----------MATRIZ 2

//---------Zera a Matriz M2

for(I=0;I<V;I++){

for(J=0;J<H;J++){

M2[J]=NULL;

}

}

//------------------

//-------Atribui a M2 os Dados obtidos

for(I=0;I<V;I++){

for(J=0;J<H;J++){

M2[0][J]=LINHAZERO[J];

M2[1][J]=LPIVO[J];

M2[2][J]=NOVALINHA2[J];

M2[3][J]=NOVALINHA3[J];

}

}

//-------------------------

MALHA1(I,J);

gotoxy(4,4);printf("Fim da Iterada n\xa7: %d",VEZES+1);

//------MOSTRA A NOVA TABELA DE VARIAVEIS

gotoxy(25,3);printf("Novo Quadro Simplex");

for(I=0;I<H-1;I++){

gotoxy(10*I+10,6);printf(" X%d",I+1);

}

for(I=0;I<V;I++){

for(J=0;J<H;J++){

//---------Atribui Matriz 2 a Matriz Original

M[J]=M2[J];

gotoxy(10*J+10,2*I+8);printf(" %3.3f",M2[J]);

}

}

//----------------TESTA REGRA DE PARADA

t=getch();

clrscr();

for(I=0;I<H;I++){

if(M[0]>=0){

TESTE++;

}

}

if(TESTE==H){

break;

}

//---------FIM DO TESTE

//---------FIM

VEZES++;

TESTE=0;

MAIOR=0;

NPIVO=9999999;

}//------Fim do While

//***********Mostra Solucao Otima ( FINAL )*****************

MALHAF(I,J);

gotoxy(5,3);printf("=> SOLUCAO FINAL");

gotoxy(14,6);printf("-> Solucao Otima:");

for(I=0;I<V;I++){

gotoxy(16,8+I);printf("[ %3.3f ]",M[H-1]);

}

gotoxy(20,15);printf("Solucao Otima, conseguida na Iterada n\xa7: %d",VEZES+1);

t=getch();

}//------FIM DO PROGRAMA

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...