Sign in
or
Register
Courses
Textbook
Compiler
Contests
Topics
Courses
Programlamanın temelleri. Karmaşık atölye
alt programlar. Özyinelemeli prosedürler ve işlevler
Module:
alt programlar. Özyinelemeli prosedürler ve işlevler
Problem
4
/5
1 numaralı satırlar üzerinde yineleme
Theory
Click to read/hide
Görev
"Tumba-Yumba" kabilesinin dilinin alfabesinde; dört harf: "K", "L", "M" ve "N". Bu alfabenin harflerinden oluşturulabilen
n
harflerinden oluşan tüm kelimeleri göstermeniz gerekmektedir.
Sorun, daha küçük bir soruna indirgenebilen normal bir kaba kuvvet sorunudur.
Sözcüğün yerine harfleri sırayla koyacağız.
Bir kelimenin ilk konumu alfabenin 4 harfinden (K. L, M, N) biri olabilir.
Önce
K
harfini koyalım. Ardından, ilk harf
K
olan tüm değişkenleri elde etmek için, kalan
n - 1
konumlarında tüm olası harf kombinasyonlarını numaralandırmanız gerekir. (resme bakın).
Böylece problem
n - 1
uzunluğundaki dört problemi çözmeye indirgenmiştir.
n karakteri tekrarlayarak yinele
w[0]='K'; // son L-1 karakterlerini tekrarla w[0]='L'; // son L-1 karakterlerini tekrarla w[0]='M'; // son L-1 karakterlerini tekrarla w[0]='N'; // son L-1 karakterlerini tekrarla
w
- çalışan kelimeyi saklayan bir karakter dizisi.
Böylece
özyineleme elde ettik.
Problemin çözümünü özyinelemeli bir prosedür şeklinde düzenleyebiliriz.
Özyinelemenin ne zaman sona ereceğini belirlemek için kalır? Tüm karakterler ayarlandığında, yani ayarlanan karakter sayısı
n
olur. Bu durumda, ortaya çıkan kelimeyi ekranda görüntülemeniz ve prosedürden çıkmanız gerekir.
C++ programı böyle görünecek.
#include<iostream> ad alanı std kullanarak; geçersiz TumbaWords( dize A,
dize &w
, int N ) //
w - değiştirilebilir parametre
(dize sonucu) // TumbaWords prosedürü alfabeyi bir karakter dizisi olarak iletir, // sözcük sözcüğü ve önceden ayarlanmış karakter sayısı (önceki – 0). { int ben; eğer (N == w.size()) { // tüm karakterler zaten kelimeye ayarlanmışsa, // o zaman bir dizi çıktısı almak ve prosedürü sonlandırmak gerekir cout
NOT
w
değişken bir parametredir (sonuç dizesi)!
Problem
Kabile dilinin alfabesinde «tumba-yumba» dört harf: "K", "L", "M" ve "N". Bu alfabenin harflerinden oluşturulabilen
n
harflerinden oluşan tüm kelimeleri göstermeniz gerekmektedir.
(c) K.Yu. Polyakov
1000
ms
256 Mb
Rules for program design and list of errors in automatic problem checking
Teacher commentary