ForumTayfa  

Go Back   ForumTayfa > Güvenlik & Bilgisayar & İnternet & Webmaster & Programlama Bölümü > Güvenlik & Bilgisayar & İnternet & Webmaster & Programlama > Programlama

Programlama Programlama hakkında herşeyi paylaştığımız, soru ve sorunlarımızı tartıştığımız bölüm...

Yeni Konu aç  Cevapla
 
LinkBack Seçenekler Stil
Alt 08.03.09, 01:56   #1 (permalink)
28:06:42:12
 
-BuRAk- - ait Kullanıcı Resmi (Avatar)
 
Üyelik Tarihi: Dec 2006
Nereden: Ankara
Mesaj Sayısı: 11.490
Konu Sayısı: 2068
Takım: Galatasaray
Rep Gücü: 543106
Rep Puanı: 54308119
Rep Derecesi : -BuRAk- 0-10000000-BuRAk- 0-10000000-BuRAk- 0-10000000-BuRAk- 0-10000000-BuRAk- 0-10000000-BuRAk- 0-10000000-BuRAk- 0-10000000-BuRAk- 0-10000000-BuRAk- 0-10000000-BuRAk- 0-10000000-BuRAk- 0-10000000
Ruh Hali:

Standart Fortran




FORTRAN'A GİRİŞ

Fortran alfabesi 10 nümerik, 26 alfabetik ve 13 özel karakterden oluşur. Fortran dilinde değişkenlere, arşiv fonksiyonlarına, aritmetik deyim fonksiyonlarına, alt programlara isimler verilir. Fortran isimleri birincisi nümerik olmayan 6 karakteri aşmayan alfabetik veya nümerik karakterden oluşur. Fortran deyimleri isim olarak kullanılamaz. Fortran77 komutlarının ekrana yerleştirilmesi şu biçimde olmalıdır:

1. kolona C yazılır ve diğer kolonlara açıklama yapılır.
2-5 kolonları arasına deyim numaraları yazılır.
6. kolona bir satıra sığmayan deyimlerin bir alt satıra yazılması için bir karakter yazılır.
7-72 kolonları arasına FORTRAN komutları ve deyimleri yazılır.

SABİTLER VE DEĞİŞKENLER

Bir programın icrası sırasında değeri değişmeyen büyüklüklere sabitler; değeri değişen büyüklüklere ise değişkenler denilir.

Sabitler :
FORTRAN77 dilinde kullanılan sabitlerden bazıları şunlardır; tamsayı, gerçel, çift incelikli, kompleks, mantıksal. Bu sabitler çevirici tarafından rahatlıkla kabul edilir.

Değişkenler :
İki biçimde değişken vardır:

(a) İndissiz değişkenler :
İndissiz değişkenlerden bazıları, tamsayı, gerçel, çift incelikli, kompleks ve mantıksal değişkenlerdir.
Değişken adı I,J,K,L,M,N harflerinden biriyle başlarsa bunun bir tamsayı değişkeni olduğu anlaşılır. Bu harflerin dışında bir harfle başlarsa bu değişken bir gerçel değişkendir. Diğer değişkenler türleri için IMPLICIT veya tip bildiri deyimleri kullanılmalıdır.

(b) İndisli değişkenler :
FORTRAN77 dilinde bu tür değişkenlere dizi denilir.



Aritmetik ifadeler :
Bir aritmetik ifade sabitlerin, değişkenlerin, fonksiyonların aritmetik işlem sembolleriyle birbirinden ayrılmış kombinezonlarını içerir. Aritmetik işlem sembolleri, **(üs alma), *, /, + ve - dır. Bunlar öncelik sırasına göre yazılmışlardır. Burada dikkat edilmesi gereken durum, üs alınırken üssün kompleks büyüklük olması gerektiğidir.

Mantıksal ifadeler :
Bir mantıksal ifade bir mantıksal sabit (.TRUE. veya .FALSE.) ve değişken birbirlerine mantıksal işlem sembolleriyle bağlanmış mantıksal fonksiyonları içerir. Mantıksal işlem sembolleri; .NOT., .AND., .OR. sembollerinden oluşur. Mantıksal ilişki sembolleri ise şunlardır: .LT., .LE., .EQ., .NE., .GT., .GE.



