Алгоритмдеу


код      I  адрес     II  адрес   10       2000          2001



Pdf көрінісі
бет2/10
Дата31.12.2016
өлшемі1,07 Mb.
#880
1   2   3   4   5   6   7   8   9   10

код      I  адрес     II  адрес   10       2000          2001  10-ға  тең  операция 
коды 2000 ұяшығының  мəнін 2001 ұяшығының  мəнімен  қосып, 
нəтижесін  бірінші  адрес  бойынша  орналастыру  керектігін  көрсетеді. 
Мұндай  технологиядағы  есептің  алгоритмі  элементарлы  іс-
əрекеттерге  бөлінді,  бағдарламалаушы  қай  ұяшықта  не  барын  есте 
сақтауы  керек  болды.  Мұндай  технология  өте  ауыр  болды  жəне 
бағдарламалаушының  жоғары  маман  болғанын  қажет  етті.   
Екінші  буын  ЭЕМ  жартылай  өткізігіш  құрылғылар  (диодтар, 
транзисторлар)  негізінде  құрылды.  Құрылымдық  негіз  ретінде 
баспалық платалар қолданды.  
14

Сыртқы  ЕСҚ  магниттік  таспаларда  орындалды.  Командалардың 
сандық  коды  əріптік  кодқа  ауысатын,  ал  ұяшық  адрестері  əріптік 
немесе шартты болатын ASSEMBLER (тілдердің 2 буыны) тілі пайда 
болды. Алдыңғы мысалдың жазбасы мынадай болды: 
  ADD  a  b 
Ассемблердің  басты  артықшылығы–программалаушы  ЭЕМ 
командаларының  жүйесін  білу  жəне  ЭЕМ  жадысын  ұяшық  нөмірін 
көрсетіп  үлестіру  талап  емес. Ассемблер  тілі  адрестер  мен 
амалдардың  мнемоникалық  кодтарының  символдық  белгіленуін 
қолданады.  Мысалы–  қосу; MOV – қайта  жіберу.  ЭЕМ  машиналық 
кодты  ғана  түсінетіндіктен,  ассемблерден  транслятор  пайда  болды. 
ЭЕМ-ға  бағдарлама  енгізгеннен  кейін  транслятор  Ассемблер  тілін 
ЭЕМ-ға  түсінікті  машиналық  кодтарға  аударады.  Ассемблер  пайда 
болғаннан  кейін-ақ  жұмыстың  ауырлығы  төмендеген   жоқ, 
есептеулерде қажеттіліктердің керекті көлемін қамти алмады. Үшінші 
буын ЭЕМ-да құрылымдық негіз ретінде интегралдық схемалар (ИС) 
қолданылды.  Құрылысында  модульдік  принцип  қолданылған. 
Сыртқы ЕСҚ ретінде магниттік таспалардағы жəне қатты дисктердегі 
жинағыштар  болды.  Көлемі  мен  энергияны  пайдалану  азайғаннан 
кейін  өнімділік  пен  сенімділік  деңгейі  артты.  Үшінші  буын  ЭЕМ-ң 
сипаттамалық  өкілдері  болып  ЕС  ЭЕМ  жəне  СМ  ЭЕМ  табылады. 
ЭЕМ  базалық  бағдарламалық  қамтамасыздандырудың  болуымен 
жəне бірнеше бағдарламалардың бір уақытта орындалу мүмкіндігімен 
сипатталады.  ЕС  ЭЕМ  ғылыми-техникалық,  экономикалық  жəне 
ақпараттық-басқарушы  мəселелерді  шешуге  арналған  əмбебап  ЭЕМ 
тобының  өкілі  болып  табылады.  СМ  ЭЕМ – технологиялық 
процестерді  автоматты  басқару  жүйелерінде  (ТПАБЖ)  қолдануға 
арналған  проблемалық-бағытталған  мини-ЭЕМ  тобына  жатады. 
Бағдарламалаудағы  қиыншылықтарды  азайтуға  бағытталған  келесі 
қадам – жоғары  деңгей  тілдерінің  пайда  болуы. 1955 ж.  алғашқы 
жоғары  деңгей  тілі FORTRAN (FORMULA TRANSLATOR ) – 
ғылыми  есептеулер  тілі  пайда  болды. 1960 ж.  Алгол ( Algoritmic 
Language ) пайда болды.  
1965  ж. Basic (Beginner’s All purpose Symbolic Instructions Code) 
пайда  болды.  Авторлары  Курт  жəне  Кемени. 1970 ж.  Никлаус  Вирт 
студенттерге  бағдарламалауды  үйретуге  арналған  Паскаль  тілін 
шығарды. 
1972  ж.  Си  тілі  пайда  болды  (авторы  Денис  Ричи). 1980 ж. 3-ші 
буындағы ең күшті Ада тілі пайда болды.  
15

3-буын  бағдарламалау  жүйелері  қолданушыға  бағдарламалар 
жасаудағы қуатты жəне қолайлы құралдарды ұсынады: 
•  компилятор жəне интерпретатор  
•  редактор  
•  кітапханалар  
•  қосымша 
бағдарламалар 
(жөндеушілер, 
қателерді, 
айқастырылған сілтемелерді табатын бағдарламалар).  
3-ші  буын  жоғары  деңгей  тілдері  екі  үлкен  класқа  бөлінеді (2-
сурет): 
1.  Əмбебап;  
2.  Проблемалық-бағытталған.  
Біріншілері мəселелердің кез-келгенін шеше алса, екіншілері – 
арнайы мəселелерді шешуге арналған. 
 
1.2-сурет – Жоғары деңгей тілдерінің классификациясы 
 
Жоғары деңгей тілдерінің пайда болуымен бағдарламаларды құру 
жылдамдығы  жоғарылады,  бағдарлама  құрудағы  уақыттың 80%-н 
алатын  түзету  процесін  автоматтандыру  мүмкіндігі  пайда  болды.   3-
ші  буын  жоғары  деңгей  тілдерінде  қосу  командасының  жазылу 
мысалдарын  қарастыратын  болсақ.  Мысалы: Basic тілінде  қосу 
командасы  былай  жазылады:  Y = a + b. Ал  Pascal  тілінде  қосу 
командасы былай жазылады: Y := a + b; 
 
3-Дəріс. Алгоритмнің анықтамасы. Алгоритмдерді 
баяндаудың тəсілдері. Алгоритм схемасын жасау ережелері. 
Алгоритмдердің құрылымдарының түрлері. Сызықтық жəне 
тармақталған алгоритмдердің құрылымдарының баяндалуы. 
Алгоритмдеу – есепті  шығару  алгоритмін  құрастыру  процесі
мұның  нəтижесінде  мəліметтерді  өңдеу  процесінің  кезеңдері 
айқындалады  да,  кезеңдер  мазмұны  формальды  (жасанды)  түрде 
16

жазылып,  солардың  орындалу  реттілігі  анықталады.  Алгоритм  – 
бастапқы  берілген  мəліметтерден  қажетті
 
нəтижеге  қол  жеткізу 
жолында  атқарылатын  есептеу  процесін  анықтайтын  дəлме-дəл 
нұсқаулар жиыны. 
Алгоритм қасиеттері: 
1. детерминділік  (анықтылық,  бір  мəнділік) – басқаша  түсінуге 
жол бермей, тек қана көрсетілген əрекеттерді айқын түрде орындауға 
арналған нұсқаулар дəлдігі;  
2. дискреттілік – есептеу  процесін  жекеленген  қарапайым 
операцияларға  бөлу  қасиетінің  болуы,  яғни  күрделі  есепті 
атқарылуына  күдік  келтіруге  болмайтын  шағын  бөліктерге  жіктеу 
мүмкіндігінің болуы;  
3. нəтижелілік – белгілі  бір  əрекеттер  саны  атқарылған  соң, 
процестің  қажетті  нəтижесін  алып,  оны  аяқтау  мүмкіндігінің  болуы 
немесе  есептеу  процесін  ары  қарай  жалғастыруға  болмайтындығы 
жайлы мəлімет алу;  
4. жалпылық    –  алгоритмнің  осы  сияқты  көптеген  басқа  да 
есептерге қолданылу мүмкіндігінің болуы  
Алгоритмдік тіл – алгоритмдерді жазуға арналған символдар мен 
сол  символдардан  тұратын    конструкцияларды  құрастыру  жəне 
түсіндіру ережелерінің жиыны. Программалау тілі компьютерлерде 
программаларды  орындау  ісін  атқарады.  Программа  –  машинаға 
түсінікті  түрде  жазылған    алгоритм.  Программада  берілген 
мəліметтердің  сипаттамаларымен  бірге  оларды  өңдейтін  командалар 
болады.  Командалар  қандай  мəліметтер  қандай  операцияларға 
қатынасатынын,  олар  қандай  реттілікпен  орындалатынын  жəне 
нəтиженің  қандай  түрде  шығарылатынын  көрсетеді.  Бұлар 
операторлар  арқылы  жүзеге  асырылады.  Мəліметтер–  белгілі  бір 
процесс  көмегімен  тасымалдап,  өңдеуге  болатын,  формальды  түрде 
бейнеленген  фактілер  мен  идеялар.  Оператор – операциялар  мен 
мəндерді  көрсететін  немесе  солардың  элементтерінің  қай  жерде 
орналасқанын білдіретін символдар жиыны. Мысалы: 
а = b+с;   // а, b, с – айнымалылар;} 
k= 2;      
if (t<0) ... 
Айнымалы – программа орындалуы барысында өз мəнін өзгерте 
алатын  объект. 
 
 
17

Айнымалы қасиеттері: 
1. Айнымалы  белгілі  бір  мəнге  ие  болмағанша,  анықталмаған 
болып саналады. Оған мəн беру мынадай тəсілдермен орындалады:  
• 
сырттан енгізу арқылы;  
• 
константантаны меншіктеу арқылы;  
• 
бұрын анықталған айнымалының мəнін беру арқылы; 
2. Кезкелген  сəтте  айнымалының  белгілі  бір  мəні  болады  немесе 
ол анықталмаған болып есептеледі; 
3. Айнымалыға  соңғы  берілген  мəн  оның  алдыңғы  мəнін  жойып 
(өшіріп)  жібереді.  Айнымалыны  таңдау  (оқу)  жəне  оны  пайдалану 
айнымалының  мəнін  өзгертпейді.  Бұл  пəннің  заттық  негізі  болып 
(компьютерде 
шығару 
мақсатында) 
алгоритмдер 
мен 
программаларды  құрастыру  тəсілдері  мен  құралдары  саналады. 
Программалар құру үшін  программалау жүйелері пайдаланылады. 
Программалау  жүйесі  –  программалауды  автоматтандыру 
құралдары.  Олар  программалау  тілінен,  осы  тілдің  трансляторынан, 
құжаттамаларынан  жəне  де  программаларды  дайындау,  əрі  орындау 
құралдарынан тұрады. 
Транслятор – бір  тілді  екінші  тілге  аудару  программасы.  Ол 
интерпретатор жəне компилятор сияқты екі топқа бөлінеді.   
Интерпретатор – бұл  командаларды  аударып,  оларды  бірден 
орындауға арналған трансляторлық программа. 
Компилятор – бұл  алгоритмдік  тілдің    конструкцияларын 
толығымен  машиналық  кодқа  түрлендіретін  программа.  Есептің 
нəтижесін алу түшін машиналық кодты орындау керек. 
Алгоритмдерді бейнелеу тəсілдері 
Алгоритмдерді бейнелеудің негізгі тəсілдеріне оларды жазудың 
келесідей түрлері жатады: 
• 
табиғи тіл сөздері арқылы;  
• 
формулалық-сөздік тəсіл арқылы;  
• 
графикалық түрде бейнелейтін блок-схемалар арқылы;  
• 
псевдокодтар арқылы;  
• 
программалау тілі арқылы.  
Алгоритмдерді табиғи тіл сөздері арқылы бейнелеуде – есептеу 
кезеңдері мазмұны кез келген түрде табиғи тілде жазылады. Бірақ бұл 
тəсілде  алгоритм  көрнекілігі  жоқ  жəнедəлдік,  яғни  детерминділік 
қасиет,  толық  формальдау  мүмкіндігі  сақталмайды,  сол  себепті  ол 
сирек қолданылады. 
18

Алгоритмдердіформулалық-сөздік  тəсіл  арқылы  бейнеленуі– 
тапсырманың  математикалық  символдар  мен  өрнектердің  жəне 
сөздердің  араласуымен  берілуі  болып  табылады.Мысалы,  үшбұрыш 
ауданын  оның  үш  қабырғасының  ұзындығы  арқылы  есептеу 
алгоритмін құру керек болсын делік.  
1.  үшбұрыштың жарты  периметрін есептеу 
 p=(a+b+c)/2  
2.  үшбұрыштың ауданын есептеу 
  
