АЛГОРИТМДЕУ НЕГІЗДЕРІ 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