ATAMA DEYİMLERİ

Atama deyimleri değişkenlere değer atamasında kullanılır. Aritmetik atama deyiminde, işaretsiz değişken=aritmetik ifade şeklinde yazılım vardır ve sağdaki aritmetik ifadenin değeri sayısal olarak bulunur, bu değer soldaki değişkene atanır.
Mantiksal deyimi ise,

mantıksal değişken=mantıksal ifade

biçiminde yazılır. Yukarıdaki açıklamalar bunun için de geçerlidir. ASSIGN deyimine burada değinilmeyecektir. Ayrıntılı bilgi için herhangi bir FORTRAN77 kitabına başvurabilirsiniz.



GİRİŞ/ÇIKIŞ DEYİMLERİ

READ Deyimi :
Dış ortamdan bilgisayara bilgi aktarılmasını sağlar.

READ (i,n) liste genel biçiminde yazılır.

{{i}} giriş ünitesinin numarısını belirten bir tamsayı sabitidir.
Klavyeden bilgi giriçi için i=$5$ yazılmalıdır.
{{n}} ise giriş bilgilerinin dış ortamda nasıl yerleştirileceğini belirten ilgili FORMAT deyiminin numarasıdır.
READ deyimi bu şekliyle FORTRAN$77$ çeviricisi tarafından kabul edilmektedir. Ancak verilen FORMAT bilgisine uygun giriş yapılmadığında çevirirken bir hata mesaji oluşmasa bile programın çalışması esnasında aksama olabilir. Buna dikkat edilmelidir. İstenirse READ deyimi FORMATsız da kullanılabilir. Yine istenirse liste tanımlı giriş de yapılabilir. Bu durum da READ deyimi şu biçimde yazılır:

READ*, değişken listesi

Liste indissiz ve indisli değişken, dizi isimlerinden oluşur.

WRITE Deyimi :
Bilgisayar belleğinden dış ortama bilgi aktarılmasını sağlar.Genel yazılımı :
WRITE (i,n) liste biçimindedir.

çıkış ünitesinin numarasını belirtir. Ekran için bu sayı i=$6$ dır.
$n$ ise çıkış bilgilerinin ekranda nasıl görüleceğini belirten FORMAT numarasıdır.
WRITE deyimi bu şekliyle FORTRAN$77$ çeviricisi tarafından kabul edilmektedir. Ancak, FORMAT'ta verilen alan birimlerinin WRITE deyimindeki listeyle uyuşmasına özen gösterilmelidir.
İstenirse WRITE deyimi formatsız olarak kullanılabilir.
Eğer liste tanımlı çıkış yaptırmak istenirse bu çevirici tarafından kabul edilmeyeceğinden,
WRITE ($6$ ,*) liste şeklinde kullanmak doğru olacaktır. WRITE*, değişken listesi biçimindeki bir yazılım LINUX altında doğru değildir.
Ama bunun yerine,

PRINT*, değişken liste yazılımını kullanabiliriz.

FORMAT Deyimi :
Bilgisayarlara bilgi giriş çıkışında dış ortam düzeni için kullanılan bir deyimdir.

nformat $(f_{1},f_{2},..........,f_{n} )$ biçiminde yazılır.

n; READ ve WRITE deyimlerinde açıklanan deyim numarasıdır. $f_{1},,f_{2},....,f_{n}$ ise READ ve WRITE deyimlerinde belirtilen değişkenlerin dış ortama ne biçimde aktarılacağını gö steren alan bildirileridir. FORMAT deyimi programın içinde herhangi bir yerde bulunabilir, yalnız DO çevriminin son deyimi olamaz. Çevirici tarafından kabul edilen alan bildirilerinden bazıları şunlardır: X,I,F,E,D,L,G,A ve H tipi alan bildirileri. Bu alan bildirileri gerektiği gibi kullanılırsa programın çevrilmesi ve çalıştırılması sırasında herhangi bir sorun çıkmaz.

