- dalam fungsi rekursi hanya menggunakan pengandaian if dan perulangan yang memamanggil fungsi rekursif itu sendiri, dengan kata lain tidak menggunakan looping for maupun while dalam bahasa C.
- sedangankan fungsi iteratif menggunakan pengulangan for maupun while.
kelebihan dari fungsi rekursif adalah algoritmanya lebih sederhana dalam beberapa kasus dan bila tepat penggunaannya..
berikut adalah contoh perhitungan banyaknya huruf vokal,konsonan,simbol dan lainnya menggunakan fungsi rekursif..
#include
#include
#include
void t();
char kata[161];
int a,i,u,e,o,konsonan,spasi,inc,simbol; //deklarasi pencarian vokal, konsonan,simbol, angka, dan lainnya
void cari(int h){
if(h==-1)
{
t();
}
else
{
if(kata[h]=='a') //pencarian a
{
++a;
}
else if(kata[h]=='i') //pencarian i
{
++i;
}
else if(kata[h]=='u') //pencarian u
{
++u;
}
else if(kata[h]=='e')//pencarian e
{
++e;
}
else if(kata[h]=='o')//pencarian o
{
++o;
}
else if(kata[h]=='0'||kata[h]=='1'||kata[h]=='2'||kata[h]=='3'||kata[h]=='4'||kata[h]=='5'||kata[h]=='6'||kata[h]=='7'||kata[h]=='8'||kata[h]=='9')
{
++inc; //pencarian angka
}
else if(kata[h]==' ')
{
++spasi; //pencarian spasi
}
else if(kata[h]=='!'||kata[h]=='@'||kata[h]=='#'||kata[h]=='$'||kata[h]=='%'||kata[h]=='^'||kata[h]=='&'||kata[h]=='*')
{
++simbol; //pencarian simbol
}
else
{
++konsonan;
}
--h;
cari(h);
}
}
void t(){
printf("\nJumlah karakter a\t\t: %d\n",a);
printf("Jumlah karakter i\t\t: %d\n",i);
printf("Jumlah karakter u\t\t: %d\n",u);
printf("Jumlah karakter e\t\t: %d\n",e);
printf("Jumlah karakter o\t\t: %d\n",o);
printf("Jumlah karakter Angka \t\t: %d\n",inc);
printf("Jumlah karakter konsonansonan\t: %d\n",konsonan);
printf("Jumlah karakter Spasi \t\t: %d\n",spasi);
printf("Jumlah Simbol \t \t\t: %d\n",simbol);
}
int main(void){
printf("*****Program Pencarian Huruf Vokal, Konsonan dan lainnya ***\n");
printf("************************************************************\n");
fflush(stdin);
printf("Masukkan kalimat = ");
gets(kata);
cari(strlen(kata)-1); //pemanggilan fungsi rekursif
system("pause");
return(0);
}
Tidak ada komentar:
Posting Komentar