BSBgirl2006 Postado Maio 31, 2006 Denunciar Share Postado Maio 31, 2006 preciso de ajuda com a implementação do simplex Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 BSBgirl2006 Postado Maio 31, 2006 Autor Denunciar Share Postado Maio 31, 2006 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 Basicasfor(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");//-------Fimfor(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 Basicasfor(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");}//-------Fimgotoxy(60,3);printf("METODO SIMPLEX");//------------------------------------------------FIM MALHA--------}int MALHAF(int I,int J){clrscr();//------------------INICIO MALHAS----------------------//---------Linhas Basicasfor(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 TabularMALHA1(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 ITERADASwhile(VEZES<MAXITERADA){gotoxy(60,22);printf("Iterada = %d",VEZES+1);//--------------Mostra a Tabela SimplexMALHA1(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 Pivogotoxy(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 Pivofor(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;}}}//----FIMgotoxy(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 PIVOfor(I=0;I<H;I++){LPIVO=M[LINHA];}//--------Determina Nova Linha Pivofor(I=0;I<H;I++){LPIVO=LPIVO/NPIVO;}//-------FIM//---------Determina NOVAS LINHAgotoxy(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 LPIVOfor(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 FixaLINHAZERO=M[0]-CPIVO[0]*LPIVO;gotoxy(10*I+20,14);printf("%3.3f",LINHAZERO);//------Mostra nova lINHA PIVOgotoxy(10*I+20,16);printf("%3.3f",LPIVO);//------linha I - VARIAVELNOVALINHA2=M[X1]-CPIVO[X1]*LPIVO;gotoxy(10*I+20,18);printf("%3.3f",NOVALINHA2);//------linha II - VARIAVELNOVALINHA3=M[X2]-CPIVO[X2]*LPIVO;gotoxy(10*I+20,20);printf("%3.3f",NOVALINHA3);}//---------------------------------------------------------------t=getch();clrscr();//----------MATRIZ 2//---------Zera a Matriz M2for(I=0;I<V;I++){for(J=0;J<H;J++){M2[J]=NULL;}}//------------------//-------Atribui a M2 os Dados obtidosfor(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 VARIAVEISgotoxy(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 OriginalM[J]=M2[J];gotoxy(10*J+10,2*I+8);printf(" %3.3f",M2[J]);}}//----------------TESTA REGRA DE PARADAt=getch();clrscr();for(I=0;I<H;I++){if(M[0]>=0){TESTE++;}}if(TESTE==H){break;}//---------FIM DO TESTE//---------FIMVEZES++;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 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Daltinhu(M.D.E) Postado Junho 1, 2006 Denunciar Share Postado Junho 1, 2006 PORQUE você não IDENTA ESSE CODIGO PARA FICAR MAIS FACIL DE LER??? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Geovane Postado Março 21, 2007 Denunciar Share Postado Março 21, 2007 Aew, também preciso que alguém corrija isso, to precisando pra semana que vem!!! valeu Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
BSBgirl2006
preciso de ajuda com a implementação do simplex
Link para o comentário
Compartilhar em outros sites
3 respostass a esta questão
Posts Recomendados
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.