Aşağıda açıklanacak olan deyimler FORTRAN77 çeviricisi tarafından kolayca algılanabilmektedir.

Şartsız GO TO deyimi :
Bu deyim programın icra sırasının numarası ile belirtilen deyime dallanmasını sağlar.

GO TO n

biçiminde yazılır. Burada n, programın akışının dallanacağı deyim numarasını gösteren bir tamsayı sabittir.

Hesaplanmış GO TO Deyimi :
Şartsız go to deyimi ile aynı görevi üstlenir. Ancak n sayısının değeri sabit olmayıp bir tamsayı değişkenidir. Genel yazılımı :

GO TO $(n_{1},n_{2},.....n_{m})$, k biçimindedir.

İcra sırasında k=1,2,3,...., m olmas/i na göre dallanma $n_{1},n_{2},.....n_{m}$ numaralı deyimlerle olur.

Aritmetik IF Deyimi :
Bu deyim programdaki deyimlerin icrasının şartlı olarak değiştirebilmesi olanağını sağlar, bir aritmetik ifadenin değerinin negatif, sıfır ya da pozitif olmasına göre gerekli deyimlere dallanma olur.

IF(aritmetik ifade) $n_{1},n_{2},n_{3}$ biçiminde yazılır.

Aritmetik ifadenin değeri negatifse $n_{1}$, sıfırsa $n_{2}$ ve pozitifse $n_{3}$ numaralı deyime dallanma olacaktır.

Mantıksal IF Deyimi :
Mantıksal (lojik) işlemlerin yapılabilmesini sağlayan bir deyimdir. Bir mantıksal ifadenin doğru (TRUE) veya yanlış (FALSE) olmasına göre gerekli yere dallanma olur.

IF(Mantıksal İfade) deyim

genel biçiminde yazılır.
Mantıksal ifade doğruysa bunu izleyen deyim, yanlış ise mantıksal IF deyiminden sonraki deyim icra edilir. DO Deyimi :
Belirli işlemleri istenilen sayıda tekrarlamak, bir çevrim oluşturmak için kullanılan bir yönetim deyimidir.

DO n $i=m_{1},m_{2},m_{3}$ genel biçiminde yazılır.

Burada i değeri tamsayı, gerçel ve çift incelikli bir değişken; $m_{1}, m_{2}, m_{3}$ parametreleri de tamsayı ve değişken veya aritmetik ifadeler olabilir.

$m_{1}$ $le$ $m_{2}$,$m_{3}$ $>$ 0 ve $m_{1}$ $ge$ $m_{2}$, $m_{3}$ $< $ 0

koşullarından birinin sağlanması durumunda DO çevrimi çalışır, aksi halde icra DO çevrimini atlayarak n. deyimden sonraki ilk deyimle devam eder.
Kapalı DO çevrimleri DATA deyiminde kullanılırsa, i tamsayı değişken; $m_{1}, m_{2}, m_{3}$ ise bir tamsayı sabit veya bunların isimlerini bulunduran birer ifade durumundadırlar.
Uygulama olarak verilen örnekler içinde i, $m_{1}, m_{2}, m_{3}$ değişkenlerinin gerçel değerler aldığı bir DO çevrimi de kullanılmıştır.

CONTINUE Deyimi :
Bu deyim CONTINUE genel şeklinde yazılır ve genellikle DO çevriminin son deyimi olarak kullanılır. Programın başka kısımlarında kullanılıp kullanılmaması arasında fark yoktur.

PAUSE, STOP ve END Deyimleri :
PAUSE deyimi programın icrasını geçici olarak durdurur.

PAUSE
PAUSE n

PAUSE bir bildiri biçimlerinde yazılabilir. n en çok 6 rakamlı bir tamsayı sabit; bir bildiri ise en çok 45 karakteri olan bir karakter dizisidir. Programın icrasını operatör tekrar başlatır ve akiş bir sonraki deyimden devam eder.

STOP deyimi program icrasını durdurur. Bir FORTRAN 77 programında mutlaka bu deyim, son icra edilen deyim olarak bulunmalıdır. Yazılımı genellikle STOP biçimindedir.

