Ir para conteúdo

Tony Miguel

Members
  • Total de itens

    21
  • Registro em

  • Última visita

Reputação

0 Comum

Sobre Tony Miguel

  1. Tony Miguel

    Metodo Simplex

    Consegui arrumar os restantes do erro adicionando o lib conio.o Vlw msm :D Funcionou.
  2. Tony Miguel

    Metodo Simplex

    Olá, achei esse script no fórum aqui e gostaria de uma ajuda. Ele está com erro. //--------------------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(2,25);printf("Curso: Matematica Computacional 2002 -> Programador : RJMF | rjmf@rjmf.net"); 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){ //LINHA COM ERRO // 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[I][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[I][J]); } } t=getch(); //--------------------FIM //---------Determina o coeficiente de maior valor da equacao(0) for(I=0;I<H;I++){ if(M[0][I]<0){ AUX=-M[0][I]; 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[I]=M[I][COLUNA]; gotoxy(60,7+I);printf("%3.3f",CPIVO[I]); } //------------FIM //-------Determina o Numero Pivo for(I=0;I<V;I++){ if(CPIVO[I]!=0 && CPIVO[I]!=MAIOR){ N=M[I][V+1]; NUM=N/CPIVO[I]; if(NUM<N1){ N1=NUM; NPIVO=CPIVO[I]; 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[I]=M[LINHA][I]; } //--------Determina Nova Linha Pivo for(I=0;I<H;I++){ LPIVO[I]=LPIVO[I]/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[I]=M[0][I]-CPIVO[0]*LPIVO[I]; gotoxy(10*I+20,14);printf("%3.3f",LINHAZERO[I]); //------Mostra nova lINHA PIVO gotoxy(10*I+20,16);printf("%3.3f",LPIVO[I]); //------linha I - VARIAVEL NOVALINHA2[I]=M[X1][I]-CPIVO[X1]*LPIVO[I]; gotoxy(10*I+20,18);printf("%3.3f",NOVALINHA2[I]); //------linha II - VARIAVEL NOVALINHA3[I]=M[X2][I]-CPIVO[X2]*LPIVO[I]; gotoxy(10*I+20,20);printf("%3.3f",NOVALINHA3[I]); } //--------------------------------------------------------------- t=getch(); clrscr(); //----------MATRIZ 2 //---------Zera a Matriz M2 for(I=0;I<V;I++){ for(J=0;J<H;J++){ M2[I][J]=NULL; //LINHA COM O ERRO } } //------------------ //-------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[I][J]=M2[I][J]; gotoxy(10*J+10,2*I+8);printf(" %3.3f",M2[I][J]); } } //----------------TESTA REGRA DE PARADA t=getch(); clrscr(); for(I=0;I<H;I++){ if(M[0][I]>=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[I][H-1]); } gotoxy(20,15);printf("Solucao Otima, conseguida na Iterada n\xa7: %d",VEZES+1); t=getch(); }//------FIM DO PROGRAMA O erro está na linha: Erro: O outro erro é na linha: O erro: Se alguém puder me ajudar.
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.