Sunday, November 13, 2011

Menghitung Phytagoras

            Masih ingat kan pelajaran mengenai phytagoras? Tentang adanya 3 buah garis yang jumlah kuadrat sisi-sisi yang lain sama dengan kuadrat sisi terpanjangnya. Rumus umum yang digunakan adalah (a x a) + (b x b) = (c x c) dimana c merupakan sisi terpanjangnya. Nah, apa hubungannya dengan informatika? Di informatika, dimana ada masalah pasti ada solusinya, dimana ada rumus pasti ada programnya :P Jadi, setelah saya ngubek-ubek Sphere Online Judgement (SPOJ) yang notabene merupakan mainan anak informatika, saya menemukan salah satu soal spoj yang berhubungan dengan phytagoras. Jadi disini kita di wajibkan membuat program yang inputnya merupakan tiga bilangan sisi segitiga. Program ini harus bisa menghitung apakah nilai sisi-sisi tersebut menandakan dia merupakan phytagoras atau bukan. Perbandingan phytagoras yang paling umum adalah 3 : 4 : 5. Dari sinilah kita mengambil tolak ukurnya sehingga terciptalah suatu program buatan saya ini :D

#include <stdio.h>


main ()
{
     int a,b,c;
     scanf("%d%d%d",&a,&b,&c);
//a,b,c merupakan 3 sisi segitiga.


     while((a>0)&&(b>0)&&(c>0))
//disini kita menggunakan fungsi "and" (&&) karena apabila salah satu sisi bernilai nol maka dapat dipastikan sisi-sisi tersebut bukan phytagoras
     {
         if(c*c==a*a+b*b||b*b==a*a+c*c||a*a==b*b+c*c)
//nah, disini kita menggunakan fungsi "or" (||) karena akan mempermudah perhitungan, belum tentu angka yang dimasukkan akan berformat a<b<c, sehingga dengan adanya rumus-rumus ini yang dihitung menggunakan "atau" akan mengkover ke-error-an input. Karena dengan menggunakan "or" tidak harus semuanya benar tetapi cukup salah satu.
         {
            printf("right\n");
         }
         else
         {
             printf("wrong\n");
         }
     scanf("%d%d%d",&a,&b,&c);                    
//pada fungsi looping ini saya tambahkan scanf lagi agar program dapat digunakan tidak hanya untuk sekali perhitungan, tetapi bisa sebanyak yang user inginkan
     }
return 0;
}

Sekian dulu selingan koding dari saya. Kalau ada salah mohon di maafkan dan di benarkan :3

No comments:

Post a Comment