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.
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 pangkatint hasil;if (k==0) { hasil=1; }else {hasil =j*pangkat(j,k-1);}return(hasil);} int main(){ //program utamaprintf("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.
Top Related