membuat program pangkat dengan iterasi dan rekursif

Post on 19-Jan-2016

187 Views

Category:

Documents

3 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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