Program Mencari Fpb Dengan Bahasa C++
Assalamualaikum
Source code untuk kegiatan mencari FPB dengan bahasa pemrograman C++. Penyelesaian kegiatan ini memakai cara looping for. Pertama analisis dulu apa sih FPB? Faktor Persekutuan terbesar ialah faktor pembagi terbesar yang nilainya sama. Misalkan 4 dan 2 maka FPB-nya 2 alasannya 2 ialah bilangan terbesar yang sanggup membagi habis kedua bilangan tersebut dan faktor persekutuannya ialah 1 dan 2. Kaprikornus sanggup disimpulkan ialah FPB ialah nilai yang sanggup membagi habis suatu bilangan dengan kata lain yang menghasilkan mod sama dengan nol.
Misalkan ada bilangan x dan y. FPB x dan y ialah semua bilangan yang sanggup membagi habis x dan y. Misalkan bilangan tersebut z maka z merupakan FPB kalau z merupakan bilangan terbesar kalau dan hanya kalau xmodz dan ymodz sama dengan nol.
Misalkan
x%z = 4%1= 0
x%z = 2%1= 0
// 1 bukan FPB alasannya bukan nilai terbesar yang sanggup membagi habis keduanya
x%z = 4%2 = 0
x%z = 2%2 = 0
// 2 ialah FPB alasannya sanggup membagi habis kedua bilangan dan tidak ada bilangan yang lebih besar dari 2 yang sanggup membagi habis keduanya
x%z = 4%1= 0
x%z = 2%1= 0
// 1 bukan FPB alasannya bukan nilai terbesar yang sanggup membagi habis keduanya
x%z = 4%2 = 0
x%z = 2%2 = 0
// 2 ialah FPB alasannya sanggup membagi habis kedua bilangan dan tidak ada bilangan yang lebih besar dari 2 yang sanggup membagi habis keduanya
Berikut ialah source code dengan memakai C++
Pembahasan x dan y ialah nilai yang akan dicari FPB-nya. Z ialah nilai FPB yang dicari memakai looping dan a ialah variable untuk menyimpan nilai z yang bernilai true. Mari bahas cara kerja looping pada kegiatan ini
for (z=1; z<=x; z++) { if (x%z==0 && y%z==0) { a=z; cout<<a<<" "; } } cout<<"}\nNilai FPB : "<<a<<"\n\n";
Inisalisasi z=1 artinya nilai z pertama bernilai 1 dan looping akan berhenti ketika z sama dengan x dan z akan bertambah 1 sampai mencapai nilai z sama dengan x. Kenapa yang digunakan x? Karena kesudahannya sama saja. Kenapa demikian? Jawabannya ada pada statement pengedalian yang ada didalam fungsi looping
Karena yang dicari hanya nilai xmodz dan ymodz yang sama dengan nol maka harus dibentuk statement ini. Kaprikornus tidak problem nilai x yang terbesar atau pun yang terkecil alasannya yang muncul tetap hanya nilai z terbesar yang sanggup membagi keduanya. Nilai x lebih kecil dari y tidak problem alasannya nilai z mustahil lebih besar dari x.
Misalkan nilai x = 6 dan y = 12 Maka : | |||||
ketika z = 1 | 6%1 = 0 | True | 12%1 = 0 | True | Karena True maka akan muncul hasil 1 |
ketika z = 2 | 6%2 = 0 | True | 12%2 = 0 | True | Karena True maka akan muncul hasil 2 |
ketika z = 3 | 6%3 = 0 | True | 12%3 = 0 | True | Karena True maka akan muncul hasil 3 |
ketika z = 4 | 6%4 = 2 | False | 12%4 = 0 | True | Hasil ini false alasannya yang diminta ialah keduanya habis dibagi artinya 4 tidak akan muncul dilayar |
ketika z = 5 | 6%5 = 1 | False | 12%5 = 2 | False | Hasil ini false alasannya keduanya tak sanggup membagi habis artinya 5 tidak akan muncul di layar |
ketika z = 6 | 6%6 = 0 | True | 12%6 = 0 | True | Karena True maka akan muncul hasil 6 sebagai FPB |
Kenapa hanya berhenti pada 6? Semua angka yang lebih besar dari 6 tidak akan habis membagi 6 (6%x ≠ 0 || x>6 ).
do { …………………. } while (z>1) |
Ini ialah fungsi looping biar kegiatan mengulang lagi, ya biar tidak perlu close kegiatan aja. Sebenernya sanggup memakai rekursi tapi kan ini fokusnya looping jadi kembali keawalnya pake looping aja
Sekian semoga bermanfaat, kalau ingin ditanyakan sanggup lewat media umum yang ada di widget.