Лекция 12-14. Алгоритм ымы. Оны асиеттері, трлері. Тілдер жне программалау дістері
Дрісті масаты: алгоритмні, программаны жне программалауды негізгі ымдарымен таныстыру. Программа ру принципін, алгоритмні базалы рылымын мегерту.
Жоспар:
1. Алгоритм ымы.
2. Алгоритмні асиеттері жне оларды сипаттауды дістері.
3. Алгоритмні трлері.
4. ЭЕМ-де есеп шыару кезедері
5. Программалау тілдері жне дістері
6. Программалау тілдеріні даму тарихы
7. Программалау тілдеріні жіктемесі
Кілттік сздер:алгоритм, асиеттер, классификациясы, программалау.
Иллюстрациялы материал: Электронды оулы, слайд, схема.
"Алгоритм" сзі IX асырдаы Орта Азияны лы математигі л-Хорезми атыны латынша жазылу – аlgorithmi – алпынан шыан.
Орындаушыны белгіленген масата жетуіне баытталан тсінікті де дл нсаулары алгоритм деп аталады. Алгоритмні басаша таы да бір анытамасы:
Алгоритм дегеніміз - аныталан масата жету шін орындаушыа арналан, орындалу тртібі йымдастырылан, тсінікті, ышамды, шектелген нсаулар тізбегі. Алгоритм мынадай асиеттерге ие: дискреттілік, анытылы, жалпылы, нтижелік.
Алгоритм айын, аяталан рекеттер болып табылатын жеке адамдара блінуі керек. Орындаушыны келесі адама етуі алдыысын аятааннан кейін ана ммкін. Алгортимні жеке кадамдардан рыла алатын касиеті дискреттілігі деп аталады.
Алгоритмні рбір нсауы немесе командасы орындаушыа тсінікті болуы тиіс, яни олар бір маынада тсініліп, айталанатын алашы деректер бойынша бірыай нтижелерге келуі ажет. Алгортитмні бл асиеті аныталгандыгы деп аталады.
Алгоритмні наты бір мселені ана емес, бкіл бір типті мселелерді шеше алатын ммкіндігі бар. Мысалы, квадрат тедеуді шешетін алгоритм ін тбірін кез келген коэффициент мндерінде табуа ммкіндік береді, ал жол жру ережелері баршаа орта. Алгоритмні бл асиеті жалпылыы деп аталады.
Айын белгіленген рекеттер тізімні ркайсысы нтижеге жеткізе бермейді. Мысалы шахматта 10120 жрістен тратын тылыссыз ойын стратегиясы бар, біра оны тгел орындауа адам баласыны мыры жетпейді. Сондытан да кез келген алгоритмді орындаанда белгілі бір нтижеге ол жеткізу керек алгоритмні бл асиеті нтижелігі деп аталады.
Алгоритмдерді жасалуыны ш негізгі трі бар: сызыты, тармацталан, циклдік.
Егер орындаушы командаларды бірінен со бірін ілесу тртібімен орындайтын болса, алгоритм сызыты деп аталады.
Орындаушыны рекеттері андай да бір шартты нсаулара туелді орындалатын болса, ол алгоритм тарматалган болып саналады.
Жеке командалар немесе команда топтары бірнеше рет айталанатын болса, алгоритм циклдік деп аталады.
Блок-схемалар. Компьютерде есеп шыару кезедері.
Алгоритмні берілуіні е крнекі дісі болып блок-схемалар трінде берілуі болып табылады. Блок-схема - есептеу амалдарын крсетуге арналан графикалы бейнелер жиынтыы болып табылады. Алгоритм бл жерде баытталан байланысы бар геометриялы фигуралармен сипатталып беріледі. Геометриялы фигураларды ішіне орындалып жатан рекеттерді тсіндіретін апарат орналасан. Блоктардаы сызытар блоктар арасындаы байланыс функцияларын орындайды. Байланыс сызытарыны баыттары, егер олар жоарыдан тмен немесе солдан оа арай баытталан болса, шкір сызышамен (стрелкамен) белгіленбеуі ммкін. Блок-схема трінде сипатталан алгоритм орындалатын рекеттер крнекілігін арттырады.
|
Алгоритмдерді бадарламалау тілінде крсету - багдарлама деп аталады. Багдарламалау тілі дегеніміз - бадарлама жазуа арналан тіл. Компъютерде есеп шыгару кезедері:
1. Математикалы модель руды амтитын есепті ойылуы (есепті
математикалы ойылуы);
2. Есеп шешуді алгоритмін жазу;
3. Бадарламаны растыру;
4. Бадарламаны жндеу;
5. Компьютерде есепті шешу жне нтижені талдау.
Автоматты цифрлы есептеуіш машиналарды руа алып келген революциялы пікірлерді бірі XIX . 20-шы жылдары Чарльз Бэббидж айтан есептеуді- келешекте автоматтылыа, программаа жзеге асыру шін машина рекеттеріні ретін алдын-ала жазу туралы ойы болды. Бэббидж пайдаланан перфокарталардаы программалар жазбасынан бастап программалау тарихы басталады.
Ч. Бэббиджді замандасы Аду Лавлейс аналитикалы машинаны ндылыын баалаан жер шарындаы 1-ші программист. Ол теориялы трде программалауда пайдаланылатын есептеу тізбегіні кейбір тсілдерін басаруды деді жне азіргі заманы прогаммалау тілдері шін маызды болып табылатын конструкция – циклды сипаттап берді.
Программалау тілдеріні тарихындаы революциялы мезет - арнайы символдарды кмегімен машиналы командаларды кодтау жйесіні пайда болуы болды. Мны Пенсильван университетіні ызметкері Джон Моучли сынды. Моучли сынан кодтау жйесі оны компаниясыны ызметкерізіні барлы мірін компьютер мен программалауа арнаан Грейс Мюррей Хоппер деген ызметкерді ызытырды. Ол жер шары бойынша 1-ші лкен цифрлы компьютерлердегі 3-ші программист боландыын еске алады. Марк – 1 компьютерінде жмыс жасауда Хоппер жне оны тобы кптеген мселелермен атыысты жне олар ойлап тапандарды барлыы жаа болды. Олар ішкі программаны ойлап тапты. Сонымен бірге программалау техникасыны іргелі ымдарыны бірі баптауды алаш болып енгізді (1945). Debugging (насекомое) –баптау.
40-шы жылдарыды соында Джон Моучли жоары дегейдегі дрекі программалау тілі болып табылатын “Short Code” атаудаы жйесін рады, Онда программист шыарылатын есепті математикалы формула трінде жазып, содан кейін арнайы кестені пайдаланып, символдарды кезекпен аударып, бл формулаларды екі литерлі кодтара трлендірді. Болашата компьютерді арнайы программасы бл кодтарды екілік машиналы кода айналдырды. Дж. Моучли ран жйе дрекі интерпретаторды алашысы болды.
Тек 1951 ж. Хоппер жер шарындаы 1-ші компиляторды рды, ал 1954 ж. Хопперді жетекшілігімен программалау тілінен жне компилятордан тратын MATH-MATIC жйесі делді. Хоппер жне оны тобы олданушылара арапайым аылшын тіліне жаын болатын тілде программалау болатын жаа тіл мен компилятор деуге кіріседі. 1958 ж. FLOW-MATIC компиляторы пайда болды.
50 ж. ортасы программалау облысында прогресс болуымен сипатталады. Машиналы командалы программалау ролі азайып, жаа типтегі программалау тілдері пайда бола бастады. Бірінші жне ке тараан – Фортран болды (FORTRAN, FORmula TRANslator – формула аударушысы). 1954 ж. IBM фирмасыны программистер тобы деген.
60-шы ж. ортасында Дартмутск колледжіні математика факультетіні ызметкерлері Томас Курц пен Джон Кемени арапайым аылшын тіліні сздерінен ралан арнаулы программалау тілін рды. Жаа тілді “бастаушылара арналан универсальды символикалы код” деп атады (Beginners All-Purpose Symbolic Instruction Code немесе ысаша BASIC) (1964 ж.). PL/1 (Programm Language One, 1967), АЛГОЛ-68 (1968) .
Ресейде 50-ші жылдары Сергей Петрович Ершовты жетекшілігімен Альфа трансляторы рылан (Алголды орысша версиясы). Кейініректе академик Ершов СССР-де мектеп информатикасыны алыптасуында маызды роль атарды.
Алгоритмдерді деуді рылымдау туралы Алголды идеяларын дамыту 1970 ж. басында швейцар оымыстысы Никлаус Вирт Паскаль тілін руа алып келді. Паскаль тілі бастапы кезде оыту тілі ретінде рылан, шындыында, азіргі кезде де ол программалауа йрететін тілдеріді негізгілеріні бірі болып отыр. Турбо-Паскаль жйесін француз, джазист Филип Кан деді. .
Программалау тілдері ртрлі масатта ызмет етеді жне оларды тадау олданушыа ыайлы болуымен, берілген компьютер жне есеп шін ажеттілігімен аныталады. М, Бейсик программалар жазуда ке олданылады, Фортран математикалы жне инженерлік есептерде ЭЕМ-де шыаруда классикалы программалау тілі болып табылады. Кобол (COBOL – іскерлік есептерге баытталан жалпы тіл) тілі басару жне бизнес салаларында мліметтерді деуге арналан негізіг тіл болып ойластырылан. Біршама арнаулы тіл – ЛОГО (гректі logos-сз) оушылады программалауа оытуа арналан (математика жне педагогика профессоры Сейсмур Пейперт). Жеткілікті арнаулы йгілі тіл – Пролог –жасанды интеллект жйелерін руа арналанпрограммалау тілі ретінде рылан.
Классикалы операциональды нмесе процедуралы программалау программистен есепті шыару шін оны жеке бліктерін сипаттауды, яни алгоритмін жне оны арнайы жазбасын тжырымдауды талап етеді. Тілдерді негізгі ымдары – оператор жне мліметтер. Процедуралы тсілде операторлар топа- процедуралара бірігеді. рылымды программалау осы баытты шегінен шыпайды, ол тек программалау технологиясыны кейбір ажетті тсілдерін белгілейді.
Баса баыт процедуралы емес программалау методологиясымен байланысан. Олара объектілі-баытталан жне декларативті тілдер жатады. Объектілі-баытталан тіл тулсіз объектілерді рады.
Декларативті тілді пайдалануда программист апаратты рылыма, оларды арасындаы байланыстарды крсетеді.