O‘zbekiston respublikasiaxborot texnologiyalari va


Download 245.46 Kb.
Sana23.01.2023
Hajmi245.46 Kb.
#1111597
Bog'liq
Mirqosimov Mirsaid (1)


O‘ZBEKISTON RESPUBLIKASIAXBOROT TEXNOLOGIYALARI VA
KOMMUNIKATSIYALARINI RIVOJLANTIRISH VAZIRLIGI

MUHAMMAD AL-XORAZMIY NOMIDAGI


TOSHKENT AXBOROT TEXNOLOGIYALARI UNIVERSITETI SAMARQAND
FILIALI

"Axborot texnologiyalari" kafedrasi Mustaqil ta’lim ish hisoboti


Fan-“ Ma’lumotlar tuzilmasi va algoritmlar ”
DI21-10 -guruh talabasi
Mirqosimov Mirsaid
O’qituvchi : Fayzullayev M.A
3-Amaliy topshiriq

1. Haqiqiy sonlar massivi berilgan barcha mumkin bo'lgan murakkab raqamlarni chop etish uchun rekursiyadan foydalanadigan Python dasturiga misol:

def print_complex_numbers(real_numbers, imaginary_numbers, index=0):
if index == len(real_numbers):
return
for i in range(len(imaginary_numbers)):
print(f"{real_numbers[index]} + {imaginary_numbers[i]}i")
print_complex_numbers(real_numbers, imaginary_numbers, index + 1)

real_numbers = [1, 2, 3]


imaginary_numbers = [4, 5, 6]
print_complex_numbers(real_numbers, imaginary_numbers)
# Output:
# 1 + 4i
# 1 + 5i
# 1 + 6i
# 2 + 4i
# 2 + 5i
# 2 + 6i
# 3 + 4i
# 3 + 5i
# 3 + 6i
Bu dasturda print_complex_numbersfunktsiya ikkita haqiqiy sonlar massivini va ixtiyoriy indeksni kiritish sifatida qabul qiladi, u sukut bo'yicha 0 ga teng. Funksiya avval joriy indeks birinchi massiv uzunligiga teng yoki yo'qligini tekshiradi, bu holda u qaytadi. Agar joriy indeks massivning oxiri bo'lmasa, funktsiya for tsiklidan foydalanadi va ikkinchi massivni takrorlaydi va birinchi massiv va ikkinchi massivning joriy indeksining har bir mumkin bo'lgan kombinatsiyasini chop etadi. Shundan so'ng, funktsiya o'zini oshirilgan indeks va bir xil ikkita massiv bilan rekursiv chaqiradi.
2. Satrdagi unli harflarni sanash dasturini tuzing? (Dastur iterative va rekursiv usulda bajarilib qadamlar soni bo’yicha tahlil qiling.)

3. Satrdagi birinchi bosh harfni aniqlash uchun rekursiyadan foydalanadigan Python dasturiga misol:

def first_capital_letter(string, index=0):


if index == len(string):
return None
if string[index].isupper():
return string[index]
return first_capital_letter(string, index+1)

string = "Hello World"


print(first_capital_letter(string)) # Output: "H"

Bu dasturda first_capital_letterfunktsiya kiritish sifatida satr va ixtiyoriy indeksni oladi, u sukut bo'yicha 0 ga teng. Funksiya avval joriy indeks satr uzunligiga teng yoki yo'qligini tekshiradi, bu holda u ni qaytaradi None. Agar joriy indeks satrning oxiri bo'lmasa, funktsiya joriy indeksdagi belgining katta harf yoki yo'qligini isupper()usul yordamida tekshiradi. Agar shunday bo'lsa, funktsiya belgini qaytaradi. Agar shunday bo'lmasa, funktsiya o'zini oshirilgan indeks bilan rekursiv chaqiradi.

Ushbu dastur kiritilgan satrning birinchi bosh harfini topguncha rekursiv ishlaydi.

4. // Iterativ usul:

function firstNumberInLine(arr) {


for (let i = 0; i < arr.length; i++) {
if (arr[i] !== undefined) {
return arr[i];
}
}
}

// Rekursiv usul:

function firstNumberInLine(arr, i = 0) {
if (arr[i] !== undefined) {
return arr[i];
} else {
return firstNumberInLine(arr, i + 1);
}
}
Rekursiv usul

1. Birinchi qadam: Raqamni aniqlash dasturini ishga tushirish.

2. Ikkinchi qadam: Uning qadamina taklif qilinadigan so'rovi aniqlamoq.

3. Uchinchi qadam: Raqamni aniqlamoq.

4. To'rtta qadam: Bir yangi raqamlardan yuqori raqamlardan iborat raqamni aniqlamoq.

5. Beshinchi qadam: Raqamni aniqlash tartibi bilan bir yangi raqamlardan tashqarida bajarish.

6. Oltinchi qadam: Raqamni aniqlashni boshlash uchun xorijiy fonksiyani chaqirish.

7. Yetti qadam: Saqlanadigan raqamni bazadan ko'rib chiqish.

8. Sakkizinchi qadam: Raqamni aniqlashni yakunlab qo'yish.

5. 5.def solve(n):


global ans
if n>0:
q=n%2
n=n//2
ans.append(q)
solve(n)
ans=[]
n=int(input())
solve(n)
for i in ans[::-1]:
print(i,end='')

6. def reverse_list_iterative(lst):


start = 0
end = len(lst) - 1
while start < end:
lst[start], lst[end] = lst[end], lst[start]
start += 1
end -= 1
return lst

lst = [1, 2, 3, 4, 5]


print(reverse_list_iterative(lst)) # Output: [5, 4, 3, 2, 1]

7. #include


int main ()
{
int k[100]; int i,n;
cout<<" sonini kiriting="; cin>>n;
for ( i=1; i<=n; i++) cin>>k[i];
for (i=1; i<=n; i+=2)
{ cout<<"k["<system("pause");
return 0;
}
Download 245.46 Kb.

Do'stlaringiz bilan baham:




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