Anda di halaman 1dari 4

EVALUASI TENGAH SEMESTER GASAL 2017/2018

LINGK. PEMROG. VISUAL (A)

Oleh :
Djuldjifar Maulana - 1461505179
Moch. Alif Fajar - 1461505208
Dicky Riantony – 1461505229
Dedy Eka Kurniawan - 1461505231
Bagas Pranata – 1461505236

PRODI INFORMATIKA - FAKULTAS TEKNIK


UNIVERSITAS 17 AGUSTUS 1945 - SURABAYA
1. Fungsi rekursif dan fungsi rekursif DigitSum (n) yang mengambil bilangan bulat non-
negatif dan mengembalikan jumlah digitnya. Dimana dalam kasus ini digit angka yang
telah dimasukkan akan dipanggil untuk dijumlahkan.

Screenshot :

Jadi DigitSum (1729) diuraikan menjadi 1 + 7 + 2 + 9, yaitu 19.

Source Code :
#include <iostream>
using namespace std;

jumlah(int angka){
if(angka == 0)
return 0;
return angka%10 + jumlah(angka/10);
}

int main(){
int angka;
cout <<"Input Angka : ";
cin >> angka;
cout<<"Hasil dari penjumlahan " << angka << " = "<<
jumlah(angka);
return 0;
}
2. Fungsi ListMnemonics yang akan menghasilkan semua kemungkinan kombinasi huruf
yang sesuai dengan nomor / digit yang di-input, yang re-presentasikan menjadi digit
string. Dimana dalam kasus ini digit angka yang di masukkan akan diurai menjadi
kombinasi string sesuai dengan digit yang diinput.

Sebagai contoh: ListMnemonic ("723")


menghasilkan 36 kombinasi huruf berikut:
PAD PBD PCD QAD QBD QCD RAD RBD RCD SAD
SBD SCD PAE PBE PCE QAE QBE QCE RAE RBE RCE
SAE SBE SCE PAF PBF PCF QAF QBF QCF RAF RBF
RCF SAF SBF SCF

Screenshot :
Source Code :
#include <iostream>
#include <stdio.h>
#include <string.h>
using namespace std;

const char hashTable[12][5] = {" ", "", "abc", "def", "ghi",


"jkl", "mno", "pqrs", "tuv", "wxyz","*","#"};

void printWordsUtil(int number[], int curr_digit, char output[],


int n)
{
int i;
if (curr_digit == n)
{
cout<<output<<" ";
return ;
}

for (i=0; i<strlen(hashTable[number[curr_digit]]); i++)


{
output[curr_digit] = hashTable[number[curr_digit]][i];
printWordsUtil(number, curr_digit+1, output, n);
if (number[curr_digit] == 0 || number[curr_digit] == 1)
return;
}
}

void printWords(int number[], int n)


{
char result[n+1];
result[n] ='\0';
printWordsUtil(number, 0, result, n);
}

int main(void)
{
int number[3];
for(int i=0; i<3; i++){
cout << "Masukkan Angka : ";
cin >> number[i];
}
int n = sizeof(number)/sizeof(number[0]);
printWords(number, n);

return 0;
}

Anda mungkin juga menyukai