istanbul_üniversitesi_nükleer_fizik_bölümü_fortran77_ders_notu-uyg_6.f 2 85 Veri Tipi Veri Tanimlayici

Benzer belgeler
GİRİŞ/ÇIKIŞ VE TANIMLAMA DEYİMLERİ

FORTRAN da Giriş/Çıkış Ve Tanımlamalar

istanbul_üniversitesi_nükleer_fizik_bölümü_fortran77_ders_notu-uyg_5.f 2 85 Ornegin bir vektorun (bir boyutlu dizi) normunu hesaplayan bir

<fn> FORMAT (a1,a2,a3,...) : format deyiminin satır numarasıdır READ, WRITE deyimleri ile verilir. : alan bildirim deyimleridir.

Visual Basic 6.0. Anadolu Üniversitesi Endüstri Mühendisliği Bölümü. Dosyalama İşlemleri. Ders Notları

İstanbul Üniversitesi, Nükleer Fizik Bölümü, Fortran 77, Zorunsuz Ödev Cevapları, 2004

Temel Bilgisayar Programlama

Endüstri Mühendisliği Bölümü Bilgisayar Programlama Ders Notları

ALGORİTMA VE PROGRAMLAMA II

Genel Programlama II

Temel Giriş/Çıkış Fonksiyonları

Fonksiyonlar. C++ ve NESNEYE DAYALI PROGRAMLAMA 51. /* Fonksiyon: kup Bir tamsayının küpünü hesaplar */ long int kup(int x) {

BİLGİSAYAR PROGRAMLAMA DERSİ

Pascalda oluşturulacak dosyalar değişkenler gibi programın başında tanımlanır.

PASCAL PROGRAMLAMA DİLİ YAPISI

mod ile açılacak olan dosyanın ne amaçla açılacağı belirlenir. Bunlar:

Pascal Programlama Dili

Programlama. Simdide 1 den 10 a kadar olan sayilari yazdiralim. 1 den 10 e kadar olan sayilarin karesini yazdiralim. Do[Print[Mathematica], 5]

ELN1002 BİLGİSAYAR PROGRAMLAMA 2

Diziler İndisli Değişkenler

HSancak Nesne Tabanlı Programlama I Ders Notları

Diziler. Yukarıdaki bilgileri bilgisayar belleğinde saklamak için aşağıdaki gibi değişkenler tanımlanır ve değerler bu değişkenlere aktarılır :

DATA Deyimi. ii) DIMENSION NUM(5) DATA NUM / 1, 2, 3, 4, 5 / Bu durumda 5 elemanlı NUM dizisi, sırasıyla, 1'den 5'e kadar değerleri saklar.

PROGRAMLAMAYA GİRİŞ DERS 2

Eln 1001 Bilgisayar Programlama I

BİL-142 Bilgisayar Programlama II

Bilgisayar Programlama MATLAB

Excel Nedir? Microsoft Excell. Excel de Çalışma sayfası-tablo

BASİT C PROGRAMLARI Öğr.Gör.Dr. Mahmut YALÇIN

Eln 1002 Bilgisayar Programlama II

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-8 Değişken Tipleri ve Temel Giriş/Çıkış İşlemleri

BTP 207 İNTERNET PROGRAMCILIĞI I. Ders 9

NAZMİYE DEMİREL ORTAOKULU BİLİŞİM TEKNOLOJİLERİ DERSİ 1. DÖNEM 6. SINIFLAR DERS NOTU EXCEL 2007 DERS NOTLARI

k ise bir gerçek sayı olsun. Buna göre aşağıdaki işlemler Matlab da yapılabilir.

VISUAL BASIC DE İŞLETİM SİSTEMİ DENETİM KOMUTLARI VE FONKSİYONLARI

ALGORİTMA VE PROGRAMLAMA II

Fortran da kullanılan giriş çıkış komutları PRINT, WRITE ve READ dir.

1 PROGRAMLAMAYA GİRİŞ

