İşlev, bir sonuç (sayı, karakter dizisi vb.) döndüren bir alt programdır
Bir çevrimiçi mağazadan bir ürün sipariş ettiğinizi düşünün. Programlama açısından, belirli bir alt programı çağırdınız ve bir prosedürden farklı olarak, bu alt programın bir sonuç döndürmesi gerekir - sipariş ettiğiniz ürünü teslim edin. Bu alt programlara işlevler denir.
Bir işlev, prosedürle hemen hemen aynı şekilde biçimlendirilir:
işlev (noktalı virgülle ayrılmış olarak parametrelerin listesi: ): <dönüş değeri türü>;
başlamak
<işlev gövdesi>
bitiş;
Bir işlev ile prosedür arasındaki fark, bir işlevin bir değer döndürmesi gerektiğidir. Bunu yapmak için, işlev adını bir değişken olarak veya özel değişken olarak kullanmanız gerekir Sonuç:
function Sum(a, b:integer): tamsayı;
başlamak
Toplam := a + b;
bitiş;
veya
function Sum(a, b:integer): tamsayı;
başlamak
Sonuç := a + b;
bitiş;
İki tamsayının aritmetik ortalamasını döndüren bir işlev şöyle görünür:
ortalama fonksiyon(a, b: tamsayı): gerçek;
başlamak
ortalama := (a + b) / 2;
son;
Ana programda bu işlevin nasıl çağrılacağını anlamak kalır:
Bir işlevi, bir yordamı çağırdığınız şekilde çağırmamalısınız:
ortalama(10, 5);
İşlev tarafından döndürülen değer kaybolacaktır. Sanki çevrimiçi mağazadaki mallar kimseye verilmemiş, atılmış gibidir. Müşterinin beğenmesi pek olası değil.
Sonucu bir değişkene kaydetmek (veya
ekrana yazdırmak) daha doğrudur:
a := ortalama(10, 5);
veya
writeln(ortalama(10, 5));