5.2 Алгоритмді әзірлеу

Python-да тармақталған алгоритмдерді пайдаланып, есептердің қарапайым алгоритмдерін қалай құрастыруға болады?

Жаңа білім

   Ойлан

  • Алгоритмнің қандай қасиеттерімен таныссың?
  • Қандай дайын алгоритмдерді білесің? Тармақталған алгоритмдерге арналған өзіңе таныс тиімді алгоритмдерді есіңе түсір.

Егер сен берілген есепті шығару үшін қандай да бір программалау тілінде программа жазғың келсе, онда алдымен есепті шығарудың алгоритмін құруың керек. Алгоритм – математикадағы ең бір іргелі ұғымдардың бірі. Алгоритм – берілген есепті шығару барысында біртіндеп қандай әрекеттердің орындалу керектігін, олардың ретін дәл көрсететін командалар. Алгоритм белгілі бір реттілікпен бірінен соң бірі орындалатын бірнеше қадамнан тұрады. Алгоритмнің әрбір қадамы бір немесе бірнеше қарапайым операцияларды қамтиды. Алгоритмнің төмендегідей қасиеттері бар (1-схема):

Алгоритмнің дискреттілігі. Бұл қасиет алгоритм түрінде жазылған есеп шешімі жеке қарапайым командаларға бөлініп орындалу ретіне қарай орналасқанын көрсетеді. Кез келген есепті бөліктерге жіктеп орындауға болады.

Алгоритмнің анықтылығы. Бұл қасиет алгоритмнің әр командасы орындаушы үшін түсінікті болуын және мәнсіз орындалмауы керектігін көрсетеді.

Алгоритмнің нәтижелігі. Бұл қасиет алгоритмнің міндетті түрде белгілі бір қадамдардан кейін аяқталып, нәтижеге жететінін көрсетеді.

Алгоритмнің жалпылығы. Бұл қасиет есепті шешуге арналған алгоритмнің осы типтес есептердің барлық мүмкін мәндері үшін орындалатынын көрсетеді.

«Алгоритм» ұғымы математикада ертеден бері қолданылғанымен, математикалық теория объектісі ретінде кейбір проблеманы зерттеуге байланысты тек ХХ ғасырдың 30-шы жылдарында қарала бастады.

Алгоритмді сипаттаудың бірнеше түрі бар. Олар:

1. Алгоритмді сөз бен формулалар көмегімен сипаттау.

2. Алгоритмнің графикалық сипатталуы, яғни алгоритмді арнайы графикалық схемалар - блок-схема көмегімен сипаттау.

3. Алгоритмді псевдокод арқылы сипаттау. "Псевдокод" дегеніміз – алгоритм қадамының нақты программалау тілі операторларын қолданбай жай тілмен сипатталуы. 

Алгортимдерді есеп шығаруда қалай қолдануға болады?

Есеп шығару кезінде үнемі кездесіп, қайталанып отыратын алгоритмдер бар. Мысалы, ең үлкені немесе ең кішісін анықтау, арифметикалық ортасын табу, санның цифрларын бөліп алу және т.б. Мұндай қарапайым алгоритмдерді программалаушылар зерттеген. Бұл алгоритмдердің оңтайлы жұмыс істеу түсініктемелері мен программалық кодтарын интернеттен кездестіруге болады. Есеп шығару барысында осы типтегі алгоритмдер кездескен сайын алгоритм құрастырып жазып отырудың қажеттілігі аз болады. Жұмысты жеңілдету үшін дайын алгоритмдерді пайдаланған тиімді. Программалау барысында ең көп кездесетін алгоритмдер құрылымын түсініп, есіңде сақтап, өз алгоритміңнің қорын жасап алуың керек. Күрделі есептерді шығаруда оларды шағын тапсырмаларға ажыратып алған дұрыс. Шағын тапсырмаларды орындау барысында осы алгоритмдерді қолдануыңа болады.

«Жалақы» тақырыбындағы есепті шығару жолын талдайық. Осы есепті талдау барысында дайын алгоритмдерді дұрыс пайдаланудың қаншалықты маңызды екенін түсінесің.

Зауытта жұмыс істейтін 3 жұмысшының айлық жалақысының мөлшері берілген. Зауыт жұмысшыларының орташа жалақысын есепте. Осы жұмысшылардың алатын жалақысының ең көп мөлшері ең аз жалақыдан неше пайызға артық?

Мысалы

Нәтиже

200000

100000

150000

Ortasha jalaqy = 150000

200%

Есеп шығаруда қолданылатын негізгі алгоритмдер:

1. Арифметикалық ортаны табу алгоритмі. Программа коды (1-сурет).

2. 3 санның үлкенін табу алгоритмі. Программа коды (2-сурет).

3. 3 санның кішісін табу алгортимі. Программа коды (3-сурет).

Жоғарыда біз алгоритмді сипаттау түрлерімен таныстық. Солардың арасында алгоритмдерді сипаттаудың блок-схема түрі басқаларына қарағанда есептің құрылымын түсінуге ыңғайлы келеді. Төменде ең кішісін табу (2-схема), ең үлкенін табу (3-схема) мен арифметикалық ортасын табудың блок-схемасы (4-схема) берілген.

Міне, 2, 3, 4-схемалардағы осындай қарапайым алгоритмдерді олардың 1-ші, 2-ші және 3-суреттегі программа кодтарымен салыстыра отырып талда. 4-суреттегі «Жалақы» есебінің программа  кодының блок-схема алгоритмін әзірле. Алгоритмдердің құрылымын түсіну маңызды. Есептерге осындай дайын алгоритмдердің бірнешеуін пайдаланғанда ғана толық нәтижеге қол жеткіземіз.

«Жалақы» есебінің программасын құру барысында жоғарыда қарастырылған үш алгоритмді бірге қолдану арқылы ғана толық нәтиже алуымызға болады. Есептің программалық коды 4-суретте берілген. Назар аударып қарасаң, бір программа кодына жоғарыда қарастырылған үш алгоритм біртұтас алгоритм ретінде қолданылған.

4-сызба. Есептің программа коды

   Практикалық жұмыс

   Талдау

   2, 3, 4-схемаларды олардың 1, 2, 3-суреттердегі программа кодтарымен салыстыра отырып талда. 4-суреттегі «Жалақы» есебінің программа кодының блок-схемасын алгоритмін әзірле.

   Бағалау

   Есептің программасын құруда алдын ала белгілі дайын алгоритмдерді қолданудың маңызы қандай?

   Ойлануға берілген сұрақтар

1. Алгоритм әзірлеуде алгоритмдердің қасиеттерін білу қаншалықты маңызды?

2. Алгоритмді сипаттаудың қандай түрлері бар? Оларды программалау барысында қолданудың маңызы қандай?

3. Есепті программалау барысында оның алгоритмі қалай әзірленеді?

Тапсырма

1-тапсырма.

Егер берілген үш таңбалы N саны жұп болса, санның соңғы цифры 5-тен үлкен болса, басынан және соңынан бастап оқығанда бірдей оқылса (палиндром), онда экранға 1-ді, әйтпесе 0-ді шығар. Тапсырманың блок-сызбасын құр.

Мысалы

Нәтиже

1

636

1

2

434

0

Тапсырма

2-тапсырма

Белгілі бір алгоритм блоксхема түрінде орындалған (5-сурет). Осы блок-сызбада а) x = 0, y = 1; ә) x = 2, y = 4; б) x = 6, y = 0 мәндері үшін қандай нәтиже алынатынын есепте.

1) Блок-схеманың программа кодын жаз.

2) Алынған нәтиже мен программа кодына қарап, бұл алгоритмнің қызметін анықта.

5-сурет. Блок-схема

Тапсырма

3-тапсырма

Бір-біріне тең емес X пен Y нақты сандары берілген. Осы екі санның кішісін олардың қосындысының жартысына, ал үлкенін екі санның көбейтіндісінің үш еселенгеніне ауыстыратын алгоритмнің блоксхемасы мен программа кодын құрастыр. Егер сандар бір-біріне тең болса, онда экранға сандардың қосындысын шығар.

Мысалы

Нәтиже

1

20    10

600    15

2

20    10

40

Үй тапсырмасы

Алгоритмнің қасиеттеріне өмірден мысал келтір. Алгоритмнің қасиеттері бойынша өзіңді тәрбиелеу қаншалықты маңызды? Шағын эссе жаз.

Практикалық тапсырмалар

  • Алгоритмнің дискреттілігі.
  • Алгоритмнің анықтылығы.
  • Алгоритмнің нәтижелігі.
  • Алгоритмнің жалпылығы.
  • Бұл қасиет алгоритм түрінде жазылған есеп шешімі командаларға бөлініп орындалу ретіне қарай орналасқанын көрсетеді.
  • Бұл қасиет алгоритмнің әр командасы орындаушы үшін түсінікті болуын және мәнсіз орындалмауы керектігін көрсетеді.
  • Бұл қасиет алгоритмнің міндетті түрде белгілі бір қадамдардан кейін аяқталып, нәтижеге жететінін көрсетеді.
  • Бұл қасиет есепті шешуге арналған алгоритмнің осы типтес есептердің барлық мүмкін мәндері үшін орындалатынын көрсетеді.

Алгоритм әзірлеуде алгоритмдердің қасиеттерін білу қаншалықты маңызды?

 – берілген есепті шығару  біртіндеп қандай  орындалу , олардың ретін дәл командалар.

Өтінемін күте тұрыңыз