PROGRAM Ucgen
!-----------------------------------------------------------
! 05prg06.f95
! Kenarları bilinen bir üçgenin geometrik özellikleri
!-----------------------------------------------------------
IMPLICIT NONE
REAL, PARAMETER :: Pi = 3.141593
REAL :: A, B, C, U, Cevre, Alan
REAL :: Alfa, Beta, Teta

  PRINT *,"Üçgenin kenarlarını girin:"
  READ  *,A, B, C

  ! Bu kenarlardan üçgen olur mu?
  UcgenOlurmu: IF( A+B>C .AND. A+C>B .AND. B+C>A )THEN

      ! Üçgenin tipini belirle
      UcgenTip: IF(A==B .AND. A==C) THEN
                  PRINT *, "Bu bir eşkenar üçgen."

              ELSE IF(A==B .AND. A /= C .OR. &
                      A==C .AND. A /= B .OR. &
                      B==C .AND. A /= B) THEN
                  PRINT *, "Bu bir ikizkenar üçgen."

              ELSE
                  PRINT *, "Bu bir çeşitkenar üçgen."

      END IF UcgenTip

      ! Alan ve cevre hesapla
      Cevre = A + B + C
      U = (A + B + C)/2.0
      Alan = SQRT(U*(U-A)*(U-B)*(U-C))

      ! açıları hesapla ve dereceye çevir
      Alfa = ACOS( (B**2+C**2-A**2)/(2.0*B*C) ) * 180.0/Pi
      Beta = ACOS( (A**2+C**2-B**2)/(2.0*A*C) ) * 180.0/Pi
      Teta = ACOS( (A**2+B**2-C**2)/(2.0*A*B) ) * 180.0/Pi

      PRINT '("Üçgenin çevresi : ",  F8.2)',Cevre
      PRINT '("Üçgenin alanı   : ",  F8.2)',Alan
      PRINT '("Üçgenin açıları : ", 3F8.2)',Alfa, Beta, Teta

  ELSE

     PRINT *,"Bu kenarlardan üçgen oluşturulamaz..."

  END IF UcgenOlurmu

END PROGRAM