Fortran'da Nasıl Programlanır (Resimlerle)

İçindekiler:

Fortran'da Nasıl Programlanır (Resimlerle)
Fortran'da Nasıl Programlanır (Resimlerle)

Video: Fortran'da Nasıl Programlanır (Resimlerle)

Video: Fortran'da Nasıl Programlanır (Resimlerle)
Video: Kullandığım en iyi not tutma uygulaması 2024, Nisan
Anonim

Birçok insan Fortran'ı arkaik ve "ölü" bir programlama dili olarak algılar. Ancak, çoğu bilimsel ve mühendislik kodu Fortran'da yazılmıştır. Bu nedenle, F77 ve F90'da programlama, çoğu teknik programcı için gerekli bir beceri olmaya devam etmektedir. Ayrıca, en son Fortran standartları (2003, 2008, 2015), programcının OOP (nesne yönelimli programlama) gibi tüm modern dil özelliklerini kullanırken minimum çabayla yüksek verimli kod yazmasına olanak tanır. FORTRAN, "FORmula TRANslation"ın kısaltmasıdır ve grafik veya veritabanı uygulamaları yerine matematiksel ve sayısal uygulamalar için en uygun olanıdır. Çoğu fortran kodu, bir menü veya GUI arayüzü yerine bir dosyadan veya komut satırından metin girdisi alır.

adımlar

Bölüm 1/4: Basit Bir Program Yazma ve Derleme

Fortran merhaba dünya programı yazma düzeltildi
Fortran merhaba dünya programı yazma düzeltildi

Adım 1. Bir "Merhaba Dünya" programı yazın

Bu genellikle herhangi bir dilde yazan ilk programdır ve ekrana sadece "Merhaba dünya" yazdırır. Aşağıdaki kodu herhangi bir metin düzenleyiciye yazın ve helloworld.f olarak kaydedin. Her satırın önünde tam olarak 6 boşluk olmasına dikkat edin.

merhabaworld programı örtük yok karakter*13 merhaba_string merhaba_string = "Merhaba dünya!" (*, *) merhaba_string program sonu merhabaworld yaz

: Boşluklar yalnızca Fortran'ın FORTRAN 77'ye kadar olan sürümlerinde gereklidir. Daha yeni bir sürüm kullanıyorsanız boşlukları bırakabilirsiniz. Programları daha yeni sürümden f77 ile değil f95 ile derleyin; dosya uzantısı olarak sadece.f yerine.f95 kullanın.

Adım 2. Programı derleyin

Bunu yapmak için komut satırına f77 helloworld.f yazın. Bu bir hata veriyorsa, muhtemelen henüz gfortran gibi bir Fortran derleyicisi kurmamışsınızdır.

Fortran merhaba dünya derleme run
Fortran merhaba dünya derleme run

Adım 3. Programınızı çalıştırın

Derleyici a.out adında bir dosya üretti../a.out yazarak bu dosyayı çalıştırın.

Adım 4. Az önce ne yazdığınızı anlayın

  • merhaba dünya programı

    "helloworld" programının başladığını gösterir. Benzer şekilde,

    program sonu merhaba dünya

  • sonunu belirtir.
  • Varsayılan olarak, bir değişken türü bildirmezseniz, Fortran i'den n'ye bir harfle başlayan bir değişkene tamsayı ve diğerlerini gerçek bir sayı olarak kabul eder. kullanılması tavsiye edilir

    örtük hiçbiri

  • bu davranışa ihtiyacınız yoksa.
  • karakter*13 merhaba_string

  • merhaba_string adlı bir karakter dizisini bildirir.
  • merhaba_string = "Merhaba dünya!"

  • "Merhaba dünya!" değerini atar. bildirilen diziye. C gibi diğer dillerden farklı olarak, bu, diziyi bildirmekle aynı satırda yapılamaz.
  • (*, *) merhaba_string yaz

  • merhaba_string'in değerini standart çıktıya yazdırır. İlk *, bazı dosyaların aksine standart çıktıya yazmak anlamına gelir. İkinci *, herhangi bir özel biçimlendirme kullanmamak anlamına gelir.
Fortran yorumlar
Fortran yorumlar

Adım 5. Bir yorum ekleyin

