PROGRAM KomSat !------------------------------------------------------- ! hesap.f95 ! Komut satırından girilen iki sayı üzerinde beş işlem. ! Kullanımı: hesap sayı1 operatör sayı2 !------------------------------------------------------- IMPLICIT NONE INTEGER :: N REAL :: X, Y, Z CHARACTER(10) :: Arg1, Arg2, Arg3 ! Arguman sayısı N = COMMAND_ARGUMENT_COUNT() IF(N < 3) STOP "Eksik parametre" IF(N > 3) STOP "Fazla parametre" CALL GET_COMMAND_ARGUMENT(1,Arg1) ! 1 inci parametre CALL GET_COMMAND_ARGUMENT(2,Arg2) ! 2 nci parametre CALL GET_COMMAND_ARGUMENT(3,Arg3) ! 3 üncü parametre x = KtrGer(Arg1) y = KtrGer(Arg3) SELECT CASE(Arg2(1:2)) CASE('+'); z = x+y CASE('-'); z = x-y CASE('*'); z = x*y CASE('/'); z = x/y CASE('**'); z = x**y CASE DEFAULT; z = 0.0 WRITE(*,*) "Geçersiz parametre: ", Arg2 END SELECT PRINT *," Sonuc = ",z CONTAINS ! Bu fonksiyon bir katarı gerçel sayıya dönüştürür REAL FUNCTION KtrGer(Katar) CHARACTER (*), INTENT(IN) :: Katar READ(UNIT=Katar, FMT='(F10.5)') KtrGer END FUNCTION KtrGer END PROGRAM