END deyimi bir programın fiziksel olarak son deyimidir. Bu deyimin de bir programın sonunda mutlaka bulunması gerekir.



Programlama Mantığı

Bu bölümde size genel olarak programlama hakkında bilgi vermek istiyorum.Aslında başta Pascalın tarihçesini yazmayı düşünüyordum.Fakat daha sonra bunun eğitici bir yanı olmayacağını düşündüğümden vazgeçtim.Eğer programlama hakkında çok az da olsa deneyiminiz yoksa bu bölümün size faydası olacağından şüphem yok.
Bildiğiniz gibi bilgisayarlar insanların yapamadığı birçok karışık işlem ve işleri çok zorlanmadan yaparlar.Fakat bu işlemleri yapabilmesi için yine insanlar tarafından yazılmış programlar kullanır.İşte bu yazılar dizisini takip ederek sizde bilgisayara birtakım işler yaptıracaksınız.Belki ciddi programlar yazmanız için ilk adımlarınız olacak bu yazı dizisi.Belki de sadece yeni bir hobiniz daha olacak.Hatta bilgisayar programlarını yazmanız zihninizi genişletecek.

Turbo Pascal Derleyicisi(ilk bölümde kurulumunu anlattığımız) düz yazı biçimindeki kodu çalıştırılabilir bir programa dönüştürecektir.Yani Not Defterinde birkaç satır kod yazacağız ve derleyici vasıtasıyla bunu Windows'un çalıştırabileceği .exe uzantılı bir programa dönüştüreceğiz.

Bir kere kodu derleyip programı oluşturduğumuzda .exe uzantılı programı değiştirme şansımız olmayacak.Yapılan ufak hataları düzeltmek için kaynak kodu değiştirip tekrar derlememiz gerekecek.Zaten yazdığınız hatalı kodlar derlenmeyecek,işlem yarıda kesilecektir.Turbo Pascal Derleyicisi bu aşamada nerde hata yaptığınızı size bildirir.Böylece yaptığınız hatayı anlamanız çok güç olmaz. Programlama deyince korkmanıza gerek yok.Çünkü pascal bir takım dillerin aksine öğrenilmesi çok kolay ve kullanışlı bir dildir.Orta seviyede bir İngilizcesi olan biri hiç zorlanmadan pascal öğrenebilir.Çünkü pascal komutları İngilizce kelimeler ve bunların kısaltmalarından oluşmaktadır."İngilizce bilmiyorum." diye telaşlanmanıza da gerek yok.Pascal komutları kısa ve akılda kalır yapıda kelimelerden oluşuyor.Bunlar aynı anda "Neden Pascal?" sorularını da yanıtlıyor herhalde.

Programcılıkta veriyi saklamak için değişkenler kullanılır.Bu değişkenleri kaplara benzetebiliriz.Nasıl kaplarda bir şeyler muhafaza edebiliyorsak değişkenlerde de veri muhafaza edebiliyoruz.Ve nasıl kapların içindekini değiştirebiliyorsak,değişkenlerin içlerindeki veriyi de değiştirebiliriz.

Bir bilgisayar programı genel olarak Girdi(Input)-->İşlem(Processing)-->Çıktı(Output) mantığı ile çalışır.Yani klavye,fare gibi bir girdi aracından girdiyi alır.Daha sonra işlemcide gerekli işlemleri gerçekleştirir ve sonucu kullanıcıya monitör yada printer vasıtası ile gösterir.Veri kaydetmesi gerektiğinde ise yine gerekli kaynakları(disket,hard disk,tape v.b) kullanır. Yüzeysel olarak Programlama Mantığı bu şekilde açıklanabilir.

