Bilgisayar Uygulamaları

Slides:



Advertisements
Benzer bir sunumlar
Algoritma.  Algoritma, belirli bir görevi yerine getiren sonlu sayıdaki işlemler dizisidir.  Başka bir deyişle; bir sorunu çözebilmek için gerekli olan.
Advertisements

BİLGİSAYAR PROGRAMLAMA Ders 2: Algoritma ve Akış Şemaları
Atalet, maddenin, hareketteki değişikliğe karşı direnç gösterme özelliğidir.
PROGRAMLAMA ve YAZILIM Sayısal Analiz Yrd.Doç.Dr. Zekeriya PARLAK.
ÖTÖ 451 Okul Yönetiminde Bilgisayar Uygulamaları R. Orçun Madran.
BİLGİSAYAR PROGRAMLAMA MATLAB Yrd.Doç.Dr. Cengiz Tepe.
Bölüm 4 KAPALI SİSTEMLERİN ENERJİ ANALİZİ
Örnek 1 Kullanıcının girdiği bir sayının karesini hesaplayan bir program yazınız.
TC Windows Editörü DevC++. KURULUM PROGRAMIN KURULACAĞI YER BURADA BELİRLENİYOR.
BSE 207 Mantık Devreleri Sayı sistemleri Sakarya Üniversitesi.
9. HAFTA 25 Nisan2016. Fonksiyon M-Dosyaları Fonksiyon dosyaları ilk satırda “function” kelimesi bulunan “.m” uzantısı bulunan dosyalardır. MATLAB içinde.
Bağlama ve Kapsam Kavramları
Doç. Dr. Cemil Öz SAÜ Bilgisayar Mühendisliği Dr. Cemil Öz.
f:(a,b)==>R fonksiyonu i)  x 1,x 2  (a,b) ve x 1  x 2 içi f(x 1 )  f(x 2 ) ise f fonksiyonu (a,b) aralığında artandır. y a x 1 ==>x 2 b.
1 Bölüm 2 C Dilinin Temelleri Alıştırmalar Bu bölümdeki problemler “C Dersi Çözümlü Problem Kitabı”, N. E. Ça ğ ıltay, C. E. Selbes, G. Tokdemir, ve Ç.
Bilgisayar Uygulamaları
Bölüm 2 C Dilinin Temelleri
BİLGİSAYAR PROGRAMLAMA DERSİ
Excel 2007.
3. DEĞİŞKENLER Değişkenlerin kullanım ve tanımlanma şekli, o dilde program yapmayı ve programların anlaşılırlığını etkileyen önemli faktörlerden biridir.
BM-103 Programlamaya Giriş Güz 2016 (3. Sunu)
EETE233 Mikrodenetleyiciler ArduIno ile Programlama
PROGRAMLAMAYA GİRİŞ VE ALGORİTMA
TAM SAYILAR.
Bilgisayar Donanım ve Sistem Yazılımı
Bölüm 4 KAPALI SİSTEMLERİN ENERJİ ANALİZİ
Vize Sorusu Klavyeden girilen N adet sayıyı List1 nesnesinde gösteren ve bu sayıların toplamını ve ortalamasını Text1 ve Text2 nesnesinde yazdıran.
Problem Çözme ve Algoritmalar
PROGRAMLAMA TEMELLERİ
C Programlama Yrd.Doç.Dr. Ziynet PAMUK BMM211-H05
BİLGİSAYAR PROGRAMLAMA Ders 5: Döngüler
MAT – 101 Temel Matematik Mustafa Sezer PEHLİVAN *
MAT – 101 Temel Matematik Mustafa Sezer PEHLİVAN *
KÜMELER HAZIRLAYAN : SELİM ACAR
Bölüm 3 Atama ve Girdi/Çıktı Komutları
PROBLEM ÇÖZME VE ALGORİTMALAR
Bilgisayar Programlama
Bilgisayar Mühendisliğine Giriş
3.hafta METODLAR.
PARAMETRİK HİPOTEZ TESTLERİ
Bölüm 7 İfadeler ve atamalar.
BİLGİSAYAR programlama II
BİLGİSAYAR programlama II
NİŞANTAŞI ÜNİVERSİTESİ
Bölüm 4: Kontrol Yapıları I (Seçim Yapma)
Doğrusal Mantık Yapısı İle Problem Çözme
PROGRAMLAMAYA GİRİŞ VE ALGORİTMA
B- Yaygınlık Ölçüleri Standart Sapma ve Varyans Değişim Katsayısı
Fortran Proglama Dili’nin Esasları
Bilgisayar Bilimi Koşullu Durumlar.
Karar Yapıları İle Problem Çözme
Serbest (Basit) Giriş/Çıkış İşlemleri Formatlı Giriş/Çıkış İşlemleri Temel Kütüphane Fonksiyonları (Intrinsic Functions) Karşılaştırma Operatörleri ve.
Format Deyimleri Örnekleri;
Sonlu Özdevinirlere Giriş
1.) Bellekteki A= , B=0.01, C= değerleri WRITE (6 ,10) A,B,C 10 FORMAT (1X,E11.5,5X,E8.2/1X,e13.6) ile yazdırılırsa çıkış görüntüsü nasıl.
NİŞANTAŞI ÜNİVERSİTESİ
Fonksiyonlar ve Alt Programlar
6. DÖNGÜ (TEKRARLAMA) DEYİMLERİ
Bilgisayar Bilimi Fonksiyon Yazma.
Değerler ve Değişkenler
MAK212-SAYISAL YÖNTEMLER Sayısal Türev ve İntegral
NİŞANTAŞI ÜNİVERSİTESİ
NİŞANTAŞI ÜNİVERSİTESİ
BLM-111 PROGRAMLAMA DİLLERİ I Ders-10 Diziler
NİŞANTAŞI ÜNİVERSİTESİ
MTM216 GÖRSEL PROGRAMLAMA
Kesikli Olay benzetimi Bileşenleri
İleri Algoritma Analizi
Bilimsel Araştırma Yöntemleri
NİŞANTAŞI ÜNİVERSİTESİ
Sunum transkripti:

