CANBULA Bilim Bilişim Günlüğü

13Nis/120

Kişisel betikler için otomatik parametre tamamlama

Linux'ta terminal üzerinden çalışırken verdiğimiz komutlarda otomatik tamamlamalardan yararlanmak için sık sık TAB tuşuna basarız. Zaman içinde bu durum artık vazgeçilemez duruma gelir ve her komut için bu özellikten faydalanmak isteriz. Eğer sizde benim gibi kendi betiklerinizi yazıyorsanız otomatik tamamlamayı mutlaka bu betikler için de aktifleştirme ihtiyacı hissetmişsinizdir.. Bu yazının devamında bu işlemin nasıl yapılacağını anlatacağım.

17Mar/120

Konsol Tabanlı Program için Grafik Kullanıcı Arayüzü

Günümüzde Fortran hala üniversitelerin fen tabanlı bölümlerinde programlama derslerinde öğretilmeye çalışılıyor. Ancak genelde öğrencilerde hatta bazen dersi verenlerde bile Fortran'a karşı bir önyargı oluyor. Genelde bu önyargılarının sebebinin Fortran'ın eski olmasından kaynaklandığı söyleniyor oysa Fortran hala aktif olarak geliştirilmektedir ve bugünkü standartları ile modern bir dilden yapı olarak hiç bir eksiği bulunmamaktadır; paralel programlama desteği, nesne yönelimli programlama, C++ ile birlikte kullanılabilme vb. desteklemektedir. Bunun yanında bilimsel hesaplamalar için hem yaygın kullanım hem de hız ve güvenilirlik açısından hala açıkara birinci sıradadır çünkü bu işe adanmış bir dildir.

Eksik bir yönü ise sadece Fortran kullanarak bir Grafik Kullanıcı Arayüzü (GUI) oluşturmanın deveye hendek atlatmak kadar zor olmasıdır. C++ ile beraber kullanılabildiğinden, C++ tarafında QT,GTK+,wxWidgets vb. kütüphaneler yardımıyla her türlü GUI hazırlanabilir ancak çok daha basit bir çözümden de faydalanılabilir. Bu yazının devamında en basit yolla bir GUI nasıl hazırlanır onu anlatacağım.

18Ara/110

Komutların Çıktı Vermemesini Sağlamak

Aslında böyle bir şeye çok fazla kişinin ihtiyacı olacağını sanmıyorum ama yine de özel bir durum olduğu için burada paylaşmak faydalı olabilir. Sorunumu şöyle özetleyebilirim, bir takım hesaplamalar yapıp ekrana format kullanarak sabit sütunlarda veriler yazdıran bir fortran kodu kullanıyorum ve belirli aralıklarla yine fortran kodumun için gnuplot'u çağırarak çeşitli grafikler çizdiriyorum. Eksenlerin üzerine bazı etiketler koymak istiyorum ancak otomatik olarak ayarlanan eksen aralığının dışına bir etiket denk gelirse gnuplot doğal olarak bir hata mesajı döndürüyor ve doğal olarak bu mesaj benim çıktımı bozuyor. Dolayısıyla yazının devamında anlatacaklarımla bu hata mesajının ekranda görünmemesini sağlayacağım.

13Ara/110

Fortran ile bir dosyanın tamamını okutmak

Fortran ile programlar yazarken bir dosyadan veri okutmak çok sık yaptığımız bir iştir. Eğer dosyadaki satır sayısı biliniyorsa basit bir döngüyle kolayca okuma yapılabilir veya dosyanın ilk satırına o dosyadaki satır sayısını yazarak aynı işi dolaylı yoldan yapabilirsiniz. Ancak genel ve geçerli bir çözüm olarak dosyada kaç satır varsa otomatik olarak hepsini okuyacak bir kod yazmak en doğrusu olacaktır. Bu işlemler aşağıda vereceğim kodlar yardımıyla basitçe yapılabilir.

9Ara/110

Çok boyutlu dizilerin parametre olarak tanımlanması

Yazdığımız programların genelinde değişmeden kullanılacak ancak gerektiği zaman tek yerden değiştirebileceğimiz sabitler kullanırız. Bu sabitler FORTRAN77'de "common block" olarak tanımlanıyordu ancak Fortran 90/95 ve sonrasında bu kullanım kaldırıldı. Bu kullanım yerine modüllerden destek alınmalıdır. Bu yazıda hem skaler değişkenlerin hem de tek ve çok boyutlu dizilerin (array) parametre olarak tanımlanmasını anlatmaya çalışacağım.

1May/110

Fortran’da Bul ve Değiştir Fonksiyonu

Fortran kullanarak yalnızca nümerik uygulamalar kodlamıyoruz. İhtiyacımız oldukça bazı günlük işlerde de kullanabiliriz. Fortran genel anlamda karakter manipülasyonunda biraz zayıftır, daha doğrusu biraz uğraştırır. Diğer dillerde bu gibi durumlar için hazır fonksiyonlar bulunurken Fortran'da kendiniz bazı fonksiyonlar yazmak zorunda kalabilirsiniz. Benim de bu şekilde karakter değişkenlerininin içinde bir karakter katarı aratıp onu başka bir karakter katarı ile değiştirecek bir fonksiyona ihtiyacım oldu, dolayısıyla da oturup yazdım :)   bu fonksiyonu yazının devamında bulabilirsiniz ve kendi programlarınızda kullanabilirsiniz.

23Nis/110

Monte Carlo Yöntemi ile Pi Sayısının Hesaplanması

Bu aralar C++ ile Fortran arasında karşılaştırmalar yapıyorum. Hem bol döngülü hem de bol bol rastgele sayı üretmek gereken bir işlem olan monte carlo yöntemi ile pi sayısını hesaplayacak bir algoritma yazdım. Kodları ve sonucu da paylaşmak istedim. Önce C++ kodu ile başlayalım.