Arkadaşlar, cok acil Fortran 77 de yazilmis, dosyadan sayıları okuyup, her 100 datada bir ortalama alıp, bu ortalamaları başka bir dosyaya yazacak bir fortran programı gerekiyor. Dizi kullanılarak yazılıcakmış. Yardımcı olabilecek birileri olursa cok sevinirim.
PROGRAM ORTALAMA IMPLICIT NONE REAL (A,B,TA,TB,ORTA,ORTB) open (1, file='input.xvg') open (2, file='ortalama.txt') do while (.not. eof(1)) TA=0.0 TB=0.0 do i = 1,100 read(1,*) A,B TA=TA+A TB=TB+B end do ortA=TA/100 ortB=TB/100 write(2,*) ortA,ortB end do end
bişeyler yaptım ama hata veriyor program hatam nerde görebilen varmı??????
1'den 100'e kadar olan döngün var. Eğer, bu arada 1.dosyada başka kayıt kalmazsa sorun olur çünkü EOF koşulu gerçekleşmiştir. Dosya-sonu denetimini (EOF), 1..100 döngüsünün içine almalısın.
Dün gece forumda bir sorun vardı sanırım gönderemedim.
2. dosya yeni oluşturulacaksa (varolan bir dosya değilse) "status" sözcüğü içermeli. Program bitmeden önce de dosyaları close ile kapatmalısın.
Fortran yazmayalı yıllar oldu. Biraz google ile fortran77'ye bakındım. Umarım aşağıdaki kodlar doğrudur.
PROGRAM ORTALAMA IMPLICIT NONE REAL (A,B,TA,TB,ORTA,ORTB) open (1, file='input.xvg') open (2, file='ortalama.txt', status='NEW')
20 TA=0.0 TB=0.0 J=0 do i = 1,100 read(1,*) A,B if EOF(1) goto 60 J=J+1 TA=TA+A TB=TB+B end do
ortA=TA/100 ortB=TB/100 write(2,*) ortA,ortB goto 20 60 if (J.EQ.0) goto 80 ortA=TA/J ortB=TB/J write(2,*) ortA,ortB 80 close(1) close(2) end
Program, diskten 100'lük (çiftler halinde) sayılar okur. Bunların ortalamasını alıp, bir çift olarak 2.dosyaya yazar. Eğer 1.dosyada 100'ün katlarında veri yoksa, örn. 120 tane varsa, kalan 20 için de ortalama hesabı yapılmalı. Kalan veri sayısı için J değişkeni kullandım.
Fortran77, bir dil standardıdır. Bu standarda uygun birçok derleyici var (C ve Pascal'da olduğu gibi). Bende fortran derleyicisi yok. İnternetten bulabildiğim birkaç kaynaktan anladığım kadarıyla Force 3 Beta kullanıyorsun. Bu bir arayüz (ide) ve arka planda da fortran77 derleyicisi var. Yazdığın program dosyasını (.f uzantılı) bir başka F77 derleyicisi ile çalıştırabilmen lazım (windows için). Gerekiyorsa, diğer derleyici .f uzantısı kabul etmiyorsa, dosyanın uzantısını değiştirirsin.
Bu arada, hala fortran için çalışmalar yapılması ilginç geldi. (özellikle ilk standart fortran'ın 1960'larda ortaya çıktığı düşünülünce.) Demek ki "modası geçti" deyip bir kenara atmıyorlar
Arkadaslar cok acil fortran force 2.0 da yazilacakbu sorunun cvbi lazimsoru : 0aninda 2 bakteri var bu bakteriler her 5 dk da bir ikiye bolunup cogaliyo 60.dk kac tane bakteri olacagini hesaplayan bir fortran programi yaziniz. Soru bu cvbini bilen varsa acil yardim ederse sevinirim yoksa okulum bir yil uzayacak
Bu mesaja 1 cevap geldi. Cevapları Gizle
IMPLICIT NONE
REAL (A,B,TA,TB,ORTA,ORTB)
open (1, file='input.xvg')
open (2, file='ortalama.txt')
do while (.not. eof(1))
TA=0.0
TB=0.0
do i = 1,100
read(1,*) A,B
TA=TA+A
TB=TB+B
end do
ortA=TA/100
ortB=TB/100
write(2,*) ortA,ortB
end do
end
bişeyler yaptım ama hata veriyor program hatam nerde görebilen varmı??????
< Bu mesaj bu kişi tarafından değiştirildi caglarr1905 -- 9 Aralık 2010; 15:01:41 >
Bu mesaja 1 cevap geldi. Cevapları Gizle
Eğer, bu arada 1.dosyada başka kayıt kalmazsa sorun olur
çünkü EOF koşulu gerçekleşmiştir.
Dosya-sonu denetimini (EOF), 1..100 döngüsünün içine almalısın.
Bu mesaja 1 cevap geldi. Cevapları Gizle
baska bisey eklemem gerekiyor mu ?
Bu mesaja 1 cevap geldi. Cevapları Gizle
2. dosya yeni oluşturulacaksa (varolan bir dosya değilse) "status" sözcüğü içermeli.
Program bitmeden önce de dosyaları close ile kapatmalısın.
Fortran yazmayalı yıllar oldu.
Biraz google ile fortran77'ye bakındım. Umarım aşağıdaki kodlar doğrudur.
Program, diskten 100'lük (çiftler halinde) sayılar okur.
Bunların ortalamasını alıp, bir çift olarak 2.dosyaya yazar.
Eğer 1.dosyada 100'ün katlarında veri yoksa, örn. 120 tane varsa,
kalan 20 için de ortalama hesabı yapılmalı.
Kalan veri sayısı için J değişkeni kullandım.
Bu mesaja 1 cevap geldi. Cevapları Gizle
Bu mesaja 1 cevap geldi. Cevapları Gizle
Bu mesaja 2 cevap geldi. Cevapları Gizle
Bende fortran derleyicisi yok. İnternetten bulabildiğim birkaç kaynaktan
anladığım kadarıyla Force 3 Beta kullanıyorsun.
Bu bir arayüz (ide) ve arka planda da fortran77 derleyicisi var.
Yazdığın program dosyasını (.f uzantılı) bir başka F77 derleyicisi ile çalıştırabilmen lazım (windows için).
Gerekiyorsa, diğer derleyici .f uzantısı kabul etmiyorsa, dosyanın uzantısını değiştirirsin.
Bu arada, hala fortran için çalışmalar yapılması ilginç geldi.
(özellikle ilk standart fortran'ın 1960'larda ortaya çıktığı düşünülünce.)
Demek ki "modası geçti" deyip bir kenara atmıyorlar
http://gcc.gnu.org/fortran/ fortran derleyici.
< Bu ileti mobil sürüm kullanılarak atıldı >