Bilgisayar Uygulamaları Fortran’a Giriş 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ı index GİRİŞ Operatör,Editör,Derleme Veri Tipleri ve Tür Tanımlama Deyimler-READ/WRITE Deyimler-FORMATLAR Deyimler-DO Deyimler-GOTO 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ı

Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları Genel Tanımlar Bilgisayar, bilgilerin depolandığı ve bu bilgiler üzerinde matematiksel işlemleri insanın yapabileceği hızın çok üzerinde yapabildiği bir makinedir Birincil bellek Giriş/Çıkış İşlem İkincil bellek Giriş/Çıkış 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ı Genel Tanımlar Program: Bilgisayara, bir problemin çözüm işlemlerini hangi sırada ve nasıl yapacağını belirten komutlar veya ifadeler zinciri Programlama: Bir programın tasarlanması, yazılması ve test verileri ile çalıştırılması Programcı: Program yazan kişi 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ı Genel Tanımlar Bilgisayarlar on tabanına göre sayıları kabul eder ve ikili sayı sistemine bu sayıları çevirirler ve daha sonraişlem yaptıktan sonra tekrar onlu sayı sistemine dönüşüm yapılır. Bilgisayar bellekleri, karakter, tamsayı veya gerçel sayıları kayıtlarında tutarlar. 1 bit = 2 li sayı tabanına göre 0 veya 1 değerlerinden biridir 8 bit = 1 byte Pozitif ve negatif tam sayılar bellekte 1, 2, 4 veya 8 byte kadar yer işgal ederler. n bit sayısı olmak üzere, Enküçük tamsayı =-2n-1 Enbüyük tamsayı =2n-1-1 4 byte lık (n=32 bit) tamsayı için, enküçük tamsayı -2.147.483.648 enbüyük tamsayı 2.147.483.647 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ı Programlama Dilleri İki tür programlama dili bulunur Makineye Yönelmiş Diller 0 ve 1 lerden oluşur. makine dilinde iki sayının toplanması: 01000110011101000111101010000010010101101000010 Probleme Yönelmiş Diller BASIC, Pascal, FORTRAN, COBOL, ALGOL, C , Java, Delphi, Phyton … Bu tur programlama sistemleri ile çalışılırken problemin makine diline çevirilmesi için derleyicilere ihtiyaç vardır. Temel programın derleyici program aracılığı ile bilgisayarca,belli kurallara uyarak makine dili programına çevrilmesine derleme denir. 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ı 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ı

Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları Fortran 90 ve Fortran 77 Günümüzde yaygın kullanılmakta olan iki Fortran versiyonu vardır. FORTRAN 77 ve FORTRAN 90 Fortran 90 ‘da dizin ve vektör işlemleri Fortran 77 ‘e göre daha kolay ve hızlı yapılabilir. Fortran90, Fortran77 ‘de olmayan ilave özelliklerle donatılmıştır. Fortran 90 serbest yazım formatlıdır. Fortran 77 de bulunan 72 sütun sınırlaması yoktur. Fortran 77 programında dosya uzantıları .f , .for Fortran 90 da ise .f90, .f95 şeklindedir 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ı 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ı

Doğrusal akış şemaları İş akışları, giriş, hesaplama, çıkış biçiminde olan akış şemaları bu grup kapsamına girer. Yapısında karar alma ya da döngü ifadeleri içermeyen akış şemalarıdır.

Örnek-1 (Ekrana Merhaba Dünya Yazdırma) Algoritması Akış Şeması (doğrusal) Adım 1: Başla Adım 2: Ekrana ‘Merhaba Dünya’ yazdır. Adım 3: Dur Başla Merhaba Dünya Fortran Kodu Dur (Son-Bitir) Write(*,*) ‘merhaba dünya’ End

Örnek-2 (İki Sayıyı Toplama ve Görüntüleme) Algoritması Akış Şeması (doğrusal) Adım 1: Başla Adım 2: Birinci sayıyı gir Adım 3: İkinci sayıyı gir Adım 4: İki sayıyı topla Adım 5: Toplam sonucunu ekranda görüntüle Adım 6: Dur Başla A Değişkenler: A: Birinci sayı B: İkinci sayı C:Toplam sonucu B C=A+B Adım 1: Başla Adım 2: A’yı gir Adım 3: B’yi gir Adım 4: C=A+B Adım 5: C’yi ekranda görüntüle Adım 6: Dur C Dur

Mantıksal akış şemaları Geniş ölçüde mantıksal kararları içeren akış şemalarıdır. Hesap düzenleri genellikle basittir. Verilen koşulun doğru yada yanlış olmasına göre iş akışı yönlendirilir. Koşul Evet (Doğru) Hayır (Yanlış)

Örnek-3 (Klavyeden Girilen 2 sayıdan birincisi büyük ise çarpma, aksi durumda toplama yapan algoritma ve akış şeması) Algoritması Akış şeması Değişkenler: X: Birinci sayı Y: İkinci sayı S:Toplam sonucu Başla X Adım 1: Başla Adım 2: X’i gir Adım 3: Y’yi gir Adım 4: X>Y ise S=X*Y hesapla adım 6’ya git Adım 5: X<=Y ise S=X+Y hesapla Adım 6: S’i görüntüle Adım 7: Dur Y X>Y Evet S=X*Y Hayır S=X+Y S Dur

Döngüsel Akış Şemaları Sorunun çözümü için, çözümde yer alan herhangi bir adım ya da aşamanın birden fazla kullanıldığı akış şemalarına denir. İş akışları genel olarak giriş ya da başlangıç değeri verme, hesaplama, kontrol biçiminde olmaktadır.

