Programlama | Programlama Dilleri | C Programlama Dili |C++

Anasayfa Programlama Haskell Açılarına Göre Üçgenleri Sınıflayan Fonksiyon


Açılarına Göre Üçgenleri Sınıflayan Fonksiyon

Haskell programlama dilinde yazılmış bu fonksiyonda argüman olarak bir data yapısı alınmıştır. Bu fonksiyonda uygun tipte girilen üçgenlerin hangi tür üçgenler olduğu hesaplanmıştır. Hesaplanabilen üçgen türleri aralarındaki açı durumlarına göre dik açılı, dar açılı veya geniş açılı olabilmektedir.Dik açılı üçgende Rightt yazılmasının sebebi haskell programlama dilinde Right isimli bir anahtar kelimenin bulunmasıdır.

Ör :

 getKot [(S 3 4 5),(S 4 5 6), (S 7 1 8)]
[Rightt,Acute,Obtuse]

Program Kodu :

  1.  
  2. data Triangle = S Int Int Int
  3. data Species = Acute | Rightt | Obtuse deriving Show
  4.  
  5. getKot :: [Triangle] -> [Species]
  6. getKot []     = []
  7. getKot (x:xs) = [kontrol x] ++ getKot xs
  8.  
  9. kontrol :: Triangle -> Species
  10. kontrol (S a b c) 
  11.                 | (((a*a)+(b*b))== (c*c)) || (((a*a)+(c*c))== (b*b)) || (((c*c)+(b*b))== (a*a))  = Rightt
  12.                 | (((a*a)+(b*b*b))<(c*c)) || (((b*b)+(a*a*a))<(c*c)) || (((a*a)+(c*c*c)) <(b*b)) || (((c*c)+(a*a*a)) <(b*b)) || (((c*c)+(b*b*b)) <(a*a)) || (((b*b)+(c*c*c)) <(a*a))   = Obtuse
  13.                 | (((a*a)+(b*b*b))>(c*c)) || (((b*b)+(a*a*a))>(c*c)) || (((a*a)+(c*c*c)) >(b*b)) || (((c*c)+(a*a*a)) >(b*b)) || (((c*c)+(b*b*b)) >(a*a)) || (((b*b)+(c*c*c)) >(a*a))   = Acute
  14.  
  15.  

Yorumlar (0)
Sadece kayıtlı kullanıcılar yorum yazabilir!