lain. Bentuk seperti ini dinamakan sebagai nested if. Secara umum, bentuk dari pernyataan ini
adalah sebagai berikut :
Kondisi yang akan diseleksi pertama kali adalah kondisi yang terluar (kondisi-1). Jika kondisi-
1 bernilai salah, maka statemen else yang terluar (pasangan if yang bersangkutan) yang akan
diproses. Jika else (pasangannya tsb) tidak ditulis, maka penyeleksian kondisi akan dihentikan.
Jika kondisi-1 bernilai benar, maka kondisi berikutnya yang lebih dalam (kondisi-2) akan
diseleksi. Jika kondisi-2 bernilai salah, maka statemen else pasangan dari if yang bersangkutan
yang akan diproses. Jika else (untuk kondisi-2) tidak ditulis, maka penyeleksian kondisi akan
dihentikan.
Dengan cara yang sama, penyeleksian kondisi akan dilakukan sampai dengan kondisi-n, jika
kondisi-kondisi sebelumnya bernilai benar.
/* File program : determinan1.c
Program untuk menghitung determinan dan akar-akar persamaan
kuadrat menggunakan if bersarang */
#include
#include
main()
{
float a, b, c, d = 0;
double x1, x2, imaginair;
if (kondisi-1)
if (kondisi-2)
.
.
if(kondisi-n)
pernyataan;
else
pernyataan;
.
.
else
pernyataan;
else
pernyataan;
printf("MENCARI AKAR-AKAR PERSAMAAN KUADRAT a+bx+c=0\n");
printf("\nMasukkan nilai a : ");
scanf("%f", &a);
printf("Masukkan nilai b : ");
scanf("%f", &b);
printf("Masukkan nilai c : ");
scanf("%f", &c);
d = b*b-4*a*c; /* menghitung determinan */
if (d >= 0)
if (d == 0)
{
x1 = -b / (2 * a);
printf("\nDua akar real kembar yaitu : \n");
printf("x1 = x2 = %g\n", x1);
}
else
{
x1 = (-b + sqrt(d))/(2*a);
x2 = (-b - sqrt(d))/(2*a);
printf("\nDua akar real berlainan yaitu :\n");
printf("x1 = %g\n", x1);
printf("x2 = %g\n", x2);
}
else
{
imaginair = (sqrt(-d)/(2*a));
x1 = -b/(2*a);
printf("\nDua akar imaginair berlainan yaitu : \n");
printf("x1 = %g + %gi\n", x1, imaginair);
printf("x2 = %g - %gi\n", x1, imaginair);
}
}
Contoh eksekusi :
MENCARI AKAR-AKAR PERSAMAAN KUADRAT a+bx+c=0
Masukkan nilai a : 3
Masukkan nilai b : 6
Masukkan nilai c : 2
Dua akar real berlainan yaitu :
X1 = -0.42265
X2 = -1.57735
Tidak ada komentar:
Posting Komentar