Алгоритмдер теориясына кіріспе

1.1. 20 — ғасырдың соңында замандас қоғамның дамуында ең маңызды болып информатизацияболып табылады.

компьютерді пайдаланбайтын сала жоқ.Бірақ, программалық жабдықтарсыз (адамның компьютерге өңдеген программалар), компьютер өзінше ешқандай жұмыс атқарамайды. Компьютер екі бөлімнен тұрады: аппараттық, программалық (сурет 1).

Программалық жабдықтар – бұл түрлі есептерді шешуге арналған күнделікті қолданатын программалардың жиыны. Программаларда үш топқа бөлуге болады: жүйелік, қолданбалы және ЭЕМ-ға жаңа программаларды құруды қамтамасыз ететін аспаптар құралдары(инструменталды).

Жүйелік программалық жабдықтар (ЖПЖ) – компьютердің жұмысын басқаратын, қолданушымен компьютер арасында байланысты қамтитын, есептеуіш техниканаң құралдарын біртұтас есептеу жүйеге біріктіретін және ЭЕМ-ның жұмысын тексеретін программалар . Жүйелік программаларға келесі программалар жатады:

операциялық жүйе;

қөптеген сервистік(қызметшы) программалар;

компьютерлердің желідегі жұмысын қамтитын программалар.

Сервистік программаларға — компьютер мен қолданушының қарам-қатынасын жеңілдететін,диагоностика жұмыстарын атқаратын, компьтердың сыртқы құралдардына қызмет ететін драйвер — программалар және қабықша – программалар жатады.Мысалы, есептеу жүйенің құрамы туралы ақпаратты,программалық және аппараттық жабдықтардың сипаттамаларынкөруге SYSINFOпрограммасы қолданады немесе файлдар мен каталогтармен жұмыс істейтін Norton Comander қабықша –программа қарастыруға болады.

Қолданбалы программалық жабдықтар (ҚПЖ) – бул нақты бір жұмыс саласында деректерді өңдеу жүйесінде есептерді шешуге арналған программалар . Мысал ретінде –бухгалтерлік есеп программаларын, ойын, оқыту программаларынкелтіруге болады.

Аспаптар құралдары(инструменталды) – бұл ЭЕМ-ға программаларды құруға немесе өзгертуге арналғанпрограмма пакеттері. Қәзіргі заманның программалау жүйелеріжаңа программаларды құруға программистке күшті және ыңғайлы құралдарды ұсынады Мысал ретінде осы курста үйренетін Турбо Паскаль тілін келтіруге болады.

Программаны түрлі тәсілдер бойынша құруға болады. Оған қойылытын негізгі талап- оның сапалы және пайдаланушыға түсінікті болуында. Әдетте бұл үшін курделі информация алдын-ала тұжырымды бірнеше бөліктерге бөлініп алынады да, олардың әрқайсысына арналған жеке-жеке программа құрылады. Осыдан соң олар көмекші программалар ретінде қарастырылып түрлі тәсіл бойынша бір программаға біріктіріледі.Компьютерде есепті шешу – бұладам мен компьютердіңбірігіп жұмыс істеу нәтижесі. Бұл процесті – бірнеше тізбектелген этаптар ретінде қарастыруға болады. Адам творчествалық жұмыстарды атқарады : есептің қойлымын анықтау, есепті алгоритмдеу және программалау,есептің нәтижелерін талдау, ал компьютер — өңделген алгоритм бойынша информацияны өңдеу этаптарын орындайды.

1.2. Компьютерде есепті шешудің негізгі этаптары

Компьютерде есепті шешу процесі- бұл адам және ЭЕМ арасындағы біріктірілген сала. Бұл процесті бірнеше тізбектелген этаптар түрінде көрсетуге болады. Адамға тиісті этаптар, шығармашылық саламен байланыстысы- қойылуы, алгоритмизациясы, есепті программа және нәтижелерді талдау, ал компьютерге тиістісі- өңделген алгоритммен сәйкес келетін ақпаратты өңдеу этаптары.

Бұл этаптарды келесі мысалдарда қарастырамыз: екі бүтін санның соммасын есептеу және видеомонитордың экранына нәтижесін шығару.

Бірінші этап – есептердің қойылымы. Бұл этапта есепті қолданатынжұмыс саласын жақсы білетін адам қатысады, ол есептің мақсатын нақты анықтауы керек, есептің мазмұнына сөздік түсінік беруі және оның шешімімен жалпы жақындық ұсынуы керек. Мысалы, екі бүтін санның соммасын есептеуүшін сандар қалай қосылатын білетін адам, есепті келесі әдіспен түсіндіре алады:екі бүтін санды енгізу, оларды бір-біріне қосу және есептің нәтижесі ретінде соммасын шығару.

Екінші этап – математикалық немесе ақпараттық моделдеу. Бұл этаптың мақсаты – есеп компьютерде шешілуі үшін, есептіңматематикалық моделін құру.Көптеген есептердің математикалық моделінде тек қана формулалар мен логикалық шарттаркелтіріледі. Бұл этап бірінші этаппен тығыз байланыста және оны бөлек қарастырмасада болады,бірақ құрылғанмодель үшін бірнеше шешу әдістері танымал болуы мүмкін және олардың ішінен ең ыңғайлысын таңда керек болады. Жоғарыда түсіндірілген есеп үшін екінші этап келесідей болады: компьютерге енгізілген сандарды А және В атауымен жадыда сақтаймыз,содан соң бұл сандардың соммсының мағынасын А + В формуласы бойынша есептейміз және нәтижесін жадыда Summa атауымен сақтаймыз.

Үшінші этапесептің алгоритмі. Математикалық түсіндіру негізінде шешу алгоритмін құрастыру керек. Алгоритм дегеніміз — қойылған есептің шешуге бағытталған әрекеттер тобын іске асыру үшін атқарушыға түсінікті әрі дәл нұсқаулар жиынтығы. Алгоритмдерді орындайтындарадамдар,роботтар,компьютерлер болуы мүмкін.

Төртінші этап— программалау. Программа — бұл орындаушы(компьютер) орындайтын әрекеттердіңжоспары.Үшінші этапта құрылған алгоритм бойынша программа алгоритмдік тілде жазылады.Өңделген программа алгоритмнің және қойылған есептіңорындалуын компьютер комегімен қамтамасыз етеді. Осы курста программаларды Паскаль тілінде құруды және компьютерде шешуді үйренеміз.

Бесінші этап – тестлеу және программаны жөндеу. Бұл қадамда ЭЕМ қөмегімен алгоритм орындалады, қателер ізделінеді және олар жойылады. Программаны жөндеу – бұл күрделі және стандартты емес процесс.Күрделі программалар бөлек фрагменттермен тексеріледі.

Жетінші этап — жөнделген программаның орындалуы және нетижені талдау. Бұл қадамда программа жұмысқа қосылып, алғашқы керекті мәндер беріліп. программа нәтижесі алынады.Шыққан нәтижелер талданып, нәтижелерге сай шешімдер, ұсыныстар, шығарулар жағдыланады.Талдау шешімі бойынша есептің құрылған жолдары қайтадан қарастырылып, есептің бірінші қадамына қайтып оралып, есеп жаңадан шешілуі мүмкін.

1.3. Тарихта бiрiншi болып процедуралық құрылымды программа пайда болды. Оған сәйкес программист өз программасында қандай процедураны қолданатынын таңдап және бұл процедураларды iске асыру үшiн қандай алгоритм керек екенiн алдын-ала бiлу қажет едi. Бұл идеяның пайда болу себебi, есептеулердiң алгоритмдiк жағынан толығымен зерттелмегендiгi. Процедураға -бейiмделген тiлдiң мысалы ретiнде Фортран тiлiн айтуға болады. Бұл тiл бiрiншi және кең қолданылатын программалау тiлдердiң бiрi.Процедуралы құрылымды идеяның қолданылуы -программалардың кеңейтiлген кiтапханаларын құруғатүрткі болды. Олардың қүрамында көптеген қарапайым процедуралар орын алады.

Есептеушi математика аумағында программалау жүйесi процедурадан ауыса бастады. Нәтижесiнде күрделi программалардың эффективтi құрылуы — берiлгендердiң дұрыс қолдануын бақылау екендiгi анықталды. Бақылау — компиляция кезеңiнде де, программаны жүргiзу кезiнде де жүзеге асырылуы тиiс. Әйтпесе,практика көрсеткендей күрделi программалық проектiлердi құрудың қиыншылықтары артады. Бұл мәселенi шешудiң нәтижесiнде Алгол-60, кейiнiрек Паскаль, Модуль-2, Си және т.б.программалау тiлдерi жетiлдi.

Симула-67 тiлiнен бастап программалауда объектi-бейiмделген (ориентирлi) деген жаңа әдiс пайда болды. Оның негiзгi идеясы берiлгендер мен бұл берiлгендердi өңдеу процедуралармен бiртұтас объект етiп байланыстыру б.т. Объектiлердiң мiнездi көрсеткiшi, берiлгендердiң инкапсуляциясы мен алгоритмдердi өңдеу. Нәтижесiнде берiлгендер де, процедуралар да көбiнесе өзiндiк мағынасын жоғалтады.

Объектi-бейiмделген программалаудың (ОБП) мүмкiншiлiктерi толығымен тек күрделi программа қүрғанда көрiнедi. Сонымен қатар, инкапсуляция объектiге ерекше «өзiндiк» программаның басқа бөлiктерiнен тәуелсiз қасиет бередi. Дұрыс құрылған объектiде керектi iс-әрекеттi жүзеге асыру үшiн қажеттi берiлгендер және оларды өңдейтiн процедуралар бар.