Bu kadar basit bir programda bu gerekli değildir, ancak daha karmaşık bir şey yazdığınızda faydalı olacaktır, bu yüzden onları nasıl ekleyeceğinizi bilmelisiniz. Yorum eklemenin iki yolu vardır.

  • Tüm satırı tek başına olan bir yorum eklemek için, 6 boşluk olmadan doğrudan yeni satıra c yazın. Ondan sonra yorumunuzu yazın. Daha iyi okunabilirlik için c ile yorumunuz arasında bir boşluk bırakmalısınız, ancak bu gerekli değildir. kullanmanız gerektiğini unutmayın! Fortran 95 ve daha yeni sürümlerde c yerine.
  • Kodla aynı satıra bir yorum eklemek için bir ! yorumunuzun başlamasını istediğiniz yer. Yine, bir boşluk gerekli değildir, ancak okunabilirliği artırır.

Bölüm 2/4: Girdiyi ve If-Yapılarını Kullanma

Fortran veri türleri
Fortran veri türleri

Adım 1. Farklı veri türlerini anlayın

  • INTEGER, 1, 3 veya -3 gibi tam sayılar için kullanılır.
  • REAL, 2.5 gibi tam olmayan bir sayı da içerebilir.
  • COMPLEX, karmaşık sayıları saklamak için kullanılır. İlk sayı gerçek, ikincisi ise hayali kısımdır.
  • KARAKTER, harfler veya noktalama işaretleri gibi karakterler için kullanılır.
  • MANTIKLI,.true olabilir. veya.false.. Bu, diğer programlama dillerindeki boole türü gibidir.

Adım 2. Kullanıcının girdisini alın

Daha önce yazdığınız "Merhaba dünya" programında kullanıcı girişi almak işe yaramaz. Yeni bir dosya açın ve onu compnum.f olarak adlandırın. Bitirdiğinizde, kullanıcıya girdiği sayının pozitif mi, negatif mi yoksa sıfıra eşit mi olduğunu söyleyecektir.

  • Program özeti satırlarını girin ve program özetini bitirin.
  • Ardından, REAL türünde bir değişken bildirin. Beyanınızın programın başı ve sonu arasında olduğundan emin olun.
  • Kullanıcıya ne yapması gerektiğini açıklayın. Yazma işleviyle bir metin yazın.
  • Kullanıcının girdisini read işleviyle bildirdiğiniz değişkene okuyun.

program compnum gerçek r yazma (*, *) "Gerçek bir sayı girin:" oku (*, *) r programı sonlandır

Fortran eğer inşaat
Fortran eğer inşaat

Adım 3. Kullanıcının girdisini bir if-yapısı ile işleyin

arasına koy

(*, *) r'yi oku

ve

programı bitirmek

  • Karşılaştırma.gt ile yapılır. (büyüktür),.lt. (küçüktür) ve.eq. (eşittir) Fortran'da.
  • Fortran if, else if ve else'yi destekler
  • Bir Fortran if-yapısı her zaman end if ile biter.

(r.gt. 0) ise (*, *) "Bu sayı pozitiftir" yazın. else if (r.lt. 0) ise (*, *) "Bu sayı negatiftir." yoksa (*, *) "Bu sayı 0'dır" yazın. eğer son

: Daha fazla boşluk içeren if yapılarının içine kod girintisi yapmanız gerekmez, ancak okunabilirliği artırır.

Fortran sayı kontrol programı test
Fortran sayı kontrol programı test

Adım 4. Programınızı derleyin ve çalıştırın

Test etmek için bazı sayılar girin. Bir harf girerseniz, bir hata ortaya çıkar, ancak sorun değil çünkü program girişin harf, sayı veya başka bir şey olup olmadığını kontrol etmez.

Bölüm 3/4: Döngüleri ve Dizileri Kullanma

Adım 1. Yeni bir dosya açın

Bu konsept farklı olduğu için tekrar yeni bir program yazmanız gerekecek. Dosyayı addmany.f olarak adlandırın. Karşılık gelen program ve son program ifadelerinin yanı sıra örtük bir hiçbiri ekleyin. Bitirdiğinizde, bu program 10 sayı okuyacak ve toplamlarını yazdıracaktır.

Adım 2. 10 uzunluğunda bir dizi bildirin

Numaraları burada saklayacağınız yer burasıdır. Muhtemelen gerçek sayıların toplamını istediğiniz için diziyi gerçek olarak bildirmelisiniz. İle böyle bir dizi ilan edersiniz

gerçek sayılar(50)

(sayılar bir ifade değil, dizinin adıdır).

Adım 3. Bazı değişkenleri bildirin

numSum'u gerçek bir sayı olarak bildirin. Daha sonra toplamı saklamak için kullanacaksınız, ancak toplam zaten bir Fortran ifadesi tarafından alındığından, numSum gibi bir ad kullanmanız gerekir. 0'a ayarlayın. i'yi bir tamsayı olarak bildirin ve henüz herhangi bir değer atamayın. Bu, do döngüsünde yapılacaktır.

Adım 4. Bir do-loop oluşturun

Bunun diğer programlama dillerindeki karşılığı bir for döngüsü olacaktır.

  • Bir do-döngüsü her zaman do ile başlar.
  • do ile aynı satırda, ondan bir boşlukla ayrılmış, programın bittiğinde gideceği etikettir. Şimdilik sadece 1 yazın, etiketi daha sonra belirleyeceksiniz.
  • Bundan sonra, yine yalnızca bir boşlukla ayırarak yazın

    ben = 1, 10

    . Bu, döngüden önce bildirdiğiniz i değişkenini 1'lik adımlarla 1'den 10'a çıkaracaktır. Bu ifadede adımlardan bahsedilmemektedir, bu nedenle Fortran varsayılan 1 değerini kullanır.

    ben = 1, 10, 1

  • Döngünün içine biraz kod koyun (daha iyi okunabilirlik için boşluklarla girinti yapın). Bu program için, dizi numaralarının i-inci elemanı ile numSum değişkenini artırmalısınız. Bu ifade ile yapılır

    numSum = numSum + sayı(i)

  • Döngüyü etiketli bir devam ifadesi ile sonlandırın. Yalnızca 4 boşluk yazın. Bundan sonra, 1 yazın. Bu, bittikten sonra do-loop'a gitmesini söylediğiniz etikettir. Ardından, bir boşluk yazın ve devam edin. Devam ifadesi hiçbir şey yapmaz, ancak bir etiket yerleştirmek için iyi bir yer sağlar ve aynı zamanda do döngüsünün sona erdiğini gösterir.

Do döngünüz şimdi şöyle görünmelidir:

1 i = 1 yap, 10 numSum = numSum + sayılar(i) 1 devam et

: Fortran 95 ve daha yeni sürümlerde etiket kullanmanıza gerek yoktur. Sadece do deyimine bir tane koymayın ve döngüyü "devam" yerine "son do" ile bitirin.

Fortran do döngüsü kodu
Fortran do döngüsü kodu

Adım 5. numSum yazdırın

Ayrıca, örneğin "Sayılarınızın toplamı:" gibi bir bağlam vermek de mantıklı olacaktır. Her ikisi için de yazma işlevini kullanın. Kodunuzun tamamı şimdi aşağıdaki gibi görünmelidir:

program addmany örtük hiçbiri gerçek sayılar(10) gerçek numSum tamsayı i numSum = 0 yaz (*, *) "10 sayı girin:" oku (*, *) sayılar do 1 i = 1, 10 numSum = numSum + sayılar(i) 1 devam yaz (*, *) "Toplamları:" yaz (*, *) numSum program sonu addmany

Fortran sayı ekleme kodu test
Fortran sayı ekleme kodu test

Adım 6. Kodunuzu derleyin ve çalıştırın

Test etmeyi unutmayın. Girdiğiniz her sayının ardından ↵ Enter tuşuna basabilir veya aynı satıra birçok sayı girip aralarında boşluk bırakabilirsiniz.

Bölüm 4/4: Gelişmiş Kavramları Anlama

Fortran Adım 13'teki Program
Fortran Adım 13'teki Program

Adım 1. Programınızın ne yapacağına dair iyi bir fikriniz olsun

Girdi olarak ne tür verilere ihtiyaç duyulduğunu, çıktının nasıl yapılandırılacağını düşünün ve hesaplamanızın ilerlemesini izleyebilmeniz için bazı ara çıktıları ekleyin. Hesaplamanızın uzun süre çalışacağını veya birden fazla karmaşık adım içerdiğini biliyorsanız, bu çok yararlı olacaktır.

Fortran referans web sitesi ekran görüntüsü
Fortran referans web sitesi ekran görüntüsü

Adım 2. İyi bir Fortran referansı bulun

Fortran'ın bu makalede açıklanandan çok daha fazla işlevi vardır ve bunlar yazmak istediğiniz program için faydalı olabilir. Referans, bir programlama dilinin sahip olduğu tüm işlevleri listeler. Bu Fortran 77 için bir tane ve bu Fortran 90/95 için bir tane.

Fortran altyordamları example
Fortran altyordamları example

Adım 3. Alt rutinler ve fonksiyonlar hakkında bilgi edinin

Fortran biçimi dizesi example
Fortran biçimi dizesi example

Adım 4. Dosyalardan/dosyalara nasıl okunacağını ve yazılacağını öğrenin

Ayrıca giriş/çıkışınızı nasıl biçimlendireceğinizi öğrenin.

Modern fortran örneği ekran görüntüsü
Modern fortran örneği ekran görüntüsü

Adım 5. Fortran 90/95 ve daha yeni sürümlerin yeni özellikleri hakkında bilgi edinin

Yalnızca Fortran 77 kodunu yazacağınızı/koruyacağınızı biliyorsanız bu adımı atlayın.

Fortran 90'ın "Serbest Biçim" kaynak kodunu tanıttığını ve kodun boşluklar olmadan ve 72 karakter sınırı olmadan yazılmasına izin verdiğini unutmayın

Fortran kitabı çevrimiçi ekran görüntüsü
Fortran kitabı çevrimiçi ekran görüntüsü

Adım 6. Bilimsel Programlama ile ilgili bazı kitapları okuyun veya arayın

Örneğin, "Fortran'da Sayısal Tarifler" kitabı hem bilimsel programlama algoritmaları hakkında iyi bir metin hem de kodların nasıl bir araya getirileceğine dair iyi bir giriş niteliğindedir. Daha yeni sürümler, karma dil ortamında ve paralel programlamada nasıl programlanacağına ilişkin bölümleri içerir. Diğer bir örnek ise Arjen Markus tarafından yazılan "Modern Fortran in Practice". Kitap, Fortran programlarının en son Fortran standartlarına uygun olarak yirmi birinci yüzyıl tarzında nasıl yazılacağına dair bir fikir veriyor.

Birden fazla dosyada Fortran derleme programı
Birden fazla dosyada Fortran derleme programı

Adım 7. Birden çok dosyaya yayılmış bir programı nasıl derleyeceğinizi öğrenin

Fortran programınızın main.f ve morestuff.f dosyalarına yayıldığını ve ortaya çıkan ikili dosyanın allstuff olarak adlandırılmasını istediğinizi varsayalım. Ardından komut satırına aşağıdaki komutları yazmanız gerekecek:

f77 -c morestuff.f f77 -c main.f f77 -c morestuff.f f77 -o allstuff main.o morestuff.f

Ardından./allstuff yazarak dosyayı çalıştırın.

: Bu, Fortran'ın daha yeni sürümleriyle aynı şekilde çalışır. Sadece.f'yi doğru uzantıyla ve f77'yi doğru derleyici sürümüyle değiştirin.

Adım 8. Derleyicinizin sağladığı optimizasyonu kullanın

Çoğu derleyici, kodunuzun verimliliğini artıran optimizasyon algoritmaları içerir. Bunlar genellikle derlenirken bir -O, -O2 veya -O3 bayrağı eklenerek açılır (yine fortran sürümünüze bağlı olarak).

  • Genel olarak, en düşük seviye -O veya -O2 seviyesi en iyisidir. Daha agresif optimizasyon seçeneğinin kullanılmasının karmaşık kodlarda hatalara yol açabileceğini ve hatta işleri yavaşlatabileceğini unutmayın! Kodunuzu test edin.

İpuçları

  • Küçük programlarla başlayın. Kendi kodunuzu yaparken, problemin en önemli kısmını belirlemeye çalışın - veri girişi mi yoksa fonksiyonların çağrılması mı, döngünün yapısı (bunlar çok temel örneklerdir) ve oradan başlayın. Sonra bunun üzerine küçük artışlarla inşa edin.
  • Fortran büyük/küçük harfe duyarlı değildir. Örneğin, bir "real Num" değişkeni bildirebilir ve ona bir değer atamak için sonraki satıra "num = 1" yazabilirsiniz. Ama bu kötü bir tarz, bu yüzden kaçının. Daha da önemlisi, Fortran, işlevler ve ifadeler durumunu da umursamıyor. İşlevleri ve ifadeleri BÜYÜK HARF ve değişkenleri küçük harfle yazmak oldukça yaygındır.
  • EMACS, Not Defteri yerine kullanılabilecek iyi bir ücretsiz metin düzenleyicidir.
  • İlk başta çevrimiçi bir IDE (entegre geliştirme ortamı) kullanmayı daha kolay bulabilirsiniz. İyi bir seçenek Kodlama Alanıdır. Orada Fortran-95 dahil çok sayıda programlama dili bulacaksınız. Başka bir seçenek de Ideone.

Önerilen: