Тармақталған алгоритмдерді программалау

Тармақталған алгоритм – орындалуы керек қадам белгілі бір шарттың орындалу немесе орындалмауына байланысты жүзеге асырылатын алгоритм. Тармақталған алгоритмде «егер», «онда», «әйтпесе» түйінді сөздері қолданылады. Тармақталған алгоритмде міндетті түрде шарт қолданылады. Шарт дегеніміз – тексеру нәтижесінде «иә» (ақиқат) немесе «жоқ» (жалған) логикалық мәндерін қабылдайтын логикалық өрнек немесе пікір.

Шарт тексеру операторының жазылу құрылымдары

1. Шарт тексеру операторының қысқа жазылу түрі. if операторынан кейін шарт міндетті түрде жазылады. Шарттан кейін қос нүкте «:» қойылады. 1-командалар блогы тек шарт ақиқат «иә» болғанда орындалады. Ал 2-командалар блогы кез келген жағдайда орындалады.

2. Шарт тексеру операторының толық жазылу түрі. Шарт тексеру операторының қысқа жазылу түрі тек туындаған шарттың ақиқаттығын тексереді. Шарт жалған болған кездегі орындалуы керек қадамды көрсетпейді. Ол үшін шарт тексеру операторының if – else толық құрылымы қолданылады.

Шарт тексеру операторының толық жазылу түрін  өзімізге түсінікті, қарапайым тілде төмендегіше оқуға болады: «Егер қойылған шарт орындалса, онда 1-команда немесе командалар блогын орында, әйтпесе 2-команда немесе командалар блогын орында».

1-тапсырма

а және b бүтін сандар берілген. Егер а саны жұп болса, онда оны квадраттап, b санына қос. Ал сан тақ болса, онда санның өзін b санына қосып, нәтижені экранға шығар.

Тапсырманы орындағанда шарт тексеру операторының қысқа жазылу түрін қолдануға болады. а санының жұп немесе тақ сан екенін тексеру үшін, қалдықты анықтау «%» амалын қолданамыз. Тапсырманың программалық коды және блок-схемасы берілген.

 

Алгоритмнің трассировкасы

Кез келген программалау тілінде жазылған программаны дер кезінде реттеп, түзетуге (отладка) болады. Программалау тілінде қателерді түзететін өз құралдары бар. Программалаушылар өз тілінде программада жіберілген қателерді багтар (ағыл. bug – қате), программа кодын түзетуді дебаггер (ағыл. debugger – түзетуші) деп атайды. Python тілінде де қатені жөндеп, программаны түзететін, реттейтін өз құралдары бар.

Программалаушылар программа жазуда 3 түрлі қате жіберуі мүмкін. Олар:

  1.  Синтаксистік;
  2. Программаның орындау уақытына байланысты;
  3. Алгоритмдік қателер.

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

Трассировкалау алгоритмі кездесетін қатемен жұмыс істеу ретін білдіреді. Программаны біртіндеп, қадамдап (step-by-step) орындау процесі трассировка деп аталады.

Синтаксистік қате

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

Программаның орындалу уақытына байланысты қате

Қателердің тағы бір түрі программаның орындалу уақытының өтіп кетуімен байланысты (run-time errors). Бұл программаны іске қосу немесе тестілеу кезінде пайда болады. Мысалы, бұл қатенің туындау себебі – программа компьютерде жоқ input.txt мәтіндік файлын оқуға әрекет жасайды. Бұл файлды таппаған соң, «қате» деп көрсетеді. Программада қате болса, хабарлама беріледі де, тоқтайды.

 Алгоритмдік қателер

Тестілеу – программаның жұмыс қабілетін тексеруге арналған, арнайы дайындалған деректерді компьютерге енгізу. Егер программа тестілеу кезінде қарастырылған бір жағдайды дұрыс орындап, басқасын қате орындаса, онда бұл – есептің алгоритмін құрудан кеткен қате. Мысалы, «+» орнына «–» таңбасын немесе «*» белгісін шатастырып қою. Қатенің бұл түрі интерпретация кезінде көрінбейді және программа дұрыс іске қосылады. Бірақ нәтижедегі жауап қате болады. Ол үшін программа кодын қайта қарап, жөндеу керек. Міне, осы процесс түзету жасау кезі (отладка) деп аталады. Қарапайым мысалды қарастырайық.

Екітаңбалы сан берілген. Сол санның цифрларының қосындысы жұп немесе тақ екенін анықтайтын жоба жасайық.

СҰРЫПТАУ

Программалауда сұрыптау – бұл қандай да бір массив элементтерін кему немесе өсу ретімен ауыстыру процесі.

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

Жылдам сұрыптау (Быстрая сортировка; Quick Sort) сұрыптау әдістерінің арасындағы ең жылдам сұрыптаушы алгоритмдердің бірі саналады. Quick Sort – көмегімен сандық элементтерді өсу немесе кему ретімен, мәтіндік массив элементтерін алфавит ретімен сұрыптайды. Quick Sort-ты 1960 жылы Мәскеу мемлекеттік университетінің студенті ағылшын Чарль Хоармен әзірлеген. Хоармен бұл сұрыптауды көпіршік әдісінің жетілген түрі ретінде ұсынған болатын.

Массивтерді сұрыптау алгоритмдеріне қойылатын басты талап – жылдам сұрыптау және компьютер жадын үнемді пайдалану болып табылады.