Arama butonu
Bu konudaki kullanıcılar: 1 misafir
4
Cevap
2415
Tıklama
0
Öne Çıkarma
Fortran fibonacci serisi
W
15 yıl
Teğmen
Konu Sahibi

merhaba arkadaşlar bu sene programlama dersi alıyorum.Şu sıralar fortran öğreniyoruz,fortranda çeşitli matematiksel hesaplar yapan programlar yazıyoruz.Size sormak istediğim bir nokta var,fibonacci serisinin ilk yedi elemanını hesaplayan programı yazdım fakat a'dan b'ye sayı dizisinde fibonacci elemanlarını bulan programı yazamadım.Bir kaç yol denedim fakat olmadı.Acaba nasıl bir yol izlemem gerekir,yazdığım ilk yedi elemanlık programın kodlarını aşağıya koyuyorum,onun üzerinden şurayı şu şekilde değiştirerek yapabilirsin ya da şu şekilde düşünmen gerekir diyerek yardımcı olursanız sevinirim.

!fibonacci serisinin ilk 7 elemanı
program xxx
implicit none
integer::a,b,i,t
a=1
b=1
write(*,*)a
write(*,*)b
do i=1,5,1
t=a+b
a=b
b=t
write(*,*)t
end do
stop
end program xxx

DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.

Üye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.

Üye Ol Şimdi Değil



R
15 yıl
Teğmen

fortran'ı artık hatırlamıyorum ama yöntem olarak basit bir önerim olabilir senin yazdığın kod üzerinden.

tanımlama kısmını x, y isimlerinde iki integer tanımlayıp bunu aralığı belirleyen değerler olarak kullan. ör:
x=10000
y=20000

en alttaki write deyimini aşağıdaki şart sağlanması durumunda çalışacak duruma getir.
if ((t .GE. x) .AND. (t .LE. y))
write(*,*)t
endif

döngüyü de integer sınırına sığacak en büyük fib. sayısını kapsaması için ör. 48 yap.
do i=1,48,1

eğer döngüden çıkmak mümkünse fortran'da
if (t .GT. y)
kontrolü ile 48'e kadar gitmeden de çıkabilirsin.


Bu mesaja 1 cevap geldi.
G
15 yıl
Yarbay

fortran bilmiyorum ama belki mantık olarak işine yarar. Java da böyle;

fibonacci sayılarını hesaplayan fonksiyon yazıldıktan sonra
 
public static int fibonacci(int n)
{
if (n <= 2)
return 1;
else
return fibonacci(n - 1) + fibonacci(n - 2);
}

main metodumda sonsuz döngü içerisinde çağırıyorum.
Hesaplanan sayı x(5) den büyük ve y(25)'den küçükse ekrana yazdırıyorum.
25 den büyük ise döngüden çıkartıyorum.
 
int x = 5;
int y = 25;
for (int i = 0; ; i++) {
int f = fibonacci(i);
if (f > x & f < y ){
System.out.println(i + ". fibonacci sayısı = " + f);
}
if (f > y ){
break;
}
}





< Bu mesaj bu kişi tarafından değiştirildi gergozen -- 4 Ocak 2011; 19:41:39 >
Bu mesaja 1 cevap geldi.
İ
15 yıl
Yüzbaşı

Fortran bilmiorm ama c# :D
static int fibo(int n)
{
if (n <= 1) return n;
else return fibo(n-1)+fibo(n-2);
}

static void Main(string[] args)
{
Console.WriteLine(fibo(10));
Console.ReadLine();
}


Bu mesaja 1 cevap geldi.
K
14 yıl
Yüzbaşı

fortran biliyorum ama geç kalmışım

evet gereksizdi



DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.