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

Автор работы: Пользователь скрыл имя, 22 Ноября 2012 в 20:30, реферат

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

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

Файлы: 1 файл

реферат (2).doc

— 880.00 Кб (Скачать файл)

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

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

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

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

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

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

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

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

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

 

 

 

 

 

 

 

 

Тестілеу процесінің кезеңдері

 

  Тестілеу процесін үш кезеңге бөлуге болады.

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

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

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

    1. Айнымалының теріс және нолдік мәндерін өңдеуге арналмаған программаға қандай да бір кеткен қателіктің себептерінен дәл сол мәндерді өңдеуге тура келсе не болар еді?
    2. Егер массив элементтері оны хабарлауда көрсетілген саннан асып кетсе, онда массивтермен жұмыс істеп жатқан программа өзін қалай ұстар еді?
    3. Егер өңделіп жатқан сан өте кіші немесе өте үлкен болса, онда не болар еді?

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

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

 

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

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

    Әдетте синтаксистік  қателіктер трансляциялау кезінде  байқалады. Көптеген басқа да  қателіктерді программалаушының  не ойлағандығын білмегендіктен  транслятор таба алмайды.

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

    Синтаксистік  қателіктердің мысалдары:

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Транслятор  таба алмайтын қателіктер

 

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

     Осындай  қателіктердің мысалдарын келтірейік.

   Логикалық қателіктер:

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

  Циклдерде кездесетін қателіктер:

  • циклдің басын дұрыс көрсетпеу;
  • циклдің аяқталу шарттарын дұрыс көрсетпеу;
  • итерация санын дұрыс көрсетпеу;
  • шексіз цикл.

  Ендіру-шығару қателіктері; деректермен жұмыс істеудегі қателіктер:

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

  Айнымалыларды пайдалануда кететін қателіктер:

  • айнымалыларды олардың бастапқы мәндерін көрсетпей пайдалану;
  • бір айнымалыны басқа айнымалының орнына қате көрсету.

  Массивтермен жұмыс істеуде кететін қателіктер:

  • алдын ала нолге келтірілмеген массивтер;
  • дұрыс сипатталмаған массивтер;
  • индекстерінің берілу реттілігі дұрыс емес массивтер.

 Арифметикалық операцияларды орындауда кететін қателіктер:

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

 

   Осы қателіктердің  бәрін тестілеудің көмегімен  табуға болады.

 

 

Программалау  жүйесі

 

    Программалау  жүйесі компьютердің программалық  қамсыздандыруының құрамына жатады  және ол программаларды жасау және оларды жөндеу жұмыстарын автоматтандыруды қамтамасыз ететін құралдардың жиыны болып табылады. Программалау жүйесінің құрамы мына төмендегі схемада бейнеленген:

 

    Программалау  процесі үш кезеңге бөлінеді:

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

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

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

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

  • қолмен программалауды жеке жұмыстарын автоматтандыру тәсілдері;
  • бағыныңқы программалар кітапханасын құру;
  • программалаудың әр түрлі тілдерін пайдалану.

    Қолмен программалаудың жеке жұмыстарын автоматтандыру тәсілдері. Қолмен программалаудағы жұмыстарды автоматтандыруда жұмыс программаларын түзетуді негізгі назарда ұстау керек.

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

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

 

 

 

 

Программалау  тілдері

 

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

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

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

      Программалау тілі деп деректерді жазуға және оларды белгілі ережелер бойынша өңдеуге арналған адам мен компьютерді  байланыстыратын формальды тілді айтамыз.

       Програмалаудың әр түрлі тілдерін пайдалану.

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

  • машинаға тәуелді тілдер;
  • машинаға тәуелсіз тілдер;

Машинаға тәуелді тілдер өз кезегінде былай бөлінеді:

    • машина тілі;
    • машинаға бағдарланған тілдер;

 Машинаға бағдарланған тілдер кейде автокодтар деп те аталады. Машинаға бағдарланған тілдердің екі деңгейі бар:

    • символдық кодтау тілдері, басқаша айтқанда мнемокодтар;
    • макротілдер.

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