Программалау 2 Цикл дегеніміз не?
Цикл – бірдей әрекеттердің бірнеше рет қайталанып орындалуы.
Циклдың екі түрі бар:
- Қайталау саны белгілі цикл (10 рет қайталау)
- Қайталау саны белгісіз цикл
Тапсырма. «Сәлем» сөзін экранға 10 рет шығару керек.
Өзің білетін жолдармен қалай шығарар едің?
?
print("Салем")
print("Салем")
...
print("Салем")
Неге ыңғайсыз?
?
Циклдың блок сызбасы
Басы
соңы
ия
жоқ
Цикл денесі
10 рет қайталау болды ма?
print("Сәлем!")
Циклды қалай ұйымдастыру керек?
санауыш = 0
Әзірше санауыш < 10:
print("Салем")
Санауышты 1–ге арттыру
Санауыш = 10
Әзірше санауыш > 0:
print("Салем")
Санауышты 1-ге кеміту
Процессор үшін қай әдіс тиімді?
?
Амалды орындау нәтижесі автоматты түрде нөлмен салыстырылады!
Шарт алдын-ала берілетін цикл
Тапсырма. N айнымалысының мәні ретінде берілген сандағы цифрлар санын анықтау керек.
санауыш = 0
әзірше n > 0:
n санының соңғы цифрын анықтап, санауышты 1-ге арттыру
N
|
Санауыш
|
1234
|
0
|
123
|
1
|
12
|
2
|
1
|
3
|
0
|
4
|
Соңғы цифрды қалай анықтаймыз?
?
n = n // 10
Санауышты 1-ге қалай арттырамыз?
?
санауыш = санауыш + 1
санауыш += 1
Шарт алдын-ала берілетін цикл
count = 0;
while :
n = n // 10
count += 1
Циклдың денесі
Санауыштың бастапқы мәні
n > 0
Жалғастыру шарты
Циклдың басы
Шарты алдын-ала берілетін цикл – шартты циклға кіретін кезде тексереді!
!
Шарт алдын-ала берілетін цикл
k = 0
while k < 10:
print ("Салем")
k += 1
Қайталау саны белгілі болған кезде:
k = 0
while k < 10:
print ("Салем")
Тоқтаусыз қайталау:
Цикл неше рет орындалады?
a = 4; b = 6
while a < b: a += 1
2 рет
a = 6
a = 4; b = 6
while a < b: a += b
1 рет
a = 10
a = 4; b = 6
while a > b: a += 1
орындалмайды
a = 4
a = 4; b = 6
while a < b: b = a - b
1 рет
b = -2
a = 4; b = 6
while a < b: a -= 1
Тоқтаусыз қайталау
Шарт соңынан берілетін цикл
while True:
if n > 0: break
Шығу шарты
print ("Оң сан енгіз:" )
n = int ( input() )
Цикл денесі
- Циклға кіретін кезде шарт тексерілмейді
- Цикл әрқашан кем дегенде 1 рет орындалады
Тапсырма. n айнымалысының мәні ретінде оң санды енгізуді ұйымдастыру
шексіз цикл
Циклды үзу
Тапсырма 1
A және B (0 < A < B) екі бүтін сандарды енгізіп, A мен B аралығындағы барлық сандардың квадратын экранға шығаратын программа құрыңдар.
Мысалы:
Екі бүтін сан енгіз:
10 12
10*10=100
11*11=121
12*12=144
Тапсырма 2
Натурал сан енгізіңдер және олардың цифрларының қосындысын табыңдар.
Мысалы:
Натурал сан енгіз:
12345
Цифрларының қосындысы 15.
Параметрлі цикл
Тапсырма. «Салем!» сөзін 10 рет шығар.
«Әзірше» циклымен орындауға болады ма?
?
while :
print("салем!")
i = 0;
i < 10
i += 1
for :
print("салем!")
i in range(10)
[0,10) аралығында
Параметрлі цикл:
10 кірмейді!
!
range(10) 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
Параметрлі цикл
Тапсырма. 21 мен 210 аралығындағы мәндерді шығару.
«Әзірше» циклымен қалай орындауға болады?
?
while :
print ( 2**k )
k = 0;
k < 10
k += 1
for :
print ( 2**k )
k in range(1,11)
[1,11) аралығында
Параметрлі цикл:
11 кірмейді!
!
range(1,11) 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
Параметрлі цикл: басқа қадам
100
81
64
49
36
25
16
9
4
1
Нәтижесінде не орындалады?
?
1
9
25
49
81
for :
print ( k**2 )
k in range(1,11,2)
for :
print ( k**2 )
k in range(10,0,-1)
қадам
10,9,8,7,6,5,4,3,2,1
1,3,5,7,9
Цикл нәтижесінде не орындалады?
a = 1
for i in range( 3): a += 1
a = 4
a = 1
for i in range( 3,1): a += 1
a = 1
a = 1
for i in range( 1,3,-1): a += 1
a = 1
a = 1
for i in range( 3,1,-1): a += 1
a = 3
Тапсырма
«A»: 133 санына бөлген кезде қалдығы 125, ал 134 санына бөлген кезде қалдығы 111 болатын барлық 5 орынды сандарды табыңдар.
«B»: Армстронг саны деп санның N-ші дәрежедегі (мұндағы N – сандағы цифрлар саны) цифрларының қосынды санның өзіне тең болатын санды айтамыз. Мысалы, 153 = 13 + 53 + 33. Үш орынды барлық Армстронг санын табыңдар.
Тапсырма
«С»: Натурал сан өзінің квадратының соңғы цифрларына тең болса, онда автоморфты деп аталады. Мысалы, 252 = 625. N натурал санды қабылдап, экранға N-нен аспайтын барлық автоморфты сандарды шығаратын программа құрыңдар.
Мысалы:
N санын енгіз:
1000
1*1=1
5*5=25
6*6=36
25*25=625
76*76=5776
Кіріктірілген циклдар
Тапсырма. 2 мен 1000 аралығындағы барлық жай сандарды шығаратын программа құрыңдар.
2 мен 1000 аралығындағы n үшін
егер n саны жай сан болса онда
n шығару
n саны жай сан болса
[2.. n-1] бөлгіштері жоқ па: циклда тексеру!
«Жай сан» дегеніміз не?
?
for n in range(2, 10001):
if n жай сан болса:
print(n)
Кіріктірілген циклдар
for n in range(2, 10001):
count = 0;
if count == 0:
print(n)
for k in range(2,n):
if n % k == 0:
count += 1
Кіріктірілген цикл
Кіріктірілген циклдар
for i in range(1,45):
for k in range(1,i+1):
print( i, k )
Айнымалылар қалай өзгереді?
?
1 1
2 1
2 2
3 1
3 2
3 3
4 1
4 2
4 3
4 4
Ішкі циклдың айнымалылары жылдам өзгереді!
!
Жай санды іздеу – қалай жақсартуға болады?
count = 0
k = 2
while :
if n % k == 0:
count += 1
k += 1
while k*k <= n:
if n % k == 0: break
k += 1
if k*k > n:
print ( n )
k*k <= n
Тағы да қалай жақсартуға болады?
?
Циклдан шығу
Шарт бойынша
Тапсырмалар
«A»: A және B (A
Мысалы:
Екі сан енгізіңдер:
10 20
11 13 17 19
«B»: Дүкенде 15 кг, 17 кг, 21 кг жәшікпен алма сатылады. Жәшікті ашпастан, 185 кг алманы қалай сатып алуға болады? Мұны неше әдіспен орындауға болады?
Достарыңызбен бөлісу: |