My Little Daemon™

Simple, C ProgrammingAugust 25, 2007 7:16 pm

Fungsi dalam C dapat dipakai secara rekursif, dalam artian suatu fungsi dapat memanggil dirinya sendiri. Sebagai contoh penerapan rekursi adalah untuk menghitung nilai xy, dengan y berupa bilangan bulat positif. Solusi dari persoalan ini adalah :

File rekursi.c

#include <stdio.h>

int pangkat();

pangkat(basis, exp)
int basis,exp;
{
  if (exp)
     {
       return basis * pangkat(basis, exp-1);
     }
  return 1;
}

main()
{
  printf(”%d\n”, pangkat(4,3));
}

$ gcc -o rekursi rekursi.c
$ ./rekursi
64
$

Catatan :

y=0 maka xy =1 dan yang selain itu xy = x * x(y-1)

Dedicated for Light Intermutimedia
Perusahaan Software Pulsa

Middle, C Programming 6:47 am

Variabel register adalah variabel yang nilainya disimpan dalam register dan bukan dalam memori RAM. Variabel seperti ini hanya dapat diterapkan pada variabel lokal atau parameter formal yang bertipe char dan int. Variabel register biasa diterapkan pada variabel yang digunakan untuk pengendali loop. Tujuannya untuk mempercepat proses dalam loop. Sebab variabel yang dioperasikan pada register mempunyai kecepatan pemrosesan yang jauh lebih tinggi daripada yang diletakkan di RAM.

File var_register.c

#include <stdio.h>
#include <time.h>

main()
{
  int i,j;
  register int a,b;
  long waktu_awal;

  waktu_awal=time(’\0′);

  /* tanpa variabel register */
  for (i=0; i<=100000; i++)
      for (j=0; j<=100000; j++);
           printf("Waktu total tanpa variabel register = %ld detik\n", time(’\0′) - waktu_awal);

  waktu_awal=time(’\0′);

  /* dengan variabel register */
  for (a=0; a<=100000; a++)
      for (b=0; b<=100000; b++);
           printf("Waktu total dengan variabel register = %ld detik\n", time(’\0′) - waktu_awal);
}

$ gcc -o var_register  var_register.c
$ ./var_register
Waktu total tanpa variabel register = 187 detik
Waktu total dengan variabel register = 176 detik
$

Program di atas melakukan perhitungan pada matriks 100000 x 100000, jangan coba-coba melakukannya di compiler C under Windows, di Miracle C Windows menghasilkan kalkulasi ngawur sedangkan di Borland Turbo C komputer akan hang. Viva UNIX, baca FreeBSD !

Dedicated for Light Intermutimedia
Perusahaan Software Pulsa