i : sayaç (5 kişi olup olmadığını Örnek-4 (Klavyeden 5 kişinin doğum yılını girip 2013 yılındaki yaşını hesaplayan algoritma ve akış şeması) Algoritması Değişkenler: dy : kişinin doğum yılı yas: kisinin yaşı i : sayaç (5 kişi olup olmadığını kontrol eder) Adım 1: Başla Adım 2: i=1; Adım 3: dy’yi gir Adım 4: yas=2013-dy Adım 5: yas’ı ekrana yazdır Adım 6: i<5 ise i’yi 1 arttır, adım 3’e git Adım 7: Dur

Örnek 4 (Devam) Akış şeması I (Döngü ifadesi içermeyen) Akış şeması II Artım değeri Başlangıç değeri Akış şeması I (Döngü ifadesi içermeyen) Akış şeması II (Döngü şekli içeren) i, 1, 5, 1 Başla Başla Döngü Değişkeni i,1,5,1 i=1 Bitiş değeri dy dy yas=2013-dy yas=2013-dy i=i+1 yas yas i Evet i<5 Hayır Dur Dur

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

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ı

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ı

Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları Operatörler ARİTMETİK SAYISAL KARŞILAŞTIRMA ALFASAYISAL MANTIKSAL ( ) ** * / + - .EQ. (=) .NE. (≠) .LE. (≤) .LT. (<) .GE. (≥) .GT. (>) ‘ ‘ “ “ // .NOT. .AND. .OR. .EQV. .NEQV. Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları

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ı

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ı

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ı

eV biriminindeki enerji değerini Joule birimine dönüştürün carpan = 1.602e-19 E = 13.6 !eV E_j = E * carpan WRITE(*,*) e_J END 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ı FORMÜL YAZMA Y1 = X**3+2. / 3 Ft = ( X**3+2. ) / 3 YD = (( X+2. ) / 3 )** 3 Y4 = ( X+2. )**3 / 3 DALGA1 = A0*COS(W*T-K*X)*EXP(-R*T) DF = abs( 1/(LOG(X)-1) ) Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları

INTEGER SABİTLER Genel kullanımı INTEGER *n dğşkn1, dğşkn2 … Çeşitleri INTEGER A şeklinde kullanımı INTEGER *4 A ile aynıdır INTEGER*1 A A değişkeni/sabiti bellekte 1 byte lık yer işgal eder -128 <= A <= 127 değerlerini alır. INTEGER*2 A A değişkeni/sabiti bellekte 2 byte lık yer işgal eder -32768 <= A <= 32767 değerlerini alır. INTEGER*4 A A değişkeni/sabiti bellekte 4 byte lık yer işgal eder -2,147,483,648 <= A <= 2,147,483,647 Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları

İNTEGER DEĞİŞKEN Tür tanımlamak 7-72.sütunlar arasına tam sayı olmasını istediğiniz değişkenin ismini yazın INTEGER asal INTEGER k12s INTEGER En, Maks(7) Tek bir değişkenin birden fazla değerinin hafızada tutulması isteniyorsa: Parantez içinde verilen miktar kadar bellekte yer ayırılır. 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ı 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ı

REAL DEĞİŞKEN Tür tanımlamak 7-72.sütunlar arasına gerçel sayı olmasını istediğiniz değişkenin ismini yazın REAL*8 asal REAL k12s REAL*4 En, Maks(7) DOUBLE PRECISION asal Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları

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ı

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ı

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ı

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ı

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ı

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

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

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ı

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ı

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ı

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ı

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ı

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ı

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

!!! Üç 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ı

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(*, *, err=* , end=* ) p * : formatsız değer oku/yaz 1,2,… tamsayılar: formatlı değer oku/yaz Okuma yazma hatası durumunda * numaralı satıra git Okuma yazma hatası durumunda * numaralı satıra git write(*, *, err=* ) p Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları

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 = 4.0000 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ı

BİLGİSAYAR UYGULAMASI 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 150.000.000km uzaktadır. Bir yıl 365.25 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ı

FORTRAN’da Genel Bir Program Yapısı 1. PROGRAM ifade 2. IMPLICIT NONE ifade 3. Tip tanımlamaları REAL ifadeler, INTEGER ifadeler, LOGICAL ifadeler, CHARACTER ifadeler 4. İşlem yapan/içeren ifadeler Atama ifadeleri, READ ifadeleri, WRITE ifadeleri, STOP ifadeleri 5. END PROGRAM Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları

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ı

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ı

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ı

FORMAT Alan Bildirimleri -2- ALFASAYI sayılar : An nHbilgi 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ı

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ı

Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları INTEGER sayılar : In GİRİŞ : Veri tamsayı olmalıdır ve sayı alan içinde sağdan hizalanmalıdır . Sayının işareti de n hanenin içindedir. Ç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ı

Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları Formatsız okutma Formatlı okutma WRITE ( * , * ) ‘BIR SAYI GIRINIZ’ READ ( * , * ) K WRITE ( * , * ) ‘FORMATSIZ SONUC ‘ , K WRITE ( * , 15 ) 'FORMATLI SONUC ‘ , K 15 FORMAT ( a14 , I3 ) END WRITE ( * , * ) ‘BIR SAYI GIRINIZ’ READ ( * , 9 ) K WRITE ( * , * ) ‘FORMATSIZ SONUC ‘ , K WRITE ( * , 15 ) 'FORMATLI SONUC ‘ , K FORMAT ( a14 , I3 ) 9 FORMAT ( 2x , I2 ) END Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları

FORMAT Alan Bildirimleri -4- REAL sayılar : Fn.m WRITE (*, 3 ) A 3 Format ( 1x , F8.4 ) 6.sütun 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ı Formatsız okutma 1 WRITE (*,*) ' BIR SAYI GIRINIZ' READ (*, * ) A WRITE (*,*) 'FORMATSIZ SONUC',A WRITE (*,15) A GOTO 1 15 FORMAT (14HFORMATLI SONUC,F6.2 ) END 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ı Formatlı okutma 1 WRITE (*,*) ' BIR SAYI GIRINIZ' READ (*, 4 ) A WRITE (*,*) 'FORMATSIZ SONUC',A WRITE (*,15) A GOTO 1 4 FORMAT (F6.2) 15 FORMAT (14HFORMATLI SONUC,F6.2 ) END Fn.m Formatlı okuma (integer sayı girilmesi durumunda) Okuma formatı sırasında Fn.m’deki n sayısı kadar karakterlik yer açılır. Girilen sayı soldan sağa dogru giriş sırasında açılan boşluklara yerleştirilir. Yerleştirme işlemi tamalandıktan sonra m değeri kadar sağdan sola doğru sayılır ve nokta konulur. 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ı Fn.m Özellikler GİRİŞ: veri gerçelsayı olmalı ve sayı alan içinde sağdan hizalanmalıdır. Alan bildirisinde desimal sayının yeri belirtildiğinden, verilerde desimal nokta yazılmayabilir. Ç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ı

FORMAT Alan Bildirimleri -5- ÜSTEL sayılar : En.m ve Dn.m WRITE (*, 3 ) A 3 Format ( 1x , E18.9 ) 6.sütun 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ı En.m ve Dn.m 33 FORMAT (A , E13.2 ) WRITE(*,*) ‘BIR SAYI GIRINIZ' READ(*,2) H 2 FORMAT(E7.2) WRITE(*,33) 'FORMATLI SONUC:', H END WRITE(*,*) 'IKI SAYI GIRINIZ' READ(*,2) H 2 FORMAT(D7.2) WRITE(*,*) 'FORMATSIZ SONUC:', H 33 FORMAT( 'FORMATLI SONUC:', D13.2 ) WRITE(*,33) H END 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ı En.m ve Dn.m Özellikler GİRİŞ: Alan içinde desimal noktanın yeri bildirildiğinden veride desimal nokta yazılmayabilir. Ç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ı

FORMAT Alan Bildirimleri -6- KARMA sayılar : Gn.m WRITE (*, 3 ) A 3 Format ( 1x , G18.9 ) 6.sütun 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ı Gn.m Özellikler 0.1 10m Gn.m = En.m Gn.m = Fn.m WRITE(*,*) 'IKI SAYI GIRINIZ' READ(*,2) H 2 FORMAT(G7.2) WRITE(*,*) 'FORMATSIZ SONUC:', H 33 FORMAT (14HFORMATLISONUC: , G13.2) WRITE(*,33) H END Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları

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

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ı

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ı

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çinde DO nun indisleyici parametreleri olan i , m1 , m2 ve m3 ü değiştiren, yeniden tanımlayan bir deyim kullanılamaz. 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ı

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

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ı

Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları Koşullu DO döngüsü DO WHILE (şart) şart sağlandığı sürece devam eder. DO WHILE döngüsüne girmeden önce şartı oluşturan değerlere ilk atamalar yapılmalıdır. Örnek: DO WHILE (X.LT.0) ... END DO 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ı DO WHILE Örneği n= 8 i= 1 y= 2. do while (i.le.n.and.y.gt.0) ! Mantıksal şart y= y -(-1)**i-i write(*,*)i,y i= i +1 ! i güncelleniyor enddo end Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları

Faktöriyel hesaplayalım… PROGRAM FaktoriyelHesabi INTEGER I, FAKTORIYEL FAKTORIYEL=1 PRINT *,' Tamsayi deger giriniz ' READ (*,*) I DO WHILE (I < 0) PRINT *,' Faktoriyel hesabi icin sadece ' PRINT *,' pozitif tamsayilar girilmelidir : Yeniden giriniz' END DO DO K=1,I Faktoriyel=K*FAKTORIYEL ENDDO WRITE(*,3) 'Yanit', FAKTORIYEL 3 FORMAT (1X,a7, T10 , I7) END PROGRAM FaktoriyelHesabi 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ı 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ı

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ı

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ı

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ı

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ı

Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları Aritmetik IF deyimi : Genel formati: IF ( m ) d1, d2 , d3 (m) aritmetik işleminin sonucu m< 0 ise d1 numaralı deyime m= 0 ise d2 numaralı deyime m> 0 ise d3 numaralı deyime aktarılır. 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ı şeklindeki fonksiyonu Fortran dilinde hesaplayan program kodlayın. Not: x=1000 girildiğinde program dursun 50 READ(*,*)X IF (X-1000.) 2,1,2 1 STOP 2 IF(X) 3,3,4 3 F = ABS(X) GO TO 100 4 IF( X-1 ) 5,6,6 5 F = 2.*X*X+1. GO TO 100 6 F = X**3 100 WRITE(*,11) X, F 11 FORMAT(‘X=‘, F7.2,2X,’F=‘,F8.3) GO TO 50 END 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ı 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ı

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 50 READ(*,*) X IF( X .EQ. 1000 ) STOP IF( X .LE. 0. ) F = ABS(X) IF(X .LE. 1. .AND. X.GT.0) F=2.*X*X+1. IF(X .GE. 1.) F = X**3 WRITE(*,11) X, F 11 FORMAT(‘X=‘, F7.2,2X,’F=‘,F8.3) GO TO 50 END 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ı 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ı

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ı

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ı

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ı

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ı

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

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 ) NO, NOT 5 FORMAT ( I5,3X,I3 ) IF ( NOT.LE.25 ) THEN WRITE ( *,30 )NO , N4 ELSE IF ( NOT . LE .50 ) THEN WRITE ( *,30 )NO , N3 ELSE IF ( NOT.LE.75 ) THEN WRITE ( *,30 )NO , N2 ELSE WRITE ( *,30 )NO , N1 END IF 30 FORMAT ( 5X,I5, 'NOT = ' , A1) GO TO 1 90 STOP END Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları

DIMENSION Deyimi ve DİZİLER X , tek boyutlu vektör olsun. Matematikte ; x = (x1 , x2 , … xn)T olarak gösterilirken Fortranda ise DIMENSION X (100) şeklindedir. X1  x(1) X2  x(2) … Xn  x(n) X fonksiyonunun değerleri ayrı birer değişken olarak kullanılabilir: (1) y= x(2) + c (2) do k=3,88 z(k)= x(k) * r – 2.518 enddo Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları

DİZİLER 2 Boyutlu Diziler 2D diziler matris ve vektör 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 Örnek: 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ı

Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları DİZİLER Dizinlerin türü olabilir 1) integer enr(50) 2) REAL *8 kal DIMENSION kal(18) 3) character*20 liste(1000) 4) 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ı

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ı

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ı

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 -------------- 8 2 4 2 8 4 6 6 8 B MATRISI 1 2 3 4 5 6 7 8 9 C MATRISI 9 4 7 6 13 10 13 14 17 Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları

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ı

Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları CALL Deyimi Arg1, arg2 … : Bu argümanlar bir değişken, bir sabit, dizi elemanı, dizi adi, aritmetik, mantıksal veya karakter ifade olabilir. Ayrıca bir FUNCTION adı olabilir. Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları

SUBROUTINE Alt programı Ana programa birden fazla bilgi gönderebilir ad: ……. CALL altprogramadı (arg1,..) END SUBROUTINE alt program adı (arg1,arg2,..) ................ Fortran deyimleri RETURN Ana Program Alt Program Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları

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 Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları

SUBROUTINE : Özellikler SUBRUOTINE alt programı argümansız olarak kullanılabilir. SUBROUTINE alt programında tür söz konusu olmadığı için adın hangi harfle başladığı önemli değildir. Alt programın argüman listesi ile ,ilişkili CALL deyiminin argüman listesi, argüman sayısı ve türü açısından uyumlu olmak zorundadır. Başka bir deyişle, adları farklı olsa da her iki listede aynı sırada bulunan argümanlar aynı türde olmalıdır. Gerek ana programdan (çağıran programdan) alt programa aktarılan bilgiler gerekse alt programdan ana programa aktarılan bilgiler argümanlar aracılığıyla aktarılır. Bu bilgiler her türde her türde skaler değerler olabileceği gibi diziler de olabilir. Eğer argüman diziyi simgeliyorsa, büyüklüğü hem ana programda hem de alt programda bildirilmek zorundadır. Bu deyim işleme konulduğunda argümanlar alt programda son alındıkları değerleri taşırlar. 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ı 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ı

Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları FUNCTION : Özellikler Alt program adı programcı tarafından belirlenir ve hesaplamalarda kullanılır. Argüman listeleri birbirinden virgülle ayrılmış değişken ve sabitlerden oluşur. Ana ve alt programlardaki listedeki argümanların sayısı aynı olup, birbiriyle çakışan argümanlar aynı türde olmalıdır. Çakışan argümanların adları aynı olabilir, fakat olmak zorunda değildir. Bir FUNCTION alt programından ana programa gönderilecek değer (sonuç, yani programın adı), RETURN deyiminden önce alt program adını taşıyan değişkene atanmak zorundadır. Bu nedenledir ki, alt program adı tam sayı bir değişken ise geri gönderilen değer tamsayı, alt program adı ondalıklı bir değişken ise geri gönderilen değer ondalıklıdır. FUNCTION sözcüğünden önce REAL veya INTEGER yazarak alt programın türünü (sonucun türünü) belirleyebilir. Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları

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 hesaplanır 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ı 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 , HX ) 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ı

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ı

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ı

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ı

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ı

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ı

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ı

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ı

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ı

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' GOTO 100 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 11 FORMAT(/,1X,F4.1,'X^2 +',F4.1,'X +', $ F4.1,'DENKLEMININ KOKLERI') 100 RETURN END 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ı

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 , 10 ! En fazla 10 satır okunacak read (*,*) x(i) enddo n= i - 1 write(*,*)‘girilen değer sayisi ',n 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ı

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 , 10 ! 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ı

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ı

KÜTÜK İşlemleri Bilgisayar Uygulaması .1 .01 .2 .02 .3 .05 .4 .08 .5 .13 .6 .18 .7 .25 .8 .32 .9 .41 1.0 .50 1.1 .61 1.2 .72 1.3 .85 1.4 .98 1.5 1.13 1.6 1.28 1.7 1.45 1.8 1.62 1.9 1.80 2.0 2.00 2.1 2.21 2.2 2.42 2.3 2.64 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ı

KÜTÜK İşlemleri Bilgisayar Uygulaması VERI.DAT dosyasının içeriğinde 8 kişinin isim ve kilo bilgisi bulunmaktadır Selim 48.7 Burhan 76.5 Cavit 58.5 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ı

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ı

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ı

Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları Özel Konular Türev İntegral Kök Bulma Runge – Kutta Yöntemi ile Dif. Denk Çözümü 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ı Ö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ı

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ı

Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları READ(*,*)X DH = 0.01 !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ı

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ı

Ö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ı

Özel Konular-İNTEGRAL Yamuk Yöntemi Simpson Yöntemi 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ı 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ı

Ö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ı

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ı

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ı

Dr. Sedat ŞENGÜL Fen Fakültesi Fizik Bölümü Bilgisayar Uygulamaları IMPLICIT REAL*8 (A-H,O-Z) X0=1.5d0 ! X0:DENEME DEĞERİ H=0.01d0 ! Turev icin artım miktarı EPS=1.E-7 ! 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 111 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ı

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

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ı

Bilgisayar Uygulaması-II RK_4 Bir uçağın kütlesi 25000 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ı