Konuyu görüntüle |
Yazar |
|
kartane
istanbul
Kayıt: 22.02.2007 |
|
Klavyeden girilen herhangi iki sayı arasındaki(m ile n) mükemmel sayıları(kendinden başka tam bölenlerinin toplamı kendisine eşit olan sayı.Örnek, 6'nın tam bölenleri 1,2 ve 3 bunların toplamı yine sayının kendisine eşit.) bulup ekrana yazan F90 programı:
program perfect
implicit none
integer::m,n,top,i,j
print*,"kucuk tamsayiyi giriniz:"
read*,m
print*,"buyuk tam sayiyi giriniz:"
read*,n
do i=m,n
top=0
do j=1,i-1
if(mod(i,j)==0) then
top=top+j
end if
end do
if (top==i) then
print*,top
end if
end do
end program
bu da benden....
|
|
Yazar |
|
burakkanmaz
Gaziantep
Kayıt: 02.10.2006 |
|
bmg 2 quiz de sorulmuş sorunun cevabı. kodlar bana ait deil ama kimse koymadığı için alıntı olarak koymak istedim. faydalı birşey.extreme'e teşekkürler
2 sayının ebob unu bulan f90 kodu.
extreme yazdi | real a,b,x1,x2,kalan
10 write(*,*) "1. sayıyı giriniz"
read(*,*) a
write(*,*) "2. sayıyı giriniz"
read(*,*) b
x1 = max(a,b)
x2 = min(a,b)
do
kalan = mod(x1,x2)
if (kalan == 0) exit
x1 = x2
x2 = kalan
cycle
end do
write(*,*) "Obeb=",x2
goto 10
end
|
|
|
Yazar |
|
burakkanmaz
Gaziantep
Kayıt: 02.10.2006 |
|
concordia yazdi | girilen sayıların toplamını ve ortalamasını bulan,sayılar 0'dan küçük olduğunda hata veren,işlem sonlandırıldıktan sonra devam etmek isteyip istemediğimi soran programı yazmaya çalıştım.ama olmadı nerde hata yapıyorum yardımcı olurmusunuz?
|
program düzgün çalışıyor. neyini yapamadım diyorsun ki ? sadece ortalamalarda tam kısmını alıyor. o da toplam değişkeninin integer olmasından dolayı. yani ort değişkenini programın en başında sayılar girilince alırsan bu sorun da kalmaz.
|
|
Yazar |
|
hasaney
Ünye
Kayıt: 11.12.2006 |
|
arkadaşlar ekok u yapmaya çalıştım ebob tan yararlanarak ama olmadı hatayı söyleyen olursa çok iyi olurr
integer a,b,sonuc
write(*,*) "ekok u istenen 2 sayi giriniz"
read(*,*) a,b
sonuc=(a*b)/ebob(a,b)
write(*,*) "sonuc=",sonuc
end
subroutine ebob(x1,x2)
integer x1,x2,c,d,x,k,kucuk
if(x1<x2) then
kucuk=x1
else
kucuk=x2
end if
do x=1,kucuk
c=(x1/kucuk)*kucuk
d=(x2/kucuk)*kucuk
if((c==x1).and.(d==x2)) then
k=x
end if
end do
end subroutine
d?? d? d?p d?d?d?p
d?? d? d?p d??d??d???p
|
|
Yazar |
|
concordia
Kayıt: 14.02.2007 |
|
arka arkaya birkaç tane sayıyı negatif alınca patlıyor
|
|
Yazar |
|
concordia
Kayıt: 14.02.2007 |
|
burakkanmaz sana yazdım.belirtmemişim...
|
|
Yazar |
|
marakana
Kayıt: 08.03.2007 |
|
1'den 100'e kadar olan asal sayıları bulup ekrana yazan F90 programı: daha önce koyulmuş buraya ama bu biraz daha farklı...
program asal_sayilar
implicit none
integer::sayi,bolen,sayac
sayac=0
print*,"buprogram 1 ile 100 arasindaki asal sayilari verir"
do sayi=2,100
do bolen=2,sayi-1
if (mod(sayi,bolen)==0) then
sayac=sayac+1
end if
end do
if (sayac==0) then
print *,sayi, " asal sayidir."
end if
sayac=0
end do
end program
|
|
Yazar |
|
kartane
istanbul
Kayıt: 22.02.2007 |
|
hasaney yazdi | arkadaşlar ekok u yapmaya çalıştım ebob tan yararlanarak ama olmadı hatayı söyleyen olursa çok iyi olurr
integer a,b,sonuc
write(*,*) "ekok u istenen 2 sayi giriniz"
read(*,*) a,b
sonuc=(a*b)/ebob(a,b)
write(*,*) "sonuc=",sonuc
end
subroutine ebob(x1,x2)
integer x1,x2,c,d,x,k,kucuk
if(x1<x2) then
kucuk=x1
else
kucuk=x2
end if
do x=1,kucuk
c=(x1/kucuk)*kucuk
d=(x2/kucuk)*kucuk
if((c==x1).and.(d==x2)) then
k=x
end if
end do
end subroutine
|
başta ebob işlemini tanımlamamışsın , x=EBOB(A,B) gibi sanırım
|
|
Yazar |
|
hasaney
Ünye
Kayıt: 11.12.2006 |
|
sağolasın
dediğini denedim ama beceremedim galiba
arkdaşlar yapan warsa yollarsa çok iyi olur
d?? d? d?p d?d?d?p
d?? d? d?p d??d??d???p
|
|
Yazar |
|
effective
Kayıt: 10.11.2006 |
|
bu da benden
Girilen bir tamsayının çift ya da tek oldugunu tespit eden fortran programını olusturun.
PROGRAM TEK_CIFT
IMPLICIT NONE
REAL A,B
CHARACTER(1) CVP
DO
WRITE(*,*) "BIR SAYI GIRINIZ"
READ(*,*) A
B=INT(A/2)*2
IF (A==B) THEN
PRINT*, "GIRDIGINIZ SAYI CIFTTIR"
ELSE
PRINT*, "GIRDIGINIZ SAYI TEKTIR"
END IF
PRINT*,"DEVAM ETMEK ISTIYOR MUSUNUZ?(E/H)"
READ*,CVP
IF((CVP=="H").OR.(CVP=="h")) EXIT
END DO
END PROGRAM
|
|
Yazar |
|
effective
Kayıt: 10.11.2006 |
|
arkadaşlar write yerine bu şekilde print yazınca da oluyor.değiştirmeyi unutmuşum.
|
|
Yazar |
|
marakana
Kayıt: 08.03.2007 |
|
Gelir vergisinin aşağıdaki kurallara göre belirlendiği bir vergi hesabı programı:
Gelir<=150.000.000 ise vergi oranı %25
Gelir<=300.000.000 ise vergi oranı %30
Gelir<=600.000.000 ise vergi oranı %35
Gelir<=1.200.000.000 ise vergi oranı %40
Gelir>=1.200.000.000 ise vergi oranı %50
PROGRAM Gelir Vergisi
IMPLICIT NONE
REAL Gelir, Vergi, V1, V2, V3, V4
V1=150000000*0.25
V2=150000000*0.30
V3=300000000*0.35
V4=600000000*0.40
IF(Gelir<=150000000) THEN
Vergi=Gelir*0.25
ELSE IF(Gelir<=300000000) THEN
Vergi=V1+(Gelir-150000000)*0,3
ELSE IF(Gelir<=600000000) THEN
Vergi=V1+V2+(Gelir-300000000)*0.35
ELSE IF(Gelir<=1200000000) THEN
Vergi=V1+V2+V3+(Gelir-600000000)*0.4
ELSE
Vergi=V1+V2+V3+V4+(Gelir-1200000000)*0.5
END IF
WRITE(*,*) “Hesaplanan vergi miktarı”, Vergi
END PROGRAM Gelir Vergisi
Yukarıdaki programda uygulanan vergilendirme mantığı şu şekildedir:
Örneğin, bir kişinin geliri 200.000.000 tl ise, bunun ilk 150.000.000 tl’sı %25’ten, kalan
200.000.000-150.000.000=50.000.000 tl’sı ise % 30’dan vergilendirilecektir.O nedenle programın başında her aralığın sabit vergileri hesaplanarak V1, V2, V3, V4 değişkenlerine atanmaktadır…
|
|
Yazar |
|
fonemi
Kayıt: 09.01.2007 |
|
INTEGER i, j, k
DO i=1,100
DO j=1,100
DO k=1,100
IF((i**2+j**2==k**2).AND.(i.LE.j)) THEN
WRITE(*,1) i,j,k
1 FORMAT(3I10)
END IF
END DO
END DO
END DO
END
1'den 100'e kadar olan sayılardan Pisagor üçgenlerini çıkaran program. Daha önce C'yle yazmıştım, Fortran'a çevirdim. Birkaç arc ve pi sayısı işlemleriyle yaklaşık açılar da belirlenebilir. Örneğin 3 4 5 37 53 90 gibi.
|
|
Yazar |
|
reccae
istanbul
banlandı
Kayıt: 15.02.2006 |
|
ytlye çevirseydin keşke programı bi sürü 0 var kafa karışıyo
görünen o ki 1. sınıfların yoğun gayretiyle fortran eziyeti biraz daha hafifleyecek dersi alan öğrenciler için
inşallah her zaman böyle faydalı paylaşım görürüz sitemizde
biraz da gaz verelim fortran öğrenen arkadaşlarımıza
uzaya giden araçların bir kısmında halen fortran kullanılıyor bildiğim kadarıyla
40 yıldır yazılan kodlar o kadar çoğalmışki onları başka bir dile çevirme zahmetine girmek istemiyorlarmış. tabi fortrandan daha hızlı bir programlama dili daha icad edilmedi. sebeplerden biriside bu olsa gerek
insa ettigim binanin cimentosu kelâm
|
|
Yazar |
|
burakkanmaz
Gaziantep
Kayıt: 02.10.2006 |
|
reccae yazdi |
uzaya giden araçların bir kısmında halen fortran kullanılıyor bildiğim kadarıyla
40 yıldır yazılan kodlar o kadar çoğalmışki onları başka bir dile çevirme zahmetine girmek istemiyorlarmış. tabi fortrandan daha hızlı bir programlama dili daha icad edilmedi. sebeplerden biriside bu olsa gerek |
gaza bak sen. tutmayın bizi. bırakın NASA da obeb bulalım
benim kafamı karıştıran şu;
fortranda yazdığımız yazı 5 satır. fakat exe nin boyutu 150-200 kb.
başka dillerde yazdığımız 200+ satır fakat boyut 80 kb.
nedeni nedir acaba bu uçurumun ? fortran en hızlısı diorsunuz. ama en çokta yer kaplayanı değil mi ?
hasaney yazdi | arkadaşlar ekok u yapmaya çalıştım ebob tan yararlanarak ama olmadı hatayı
söyleyen olursa çok iyi olurr
|
ebob x ekok = a x b
iki sayının obeb i çarpı okek i = sayıların çarpımı
zaten obeb bulmayı bilioruz. a*b/obeb şeklinde okek i buluruz di mi ?
concordia yazdi | arka arkaya birkaç tane sayıyı negatif alınca patlıyor |
birkaç döngü hatası var. anlatmak istediğini doğru anladıysam aşağıdaki kod istediğin gibi;
integer i,n,toplam,sayi
real ort
CHARACTER*1 CEVAP
do
toplam=0
write(*,*)"toplanacak sayi miktarini giriniz"
read(*,*)n
do i=1,n
5 write(*,*)i,". sayiyi giriniz"
read(*,*)sayi
if (sayi .lt. 0) then
write(*,*)"hatali giris! sayiyi tekrar giriniz:"
goto 5
end if
toplam=toplam+sayi
end do
ort=toplam/n
write(*,*)"toplam=",toplam
write(*,*)"ortalama=",ort
write(*,*)"devam etmek istiyormusunuz?E/H"
READ(*,*) CEVAP
if ((cevap=="h") .or. (cevap=="H")) EXIT
end do
end
|
|
|
|
-
Del.icio.us
-
Digg
-
Facebook
-
Furl
-
Google
-
Blink
-
Simpy
-
Spurl
-
Y! MyWeb
|
|
| | | | | | | | | | | | | | |