Алгоритмнің күрделілігі - осы алгоритмді есептеу процесінде қолданылған элементарлы қадамдар саны



Жұмыс түрі:  Курстық жұмыс
Тегін:  Антиплагиат
Көлемі: 22 бет
Таңдаулыға:   
ҚАЗАҚСТАН РЕСПУБЛИКАСЫНЫҢ БІЛІМ ЖӘНЕ ҒЫЛЫМ МИНИСТРЛІГІ
АЛМАТЫ ҚАЛАСЫ БІЛІМ БАСҚАРМАСЫ
АЛМАТЫ ҚАЛАСЫНЫҢ ИННОВАЦИЯЛЫҚ ТЕХНИКАЛЫҚ КОЛЛЕДЖІ

"Есептеу және бағдарламалық қамтамасыз ету" пәндік-циклдік коммиссиясы

КУРСТЫҚ ЖОБА

Мамандығы: 1304000 - Есептеу техникасы және бағдарламалық қамтамасыз ету (түрлер бойынша)
Біліктілігі: 1304043 - Техник-бағдарламалаушы
Тобы: Пд4-19қ
Пән: Алгоритмдеу және бағдарламалау
Тақырыбы: Алгоритмдердің күрделілік ұғымын зерттеу және әзірлеу

Орындаған: Бекжанов Аңсар
Берікжанұлы

Тексерген: Ражабов Ш.

Баға:_______ _________
(қолы)

___ ___________20___ж.

Алматы 2021
МАЗМҰНЫ

КІРІСПЕ____________________________ ______________________3-бет

НЕГІЗГІ БӨЛІМ
1.1.Алгоритмнің түрлері____________________________ _______ 5-бет
1.2.Алгоритм күрделілік ұғымы,жазу әдістері_________________ 6-бет
1.3.Алгоритм модельдері_________________________ __________7-бет

АРНАЙЫ БӨЛІМ
2.1. Алгоритмдік тіл және программалау тілі ұғымы____________8-бет
2.2. Алгоритм ұғымы мен жазылу қасиеттері және блок-схема құру тәсілі_____________________________ ________________________9-бет
2.3. Сызықтық алгоритмдерді әзірлеу________________________10-б ет
2.4. Тармақталған алгоритмдерді әзірлеу_____________________11-бет
2.5. Қайталанатын циклді алгоритмдерді әзірлеу______________16-бет
2.6. Алгоритмдерді Паскаль программалау тілінде әзірлеу______19-бет

ҚОСЫМШАЛАР_________________________ _______________19-24бет

ҚОРЫТЫНДЫ__________________________ ________________25-бет

ПАЙДАЛАНЫЛҒАН ӘДЕБИЕТТЕР ТІЗІМІ_________________26-бет

КІРІСПЕ
Алгоритм - белгілі бір мәселені шешу үшін қойылатын мақсатқа бағытталған іс-әрекеттердің тізбегі.Дербес программаны құру үшін программалау тілін білу ғана жеткіліксіз. Программаның түпкі негізі алгоритм ұғымынан құралады. Себебі алгоритм көмегімен программист өзі құрмақшы болып отырған программаға сәйкес мақсатқа жетуі үшін орындауы қажет әрекеттердің тізбегін құрастыруы керек. Алгоритмнің негізгі қызметі - берілген ақпаратты өңдеу арқылы басқа, жаңа ақпарат құру. Сонымен алгоритм дегеніміз белгілі бір мәселені шешу үшін қойылатын мақсатқа бағытталған көмегінсіз адам өздігінен орындаса ондай алгоритмдерді тұрмыстық алгоритм дейді. Мысалы: дүкенге барып азық-түлік әкелу, сабаққа дайындалу, т.б.Формула көмегімен шығарылатын, есептеуді қажет ететін, күрделілігіне байланысты белгілі бір техниканың араласуын талап ететін алгоритмдерді есептеу алгоритмдері дейді. Рекурсивті алгоритм деп есептеу алгоритмінің бір түрін айтады. Оның нәтижесі формуланың ішіндегі бір параметрінің мәні басқа бір өзгеріп отыратын параметрден тәуелді болудан шығады.
Алгоритмнің күрделілігі - осы алгоритмді есептеу процесінде қолданылған элементарлы қадамдар саны. Алгоритмнің уақытша күрделілігі - оны орындауға қажетті Т уақыты. Ол элементарлы әрекеттер саны мен оны орындауға кеткен орташа уақыттың көбейтіндісіне тең:T=kt.Бір есепті шешу үшін тек жалғыз алгоритм емес бірнеше алгоритм құруға болатыны белгілі. Сондықтан есепті шешу үшін барлық алгоритмдердің ішінен ең тиімдісін құру қажет болады. Алгоритмді орындаушы-адам болған жағдайда алгоритмнің күрделігі логикамен байланысты, себебі, есепке құрылған алгоритмнің ішінде күрделі структура болса, одан қандай нәтиже алынатынын алдын ала болжау мүмкін емес, тек оны орындап болған соң нәтиженің дұрыстығы, бұрыстығы зерттеледі, ал орындаушы-машина болса, оған алгоритмнің структурасы қаншалықты күрделі екендігі әсер етпейді, себебі машина үшін белгілі нұсқаулар берілді, ол соны орындайды, мысалы: машинаға бәрібір - қосуды орындап жатыр ма азайтуды орындап жатыр ма, әйтеуір техникалық жабдығы дұрыс болса, алдына қойған проблема шешіледі. Немесе алгоритмді жазғанда қайталану операторын қолданбай ақ күрделі есепті шешудің өте көп қадамнан тұратын тізбекті структурасын қолдануға болады, ал машинаға бәрібір- циклды қолдандың ба, тізбекті қолдандың ба, бірақ есептеу уақыты, алынған нәтиже адамды қанағаттандырмауы мүмкін, сондықтан алгоритмнің күрделілігі деген ұғым қажеттілігі шығады.

НЕГІЗГІ БӨЛІМ
1.1.Алгоритмнің түрлері
Алгоритмнің қызметі - берілген информацияны өңдеу арқылы басқа, жаңа информацияны құру.Берілген информацияны алғашқы информация дейді.Алгоритм үшін бастапқы берілгендер немесе алғашқы информация болып табылатын шамаларды енетін шамалар немесе аргументтер деп атайды.Алгоритмнің орындалу процесінде алынатын өңделген информацияларды сақтауға арналған шамаларды шығатын шамалар деп атайды.Енетін шамаларға да, шығатын шамаларға дажатпайтын алгоритмді орындау процесінде аралық мәндерді сақтауға арналған шамаларда аралық шамалар дейді.Қай алгоритм болса да негізгі қасиеттерді қанағаттандыруы шарт:
Дискреттілік қасиет - орындалатын әрекеттер тізбегі бірнеше қадамдарға бөлініп үздікті құрылымды болуы керек. Және қадамдардың орындарын ауыстыруға болмайды.
Түсініктілік қасиеті - орындаушыға түсінікті және орындай алатын нұсқаулар жиынынан командалардан тұруы қажет. Орындаушыдан біртұтас әрекет жасауды талап ету керек. Алгоритм орындаушыға бағытталуы керек.
Анықтылық қасиеті - детерминделген деп те аталады, бір алгоритмді кез келген орындаушы орындай алатын болуы керек. Қай орындаушы орындаса да алынатын нәтиже біреу болуы керек. Орындаушы дербес шешім қабылдамайтындай болып құрылуы керек, яғни анық, егжей-тегжейлі ойластырылған, толық, жалғыз нәтижелі болуы керек. Бір - екі минуттай деген сияқты нұсқаулар болмау керек.
Ортақтық қасиеті - бір алгоритм барынша үлкен класқа жататын есепті шешетіндей болуы керек, тек бастапқы берілгендерді өзгерту арқылы ғана шешімді табуға болатындай.
Нәтижелілік қасиеті - алгоритмнің пункттері немесе нұсқаулары шектелген, оның шегі есептің нәтижесін беретіндей болуы керек. Алынған нәтиженің дұрыстығын анализдеу керек.
Жалпы алгоритмдердің келесі түрлері болады: тұрмыстық,есептеурекурсивті,қосалқы .
-Күнделікті өмірде белгілі бір мақсатқа жету үшін орындалатын, ешқандай роботтың көмегін талап етпейтін, адамдардың сана - сезімінен тәуелді әрекеттер жиынын тұрмыстық алгоритмдер дейді.
- Формула көмегімен шығарылатын, есептеуді қажет ететін, күрделілігіне байланысты белгілі бір техниканың араласуын талап ететін алгоритмдерді есептеу алгоритмдері дейді.
- Рекурсивті алгоритм деп есептеу алгоритмінің бір түрін айтады. Оның нәтижесі формуланың ішіндегі бір параметрінің мәні басқа бір өзгеріп отыратын параметрден тәуелді болудан шығады.
- Қосалқы алгоритм дегеніміз күрделі алгоритмдердің бірнеше жай алгоритмге бөлінуі арқылы негізгі алгоритмге қажетті уақытында ғана шақырылатын, жалпылама жағдайға негізделіп дербес құрылатын алгоритмдер.Алгоритмдер құрылымына қарай үшке бөлінеді:сызықты,тармақталған қайталану немесе циклдік.
- Операциялардың реті алгоритмнің өз структурасымен анықталған және енгізетін шамалардың жеке мәндеріне тәуелсіз, тізбектеліп орындалатын алгоритмдерді сызықты алгоритмдер дейді.
- Енгізетін шамалардың жеке мәндерінен тәуелді бірнеше әрекеттердің біреуінің орындалуын тағайындайтын алгоритмдерді тармақталған алгоритмдер дейді.
1-сурет 2-сурет Блок схемалары

1.2. Алгоритм күрделілік ұғымы,жазу әдістері

Цикл денесі дегеніміз - бірнеше рет қайталанып орындалатын әрекеттер тобы.Циклдік алгоритмдер 2 түрлі:дейін - шарты алдын - ала берілген, әзірше - шарты соңынан берілген.дейін циклында белгілі шарт тексеріліп, егер ол ақиқат болса ғана цикл денесі қайталанып орындалады. Егер шарт бірден жалған болса, цикл денесі бір де бір рет орындалмайды.кейін циклында цикл денесі берілген шарт ақиқат болғанға дейін қайталанады.Алдынғы алгоритмнен ерекшелігі - цикл денесі шартқа дейін ең болмағанда 1 рет орындалады.
Есептеулердің құрылымына қарай алгоритмде сызықты, тармақталған, циклдік деп үшке бөлінді.
- Операциялардың реті алгоритмнің өз структурасымен анықталған және енгізетін шамалардың жеке мәндеріне тәуелсіз алгоритмдерді сызықты алгоритмдер дейді. Олардың нұсқаулары бірінен кейін бірі тізбектеліп орындалады.
- Енгізетін шамалардың жеке мәндеріне тәуелді, бірнеше әрекеттердің біреуінің орындалуын тағайындауды тармақты алгоритм дейді.
- Енгізетін шамалардың жеке мәндеріне тәуелді бір немесе бірнеше әрекеттердің қайталануын тағайындауды циклдік алгоритм дейді. Циклдік алгоритмдер үш түрге бөлінеді: шарты алдынан берілген - әзірше циклі, шарты соңынан берілген цикл - дейінциклі,параметрлі цикл.
- Белгілі бір логикалық шарт тексеріліп, ол ақиқат мән қабылдаған жағдайда бір немесе бірнеше нұсқаулар тобының қайталануы әзірше циклі деп аталады.
- Белгілі бір нұсқау орындалып болған соң логикалық шарт тексеріліп, ол жалған мән қабылдаса сол нұсқаудың қайталануы дейін циклі деп аталады.
- Белгілі бір нұсқаудың немесе нұсқаулар тобының неше рет қайталануы керек екені алдын ала анық болса, оны параметрлі цикл дейді.
Алгоритмнің берілу тәсілдері: формула бойынша,таблицалық түрде, блок-схема көмегімен.Алгоритм құру мәселесі алгоритм жазуға қандай тілді пайдаланатынымызға байланысты болады. Тіл - кейбір мағлұматтарды өрнектеу және жеткізу құралы. Осы мағынасына қарай қатынас тілі, математика тілі, автоматтар тілі деп бөлінеді.
Алгоритмді жазу үшін пайдаланылатын тілдің сипаты орындаушының мүмкіндіктеріне байланысты.Орындаушылардың мүмкіндігі тіл құралдарыныңдеңгейінанықтайды.Тілді ң деңгейі алгоритмдік жазу командаларының тәптіштеліп нақтылану дәрәжесіне тәуелді. Яғни орындаушы үшін элементар деп есептелетін амалдың шын мәніндегі элементарлық дәрежесі ашып көрсетілуі тиіс.Тілдің деңгейі тілдің формальдандырылу дәрежесіне де байланысты. Ол орындаушының кім болуынан тәуелді. Егер орындаушы адам болса, оған белгілі бір алгоритмдерді түсінікті сөз , сөз тіркестеріарқылы түсіндіруге болады, ал рындаушы автомат болса, онда бірқатар міндетті талаптар қойылады.
Тілді формальдандыру адам тілінің көркемдік мүмкіндіктерін азайтады.Тілдің деңгейі адам үшін түсініктілік дәрежесіне де тәуелді. Алғашқы ЭЕТ- мен қатынас цифрлар тілі деңгейінде болды. ЭЕТ жаппай таралғандықтан адам мен машинаның қатынасуын қамсыздандыратын тілдің жаңа деңгейлері пайда болды. Қазір тілді табиғиландыру проблемасы алға қойылып отыр. Бұл проблема машинаның өзін жетілдірумен қатар жүріп келеді. Ғылыми , инженерлік тілдер табиғи тіл мен математика тілін жымдастырады. Олар: Алгол, Фортран, Бейсик, паскаль, т.б. Кәдімгі, табиғи тілге жақын, бірақ нағыз алгоритмдік тілдердің неізгі қасиеттері бар тілді оқу алгоритмдік тілі деп атайды. Кейде жай алгоритмдік тіл дейді. Олар кәдімгі текст түрінде жазылады, бірақ программалау тілдерін үйретеді.Алгоритмдік тіл жай командалардың жазылу ережесін, құрама команданың, алгоритм құрамын, мағынасын дәл және бір мәнді анықтау керек.
Алгоритмтік тіл - алгоритмдерді біркелкі және дәл біркелкі жазудың және оларды орындаудың ережелер мен белгілер жүйесі.Кәдімгі табиғи тілге жақын, екінші жағынан нағыз алгоритмдік тілдердің негізгі қасиеттері бар тілдің анықтамасын берейік. Бұл тілді оқу алгоритмдік тілі деп аталады. Бұл тілде жазылған алгоритмдер кәдімгі текст сияқты оқылады және Алгол, Фортран, Бейсик т.б. программалау тілдерін үйренуге негіз болады.
Алгоритмдік тіл - ұғымдары:1) алфавитті - тілде қолдануға болатын символдардың, белгілердің жиынтығы.2) Тіл конструкциясы - айнымалы, өрнек, командалардың жазылу және алгоритмдік жазудың жалпы құрылымының ережелері. Оны синтаксис деп атайды.
3)Семантикасы - әр түрлі командалардың қызметі мен орындалу жолы.
Алфавитте символдар, тілдің көмекші сөздері (басы, егер, онда, әйтпесе, соңы т.б.) бар. Олардың асты сызылуы керек.Тілдің негізгі объектілері - командалар. Олар нұсқауларды жазу үшін қолданылады. Олар екі түрлі:жай командалар, құрама командалар.Жай командалар нақтылы орындалатын элементар әрекеттердің шектеулі сипаттамасы. Оған меншіктеу, көшу, бос командалар жатады.Құрама командаларға тарамақталу, қайталану командалары жатады.
Алгоритмдік конструкциялар: 1)сызықты, 2)тармақты, 3)қайталану, 4)рекурсивті.
1969 жылы В. Дейкстр өзінің деректер структурасы және алгоритмдер статьясында кез келген алгоритмді жазу үшін негізгі 3 конструкцияның сызықты, тармақты, қайталану - жеткілікті екенін дәлелдеген. Сызықты алгоритмді тізбекті алгоритм деп те айтады.Кез келген алгоритмнің дәл немесе дұрыстығы алгоритм моделімен негізделеді. Модель есепті шешуде қолданылатын құралдар жиыны, яғни келесі қадамды анықтау әдісі, қарапайым әрекеттер, қадамдар.

1.3.Алгоритм модельдері
Алгоритмнің моделі екіге бөлінеді: теориялық, практикалық.
- Модель универсалды - жан - жақты, максимальды қарапайым, есепті шешуде минимальды есептеу құралын қажет ететін болуы керек.
- Практикалық, қолданбалы модельде есептеу тиімділігі, программалау тиімділігі болу керек.
Теориялық модельдеу үш бағытта жүреді:
1) бүтін санды аргументтен тәуелді сандық функцияны есептеу алгоритмі, олар есептелетін функция деп аталады. Есепті шешетін рекурсивті функция құру мүмкіндігінің бар екенін Черч, Гегель, Клини ғалымдар ашты.Алгоритмдік конструкциялар: 1)сызықты, 2)тармақты, 3)қайталану, 4)рекурсивті.
2) машиналық математикамен байланысты. Пост, Тьюринг жұмыстарында есепті шешетін алгоритмдік процесстер - қажетті немесе сәйкес түрде құрастырылған машина орындайтын процесс деді.
3) А.А. Марков - математик, қалыпты алгоритм түсінігін енгізді.

АРНАЙЫ БӨЛІМ
2.1 Алгоритмдік тіл және программалау тілі ұғымыАлгоритмдік тіл деп - орындалатын әрекеттерді, амалдарды бірыңғай және дәл жазуға арналған, өз тіліміздің кейбір сөздерімен пайдаланатын белгілер мен ережелер жүйесін айтады. Алгоритмдік тіл бір жағынан табиғи тілге жақын, сондықтан оны қарапайым мәтін түрінде жазады және оқиды. Алгоритмдік тіл - математикалық белгілер сандар, шамалар мен функция атаулары, арифметикалық белгілері, жақша және басқа да символдармен қатар белгілі бір қызмет атқаратын терминдер қамтиды. Алгоритмдік тілде мәтін құруға пайдаланылатын қарапайым белгілер - тілдің символдары деп, ал ондай символдар жиынын - оның алфавиті деп атайды.
Алгоритмдерді жәні алгоритмдік тілде құрылған амалдар тізбегін компьютерге түсінікті командалар мәтіні түрінде жазуға арналған жасанды тілдерді программалау тілдері деп атайды. Паскаль, Си, Дельфи, Бейсик, Фортран тәрізді программалау тілдері - ағылшын тіліндегі кейбір сөздерді алгоритм құруда кеңінен пайдаланады. Ол сөздердің саны онша көп емес, оларды түйінді сөздер деп атайды. Әр компьютердің өзінің машиналық тілі болады, ол командалар тілі немесе кодтар тілі деп аталады. Алгоритмдік тілде және программалау тілінде программа жазу - ыңғайлы болып табылады. Оларды белгілі бір машинада орындау үшін сол программалау тілін машина тіліне автоматты түрде аударатын түрлендіргіш программалар болуы керек, оларды транслятор деп атайды. Трансляторлар үш түрге бөлінеді: интерпретатор, компилятор және ассемблер.
Интерпретатор - берілген прогамманың әрбір жолын (командасын) жеке-жеке аударып отырып орындайтын транслятор түрі.Компилятор - бірден барлық программа мәтінін толық аударып машина тіліндегі бір модуль түріне келтіреді де, сонан соң сол модульді компьютер жадына қайта жазып алып, оны кейін тек біздің алауымыз бойынша орындайды.

2.2. Алгоритм ұғымы мен жазылу қасиеттері және блок-схема құру тәсілі Алгоритм сөзі IX ғасырда өмір сүрген көрнекті математик Әл-Хорезмидің латын тілінде бұрмаланған аты. Ол бірінші рет арифметикалық амалдарды орындаудың ережелерін тұжырымдаған ғалым. Алгоритм дегеніміз - алға қойылған мақсатқа жету үшін немесе берілген есепті шешу үшін түсінікті де нақты ережелер бойынша орындаушыға жинақы түрде берілген реттелген нүсқаулар тізбегі. Бұл анықтамада алгоритм мен оның қасиеттерін байланыстыратын негізгі ұғымдар беріліп отыр. Орындаушы - бұл объект (немесе субъект), құрылған алгоритмді басқарады. Орындаушының негізгі әрекеті оның командалар жүйесін басқаруынан көрінеді. Кез келген есепті шешудің кірісінде берілгендер мен алгоритм командалары тұрады, шығысында нәтиже тұрады. Алгоритмнің келесідей қасиеттері бар: 1) ... жалғасы

Сіз бұл жұмысты біздің қосымшамыз арқылы толығымен тегін көре аласыз.
Ұқсас жұмыстар
Алгоритмдер және деректер структурасы
Алгоритмдер теориясы. Анықтамасы. Қасиеттері. Түрлері. Алгоритмді жазу әдістері. Алгоритм модельдері
АЛГОРИТМНІҢ ПРАКТИКАЛЫҚ АСПЕКТІЛЕРІ. АВТОМАТТАР ТЕОРИЯСЫ
Алгоритмдер теориясы
Алгоритмдік тілдердің құрылымы
Алгоритмнің тиімділігі мен күрделілігі. Тьюринг, Пост абстрактілі машиналарымен жұмыс
Алгоритмдер теориясының негізгі ұғымдары
Массивтерді сұрыптаудың қарапайым алгоритмдері
Информатика пәнінен лекциялық сабақтардың тезистері
Ақпарат қарастырылған жүйе күйі
Пәндер