OMÜ HAVACILIK VE UZAY BİLİMLERİ FAKÜLTESİ METEOROLOJİ MÜHENDİSLİĞİ BÖLÜMÜ MET103 BİLGİSAYAR PROGRAMLAMA I BÜTÜNLEME SINAVI

İŞLETMELERDE BECERİ EĞİTİMİ DERSİ MİCROSOFT WORD 2007 ÇALIŞMALARI

Excel Formüller ve Fonksiyonlar. Yusuf MANSUROĞLU Mühendislik Hizmetleri Müdür Yardımcısı

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

pfrintf fonksiyonu: Çıkışın formatlı olması ve bunun bir dosyaya yazdırılması durumlarında kullanılır. fprintf fonksiyonunun genel yazım biçimi,

Print Komutu ile Değişkenleri Yazdırmak

Algoritma ve Akış Diyagramları

MySQL'e Giris. Eger bir sorun ile karsilasmadan veritabanina baglanabildiyseniz karsiniza asagidaki gibi bir ekran gelecektir.

Program akıģı sırasında belirtilen satır numaralı yere gitmek için kullanılır. Genel formu: [<satır numarası>] GOTO <satır numarası 1> GOTO n

man komut man ls (ls komutu hakkında bilgi verir.) man pwd (pwd komutu hakkında bilgi verir.)

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

BIL106E - DOSYA YÖNETİMİ İŞLEMLERİ Muzaffer Ayvaz

3- Turbo Pascal Programlamada Giriş Çıkış İşlemleri

MAT213 BİLGİSAYAR PROGRAMLAMA I DERSİ Ders 1: Programlamaya Giriş

Girdi Çıktı İşlemleri

Temel Bilgisayar Programlama Final Sınavı Çalışma Notları

Internet Programming II

şeklinde tanımlanmıştır. O halde, dosyaları daha önceki bilgilerimizi kullanarak FILE *Dosya1, *Dosya2;

C Programlama Dilininin Basit Yapıları

Python Programlama Dili

Veritabanı. SQL (Structured Query Language)

Program Çözümleme. Aşağıdaki örneklerde printf() ve scanf() fonksiyonlarının işlevleri gösterilmektedir. Liste 1.1. Çözümleme:

BMT 101 Algoritma ve Programlama I 6. Hafta. Yük. Müh. Köksal Gündoğdu 1

Ders Tanıtım Sunumu. Internet Programming II. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı. Öğr. Gör. Murat KEÇECİOĞLU 1

1. MİCROSOFT EXCEL 2010 A GİRİŞ

Sıralı bir dosyayı açmak için FileOpen komutundan faydalanılır. Bu komutun genel kullanılış biçimi aşağıdaki gibidir:

BLM-112 PROGRAMLAMA DİLLERİ II. Ders-8 Dosya İşlemleri-1. Yrd. Doç. Dr. Ümit ATİLA

Elbistan MYO Güz Dönemi Öğr.Gör. Murat KEÇECİOĞLU

SEÇİM İŞLEMLERİ. Yüzde Hesaplamaları HÜCRE KOPYALAMA & TAŞIMA FORMÜL GİRİŞİ FORMULLER 3) DÖRT İŞLEM. a) Bugün: b) Şimdi: c) Topla: d) Çarpım:

HSancak Nesne Tabanlı Programlama I Ders Notları

ELEKTRONİK TABLOLAMA Aritmetiksel işlemler ve mantısal karşılaştırmaların yapıldığı programlar elektronik tablolama programlarıdır.

Linux ta komutlar hakkında yardım almak için aşağıdaki komutlar kullanılır : - man - info - whatis - apropos

Discount Trke Ingilizce Szck Testi Programi latest free software download ]

FORMÜLLER VE FONKSİYONLAR

EXCEL de her bir çalışma alanı bir sayfa olarak adlandırılırken, birden fazla sayfa ise kitap olarak adlandırılır.

Nesne Yönelimli Programlama

Çözüm Bilgisayar. Çözüm SIRAMATİK

BİLGİSAYAR PROGRAMLAMA

SAB 103 TEMEL BİLGİSAYAR KULLANIMI

TEMEL BİLGİTEKNOLOJİLERİ

BÖLÜM 6: KARŞILAŞTIRMALI KONTROL YAPILARI

Visual Basic 6.0. Anadolu Üniversitesi Endüstri Mühendisliği Bölümü. Değişkenler ve Veri tipleri. Ders Notları

VERİ TABANI YÖNETİM SİSTEMLERİ I

Dizgiler. C dilinde karakter m şeklinde tek tırnak içerisinde yazılan ifadelerdir. Bu karakterlerin her biri aslında bir tamsayı ile ifade edilir.

BTP 207 İNTERNET PROGRAMCILIĞI I. Ders 8

DESTEK DOKÜMANI KAYIT NUMARALAMA ŞABLONLARI

BİLGİ İŞLEM DERS 3. Yrd Doç Dr. Ferhat ÖZOK MSGSU FİZİK BÖLÜMÜ MSGSU FİZİK BÖLÜMÜ

Algoritma ve Programlama: Karar Yapıları ve Döngüler

Bil101 Bilgisayar Yazılımı I. M. Erdem ÇORAPÇIOĞLU Bilgisayar Yüksek Mühendisi

program uc_hata implicit none integer : x(5),i

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

SAB104 Bilgisayar Programlama

Regular Expressions Version 0.1

BİLGİSAYAR PROGRAMLAMA. Algoritma ve Akış Şemaları

Metin Dosyaları. Metin Dosyaları Dosya Açma ve Kapama Dosya Okuma ve Yazma Rastgele Erişim Standart Girdi/Çıktı Hata Kontrolü

BİLGİSAYAR PROGRAMLAMA MATLAB

INPUTBOX KULLANIMI. Komut Düğmesine uygulanan algoritma örneği

Koşulsuz GOTO Deyimi

GOLDMESAJ SMS API DÖKÜMANI

C# Programlama Dili. İlk programımız Tür dönüşümü Yorum ekleme Operatörler

ÖNDER BİLGİSAYAR KURSU. Microsoft Office Kursu Eğitim İçeriği

Transkript:

2003-10-13 istanbul_üniversitesi_nükleer_fizik_bölümü_fortran77_ders_notu-uyg_6.f 1 1 2 / _ 3 _ / _ \ ' ' / _` '_ \ / / / / 4 _ (_) _ (_ / / / / 5 _ \ / _ \ _ \,_ _ _ /_/ /_/ Alti 6 ================================================== 7 Hazirlayan : Aras. Gor. Ozgur Cobanoglu 8 Danisman : Prof. Dr. M. Nizamettin Erduran 9 -------------------------------------------------- 10 Her turlu oneri ve duzeltme icin lutfen 11 asagidaki adresleri kullanin. 12 -------------------------------------------------- 13 Istanbul Universitesi, fen fakultesi, nukleer 14 fizik anabilim dali, oda NF205, Vezneciler, 15 +90-212-455-57-00 dahili:15410 ISTANBUL. 16 -------------------------------------------------- 17 ozgur@nucleus.istanbul.edu.tr 18 Ozgur.Cobanoglu@cern.ch 19 ozgur_cobanoglu@hotmail.com 20 ================================================== 21 22 <-> Giris ve Cikis - G/C (I/O) 23 ------------------------------ 24 Pek cok program kullanicidan bilgi almak ve bunu islemek uzerine 25 kuruludur ya da calistirilmasi durumunda ornegin ekrana veya yaziciya 26 bazi bilgileri basmak uzere programlanmistir. Kullanicinin veri 27 girmesini saglayan asal fonksiyon fortran77' de READ' dir. Ornegin : 28 29 READ *,{girislistesi} 30 veya 31 READ([UNIT=]unite no, [FMT=]format, {girislistesi}) 32 33 kullanilarak birincisinde klavyeden ve ikincisinde bir dosyadan okuma 34 islemi gerceklestirilir. Unite numarasi bir tamsayidir ve sadece 35 herhangi bir giris/cikis kanalini belirlemek uzere kullanilir; 36 ornegin iki farkli dosya acik ise ve hangisinden veri okunacaksa o 37 unitenin numarasi kullanilir. format ise unformatted ya da formatted 38 olarak iki bicim alabilir. Ornegin : 39 40 READ(*,*)a,b,c 41 42 Bu kullanim klavyeden girdi beklenirken kullanilir ve program, 43 kullanicinin a, b ve c icin toplam uc degeri virgulla ayrilmis 44 bicimde girmesini ister. (ya da her degerden sonra <enter>) 45 46 Ekrana ya da yaziciya bilgi yazdirma islemi WRITE asal fonksiyonu 47 (ya da fortran komutu) araciligiyla gerceklestirilir. Ornegin : 48 49 PRINT *,{ciktilistesi} 50 51 veya daha uygun olarak 52 53 WRITE([UNIT=]unite no, [FMT=]format) {ciktilistesi} 54 55 Burada da unite numarasi sadece giris/cikis kanallarini birbirinden 56 ayirmak icin kullanilan bir tamsayidir (eski fortran rutinlerinde bu 57 sayi monitor icin 6 ve tus takimi icin 5 idi fakat daha sonra sadece 58 G/C kanallarini ayirmak icin kullanilir hale geldi). Ornegin : 59 60 WRITE (*,*) 'Sonuc : ', sonuc 61 62 ifadesi once tirnaklar icindeki ifadeyi oldugu gibi ekrana basar ve 63 ardindan da sonuc degiskeninin tuttugu degeri ekrana basar. 64 65 <-> FORMAT Tanimlanmasi 66 ----------------------- 67 Format kullanici tarafindan iki farkli bicimde tanimlanabilir. 68 Birincisi format, FORMAT(formatIfadesi) bicimli satirin 1. ve 5. 69 sutunlari arasinda bulunan bir etiket numarasi olarak verilebilir; 70 ikincisi ise format asagidaki yazilim bicimine sahip bir karakter 71 katari olabilir : 72 73 FMT=('formatIfadesi') 74 75 Format ifadesi hangi tip verilerin hangi duzende basilacagini 76 belirler. Veri tanimlayicilari ve kontrol fonksiyonlarindan meydana 77 gelir. 78 79 <-> Veri Tanimlayicilari 80 ------------------------ 81 Asagidaki tablo cesitli veri tipleri icin olan veri tanimlayicilarini 82 icermektedir : 83 84 ------------------------------------------------

2003-10-13 istanbul_üniversitesi_nükleer_fizik_bölümü_fortran77_ders_notu-uyg_6.f 2 85 Veri Tipi Veri Tanimlayici 86 ------------------------------------------------ 87 Tamsayi Iw, Iw.m 88 Reel Ew.d, Ew.dEe, Fw.d, Gw.d, Gw.dEe 89 Mantiksal Lw 90 Karakter A, Aw 91 ------------------------------------------------ 92 93 Yukaridaki tabloda buyuk harflerin anlamlari asagidaki gibidir : 94 95 I : tamsayilar 96 F : reel sayi (fixed-point floating number) 97 E : eksponansiyel gosterimle reel sayi 98 G : reel sayi (F ya da G den biri, sayinin buyuklugune gore) 99 L : mantiksal 100 A : karakter 101 102 Tablodaki kucuk harfler de su anlamda kullanilmaktadir : 103 104 w : doldurulacak alan 105 m : en kucuk basamak sayisi 106 d : virgulden sonraki basamak sayisi (hassasiyet) 107 e : us' teki basamak sayisi 108 109 <-> Kontrol Fonksiyonlari 110 ------------------------- 111 En genel birkac kontrol fonksiyonu asagida verilmistir : 112 113 / : bir sonraki satira (kayda) atlamak icin 114 'bir mesaj' : tirnakalr arasindaki bir mesaji ekrana basmak icin 115 nx : yazmaya n karakter icerden baslamak icin 116 117 Ornek olarak asagidaki format uygulamasi verilebilir : 118 119 WRITE(UNIT=*, FMT=10) 'Hesaplanmis Frekans ',f,' Hz olur.' 120 10 FORMAT(1X, A, F10.5, A) 121 122 Bu ornek frekans degeri f' yi en fazla 15 basamak olacak sekilde 123 ekrana basar. Once satir icinde 1 bosluk verilir, ilk tirnak icindeki 124 mesaj ekrana basilir ardindan 5 ondalik basamak hassasiyet ile f 125 degiskeninin tuttugu deger ekrana basilir ve ardindan ikinci tirnak 126 icindeki mesaj ekrana basilir. 127 128 <-> Dosyaya Erisim 129 ------------------ 130 Fortran77' nin diger tum programlama dillerinden ustun oldugu bir 131 alan da (sayisal hesaplamalar icin de bu gecerlidir) dosya 132 erisimidir. Pekcok programlama dilinde dosya denen sey hard diskteki 133 gercek bir dosya olarak degerlendirilmez; kendisinden veri okunabilen 134 ya da kendisine veri gonderilebilen hersey dosya olarak 135 degerlendirilir dolayisiyla WRITE ve READ komutlari genellikle dosya 136 erisimi icin de kullanilir. Sadece farkli dosya erisimleri icin 137 farkli unite numaralari verilerek, hangi dosyaya ne yapilacagi ile 138 ilgili karisiklik onlenebilir. Klavye, ekran, yazici, diskler v.b. 139 aygitlar linux isletim sisteminde sadece birer dosyadir ve bu erisim 140 kolayligi saglar; boyle calismayan sistemlerde kullanilan g77 141 derleyicisi sistem farkliliklarina yastik gorevi gorur. Kullanici 142 icin -g77' yi kullandigi icin- hala tum bu araclar birer dosyadir. 143 144 <-> OPEN Deyimi 145 --------------- 146 Dosya acmak ya da olusturmak icin belirli bir UNIT numarasina sahip 147 olmak uzere OPEN komutu kullanilir. Soyle ki : 148 149 OPEN(UNIT=no, FILE='dosyAdi', STATUS=durum, ACCESS=erisim..) 150 151 Yukaridaki ornekte durum 'NEW', 'OLD', 'UNKNOWN' veya 152 'SCRATCH' olabilir ve bunlar sirasiyla yeni bir dosya acmak icin, 153 eski bir dosyayi acmak icin, dosya yoksa olusturmak veya varsa olani 154 acmak icin ve son olarak da gecici olarak bir dosya acmak icin 155 kullanilirlar. En sonda bulunan erisim degiskeni 'SEQUENTIAL' ya da 156 'DIRECT' kelimelerinden biri olabilir. Ontanimli olan 'SEQUENTIAL' 157 kelimesi yeni baslayanlar icin en uygundur ve bu, dosyalarin satirlar 158 halinde yazildigi ve okundugu bicime karsilik gelir. Daha az onemli 159 olan baska secenekler de vardir fakat bu metnin hedefledikleri goz 160 onune alindiginda gerekli degillerdir (FORM = 'FORMATTED' ya da 161 FORM='UNFORMATTED' secenekleri gibi, bunlar kullanilmadiginda 162 ontanimli degerler gecerli olur). 163 164 <-> CLOSE Deyimi 165 ---------------- 166 Dosya ile olan isin bitmesi durumunda dosyalarin erisim sonrasinda 167 kapatilmasi gerekmektedir; aksi durumda her zaman sorun olusmaz 168 fakat isletim sistemine bagli bazi erisim sakincalari dogabilir

2003-10-13 istanbul_üniversitesi_nükleer_fizik_bölümü_fortran77_ders_notu-uyg_6.f 3 169 (veri dosyaya tam olarak yazilmayabilir ya da okunan veri eksik 170 kalabilir v.b.) Bir dosya asagidaki gibi kapatilir : 171 172 CLOSE(UNIT=no, STATUS=durum...) 173 174 Burada no, acilan dosyanin UNIT numarasidir; durum degiskeni 175 ontanimli olarak (yani STATUS degiskeni kullanilmadiginda gecerli 176 olan degeri) 'KEEP' tir. Bu dosyayi kapatir. 'DELETE' secenegi de 177 bulunur ve bu durumda dosya silinir. 178 179 <-> Tek Satir DO Dongusu 180 ------------------------ 181 (Bu bolume DO dongulerini ogrendikten sonra tekrar donun) 182 Tum bir dizi tek tek elemanlar kullanilmadan bir seferde cok etkin 183 bir bicimde dosyadan okunabilir. Bir dizinin tamminin ya da bir 184 kisminin dosyadan okunmasi ya da dosyaya yazilmasi soz konusu 185 oldugunda tek satir DO dongusu asagidaki bicimde kullanilmalidir : 186 187 OPEN(UNIT=13, FILE='veri.dat', STATUS='NEW') 188 WRITE(UNIT=13, FMT='(I2, F10.2,/)')(ay, dizi(ay,1996),ay=1,12,1) 189 CLOSE(UNIT=13) 190 191 <-> Uygulama 192 ------------ 193 1 - Asagidaki program 1.9 194 3.5 195 7.5 196 9.1 197 5.5 198 9.5 199 6.4 200 8.8 201 4.3 202 3.1 bicimindeki tek sutunluk bir dosyayi 203 okuyarak her defasinda okudugu elemani ekrana basar. Programin 204 dosyadaki eleman sayisini bildigine dikkat edin. Dosya veri_1.txt 205 onceden programin calistigi dizin icinde olusturulmustur bu 206 yuzden OPEN icindeki STATUS parametresi OLD (eski) olarak 207 verilmistir. UNIT numarasi sadece bir erisim numarasidir ve 208 ornegin CLOSE(1) komutu icin bir referans numarasi niteligindedir. 209 OPEN() komutunun aldigi baska parametreler de vardir fakat bu tip 210 karakter bazli dosya erisimlerinde kullanilmalarina gerek yoktur. 211 Cikti asagida verilmstir; ciktidaki duzensiz goruntu nasil 212 giderilebilirdir? 213 214 ozgur@olmak:~/documents/g77/kaynakkodlar/ornekler>./dosyaoku 215 Tek sutun veri dosyasi okunuyor... 216 1.89999998 217 3.5 218 7.5 219 9.10000038 220 5.5 221 9.5 222 6.4000001 223 8.80000019 224 4.30000019 225 3.0999999 226 ozgur@olmak:~/documents/g77/kaynakkodlar/ornekler> 227 228 PROGRAM dosyaoku 229 IMPLICIT NONE 230 REAL a 231 INTEGER i 232 OPEN(UNIT=1, FILE="veri_1.txt", STATUS="OLD") 233 PRINT*,'Tek sutun veri dosyasi okunuyor...' 234 DO i=1, 10 235 READ(1,*)a 236 PRINT*,a 237 END DO 238 CLOSE(1) 239 END 240 241 242 2 - Asagidaki program iki sutunluk bir dosyayi, ilk sutun X(i) ve 243 ikinci sutun Y(i) adli dizilere atanacak bicimde okur. FORMAT 244 ifadesinin kullanilis yoluna dikkat ediniz ve bu ifadenin 245 kullanilmamasi durumunda ne olacagini gormek icin 99 sayisi 246 ile isaretlenmis satirin basina c harfini koyarak iptal 247 ediniz ve WRITE komutu icindeki 99 referansini da * ile 248 degistiriniz. Iki farkli sonuc asagidaki gibi olacaktir : 249 250 C:\g77\kaynakKodlar\ornekler>dosyaOkuIII.exe 251 Cift sutun veri dosyasi okunuyor... 252 x( 1)= 1.89999998 y( 1)= 9.5

2003-10-13 istanbul_üniversitesi_nükleer_fizik_bölümü_fortran77_ders_notu-uyg_6.f 4 253 x( 2)= 3.5 y( 2)= 6.4000001 254 x( 3)= 7.5 y( 3)= 8.80000019 255 x( 4)= 9.10000038 y( 4)= 4.30000019 256 x( 5)= 5.5 y( 5)= 2.9000001 257 x( 6)= 1.89999998 y( 6)= 9.5 258 x( 7)= 3.5 y( 7)= 6.4000001 259 x( 8)= 7.5 y( 8)= 8.80000019 260 x( 9)= 9.10000038 y( 9)= 4.30000019 261 x( 10)= 5.5 y( 10)= 2.9000001 262 263 C:\g77\kaynakKodlar\ornekler>_ 264 265 format ifadesi kullanildiginda ise sonuc asagidaki gibi olur : 266 267 C:\g77\kaynakKodlar\ornekler>dosyaOkuIII.exe 268 Cift sutun veri dosyasi okunuyor... 269 x( 1)=1.9 y( 1)=9.5 270 x( 2)=3.5 y( 2)=6.4 271 x( 3)=7.5 y( 3)=8.8 272 x( 4)=9.1 y( 4)=4.3 273 x( 5)=5.5 y( 5)=2.9 274 x( 6)=1.9 y( 6)=9.5 275 x( 7)=3.5 y( 7)=6.4 276 x( 8)=7.5 y( 8)=8.8 277 x( 9)=9.1 y( 9)=4.3 278 x(10)=5.5 y(10)=2.9 279 280 C:\g77\kaynakKodlar\ornekler>_ 281 282 PROGRAM dosyaokuiii 283 IMPLICIT NONE 284 REAL x(10), y(10) 285 INTEGER i 286 OPEN(UNIT=1, FILE="veri_2.txt", STATUS="OLD") 287 PRINT*,'Cift sutun veri dosyasi okunuyor...' 288 289 c dosya dizi elemanlarina ataniyor ya da dosya okunuyor 290 291 DO i=1, 10 292 READ(1,*) x(i), y(i) 293 END DO 294 295 c dizi elemanlari ekrana basiliyor 296 297 DO i=1,10 298 WRITE(*,99) 'x(', i, ')=', x(i), ' y(', i, ')=', y(i) 299 99 FORMAT(5X, A, I2, A, F3.1, A, I2, A, F3.1) 300 END DO 301 302 CLOSE(1) 303 END 304 305 306 3 - Asagidaki program okunan.dat adli dosyadan veri okur, bu 307 verileri 2 ile carpar ve yazilan.dat adli dosyaya yazar. 308 Bu gercek yasamda en cok kullanilan dosya erisim bicimidir; 309 veri dosyadan okunur, uzerinde islem yapilir ve bir baska 310 dosyaya yazilir. Neden yazilan.dat isimli dosyada 311 bazi degerler *** olarak yazilmistir? Buralarda okunan.dat 312 adli dosyada karsiligi bulunan sayilarin iki katinin bulunmasi 313 gerekmez mi? Bu sorun nasil giderilir? Okunan dosya ve 314 kayittan sonraki dosya asagida verilmistir. (Bu sorun FORMAT 315 ifadesindeki F3.1 seklindeki tanimlama ornegin F4.1 olarak 316 degistirildiginde giderilebilir. F3.1' in anlami sayilarin 317 toplam 3 basamakli -ondalik noktasi dahil- ve virgulden 318 sonra tek basamak hassasiyet ile basilacagidir. Sayilar reel 319 olmak durumundadir cunki F harfi kullanilmistir. Ornegin 320 9.1 sayisinin iki kati 18.2' dir ve toplam 4 hane vardir ve 321 bu yuzden bu gibi sayilar *** olarak basilirlar; bu format 322 ifadesindeki hatayi haber verir) 323 324 okunan.dat : 325 326 1.9 9.5 327 3.5 6.4 328 7.5 8.8 329 9.1 4.3 330 5.5 2.9 331 1.9 9.5 332 3.5 6.4 333 7.5 8.8 334 9.1 4.3 335 5.5 2.9 336

2003-10-13 istanbul_üniversitesi_nükleer_fizik_bölümü_fortran77_ders_notu-uyg_6.f 5 337 338 yazilan.dat : 339 340 x( 1)=3.8 y( 1)=*** 341 x( 2)=7.0 y( 2)=*** 342 x( 3)=*** y( 3)=*** 343 x( 4)=*** y( 4)=8.6 344 x( 5)=*** y( 5)=5.8 345 x( 6)=3.8 y( 6)=*** 346 x( 7)=7.0 y( 7)=*** 347 x( 8)=*** y( 8)=*** 348 x( 9)=*** y( 9)=8.6 349 x(10)=*** y(10)=5.8 350 351 352 Bu islem icin kullanilan program asagida verilmistir. UNIT 353 numaralarinin neden kullanildigi burada daha iyi anlasilir. 354 Hangi dosyaya hangi islemin yapilacagi bu numaralar ile 355 belirlenir. Her iki OPEN komutu da 'INTEGER i' satirindan 356 hemen sonra kullanilabilirdi. Dosyalarin, kullanimdan sonra 357 kapatilmalari gerekmektedir, isletim sisteminin sifon islevi 358 (flushing) icin onemlidir. Dosyalar kapatilmadiginda ozellikle 359 pek cok dosyanin acik oldugu bir durumda veri kayiplari 360 olusabilir; isletim sisteminin yapisina bagli olarak degisir. 361 Ilke olarak kullanimi bitmis dosya hemen kapatilmalidir. 362 yazilan.dat adli dosya STATUS parametresi UNKNOWN (bilinmiyor) 363 olarak acilmistir. Bunun anlami sudur : dosya eger yoksa 364 olusturulur ve eger varsa ici sifirlanarak programca yeniden 365 yazilir. Okunan veri dosyasinin STATUS parametresinin OLD 366 olmasi guvenlik icin onemlidir. Cunku bu durumda okunan.dat 367 isimli dosyanin uzerine yazilmasi ya da herhangi bir durum 368 nedeniyle zarar gormesi engellenmis olur. Hata duzeltildikten 369 sonra dosya asagidaki gibi gozukur. 370 371 yazilan.dat : 372 373 x( 1)= 3.8 y( 1)=19.0 374 x( 2)= 7.0 y( 2)=12.8 375 x( 3)=15.0 y( 3)=17.6 376 x( 4)=18.2 y( 4)= 8.6 377 x( 5)=11.0 y( 5)= 5.8 378 x( 6)= 3.8 y( 6)=19.0 379 x( 7)= 7.0 y( 7)=12.8 380 x( 8)=15.0 y( 8)=17.6 381 x( 9)=18.2 y( 9)= 8.6 382 x(10)=11.0 y(10)= 5.8 383 384 385 Asagidaki programdaki FORMAT ifadesinin kullanimina 386 dikkat ediniz. 387 388 PROGRAM dosyaokuyaz 389 IMPLICIT NONE 390 REAL x(10), y(10) 391 INTEGER i 392 393 c dosya okunuyor ve elemanlar 2 ile carpiliyor 394 395 OPEN(UNIT=1, FILE="okunan.dat", STATUS="OLD") 396 DO i=1, 10 397 READ(1,*) x(i), y(i) 398 x(i) = x(i) * 2 399 y(i) = y(i) * 2 400 END DO 401 CLOSE(1) 402 403 c dizi elemanlari ilgili dosyaya yaziliyor 404 405 OPEN(UNIT=2, FILE="yazilan.dat", STATUS="UNKNOWN") 406 DO i=1,10 407 WRITE(2,99) 'x(', i, ')=', x(i), ' y(', i, ')=', y(i) 408 99 FORMAT(5X, A, I2, A, F3.1, A, I2, A, F3.1) 409 END DO 410 CLOSE(2) 411 c 412 END 413