Module: Alt programlar: prosedürler ve işlevler - 1


Problem

1/12

Alt programlar: Giriş

Theory Click to read/hide

Bir alt program , programın bir adı olan ve kendi ayrı görevini çözen ayrı bir parçasıdır. Alt program, ana programın başında bulunur ve adı belirtilerek ana programdan başlatılabilir (çağırılabilir)

Alt programların kullanımı, programda aynı kodu farklı yerlere yazmanız gerektiğinde kod tekrarını önlemenizi sağlar. 
Bir programa içe aktarılan kitaplıklar (örneğin, matematik kitaplığı matematik), zaten birisi tarafından derlenmiş olan alt programlardan oluşur. Programcıların hangi algoritmaları uyguladıklarını düşünmelerine gerek yoktur, sadece tam olarak ne yaptıklarını düşünerek onları uygularlar. Bu büyük bir zaman tasarrufu. Daha önce başkası tarafından yazılmış bir algoritma yazmaya gerek yoktur.

Her rutin yalnızca tek bir şey yapmalıdır:  ya sadece bir şey hesaplayın, ya da bazı verilerin çıktısını alın ya da başka bir şey yapın. 

İki tür alt program vardır - prosedürler ve işlevler

Alt programlar, sonucu belirli bir biçimde ekrana yazdırmak gibi bazı eylemleri gerçekleştirir (basit bir örnek olarak, writeln() ifadesi yazdırılan standart bir alt programdır. ekran bilgileri)

İşlev alt programları, ana programda kullanabileceğimiz bir sonuç döndürür (sayı, karakter dizisi vb.).

Basit bir prosedür yazmaya çalışalım:
Ekranda "Error" dizesini görüntülememiz gerektiğini varsayalım. kullanıcının hatası nedeniyle kodda bir hata oluşabileceği her defasında (örneğin, yanlış veri girdiğinde)
Bu, ifadeyi yazarak yapılabilir.
writeln('Hata');
Ve şimdi programda birçok yere böyle bir satırın eklenmesi gerektiğini hayal edin. Tabii ki, her yere yazabilirsiniz. Ancak bu çözümün iki dezavantajı vardır.
1) bu dizi hafızada birçok kez saklanacak
2) Hata durumunda çıktıyı değiştirmek istiyorsak bu satırı program boyunca değiştirmek zorunda kalacağız ki bu oldukça elverişsizdir

Bu gibi durumlarda prosedürlere ihtiyaç vardır.
Prosedürü olan bir program şöyle görünebilir:
...
ad alanı std kullanarak;

prosedür printError(); // prosedür açıklaması
başlamak
    writeln('Hata'); // prosedür gövdesi - prosedürün yürüteceği komutlar
son;

// ana program
başlangıç;
...
  yazıcı hatası(); // yürütme prosedürünü başlat. Sadece yürütmek istediğimiz prosedürün adını belirtiyoruz.
...
  yazıcı hatası();
...
son.

Prosedür, procedure kelimesiyle başlar. Prosedür adından sonra, prosedürün yürütülmesinin bağlı olduğu değişkenleri ve türlerini gösteren parantezler yazılır. Örneğin:

var a, b, cevap: tamsayı;
prosedür Sum(a, b: tamsayı);
başla
    cevap := a + b;
bitiş;

Bir prosedürde yürütülen tüm ifadeler girintilidir. 

Prosedürler ana programdan önce yazılır

Bir prosedürü yürütmek için, ana programda onu ismiyle çağırmanız ve parantez yazmayı unutmayın!
Bir programdaki bir prosedürü istediğiniz sayıda çağırabilirsiniz.

Problem

"Hata" ibaresini görüntüleyen bir prosedür yazın. Sıfıra bölüm! Prosedüre doğru adı verin.