terça-feira, 2 de junho de 2009

Codigo do algoritmo

Segue abaixo o codigo do algoritmo que o grupo desenvolveu para a solução do problema de equações lineares:

#include
#include
// Equacao 1: 0,125*B1 + 0,2*B2 + 0,4*B3 = 2,3
// Equacao 2: 0,333*B1 + 0,5*B2 + 0,6*B3 = 4,8
// Equacao 3: 0,5*B1 + 0,3*B2 + 0*B3 = 2,9
int main () {
float M[3][4],x1,x2,x3,m1,m2,m3,determinante;
int i,j;
for(i=0;i<=2;i++) {
for(j=0;j<=3;j++) {
if(j==0){
printf("Digite valor de x%.d: ",i+1);}
if(j==1){
printf("Digite Valor de y%.d: ",i+1);}
if(j==2){
printf("Digite valor de z%.d: ",i+1);}
if(j==3){
printf("Digite o valor do termo independente %d: ",i+1);}
scanf("%f",&M[i][j]);
}
}
getchar();
printf("\nMatriz Formada\n");
for(i=0;i<=2;i++) {
for(j=0;j<=3;j++) {
printf("%.2f ",M[i][j]);
}
printf("\n");
}
m1 = M[1][0] / M[0][0] ;
M[1][0] = M[1][0] - ( M[0][0] * m1 );
M[1][1] = M[1][1] - ( M[0][1] * m1 );
M[1][2] = M[1][2] - ( M[0][2] * m1 );
M[1][3] = M[1][3] - ( M[0][3] * m1 );
getchar();
printf("\nPrimeiro Elemento Da Segunda Linha Zerado\n");
for(i=0;i<=2;i++) {
for(j=0;j<=3;j++) {
printf("%.2f ",M[i][j]);
}
printf("\n");
}
m2 = M[2][0] / M[0][0] ;
M[2][0] = M[2][0] - ( M[0][0] * m2 );
M[2][1] = M[2][1] - ( M[0][1] * m2 );
M[2][2] = M[2][2] - ( M[0][2] * m2 );
M[2][3] = M[2][3] - ( M[0][3] * m2 );
getchar();
printf("\nPrimeiro Elemento Da Terceira Linha Zerado\n");
for(i=0;i<=2;i++) {
for(j=0;j<=3;j++) {
printf("%.2f ",M[i][j]);
}
printf("\n");
}
m3 = M[2][1] / M[1][1] ;
M[2][1] = M[2][1] - ( M[1][1] * m3 );
M[2][2] = M[2][2] - ( M[1][2] * m3 );
M[2][3] = M[2][3] - ( M[1][3] * m3 );
getchar();
printf("\nMatriz Resultante\n");
for(i=0;i<=2;i++) {
for(j=0;j<=3;j++) {
printf("%.2f ",M[i][j]);
}
printf("\n");
}
getchar();
printf("\nResultados\n");
x3= M[2][3] / M[2][2];
x2= (M[1][3] - (x3*M[1][2])) / M[1][1];
x1= (M[0][3] - (x3*M[0][2]) - (x2*M[0][1])) / M[0][0];
printf("\n X: %.2f \n Y: %.2f \n Z: %.2f \n\n",x1,x2,x3);

if(M[0][3]+M[1][3]+M[2][3] == 0){
printf("\nSistema homogeneo,");
}else{
printf("\nSistema nao homogeneo,");
}

if(M[2][0]+M[2][1]+M[2][2] == 0){
printf(" Incompativel,");
}else{
printf(" Compativel,");
}


determinante = M[0][0] * M[1][1] * M[2][2];
determinante += M[0][1] * M[0][2] * M[2][0];
determinante += M[0][2] * M[1][0] * M[2][1];

determinante -= M[0][2] * M[1][1] * M[2][0];
determinante -= M[0][0] * M[1][2] * M[2][1];
determinante -= M[0][1] * M[1][0] * M[2][2];

if(determinante == 0){
printf(" Determinado.");
}else{
printf(" Possivel indeterminado ou impossivel.");
}
printf("\nHouve pivoteamento");

getch();




}

2 comentários:

  1. Gabriela, seria interessante você discutir e comentar o algoritmo ao invés de apenas colar o código no blog.
    []'s
    Lívia

    ResponderExcluir
  2. Gabriela, o meu e-mail é fabio.miranda@gmail.com

    Tentei responder a sua mensagem enviando um e-mail para gabriela.raitz@gmail.com mas deu erro. Mudou de e-mail?

    Quando enviar para mim, manda uma cópia pra Anne também: annefederici@gmail.com porque 3 cabeças pensam melhor que 2, rs...

    ResponderExcluir