Yazar |
|
reccae
istanbul
banlandı
Kayıt: 15.02.2006 |
|
evet forum ahalisi
başlıktan da anlayacağınız gibi amacım buraya fortranla ilgili küçük bir program arşivi yapmak
bunu tek başıma yapmak gibi bi niyetim yok zaten yapamam da
fortran bilen arkadaşların desteği ile birlikte yola çıkarsak bana bu iş olur gibi geldi
bize verilen kitapta bu program ile ilgili adam gibi bişey yok
hem kendimiz hem okula yeni gelecek ufaklıklar için bişeyler yapalım burda
ilk program benden
dairesel hareketin yarıçapını bulan prog
real a,g,v,R,mach,ivme
write(*,*)"enter the mach value"
read(*,*) mach
v=340*mach
write(*,*) "merkezcil ivmeyi giriniz"
read(*,*) ivme
a=ivme*9.81
R=v**2/a
write(*,*) "Turning radius of the aircraft is",R,"m"
end
centripetal acceleration merkezcil ivmeyi belirtiyo
bunları girincede dairesel hareketin yarıçapı çıkıyo
insa ettigim binanin cimentosu kelâm
|
|
Yazar |
|
reccae
istanbul
banlandı
Kayıt: 15.02.2006 |
|
2. program
bu programda karakterdeki sesli sessiz harflerin ve rakamların sayısını buluyo
yazmak uzun ama copy paste yapın
INTEGER Sesli=0 , Sessiz=0, Rakam=0
INTEGER Bosluk=0, Diger=0, I
CHARACTER Karakter
CHARACTER (LEN=80) Satir
READ '(A)', Satir
DO I=1,80
Karakter=Satir(I:I)
! yukarida bir karakter secilir
SELECT CASE (Karakter)
CASE ('A','E','I','O','U', &
'a','e','i','o','u')
Sesli=Sesli + 1
CASE ('B','C','D','F','G','H', &
'J','K','L','M','N','P', &
'Q','R','S','T','V','W', &
'X','Y','Z', &
'b','c','d','f','g','h', &
'j','k','l','m','n','p', &
'q','r','s','t','v','w', &
'x','y','z')
Sessiz=Sessiz + 1
CASE ('1','2','3','4','5','6','7','8','9','0')
Rakam=Rakam + 1
CASE (' ')
Bosluk=Bosluk + 1
CASE DEFAULT
Diger=Diger+1
END SELECT
END DO
PRINT *, ' Sesli harfler = ', Sesli
PRINT *, ' Sessiz harfler = ', Sessiz
PRINT *, ' Digits = ', Rakam
PRINT *, ' Blanks = ', Bosluk
PRINT *, ' Diger karakterler = ', Diger
END PROGRAM
karakter sayısı sabit olduğu için boşluk sayısı yüksek çıkabiliyo
ama çalışıyo
insa ettigim binanin cimentosu kelâm
|
|
Yazar |
|
shyama
Kayıt: 27.01.2006 |
|
Fortran kimin işine yarayacak artık bilmiyorum ama zamanında yaptığımız ödevlerden biri de benden.
10 ile 100 arasında girilen bir sayının asal olup olmadığını bulan program:
program asal
implicit none
integer::a
character(1)::cvp
do
print*,"10 ile 100 arasında bir sayı giriniz"
read*,a
if(a<10.or.a>100) then
print*,"uygun olmayan bir sayı girdiniz"
print*
cycle
end if
if(mod(a,2)==0) then
print*,"asal de§ildir"
else if(mod(a,3)==0) then
print*,"asal de§ildir"
else if(mod(a,5)==0) then
print*,"asal de§ildir"
else if(mod(a,7)==0) then
print*,"asal de§ildir"
else
print*,"asaldır"
end if
print*
print*,"yeni deneme yapmak ister misiniz?"
read*,cvp
if(cvp=="h".or.cvp=="H") exit
print*
end do
end program
Ya?amak bir a?aç gibi tek ve hür...
Ve bir orman gibi karde?cesine...
N.H.Ran
|
|
Yazar |
|
reccae
istanbul
banlandı
Kayıt: 15.02.2006 |
|
shyama program için saol
seninde dediğin gibi bu programlar pek bi işe yaramayacak
ama derste öğretiyolar ve sınavda da soracaklar BMG-2 dersinde
böyle bi program arşivi yaparsak yeni gelecekler içinde bizim içinde(1.sınıflar) iyi olabilir dedim
ama arkadaşlar pek ilgi göstermedi
herhalde daha farketmediler bu başlığı
devamını bekleriz arkadaşlar
paylaşalım biraz dimi
adı üstünde paylaşım
insa ettigim binanin cimentosu kelâm
|
|
Yazar |
|
orhan
istanbul
admin
Kayıt: 17.11.2005 |
|
farkeden farkediyor siz devam edin. bu arada bunları bir şekilde indexleyip zipleyip siteye koymak lazım.
N/A
|
|
Yazar |
|
shyama
Kayıt: 27.01.2006 |
|
sen saol reccae :)
basit bi ödev sorusu daha:
Girilen 3 sayıdan en büyük olanını bulan program.
PROGRAM EN_BUYUK_SAYIYI_BULMAK
IMPLICIT NONE
INTEGER::A,B,C,BUYUK
CHARACTER(1)::CVP
DO
PRINT*,"3 TAMSAYI G˜R˜N˜Z"
READ*, A, B, C
BUYUK=A
IF(BUYUK<B) THEN
BUYUK=B
END IF
IF(BUYUK<C) THEN
BUYUK=C
END IF
PRINT*,"EN BUYUK SAYI=",BUYUK
PRINT*
PRINT*,"YENIDEN DENEMEK ISTER MISINIZ?(E/H)"
READ*,CVP
IF((CVP=="H").OR.(CVP=="h")) EXIT
END DO
END PROGRAM
Ya?amak bir a?aç gibi tek ve hür...
Ve bir orman gibi karde?cesine...
N.H.Ran
|
|
Yazar |
|
nohead
Tristram
Kayıt: 26.08.2006 |
|
2. dereceden 1 bilinmeyenli denklemin köklerini alan kodları.
IMPLICIT NONE
real a,b,c,x1,x2,delta
write(*,*)"denklemin katsayilarini giriniz"
read(*,*)a,b,c
delta=(b**2)-(4*a*c)
if (delta<0) then
write(*,*)"gercek kok yoktur"
else if (delta==0) then
x1= -b/(2*a)
write(*,*)"kokler cakisiktir"
write(*,*)"koklerin degeri:",x1
else
x1=(-b+sqrt(delta))/(2*a)
x2=(-b-sqrt(delta))/(2*a)
write(*,*)"ilk kok",x1
write(*,*)"ikinci kok", x2
end if
end
"The will of the nation" is one of those expressions which have been most profusely abused by the wily and the despotic of every age."
Alexis de Tocqueville
¨
|
|
Yazar |
|
nohead
Tristram
Kayıt: 26.08.2006 |
|
3 sayidan en büyük ikisinin çarpımını veren kod.
Kod-1:
integer a,b,c,d,e,f
write(*,*)"uc sayi giriniz"
read(*,*)a,b,c
d=a*b
e=b*c
f=a*c
if(min(a,b,c)==c) then
write(*,*)d
else if (min(a,b,c)==b) then
write(*,*)f
else
write(*,*)e
end if
end
bu da kendi icadım tabii min. değer sıfır olunca çöküyo,onu aradan çıkartmak için bi if(..) mekanizması koymam lazım.
integer a,b,c,d
write(*,*)"uc sayi giriniz"
read(*,*)a,b,c
d=min(a,b,c)
write(*,*)"sonuc=", a*b*c/d
end
"The will of the nation" is one of those expressions which have been most profusely abused by the wily and the despotic of every age."
Alexis de Tocqueville
¨
|
|
Yazar |
|
nohead
Tristram
Kayıt: 26.08.2006 |
|
select case(..)ile ilgili güzide bir örneğimiz lab'da da yapmıştık.
integer secim
write(*,*)"Istanbul Turizm A.$ Sunar"
write(*,*)"1. Asya Turu"
write(*,*)"2 .Avrupa Turu"
write(*,*)"3. Amerika Turu"
write(*,*)"Seciminizi giriniz:"
read(*,*)secim
select case(secim)
case(1) !secim=1 ise yapilacak olanlar burada yazili
write(*,*)"1. Asya Turu"
write(*,*)"ucak ile moskova, pekin, tokio"
write(*,*)"4 yildizli otellerde 3 gece 2 gun 2500$"
case(2)
write(*,*)"2 .Avrupa Turu"
write(*,*)"ucak ile viyana, paris, budapeste"
write(*,*)"5 yildizli otellerde, 3 gece 2 gun 1500$"
case(3)
write(*,*)"3. Amerika Turu"
write(*,*)"ucak ile new york, los Angeles"
write(*,*)"4 yildizli butik otellerde 4 gece 3 gün,4000$"
case default
write(*,*)"seciminiz hatali! 1, 2 veya 3 giriniz!"
end select
end
"The will of the nation" is one of those expressions which have been most profusely abused by the wily and the despotic of every age."
Alexis de Tocqueville
¨
|
|
Yazar |
|
nohead
Tristram
Kayıt: 26.08.2006 |
|
kullanıcının verdiği 2 sayıyla, kullanıcının seçtiği işlemi yapan program.
real i,j,k
integer islem
write(*,*)"1.Toplama"
write(*,*)"2.Cikarma"
write(*,*)"3.Carpma"
write(*,*)"4.Bolme"
write(*,*)"yapmak istediginiz islemin kodunu giriniz"
read(*,*)islem
write(*,*)"iki tamsayi degeri giriniz"
read(*,*) i,j
!seçimi kontrol edecek bölümün başladığı yer
select case(islem)
case(1)
k=i+j
write(*,*)"sayilarin toplami=",k
case(2)
k=i-j
write(*,*)"sayilarin farki=",k
case(3)
k=i*j
write(*,*)"sayilarin carpimi=",k
case(4)
k=i/j
write(*,*)"sayilarin orani=",k
case default
write(*,*)"hatali secim, tekrar giriniz"
end select
end
"The will of the nation" is one of those expressions which have been most profusely abused by the wily and the despotic of every age."
Alexis de Tocqueville
¨
|
|
Yazar |
|
nohead
Tristram
Kayıt: 26.08.2006 |
|
1'den belirlenen sayıya kadar toplama yapan program.
Do döngüsü için basit bir örnek.
real sayi,toplam,ort
integer i,n
write(*,*)"toplanacak sayi miktarini giriniz:"
read(*,*)n
toplam=0
do i=1,n
write(*,*) i, ". sayiyi giriniz"
read(*,*) sayi
toplam=toplam+sayi
end do
ort=toplam/n
write(*,*)"sayilerin toplami=", toplam
write(*,*)"sayilarin ortalamasi=", ort
end
"The will of the nation" is one of those expressions which have been most profusely abused by the wily and the despotic of every age."
Alexis de Tocqueville
¨
|
|
Yazar |
|
nohead
Tristram
Kayıt: 26.08.2006 |
|
bir işyerindeki personelin toplamını, ortalamasını, en çok ve en az maaşı göseren program.
character cevap
integer n,i
real maas,ort,toplam,dusukmaas,yuksekmaas
do
write(*,*)"personel sayisini giriniz"
read(*,*) n
write(*,*)"ilk personelin maasini giriniz"
read(*,*)maas
dusukmaas=maas
yuksekmaas=maas
toplam=maas
do i=2,n
write(*,*)i,".personelin maasini giriniz:"
read(*,*)maas
toplam=toplam+maas
if(maas>yuksekmaas)then
yuksekmaas=maas
else if(maas<dusukmaas)then
dusukmaas=maas
end if
end do
ort=toplam/n
write(*,*)"maaslarin toplami=", toplam
write(*,*)"maaslarin ortalamasi=",ort
write(*,*)"en yuksek maas=", yuksekmaas
write(*,*)"en dusuk maas=", dusukmaas
write(*,*)"yeni bir hesaplama yapmak istiyor musunuz? E/H"
read(*,*) cevap
if((cevap=="h").or.(cevap=="H"))exit
end do
end
"The will of the nation" is one of those expressions which have been most profusely abused by the wily and the despotic of every age."
Alexis de Tocqueville
¨
|
|
Yazar |
|
nohead
Tristram
Kayıt: 26.08.2006 |
|
Girilen TL'nin USD karşılığını bulan program.
implicit none
real dolar,ytl,kur
character cevap
write(*,*)"dolar kurunu giriniz:"
read(*,*) kur
do
write(*,*)"turk lirasi miktari:..."
read(*,*) ytl
if(ytl.le.0)then
write(*,*)"ytl miktarini yanlis girdiniz!"
cycle
end if
dolar=ytl/kur
write(*,1) ytl, dolar
1 format(F15.2 ,"turk lirasinin dolar karsiligi",F9.2 ,"dolardir")
write(*,*)"devam edecek misiniz? E/H"
read(*,*)cevap
if((cevap=="h").or.(cevap=="H"))exit
end do
end
"The will of the nation" is one of those expressions which have been most profusely abused by the wily and the despotic of every age."
Alexis de Tocqueville
¨
|
|
Yazar |
|
cengineer
Kayıt: 27.10.2006 |
|
designed by cengineer!klişeleşmiş bir durum arkadaşlar bu da benden
| integer i
character*26 a,b
a="abcdefghijklmnopqrstuvwxyz"
do i=1,25
b=a(1:i)
write(*,*) b
end do
end |
" Her arayan bulamayabilir ancak bulanlar arayanlardir..! " Imam-i Rabbâni
|
|
Yazar |
|
concordia
Kayıt: 14.02.2007 |
|
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?
integer i,n,toplam,sayi
real ort
CHARACTER*1 CEVAP
do
toplam=0
write(*,*)"toplanacak sayi miktarini giriniz"
read(*,*)n
do i=1,n
write(*,*)i,". sayiyi giriniz"
read(*,*)sayi
if (sayi .lt. 0) then
write(*,*)"hatali giris! sayiyi tekrar giriniz:"
read(*,*)sayi
toplam=toplam+sayi
cycle
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
|
|
| | | | | | | | | | | |