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


k butun soni, bu rekursiyada


Download 111.72 Kb.
bet41/96
Sana29.03.2023
Hajmi111.72 Kb.
#1307438
1   ...   37   38   39   40   41   42   43   44   ...   96
Bog'liq
1-Mavzu 1-Mavzu Reja Klass a’zolariga ruxsatni boshqarish

k butun soni, bu rekursiyada s[pos] belgisining takrorlanish sonini aniqlaydi;
c char tipidagi o'zgaruvchi, rekursiv funksiyada oldingi belgini ifodalaydi. Bu ketma-ket topilgan belgilarni maxsus qayta ishlash uchun kerak.
// ratrni qayta ishlash uchun rekursiv funksiya
static string ConvertStr(string s, int pos, char c, int k, string s2)
{
if (pos < s.Length) // s[pos] hozircha s[pos] oxirgi belgi emas
{
if (pos == 0) // satrning birinchi belgisi
// keyingi belgini qayta ishlashga o'tish
return ConvertStr(s, pos + 1, s[pos], 1, s2);
else // не первый символ строки
{
if (s[pos] == c) // agar keyingi va oldingi belgilar bir xil bo'lsa, biz harakat davom ettiramiz
return ConvertStr(s, pos + 1, s[pos], k + 1, s2);
else // agar belgilar har xil bo'lsa, unda s2 satrida vaqtinchalik natijani belgilash
{
// agar k = = 1 bo'lsa, s2 ga c belgisi shunchaki qo`shish,
// aks holda, c belgisidan oldin k raqamini qo'yish
if (k == 1)
s2 = s2 + c.ToString();
else
s2 = s2 + k.ToString() + c.ToString(); // s2 = s2 + "AAA' = s2 + "3A"
// rekursiyaning keyingi qadamiga o'tish, satrni qayta ishlashni davom ettirish
return ConvertStr(s, pos + 1, s[pos], 1, s2);
}
}
}
else // butun satr o`tish
{
// satrni qayta ishlashni tugatish
if (k == 1)

Download 111.72 Kb.

Do'stlaringiz bilan baham:
1   ...   37   38   39   40   41   42   43   44   ...   96




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