1-Mavzu 1-Mavzu Reja: Klass a’zolariga ruxsatni boshqarish


Download 116.94 Kb.
bet49/100
Sana02.01.2022
Hajmi116.94 Kb.
#200801
1   ...   45   46   47   48   49   50   51   52   ...   100
Bog'liq
dasturiy injinering

s1[s1.Length - pos - 1]

Keyin bu belgi ToString() metodi bilan o`giriladi. Belgili qatorga (oldingi) rekursiv chaqiruv yordamida satrdagi ketma-ket bo`yicha keyingi belgi qo'shiladi

s1[s1.Length - pos - 1].ToString() + RString(s1, pos + 1)

Funksiya biror qiymat qaytarishi kerakligi sababli satrni qayta ishlash formulasidan oldin return operatori kiritilishi kerak

return s1[s1.Length - pos - 1].ToString() + RString(s1, pos + 1);

RString() funksiyasidan boshqa metodda foydalanish quyidagicha bo'lishi mumkin:

string s;

s = RString("abcd", 0); // s = "dcba"

s = RString("A", 0); // s = "A"

s = RString("", 0); // s = ""

s = RString("www.bestprog.net", 0); // s = "ten.gorptseb.www"

Sartning simmetrikligini aniqlashning rekursiv funksiyasi misoli

i-elementdan j-m elementiga qadar ssatrining simmetrik qismi mavjudligini aniqlaydigan recursiv funksiyani ishlab chiqish.

// Recursiv funksiya satr simmetrik yoki simmetrik emasligini aniqlaydi

// pos parametr i bilan (j-i) / 2 joyini almashtiradi

static bool IsSymmetric(string s, int i, int j, int pos)

{

  if ( (i + pos) <= ((j - i) / 2))

  {

    if (s[i + pos] != s[j - pos]) // satr belgilarini solishtirish

      return false;

    else

      return IsSymmetric(s, i, j, pos + 1); // keyingi ikkita belgini ko'rib chiqish

  }

  else

    return true; // butun satr o'tdi



}

Yuqoridagi funksiya  i+pos va j-pos o`rnida turgan belgilar if operator yordamida solishtiriladi

if (s[i + pos] != s[j - pos])

...

pos parametri i qiymatiga qo'shilgan joyi almashtiriladi: i+posi va j pozitsiyalari orasida ba'zi diapazonlar mavjud. pos parametrini i dan j diapazonga o'tkazish shart emas. Faqat yarim oraliqni ko'rish kifoya, shuning uchun funksiya tekshirishni o'z ichiga oladi:

if ( (i + pos) <= ((j - i) / 2))

{

  ...



}

qayerda

((j - i) / 2)

bo`lsa, shart holatiga ko'ra (j-i) oraliq mavjud.

Funksiyani boshqa dasturiy kodda ishlatish

bool b;

b = IsSymmetric("abcd", 1, 3, 0); // b = false

b = IsSymmetric("abcdefed", 3, 7, 0); // b = true

b = IsSymmetric("aaaa", 2, 2, 0); // b = true

b = IsSymmetric("aabbccbbaa", 0, 9, 0); // b = true

b = IsSymmetric("aabbcbbaa", 0, 8, 0); // b = true

b = IsSymmetric("aabbccbaa", 0, 8, 0); // b = false

Download 116.94 Kb.

Do'stlaringiz bilan baham:
1   ...   45   46   47   48   49   50   51   52   ...   100




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling