Алгоритмдер және оның қасиеттері

Автор: Пользователь скрыл имя, 26 Февраля 2013 в 18:26, лекция

Описание работы

Егер сіз берілген есепті шешу үшін қандай да бір программалау тілінде программа жазғыңыз келсе, онда алдымен есепті шешудің алгоритмін құруыңыз керек. Алгоритм – математикадағы ең бір іргелі ұғымдардың бірі. Алгоритм сөзі ІХ ғасырда өмір сүрген, адамдардың квадрат теңдеулерді жүйелей құрып оны шеше білуге үйреткен ұлы математик Әл- Хорезмидің атының латынша жазылуы algorithmi сөзінен алынған. Осылайша алгоритм ұғымы математикада ертеден қолданыла бастағанымен, математикалық теорианың объектісі ретінде кейбір проблемаларды зерттеуге байланысты ХХ ғасырдың 30-шы жылдарында зерттеле бастады.

Работа содержит 1 файл

Алгоритм және оның қасиеттері2.doc

— 702.50 Кб (Скачать)


                                                                                


                                                                                 Алғашқы модуль




                                                                                 Компилятормен

                                                                                 немесе ассамблермен


                                                                                 орындалады




                                                      Стандартты


                                                                            бағыныңқы программа

                                                                            кітапханасы, қосымша


                                                                            объектік модульдер



 


                                                                            Құрастырушы

                                                                            программа орындайды



 

 


                                                                          Жүктелетін модуль


Модульді программалау

 

    Басқа программалармен  бірлесе отырып бірнеше рет   жұмыс істеуге есептеліп жасалған, әрі тиісті түрде  безендірілген  программа  модуль  деп аталады.

    Стандартты бағыныңқы  программаның өзі модуль болып   табылады, өйткені әрбір бағыныңқы программаны басқа  программаны пайдалануға болады. Бағыныңқы программаның  кемшілігі сонда, ол өзін шақырған программанмен ғана жұмыс  істейді, ал бағыныңқы программаны орындалуына қажетті  барлық информация сол шақырушы программа арқылы  беріледі. Бұдан басқа кейбір жағдайларда бір программаның  бірден бірнеше программамен бірге жұмыс істеу қажеттілігі  пайда болады.

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

    Қазіргі заманғы программалау  жүйелері осы модульді  программалауды  ескеріп құрылады. Программалау  жүйесінде  модульдің үш түрі  қолданылады:

  • пайдаланушы модуль;
  • жүктелуші модуль;
  • абсолютті модуль.

 

 

 

 

 

 

 

 

 

 

 

 

Пайдаланушы модулі

 

    Бұл үлгідегі модуль  адамға ыңғайлы программалау  тілінде  жасалады.

    Пайдаланушы модулі екі  бөлімнен тұрады:

  • модуль денесі;
  • паспорт.

    Модуль денесі модульдің мәнін анықтайтын оның негізгі бөлігі болып табылады, ал паспорт-бұл оны түсіндіруші бөлігі. Паспортта модульді келесі кезекте қалай пайдалану туралы  қажетті қосымша информация болады.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Жүктелуші модуль

 

    Модульдер біреше қайтара пайдалануға арналғандықтан  компьютерге арнйы ұйымдастырылған кітапханада сақталады одан қажет болуына қарай шақырылады.

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

    Екінші кезеңде жүктелетін  модульді нақтылы программамен  жұмыс істеуге икемдеу жұмысы  орындалады. Бұл кезең жүктеу  деп, ал орындалатын программа жүктеуші деп аталады. Компьютердің жадына модульді ендіру, оның жадтағыоған бөлінген орынға икемделіп орналасуын, сонымен бірге модульді берілген параметрлерге икемдеуді жүктеу деп түсінеміз.

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

    Жүктелуші модуль пайдаланушы  модуль сияқты екі  бөлімнен  тұрады:

  • модуль денесі;
  • паспорт.

    Модуль туралы қосымша информациясы бар және оны  жүктеуге пайдаланылатын паспорт жүктеушіге ыңғайлы  пішімде ұсынылады.

 

 

 

 

 

Абсолютті  модуль

 

    Бұл жүктеу нәтижесінде  алынған модуль. Ол машина  тілінде  ұсынылады, жадта өз орнында  және басқа модульдермен бірлесіп  жұмыс істеуге икемделеді. Сондықтан да абсолютті  модуль компьютерде тікелей орындауға жарамды машина тіліндегі программаның  бөлігі болып табылады.

    Модульді программалаудағы  нақты есепті  шешуге арналған  программа осы программаны құрайтын  барлық модульдерді жіктеп, оларды біріктіру жолымен алынады. Егер бұл  жағдайда кітапханада сақталуы дайын модульді пайдалануға болатын болса, онда тек жетіспендіктерін ғана қайта құруға тура  келеді. Бұдан модульдердің  бай кітапханасы программалауды жеделдетіп әрі қысқартатындығын  көреміз.

    Пайдаланушының компьютер  көмегімен белгілі бір жұмыс  атқаратын тапсырманы программалау  жүйесінде тұжырымдап беру мүмкіндігі  бар. Бұл үшін адамның жүйемен  қарым-қатынас тілі пайдаланылады.  Тапсырманың құрамында мыналар  болуы мүмкін:

трансляциялауға жататын пайдаланушы  модулінің мәтіні;

қандай модулдерді трансляциялағанан  соң кітапханаға жазу керектігі  туралы информация;

жеке модулдерден, оның ішінде дайын  модулдерден пайдаланушыны қызықтыратын программаны  жинау туралы жүйеге берілетін нұсқау;

алынған программаларды орындау туралы нұсқау.

    Қазіргі заманғы, программалау  жүйесі көп тілді болып   табылады, яғни программа жазу  үшін және оның әртүрлі модулдерін  жазу үшін ең ыңғайлы әр  түрлі программалау тілдері пайдаланылады.

    Трансляторлар пайдаланушы модулін жүктелуші тілге аударады, сондықтан да бұдан әрі жүктелуші модуль қай модуль қандай транслятордың  көмегімен алынғандығына қарамастан пайдаланыла беретін болады.

    Жүктелуші модулдер компьютердің  сыртқы жадындағы бір кітапханада сақталады. Әрбір модуль үшін кітапхана каталогында белгіленген модулдің аты, оның ұзындығы және кітапханадағы орны болады. Модулдің паспортын жеке сақтауға болады, сонда каталогта берілген модулдің паспортының ұзындығы және оның жадтағы орны туралы информация болады.

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

    Бұдан әрі модульдерді  тікелей жүктеу жұмысы атқарылып,  екінші кезең орындалады.

 

 

Программалау  тілдерінің  қолданылуы

 

    Кез келген компьютер  информацияны жадына жүктелген  программаны орындау арқылы өңдейді. 

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

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

    Операторлы тілдерде  алгоритмнің әрбір элементі қандайда  бір оператордың көмегімен жазылады. Программада әрбір оператор белгілі  бір әрекетті (операцияны) орындайды.

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

   Шын мәнінде программа мүлтіксіз орындалғанда есептің шешімін алуға мүмкіндік беретін әрекеттердің реттелген тізбегінен тұрады. Бұл әректтердің қалайша орындалатындығынның ешқандай мазмұны жоқ, яғни  компьютердің көмегімен бе, қарандаш пен қағазды пайдаланып қолмен есептеу жолымен бе немесе қандай да  бір басқа тәсілмен бе бәрібір. Әректтердің мұндай ретті тізбегі  бұрын айтып кеткеніміздей есепті шешу алгоритмі деп  аталады.

     Осы тұрғыдан қарағанда  программалау тілдері  алгоритмдерді  компьютердің көмегімен орындауға  мүмкіндік  беретін пішінде жазушы тілдер болып табылады. Алгоритмнің  орындалуын берілген әректтерді ретімен іс жүзіне асыру деп  түсіну керек.

    Сонымен программа дегеніміз-бұл  алгоритмді компьютер  түсінетін  тілде жазып көрсету деген  сөз.

    Қалай біз программалауды алгоритмдеуден бөліп қарасақ болады, алгоритмдерді жазу, сондай-ақ оны жасақтау  проблемалары программалауда қиындықтар туғызатындығы  түсінікті болады. Программалаудың осы екі кезеңін ажырата  білу керек. Программалауды алгоритмді жасақтау және оны  жүзеге асыру деп түсінген жөн.

    Алгоритмді жазуға байланысты  қиындақтарды әдетте оңай  жеңуге  болады. Қазіргі заманғы программалау  тілдерінде кез  келген проблемаларды  жеңіп шығуға болатын  әртүрлі  қуатты  операторлардың саны жеткілікті.

    Алгоритмді жазудың күрделілігі берілген тілді одан да  тереңірек оқып үйренуге немесе өте қуатты программалау  тілін игеруге итермелеуі мүмкін.

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

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

    Жинақталған білім мен  дағдыны қолдану мүмкіндігі  алгоритмді  жасау мезетінде есептің нақтылы  мазмұнының  мәні болмайтын жағдаймен  байланысты. Ғылымның, техниканың және  мәдениеттің әртүрлі салаларындағы   есептердің бәріне бір ғана  немесе оған өте жақын алгоритмнің  өзі пайдаланылуы мүмкін. Жинақталған тәжірибелер тіптен  басқа есептерді шешуде   пайдаланылған принциптерге  сүйене оырып программалар құруға мүмкіндік береді. Алгоритмдерді   қайталап пайдаланғанда кейде оларды бір  программалау тілінен басқа программалау тіліне аудару талап  етіледі. Мұндай түрлендіру программаны қайтадан жасағанға  қарағанда өте ыңғайлы және кейбір жүйелерде автоматты  түрде жасалуы мүмкін.

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

Информация о работе Алгоритмдер және оның қасиеттері