ҚАЗАҚСТАН РЕСПУБЛИКАСЫНЫҢ БIЛIМ ЖҼНЕ ҒЫЛЫМ МИНИСТРЛIГI
СЕМЕЙ қаласының ШҼКҼРIМ атындағы МЕМЛЕКЕТТIК УНИВЕРСИТЕТI
СМЖ 3 дҽрежелі қҧжаты
ПОҼК
ПОҼК 042-11.1.20/03-
2014
ПОҼК
Оқу-ҽдістемелік материалдар
«АЛГОРИТМДЕУ ЖҼНЕ
БАҒДАРЛАМАЛАУ НЕГІЗДЕРІ»
Баспа №1 кҥні
11.09.2014 ж.
ПӘННІҢ ОҚУ-ӘДІСТЕМЕЛІК КЕШЕНІ
«АЛГОРИТМДЕУ ЖӘНЕ БАҒДАРЛАМАЛАУ НЕГІЗДЕРІ»
мамандық ҥшін 5B070400 - «Есептеу техникасы жҽне бағдарламалық
қамтамасыз ету»
ПӘНІНЕН ОҚУ-ӘДІСТЕМЕЛІК МАТЕРИАЛДАРЫ
Семей
2014
ПОҼК 042-11.1.20/03-2014
Баспа №1 кҥні 11.09.2014 ж.
121 беттің 2-сі
2
Мазмұны
1
Дҽрістер
4
2
Практикалық сабақтар
89
3
Зертханалық сабақтар
103
ПОҼК 042-11.1.20/03-2014
Баспа №1 кҥні 11.09.2014 ж.
121 беттің 3-сі
3
1 Дәрістер
1 Алгоритм және оның қасиеттері
Егер сіз берілген есепті шешу ҥшін қандай да бір программалау тілінде
программа жазғыңыз келсе, онда алдымен есепті шешудің алгоритмін
қҧруыңыз керек. Алгоритм – математикадағы ең бір іргелі ҧғымдардың бірі.
Алгоритм – атқарушы орындайтын амалдардың тиянақты жоспары. Алгоритм
сҿзі ІХ ғасырда ҿмір сҥрген, адамдардың квадрат теңдеулерді жҥйелей қҧрып
оны шеше білуге ҥйреткен ҧлы математик Әл- Хорезмидің атының латынша
жазылуы algorithmi сҿзінен алынған. Осылайша алгоритм ҧғымы математикада
ертеден қолданыла бастағанымен, математикалық теорияның объектісі ретінде
кейбір проблемаларды зерттеуге байланысты ХХ ғасырдың 30-шы жылдарында
зерттеле бастады.
Алгоритм деп берілген есепті шешудегі жасалатын ҽректтерді дҽл жҽне
қарапайым етіп жазуды айтамыз. Басқаша айтқанда алға қойылған мақсатқа
жетуде немесе берілген есепті шешуде орындаушыға біртіндеп қандай ҽректтер
жасау керектігін дҽл кҿрсететін нҧсқауларды немесе іздеп отырған нҽтижені
алу мақсатында деректермен атқарылатын ҽрекеттерін орындалу реттілігін
анықтайтын жарлықты алгоритм дейміз. Алгоритм белгілі бір реттіліепен
бірінен соң бірі орындалатын бірнеше қадамдардан тҧрады. Алгоритмнің ҽрбір
қадамы бір немесе бірнеше қарапайым операцияларды қамтиды. Алгоритм
ҧғымның мҽнін аша тҥсетін оның мынадай қасиеттері бар:
1. Алгоритм дискретті информациялармен жасалатын ҽрекеттерді
тағайындайды жҽне ҿрнектейді. Алгоритмге қатысты ҽрекеттердің бҽрі
дискретті болады. Алгоритмнің жҧмысына қажетті материалдар ретінде
символдық мҽтіндер жҽне сандар пайдаланылады.
2. Алгоритм біздің қалауымызға қарай ҿзгертуге болмайтын нақты
нҧсқау, алгоритмде не істеу керектігі алдын-ала айқын беріледі. Мысалы, бір
есепті шешудің алгоритмі берілсе онда ойланбай-ақ алгоритмде қандай
нҧсқаулар берілсе, сол нҧсқауларды берілу ретімен орындасақ, есеп шығады.
Алгоритмнің осы қасиетін оның анықталғандық қасиеті дейміз. Бҧл жағдай
адам сияқты емес ойлау қабілеті жоқ қҧрылғылардың мысалы, компьютердің
кҿмегімен есептерді шешу мҥмкіндігіне кепілдік берді. Мҧндай қҧрылғылар
алгоритмнің жарлықтарын ойланбастан формальды орындайды. Сондықтан
алгоритмді есепті шығаруға қажеттінің бҽрі бір мҽнді анықталу жҽне
атқарушыға тҥсінікті ҽрі нақты болуы тиіс.
3. Бір алгоритмнің ҿзін бірнеше есептің шешімін табу ҥшін пайдалану
мҥмкіндігі, яғни бастапқы деректер мҽндерінің жиынына пайдаланылу
мҥмкіндігі бар.
Алгоритмнің мҧндай қасиетін көпшілікке бірдейлік, басқаша айтқанда,
жалпылық қасиеті деп атайды.
4. Ҽрбір алгоритм белгілі бір бастапқы деректердің болуын талап етеді
ПОҼК 042-11.1.20/03-2014
Баспа №1 кҥні 11.09.2014 ж.
121 беттің 4-сі
4
жҽне іздеген нҽтижені алуға жеткізеді. Мысалы, екі санды қосу алгоритмнде
қосылғыштар бастапқы деректерге, ал қосынды нҽтижеге жатады. Осылайша,
алгоритмдегі ҽрекеттердің белгілі бір санның орындалуынан кейін қажетті
нҽтиже алу мҥмкіндігі алгоритімнің нәтижелілігі деп аталады.
Осы айтылғандардан алгоритім бастапқы деректерді пайдаланып іздеген
нҽтижеге қол жеткізетін реттелген ҽрекеттер тізбегі деген қорытынды жасауға
болады. Мҧндай ҽректтер тізбегінің орындалуы алгоритмдік процесс, ал ҽрбір
ҽрекет оның қадамы, ҽрбір нҧсқау алгоритмнің қалыптасуы болып табылады.
Алгоритмнің ең маңызды қасиеті жоғарыда анықталғандық қасиетінде
айтылғандай оның орындалу нҽтижесінің атқарушыға тҽуелсіздігі.
Сонымен алгоритм туралы мына тҿмендегідей тҧжырымдар жасауға
болады:
алгоритмдер ҽртҥрлі есептерді шешу ҥшін пайдаланылады;
алгоритмді атқарушыдан аз білім талап етілетіндіктен есеп
шығаруды айтарлықтай оңайлатады;
ҽрбір алгоритм толық аяқталған ҽрекеттерді орындайтын атқарушыға
арналған командалардан тҧрады;
атқарушы орындайтын командалардың жиынын атқарушының
командалар жҥйесі деп атайды;
алгоритмдегі командалар атқарушының командалар жҥйесінен
алынады;
алгоритмдегі командалар тізбегінің орындалуы алгоритмдік процесс
деп аталады;
алгоритмдегі ҽрбір команда оның қадамы деп аталады;
санаулы ҽрекеттен кейін ғана алгоритмде іздеген нҽтижеге қол
жетеді;
алгоритмдегі ҽрбір ҽрекет атқарушыға тҥсінікті жҽне нақты болуы
керек;
бірнеше есептің шешімін табу ҥшін бір ғана алгоритмді пайдалануға
болады;
қҧрылған алгоритмді атқару есептің мазмҧнына ой жҥгіртіп оны
талдауды қажет етпейді, тек командаларды формальді орындай береді;
алгоритм ҽрбір атқарушыға арналып қҧрылады;
алгоритмнің командалары атқарушыға тҥсінікті жҽне орындалатын
болуы тиіс;
алгоритмді атқаруды тек адамға емес компьютерге де жҥктеуге
болатындығы есептеу процесін автоматтандыруға мҥмкіндік береді;
Алгоритмнің қҧрамы дараланып жҽне оның ҽрекеттері анықталғаннан
кейін алгоритмді жазып кҿрсету тҽсілін жҽне тілін білу керек
Алгоритмдік тілді падалану оны қҧрушының ҿзіне ғана тҥсінікті
командаларды кҿпшілік қауымның пайдалануына мҥмкіндік береді.
Алгоритмді жазудың бірнеше тҽсілдері бар.Тҿменде алгоритмді бейнелеу
ПОҼК 042-11.1.20/03-2014
Баспа №1 кҥні 11.09.2014 ж.
121 беттің 5-сі
5
ҽдістерінің логикалық қҧрылымы кҿрсетілген.
Сурет 1 Алгоритмді бейнелеу ҽдістерінің логикалық қҧрылымы
Алгоритмді бейнелеу ҽдістерінің ішінен біз блок – схема мен алгоритмдік
тілді пайдаланамыз.
1.1 Блок-схема
Блок схема компьютерге программалар жасау практикасында кеңінен
қолданылатын алгоритмдерді жазудың графикалық тҽсілі, басқаша айтқанда,
алгоритмнің логикалық қҧрылымын график тҥрінде бейнелейтін тіл десек
болады. Есепті шешу алгоритімінің блок схемасын қҧрған кезде есепті шығару
процесі кезеңдерге бҿлінеді. Ҽрбір кезең есептелетін операцияның сипатына
байланысты белгілі конфигурациясы бар бір геометриялық фигурамен
(блокпен)
белгіленеді.
Мысалы,
жҧмыр
(сопақ),
параллелограмм,
тіктҿртбҧрыш, ромб т.с.с.
Блок деп аталатын мҧндай фигуралардың ішіне кезеңдердің мазмҧны
жазылады. Есептелу процесінің бағыты блоктарды қосатын стрелкалармен
кҿрсетіледі. Осы аталғандардың бҽрі блок – схема тілінің алфавитін қҧрайды
жҽне олардың мағынасы алдын ала келісілген келісім бойынша беріледі.
Алгоритмді бейнелеу ҽдісі.
Графикалық ҽдіс
Блок - схема
Ағаш тҽріздес бейнелеу
Жасанды тіл
Табиғи тіл - Адам тілі
ПОҼК 042-11.1.20/03-2014
Баспа №1 кҥні 11.09.2014 ж.
121 беттің 6-сі
6
Тҿмендегі 1-кестеде стандартты блок – схема тілінің алфавиті берілген.
Ҽрбір блок схеманың басы жҽне соңы деп аталатын блоктары болады.
Басы, соңы блоктарынан басқа ҽрбір блоктың бір ену жҽне бір – екі шығу
сызықтары болады.
Атқаратын қызметі жағынан блоктар негізгі жҽне қосымша болып
бҿлінеді. Негізгі блоктар енгізіу мен баспаға шығару жҽне информацияларды
ҿңдеу ҽрекеттерін білдіреді, ал қосымша блоктар блок – схеманы тҥсіндіру
жҽне байланыстарды таңбалау ҥшін пайдаланылады.
Блоктардың анықтайтын ҽрекеттері, яғни тҥсініктер блокты бейнелейтін
геометриялық фигураның ішіне жазылады.
Деректерді енгізу блогы есептеу есептерін шешуде айнымалылардың
сандық мҽндерін компьютердің жадына енгізу ҥшін қолданылады.
Деректерді ҿңдеу блогы қандай да бір формула бойынша айнымалының
мҽнін есептеу процесін білдіреді. Мҧнда есептелген шамалар оларға сҽйкес
айнымалылар жаңа мҽндер қабылдағанша сақталады.
Бҧл блокта формуланың сол жағында тҧрған айнымалылар оның жағына
да қатыса алады, бҧл дегеніміз айнымалының жаңа мҽнін бҧрын есептелген ескі
мҽнінен шығарып алудың қажеттігін кҿрсетеді.
Шартты тексеру блогы есептелу процесінің барысы тікелей кейбір шартқа
тҽуелді болатын есептелу процесінде анықталатын тармақталу алгоритмін
бейнелейді.
Аталуы Бейнеленуі Мазмұны
Жҧмыр (Сопақ) Алгоритмнің басы
Деректерді енгізу немесе
Параллеограм шығару
Тіктҿртбҧрыш Меншіктеу амалы немесе
кез келген ҽрекет.
Жоғары жағы Массивті хабарлаушы
жиектелген процедура.
тіктҿртбҧрыш
Екі шеті Бағыныңқы программа
жиектелген
тіктҿртбҧрыш
Магниттік диск Ақпаратты
енгізу жҽне одан оқу
Басы
Енгізу н\е
шығару
Деректерді
ҿңдеу
ПОҼК 042-11.1.20/03-2014
Баспа №1 кҥні 11.09.2014 ж.
121 беттің 7-сі
7
Ия Жоқ
Шартты тармақталу
Ромб
Жҧмыр Алгоритмнің соңы
Тҥйін Бірнеше сызықтарды
біріктіру
Байланыссыз Сызықтардың
екі сызықтың қиылысуы
қиылысуы
Блоктарды қосатын
Сызықтар ағыны сызықтар жҽне олардың
бағыттары
Сызықтар
ағынының бағытын Сызықтардың
ҿзгерту бағыты
Тҥсініктеме -------- Ендіру немесе есептеу
блоктарын тҥсіндіру
1.2.1 Сызықтық алгоритм
Бағдарлама деп белгілі бір бағдарламалау тілінде жазылған реттелген
командалар тізбегін айтамыз. Белгілі бір алгоритмді бағдарламалау дегеніміз
осы алгоритм орындалатын бағдарлама жазу. Ендеше сызықтық қҧрылымды
алгоритмді бағдарламалап кҿрейік. Сонымен сызықтық алгоритм деп
командалары бірінен соң бірі тізбектеліп орындалатын алгоритмді айтамыз.
Сызықтық бағдарлама жазу ҥшін келесі операторларды білу қажет:
-
меншіктеу операторы : =
-
енгізу операторы;
-
шығару операторы;
Меншіктеу операторы жазылған өрнектердің мәнін есептеп оны
айнымалыға беру ҥшін қолданылады.
Жазылу ережесі <айнымалы атауы>:=<ҿрнек>;
мҧндағы <айнымалы атауы>- айнымалы идентификаторы, := меншіктеу
Шарт
ПОҼК 042-11.1.20/03-2014
Баспа №1 кҥні 11.09.2014 ж.
121 беттің 8-сі
8
басы
енгізу
меншіктеу
шығару
соңы
белгісі, яғни айнымалының мҽні орнектің есептелген сан мҽнін қабылдайды;
<ҿрнек> - арифметикалық ҿрнек немесе сан.
Сурет 2 Меншіктеуге мысалдар
А:=10; B:=45; REZ:=A*B;
Егер алгоритмнің N қадамы болса жҽне олардың барлығы басынан аяғына
дейін бірінен соң бірі тізбектеле орындалатын болса, онда ондай алгоритмді
сызықтық алгоритм деп атаймыз. Сызықтық алгоритмнің блок-схемасы
тҿмендегі суретте бейнеленген.
Алгоритмнің басы
Мҽліметтерді енгізу
Меншіктеу
Нҽтижелерді шығару
Алгоритмнің соңы
Сурет 3 Сызықтық алгоритмнің блок-схемасы
1.2.3 Тармақталушы алгоритм
Егер алгоритм қадамдарының тізбектеле орындалуы қандай да бір шартқа
тҽуелді ҿзгеретін болса, онда ондай алгоритмді тармақталушы алгоритм дейміз.
Алгоритм орындалғанда "иҽ" немесе " жоқ " деген мҽндердің бірі
қабылждай алатын логикалық ҿрнекті шарт деп атаймыз.
Кез келген шарт мынадай ҥш бҿлімнен тҧрады:
-
сол жақ бҿлігі;
-
салыстыру таңбасы;
-
оң жақ бҿлігі.
Мысалдар келтірейік: А > 0, Х < А+С, К = 6
Мына тҿменде алгоритмнің тармақталушының бҿлігінің жалпы тҥрі
ПОҼК 042-11.1.20/03-2014
Баспа №1 кҥні 11.09.2014 ж.
121 беттің 9-сі
9
келтірілген.
егер < шарт >
онда "иә" тармағы
әйтпесе " жоқ " тармағы
бітті
Мҧнда егер, онда, ҽйтпесе, бітті – қызметші сҿздер, егер
команданың басын, ал бітті команданың аяқталуын білдіреді.
1.2.4 Циклдік (қайталанушы) алгоритм
Егер берілген шамаға тҽуелді алгоритмнің белгілі бір тізбектелген
қадамдарды бірнеше рет орындалатын болса, онда ондай алгоритмді циклдік
(қайталанушы) алгоритм дейміз. Бҧл берілген шама цикл параметрі деп
аталады.
Кез келген қайталанушы алгогритмде ол аяқталу ҥшін параметр болуы
тиіс. Параметр белгілі бір мҽнге ие болған кезде цикл аяқталатын болады.
Мына тҿменде циклдің басында параметр ҥшін қойылған шартты
тесеруге арналған қайталаушы алгоритмнің алгоритмдік тілде жазылуы жҽне
блок – схемасының жалпы тҥрі берілген.
Ҽзір < шарт >
ЦБ
команадалар тізбегі
ЦС
Мҧнда ҽзір, ЦБ (циклдің басы), ЦС (циклдің соңы) – қызметші
сҿздер, ЦБ жҽне ЦС ҽзірше шарт орындалғанға дейін орындалатын
командалар тізбегін таңбалайды.
Компьютерде есеп шығару ҥшін алгоритм қҧру арнайы дағдыны талап
ететін жҧмыс. Бҧл жағдайда ҽсіресе бҿтен алгоритмдерді оқуда алгоритм
мынандай талаптарды қанағаттандыруы тиіс:
Тҥсінікті ҽрі ҿте жеңіл қабылданатын болуы;
Алгоритмнің жеңіл тексерлетін болуы;
Қҧрылымын тҥгел ҿзгерпей-ақ ҿзін модификациялауға мҥмкіндік
беруі.
Осы аталғандарға қол жеткізу ҥшін алгоритмдерді қҧруда оның
қҧрылымы жағынан келу деп аталатын ерекше тҽсілді башылыққа алу керек.
Алгоритмдерді қҧрастыруға қҧрылымы жағынан келгенде оның жоғарыда
қарастырылған ҥш базалық қҧрылымы:
Ілесу, тармақталу жҽне қайталану негізге алынады, яғни кез келген
ПОҼК 042-11.1.20/03-2014
Баспа №1 кҥні 11.09.2014 ж. 121 беттің 10-сі
10
кҥрделі алгоритм осы қҧрылымдардан қҧрастырылады.
2 Программаларды жасақтау технологиясы
2.1 Программалауға кіріспе
Компьютерде жҧмыс істеу ҥшін оған керекті програмаларды
програмалаушы адам жасайды.
Пргораммалаушы мамандығы дҥние жҥзіндегі ең бір тапшы
мамандықтардың бірі.
Бҧл мамандықты таңдаған адам ҿмір бойы ҥйренеді деп айтуға болады.
Ҿйткені жыл санап алуан тҥрлі программалау тілдері (орталары) қосылып,
ауысып келіп отырады.
Оқып шығып бірден программалаушы бола салатын ешқандай оқу
қҧралы жоқ.
Программалаушының дайындығы негізгі ҧғымдарды оқып ҥйренуден
жҽне қарапайым программалау тҽсілдерін меңгеруден басталады.
Компьютер командаларға бағынып жҧмыс істейді. Біздер бҧл
командаларды пернетақтаның кҿмегімен жазу машинкасында жазу жазғандай
теріп ендіреміз.
Бірінші команданы ендірдік, компьютер оны қалай орындайды, қарап
шықтық, екінші команданы ендірдік, нҽтижесін бағаладық, ҥшінші команданы
ендірдік... Осылайша, ендірілетін командалар кҿп ҽрі біртектес болған сайын
оларды ендіру адамның шыдамын тауысып жалықтырып жібереді. Тҿрт-бес
команданы есте сақтай отырып ендіруге, ал он команданы ендіру ҥшін қағазға
жазып алуға болады.Жҥзден астам командаларды ендіру ҥшін ҿте жоғары
шыдамдалық қажет.
Ал егер жиі қайталанатын командалар тізбегін компьютерде файл тҥрінде
қатаң немесе иілгіш магниттік дискіге жазып сақтап қойып, командаларды
біздің пернетақтадан ендіруімізді кҥтпей-ақ сол дискідегі файлдан енгізуді
компьютердің ҿзіне жҥктесек, қалай болған болар еді? Ҽрине, қолмен қайта-
қайта теріп отырғаннан гҿрі ыңғайлы болар еді. Программаларды жасау
осылайша басталады, жоғарыда айтылғандай дискіге жазылған командалардан
тҧратын файл нағыз прграмманың ҿзі болып табылады. Сонымен, прграмма
дегеніміз командалардың реттелген тізімі. Программа ҥшін оған қандай
командалардың кіретіндігі ғана емес, сонымен бірге олардың қандай ретпен
берілетіндігі де маңызды.
Программаны арнайы дайындықтан ҿткен адамдар жасайды. Оларды
программалаушылар деп атайды. Программаны қалай жасайды? – деген
сҧраққа жауап беру қиын. Программалаушыллардың шеберлігінің кҿптеген
қҧпиялары бар, бірақ олардың бҽрі мына тҿмендегідей екі нҽрсені пайдаланады:
программалау саймандары
программалар кітапханасы
ПОҼК 042-11.1.20/03-2014
Баспа №1 кҥні 11.09.2014 ж. 121 беттің 11-сі
11
2.1.1 Программалау саймандары
Программалау саймандары дегеніміз не?-деген сҧраққа жауап беру ҥшін
мынадай қарапайым ҧқсастыру мысалын, яғни ҿзіміз кҥнде кҿріп жҥрген
автомобильді алайық. Автомабиль қандай саймандардың кҿмегімен жасалған?
Ол зауытта станоктың жҽне жабдықтардың кҿмегімен жасалған. Бҧл
аталғандар автомобильді жасаушы саймандар блып табылады.
Ал станоктар мен жабдықтардың ҿздері қандай саймандардың кҿмегімен
жасалған? Олар басқа зауытта басқа станоктар мен жабдықтардың кҿмегімен
жасалған. Ал бҧл станоктар мен жабдықтар қалай жасалған?
Осылайша, сҧрақты қоя берсек ҽрбір станоктың ҿзінің алдында оны
жасаушы, алдыңғысынан қарапайым басқа станоктың бар екендігі келіп
шығады. Егер ҽрбір станоктың пайда болу тарихын қозғай берсек, онда біздер
орта ғасырдағы балға, егеу жҽне тҿсті пайдаланатын ҧстаханаға келіп тірелеміз.
Осы кҥнге дейін кейде автомобиль бҧзылып қалғанда ҽлгі аталған балға
жҽне егеуді пайдаланамыз.
Енді программа жасаудың жоғарыда келтірілген мысалға қандай қатысы
бар соған келейік.
Программалаушы пайдаланатын сайманнның ҿзі программа болып
табылады. Басқаша айтқанда, жаңа программаның ҿзін сайманның ролін
атқаратын басқа программаның кҿмегімен жасайды. Ал осы сайман
программалар
қалай
жасалған?
Жоғарыда
келтірілген
ҧқсастыру
мысалымыздағы сияқты алдыңғысына қарағанда қарапайым басқа сайман
программалардың кҿмегімен жасалған. Осылайша, басқа программалардың
кҿмегімен жасалған жаңа программалардың жасалу ретін тізе берсек, онда
біздер жоғарыда айтқанымыздай программа жасаудағы «балға мен төске»
келеміз, яғни басқа сҿзбен айтқанда программалаушылардың қолында
ешқандай программа болмайды, тек оның орнына белгілі сандық кодтарды ғана
тҥсінетін процессор болады. Мҧндай кодтарды машиналық кодтар деп атайды.
Процессордың тҥсінетін жҽне орындайтын кодтарының жиынын оның
комндалар жүйесі деп атайды.
INTEL фирмасының ҥйлесімді процессорларының командалар жҥйесінде
бірнеше жҥз тҥрлі командалар бар. Компьютердің программалары осы
командалардан жасалады.
Программалау саймандары – бҧл шын мҽнінде программалаушының ҿзіне
ыңғайлы тҥрде жазғандарын оқитын жҽне оны процессорға қажетті машиналық
кодқа аударып беретін арнайы программа.
Достарыңызбен бөлісу: |