Advertisement
Guest User

Untitled

a guest
Mar 22nd, 2019
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.09 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. /**
  6. * contoh: menggunakan matriks ordo 3 X 3
  7. * dengan syarat matriks harus berupa matriks persegi atau baris dan kolom sama.
  8. */
  9. const int baris = 2;
  10. const int kolom = 2;
  11.  
  12. void determinan_matriks(float data[baris][kolom]);
  13.  
  14. int main() {
  15. // float matriks[baris][kolom] = {{1, 2, 1}, {3, 3, 1}, {2, 1, 2}};
  16. float matriks[baris][kolom] = {{3, 1}, {2, 5}};
  17.  
  18. determinan_matriks(matriks);
  19. }
  20.  
  21. void determinan_matriks(float data[baris][kolom]) {
  22. int baris_f = 0; // baris
  23. int kolom_f = 0; // kolom
  24.  
  25. int baris_data = 1; // baris operasi
  26.  
  27. int jml_penjumlahan = 0; // jumlah penjumlahan
  28. int jml_pengurangan = 0; // jumlah pengurangan
  29.  
  30. int jml_per_kolom = 1; // jumlah kolom
  31.  
  32. bool pengurangan = false;
  33.  
  34. /**
  35. * looping sebanyak 2 kali baris (bisa juga 2 kali kolom) kali baris / kolom
  36. * dengan tujuan untuk operasi baris penjumlahan dan pengurangan
  37. * syarat: untuk mencari determinan hanya bisa di matriks persegi atau baris dan kolomnya sama
  38. */
  39. for (int b = 0; b < (baris * (baris * 2)); b++) { // ex: ordo 3 x 3, maka 3 * (3 * 2) = 18 data
  40. if (pengurangan == false) if (kolom_f >= baris) kolom_f = 0;
  41. if (kolom_f < 0) kolom_f = baris - 1;
  42.  
  43. jml_per_kolom *= data[baris_f][kolom_f];
  44.  
  45. if (baris_f != baris) {
  46. baris_f++;
  47. if (pengurangan == false) kolom_f++;
  48. if (pengurangan == true) kolom_f--;
  49. }
  50.  
  51. for (int c = 1; c <= (baris * 2); c++) {
  52. if (b == ((baris * c) - 1)) {
  53. if (pengurangan == false) jml_penjumlahan += jml_per_kolom;
  54. else jml_pengurangan += jml_per_kolom;
  55.  
  56. if (baris_data == baris) {
  57. pengurangan = true;
  58. baris_data = baris - 1;
  59. kolom_f = baris_data;
  60. } else {
  61. if (pengurangan == true) {
  62. baris_data--;
  63. kolom_f = baris_data;
  64. } else {
  65. kolom_f = baris_data;
  66. baris_data++;
  67. }
  68. }
  69.  
  70. jml_per_kolom = 1;
  71. baris_f = 0;
  72. }
  73. }
  74. }
  75.  
  76. cout << "Determinan (" << jml_penjumlahan << " - " << jml_pengurangan << ") = " << jml_penjumlahan - jml_pengurangan << "\n";
  77. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement