Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

Bilgisayar Uygulamaları

Benzer bir sunumlar


... konulu sunumlar: "Bilgisayar Uygulamaları"— Sunum transkripti:

1 Bilgisayar Uygulamaları
Fortran’a Giriş Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları

2 Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları
Okuyun, Zarar gelmez !! Professional Programmer’s Guide to Fortran Clive Page (1995) Interactive Fortran 77: A Hands on Approach (2nd Ed) - Ian D Chivers ve Jane Sleightholme (1990) Bilgisayar Programlama ve Fortran 77 H. Kemal Sezen ve Mustafa Aytaç (1996) Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları

3 Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları
index GİRİŞ Operatör,Editör,Derleme Veri Tipleri ve Tür Tanımlama Deyimler-READ/WRITE Deyimler-FORMATLAR Deyimler-DO Deyimler-IF Deyimler-DIMENSION Deyimler-CALL/SUBROUTINE/FUNCTION Deyimler-COMMON Deyimler-KÜTÜK İŞLEMLERİ Özel Konular Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları

4 Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları
FORTRAN Nedir?? 1953 yılının sonlarında, makine diline alternatif olarak ortaya çıktı İlk taslak "The IBM Mathematical FORmula TRANSlating System" adlı altında 1954'de tamamlandı. 1957'de 32 deyim içeren ilk Fortran derleyicisi tanıtıldı. 1958'de FORTRAN II ve FORTRAN III, 1961'de FORTRAN IV, 1966'da FORTRAN 66 1977'de FORTRAN 77 derleyicileri kullanıma sunulmuştur. Fortran 90, Fortran 95, Visual Fortran, Digital Fortran v6.0 gibi kod yorumlayıcıları 1990 yılından sonra geliştirilmişlerdir. Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları

5 Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları
Nedeynn FORTRAN ! FORTRAN dili ve FORTRAN derleyicisinden oluşur . Fortran, sayısal hesaplamada güçlü ve yeterince esnek bir dildir. Fortran, tanımlayıcı adları küçük-harf büyük-harf ayrımı yapmaz Fortran, basit bir yapısı olduğu için, programlama giriş iyi bir dildir. Fortran, farklı platformlarda (OS) derleyicilere sahiptir. Fortran, özel veri tipi tanımlamasına izin verir. Fortran, taşınabilir bir dildir. Fortran, diğer dillerde olamayan esnek kütüphane fonksiyonlarına sahiptir. Fortran, sayısal hesaplamada C/C++, Java ve görsel programlama dillerinden daha güçlü ve hızlıdır. Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları

6 Farklı Programlama Dillerinde Faktöriyel Hesabı
Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları

7 Bilgisayar Uygulamaları
Operatörler ve İşlem Önceliği Editör Kullanımı ve Tür Tanımlama Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları

8 Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları
Fortran Alfabesi Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları

9 Fortran Editörü ve Derleme (compiling)
“AÇIKLAMA SATIRI” EKLEMEK İSTENİLDİĞİNDE 1. SÜTUNA BİR HARF (örn. C ) KOYULUR. FORTRAN 77: 6. SÜTUN: TEK SATIRA SIGMAYAN İFADELERİN ALT SATIRA DEVAMI İÇİN &,%, -, +, * GİBİ BİR SEMBOL KOYULUR. FORTRAN 77: BÜTÜN TÜR TANIMLAMALAR, KOMUTLAR, DEYİMLER, İFADELER 7-72. SÜTUNLAR ARASINDA YER ALMALIDIR. Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları

10 Fortran Editörü ve Derleme (compiling)
Aşağıdaki programı Fortran editoründe yazalım PROGRAM ILK_PROGRAMIM WRITE(*,4)A 4 FORMAT(1X,F5.2) END PROGRAM Önce KAYIT et!! Derleme işlemi BUILD menusundedir. 1. BUILD  Compile 2. BUILD  Build 3. BUILD  Execute Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları

11 Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları
Veri Tipleri Sayısal veri INTEGER REAL COMPLEX Mantıksal veri LOGICAL Alfasayısal veri CHARACTER Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları

12 INTEGER SABİTLER Genel kullanımı INTEGER *n dğşkn1, dğşkn2 …
Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları

13 Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları
REAL SABİTLER Genel kullanımı REAL *n dğşkn1, dğşkn2 … Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları

14 BİLGİSAYAR UYGULAMASI
REAL L, K DOUBLE PRECISION L, K INTEGER AK, AL AL = 5./2 L = 5./2 AK= 10/4 K = 10/4 WRITE(*,*) AL, L WRITE(*,*) AK, K END Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları

15 BİLGİSAYAR UYGULAMASI
IMPLICIT REAL * 8 ( A – C ) INTEGER C2 A = 2 B = 3 C1 = B / A C2 = B / A WRITE (*,*) C1 , C2 END Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları

16 Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları
CHARACTER SABİTLER ‘Yaz ayinda okul mu olur?!’ “Yaz ayinda okul mu olur?!" 25 karakter uzunlukta Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları

17 CHARACTER DEĞİŞKEN Tür tanımlamak
Genel kullanım: CHARACTER *n dğşknad1, dğşknad2… 7-72.sütunlar arasına karakter olarak algılanmasını istediğiniz değişkenin ismini yazın CHARACTER*80 asal CHARACTER*4 k12s CHARACTER*11 En, Maks(7) Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları

18 BİLGİSAYAR UYGULAMASI
CHARACTER*3 KAL , K CHARACTER*30 DS KAL= BURSA DS = ‘SKOR 2-2’//’OLDU MU?’ K=kal-5 WRITE(*,*) DS , KAL, k END KAL = ’bursa’ Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları

19 COMPLEX SABİTLER: a + bi
FORTRAN dili Analitik yazım Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları

20 BİLGİSAYAR UYGULAMASI
CompleX k1 , m54t k1 = ( 2.2 , 3. ) M54T = 2 WRITE(*,*) K1 WRITE(*,*) m54T END Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları

21 Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları
LOGICAL Fortran'da iki tane mantıksal (logical) sabit vardır. .TRUE.  koşul doğru .FALSE.  koşul yanlış Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları

22 Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları
( ) ** * / + - .EQ. (=) .NE. (≠) .LE. (≤) .LT. (<) .GE. (≥) .GT. (>) ‘ ‘ “ “ // .NOT. .AND. .OR. .EQV. .NEQV. Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları

23 BİLGİSAYAR UYGULAMASI
LOGICAL LAM, ABC, C LAM = .FALSE. .AND. .TRUE. ABC = LAM.OR..TRUE. C=ABC.EQV. .NOT.LAM A=5 WRITE(*,*) LAM WRITE(*,*) ABC, C C=.NOT.A.GT.7.OR.14.LE.20.AND.ABC WRITE(*,*) C END Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları

24 Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları
FORMÜL YAZMA X = 3 a0 = 15 Phi = 0.5 Y1 = X**3+2. / 3 Y2 = ( X**3+2. ) / 3 Y3 = (( X+2. ) / 3 )** 3 Y4 = ( X+2. )**3 / 3 jOULE = 1.601E-19 DALGA1 = A0*COS(PHI)*EXP(-X) DF = abs( 1/(LOG(X)-1) ) WRITE(*,*)y1, y2, y3, y4 WRITE(*,*)joule END Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları

25 Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları
Değişken/Sabit Tanımlamak Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları

26 Değişken/Sabit Tanımlamak
en fazla 32 karakterden oluşabilir. ingiliz alfabesinde bulunan karakterler (A-Z) veya (a-z), rakamlar (0-9) ve alt çizgi ('_') karakterleri kullanılarak oluşturulmalıdır. Türkçe karakterler, özel karakter veya boşluk karakteri kullanılamaz Herhangi bir rakam ile başlayamaz. Ilk karakter bir harf olmalıdır. Sonrakiler rakamlardan oluşabilir. Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları

27 Fonksiyonlar Fortranda Nasıl Yazılır?
LOG(X)  Logex = lnx LOG10(X)  Logx EXP(X)  ex SQRT(X)  √x ABS(X)  |x| SIN(X)  Sinx ASIN(X)  Arcsinx X**Y  X^Y INT(X)  X in tamsayı kısmı NINT(X)  X e en yakın tamsayı REAL(I)  I nın gerçel sayıya çev. MOD(A,B)  A/B nin kalanı Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları

28 Bilgisayar Uygulamaları
Fortranda Deyimler Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları

29 !!! Üç tip Fortran deyimi vardır !!!
Giriş Çıkış deyimleri: Dış ortamla bilgisayar arasında bilgi alışverişi sağlar READ WRITE PARAMETER PRINT FIND FORMAT REWIND BACKSPACE ENDFILE NAMELIST Yönetim-Kontrol deyimleri: Programdaki deyimlerin icra sırasını yönetir. GO TO IF DO CONTINUE PAUSE STOP END FUNCTION SUBROUTINE CALL RETURN BLOCK DATA PROGRAM Bildiri deyimleri : Derleyiciye bilgi verir DIMENSION COMMON EQUIVALANCE IMPLICIT EXTERNAL DATA Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları

30 Giriş-Çıkış Deyimleri (READ,WRITE)
* : ekrandan (klavye kullanarak) sayı girişi veya ekrana sonuç yazmak 1,2,… tamsayılar: dosyadan okuma veya dosyaya yazma read(*, *) p * : formatsız değer oku/yaz 1,2,… tamsayılar: formatlı değer oku/yaz write(*, *) p Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları

31 BİLGİSAYAR UYGULAMASI
Klavyeden girilen ilk hız ve ivme değerleri için istenilen anda hareketlinin konumunu ekrana yazan program kodlayalım PROGRAM Konum_zaman IMPLICIT NONE REAL *8 V0, A, G , T , X C C V0 : HAREKETLİNİN İLK HIZI (m/s) C A : HAREKETİN İVMESİ (M/S^2) C G : DÜNYA‘NIN YERÇEKİMİ İVMESİ (M/S^2) C T : HESAP YAPILACAK ZAMAN (S) C X : T SÜREDE ALINAN YOL (M) G= 9.81 READ (*,*) V0, A ! İLK HIZI VE İVMEYİ GİR T = X = V0 * T + A*T**2/2 WRITE(*,*) ' CISIM ‘ , T , ' SANIYEDE ‘ , X , ' METRE YOL ALIR ' END Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları

32 Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları
SORU Işığın güneşten dünyaya ne kadar günde ulaştığını hesaplayın Bilgi: Işık yılda 9.46x1012 km yol alır. Dünya Güneşten km uzaktadır. Bir yıl gündür Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları

33 Giriş-Çıkış Deyimleri (FORMAT)
Format deyimi bilgisayara bilgi giriş çıkışlarında data özelliklerini, yani verinin ne tipte ve ne uzunlukta olduğunu belirtir. n FORMAT ( f1 , f1 , ..f1) n : deyim numarası f1 , f2, .. , fn : alan bildirim deyimi Programın içinde herhangi bir yerde bulunabilir Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları

34 Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları
CEVAP Işığın güneşten dünyaya ne kadar sürede ulaştığını hesaplayalım Bilgi: Işık yılda 9.46x1012 km yol alır. Dünya Güneşten km uzaktadır. Bir yıl gündür PROGRAM ISIGIN_YOLU_UZUN REAL *8 IYIL , IDK , UZAKDG , GECEN INTEGER DKK , SNY C C IYIL : IŞIĞIN BİR YILDA ALDIĞI YOL (KM) C IDK : IŞIĞIN BİR DAKİKADA ALDIĞI YOL (KM) C UZAKDG : DÜNYA'DAN gÜNEŞ'E OLAN UZAKLIK (KM) C GECEN : UZAKDG İÇİN GEÇEN ZAMAN (DK) C DKK :GEÇEN ZAMANIN DAKİKA KISMI (TAM SAYI) C SNY :GEÇEN ZAMANIN SANİYE KISMI (TAM SAYI) IYIL = 9.46E+12 IDK = IYIL/(365.25*24.0*60.0) UZAKDG = 150.0*10**6 GECEN = UZAKDG/IDK DKK = GECEN SNY = ( GECEN – DKK ) * 60 PRINT * , ' ISIK ‘ , DKK , ' DAKIKA ‘ , SNY , ' SANIYEDE ' WRITE ( * , * ) ' GUNESTEN DUNYAYA ULASIR ' END Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları

35 FORMAT Alan Bildirimleri -2-
ALFASAYI sayılar : An A = “2-2 OLMUSSS” WRITE (*, 3 ) A 3 Format ( 1x , A14 ) 6.sütun Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları

36 FORMAT Alan Bildirimleri -3-
INTEGER sayılar : In read(*, 3 ) k 3 Format ( 3x , i2 ) 3 karakter sağa git 6.sütun Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları

37 In Formatı ile Yazdırma
WRITE ( * , * ) ‘BIR SAYI GIRINIZ’ READ ( * , * ) K WRITE ( * , * ) ‘FORMATSIZ SONUC ‘ , K WRITE ( * , 15 ) 'FORMATLI SONUC ‘ , K 15 FORMAT ( a14 , I3 ) END Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları

38 Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları
INTEGER sayılar : In ÇIKIŞ : Sayı belirtilen alan içine sağdan hizalanarak yazılır. Artı işareti basılmaz , eksi işareti basılır. Tamsayı büyüklüğünün değeri ( işareti ile birlikte ) n haneden büyük bir sayı ise basılmaz, alan * işareti ile doldurulur . Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları

39 FORMAT Alan Bildirimleri -4-
REAL sayılar : Fn.m WRITE (*, 3 ) A 3 Format (F8.4 ) 6.sütun Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları

40 Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları
Formatsız okutma 1 WRITE (*,*) ' BIR SAYI GIRINIZ' READ (*, * ) A WRITE (*,*) 'FORMATSIZ SONUC',A WRITE (*,15) A GOTO 1 15 FORMAT (‘FORMATLI SONUC’,F6.2 ) END Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları

41 Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları
Fn.m Özellikler ÇIKIŞ: m kadar desimal nokta işaretine yakın yazılır. m içinde kalan boş desimallere 0 konulur. Sayının işareti pozitif ise basılmaz negatif ise basılır Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları

42 FORMAT Alan Bildirimleri -5-
ÜSTEL sayılar : En.m WRITE (*, 3 ) A 3 Format (E18.9 ) 6.sütun Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları

43 Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları
En.m 33 FORMAT (A , E13.2 ) WRITE(*,*) ‘BIR SAYI GIRINIZ' READ(*,*) H WRITE(*,33) 'FORMATLI SONUC:', H END Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları

44 Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları
En.m Özellikler ÇIKIŞ: Dış ortamda n sayıda yer ayrılır; bunun içinde işaret ve desimal nokta için birer yer ve üs için dört yer olmak üzere toplam 6 yer vardır. n - m >= 6 olmalıdır; bu kurala uyulmazsa çıkış alanı * işaretleri ile doldurulur . Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları

45 FORMAT Alan Bildirimleri -7-
MANTIKSAL değişken : Ln S=.true..AND..false. WRITE (*, 3 ) 3 3 Format (L4 ) 6.sütun Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları

46 FORMAT Alan Bildirimleri -1-
X tipi alan bildirisi Giriş çıkışta boşlukları göstermek için kullanılır ; nX Girişte n karakterlik yerin atlanmasını, çıkışta ise n sayıda karakterlik boşluk bırakılmasını sağlar. Bir satırı tamamen boş bırakmak için / kullanılır. T tipi alan bildirisi Giriş çıkış listelerindeki verilerin ilk karakterlerinin bulunduğu yeri belirlemekte kullanılır Tn çıkışta kullanıldığında veri gerçekte (n - 1) karakter konumundan başlar. Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları

47 Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları
WRITE (*,12) 12 FORMAT(1X, ‘SEN’ , // , 1X , ’SAMPIYON’ % , / ,T12, ‘OLMASANDA…’) END Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları

48 KONTROL DEYİMLERİ DO CONTINUE------DO END DO DO AD = m1, m2 { , m3} n
Döngü değişkeninin ilk ve son değerleri Döngü deyim numarası Döngü değişkeni Artım miktarı n WRITE(*,*)TEMP n CONTINUE ENDDO Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları

49 Bilgisayar Uygulaması DO
F(x)=x2 fonksiyonunu 0 ile 5 aralığında 0,1 adımlarla arttırarak bir Fortran programı kodlayınız. XILK = 0. XSON = 5. DX = 0.5 DO X = XILK, XSON , DX FX = X * X WRITE (*,2) X, FX ENDDO 2 FORMAT(2X,‘X=‘, F5.2,1X,’F=‘,F8.2) END XILK = 0. XSON = 5. DX = 0.5 DO 101 X = XILK, XSON , DX FX = X * X WRITE (*,2) X, FX 101 CONTINUE 2 FORMAT(2X,‘X=‘, F5.2,1X,’F=‘,F8.2) END Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları

50 Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları
DO ile ilgili kurallar DO döngüsü içinde herhangi bir fortran deyimi kullanılabilir. Fakat döngünün son deyimi GO TO, IF, STOP, RETURN , END veya bir başka DO deyimi olamaz. Bir DO alanı içinde başka DO döngüleri olabilir. Ancak içteki DO alanının tamamı dıştaki DO alanın içinde kalmalıdır. İçteki DO ile dıştaki DO alanlarının bitişi ayni deyime rastlayabilir. DO alanı içinden bu alanın dışına atlamak mümkündür. Sapma anında DO değişkeninin değeri son aldığı değerde kalır. Fakat DO alanı içine bu alanın dışından girmek mümkün değildir. Çünkü bu durumda DO değişkeninin değeri belirlenemez. Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları

51 Bilgisayar Uygulaması DO
DO 10 I=1, 5, 2 K=I+2 DO 10 J=5, -2, -2 M=K+J WRITE(*,5) I, J, K, M 5 FORMAT(1X, 4(2X,I2)) END Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları

52 DO döngüsünde Tekrar Sayısı
DO 5 IX=1,12,4 deyimi ile döngü, 3 kez tekrarlanır. IX 1,5,9 değerlerini alır. Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları

53 Faktöriyel hesaplayalım…
INTEGER I, FAKTORIYEL FAKTORIYEL=1 PRINT *,' Tamsayi deger giriniz ' READ (*,*) I DO K=1, I Faktoriyel=K*FAKTORIYEL ENDDO WRITE(*,3) 'Yanit', FAKTORIYEL 3 FORMAT (1X,a7, T10 , I7) END Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları

54 Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları
GO TO Deyimleri Yaygın kullanılan iki tür GOTO deyimi: -Hesaplanmış GO TO deyimi, -Koşulsuz GO TO deyimi Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları

55 Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları
Hesaplanmış GOTO Genel formatı: GO TO ( d1 , d2 ...) m m nin o andaki değeri 1 ise kontrol d1 numaralı deyime 2 ise kontrol d2 numaralı deyime aktarılır. GO TO ( 10,12,1,10 ) IX 1 A = A + 1.0 12 GO TO 32 10 CONTINUE Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları

56 Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları
Koşulsuz GOTO Genel formatı: GO TO d Koşulsuz GO TO deyimi kontrolü deyim numarası belirlenen deyime aktarır. GO TO 1 ……... 1 B = A * 200.0 ……… Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları

57 Bilgisayar Uygulaması GOTO
3 GOTO 3 WRITE(*,*)’NASILSIN?’ WRITE(*,*)’IYI :: 1’ WRITE(*,*)’ EHH ISTE :: 2’ WRITE(*,*)’BOZUK :: 3’ READ(*,*)IDURUM GOTO (34,13,77) IDURUM WRITE(*,*)’OLUR BOYLE’ END WRITE(*,*)’SAYI GIRINIZ:’ READ(*,*)A WRITE(*,13)A GOTO 300 FORMAT(‘GIRDIGINIZ + SAYI=‘,F10.6) END Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları

58 Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları
IF DEYİMLERİ Üç tür IF deyimi vardir: Aritmetik IF Mantıksal IF Blok IF Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları

59 Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları
Mantıksal IF deyimi Genel formati: IF ( m ) d ( m ) mantıksal ifadesinin sonucu doğru (TRUE) ise program d ile belirtilen deyimi icra eder. IF ( A .LE. 0.) GO TO 50 X = Y + Z IF ( A . EQ . B ) X = 2.0*Y/Z A = B/C 50 T = U**2 Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları

60 Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları
Blok IF Deyimi Üç seviye Blok IF bulunmaktadır. 3.Seviye: IF (m1) THEN d1 .. ELSE IF (m2) THEN s1 ELSE IF (m3) THEN t1 ENDIF 2.Seviye: IF (m) THEN d1 d2 .. ELSE s1 ENDIF 1.Seviye: IF (m) THEN d1 d2 .. ENDIF Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları

61 Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları
1.Seviye: IF (m) THEN d1 d2 .. ENDIF m koşulu mantıksal olmalıdır m koşulu doğru ise d1, d2 … deyimleri icra edilir. Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları

62 2.Seviye: IF (m) THEN d1 d2 .. ELSE s1 ENDIF
m koşulu mantıksal olmalıdır m koşulu doğru ise ; d1, d2 … deyimleri icra edilir. m koşulu yanlış ise ; s1, s2 … deyimleri icra edilir. Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları

63 Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları
3.Seviye: IF (m1) THEN d1 .. ELSE IF (m2) THEN s1 ELSE IF (m3) THEN t1 ENDIF m1, m2 , m3 , …. koşulları mantıksal olmalıdır m1 koşulu doğru ise ; d1, d2 … deyimleri m1 koşulu yanlış, m2 doğru ise; s1, s2 … deyimleri m1 , m2 koşulları yanlış, m3 doğru ise; t1, t2 … deyimleri İcra edilir Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları

64 Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları
şeklindeki fonksiyonu Fortran dilinde hesaplayan program kodlayın. Not: x=1000 girildiğinde program dursun Blok IF 1. Tür Blok IF 2. Tür Mantıksal IF 50 READ(*,*) X 50 READ(*,*) X 5 0 READ(*,*) X IF(X.EQ.1000) STOP IF(X. EQ. 1000) STOP IF(X. EQ. 1000) STOP IF(X.LE.2.) FX = EXP(-X**3) IF(X. LE. 2.) THEN IF(X. LE. 2.) THEN IF(X.GT.2.)FX = SQRT(X**3+4) FX = EXP(-X**3) FX = EXP(-X**3) WRITE(*,11) X, FX ENDIF ELSE 11 FORMAT(‘X=‘, F7.2,2X,’F=‘,F8.3) IF(X.GT. 2.) THEN FX = SQRT(X**3+4) GO TO 50 FX = SQRT(X**3+4) ENDIF END ENDIF WRITE(*,11) X, FX WRITE(*,11) X, FX 11 FORMAT(‘X=‘, F7.2,2X,’F=‘,F8.3) GO TO 50 11 FORMAT(‘X=‘, F7.2,2X,’F=‘,F8.3) GO TO 50 END END Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları

65 Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları
şeklindeki fonksiyonu Fortran dilinde hesaplayan program kodlayın. DO I = 1, 5 READ(*,*) X PI=ATAN(1.)*4 IF(X.LE.-2) THEN F=2.*X+PI ELSE IF(X.GE.-2..AND.X.LT.1.) THEN F=SQRT(X*X-4) BLOK IF 3.TÜR ELSE IF(X.GE.-1..AND.X.LE.1.) THEN F=SIN(X)-COS(X) ELSE F=PI END IF WRITE(*,10) X, F ENDDO 10 FORMAT(2X,‘X=‘, F5.2,’F=‘,F8.2) Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları END

66 BİLGİSAYAR UYGULAMASI
Sayısal notları alfabetik notlara dönüştürmek için hazırlanan basit bir program A: NOT>75, B: NOT > 50 , C: NOT> 25 , D: NOT<25 CHARACTER*1 N1/'A' / , N2/'B' /, N3/ 'C'/ ,N4/ 'D'/ 1 READ ( *,5 ) NOT 5 FORMAT ( 3X,I3 ) IF ( NOT.LE.25 ) THEN WRITE ( *,30 )NOT , N4 ELSE IF ( NOT . LE .50 ) THEN WRITE ( *,30 )NOT , N3 ELSE IF ( NOT.LE.75 ) THEN WRITE ( *,30 )NOT , N2 ELSE WRITE ( *,30 )NOT , N1 END IF 30 FORMAT ( 5X,I3, 'NOT = ' , A1) GO TO 1 90 STOP END Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları

67 DIMENSION Deyimi ve DİZİLER
Matematikte n elemanlı X dizisi x = (x1 , x2 , … xn) Fortranda DIMENSION X (100) 2 boyutlu diziler matris gösterimi için kullanışlıdır. a satır * b sütunlu X matrisi: Xij  X(i,j) i=1 …a, j=1 … b real x(50,30) Maksimum sütun sayısı Maksimum satır sayısı Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları

68 Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları
DİZİLER Dizinlerin türü olabilir i) integer enr(50) ii) REAL *8 kal DIMENSION kal(18) iii) character*20 liste(1000) iv) real x(100) NOT: liste(k) en fazla 20 karakterli alfasayı değişkendir ve 1000 tane değeri vardır. Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları

69 Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları
DO 1 X= 0. , 5. , 0.5 FX=X**2 WRITE(*,2) X,FX 1 CONTINUE WRITE(*,2)X,FX 2 FORMAT(1X,'X=',F7.3,1X,'FX=',F9.6) END REAL X(100) , FX (100) DX=0.1 DO I=1, 20 X(I) = (I-1)*DX FX(I) = X(I)**2 WRITE(*,2) X(I) , FX(I) ENDDO WRITE(*,2)X,FX 2 FORMAT(1X,'X=',F7.3,1X,'FX=',F9.6) END DO X=0. , 2. , 0.1 FX=X**2 WRITE(*,2) X,FX ENDDO WRITE(*,2)X,FX 2 FORMAT(1X,'X=',F7.3,1X,'FX=',F9.6) END Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları

70 DİZİLER DO deyimi ile DİZİ okuma/yazdırma
2D diziler için hesaplama döngüsü: do j=1,nlat do i=1,nlon y(i,j)= z(i,j)* a + b enddo i : satırlar ve j: sütunlar Gizli DO döngüsü dizileri okumak ve yazmak için çok kullanışlıdır: ÖRNEK 1: read(1,’(2X,F9.4)’)(y(k),k=1,n) (n değerinin verilmesi gerekir) ÖRNEK 2: WRITE(*,3) ((C(I,J), J=1,3), I=1,3) 3 FORMAT (3( 4X, I3 )) Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları

71 Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları
INTEGER A(3,3), B(3,3), C(3,3) DATA B/ 1, 2, 3, 4, 5, 6, 7, 8, 9/ DO I = 1, 3 DO J = 1, 3 IF( (I+J).EQ.3 ) THEN A(I,J) = 2 ELSE IF( I.GT.J ) THEN A(I,J) = 4 ELSE IF( J.GT.I ) THEN A(I,J) = 6 ELSE A(I,J) = 8 ENDIF C(I,J) = A(I,J) + B(I,J) ENDDO WRITE(*,1) 'A MATRISI', ((A(I,J), J=1,3), I=1,3) WRITE(*,1) 'A MATRISI FORMATSIZ', A WRITE(*,1) 'B MATRISI', ((B(I,J), J=1,3), I=1,3) WRITE(*,1) 'C MATRISI', ((C(I,J), J=1,3), I=1,3) 1 FORMAT ( 5X,A,/,3X,14('-'),/,3( 4X, I3 ),/ ) END A MATRISI B MATRISI C MATRISI Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları

72 Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları
Santigrad (C) cinsinden verilen bir sıcaklık değerini Fahrenheit (F) ve Kelvin (K) birimlerine çeviren Fortran programı yazınız. Bilgi: F=1.8C+32 K=C Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları

73 Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları
Girilen Not 45 den Büyükse GEÇTİ, küçükse KALDI yazacak Fortran programı kodlayınız. Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları

74 Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları
Katsayıları verilen 2. dereceden bir denklemin köklerini hesaplayan Fortran programını yazınız. Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları

75 Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları
Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları

76 Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları
Bir dairenin alanını veya bir çemberin çevresini hesaplayan Fortran programını yazınız İSTENENLER: Programda ilk önce daire veya çember seçimi yapılacak, seçime göre daire için alan hesabı, çember için ise çevre hesabı yapılarak sonuç ekrana yazdırılacaktır. Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları

77 Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları
Klavyeden girilen bir sayının pozitif, negatif ve sıfır olduğunu ekrana yazan Fortran programını yazınız. Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları

78 Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları
1’den verilen N sayısına kadar olan sayıların ortalamasını bulan programı yazınız. Not: programınız girilen sayılardan kaç tanesinin pozitif olduğunu da ekrana yazsın. Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları

79 Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları
Girilen N adet sayıdan en büyüğünü bulan Fortran programını yazınız. Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları

80 Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları
Dusme yuksekliği=200 Zaman (s) Yerden Yükseklik (m) Yere çarpma zamanı(s)= 6.4 Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları

81 Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları
Elemanları girilen N elemanlı bir A dizisi için : 1. Girilen bir B sayısından büyük olan elemanların sayısını, 2. A dizisinin ortalamasını, 3. Ortalamadan büyük kaç eleman olduğunu, hesaplayan Fortran programı kodlayın. Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları

82 Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları
Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları

83 Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları
Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları

84 CALL deyimi Kontrolü bir subroutine alt programına aktarır,
Genel formatı: CALL ad (arg1, arg2 , arg3……) Ad: bir SUBROUTINE alt programının ismi SUBROUTINE programın icrasında kullanılacak değişkenler Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları

85 CALL – SUBROUTINE YAPISI
…… CALL R ( A, B , AL , CEV) END SUBROUTINE R ( A, B, X, Y ) X = A * B Y = 2.0 * ( A+ B ) RETURN Ana Program SUBROUTINE alt programın ismi Alt Program Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları

86 Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları
FUNCTION Alt programı İlk deyimi FUNCTION deyimi olan en az bir tek değer üretmek üzere bağımsız olarak yazılmış bir program birimidir. Ana programa tek bir bilgi gönderebilir. Ad kesinlikle değişkendir. ……. Değişken= altprogramadı (arg1,arg2,..) END FUNCTION altprogramadı (arg1,arg2,..) Fortran deyimleri Altprogramadı = aritmetik ifade RETURN Ana Program Alt Program Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları

87 Ne Farkı Var?? SUBROUTINE FUNCTION
Argümanı olması zorunlu değildir CALL ile çağırılır Adı rastgele seçilir ve hesaplanMAZ en az bir argümanı olması zorunludur. Değişken adı ile çağırılır Adı değişken olarak hesaplaNIR Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları

88 KOMBİNASYON HESAPLAYALIM-1
READ(*,*)N,M NFAK=1 DO I=1,N NFAK=NFAK*I ENDDO MFAK=1 MFAK=MFAK*I NMFAK=1 DO I=1,N-M NMFAK=NMFAK*I KOMB=NFAK/(MFAK*NMFAK) WRITE(*,2)N,M,KOM END READ(*,*)N,M CALL HES(N,NF) CALL HES(M,MF) CALL HES(N-M,NMF) KOMB=NFAK/(MFAK*NMFAK) WRITE(*,2)N,M,KOM END SUBROUTINE HES(K,IFAK) IFAK=1 DO I=1,K IFAK=IFAK*I ENDDO RETURN Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları

89 KOMBİNASYON HESAPLAYALIM-2
READ(*,*)N,M NFAK=1 DO I=1,N NFAK=NFAK*I ENDDO MFAK=1 MFAK=MFAK*I NMFAK=1 DO I=1,N-M NMFAK=NMFAK*I KOMB=NFAK/(MFAK*NMFAK) WRITE(*,2)N,M,KOM END READ(*,*)N,M NFAK =IFAK(N) MFAK =IFAK(M) NMFAK =IFAK(N-M) KOMB=NFAK/(MFAK*NMFAK) WRITE(*,2)N,M,KOM END FUNCTION IFAK(K) IFAK=1 DO I=1,K IFAK=IFAK*I ENDDO RETURN Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları

90 Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları
H(x)=1 – 1 / x2 + 1 / x4 - 1 / x6 + 1 / x8 - …….+ 1 / x2n olmak üzere f(x,y)=x.h(x)+y.h(y) hesaplayınız READ ( * , * ) N READ ( * , * ) N READ ( * , * ) X , Y READ ( * , * ) X , Y CALL TOPH ( N , X , HX ) HX = TOPH ( N , X ) CALL TOPH ( N , Y , HY ) HY = TOPH ( N , Y ) FXY = X * HX + Y * HY FXY = X * HX + Y * HY WRITE ( * , * ) ‘FXY = ‘ , FXY WRITE ( * , * ) ‘FXY = ‘ , FXY END END SUBROUTINE TOPH ( N , A , H ) FUNCTION TOPH ( N , A ) H = 0 TOPH = 0 DO I = 1 , N DO I = 1 , N H = H + ( -1 ) * * I / A * * ( 2 * I ) TOPH = TOPH + ( -1 ) * * I / A * * ( 2 * I ) ENDDO ENDDO H = H + 1 END TOPH = TOPH + 1 END Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları

91 Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları
formunda verilen dalga fonksiyonunu, r:(0,20] aralığında 0.2 adım aralıkları ile hesaplatan, ayrıca konum ve konuma bağlı değişen dalga fonksiyonu verisini yazdıran Fortran programı kodlayınız. (a=0.529 A ve Z=1) Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları

92 COMMON : Alt programlar arasında bilgi alanları
Bir ana programla alt program arasında veya iki alt program arasında bilgi aktarımı : argümanlar listesi aracılığı ile COMMON deyimi ile sağlanır. İki türü vardır: Etiketsiz COMMON COMMON değişken listesi Etiketli COMMON COMMON/etiket/değişken listesi Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları

93 Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları
COMMON Örnekler DIMENSION R(10) , T(200) COMMON R,T DIMENSION R(10) , T(200) COMMON /S2/R,T COMMON R (10) , T (200) COMMON /S2/R (10), T (200) Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları

94 Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları
COMMON - Örnekler …………… COMMON P, L, R (6) END SUBROUTINE/function …………… COMMON V, KOD, A ( 3 , 2 ) Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları

95 Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları
ile verilen Lennard-Jones potansiyelini σ = 2.56 A ve ε = 1.41 eV için hesaplayan bir Fortran programı kodlayınız COMMON EPS,SIGMA READ(*,*) EPS READ(*,*) SIGMA DO R = 0.1 , 7. , 0.3 WRITE (*,*) R,SED ENDDO END CALL MUT(R,SED) SED=MUT(R) FUNCTION MUT(R) COMMON EPS, SIGMA SR = SIGMA / R MUT = 4*EPS( SR**12 - SR**6 ) RETURN END SUBROUTINE MUT(R,SED) COMMON EPS, SIGMA SR = SIGMA / R SED = 4*EPS( SR**12 - SR**6 ) RETURN END Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları

96 Hacim yük yoğunluğuna sahip kürenin iç ve dışında E.A hesaplayınız
OPEN(1,FILE='ea.dat') READ(*,*)RO READ(*,*)RKURE DO R = 0.2, 10.0, 0.02 CALL EA( E,R,RKURE,RO) WRITE (1,*) R,E ENDDO END SUBROUTINE EA(E,R,RKURE,RO) DATA EPS0/8.85E-12 / !C^2.N.m^2 IF (R.LE.RKURE)THEN E=RO*R/(3.0*EPS0) ELSE E=RO*RKURE**3/(3*EPS0*R*R) ENDIF RETURN ra Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları

97 Hacim yük yoğunluğuna sahip kürenin iç ve dışında E.A hesaplayınız
OPEN(1,FILE='ea.dat') READ(*,*)RO READ(*,*)RKURE DO R=0.2,10.0,0.02 EA = E(R,RKURE,RO) WRITE(1,*)R,EA ENDDO END FUNCTION E(R,RKURE,RO) DATA EPS0/8.85E-12 / !C^2.N.m^2 IF (R.LE.RKURE)THEN E=RO*R/(3.0*EPS0) ELSE E=RO*RKURE**3/(3*EPS0*R*R) ENDIF RETURN Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları

98 Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları
Hacim yük yoğunluğuna sahip küre kabuğunun verilen bölgeleri için E.A hesaplayınız OPEN(1,FILE='ea.dat') READ(*,*)RO,SIGMA READ(*,*)RA,RB DO R=0.2,10.0,0.02 EA = E(R,RA,RB,RO,SIGMA) WRITE(1,*)R,EA ENDDO END FUNCTION E(R,RA,RB,RO,SIGMA) DATA EPS0/8.85E-12 / !C^2.N.m^2 IF (R.LE.RA)THEN E = RO*R/(2.0*EPS0) ELSEIF (R.GT.RA.AND.R.LT.RB) THEN E = RO*RA**2/(2.0*EPS0*R) ELSE E = (RO*RA**2+SIGMA*2.*RB)/(2.*R*EPS0) ENDIF RETURN rb ra Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları

99 Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları
OPEN(1,FILE='ea.dat') READ(*,*)RO,SIGMA READ(*,*)RA,RB DO R=0.2,10.0,0.02 CALL HESAP (E,R,RA,RB,RO,SIGMA) WRITE(1,*)R,E ENDDO END SUBROUTINE HESAP(E,R,RA,RB,RO,SIGMA) DATA EPS0/8.85E-12 / !C^2.N.m^2 IF (R.LE.RA)THEN E = RO*R/(2.0*EPS0) ELSEIF (R.GT.RA.AND.R.LT.RB) THEN E = RO*RA**2/(2.0*EPS0*R) ELSE E = (RO*RA**2+SIGMA*2.*RB)/(2.*R*EPS0) ENDIF RETURN Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları

100 Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları
ax2 + bx + c = 0 DENKLEMİNİN KÖKLERİNİ (FUNCTION) ALTPROGRAM İLE HESAPLATALIM FUNCTION DISC(X1,X2) COMMON /KATS/A,B,C OPEN(5,FILE='KOK.DAT') DISC=B*B - 4.*A*C IF (DISC.LT.0)THEN WRITE(1,*)'Reel kok yok' ELSE IF (DISC.EQ.0)THEN X1 = -B/ (2.*A) X2=X1 ELSE X1 = (-B + SQRT(DISC)) / (2.*A) X2 = (-B - SQRT(DISC)) / (2.*A) ENDIF WRITE(5,11)A,B,C WRITE(5,*)'1. KOK: ',X1 WRITE(5,*)'2. KOK: ',X2 FORMAT(/,1X,F4.1,'X^2 +',F4.1,'X +', $ F4.1,'DENKLEMININ KOKLERI') RETURN END REAL *8 KOK,DISC COMMON /KATS/A,B,C DO L=1,100 READ(*,*)A, B, C IF(A.EQ.0.D0) STOP KOK= DISC(X1,X2) ENDDO END Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları

101 Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları
program ortalama c c Program X fonksiyonunun değerlerini ekrandan okur ve hafızada tutar , c değerlerin ortalamasını hesaplar ve ekrana yazar. integer i , n real x(1000) ! X dizinin büyüklüğü : 1000 real ortx common n do I = 1 , ! En fazla 10 satır okunacak read (*,*) x(i) enddo n= i - 1 write(*,*)‘girilen değer sayisi ',n c ortx= 0. do i = 1,n ortx = ortx + x(i) ortx = ortx / n write(*,*)‘fonksiyonun ortalama degeri : ', ortx end Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları

102 Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları
program ortalama real x(1000) ! X dizinin büyüklüğü : 1000 common n do i = 1 , ! En fazla 10 satır okunacak read (*,*) x(i) enddo n= i - 1 write(*,*)'girilen değer sayisi ',n hesap = ortx(x) write (*,*) 'fonksiyonun ortalama degeri : ', hesap end FUNCTION ortx(x) common k real x(1000) ortx= 0. do i = 1, k ortx = ortx + x(i) ortx = ortx / k return Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları

103 Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları
şeklindeki fonksiyonu Fortran dilinde hesaplayan program kodlayın. DO I = 1, 5 DO I = 1, 5 READ(*,*) X READ(*,*) X FONK = F(X) PI=ATAN(1.)*4 WRITE(*,10) X, F(X) IF(X.LT.0) THEN ENDDO 10 FORMAT(2X,‘X=‘, F5.2,’F=‘,F8.2) F=2.*X+PI ELSE IF(X.GE.0..AND.X.LE.5.) THEN END F=X*X-4 FUNCTION F(Z) ELSE IF(X.GT.5..AND.X.LE.7.) THEN DATA PI/3.1415/ F=SIN(X)-COS(X) IF(Z.LT.0) THEN ELSE F=2.*Z+PI ELSE IF(Z.GE.0..AND.Z.LE.5.) THEN F=PI F=Z*Z-4 ELSE IF(Z.GT.5..AND.Z.LE.7.) THEN END IF F=SIN(Z)-COS(Z) WRITE(*,10) X, F ELSE F=PI END END IF RETURN END Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları

104 uygulama

105 KÜTÜK İşlemleri – OPEN deyimi
Genel formu: OPEN(UNIT=*,FILE=‘dosyaadı’,STATUS=‘**’,FORM=‘**’,ACCESS=‘**’) Okuma/yazma yapılacak dosyanın formatı: ** = FORMATTED veya UNFORMATTED Okuma/yazma yapılacak dosyaya erişim şekli: ** = SEQUENTIAL veya RANDOM Okuma/yazma yapılacak dosyanın numarası: * = 1,2….99999 Okuma/yazma yapılacak dosyanın adı: * = son.dat Okuma/yazma yapılacak dosyanın diskteki durumu: ** = NEW veya OLD veya UNKNOWN Ya da kısaca: OPEN(*,FILE=‘dosyaadı’) Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları

106 KÜTÜK İşlemleri Bilgisayar Uygulaması
KÜTÜK İşlemleri Bilgisayar Uygulaması OPEN ( 2, FILE=‘KARE.DAT’) DO X = 0.1, 5. Y=1./2 * X*X WRITE(2,1) X, Y ENDDO 1 FORMAT( 2X, F4.1, 3X, F6.2 ) END Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları

107 KÜTÜK İşlemleri Bilgisayar Uygulaması
VERI.DAT dosyasının içeriğinde 8 kişinin isim ve kilo bilgisi bulunmaktadır Selim Burhan Cavit Davut 65.3 Ela 88.7 Fırat 67.5 Guti 86.7 Hande 66.7 Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları

108 VERI.DAT dosyasında kaç kişi var???
REAL AGIR CHARACTER*20 ISIM (100) DIMENSION AGIR(100) OPEN(2,FILE='VERI.DAT') DO 100 L=1,800 READ (2,*,END=22) ISIM(L), AGIR(L) WRITE (*,*) ISIM(L), AGIR(L) 100 CONTINUE 22 KISISAY=L-1 write(*,*)’Toplam’,KISISAY, ‘kisi’ END Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları

109 Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları
REAL AGIR,TOPLAM,ORT CHARACTER*20 ISIM (10) DIMENSION AGIR(10) OPEN(2,FILE='VERI.DAT') TOPLAM=0.0 DO 100 L=1,8 READ (2,*, END=22) ISIM(L), AGIR(L) WRITE (*,*) ISIM(L), AGIR(L) TOPLAM = TOPLAM + AGIR(L) 100 CONTINUE 22 KISISAY=L-1 write(*,*)’Toplam’,KISISAY, ‘kisi’ ORT = TOPLAM / 10 WRITE (*,*)' Toplam ',TOPLAM,' kilo' WRITE (*,*)' Ortalama ',ORT, 'kilo' ENB = 0.00D0 DO 200 I=1,8 IF (AGIR(I).GE.ENB)THEN NUMARA=I ENB=AGIR(I) ENDIF 200 CONTINUE WRITE (*,*)NUMARA, AGIR(NUMARA) ,ISIM(NUMARA) END Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları

110 Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları
Özel Konular Türev İntegral Diferansiyel Denklem Çözümleri Kök Bulma Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları

111 Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları
Özel Konular-TÜREV f(x) ‘in Xo noktasındaki türevi: veya f’(x0) f f(x0) x x0 Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları

112 Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları
Özel Konular-TÜREV f(x) ‘in Xo noktasındaki ikinci türevi: Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları

113 Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları
READ(*,*)X DH = !ADIM ARALIĞI FX = F(X) FSONRA = F(X + DH) FONCE = F(X - DH) DFX = (FSONRA - FX)/DH ! I. NÜMERİK TÜREV D2FX = (FSONRA - 2.D0*FX + FONCE)/DH**2 ! II. NÜMERİK TÜREV WRITE(*,*) 'NUMERIK TUREVLER' WRITE(*,2)'X=', X, 'F(X)=', FX, 'DF/DX=', DFX, 'D2F/DX2=', D2FX 2 FORMAT(2X,4(4X,A,1X,E9.4)) END FUNCTION F(X) F=X*X*X RETURN Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları

114 Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları
WRITE (*,*)' A VE B SAYILARINI GIRINIZ ' READ (*,*) A, B WRITE (*,*)' N SAYISINI GIRINIZ' READ (*,*) N H = (B-A)/N open(1,file='fort1.dat‘) DO X = A , B, h FX = F(X) FSONRA = F(X+H) FONCE = F(X-H) DFX = (FSONRA - FX)/H ! I. TÜREV D2FX = (FSONRA - 2.D0*FX + FONCE)/H**2 ! II. TÜREV WRITE(1,2)'X=', X, 'F(X)=', FX, 'DF/DX=', DFX, 'D2F/DX2=', D2FX ENDDO 2 FORMAT(2X,4(4X,A,1X,E9.4)) END FUNCTION F(X) F=X*X*X RETURN Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları

115 Özel Konular-İNTEGRAL
f(x)’in integrali En tanınmış yöntemler: 1- Yamuk yöntemi 2- Simpson Yöntemi f f(x) x a b Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları

116 Özel Konular-İNTEGRAL
Yamuk Yöntemi Simpson Yöntemi Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları

117 Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları
c Yamuk (trapezoid) ve Simpson Yontemleri implicit real (a-h,o-z) real is,it write(*,*)'a ve b sayilarini giriniz=' read(*,*)a,b write(*,*)'n sayisini giriniz=' read(*,*)n h=(b-a)/(n) c Yamuk Yontemi do i=0,n-1 it=it+h/2.d0*( f(a+(i+1)*h)+f(a+i*h) ) enddo write(*,*)'** YAMUK YONTEMI **',it c Simpson Yontemi is=h/3.d0*(f(a)+f(b)) do i=1,n-1,2 is=is+4.d0/3.d0*h*f(a+i*h) do i=2,n-2,2 is=is+2.d0/3.d0*h*f(a+i*h) write(*,*)'** SIMPSON YONTEMI',is end function f(x) f=3.*x*x F(x)=3x2 fonksiyonunun 2<x<6 aralığında belirli integralini hesaplayan Fortran programı kodlayınız Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları

118 Özel Konular-Dif.Denk.Çözümleri
, Runge-Kutta Yöntemi Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları

119 Bilgisayar Uygulaması-I RK_4
Analitik Çözüm diferansiyel denklemini y fonksiyonunun (0,1) aralığındaki 10 değeri için 4. derece R-K ile çözünüz Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları

120 Bilgisayar Uygulaması-II RK_4
Bir uçağın kütlesi kg olup bu uçağı havalandırmak için 40 kN değerinde bir itki uygulanmaktadır. Kalkış sırasında uçağa havadan gelen direnç R=2,5 v2 dir; burada v değeri m/s, R değeri ise N dır. Uçağın kalkış hızı 252 km/saat (70 m/s) olduğuna göre uçağın kalması için geçen zamanı hesaplayınız Uçağın kalkıncaya kadar hareket denklemi dir. Denklemin çözümü bizden istenilen kalkış zamanını verecektir. Çözüm için dördüncü mertebe Runge-Kutta yöntemi kullanalım. Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları

121 Özel Konular-KÖK BULMA
Bulunmak istenen değerler f(x) ‘in değerini 0 (sıfır) yapan tüm xi değerleridir Çok bilinen yöntemler: 1- İteratif Yöntem 2- Bolzano Yöntemi 3- Yanlış Yer Yöntemi 4- Newton Yöntemi Not: Sadece Newton Yöntemine yer verilecektir. f f(x) x1 x2 x a b Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları

122 KÖK BULMA – Newton Yöntemi
f(x) fonksiyonunu  civarında Taylor serisine açalım: ihmal  kök değerinde f()=0 olduğundan Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları

123 KÖK BULMA – Newton Yöntemi
Algoritma: hesapla Her adımda kontrol et Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları

124 Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları
IMPLICIT REAL*8 (A-H,O-Z) X0=1.5d ! X0:DENEME DEĞERİ H=0.01d0 ! Turev icin artım miktarı EPS=1.E ! EPS:DUYARLILIK NMAX=1000 DO N=1,NMAX CALL TUREV (H,X0,DF_DX) X1=X0-F(X0)/dF_dX IF( ABS(X1-X0).LT.EPS ) THEN WRITE(*,111)N,' ASAMADA BULUNAN KOK=',X1 GOTO 11 ENDIF X0=X1 ENDDO FORMAT(1X,I4,3X,A,E15.8) 11 END FUNCTION F(X) F=x*x-4.d0 RETURN END SUBROUTINE TUREV (H,X0,DF_DX) XSONRA=X0+H F0=F(X0) F1=F(XSONRA) dF_dX=(F1-F0)/H Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları


"Bilgisayar Uygulamaları" indir ppt

Benzer bir sunumlar


Google Reklamları