Artık bilgisayarımızda Turbo Pascal Derleyicisi ve bizde programlama mantığı olduğuna göre yavaş yavaş örneklerle Turbo Pascal'ı ve Pascal dilini öğrenmeğe başlayabiliriz.
Kodumuzu iki türlü yazabiliriz.Birinci yöntem kodu Not Defteri gibi bir programda yazıp kaydettikten sonra derleyici ile derlemek.İkinci yöntem ise Turbo Pascal'ın editörünü kullanarak kodu yazıp derlemek.Eğer elinizde bu derslerin yazılı dökümü varsa ikinci yöntemi kullanabilirsiniz.Eğer derslerin yazılı dökümü yoksa,onları bilgisayar ortamında okuyup farklı bir Windows programıyla yazmanız daha kolay olacaktır.Çünkü Turbo Pascal'ın orijinal editörü Dos ortamında çalışıyor ve buda size çok vakit kaybettirebilir.Yinede her şartta birinci yöntemi öneririm.Böylece ikide bir Windows'tan çıkmanıza gerek kalmaz.

Pascal Kaynak Kodlarının(Derlenmemiş) uzantısı ".pas"dır.Turbo Pascal değişik uzantılı dosyaları derleyebilir(Pascal kodu içermek şartıyla),fakat ".pas" uzantısı yaygınlık kazanmış ve benimsenmiştir.Bu yüzden Windows'a .pas uzantısını tanıtmamız gerekebilir.Notepad ile bir şeyler yazıp 1.txt ismi ile kaydedin.Daha sonra bunu Yeniden Adlandırarak(Rename) .txt yerine .pas yazın.Dosya türünü değiştirmek istiyor musunuz diyaloguna Evet cevabını verdikten sonra dosyayı çift tıklayın "Birlikte Aç" penceresi açılacaktır.Dosya tanımına Pascal Kaynak Kodu yazın.Program listesinden de Notepad'i bulup seçin."Bu dosyayı açmak için her zaman bu programı kullan" kutusunun seçili olduğuna dikkat ederek "Tamam" butonuna basın.Böylece bilgisayarınız .pas uzantılı dosyalara ne isim vereceğini öğrenmiş olur.

Başlat(Start)-->Çalıştır(Run) ile çıkan kutucuğa notepad yazın.Böylece Windows'un klasik Not Defteri programı çalışacaktır.Aşağıdaki kodu yazın.

Program ilk;
begin
end.


Bu kodu ilk.pas olarak Masaüstü(Desktop)'ne kaydedin.Daha sonra tüm klasör pencerelerini kapatıp.Masaüstünde iken Başlat-->Çalıştır deyip kutucuğa tpc ilk.pas yazın.

Turbo Pascal Version 7.0 Copyright (c) 1983,92 Borland International
ILK.PAS(3)
3 lines, 1472 bytes code, 668 bytes data.
yazısını görürseniz programınız derlenmiş demektir.Masaüstünde ilk programınız olan Ilk.exe bulunuyorsa başardınız demektir.Eğer bu aşamaya gelemediyseniz korkarım daha önceden bir hata yapmışsınız.Kurulum yazısını tekrar inceleyin.
Ilk.exe'yi hevesle çalıştırdınız ama bir şey olmadı değil mi?Olmaması çok doğal çünkü programın sadece ismi,başı ve sonu var.Ama hiçbir işlem yok.Bu arada yapılacak işlemler begin ile end komutları arasına yazılır.End komutunun sonundaki nokta(.) ise programın bittiğini gösterir.Unutmayın bir programda birden fazla begin ve end bulunabilir.Programı bitiren end nokta ile program içerisindeki endler ise noktalı virgül( ile sonlandırılmalıdır.
Genelde pascal kod satırı noktalı virgül( ile sonlandırılır.Fakat bazı istisnai kodlarda noktalı virgül kullanılmaz.Bunlar begin,repeat gibi değişik şekilde sonlandırılan komutlardır.Endişe etmenize gerek yok zamanı gelince her şeyi daha net anlayacaksınız.
Yukarıdaki kodu yorumlamak gerekirse "Program ilk;" satırı programın isminin ilk olduğunu bildirir."begin" komutu programın başlangıcını "end" komutu ise programın sonunu belirtir.

Pascal ile yazılabilecek en basit program budur.



Genelde bir programlama dili öğrenilirken ilk yazılan aktif program ekrana "Merhaba Dünya" yazdıran programdır.Bu o kadar klasikleşmiştir ki neredeyse bir standart haline gelmiştir.Bende bu kuralı bozmak istemiyorum.İşte "Merhaba Dünya" programının kodları...

Program merhaba;
begin
write ('Merhaba Dunya');
end.

Derleyip çalıştırın sonucu göreceksiniz.Burada write komutu parantez ve tırnak işaretleri arasındaki stringi(sayı olmayan-alfanümerik) yazdırmaya yarar.Bu da aynı sonucu veren fakat kodu farklı olan bir program.

Program merhaba2;
begin
write ('Merhaba ');
write ('Dunya');
end.

Gördüğünüz gibi tırnak işaretleri içindeki boşlukta programa yansıyor.İsterseniz o boşluğu kaldırıp programı derlemeyi deneyin.Merhaba ve Dunya kelimelerinin bitişik yazıldığını göreceksiniz."write" komutu tek satıra yazı yazmak için kullanılır."writeln" komutu ise stringi yazıp imleci bir alt satıra atlatır.Aşağıdaki örneği inceleyin.

Program merhaba3;
begin
writeln('Merhaba Dunya');
writeln('Merhaba Mars');
writeln('Merhaba Saturn');
end.

"readln" komutu kullanıcının programa girdi girmesine izin verir.Girdi girişi Enter tuşuyla sonlandırılır.Bu girdi bir değişkene atanabilir yada hiçbirşey yapmadan kullanıcının Enter tuşuna basması beklenebilir.Aşağıdaki örneği incleyin.

Program readln1;
begin
writeln('Programi sonlandirmak icin Enter tusuna basiniz.');
readln;
end.


-BuRAk- isimli Üye şimdilik offline konumundadır   Alıntı ile Cevapla
Cevapla


Konuyu Toplam 1 Üye okuyor. (0 Kayıtlı üye ve 1 Misafir)
 
Seçenekler
Stil

Yetkileriniz
Konu Acma Yetkiniz Yok
Cevap Yazma Yetkiniz Yok
Eklenti Yükleme Yetkiniz Yok
Mesajınızı Değiştirme Yetkiniz Yok

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-Kodu Kapalı
Trackbacks are Açık
Pingbacks are Açık
Refbacks are Açık


Benzer Konular
Konu Konuyu Başlatan Forum Cevaplar Son Mesaj
Fortran tekelioğlu Bilgisayar ve Elektronik 1 11.10.08 18:56


Tüm Zamanlar GMT +3 Olarak Ayarlanmış. Şuanki Zaman: 02:06.


Powered by vBulletin® Version 3.8.0
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.6.0
User Alert System provided by Advanced User Tagging v3.0.6 (Lite) - vBulletin Mods & Addons Copyright © 2020 DragonByte Technologies Ltd.
ForumTayfa

Arşiv: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 16 22 23 24 25 26 27 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 95 96 97 98 99 100 102 103 104 105 106 155 156 157 158 159 160 161 162 163 164 167 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271


ForumTayfa - Link Değişimi
Telinka İletişim | Voip Ürünleri | Link Değişimine Katılın |

Sitemiz bir forum sitesi olduğundan dolayı, kullanıcılar her türlü görüşlerini önceden onay olmadan anında siteye yazabilmektedir. ForumTayfa Yöneticileri mesajları itina ile kontrol etse de, bu yazılardan dolayı doğabilecek her türlü sorumluluk yazan kullanıcılara aittir. Yine de sitemizde yasalara aykırı unsurlar bulursanız [email protected] email adresine bildirebilirsiniz, şikayetiniz incelendikten sonra en kısa sürede gereken yapılacaktır.

Any member of our web site has the right of adding comments instantly without getting permisson due to the forum structure of our site basis. Althought, our site modarators check comments with care, all the responsibilities sourced from these comments directly belong to the members. If you still find any illegal content in our site ( A.buse, H.arassment, S.camming, H.acking, W.arez, C.rack, D.ivx, Mp.3 or any Illegal Activity ), please report us via [email protected] .Your reports will be evaluated as soon as the arrival of your e-mail.