Fonksiyonlar yerine alt rutinler ile başlayın . Onlara bir programın sadece bir talimat listesi olduğunu, bilgisayara bir şeylerin nasıl yapılacağını söyleyen bir tarif olduğunu söyleyin. Ve bir talimat birbiri ardına yürütülüyor (paralel olarak bazı adımlar atma olasılığı var, ancak daha sonra bunun hakkında daha fazla bilgi).
Bazı görevler oldukça yaygın ve tekrarlayıcıdır, bu yüzden onları tekrar tekrar yazmak zorunda kalmamız korkunç olurdu, bu yüzden onları sadece bir kez yazıyoruz ve bundan "daha küçük bir program" yapıyoruz - bir alt program , programın diğer bölümleri. Bir kereden fazla yürütebilmek için programımızda anlamlı bir isim veriyoruz. Ve daha sonra, bu "küçük programı" daha büyük bir programın parçası olarak yürütmek istediğimizde, bu adla çağırarak kullanabiliriz .
Arayan bir alt program gibi bir iblis çağırma tarafından, bu görevi gerçekleştirmek bilen isim o şeytanın. Bu yüzden programımızda bu özel görevi yapmak istediğimizde, "Argoth adlı şeytanı ara" yazıyoruz ve şeytan, bizim için talimat verdiğimiz gibi ortaya çıkıyor ve bizim için yapıyor ve sonra gidiyor ve devam edebiliyoruz. iş.
Bazen iblis, hangi görevleri yerine getireceğine veya ondan gerçekten ne istediğimize karar veremediği bazı ek bilgiler gerektirir. Örneğin, iblisin bir kale inşa etmesi gerekiyorsa, onu nerede inşa etmesi gerektiğini ya da ne kadar büyük olduğunu bilmesi gerekebilir . Bunlar iblise aktarılan argümanlardır ... Yani, şimdi gerçekleşen altyordam parametreli .
Parametreler , görevi yerine getirmek için eksik olan ancak gerekli olan bilgi parçalarıdır. Altyordamın neler yapabileceğini biraz değiştirirler. Onlar, tarif etmeden önce doldurmamız gereken boş yuvalar gibidirler.
Diğer yandan argümanlar , bu parametreler için sağladığımız gerçek bilgilerdir (değerler).
Paralel yürütmeye gelince, bunu şu şekilde düşünebiliriz: her zaman programı yürüten biri (veya bir şey ) vardır (talimatlar listesi). Ya başka bir insan ("bilgisayarın" bir zamanlar hesaplamayı yapan kişi için bir isim olduğunu biliyor muydunuz ?) Veya bir makine. Bir program sadece talimatların bir listesidir, kendi başına çalışmaz. Hesaplama sürecini yapacak birisi ya da bir şey olmalı(bu işlemleri listeden gerçekleştirin). Ve bazen bu eylemler paralel olarak yapılabilir - listenin kopyalarını birkaç kişiye dağıtabilir ve birbirlerini kesintiye uğratmadıkları sürece her birinin listeden farklı bir görev kümesi yapmasına izin verebiliriz veya ' başkasının çalışmasının sonuçlarını beklemek zorunda değilsiniz. Bu sizin için çoklu kullanım ;)
Fonksiyonlar ve altyordamlar arasındaki farka gelince ( prosedürler de denir ), olağan fark, prosedürler sadece eğlence için yürütülürken , yürütme sonucu döndürdüğü belirli bir değeri hesaplamak için bir fonksiyonun çağrılmasıdır ;) AKA "yan etkileri" için - sadece listeden yapılan işlemler uğruna.
Ancak, bir yordamı veya işlevi çağırmak ilk başta bazı sorunlara neden oluyorsa, bir zamanlar popüler olan başka bir terimi kullanabilirsiniz: atlama . Biri bir alt rutine atlayabilir , yani şu anda yaptığınız her şeyi yürütmeyi bırakabilirsiniz ve görevlerini yerine getirmek için listedeki başka bir yere (veya başka bir listeye) (alt programa) " atlayabilirsiniz ". Sonra, bitirdiğinizde, "geri atlar" - yani, kesintiye uğradığınız yere geri dönersiniz , böylece önceki görevinize devam edebilirsiniz. Arama ve atlama arasındaki fark, şimdi iblis olmanızdır .
Gelince yöntemlerle birileri tarafından burada belirtilen veya bazı diller "işlevler yok, sadece yöntemleri" gerçeği - yöntemler nedeniyle, oldukça doğru değil olan fonksiyonlar! - bunlardan özel bir tür : bir nesnenin içinde kapsüllenmiş bazı bilgileri almak veya bunlar üzerinde işlem yapmak için kullanılan işlevlerdir. Bunlar "bu veriler üzerinde çalışma yöntemi" dir. Ad, verinin nesnelerle çevrelendiği ve doğrudan "yöntem" adı verilen özel işlevlerle çalıştırılamadığı, nesne yönelimli paradigmadan geldi.
Bir yöntem başka bir şekilde özeldir: hangi belirli nesneyi çalıştırması / çağrılması gerektiğini ("bu" nesne) bilmelidir . Bu nedenle yöntemler genellikle çağrıldığı nesne ("bu" işaretçisi) hakkında bilgi depolayan ek bir gizli parametre ile süslenir. Bu, işlevin biraz çağrılma şeklini zorlaştırır, ancak bir programcının ne yaptığını bildiği sürece çok fazla rahatsız etmemesi gereken bir "uygulama detayı" dır.