membuat program Pangkat dengan iterasi dan rekursif

saya pernah dapat tugas pada matakuliah Struktur data untuk membuat program mencari hasil nilai pangkat. misalnya 32 = 9.

nah untuk mencari nilai pangkat ada 2 metode yang bisa digunakan.
1. metode iterasi (perulangan)
2. Rekursif (fungsi)

berikut contoh program yang ditulis dengan menggunakan C++.

Iterasi


pada iterasi kita menggunakan perulangan untuk mencari hasilnya. perhatikan coding berikut.
#include <stdio.h>
#include <conio.h>
#include <iostream>
using namespace std;

int main () {
printf("Program Iterasi Perpangkatan \n\n");
int x,a,hasil;

printf ("masukkan nilai x = "); scanf("%d",&x);
printf("masukkan nilai a = "); scanf("%d", &a);

for (int i=0; i<a; i++)
hasil= x*x;

cout<<"hasil pemangkatan "<<x <<"^" <<a <<" = " <<hasil;
}


pada coding yang di beri warna merah merupakan iterasi/perulangan yang beefungsi untuk mencari nailai pemangkatan. dimana x merupakan nilai variabel dan a merupakan pangkatnya. Xa

nah kemudian diatas dapat kita lihat untuk menampilkan text menggunakan printf dan meminta input dengan perintah scanf. yang mana anda juga bisa menggunakan fungsi cout<< dan cin>>. pada printf dan scanf (agak ribet) mesti mengunakan code seperti %d setiap ada variabel yang ingin digunakan contoh scanf("%d",&x);
berikut list code untuk variabel lain float, string dll.











SimbolOutputContoh
cCharactera
d or iuntuk decimal atau integer392
funtuk Decimal yang type data 392.65
ountuk octal610
sString of characterssample



Rekursif


pada iterasi kita menggunakan fungsi yang memanggil dirinya sendiri untuk mencari hasilnya sampai memenuhi kondisi. perhatikan coding berikut.
#include <stdio.h>
#include <conio.h>
#include <iostream>
using namespace std;

int pangkat (int j, int k) { //membuat function/fungsi pangkat
int hasil;
if (k==0) { hasil=1; }
else {
hasil =j*pangkat(j,k-1);
}
return(hasil);
}

int main(){ //program utama
printf("Program Iterasi Perpangkatan \n\n");
int x,a,hasil;

printf ("masukkan nilai x = "); scanf("%d",&x);
printf("masukkan nilai a = "); scanf("%d", &a);

cout<<"hasil pemangkatan "<<x <<"^" <<a <<" = " <<pangkat(x,a);
}


Yang paling penting adalah fungsi pangkat yang diwarnai merah
Fungsi ini digunakan mencari hasil pemangkatan,
penjelasan coding

int hasil; (digunakan untuk menampung hasil dari pemangkatan)

if (k==0) { hasil=1; } jika k =0 maka hasilnya pemangkatannya 1, j0 =1

else {
hasil =j*pangkat(j,k-1); }
jika k =bukan 0 misalnya 3 (33) maka hasilnya 3*pangkat(3,2) nah nilai k nya masih 2 (belum 0) maka akan di lakukan pemanggilan fungsi pangkat sampai nilai k nya 0 (bingung ya -_-)
jadi nanti bentuk proses pencariannya begini

pangkat(3,3) = 3*pangkat(3,2)= 3*3*pangkat(3,1)= 3*3*3 pangkat(3,0)= 3*3*3*1

(mudah2an gak bingung lagi ^_^)

Dan terakhir
return(hasil); untuh menampilkan hasil dari pemangkatan yang di letakkan pada variabel hasil.




Artikel yang berhubungan




2 comments:

DarkSide said...

saya masih bingung mas kalo ditambahkan
hasil = x + pangkat(x,i-1);
kenapa hasilnya 10 ya?

Dwi Asmono said...

iterasinya engk jalan dengan baik....
bagian perpangkatan jadi perkalian nilai x...
trus syntax " using namespace std; " terbaca error...
mohon dkonfirmasi...
:)

Post a Comment

Related Posts Plugin for WordPress, Blogger...