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

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

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

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

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

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

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

    Аудару ағылшынша трансляция ( translation ) деп аталады, сондықтан программаларды машина кодына аудару жұмысын орындаушы программаларды трансляторлар деп атайды.

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Есепті компьютерде  шығаруға даярлау технологиясы

 

Есепті компьютерде  шығарудың 

негізгі кезеңдері 

  Есепті компьютерде шығару  біраз бөлігі компьютерсіз жүзеге  асырылатын мынадай негізгі кезеңдерден  тұрады:

  1. Есептің қойылуы:
  • есеп туралыақпараттарды жинау;
  • есептің шартын тұжырымдау;
  • есепті шығарудың ақтық мақсатын анықтау;
  • деректерді сипаттау ( олардың түрін, шамалардың ауқымын, құрлымын т.с.с. )
  1. Есепті, моделдерді талдау және зерттеу:
  • есептің бар ұқсастарын талдау;
  • техникалық және программалық құралдарды талдау;
  • математикалық модельді жасақтау;
  • деректер құрлымын жасақтау.
  1. Алгаритмді жасақтау:
  • алгоритмді жобалау тәсілдерін таңдау;
  • алгоритмді жазу пішінін ( блок-схема, мектептік алгоритмдік тіл . т.б. ) таңдау;
  • тестерді және тестілеу тәсілдерін таңдау;
  • алгоритмді жобалау.
  1. Программалау:
  • программалау тілін таңдау;
  • деректерді ұйымдастыру тәсілдерін айқындау;
  • алгоритмді таңдалынып алынған программалау тілінде жазу.

5.  Тестілеу  және жөндеу:

  • синтаксистік жөндеу;
  • семантикалық және логикалық құрлымын жөндеу;
  • тестілік есептеулер және тестілеу нәтижелерін талдау;
  • программаны жетілдіру.

6.  Есептің  шешілу нәтижесін талдпу:

Қажет болатын болса 2-5 кезеңдерді қайтадан орындай отырып математикалық  модельді айқындай түсу.

  1. Программаны даярлау:
  • нақтылы есепті шығару үшін программаны жетілдіру;
  • есепті шешуге, математикалық модельге, алгоритмге, программаға, тестер жиынына, программаны пайдалану үшін құжаттар жасау.

 

Математикалық модельдер

 

  Зерттелетін объект немесе процесс олардың сандық параметрлерін байланыстыратын формула түрінде берілетін жағдайлар жиі кездеседі. Бұған мына төмендегі формулаларды жатқызуға болады:

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

Математикалық модель деп- объектіні немесе процесті олардың сандық параметрлерімен байланыстыратын математикалық формуламен ипаттауды айтамыз.

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

     Математикалық модельді  жасақтау көптеген есептерді  компьютерде шығаруда маңызды  рөл атқарады.

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

     Математикалық модельдің  мысалы ретінде дененің түзу  сызықты орын алмастыру формуласын  алуға болады:

 

    Vxt+

 мұнда, х- ағымдағы координата, х0- бастапқы координата, vx- бастапқы жылдамдықтың  х осіне проекциясы, aх- үдеудің х осіне проекциясы, t- уақыт.

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

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

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

     Сонымен, есепті шешу  үшін метематикалық моделін жасақтауда  модель құра отырып, мыналарды ескеруіміз керек:

    • метематикалық модель құруда негізге алынатын болжамды бөліп көрсету;
    • алғашқы деректер және нәтижелер деп неніесептеу керектігін анықтау;
    • нәтижелерді алғашқы деректермен байланыстыратын метематикалық қатысты жазу.

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

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

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

  

 

 

 

 

Өмірде күрделі есептерді шығаруда үлкен ұжымдар жұмыс істейді.

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

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Программаны жасақтаудың  негізгі кезеңдері

    Программаны жасақтаудың процесін мынадай формуламен өрнектеуге болады:

Программаны жасақтау→даярлау+тексеру және жөндеу.

   Жаңадан ғана жасалған программа қателіктің болуы-бұл қалыпты және заңды құбылыс. Іс-жүзінде нақты және жеткілікті дәрежеде күрделі програманы қателіксіз құру мүмкін емес.

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

     Программа мәтінін  «қолмен» қарап шығу, тексеру  және айналдыру арқылы тексеруге болады.

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

      Программаны тексеру. Программалаушы программаны тексергенде оның мәтіні бойынша программа анықтайтын есептелу процесін ойша қалпына келтіруге тырысады, осыдан кейін оны талап етілетін процеспен салыстырады.

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

       Программаны айналдыру. Айналдырудың мәні программаның компьютерде орындалуын программалаушының ойша орындауы болып табылады.

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

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

   Алғашқы деректерді программаны  айналдыру кезінде программа-ның  зерттелетін көптеген тармақтары  қамтылатындай етіп таңдап алу  керек.

Программаны жөндеу және тестілеу

 

   Программаны жөндеу (debugging- жөндеу ағылшын сөзі сөзбе- сөз аударғанда қоңыздарды аулау деген мағына береді.) дегеніміз программаны компьютерден өткізудің нәтижесі бойынша ондағы қателіктерді іздну және жою процесі.

     Тестілеу (test ағылшын сөзі сынау деген мағына береді) дегеніміз программаның немесе оның жеке бөліктерінің дұрыс жұмыс істейтіндігін сынау, тексеру.

    Жөндеу және тестілеу  бұлар бірінен бірі айқын ажыратылған  және біріне- бірі ұқсамайтын  екі кезең:

  • жөндеу кезінде синтаксистік қателіктердің және кодтаудың айқын қателіктерін төңіректеу және жою орындалады.
  • тестілеу процесі кезінде айқын қателіктері жоқ программаның жұмыс істеу қабілеттілігі тексеріледі.

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

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

    Жөндеу программасы әдетте  мына төмендегідей мүмкіндіктер  береді:

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

   Программаны жөндеуде мыналарды  есте сақтау маңызды;

  • жөндеу процесінің басында қарапайым тестілік деректерді пайдалану;
  • пайда болатын қиындықтарды айқын ажыратып және қатаң түрде кезегімен жою;
  • қателіктің есебі компьютерде деп есептемеу керек.

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

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

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

    Тестілеу тәсілін жүзеге  асыру үшін тестердің эталондық  нәтижелері алдын-ала даярланған  немесе белгілі болуы тиіс.

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

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

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

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