АЛГОРИТМДЕУ НЕГІЗДЕРІ 1. Алгоритм, программа ??ымдары.


АЛГОРИТМДЕУ НЕГІЗДЕРІ1.1 Алгоритм, программа ұғымдары Алгоритм атауы атақты араб математигі абу Жафар Мұхаммед ибн Мұса әл-Хорезми (763-850 ж. ) есімінің латынша Algorіthmі (Алгоритми) болып жазылуынан шыққан. Ол санаудың ондық жүйесінде көпорынды сандармен ариф­мети­калық амалдардың орын­далу ережесін ұсынған. Бұл ережелер қосынды мен көбейтіндіні табуға арналған амалдарды орын­дауға қажетті тізбектен құрылған.. Қазіргі кезде алго­ритм ұғымы тек математикалық есеп­терді шешу әдістерімен ғана шектелмейді. Оның мағы­насы одан әлде қайда кең. Әрбір компьютер алдын ала берілген алгоритммен, яғни жоспармен жұмыс істейді. Алгоритм – берілген есептің шығару жолын реттелген амалдар тізбегі түріне келтіру. Кез келген есепті қарапайым амалдарды тізбектей орындау арқылы шығаруға болады. Алгоритмді компьютерде орындау үшін оны программа түрінде жазып шығу керек. Программа – алгоритмді машинаға түсінікті нұсқаулар тізімі ретінде жазу. Программа машинаға түсінікті командалардан тұрады. Осы командалар тізбегі орындалу барысында есептің нәтижесі шығады. Әрбір компьютер алдын ала жазылған программамен істейді. Программа дегеніміз – белгілі бір нәтиже алу үшін орындалатын амалдардың айқындалған тізбегі. Команда бір ғана қарапайым амалды орындау үшін берілген бұйрық ретінде беріледі. Командалар: арифметикалық немесе логикалық амал; ақпаратты тасымалдау командасы; берілген сандарды салыстыру командасы; нәтижені экранға, қағазға басып шығару командасы; келесі командаларға көшу тәртібін орындау т. с. с. Күнделікті тұрмыстан алып алгоритмге бір мысал келтіре кетейік. Студент болу үшін алгоритмнің мынадай қадамдарын орындау керек. 1. Орта мектепті бітіріп, аттестат алу. 2. Керекті құжаттарды аттестаттың түпнұсқасымен бірге белгілі бір жоғары оқу орнына (университетке, институтқа) өткізу. 3. Қабылдау емтихандарын "2"-ден жоғары бағалармен тапсы­ру. 4. Конкурстан өту. Бұл көрсетілген пункттердің орнын ауыстыруға болмайды. Олар көрсетілген ретпен кезектесіп орындалуы тиіс. Сонда ғана керекті нәтижеге (студент болу) қолымыз жетеді. 1.2 Алгоритм қасиеттері Алгоритм ұғымының мәнін ашатын негізгі қасиеттерінен немесе оған қойылатын талаптардан қысқаша мағлұматтар келтірейік. Компьютерде орындалуға тиіс алгоритмдерге мынадай талаптар қойылады:1) алгоритм анық, әрі дәл өрнектелуі тиіс;2) оның модульдік (бөлікке бөліну) қасиеті, яғни алгоритмді кішкене бөліктерге бөлу мүмкіндігі болуы қажет; 3) алгоритм шектелген уақыттан соң нәтиже беруі тиіс, яғни алгоритм қадамдарының саны шексіз болмауы керек;4) бір тектес есептерге жалпы бір ғана алгоритм қолданылуы тиіс. 1.3 Алгоритмнің өрнектелу жолдары Алгоритмдерді компьютерде орындау үшін оларды алдын ала жазып алу керек, яғни ол белгілі бір заңдылықпен өрнектелуі тиіс. Жалпы алгоритмді өрнектеу түрлеріне:1) табиғи тіл арқылы жазу;2) белгілі бір түйінді сөздер – терминдер (псевдокодтар - жалған кодтар) арқылы қысқаша тізбекті түрде жазу, мұны қарапайым алгоритмдік тіл деп те айтады;3) график жолымен (блок-схема арқылы) жазу;4) программалау тілдерінде жазу жолдарын жатқызуға болады. Алгоритмдерді график жолымен жазу, онан кейін оны программалау тіліндегі программаға айналдыру істері мемлекеттік стандартпен бекітіліп ақпарат өңдеу жұмысында кеңінен қолданылып келеді. Блоктардың түрлері мен олардың қызметі b a 0,5a b R=0,25a a b 0,25a b a b a а a b a b a 0,5a Математикалық өрнектерді есептеу Алгоритмдерді бастау, аяқтау Қосалқы программаларға кiру және шығу Есеп шығару жолын таңдау Цикл (қайталау) басы Нәтижені баспаға (қағазға) шығару Мәліметтерді енгiзу, шығару Схеманы, формулалардыТүсiндiру 1.5 Алгоритмнің график түрінде өрнектелуі Алгоритмдерді өрнектеудің көп тараған түрі – оны график арқылы бейнелеу. Бұл – түсінікті, анық, көрнекті түр болып есептеледі. Тек оларды сызу көбірек еңбекті талап етеді. Графи­калық жолмен алгоритмдерді жазу үшін мемлекеттік стан­дарт белгіленген, онда кез келген амал белгілі бір геомет­риялық фигурамен өрнектеледі. Ол фигуралар немесе блоктар амалдар немесе операциялар символы деп те аталады. Алгоритмдерді және алгоритмдік тілде құрастырылған амал­дар тізбегін компьютерге түсінікті командалар мәтіні түрінде жазуға арналған жасанды тілдерді программалау тілдері дейді. Қарапайым алгоритмдік тілде жазылған әрекеттер мен амалдар құрылымы айқын болып, ол адамдарға түсінікті болса, програм­малау тілдері ағылшын тілін негізге алған, маши­на­ға түсінікті алгоритмдік тіл болып саналады. Паскаль, Си, Дель­фи,пролог тәрізді программалау тілдері кейбір ағылшын сөздерін алгоритм құруда кең пайдала­нады. Ол сөздердің саны онша көп емес, оларды түйінді (қызмет­ші) сөздер деп атайды. Ал алгоритм­дік тілде де сол түйінді сөздердің қазақшасы (орысшасы) қолда­нылады. Алгоритм алғашқыда қарапайым алгоритмдік тілде құр­ас­тырылып, сонан кейін ол программалау тілінде қайта жазы­лып, ең соңында машина тіліне түрлендіріліп барып орындалады. Алгоритмдік және программалау тілдерінде программа жазу адамға әрі жеңіл, әрі ыңғайлы. Оларды белгілі бір машинада (компьютерде) орын­дау үшін сол алгоритмдік тілді машина тіліне автоматты түрде ауда­ратын түрлендіргіш (аудармашы) програм­малар болуы керек, оларды трансляторлар деп атайды. Трансляторлар үш түрге бөлі­неді, олар: интерпретаторлар, компиляторлар және ассемб­лер­лер.Интерпретаторлар – берілген программаның әрбір жолын (ком­ан­дасын) жеке-жеке аударып отырып орындайтын трансля­торлар түрі.Компиляторлар – бірден барлық программа мәтінін толық ауда­рып машина тіліндегі бір модуль түріне келтіреді де, сонан соң сол модульді компьютер жадына қайта жазып алып, оны кейін тек біздің қалауымыз бойынша орындайды. Ассемблерлер тек автокод түрінде, яғни ассемблер тілінде жазыл­ған программаларды ғана машина тіліне аударады. Кәзіргі кезде дүние жүзіне үш жүзге жуық алгоритмдік программалау тілдері таралған. Олардың әр қайсысы белгілі бір мақсаттарда қолданылады. Мысалы, Фортран – ғылыми-техни­калық (инженерлік) есептерді шығаруда, Паскаль – өндірісте, оқу-ағарту жұмыстарында, Бейсик – алғашқы үйренушілер үшін дербес компьютерлерде диалогтік режимде жұмыс атқаруға арналған. Бұлай бөлу тек шартты түрде олардың бейімділігіне сәйкес жүргізілген, негізінде, тілдерді дұрыс пайдалана білсе , олардың әр қайсысы арқылы кез келген есептерді шығаруға қолданыла береді. Біз енді алгоритмдік тіл ережелерінен мағлұмат беріп, еліміз­де көп таралған программалау тілінің бірі Паскаль тілін қарастыратын боламыз. a,b 2 Басы 1 y:=a+b 3 y 4 Соңы 5 Басы a,b,c d = b^2 - 4ac 2 a = -b/ (2a) x X1 =(-b- b - 4ac/(2a) 2 b = 4ac-b /(2a) 2 X2 = (-b+ b - 4ac/(2a) 2 1 2 Соңы X1,x2 1 a, b 2 3 5 6 7 9 10 11 8 d  0 4 Көптеген алгоритмдерде белгілі бір әрекеттер тізбегі бінеше рет қайталанып орындалып отырады. Математикада, экономикада көпте­ген есептерді шығару кезеңінде де бір теңдеуді пайдаланып, ондағы айнымалының өзгеруіне байланысты оны бірнеше рет қайталап есептеуге тура келетін сәттер де жиі кездеседі. Осындай есептеу процесінің бөліктерінің қайталап орындалуын цикл деп атайды, ал қайталанатын бөлігі бар алгоритмдер тобы циклдік алгоритмдерге жатады. Циклдік алгорит­мдерді пайдалану оларды кейіннен программаларда цикл коман­далары түрінде қысқартып жазу мүмкіндігін береді. y=f (x) x,y соңы басы x=x0,xk,dx 2 4 6 5 3 1