Transcript Document

Fortran PROGRAMLAMA DİLİ
Programlama Dili ile ilgili Uygulamalarda Fiz172
Bilgisayara Giriş II dersinin PROGRAMLAMAYA
GİRİŞ VE ALGORİTMA OLUŞTURULMASI
bölümünde çözülmüş olan örneklerden
yararlanılacaktır.
Bu nedenle ders materyallerinin yanınızda
bulunması önem arz etmektedir.
FORTRAN’ DA BİLGİ TÜRLERİ
SAYISAL BİLGİLER
tamsayı
tek duyarlı
gerçel sayı
çift duyarlı
gerçel sayı
karmaşık sayı
a+ib≡(a,b)
mat fortran
0-9 arasındaki sayılar
+, - işareti içeriri
0-9 arasındaki sayılar
‘+’, ‘-‘ işareti, ‘.’ içeriri ve ‘E’ içerebili
duyarlılığı . dan sonra 7 basamaktır
0-9 arasındaki sayılar
‘+’, ‘-‘ işareti, ‘.’ içeriri ve ‘D’ içerebili
duyarlılığı . dan sonra 16 basamaktır
0-9 arasındaki sayılar
‘+’, ‘-‘ işareti, ‘.’ içeriri
‘E veya D’ içerebili
geçerli örnek
-175
+99
1998
-1.74
0.7E-05
2.956E02
1.56
1.6D06
-15.634
(3.7,5.)
(.7,-2.E03)
(6.3,0.)
(1)
geçersiz örnek
12.75
1E05
12
1.54E2.5
1.123456789
116
1.E07
14.6D3.7
3.6,9.5
(3,-15.9)
(5.)
FORTRAN’ DA BİLGİ TÜRLERİ
MANTIKSAL BİLGİLER
.TRUE.
(2)
.FALSE.
Karar verme sırasında kullanılan bilgi türleridir.
ALFASAYISAL BİLGİLER
İsim,şehir, ad soyadı gibi bilgi türlerini tanımlamak için
kullanılır ve tırnak işareti içinde gösterilir. Türkçe karakter
dışında her karakter kullanılabilir.
‘ayse’
4Hayse
‘2009310301001’
13H2009310301001
FORTRAN’ DA TÜR TANIMLAMA DEYİMLERİ
(1)
Değişken Türü
tamsayı
tek duyarlı
gerçel sayı
çift duyarlı
gerçel sayı
karmaşık sayı
a+ib≡(a,b)
mat fortran
Deyimin genel biçimi
integer deq1, deg2, ……..
real deq1, deg2, ……..
compex deq1, deg2, ……..
COMPLEX min, max, karma
alfasayısal
character *n deq1, deg2, ……..
character ad, soyadı, no(100)
mantıksal
logical deq1, deg2, ……..
double precision deq1, deg2, ……..
ÖRNEK
INTEGER sayi, top, tbs(100)
REAL maas, kalan
DOUBLE PRECISION A, bolum
logical dogru, yanlis, denetle(100)
DIMENSION: dizi değişkenlerini tanımlamak için kullanılan FORTRAN DEYİMİDİR.
GENEL FORMU
dimension
integer
real
double precision
complex
character
logical
deg1(büyüklük1),deg2( büyüklük2),…….
örnek
FORTRAN’ DA TÜR TANIMLAMA DEYİMLERİ
(2)
IMPLICIT deyimi: belirtilen harf veya harf aralığında tanımlanan değişkenlerin
aynı türde değişken olarak belirlenmesinde kullanılır.
Böylece örneğin a, b, c harflerinden herhangi biri ile başlayan tüm değişkenler
mantıksal değişken olsun diyebiliriz.
GENEL FORMU
INTEGER
REAL
IMPLICIT DOUBLE PRECISION ( harf listesi veya aralığı)
COMPLEX
CHARACTER
LOGICAL
ÖRNEKLER
implicit integer (a, r, o)
implicit real (A-L), logical B
FORTRAN’ DA İŞLEMCİLER
AKTARMA DEYİMİ: “ = “ solda bulunan değişkene sağdaki değişkenin veya işlemin sonucunda
elde edilen değeri aktarır.
Örnek:
“=“ deyiminden önce sayac ın değeri 5 ise
sayac=sayac+1
ilşeminden sonra sayac 6 değerini alır.
“=“ FORTRAN’ da eşitlik
anlamında kullanılmamaktadır.
değişken1 = değişken2 veya işlem sonucu
aktarıyor
FORTRAN KOMUTLARI
(1)
FORTRAN KOMUTLARI
(2)
KONTROL DEYİMLERİ
goto
Program akışının yönünü değiştirmek söz konusu olduğunda kullanılan FORTRAN DEYİMLERİDİR
KONTROL DEYİMLERİ
if
IF :mantıksal veya aritmetiksel bir işlemin sonucuna bağlı olarak programın akışına karar vermek
için kullanılan FORTRAN DEYİMİ.
GENEL FORMU
(a) mantıksal if
if (koşul ) yalnızca bir fortran deyimi- read/write/aritmetik işlem/aktarm/goto
(b) aritmetik if
if (aritmetik işlem/değişken ) N1, S1 , P1
işlem sonucu
<0 =0 >0
(c )blok if
h
a
y
ı
r
if (koşul)then
------------------------------endif
-------------------------------
e
v
e
t
h
a
y
ı
r
if (koşul)then
------------------------------else
------------------------------endif
-------------------------------
e
v
e
t
KONTROL DEYİMLERİ
örnek(1) – if
Aşağıda fortran kodu blok if in nasıl çalıştığını gösteren örnek programı inceleyelim.
Örnek Fortean77, Cezmi Orkun, 1994 kitabında verilen
akıştan yararlanılarak tasarlanmıştır.
KONTROL DEYİMLERİ
örnek(2) - if
Aşağıda fortran kodu blok if in nasıl çalıştığını gösteren örnek programı inceleyelim.
Örnek Fortean77, Cezmi Orkun, 1994 kitabında verilen akıştan yararlanılarak tasarlanmıştır.
KONTROL DEYİMLERİ do-continue/enddo
do-continue/ do-enddo: özellikle herhangi bir işlemin pek çok kere tekrarlanmasının söz konusu
olduğu durumlarda kullanılan FORTRAN DEYİMİ.
GENEL FORMU
(a) do- continue
do satır no döngü değişkeni=ilk değer,son değer, artış
son değer sayısı kadar
tekrarlanan işlem
satır no continue
(b) do- enddo
do döngü değişkeni=ilk değer,son değer, artış
son değer sayısı kadar
tekrarlanan işlem
enddo
KONTROL DEYİMLERİ
örnek---do-continue/enddo
do-continue/ do-enddo: özellikle herhangi bir işlemin pek çok kere tekrarlanmasının söz konusu
olduğu durumlarda kullanılan FORTRAN DEYİMİ.
KONTROL DEYİMLERİ hesaplanmış goto
hesaplanmış goto: bir değişkenin almış olduğu değere bağlı olarak birden fazla farklı satır
numaralarına programın akışı söz konusu olduğunda kullanılan FORTRAN DEYİMİ.
GENEL FORMU
goto (Sno1, Sno2, Sno3,…,SnoN) değişken
örnek
KONTROL DEYİMLERİ –örnek hesaplanmış goto (1)
Aşağıda menülü bir programın hesaplanmış goto deyimi kullanılarak nasıl hazırlandığı gösterilmiştir. Bu
programda seçiminizin aldığı 1, 2, 3, 4 değerine göre ANA MENÜ de belirtilen işlemler yapılmaktadır.
KONTROL DEYİMLERİ –örnek hesaplanmış goto (2)
ALT PROGRAMLAR
function
Bir ya da daha fazla değişkene bağlı olarak programın akışı sırasında birden fazla tekrarlanan ve
başlangıç-bitiş sınırları da kesin olacak şekilde ayrıca tanımlanabilen işlemlerden oluşan
program parçasına ALTPROGRAM denir.
function altprogram: ana programın parçası gibi davranan altprogramdır.
Örnek
GENEL FORMU
integer
real
double precision
complex
character
logical
FUNCTION adı(parametre listesi)
------------------------------------------------------------------------------------RETURN
END
Bir veya birden fazla veri FUNCTION programına gidebilir. Ancak dönüşünde sadece bir değer ana
programa döner. ANA programda verilen parametrelerin türü ve sayısı function daki ile aynı sayıda
ve aynı türde olmalıdır.
ALT PROGRAMLAR
örnek(1)-function
Programın hazırlanmasında Fortean77, Cezmi Orkun, 1994 kitabından yararlanılmıştır.
ALT PROGRAMLAR
örnek(2)-function
Aşağıda verilen programı ve çalıştırıldığında elde edilen çıktıyı inceleyerek ne iş yaptığını bulabilir
misiniz? (çözüm için sayfa ….. ya bakınız)
ALT PROGRAMLAR subroutine
subroutine altprogram: kendisi de başlı başına bir program olan ve aynı zamanda ihtiyaca bağlı
olarak bir ana program tarafında veya bir başka alt program tarafından kullanılan bir altprogramdır.
GENEL FORMU
Örnek
SUBROUTINE adı(giren-çıkan parametre listesi)
------------------------------------------------------------------------------------RETURN
END
İstenilen sayıda veri SUBROUTINE programına gelebilir ve ana programa dönebilir. Giren ve çıkan
verilerin sayısı ve türlerinin özdeş olması gereklidir.
ALT PROGRAMLAR örnek(1)-subroutine
Aşağıdaki programı alt program ile ana program arasında geçen veri alış verişinin nasıl
gerçekleştiğini anlamaya örnek bir program ve ekran çıktısı.
Örnek Fortean77, Cezmi Orkun, 1994 kitabında verilen akıştan yararlanılarak tasarlanmıştır.
ALT PROGRAMLAR örnek(2)-subroutine
Aşağıdaki programı alt program ile ana program arasında geçen veri alış verişinin nasıl
gerçekleştiğini anlamaya örnek bir program ve ekran çıktısı.
Örnek Fortean77, Cezmi Orkun, 1994 kitabında verilen akıştan yararlanılarak tasarlanmıştır.
ALT PROGRAMLAR örnek(2)-subroutine
ALT PROGRAMLAR örnek(2)-subroutine
DOSYA İŞLEMLERİ
Bir fortran programına veri giriş ve çıkışının bilgisayar ortamındaki bir dosyadan veya dosyaya
yapılabilmesi için dosyanın tanımlanması gerekir. Bu işlemlerin bütününe DOSYA İŞLEMLERİ denir.
OPEN: dosya açmak için kullanılan FORTRAN DEYİMİDİR
GENEL FORMU
OPEN ( UNIT= dosya no, FILE= dosya adı, STATUS=
‘old’
örnek
CLOSE: dosya kapatmak için kullanılan FORTRAN DEYİMİDİR
GENEL FORMU
CLOSE (dosya no)
‘formatted’
‘new’
, FORM=
‘unformatted’
)
ÖRNEK PROGRAMLAR
Bu kesimde amaç verilen örnek programların ne iş yaptıklarını incelemek, program analizini yapmaktır.
ÖRNEK PROGRAMLAR
Bu kesimde amaç verilen örnek programların ne iş yaptıklarını incelemek, program analizi yapmaktır.
ÖRNEK PROGRAMLAR
Bu kesimde amaç verilen örnek programların ne iş yaptıklarını incelemek, program analizi yapmaktır.
ÖRNEK PROGRAMLAR
Bu kesimde amaç verilen örnek programların ne iş yaptıklarını incelemek, program analizi yapmaktır.