2. Дәрістер
1-тақырып: «Алгоритм ұғымы. Анықтамасы. Қасиеттері. Түрлері. Алгоритмді жазу әдістері. Алгоритм модельдері»
Дәріс жоспары:
Алгоритмнің шығу тегі. Алгоритмнің тарихы. Алгоритмнің тұрмыста қолданылуы. Алгоритмнің қажеттілігі. Алгоритмнің қызметі мен мақсаты.
Алгоритмнің ЭЕМ-дегі рөлі. Информатика ғылымындағы алгоритм. Оның мақсаты мен міндеті.
Алгоритмдік конструкциялар.
тізбектелген конструкция
тармақталған конструкция
циклдік конструкция
рекурсивті конструкция
Дербес программаны құру үшін программалау тілін білу ғана жеткіліксіз. Программаның түпкі негізі алгоритм ұғымынан құралады. Себебі алгоритм көмегімен программист өзі құрмақшы болып отырған программаға сәйкес мақсатқа жетуі үшін орындауы қажет әрекеттердің тізбегін құрастыруы керек. Алгоритмнің негізгі қызметі – берілген ақпаратты өңдеу арқылы басқа, жаңа ақпарат құру.
Сонымен алгоритм дегеніміз белгілі бір мәселені шешу үшін қойылатын мақсатқа бағытталған іс-әрекеттердің тізбегі. Олар тұрмыстық, есептеу, рекурсивті, қосалқы деп бөлінеді.
Сөз түріндегі әрекеттер тізбегін күнделікті өмірде ешбір роботтың, техниканың көмегінсіз адам өздігінен орындаса ондай алгоритмдерді тұрмыстық алгоритм дейді. Мысалы: дүкенге барып азық-түлік әкелу, сабаққа дайындалу, т.б.
Формула көмегімен шығарылатын, есептеуді қажет ететін, күрделілігіне байланысты белгілі бір техниканың араласуын талап ететін алгоритмдерді есептеу алгоритмдері дейді.
Рекурсивті алгоритм деп есептеу алгоритмінің бір түрін айтады. Оның нәтижесі формуланың ішіндегі бір параметрінің мәні басқа бір өзгеріп отыратын параметрден тәуелді болудан шығады.
Қосалқы алгоритм дегеніміз күрделі алгоритмдердің бірнеше жай алгоритмге бөлінуі арқылы негізгі алгоритмге қажетті уақытында ғана шақырылатын, жалпылама жағдайға негізделіп дербес құрылатын алгоритмдер.
Қай алгоритм болса да негізгі қасиеттерді қанағаттандыруы шарт:
Дискреттілік қасиет – орындалатын әрекеттер тізбегі бірнеше қадамдарға бөлініп үздікті құрылымды болуы керек. Және қадамдардың орындарын ауыстыруға болмайды.
Түсініктілік қасиеті – орындаушыға түсінікті және орындай алатын нұсқаулар жиынынан командалардан тұруы қажет. Орындаушыдан біртұтас әрекет жасауды талап ету керек. Алгоритм орындаушыға бағытталуы керек.
Анықтылық қасиеті – детерминделген деп те аталады, бір алгоритмді кез келген орындаушы орындай алатын болуы керек. Қай орындаушы орындаса да алынатын нәтиже біреу болуы керек. Орындаушы дербес шешім қабылдамайтындай болып құрылуы керек, яғни анық, егжей-тегжейлі ойластырылған, толық, жалғыз нәтижелі болуы керек. Бір - екі минуттай деген сияқты нұсқаулар болмау керек.
Ортақтық қасиеті – бір алгоритм барынша үлкен класқа жататын есепті шешетіндей болуы керек, тек бастапқы берілгендерді өзгерту арқылы ғана шешімді табуға болатындай. Мысалы квадрат теңдеуді шешу алгоритмін ах2+bx+c=0 жағдайына құрған дұрыс болады, ал 4x2+5x-1=0 түріне құрса онда алгоритм дербес болады, неғұрлым жалпы болуы керек.
Нәтижелілік қасиеті – алгоритмнің пункттері немесе нұсқаулары шектелген, оның шегі есептің нәтижесін беретіндей болуы керек. Алынған нәтиженің дұрыстығын анализдеу керек.
Есептеулердің құрылымына қарай алгоритмдер сызықты, тармақталған, циклдік деп үшке бөлінді.
Операциялардың реті алгоритмнің өз структурасымен анықталған және енгізетін шамалардың жеке мәндеріне тәуелсіз алгоритмдерді сызықты алгоритмдер дейді. Олардың нұсқаулары бірінен кейін бірі тізбектеліп орындалады.
Енгізетін шамалардың жеке мәндеріне тәуелді, бірнеше әрекеттердің біреуінің орындалуын тағайындауды тармақты алгоритм дейді.
Енгізетін шамалардың жеке мәндеріне тәуелді бір немесе бірнеше әрекеттердің қайталануын тағайындауды циклдік алгоритм дейді. Циклдік алгоритмдер үш түрге бөлінеді:
шарты алдынан берілген – «әзірше» циклі,
шарты соңынан берілген цикл – «дейін» циклі,
параметрлі цикл.
Белгілі бір логикалық шарт тексеріліп, ол ақиқат мән қабылдаған жағдайда бір немесе бірнеше нұсқаулар тобының қайталануы «әзірше» циклі деп аталады.
Белгілі бір нұсқау орындалып болған соң логикалық шарт тексеріліп, ол жалған мән қабылдаса сол нұсқаудың қайталануы «дейін» циклі деп аталады.
Белгілі бір нұсқаудың немесе нұсқаулар тобының неше рет қайталануы керек екені алдын ала анық болса, оны параметрлі цикл дейді.
Алгоритмнің берілу тәсілдері:
формула бойынша
таблицалық түрде
блок-схема көмегімен
Алгоритм құру мәселесі алгоритм жазуға қандай тілді пайдаланатынымызға байланысты болады. Тіл – кейбір мағлұматтарды өрнектеу және жеткізу құралы. Осы мағынасына қарай
қатынас тілі
математика тілі
автоматтар тілі деп бөлінеді.
Алгоритмді жазу үшін пайдаланылатын тілдің сипаты орындаушының мүмкіндіктеріне байланысты.
Орындаушылардың мүмкіндігі тіл құралдарының деңгейін анықтайды.
Тілдің деңгейі алгоритмдік жазу командаларының тәптіштеліп нақтылану дәрәжесіне тәуелді. Яғни орындаушы үшін элементар деп есептелетін амалдың шын мәніндегі элементарлық дәрежесі ашып көрсетілуі тиіс.
Тілдің деңгейі тілдің формальдандырылу дәрежесіне де байланысты. Ол орындаушының кім болуынан тәуелді. Егер орындаушы адам болса, оған белгілі бір алгоритмдерді түсінікті сөз , сөз тіркестері арқылы түсіндіруге болады, ал рындаушы автомат болса, онда бірқатар міндетті талаптар қойылады.
командаларды тұжырымдау барысында машинадан осы машина үшін қатаң анықталған операцияларды орындауды ғана талап ету.
Берілген машинаның тілі үшін қабылданған нұсқаулар құру ережелерін ғана пайдалануға болады.
Ережелерде көрсетілген нәрселерді ешбір қолдануға болмайды, себебі машина ондай нұсқауларды орындамайды.
Тілді формальдандыру адам тілінің көркемдік мүмкіндіктерін азайтады.
Тілдің деңгейі адам үшін түсініктілік дәрежесіне де тәуелді. Алғашқы ЭЕТ- мен қатынас цифрлар тілі деңгейінде болды. ЭЕТ жаппай таралғандықтан адам мен машинаның қатынасуын қамсыздандыратын тілдің жаңа деңгейлері пайда болды. Қазір тілді «табиғиландыру» проблемасы алға қойылып отыр. Бұл проблема машинаның өзін жетілдірумен қатар жүріп келеді. Ғылыми , инженерлік тілдер табиғи тіл мен математика тілін жымдастырады. Олар: Алгол, Фортран, Бейсик, паскаль, т.б.
Кәдімгі, табиғи тілге жақын, бірақ нағыз алгоритмдік тілдердің неізгі қасиеттері бар тілді оқу алгоритмдік тілі деп атайды. Кейде жай алгоритмдік тіл дейді. Олар кәдімгі текст түрінде жазылады, бірақ программалау тілдерін үйретеді.
Алгоритмдік тіл жай командалардың жазылу ережесін, құрама команданың, алгоритм құрамын, мағынасын дәл және бір мәнді анықтау керек.
Алгоритмтік тіл – алгоритмдерді біркелкі және дәл біркелкі жазудың және оларды орындаудың ережелер мен белгілер жүйесі.
Кәдімгі табиғи тілге жақын, екінші жағынан нағыз алгоритмдік тілдердің негізгі қасиеттері бар тілдің анықтамасын берейік. Бұл тілді оқу алгоритмдік тілі деп аталады. Бұл тілде жазылған алгоритмдер кәдімгі текст сияқты оқылады және Алгол, Фортран, Бейсик т.б. программалау тілдерін үйренуге негіз болады.
Алгоритмдік тіл – ұғымдары:
алфавитті – тілде қолдануға болатын символдардың, белгілердің жиынтығы.
Тіл конструкциясы – айнымалы, өрнек, командалардың жазылу және алгоритмдік жазудың жалпы құрылымының ережелері. Оны синтаксис деп атайды.
Семантикасы - әр түрлі командалардың қызметі мен орындалу жолы.
Алфавитте символдар, тілдің көмекші сөздері (басы, егер, онда, әйтпесе, соңы т.б.) бар. Олардың асты сызылуы керек.
Тілдің негізгі объектілері – командалар. Олар нұсқауларды жазу үшін қолданылады. Олар екі түрлі:
Жай командалар
Құрама командалар
Жай командалар нақтылы орындалатын элементар әрекеттердің шектеулі сипаттамасы. Оған меншіктеу, көшу, бос командалар жатады.
Құрама командаларға тарамқталу, қайталану командалары жатады.
Алгоритмдік тілде алгоритмнің сипатталауы
Басы
Жай команда 1;
Жай команда 2;
Егер шарт
Онда 1 – серия
Әйтпесе 2 – серия
Әзір шарт
Ц.б.
Құрама команда
Ц.с.
Бітті . соңы
Достарыңызбен бөлісу: |