3.  нəтиже ретінде  мəнін шығарып, алгоритм жұмысын аяқтау. 
Бұл  тəсілді  пайдаланғанда,  алгоритмді  кез  келген  деңгейде 
айқындап  көрсетуге  болады,  бірақ  формальды  түрде  анық  бейнелеу 
қиын.  Алгоритмді  графикалық  түрде  блок-схемалар  арқылы 
көрсету – оның  логикалық  құрылымын  графикалық  түрде  бейнелеу 
болып  саналады.  Мұнда  мəліметтерді  өңдеудің  əрбір  кезеңі 
атқарылатын  операцияға  сəйкес  əр  түрлі  геометриялық  фигуралар 
(блоктар) түрінде көрсетіледі (1.1-кесте). 
1.1 кесте 
Алгоритмдерді бейнелеу блоктары 
Іс-əрекет аты 
Блоктың пішімі 
Атқаратын жұмысы 
 
 
       Процесс 
 
 
 
 
Математикалық 
өрнектерді есептеу 
 
    Басы – соңы 
 
 
 
 
 
Алгоритмдерді бастау, 
аяқтау 
 
Алдын ала 
анықталған 
процесс 
(подпрограмма) 
 
 
Қосалқы 
программаларға 
кіру жəне шығу 
 
 
  Шешім 
 
 
 
Есеп шығару 
жолын таңдау 
)
)(
)(
(
c
p
b
p
a
p
p
S



=
b
a
0,5a
b
R=0,25a
a
b
0,25a
b
a
19

 
Енгізу-шығару 
 
 
 
 
Мəліметтерді енгізу 
жəне шығару 
 
 
Модификация 
 
 
 
 
 
Цикл басы 
 
 
Құжат 
 
 
 
 
Нəтижені баспаға 
(қағазға) шығару 
Жоғарыдағы мысалдардың алдыңғысы алгоритмін блоктар арқылы 
графикалық  түрде бейнелеу 1.1-суретте  көрсетілген.  Ол  нақты  тəсіл, 
сол себепті кең қолданылады. 
Псевдокодтар   –  нақты  программалау  тілінің    синтаксистік 
ерекшеліктерін  есепке  алмай,  тек  формальды  түрде  программа 
логикасын  бейнелеуге  мүмкіндік  береді.  Бұл  тəсіл  программалау 
тілінің  операторлары  мен  табиғи  тіл  сөздерінің  араласуы  арқылы 
құрастырылып,  блок-схема  орнына  пайдалануға  болатын  программа 
логикасын бейнелеу құралы болып табылады.  
Алдыңғы алгоритмді псевдокод арқылы былай жазуға болады: 
Осы алгоритм блок-схема түрінде төмендегі 1.1-суретте  
көрсетілген. 
b
a
а
a
b
a
b
Бірінші элементті таңдаймыз (i := 1) 
IFA>x
i
 немесе x
i
>B  THEN 
            хабарлама шығару жəне соңына көшу 
                                              ELSE 
            келесі элементке көшу (i := i +1) 
 
IF  жиым біткен жоқ  (i 
≤ N)   THEN 
            интервалды тексеруге көшу 
                                                    ELSE 
            интервалға элементтер толық кіретіні жайлы  
                                                    хабарлама шығару  
Соңы 
20

Алгоритмдердің негізгі канондық құрылымдары 
Программалаудың  ең  негізгі  əрі  күрделі  кезеңі  алгоритм  құру 
болып табылады. Программалау теориясында күрделі есептің шығару 
жолын, яғни программаны үш  түрлі құрылымды пайдалану арқылы 
жазып шығуға болатындығы дəлелденген: 
• 
сызықтық құрылым немесе операторлар тізбегі; 
• 
тармақты құрылым немесе шартты оператор; 
• 
қайталау немесе циклдік оператор. 
1)  сызықтық құрылым 
   
 
 
A;  B; 
А жəне В əрекеттері мыналардың  бірі болуы тиіс: 
• 
кез келген жеке оператор; 
• 
белгілі бір функцияны шақырып, одан кері оралу; 
• 
басқа бір басқару құрылымы. 
2)  тармақты құрылым 
     if  P  then  A  else  B;       (Паскаль тілінде) 
if  P   A else  B;               (С/С++, C#, Java,  
PHP тілдерінде) 
P-ны  тексеру   предикат  болып  табы-
лады,  яғни  ол  мəні  ақиқат (true) немесе 
жалған (false) бола  алатын  логикалық 
өрнектен 
немесе 
шарттан 
тұратын 
функция  түрінде  болады.  Бұл  құрылым 
толымсыз (қысқаша) түрде болуы мүмкін, 
онда  логикалық  өрнектің  мəні  жалған 
болғанда ешқандай əрекет орындалмайды. 
Мұндай 
құрылым 
түрі 
төменде 
көрсетілген: 
if  P  then  A ;    (Бейсик, Паскаль тілдерінде) 
if  P  A;     
(С/С++, C#, Java, PHP тілдерінде) 
3)циклдік құрылым (қайталау) 
цикл – əзірше  
 
 
 
 
 
while  P do  A; 
Мұнда  А  əрекеті  Р  предикат  мəні  ақиқат  болып  тұрса, 
қайталана  береді.  Сондықтан  А  əрекеті  орындалуы 
кезінде  Р-ға  əсер  ететін  айнымалылар  мəні  өзгеруі  тиіс. 
Бұлай  болмаған  жағдайда  шексіз  цикл  орын  алады. 
Предикат  мəні  А  əрекетіне  дейін  анықталады,  сол 
себепті кейде А əрекеті бір де бір рет орындалмауы да мүмкін.  
цикл – дейін 
 
 repeat  A  until  P; (Бейсик, Паскаль тілдерінде) 
do  A  while  P;(С/С++, C#, Java, PHP тілдерінде) 
А 
В 
false
true
P
өрнекөрн
A
B
true 
false
А 
P
өрнекөрн
true
false
Р
 
А
 
true 
Р
А
 
false
21

Мұндағы  қайталау  кем  дегенде  бір  рет  орындалады, 
өйткені  шарт  А  əрекетінен  кейін  тексеріледі.  А  əрекеті 
предикат  мəні  жалған  болған  кезде  орындалмайтын 
болады.  
4)  таңдау – case (switch)  ауыстырғыш  (көп 
тармақты)  құрылымы  программалауды  жеңілдететін 
мүмкіндік  болып  табылады.  Таңдау  құрылымы  бірнеше 
мүмкіндіктердің біреуін ғана орындау 
кезінде қолайлы болып табылады.  
Р мəніне қарай А, В, …, Z əрекет-
терінің  біріорындалады,  сонан  соң 
кейінгі 
орналасқан 
құрылымдар 
атқарылады.  
Күрделі  алгоритмдерді  құру  үшін 
қарапайым 
канондық 
(бірыңғайланған) 
алгоритмдік 
құрылымдар  қолданылады.  Олар  сызықтық,  тармақталу  жəне  цикл 
құрылымдарынан тұрады.  
1. Сызықтық  құрылым  немесе  қарапайым  сызықтық  алгоритм  іс-
əрекеттердің орындалу ретіне қарай тізбектеле орналасқан блоктардан тұрады. 
Мысалы,  y = a+b  формуласы  бойынша  есептеу  тіктөртбұрыш  арқылы 
кескінделетін есептеу блогы (3-блок) арқылы өрнектеліп, нəтижені қағазға басу 
үшін көпбұрышты құжат алу блогын (4-блок) пайдаланып, оның ішіне нəтиже-
нің  атауларын  жазамыз.  Осы  көрсетілген  y=a+b  формуласын  есептеу  үшін  a 
жəне  b-ның  сандық  мəндерін  программаға  енгізіп (2-блок),  содан  кейін  қосу 
амалын  орындап,  ақырында  y-ті  экранға  (қағазға)  басып  шығарып,  жұмысты 
тоқтатамыз. Осы алгоритмнің схемасы 1.2-суретте  
 
 
 
  
 
 
 
 
 
 
 
 
 
көрсетілген, ал оның жанында Паскаль жəне Си тіліндегі програм-
масы жазылған.  
2.  Тармақталу  алгоритмдері  құрылымы  қарапайым  болып  келеді. 
Мұнда арифметикалық теңсіздік (теңдік) түрінде берілген логикалық шарт 
тексеріледі.  
Си тіліндегі программа: 
#include  
#include  
main() 

 int a,b,y; 
 printf(“a, b =”); 
scanf(“%i%i”,&a,&b); 
 y = a + b; 
 printf(“y = %i”, y); 
 getch(); 
}
a,bенгіз

1.2-су р е т . 
Алгоритм  

басы 
y:=a+

y 


