Программное обеспечение (ПО)



Дата31.12.2021
өлшемі121,88 Kb.
#21697
түріПрограмма
Байланысты:
лекция 5-6

Программалау 2

Дәріс 5-6. Циклдық алгоритмдер

Цикл дегеніміз не?


Цикл – бірдей әрекеттердің бірнеше рет қайталанып орындалуы.

Циклдың екі түрі бар:
    • Қайталау саны белгілі цикл (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 кг алманы қалай сатып алуға болады? Мұны неше әдіспен орындауға болады?

Достарыңызбен бөлісу:




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет