Module: alt programlar. özyineleme


Problem

1/12

özyineleme. Bu nedir?

Theory Click to read/hide

Bir prosedür veya işlev, içindeki başka bir prosedüre çağrı içerebilir. Dahil olmak üzere, alt program kendisini arayabilir. Bu durumda, bilgisayar umursamıyor. O, her zaman olduğu gibi, yukarıdan aşağıya tanıştığı komutları tutarlı bir şekilde yürütür.

Matematiği hatırlarsanız, o zaman orada matematiksel tümevarım ilkesini karşılayabilirsiniz. Şöyledir: bazı ifadeler her doğal n için doğrudur, eğer
    1)  n = 1 için geçerlidir;
    2) herhangi bir keyfi doğal için ifadenin geçerliliğinden n = k bunun n = k+1 için doğru olduğu sonucu çıkar.

Programlamada bu tekniğe özyineleme denir.

Tekrarlama, verilen basit temel durumlara dayalı olarak, bir nesne kümesini kümenin kendisi açısından tanımlamanın bir yoludur.

Yinelemeli kendini doğrudan veya diğer prosedürler ve işlevler aracılığıyla çağıran bir prosedürdür (işlev).
Özyinelemeli prosedür örneği:

void Rec(int a)
{
  eğer (a>0) { Rec(a-1);
  Console.WriteLine(a);
}

Şematik olarak, yineleme işi bir akış şeması olarak gösterilebilir.

 
Rec() prosedür parametre ile yürütülür 3 Ardından, 3 parametreli prosedür içinde, 2 parametreli prosedür çağrılır ve 0 parametreli prosedür çağrılana kadar devam eder. Daha sonra kontrol 1 parametresi ile prosedüre geri aktarılır, o da 1 sayısını yazdırarak işini bitirir ve bu böyle devam eder. parametre 3 ile prosedürden önce. 

Çağrılan tüm prosedürler, işlerini tamamlayana kadar hafızada saklanır. Eşzamanlı prosedürlerin sayısı yineleme derinliği olarak adlandırılır.

Problem

Ayrıştırılmış prosedürü kullanarak gerekli satırları ana programa ekleyin.
Programın neden böyle bir yanıt verdiğini anlayın.