соңы 
Паскальдағы программа: 
Program P(іnput,output); 
var a,b,y: integer;  
begin 
wrіte('a, b='); 
  readln(a,b); 
y:= a+b;  
 
 
 
wrіteln('y=',y:6:3); 
readln;  
end.  
Р
 
А
 
В
 
Y
 
Z
 
22

x,
y
xенгiзу 
басы 
x
≥0
иə 
жо
соң
1.5-сурет. Тармақталу 
алгоритмі 
x
y
+
=
2
+
x
y
Егер ол орындалса, онда алгоритм бір жолмен, ал орындалмаса екінші 
жолмен жүзеге асырылады, яғни есепті шығару жолы тармақталып екіге 
бөлініп кетеді. Тармақталу алгоритмдеріне шартты тексеру блогы міндетті 
түрде кіреді. Ол ромб түрінде кескінделіп, басқа блоктармен 1 кіру жəне 2 
шығу сызықтары арқылы байланысады. Көбінесе тармақталу алгоритмдері 
екі  түрде  кездеседі,  олар  "таңдау"  жəне  "аттап  өту"  мүмкіндіктерін  іске 
асыруға көмектеседі. 
"Таңдау" жолымен тармақталуда берілген шарт тексеріледі (1.3-су-
рет),  егер  ол  шарт  орындалса  (ақиқат  болса),  онда 2-амал  жүзеге 
асырылып,  содан  кейін  келесі 3-амалға  көшеміз.  Ал,  егерде  шарт 
орындалмаса, яғни оның орындалу мүмкіндігі жалған болса, онда 1-
амал атқарылып, содан кейін 3-амал атқарылады. Сонымен, шарттың 
ақиқат  немесе  жалған  болуына  байланысты 1-амал  немесе 2-амал 
орындалады. 
"Аттап  өту" (1.4-сурет)  алгоритмінде  шарт  орындалса, 1-амалды 
аттап  өтіп,  бірден 2-амалды,  содан  кейін 3-амалды  орындаймыз.  Ал 
шарт  жалған  болса,  онда 1-амал  міндетті  түрде  орындалып,  одан 
кейін 2- жəне 3-амалдар жүзеге асырылады. 
 
 
 
 
 
 
 
 
 
 
 
 
 
1-мысал. y  функциясын  төмендегі  фор-
мула бойынша есептеп шығарайық.  
⎪⎩



<
+

+
=
0
   
,
1
0
    
,
 
2
x
x
x
x
x
y
 
Мұнда  x  айнымалысының  таңба-
сына (оң, теріс) байланысты не жоға-
рғы,  не  төменгі  формуланы  таңдап  
алып,  сол  арқылы  у  функциясының 
мəнін табамыз (1.5 сурет). 2-блоктың 
орындалу  барысында  х  айнымалы-
1.3 -сурет. "Таңдау" алгоритмі1.4-сурет."Аттап өту" алгоритмі
... 
... 
1 - амал 
жоқ 
2 - амал 
3 - амал 
...
иə 
шарт
1 - амал 
жоқ
2 - амал 
3 - амал 
иə
шар
23

сына белгілі бір мəн беріледі де, ол мəн енгізу операторлары арқылы 
программаға
 
енгізілуі тиіс.  Бұдан  кейін енгізілген  мəннің  оң немесе 
теріс  екендігі  үшінші  шартты  тексеру  блогы  арқылы  айқындалады. 
Шарттың "ақиқат" (иə) немесе "жалған" (жоқ) болуына қарай 4- не 5-
блоктардың  бірі  ғана  орындалып, "таңдау"  орындалады. 6-блок  х 
айнымалысының  жəне  у  функциясының  сандық    мəндерін    экранға  
немесе  қағазға басып шығарады. 
Бақылау сұрақтары 
1.  Алгоритм  жəне  программа  дегеніміз  не,  олардың  қандай 
ұқсастықтары мен  айырмашылықтары бар? 
2.  Компьютерде  орындалатын  алгоритмдердің  қандай  қасиеттері 
болады? 
3. Алгоритмдерді өрнектеу жолдары. 
4. Компьютерде есеп шығару кезеңдері. 
5.Алгоритм схемаларының əр түрлі блоктары, олардың бейнеленуі, 
байланыстары. 
6. Программалау тілдері деген не?  
 
4-дəріс. Циклдік құрылымдар. Алгоритмнің циклдік 
құрылымы. Ішкі циклдік құрылымның алгоритмдік 
баяндалуы.Техникалық есептердің қойылымының класқа 
бөлінуі. Есептердің типтік компоненттері: талдау, синтездеу, 
шешім қабылдау. Ғылыми техникалық есептердің 
алгоритмдерінің схемаларының мысалдары. 
Математикада, экономикада көптеген есептерді шығару кезеңінде 
бір  теңдеуді  пайдаланып,  ондағы  айнымалының  өзгеруіне 
байланысты оны бірнеше рет қайталап есептеуге тура келетін сəттер 
де жиі кездеседі. Осындай қайталап орындалатын есептеу процесінің 
белгілі  бір  бөліктерін  цикл  деп  атайды.  Осы  бірнеше  рет  қайта-
ланатын бөлігі бар алгоритмдер тобы циклдік алгоритмдерге жатады. 
Циклдік  алгоритмдерді  пайдалану  оларды  кейіннен  программаларда 
цикл операторы түрінде қысқартып жазу мүмкіндігін береді. Циклдер 
қайталану  санының  алдын  ала  белгілі  жəне  белгісіз  болуына  байла-
нысты  екі  топқа  бөлінеді.  Қайталану  сандары  алдын  ала  белгілі 
болып  келген  циклдер  тобы  арифметикалық  цикл болып есептеледі, 
ал  орындалу  саны  белгісіз  циклдер – қадамдық  (итерация)  цикл 
болып аталады.  
24

Практикада  белгілі  бір  айнымалының  сандық  мəніне  байланысты 
орындалатын арифметикалық циклдер жиі кездеседі. Мұнда арифмети-
калық  прогрессияға  ұқсас  болып  келетін 
циклдер  ең  қарапайым  арифметикалық  цикл 
болып табылады.  
Оны басқару қайталану кезеңінде прогрессия-
ның  заңына  сəйкес  тұрақты  шамаға  өзгеріп 
отыратын  цикл  параметрінің  сандық  мəнімен 
байланысты болуы тиіс. 
Цикл  орындалуы  алдында  оның  айнымалы 
аргументі – параметрі алғашқы мəнге ие болуы 
керек,  сонан  кейін  қайталану  кезеңінде  цикл 
параметрі  белгілі  бір  шамаға  (қадамға)  өзгере 
отырып, ол алдын ала берілген ең соңғы мəнге 
дейін жетуі қажет. 
Алгоритмнің  орындалу  барысында  цикл 
параметрі,  мысалы,  х  өзінің  ең  алғашқы  х
мəнінен  ең  соңғы  хk  мəніне  дейін  тұрақты 
шамаға  (dx)  өзгеріп  отырады.  Осының  нəтиже-
сінде  х  мынадай  мəндерді  қабылдайды:  x0
x0+dx, x0+2dx, ..., x0+(n-1)dx, xk, мұндағы n – циклдің қайталану саны, 
ол былай анықталады: 
1
0
-
=
+
⎥⎦

⎢⎣

dx
x
xk
n
 , 
мұнда [...] – өрнектің  бүтін  бөлігі  алынатынын  көрсетеді,  n –  циклдің 
қайталану саны əрқашанда бүтін натурал сан болуы тиіс, егер ол аралас 
сан  болса,  онда  оның  бөлшегі  алынып  тасталады.  Арифметикалық 
цикл үшін y=f(x) функциясының есептелу жолы алгоритм ретінде 2.1-
суретте  көрсетілген.  Мұндағы 3-ші, 4-ші, 7-блоктар  циклді  ұйымдас-
тыру үшін қажет. Олар цикл параметрінің алғашқы мəнін, өзгеру қада-
мын белгілеп жəне оның ең соңғы мəніне жеткен-жетпегенін тексереді. 
Ал 5- жəне 6-блоктар бірнеше рет қайталанып циклдің өзін құрайды. 4-
блок шартты тексеріп қайталану процесін ұйымдастырады.  
Алгоритм схемасын салуды жəне программаны жазуды жеңілдету 
үшін  цикл  алгоритмдері  ықшамдалған  түрде  "модификатор"  немесе 
"цикл  басы"  блогын  пайдалану  арқылы  жазылады.  Онда 1.6-суретте 
көрсетілген 3-ші, 4-ші, 7-блоктардың  орнына  "цикл  басы"  блогы 
орналасады. 

Достарыңызбен бөлісу:
1   2   3   4   5   6   7   8   9   10




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

    Басты бет