AXV

Takrorlanuvchi algoritm: for sikli

Sikl arxitekturasi, range() generatori va sonlar yig‘indisi

9-sinfAdvanced Back-end va DevOps3-hafta · 7-dars

Bugun nimalarni o‘rganamiz?

Sikl nima?

Bir xil kodni qayta yozishdan qutulish va sikl anatomiyasi

range() funksiyasi

start, stop, step parametrlarining ishlash mexanizmi

Yig‘indi hisoblash

[1, N] intervaldagi sonlar yig‘indisini topish algoritmi

Nega sikl (loop) kerak?

10 marta chiqarish

10 marta print() yozish o‘rniga 2 qatorli for sikli

Baholarni yig‘ish

100 ta o‘quvchining bahosini bitta akkumulyatorda jamlash

Ko‘paytirish jadvali

5×1 dan 5×10 gacha qo‘lda yozmasdan avtomatlashtirish

01

Siklning 3 qismi

Boshlanish, takrorlanish sharti va hisoblagich

Siklning asosiy tuzilishi

1. Boshlanish start Qayerdan boshlaydi? 2. Takrorlanish stop / shart Necha marta yoki qachongacha? 3. O‘zgarish step / qadam Hisoblagich ortishi
02

range() generatori

start, stop va step parametrlari

range(start, stop, step) xaritasi

range(5) → 0 dan boshlab 5 ta son: 0, 1, 2, 3, 4 (indeks 0 dan boshlanadi) range(1, 6) → 1 dan boshlab 6 gacha: 1, 2, 3, 4, 5 (6 hisobga kirmaydi!) range(0, 11, 2) → 2 qadam bilan juft sonlar: 0, 2, 4, 6, 8, 10

for sikli yozilishi

Rasmiy qo'llanmadagi 1.34-rasm sintaksisi

# 1. 0 dan 4 gacha chiqarish
for i in range(5):
    print(i, end=" ")  # 0 1 2 3 4

# 2. 1 dan 5 gacha chiqarish
for i in range(1, 6):
    print(i, end=" ")  # 1 2 3 4 5

# 3. 2 qadam bilan yurish
for i in range(0, 11, 2):
    print(i, end=" ")  # 0 2 4 6 8 10
03

Sonlar yig‘indisi

[1, N] intervaldagi sonlar yig‘indisini hisoblash

Akkumulyator sxemasi: s += i

s = 0 Boshlang'ich yig‘indi (akkumulyator) for i in 1..N s += i print(s) Umumiy yig‘indi

[1, N] yig‘indisi kodi

Rasmiy qo'llanmadagi 1.40-rasm dasturi

n = int(input("N sonini kiriting: "))
s = 0

# n soni ham hisobga olinishi uchun n + 1 gacha
for i in range(1, n + 1):
    s += i

print(f"1 dan {n} gacha sonlar yig'indisi: {s}")
# Agar n = 10 bo'lsa, natija: 55

Ko‘paytirish jadvali dasturi

son = 7
print(f"--- {son} ning karra jadvali ---")

for i in range(1, 11):
    natija = son * i
    print(f"{son} x {i} = {natija}")
for i in range(1, 11): 10 ta qatordan iborat to'liq jadvalni bir zumda chizadi!

for siklida uchraydigan xatolar

Xato: print() ni sikl ichiga qo‘yish

# Xato: har safar chop etadi
for i in range(1, 6):
    s += i
    print(s) # 1, 3, 6, 10, 15!

# To'g'ri:
for i in range(1, 6):
    s += i
print(s)     # faqat 15

Xato: Qadamni 0 qilish

# Xato
range(1, 10, 0)
# ValueError: arg 3 must not be zero

# Qadam hech qachon 0 bo'lmaydi!

Amaliy topshiriq: for sikli

Vaqt: 15 daqiqa · Darajalar bo‘yicha

1. Oson

1 dan 15 gacha bo‘lgan barcha sonlarni for orqali bitta qatorda chiqaring.

2. O'rta

0 dan 30 gacha bo‘lgan barcha juft sonlarni range(0, 31, 2) bilan chiqaring.

3. Qiyin

1 dan 50 gacha bo‘lgan barcha sonlar yig‘indisini hisoblang va konsolga chiqaring.

Tezkor sinov

Quyidagi kod konsolga nima chiqaradi?

for i in range(1, 4):
    print(i * 2, end=" ")
Javob: 2 4 6 (chunki i = 1, 2, 3 bo'ladi va har biri 2 ga ko'payadi)

Xulosa va asosiy fikrlar

for sikli

Takrorlanish soni oldindan ma'lum bo'lganda eng yaxshi tanlov

range() generatori

range(start, stop, step) — stop qiymati kirmaydi!

Yig‘indi hisoblash

s = 0 akkumulyatori va s += i orqali natijalarni to'plash

AXV

Rahmat!

Keyingi dars: while sikli va break / continue operatorlari

9-sinfAdvanced Back-end va DevOps