Информатиканың алгоритмдік негіздері. Бағдарламалау жүйелер

 

 

Алгоритм ұғымы. Алгоритмнің қасиеттері және оларды сипаттаудың әдістері. Алгоритмнің түрлері. Алгоритмдік құрылымдар. Бағдарламалау жүйелер, топтамасы

Бағдарлама – магнитт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. Информатикада өңдеу ережесiн алгоритм дейдi. «Алгоритам» сөзi IX ғасырдағы Орта Азияның ұлы ғалымы Әл-Хорезм есiмiнiң латынша жазылуынан «algorithm» шыққан.

Алгоритм ұғымы адам т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.

  1. Дискреттiлiк – нұсқаулардың тiзбек құратынын, әрбiр тiзбек келесiге көшкенде орындалып болуын және олардың орындалуы жеке қадам жасауды талап ететiнiн көрсетедi.
  2. Анықталғандық – алгоритмнiң әрбiр қадамы нақты бiр адамы анықтауы керек екенiн және келесi қадамда не орындалатындығы айқын болуын талап етедi.
  3. Нәтижелiк – алгоритмнiң орындалуы нақты нәтиже беретiндiгiн бiлдiредi.
  4. Жалпыламалық – алгоритмн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. Сызықтық түрдег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 бар:

  1. «әзiрге» қайталау;
  2. «дейiн» қайталау.

Қайталау саны алдын-ала белгiлi болса, оны «параметрлiк» қайталау дейдi.

  1. «Әзiрге» қайталау.

Егер басқару құрылымы белгiлi А шартын қанағаттандырса, онда қайталау денесi В әрекетiн орындауды қайталай беру керек, болмаса еш әрекет орындалмауы керек. «Әзiрге» қайталау басқару құрылымының блок-сұлбасы:

 
   

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ЕСКЕРТУ: 1. Егер орындауды бастағанда А шарты қанағаттандырылмаса, онда В мүмкiн орындалмайды.2. Егер орындауды бастағанда А шарты қанағаттандырылса және В әрекетiнiң орындалуы А шартының мәнiне әсер етпесе, онда В әрекетi шексiз рет орындала бередi.

 

  1. «Дейiн» қайталау.

Басқару құрылымы қайталау денесi В әрекетiн орындауды белгiлi А шарты қанағаттандырылғанға дейiн қайталай беру керек, ал А шарты қанағаттандырылса, қайталауды тоқтату керек. «Дейiн» қайталау басқару құрылымының блок-сұлбасы:

 

 

 

 

 

 

                                

    Жоқ                   иә

 
   

 

 

 

 

 

 

ЕСКЕРТУ: 1.Егер алғаш орындалған В әрекетiнiң орындалуы А шартының мәнiне әсер

етпесе және А шарты қанағаттандырылса, онда В әрекетi бiр рет қана орындалады.

  1. Егер алғаш орындағанда В әрекетiнiң орындалуы А шартының мәнiне әсер етпесе және

 А шарты қанағаттандырылмаса, онда қайталау шексiз орындала бередi.

Алгоритмді жасау барысында оны 3 тәсілмен сипаттауға болады:

  • Табиғи тілде
  • Блок схема түрінде
  • Арнаулы тілде
  • Қарапайым тілде әрбір адамға түсінікті етіп жазу табиғи тілде жазу деп аталады.
  • Блок схема деп әр түрлі фигуралар арқылы бағдарламада орындалатын әрекеттер мен олардың орындалу ретін көрсететін графиктік схеманы айтады.
  • Арнаулы тілде жазу деп ЭЕМ түсінетін тілде жазуды айтады.

Герон формуласы бойынша үшбұрыштың ауданын табу. Үшбұрыштың 3 қабырғасы белгілі (3 қабырғаны есепті шешуші пернетақтадан енгізу қажет). Ауданын табу үшін бірінші үшбұрыштың мына формула бойынша периметрін табамыз:  

Периметрін тапқаннан кейін, ауданын есептейміз. Ол төмендегідей формуламен жүреді:

.Осы есепті табиғи тілде және блок схема түрінде сызу қажет

Табиғи тілде жазылуы:

1) алгоритмнің басы

2) a,b,c мәндерін енгізу

3) периметрдің формуласы бойынша Р табу керек

4) ауданның формуласы бойынша S табу керек

5) ауданның мәнін баспаға шығару керек (периметрдің мәнін де баспаға шығаруға болады)

6) алгоритмнің соңы

 

Программалау алгоритмдерді тікелей машина командалары түрінде (программалаушылар оны кодта жазу деп атайды) жазудан басталған. Кейінірек кодтауды жеңілдету үшін Ассемблер тілі құрастырылды, ол машинаның командаларын символдық түрде жазу мүмкіндігін берді. Мысалы, программалаушыға қосу амалының сандық кодын есте сақтаудың қажеттілігі жоқ, оның орнына  ADD символдық белгілеуін қолдануға болады. Ассемблер тілі нақтылы компьютердің командалар жүйесіне тәуелді.  Ол өте шапшаң жылдамдықпен орындалуды қажет ететін кішігірім есептерді программалауға қолайлы. Ал аса үлкен проектілерді Ассемблер тілінде жазу қиын. Ең негізгі проблема мынада: Ассемблерде жазылған программа нақтылы компьютердің архитектурасына тәуелді, сондықтан басқа машиналарға жарамайды (тікелей сол күйінде көшірілмейді).  Компьютерді жетілдіретін болсақ,  Ассемблерде жазылған барлық программаларды қайта жазуға тура келеді. 

Компьютерлер пайда болысымен, жоғары деңгейлі тілдер де құрастырылды, яғни нақтылы архитектураға тәуелсіз тілдер. Жоғарғы деңгейлі тілде жазылған программаны машина орындау үшін, оны алдымен машина түсіне алатын тіл түріне, яғни машиналық кодқа немесе машиналық тілге ауыстыру (аудару) қажет. Аударылған программаны компьютер тікелей орындайды. Осындай арнайы аудармашы-программаларды трансляторлар деп атайды.  Трансляторлар  өз кезегінде интерпретатор және компилятор деп аталатын түрлерге бөлінедіОлардың орындалулары екі түрлі тәсілмен жүзеге асырылады. Біріншісі бойынша, программаның мәтіні жеке-жеке оператор бойынша аударылады да, тікелей орындауға жіберіледі. Оны интерпретация деп атайды. Екіншісі бойынша балама тілде программаның басқа түрін алуға болады, мысалы, машиналық код түрінде мұндай программаны орындауға болады. Бұл процесс компиляция деп аталады. Яғни, трансляторларды шет-ел тілінің аудармашыларымен салыстырсақ, онда интерпретаторды синхрондық аудармашыға ұқсатуға, ал компиляторды – кітап аудармашыларымен салыстыруға болады.

Кең тараған компиляцияланатын тілдер — ол Си, C++, Фортран, Паскаль. Интерпретацияланатын және шапшаң компиляцияланатын — негізінен Java, Visual Basic және C#  сияқты объекті-бағдарланған тілдер. Алгоритмдік тілдердің даму тарихындағы тағы да бір елеулі кезең 1960 жылы Алгол-60 (ALGOrithmic Language – алгоритмдік тіл мағынасын береді) тілінің пайда болғаны.  Алгол-60 тілінің пайда болуы құрылымдық тәсілмен программалаудың дамуымен тығыз байланысты. Бұл тәсілде тілдің бір құрылымы (конструкциясы) екіншісінің ішінде бола алады. Тілдің негізгі бірлігі – оператор – қарапайым және құрама, яғни begin және end қызметші сөздері арқылы бір блокқа алынған бірнеше операторлар, бола алады. Блоктың ішінде блоктан тыс қатынауға болмайтын жергілікті айнымалыларды, тіпті ішкі программаларды немесе функцияларды сипаттауға болады.

Алгол-60 тілі  әрі қарай жетілдірілді, мысалы оның жалғасы Паскаль және онымен байланысты тілдер тізбегі: Modula-2, Oberon және Delphi. Паскаль тілі Алгола-60 тілінің түзетілген түрі ретінде пайда болды. Қазіргі таңда Паскаль программалауға үйрету үшін қолданылады.

Ең сәтті шыққан программалау тілі —  Си және онымен байланысты объекті-бағдарланған тілдер тізбегі: C++, Java, C#. Алгола-60 тілінен ерекшелігі — Си тілі теоретиктермен емес, нақты программалаушылармен жасалды. Тіл  XX ғасырдың 60- жылдарының соңында пайда болды. Ол бірінші болып операциялық жүйелер құруда Ассемблер тілін пайдаланбау мүмкіндігін берді. . Мысалы, Unix операциялық жүйесінің мәтіні түгелдей Си тілінде жазылған, яғни нақтылы компьютерге тәуелсіз. Оның ең негізгі құндылығы – қарапайымдылығында және псевдоғылыми шешімдердің жоқтығында (программаның блоктарының бірінің ішінде бірінің орналасуы сияқты): Си тілінде функцияның ішінде басқа функция бола алмайды, ал айнымалылар айқын түрде жергілікті және жалпы (глобальды) болып анықталады. 

Алгоритмдік тілдердің көпшілігі процедуралық тілдерге жатады, ондағы негізгі бірлік – оператор.  Оператор – қайсыбір әрекетті орындауға берілген команда (нұсқау). Тіл, сонымен, бұйрық райда берілген сөйлемшелерден тұрады. Негізгі оператор-ол жадының бөліктеріндегі мәндерді өзгертуге арналған меншіктеу операторы. Сонымен, программалаушы үшін программа және жады түсініктері негіз және біріншісі екіншінің мазмұнын өзгертеді. Тьюринг машинасы деп аталатын алгоритмдік жүйе процедуралық программалаудың теориялық моделі болып  саналады. Объектілерді немесе объектілердің типтерін және олардың өзара байланысын сипаттау операторлардың альтернативасы болады. Сипаттау қаншалықты толық берілсе, соғұрлым тіл жетілдірілген болып саналады. Негізінен сипаттамалардан тұратын алгоритмдік тілдер бар (функционалдық тілдер), дегенмен, бұл курста тек қана процедуралық тілдермен шектелеміз.

Процедуралық тілдерге жататындар:Аda, Basic, Pascal

Объекті-бағытталған программалау тілі 

Программа құру процесін жылдамдату, көрнектілігін жетілдіру және кең тараған оаперациялық жүйелермен үйлесімділігін қамтамасыз ету жолында процедуралық тілдердің мүмкіндіктерін кеңейте отырып, программалау саласында жаңа бағыттағы технология – объекті бағытталған программалау қалыптасты.

Оған жататындар: Visual Basic, Delphi, C++Builder. ОБП-ның мағынасы мынада. Программаның құрамындағы көптеген элементтер (мысалы, терезелер, менюлер, батырмалар және т.б.) программаға тұтастай қойылатын және программалаушының басқаруына ыңғайланған белгілі бір объектілер ретінде қарастырылады. Объект—өрістер (деректер) және әдістерден (объектімен орындалатын әрекеттер) біріктірілген. Мысалы, объект-адам аты, фамилиясы деген өрістерден және тамақтану, ұйықтау деген әдістерден тұра алады. Сәйкесінше, программада Адам.Аты:=»Ардақ» және Адам.Тамақтану(тамақ) операторларын қолдануға болады.

 

 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *