|
Soal 1 (fungsi isbagi). Peserta diminta untuk membuat sebuah fungsi yang dapat menentukan sebuah bilangan itu bisa dibagi dengan sebuah bilangan lain atau tidak. Fungsi yang dibuat mempunyai dua parameter masukan dan parameter keluaran adalah integer, jika bilangan pertama dibagi bilangan kedua mempunyai sisa 0 maka keluaran fungsi adalah 1, sebaliknya maka keluaran fungsi adalah 0. Fungsi akan digunakan dan dinilai pada fungsi main Soal 2 (prosedur perkalian). Peserta diminta untuk membuat sebuah prosedur yang dapat meminta user untuk menentukan berapa angka yang akan dikalikan, setelah itu akan meminta bilangan sebanyak apa yang user minta dan mengalikannya satu-persatu. Prosedur yang dibuat mempunyai satu parameter output yaitu hasil perkalian. Hasil penambahan dipakai diluar prosedur atau tidak terserah pada praktikan. Prosedur akan digunakan dan dinilai pada fungsi main.
Soal 3 [Rekursif bilangan] Perhatikan barisan bilangan dibawah ini : 1 3 6 10 15 21 . ........... Kita definisikan sebuah fungsi bernama bilKeN (int N) logika untuk mendapatkan rumus rekursif barisan diatas adalah sebagai berikut: Bilangan ke – 3 adalah bilangan ke 2 ditambah dengan 3 Bilangan ke – 2 adalah bilangan ke 1 ditambah dengan 2 Bilangan ke – 1 adalah satu Dimana, fungsi akan mengembalikan bilangan ke – N contoh: bilKeN (1) = 1 bilKeN (3) = 6 jadi, bilKeN(N) = bilKeN(N - 1) + N yang berarti bilKeN merupakan bilangan ke – N pada barisan bilangan diatas. Tugas Anda adalah mengimplementasikan fungsi diatas dengan menggunakan teknik REKURSIF. Anda DILARANG menggunakan teknik looping / perulangan. Jika Anda menggunakan teknik looping / perulangan, hasil jawaban Anda tidak akan dinilai. Fungsi rekursif akan digunakan dan dinilai pada fungsi main. Setiap soal diatas dibuat dalam 1 file, yang nantinya akan diimplementasikan pada 1 fungsi main, fungsi main itu ada di bawah, silahkan ditambahkan sesuai keinginan praktikan, yang penting minimal harus seperti dibawah :
int main () { int a,b,c,d; // membuat variabel cout << "masukkan bilangan1: "; cin >> a; cout << "masukkan bilangan2: "; cin >> b; cout << "apakah bilangan 1 bisa dibagi bilangan 2?(jika bisa nilainya 1, jika tidak nilainya 0): "<< isbagi(a,b)<< "\n"; // nomor 1 perkalian(c); //nomor 2 cout << "masukkan bilangan3: "; cin >> d; cout << "bilangan ke-"<<d << " adalah: "<< rekursif_bilangan(d); // nomor 3 getch(); return 0; }
jawaban :
#include <iostream> #include <conio.h> using namespace std;
int isbagi (int, int); //prototype fungsi soal 1 int perkalian (int); //prototype fungsi soal 2 int rekursif_bilangan(int); //prototype fungsi soal 3
int main() { int a,b,c,d; // membuat variabel
cout << "masukkan bilangan1: "; //nomor 1 cin >> a; cout << "masukkan bilangan2: "; cin >> b; cout << "apakah bilangan 1 bisa dibagi bilangan 2?\n(jika bisa nilainya 1, jika tidak nilainya 0): " << isbagi(a,b)<< "\n\n"; cout << "Berapa banyak angka yang ingin Anda kalikan ? "; cin >> c; //nomor 2 perkalian(c); cout << "\n"; cout << "masukkan bilangan3: "; // nomor 3 cin >> d; cout << "bilangan ke-"<<d << " adalah: "<< rekursif_bilangan(d); getch(); return 0; }
int isbagi (int x, int y) // fungsi pendukung soal 1 { int hasil; hasil = x%y; // pembagian modulus if (hasil==0) return 1; else return 0; }
int perkalian (int data) //fungsi pendukung soal 2 { int i, angka, kali=1; for (i=0; i<data; i++) { cout << " Angka ke-" << i+1 << " : "; cin >> angka; kali *= angka; //rumus utk perkalian cout << "Total angka : " << kali; cout << "\n"; } }
int rekursif_bilangan(int N) //fungsi pendukung soal 3 { if (N <= 1) return 1; else return rekursif_bilangan(N-1)+ N; } Special credit untuk praktikan dgn NIM 16409163 good job bro... jawabannya saya jadikan contoh di sini... |
Comments