Мысал 5. Комбинаторика бөлімінде жиі кездесетін факториалды
есептеудің a = k! = 1*2*3* . . . k алгоритмі қарастырылсын:
a=1
k=1
while k<6:
k=k+1
a=a*k
print(a)
Есептеулер нәтижесінде келесі сандардың тізбегі алынады:
2
6
24
120
720
Мысал 6. Функцияның мәндерін есептеу.
Кез келген функцияның
аргументтің мәндерінің жиыны үшін есептеу арқылы оның кестесін жасауға
болады. Мысал ретінде келесі функция берілсін: 𝑦 = 𝑥
3
; оны аргументтің
келесі мәндері 0 ≤ 𝑥 ≤ 1 мен өзгеру қадамы ℎ = 0,2 үшін есептеу керек. Осы
алгоритмді орындайтын программа қарастырылсын:
x=0
while x<=1:
x=x+0.2
y=x**3
print ("x=", x, "y=", y)
Осы фрагменттің орындалу нәтижесі келесі түрде экранға шығарылды:
x= 0.2 y= 0.008000000000000002
x= 0.4 y= 0.06400000000000002
x= 0.6000000000000001 y= 0.2160000000000001
x= 0.8 y= 0.5120000000000001
x= 1.0 y= 1.0
x= 1.2 y= 1.7279999999999998
[Finished in 806ms]
Есептеулер нәтижесінде санның бөлшек
бөлігіндегі разряд саны өте
үлкен екенін көруге болады. Сонымен бірге программаның орындалу уақыты
көрсетілген; ол 806 миллисекундқа тең.
Ескеретін жағдай, егер басқа функция берілсе, онда осы программаға
оның формуласы мен аргументінің мәндерінің өзгеруі көрсетілсе жеткілікті.
Мысал 7. Қайталау саны белгілі тағы
бір циклдың мысалы ретінде
Фиббоначчи сандарын есептеу қарастырылсын. Мұнда алдымен екі сан
беріледі a=0 және b=1; олардың қосындысы табылады c=a+b.
Осыдан кейін
екінші айнымалы b осы қосындының мәнін қабылдайды, ал бірінші айнымлы
a екінші айнымалының мәнін қабылдайды. Осы амалдардың орындалуы
қайталанып, циклдық процесті құрайды.
Қосынды ретінде анықталған
айнымалы үшін берілген шарт c<=20 орындалғанша осы цикл қайталанады:
a=0
b=1
c=1
while c<=20:
c=a+b
print(c)
a=b
b=c
Есептеулер нәтижесі келесі сандар тізбегі болады:
1
2
3
5
8
13
21
[Finished in 117ms]
Мысал 8. Қосындыны 𝑠 = ∑
𝑥
𝑘
𝑛
𝑘=1
немесе ∑
𝑥
𝑘
= 𝑥 + 𝑥
2
𝑛
𝑘=1
+ 𝑥
3
+ . . . +𝑥
𝑛
. Мұндағы
𝑥 берілген сан. Бұл есептің алгоритмін келесі түрде сипаттауға болады:
1. Айнымалының
𝑥 мәнін енгізу.
2. Айнымалы 𝑝 қосындының кезекті қосылғышы болсын; оның алғашқы мәні 𝑝 = 𝑥
болса, ағымдағы мәні әрбір қадамда келесі формула 𝑝 = 𝑝 ∙ 𝑥 арқылы өзгеріп отырады.
3. Бірінші қадам 𝑘 = 1;
4.
𝑝 = 𝑝 ∙ 𝑥; 𝑠 = 𝑠 + 𝑝;
5. Келесі қадамға өтуге дайындық: 𝑘 = 𝑘 + 1.
6. Шартты тексеру:
𝑘 < 𝑛. Егер осы шарт орындалса, онда 4-ші жолдағы амалдар
орындалады. Керісінше жағдайда итерация аяқталып,
қосындының соңғы мәні
шығарылады.
x=0.2
n=5
print("x=",x,"n=",n)
s=0
p=1
k=1
while k
p=p*x
s=s+p
k=k+1
print("summa=",s)
Программаның орындалу нәтижесі:
=== RESTART: C:/Users/User/AppData/Local/Programs/Python/Python310/summa1.py ===
x= 0.2 n= 5
summa= 0.24960000000000002
Мысал 9.
Сорттаудың сызықтық алгоритмі. Тізімдерді сорттау
әдістерінің кең тараған түрлерінің бірі қарастырылсын.
Белгілі бір
реттелінбеген тізім берілсін:
Орны
1
2
3
4
5
6
7
8
9
10
11
Мәні
3
11
6
4
9
5
7
8
10
2
1
Алдымен осы реттелінбеген тізім элементтерінің мәндерінің өсуі бойынша
орналастырылсын.
Бұл әдіс бойынша, тізімді сорттаудың алгоритмін келесі
түрде сипаттауға болады; тізім элементтерін жадқа
енгізгеннен кейін келесі
амалдар орындалады:
- тізімнің ең кіші элементін (мәнін) және оның номерін (орнын) анықтау;
- анықталған элемент жаңа тізімде бірінші элемент деп саналады;
- ол элемент тізімнен шығарылады;
- оның орнына алғашқы тізімдегі бірінші элемент орналастырылады;
- ағымдағы тізімнің элементтерінің саны бірге қысқарады.
Осы амалдардың барлығы ағымдағы тізім үшін қайталанады; қайталану саны
алғашқы берілген тізімдегі элементтер санына тең болады. Осы амалдардың
барлығы Python тілінде sort() және reverse() әдістерімен оңай орындалады:
Достарыңызбен бөлісу: