Konuyu görüntüle
IUCODERS FORUM > Duyurular > Okul ile ilgili > fortran bilenler...burada hata nerde.
Yazar
adaniak


avatar

Kayıt: 13.01.2007
15.01.2007-01:50 #13567
!Bir Acının Trigonometrik Degerlerinin Hesaplanısı
real x,sonuc
real , parameter::pi=3.1415926
integer secim
11 write(*,*) "Asagidaki islemlerden birini seciniz"
write(*,*) "Cikis icin 7 yazin"
write(*,*) "Yeni islem icin 8 yazin"
write(*,*)"1 sinx"
write(*,*)"2 cosx"
write(*,*)"3 tanx"
write(*,*)"4 arcsinx"
write(*,*)"5 arccosx"
write(*,*)"6 arctanx"
read(*,*) secim
select case(secim)
case(1)
write(*,*) "x degerini giriniz(ACI(Derece) veya REEL)"
read(*,*) x
sonuc=(x*(pi/180))
write (*,*) "sinx=" ,sonuc
case(2)
sonuc=cos(x*(pi/180))
write(*,*)"cosx=",sonuc
case(3)
sonuc=tan(x*(pi/180))
write(*,*)"tanx=",sonuc
case(4)
sonuc=asin(x)*180/pi
write(*,*)"arcsinx=",sonuc
case(5)
sonuc=acos(x)*180/pi
write(*,*)"arccosx=",sonuc
case(6)
sonuc=atan(x)*180/pi
write(*,*)"arctanx=",sonuc
case(7)
goto 12
case(8)
goto 11
case default
write(*,*)"Yanlıs Secim"
end select
read(*,*) sonuc
12 end
burada hata nerede yardımcı oloabilir misiniz....1. sınıf olduğum için bu kadarını yapabildim ama çalıştıramadım..doğru sonuçlar vermiyor....





Yazar
tatanga


avatar

Kayıt: 13.10.2006
15.01.2007-02:03 #13569
bmg de fortran anlatıldı mı?





Yazar
spino


avatar

Kayıt: 22.01.2006
15.01.2007-11:02 #13577
Fortran'ı unutalı yıllar oldu ama bi yerde

select case(secim)
case(1)
write(*,*) "x degerini giriniz(ACI(Derece) veya REEL)"
read(*,*) x

demişsin. Sadece sin(x) hesaplanacağı zaman x değerini alıyor.





Yazar
adaniak


avatar

Kayıt: 13.01.2007
15.01.2007-11:05 #13578
Fortran anlatılmadı ama ben kendim öğrendim....Açıyı nasıl belirtmeliyim....





Yazar
fealin


avatar

Kayıt: 30.01.2006
15.01.2007-21:47 #13610
adaniak yazdi
 

case(1)
write(*,*) "x degerini giriniz(ACI(Derece) veya REEL)"
read(*,*) x
sonuc=(x*(pi/180))
write (*,*) "sinx=" ,sonuc
case(2)
sonuc=cos(x*(pi/180))
write(*,*)"cosx=",sonuc
case(3)
sonuc=tan(x*(pi/180))
write(*,*)"tanx=",sonuc
case(4)
sonuc=asin(x)*180/pi
write(*,*)"arcsinx=",sonuc
case(5)
sonuc=acos(x)*180/pi
write(*,*)"arccosx=",sonuc
case(6)
sonuc=atan(x)*180/pi
write(*,*)"arctanx=",sonuc
case(7)
goto 12
case(8)
goto 11
case default
write(*,*)"Yanlıs Secim"
end select
read(*,*) sonuc
12 end
burada hata nerede yardımcı oloabilir misiniz....1. sınıf olduğum için bu kadarını yapabildim ama çalıştıramadım..doğru sonuçlar vermiyor....

sen programda sayıyı sadece 1. case de okumuşsun ayrıca sanırım unutmuşsun sonuca sin koymayı sadece 1. case in içinde yani sen sadece 1. case e girince değer alıyosun 2. 3. ve diğer caselerde değer almıyosun eğer diğer işlemleri yapabilmek istiyosan ya her case in içine aşağıdaki satırları ekliceksin

write(*,*) "x degerini giriniz(ACI(Derece) veya REEL)"
read(*,*) x

yada select case yapısına gelmeden önce sayıyı girmesini isticeksin





there is no emotion; there is peace
there is no ignorance; there is knowledge
there is no passion; there is serenity
there is no chaos; there is harmony
there is no death: there is the force
Yazar
adaniak


avatar

Kayıt: 13.01.2007
15.01.2007-23:52 #13625
!Bir Acının Trigonometrik Degerlerinin Hesaplanısı
real x,sonuc
real , parameter::pi=3.1415926
integer secim
write(*,*) "Asagidaki islemlerden birini seciniz"
write(*,*) "Cikis icin 7 yazin"
write(*,*) "Yeni islem icin 8 yazin"
write(*,*)"1 sinx"
write(*,*)"2 cosx"
write(*,*)"3 tanx"
write(*,*)"4 arcsinx"
write(*,*)"5 arccosx"
write(*,*)"6 arctanx"
read(*,*) secim
select case(secim)

case(1)
write(*,*) "x degerini giriniz(ACI(Derece) veya REEL)"
read(*,*) x
sonuc=sin(x*(pi/180))
write (*,*) "sinx=" ,sonuc

case(2)
write(*,*) "x degerini giriniz(ACI(Derece) veya REEL)"
read(*,*) x
sonuc=cos(x*(pi/180))
write(*,*)"cosx=",sonuc

case(3)
write(*,*) "x degerini giriniz(ACI(Derece) veya REEL)"
read(*,*) x
sonuc=tan(x*(pi/180))
write(*,*)"tanx=",sonuc

case(4)
write(*,*) "x degerini giriniz(ACI(Derece) veya REEL)"
read(*,*) x
sonuc=asin(x)*180/pi
write(*,*)"arcsinx=",sonuc

case(5)
write(*,*) "x degerini giriniz(ACI(Derece) veya REEL)"
read(*,*) x
sonuc=acos(x)*180/pi
write(*,*)"arccosx=",sonuc

case(6)
write(*,*) "x degerini giriniz(ACI(Derece) veya REEL)"
read(*,*) x
sonuc=atan(x)*180/pi
write(*,*)"arctanx=",sonuc




case default
write(*,*)"Yanlıs Secim"
end select
read(*,*) sonuc
end


Abiler sağolun ufak bi ayrıntıyı görmemişim...yalnız sin ve cos değerlerini bulurken örneğin sin30=0.5 ama cevabı 5.000000E-01 şeklinde vermesinin sebebi nedir...tan değerlerini normal veriyor....sin ve cos bazı değerlerinde böyle yapıyor...





Yazar
arda


avatar

Kayıt: 20.01.2006
18.01.2007-00:10 #13690
sonucu real yerine double precision olarak tanımla bakalım belki düzelir...





http://www.software-turk.com






Yazar
adaniak


avatar

Kayıt: 13.01.2007
18.01.2007-00:37 #13693
Bu sefer hiç doğru cevap bulmuyor...sin90..9.99999-01 şeklinde oldu..öncekinde sin90=1 olduğunu görebiliyordum...bazılarında sonuç vermiyor...





Yazar
musmula


avatar
istanbul
Kayıt: 11.03.2006
18.01.2007-01:23 #13696
Sin fonksiyonunun döndürdügü tipi uygularsan cıkar heralde





Del.icio.us
Digg
Facebook
Furl
Google
Blink
Simpy
Spurl
Y! MyWeb