Ask Question

Name:
Title:
Your Question:

Answer Question

Name:
Your Answer:
User Submitted Source Code!


Description:
  haha
Language: C/C++
Code:
#include <stdio.h>
#include <math.h>
#define maks 20

main (){
 float x[maks][maks], tempx[maks][maks], temp2[maks], temp;
 int i,j,or=3, k=0;
 char a='`';

  puts("\t\tMETODE GAUSS JORDAN");
 puts("\t     ax1 + bx2 + cx3 + .... =y");

  do{
 printf("Masukan jumlah ordo matrik : ");
 scanf("%d", &or);
 }while(or<2);

  for(i=0;i<or;i++){
  printf("persamaan ke-%d\n", i+1);
  for(j=0;j<or;j++){
   printf("nilai %c : ",a+j+1);
   scanf("%f", &x[i][j]);
   if(j==or-1){
    printf("nilai y : ");
    scanf("%f", &x[i][j+1]);
    break;
   }   
  }
 }
 printf("Dalam bentuk augmented matriks\n");
 for(i=0;i<or;i++){
  printf("|");
  for(j=0;j<or+1;j++){
   printf("%5.1f", x[i][j]);
  }
  printf("  |\n");
 }
 //tukar
 for(i=0;i<3;i++){
  if(x[0][0]==0){
   for(j=0;j<or+1;j++){
    tempx[i][j]=x[0][j];
   }
   for(j=0;j<or+1;j++){
    x[0][j]=x[i+1][j];
   }
   for(j=0;j<or+1;j++){
    x[i+1][j]=tempx[i][j];
   }   
  }
 }
 puts("");
 //hitung
 for(i=0;i<or;i++){ //gauss
  temp=x[i][i];
  for(k=i;k<=or;k++){
   x[i][k] /= temp;
  }  
  for(j=i+1;j<=or;j++){
   temp2[i] = x[j][i];   
   for(k=i;k<=or;k++){
    x[j][k] -= temp2[i] * x[i][k];
   }
  }  
 }
 for(i=1;i<or;i++){  //gauss jordan  
  for(j=1;j<=i;j++){
   temp2[j] = x[j-1][i];   
   for(k=i;k<=or;k++){
    x[j-1][k] -= temp2[j] * x[i][k];
   }
  }
 }
 //cetak
 for(i=0;i<or;i++){
  printf("|");
  for(j=0;j<or+1;j++){
   printf("%5.1f", x[i][j]);
  }
  printf("  |\n");
 }
 for(i=0;i<or;i++){
  printf("nilai x%d = %5.1f \n",i+1, x[i][or] );
 }
}
Comments: