PDA

Tam Sürümünü Görmek İçin : fortranda ikinci dereceden denklem çözümü nasıl yapılır?


burakco
07/10/2005, 00:54
slm arkadaşlar, benim bi sorum war:

fortranda a,b,c katsayılarını kullanıcıya girdirerek axKARE+bx+c=0 şeklindeki denklemin köklerini nasıl buldururuz?

hani asp de kullanılan if-else warya aynı öle yapılcakmış,bu if-else burda nasıl yazcaz biliyo musunuz?


apachesoul
07/10/2005, 03:42
INTEGER A,B,C
REAL DELTA,X1,X2

print*, 'A'
READ*,A
print*, 'B'
READ*,B
print*, 'C'
READ*,C

WRITE (*,'("A: ",I4)')A
WRITE (*,'("B: ",I4)')B
WRITE (*,'("C: ",I4)')C

DELTA = (B**2)-(4*(A*C))
WRITE (*,'("DELTA = ",F9.3)')DELTA

IF (DELTA < 0.) THEN
WRITE (*,'("REEL KÖK YOKTUR")')
END IF

IF (DELTA .EQ. 0) THEN
WRITE (*,'("ÇİFT KAT KÖK VAR")')
X1 = -B/(2*A)
WRITE (*,'("X1 = X2 = ",F9.3)')X1
END IF

IF (DELTA > 0.) THEN
WRITE (*,'("İKİ AYRI KÖK VARDIR")')
X1 = (-B + (DELTA**(.5)))/(2*A)
X2 = (-B - (DELTA**(.5)))/(2*A)
WRITE (*,'("X1 = ",F9.3)')X1
WRITE (*,'("X2 = ",F9.3)')X2
END IF

END

*** TEZİMİ FORTRANDA VERMİŞTİM HATTA EŞ ZAMANLI RUNGEKUTTA ÇÖZDÜRÜYORDUM FAKAT UNUTMUŞUZ İŞTE FORTRANIN SYNTAXINI İŞİNİ GÖRÜR SANIRSAM. KENDİNE UYARLARSIN

burakco
09/10/2005, 13:45
dostum çok sağol önerin için ama ben daha kısa bi yol buldum sanırım bu doğrumu? ben şu ana kadar bi hata almadım :)

program kok
write (*,*) 'Lutfen a,b,c yi giriniz'
read (*,*) a,b,c
delta=(b**2)-(4*a*c)
if(delta.LT.0) then
write (*,*) 'reel kok yoktur'
else if (delta.EQ.0) then
x=-(b)/2*a
write (*,*) 'cakisik kok vardir'
write (*,*) x
else if (delta.GE.0) then
x_1=(-b+(sqrt(delta)))/(2*a)
x_2=(-b-(sqrt(delta)))/(2*a)
write (*,*) 'iki reel kok vardir'
write (*,*) 'x1=',x_1
write (*,*) 'x2=',x_2
end if
end

ama seninkinide incelicem baya ayrıntılı bişeye benziyo :D