ПОӘК 042-14-02-03.1.06.134/1-2012
|
№1 баспа
|
беттің -сі
|
Шәкәрiм атындағы Семей Мемлекеттiк университетi
|
3-деңгейлi АӘК құжаты
|
ОӘК
|
ПОӘК 042-14-02-03.1.06.134/1-2012
|
ПОӘК
«Алгоритмдеу және бағдарламалау» пәнінен жұмыс бағдарламасы | №1 баспа |
«Алгоритмдеу және бағдарламалау» пәнінен
ОҚУ -ӘДІСТЕМЕЛІК КЕШЕНІ
5В0070400 - Есептеу техникасы және программалық қамсыздандыру мамандығы үшiн
ОҚУ-ӘДІСТЕМЕЛІК МАТЕРИАЛДАР
Семей
2012
Мазмұны
1
|
Дәрістер
|
4
|
2
|
Практикалық сабақтар
|
89
|
3
|
Зертханалық сабақтар
|
103
|
1 Дәрістер
1 Алгоритм және оның қасиеттері
Егер сіз берілген есепті шешу үшін қандай да бір программалау тілінде программа жазғыңыз келсе, онда алдымен есепті шешудің алгоритмін құруыңыз керек. Алгоритм – математикадағы ең бір іргелі ұғымдардың бірі. Алгоритм – атқарушы орындайтын амалдардың тиянақты жоспары. Алгоритм сөзі ІХ ғасырда өмір сүрген, адамдардың квадрат теңдеулерді жүйелей құрып оны шеше білуге үйреткен ұлы математик Әл- Хорезмидің атының латынша жазылуы algorithmi сөзінен алынған. Осылайша алгоритм ұғымы математикада ертеден қолданыла бастағанымен, математикалық теорияның объектісі ретінде кейбір проблемаларды зерттеуге байланысты ХХ ғасырдың 30-шы жылдарында зерттеле бастады.
Алгоритм деп берілген есепті шешудегі жасалатын әректтерді дәл және қарапайым етіп жазуды айтамыз. Басқаша айтқанда алға қойылған мақсатқа жетуде немесе берілген есепті шешуде орындаушыға біртіндеп қандай әректтер жасау керектігін дәл көрсететін нұсқауларды немесе іздеп отырған нәтижені алу мақсатында деректермен атқарылатын әрекеттерін орындалу реттілігін анықтайтын жарлықты алгоритм дейміз. Алгоритм белгілі бір реттіліепен бірінен соң бірі орындалатын бірнеше қадамдардан тұрады. Алгоритмнің әрбір қадамы бір немесе бірнеше қарапайым операцияларды қамтиды. Алгоритм ұғымның мәнін аша түсетін оның мынадай қасиеттері бар:
1. Алгоритм дискретті информациялармен жасалатын әрекеттерді тағайындайды және өрнектейді. Алгоритмге қатысты әрекеттердің бәрі дискретті болады. Алгоритмнің жұмысына қажетті материалдар ретінде символдық мәтіндер және сандар пайдаланылады.
2. Алгоритм біздің қалауымызға қарай өзгертуге болмайтын нақты нұсқау, алгоритмде не істеу керектігі алдын-ала айқын беріледі. Мысалы, бір есепті шешудің алгоритмі берілсе онда ойланбай-ақ алгоритмде қандай нұсқаулар берілсе, сол нұсқауларды берілу ретімен орындасақ, есеп шығады. Алгоритмнің осы қасиетін оның анықталғандық қасиеті дейміз. Бұл жағдай адам сияқты емес ойлау қабілеті жоқ құрылғылардың мысалы, компьютердің көмегімен есептерді шешу мүмкіндігіне кепілдік берді. Мұндай құрылғылар алгоритмнің жарлықтарын ойланбастан формальды орындайды. Сондықтан алгоритмді есепті шығаруға қажеттінің бәрі бір мәнді анықталу және атқарушыға түсінікті әрі нақты болуы тиіс.
3. Бір алгоритмнің өзін бірнеше есептің шешімін табу үшін пайдалану мүмкіндігі, яғни бастапқы деректер мәндерінің жиынына пайдаланылу мүмкіндігі бар.
Алгоритмнің мұндай қасиетін көпшілікке бірдейлік, басқаша айтқанда, жалпылық қасиеті деп атайды.
4. Әрбір алгоритм белгілі бір бастапқы деректердің болуын талап етеді және іздеген нәтижені алуға жеткізеді. Мысалы, екі санды қосу алгоритмнде қосылғыштар бастапқы деректерге, ал қосынды нәтижеге жатады. Осылайша, алгоритмдегі әрекеттердің белгілі бір санның орындалуынан кейін қажетті нәтиже алу мүмкіндігі алгоритімнің нәтижелілігі деп аталады.
Осы айтылғандардан алгоритім бастапқы деректерді пайдаланып іздеген нәтижеге қол жеткізетін реттелген әрекеттер тізбегі деген қорытынды жасауға болады. Мұндай әректтер тізбегінің орындалуы алгоритмдік процесс, ал әрбір әрекет оның қадамы, әрбір нұсқау алгоритмнің қалыптасуы болып табылады.
Алгоритмнің ең маңызды қасиеті жоғарыда анықталғандық қасиетінде айтылғандай оның орындалу нәтижесінің атқарушыға тәуелсіздігі.
Сонымен алгоритм туралы мына төмендегідей тұжырымдар жасауға болады:
алгоритмдер әртүрлі есептерді шешу үшін пайдаланылады;
алгоритмді атқарушыдан аз білім талап етілетіндіктен есеп шығаруды айтарлықтай оңайлатады;
әрбір алгоритм толық аяқталған әрекеттерді орындайтын атқарушыға арналған командалардан тұрады;
атқарушы орындайтын командалардың жиынын атқарушының командалар жүйесі деп атайды;
алгоритмдегі командалар атқарушының командалар жүйесінен алынады;
алгоритмдегі командалар тізбегінің орындалуы алгоритмдік процесс деп аталады;
алгоритмдегі әрбір команда оның қадамы деп аталады;
санаулы әрекеттен кейін ғана алгоритмде іздеген нәтижеге қол жетеді;
алгоритмдегі әрбір әрекет атқарушыға түсінікті және нақты болуы керек;
бірнеше есептің шешімін табу үшін бір ғана алгоритмді пайдалануға болады;
құрылған алгоритмді атқару есептің мазмұнына ой жүгіртіп оны талдауды қажет етпейді, тек командаларды формальді орындай береді;
алгоритм әрбір атқарушыға арналып құрылады;
алгоритмнің командалары атқарушыға түсінікті және орындалатын болуы тиіс;
алгоритмді атқаруды тек адамға емес компьютерге де жүктеуге болатындығы есептеу процесін автоматтандыруға мүмкіндік береді;
Алгоритмнің құрамы дараланып және оның әрекеттері анықталғаннан кейін алгоритмді жазып көрсету тәсілін және тілін білу керек
Алгоритмдік тілді падалану оны құрушының өзіне ғана түсінікті командаларды көпшілік қауымның пайдалануына мүмкіндік береді.
Алгоритмді жазудың бірнеше тәсілдері бар.Төменде алгоритмді бейнелеу әдістерінің логикалық құрылымы көрсетілген.
Сурет 1 Алгоритмді бейнелеу әдістерінің логикалық құрылымы
Алгоритмді бейнелеу әдістерінің ішінен біз блок – схема мен алгоритмдік тілді пайдаланамыз.
1.1 Блок-схема
Блок схема компьютерге программалар жасау практикасында кеңінен қолданылатын алгоритмдерді жазудың графикалық тәсілі, басқаша айтқанда, алгоритмнің логикалық құрылымын график түрінде бейнелейтін тіл десек болады. Есепті шешу алгоритімінің блок схемасын құрған кезде есепті шығару процесі кезеңдерге бөлінеді. Әрбір кезең есептелетін операцияның сипатына байланысты белгілі конфигурациясы бар бір геометриялық фигурамен (блокпен) белгіленеді. Мысалы, жұмыр (сопақ), параллелограмм, тіктөртбұрыш, ромб т.с.с.
Блок деп аталатын мұндай фигуралардың ішіне кезеңдердің мазмұны жазылады. Есептелу процесінің бағыты блоктарды қосатын стрелкалармен көрсетіледі. Осы аталғандардың бәрі блок – схема тілінің алфавитін құрайды және олардың мағынасы алдын ала келісілген келісім бойынша беріледі.
Төмендегі 1-кестеде стандартты блок – схема тілінің алфавиті берілген. Әрбір блок схеманың басы және соңы деп аталатын блоктары болады.
Басы, соңы блоктарынан басқа әрбір блоктың бір ену және бір – екі шығу сызықтары болады.
Атқаратын қызметі жағынан блоктар негізгі және қосымша болып бөлінеді. Негізгі блоктар енгізіу мен баспаға шығару және информацияларды өңдеу әрекеттерін білдіреді, ал қосымша блоктар блок – схеманы түсіндіру және байланыстарды таңбалау үшін пайдаланылады.
Блоктардың анықтайтын әрекеттері, яғни түсініктер блокты бейнелейтін геометриялық фигураның ішіне жазылады.
Деректерді енгізу блогы есептеу есептерін шешуде айнымалылардың сандық мәндерін компьютердің жадына енгізу үшін қолданылады.
Деректерді өңдеу блогы қандай да бір формула бойынша айнымалының мәнін есептеу процесін білдіреді. Мұнда есептелген шамалар оларға сәйкес айнымалылар жаңа мәндер қабылдағанша сақталады.
Бұл блокта формуланың сол жағында тұрған айнымалылар оның жағына да қатыса алады, бұл дегеніміз айнымалының жаңа мәнін бұрын есептелген ескі мәнінен шығарып алудың қажеттігін көрсетеді.
Шартты тексеру блогы есептелу процесінің барысы тікелей кейбір шартқа тәуелді болатын есептелу процесінде анықталатын тармақталу алгоритмін бейнелейді.
Аталуы Бейнеленуі Мазмұны
Жұмыр (Сопақ) Алгоритмнің басы
Деректерді енгізу немесе
Параллеограм шығару
Деректерді өңдеу
Тіктөртбұрыш Меншіктеу амалы немесе
кез келген әрекет.
Жоғары жағы Массивті хабарлаушы
жиектелген процедура.
тіктөртбұрыш
Екі шеті Бағыныңқы программа
жиектелген
тіктөртбұрыш
Магниттік диск Ақпаратты
енгізу және одан оқу
Ия Жоқ
Шартты тармақталу
Ромб
Жұмыр Алгоритмнің соңы
Түйін Бірнеше сызықтарды
біріктіру
Байланыссыз Сызықтардың
екі сызықтың қиылысуы
қиылысуы
Блоктарды қосатын
Сызықтар ағыны сызықтар және олардың
бағыттары
Сызықтар
ағынының бағытын Сызықтардың
өзгерту бағыты
Түсініктеме -------- Ендіру немесе есептеу
блоктарын түсіндіру
1.2.1 Сызықтық алгоритм
Бағдарлама деп белгілі бір бағдарламалау тілінде жазылған реттелген командалар тізбегін айтамыз. Белгілі бір алгоритмді бағдарламалау дегеніміз осы алгоритм орындалатын бағдарлама жазу. Ендеше сызықтық құрылымды алгоритмді бағдарламалап көрейік. Сонымен сызықтық алгоритм деп командалары бірінен соң бірі тізбектеліп орындалатын алгоритмді айтамыз.
Сызықтық бағдарлама жазу үшін келесі операторларды білу қажет:
меншіктеу операторы : =
енгізу операторы;
шығару операторы;
Меншіктеу операторы жазылған өрнектердің мәнін есептеп оны айнымалыға беру үшін қолданылады.
Жазылу ережесі <айнымалы атауы>:=<өрнек>;
мұндағы <айнымалы атауы>- айнымалы идентификаторы, := меншіктеу белгісі, яғни айнымалының мәні орнектің есептелген сан мәнін қабылдайды; <өрнек> - арифметикалық өрнек немесе сан.
Сурет 2 Меншіктеуге мысалдар
А:=10; B:=45; REZ:=A*B;
Егер алгоритмнің N қадамы болса және олардың барлығы басынан аяғына дейін бірінен соң бірі тізбектеле орындалатын болса, онда ондай алгоритмді сызықтық алгоритм деп атаймыз. Сызықтық алгоритмнің блок-схемасы төмендегі суретте бейнеленген.
Алгоритмнің басы
Мәліметтерді енгізу
меншіктеу
Меншіктеу
Нәтижелерді шығару
Алгоритмнің соңы
Сурет 3 Сызықтық алгоритмнің блок-схемасы
1.2.3 Тармақталушы алгоритм
Егер алгоритм қадамдарының тізбектеле орындалуы қандай да бір шартқа тәуелді өзгеретін болса, онда ондай алгоритмді тармақталушы алгоритм дейміз.
Алгоритм орындалғанда "иә" немесе " жоқ " деген мәндердің бірі қабылждай алатын логикалық өрнекті шарт деп атаймыз.
Кез келген шарт мынадай үш бөлімнен тұрады:
сол жақ бөлігі;
салыстыру таңбасы;
оң жақ бөлігі.
Мысалдар келтірейік: А > 0, Х < А+С, К = 6
Мына төменде алгоритмнің тармақталушының бөлігінің жалпы түрі келтірілген.
егер < шарт >
онда "иә" тармағы
әйтпесе " жоқ " тармағы
бітті
Мұнда егер, онда, әйтпесе, бітті – қызметші сөздер, егер команданың басын, ал бітті команданың аяқталуын білдіреді.
1.2.4 Циклдік (қайталанушы) алгоритм
Егер берілген шамаға тәуелді алгоритмнің белгілі бір тізбектелген қадамдарды бірнеше рет орындалатын болса, онда ондай алгоритмді циклдік (қайталанушы) алгоритм дейміз. Бұл берілген шама цикл параметрі деп аталады.
Кез келген қайталанушы алгогритмде ол аяқталу үшін параметр болуы тиіс. Параметр белгілі бір мәнге ие болған кезде цикл аяқталатын болады.
Мына төменде циклдің басында параметр үшін қойылған шартты тесеруге арналған қайталаушы алгоритмнің алгоритмдік тілде жазылуы және блок – схемасының жалпы түрі берілген.
Әзір < шарт >
ЦБ
команадалар тізбегі
ЦС
Мұнда әзір, ЦБ (циклдің басы), ЦС (циклдің соңы) – қызметші сөздер, ЦБ және ЦС әзірше шарт орындалғанға дейін орындалатын командалар тізбегін таңбалайды.
Компьютерде есеп шығару үшін алгоритм құру арнайы дағдыны талап ететін жұмыс. Бұл жағдайда әсіресе бөтен алгоритмдерді оқуда алгоритм мынандай талаптарды қанағаттандыруы тиіс:
Түсінікті әрі өте жеңіл қабылданатын болуы;
Алгоритмнің жеңіл тексерлетін болуы;
Құрылымын түгел өзгерпей-ақ өзін модификациялауға мүмкіндік беруі.
Осы аталғандарға қол жеткізу үшін алгоритмдерді құруда оның құрылымы жағынан келу деп аталатын ерекше тәсілді башылыққа алу керек. Алгоритмдерді құрастыруға құрылымы жағынан келгенде оның жоғарыда қарастырылған үш базалық құрылымы:
Ілесу, тармақталу және қайталану негізге алынады, яғни кез келген күрделі алгоритм осы құрылымдардан құрастырылады.
2 Программаларды жасақтау технологиясы
2.1 Программалауға кіріспе
Компьютерде жұмыс істеу үшін оған керекті програмаларды програмалаушы адам жасайды.
Пргораммалаушы мамандығы дүние жүзіндегі ең бір тапшы мамандықтардың бірі.
Бұл мамандықты таңдаған адам өмір бойы үйренеді деп айтуға болады. Өйткені жыл санап алуан түрлі программалау тілдері (орталары) қосылып, ауысып келіп отырады.
Оқып шығып бірден программалаушы бола салатын ешқандай оқу құралы жоқ.
Программалаушының дайындығы негізгі ұғымдарды оқып үйренуден және қарапайым программалау тәсілдерін меңгеруден басталады.
Компьютер командаларға бағынып жұмыс істейді. Біздер бұл командаларды пернетақтаның көмегімен жазу машинкасында жазу жазғандай теріп ендіреміз.
Бірінші команданы ендірдік, компьютер оны қалай орындайды, қарап шықтық, екінші команданы ендірдік, нәтижесін бағаладық, үшінші команданы ендірдік... Осылайша, ендірілетін командалар көп әрі біртектес болған сайын оларды ендіру адамның шыдамын тауысып жалықтырып жібереді. Төрт-бес команданы есте сақтай отырып ендіруге, ал он команданы ендіру үшін қағазға жазып алуға болады.Жүзден астам командаларды ендіру үшін өте жоғары шыдамдалық қажет.
Ал егер жиі қайталанатын командалар тізбегін компьютерде файл түрінде қатаң немесе иілгіш магниттік дискіге жазып сақтап қойып, командаларды біздің пернетақтадан ендіруімізді күтпей-ақ сол дискідегі файлдан енгізуді компьютердің өзіне жүктесек, қалай болған болар еді? Әрине, қолмен қайта-қайта теріп отырғаннан гөрі ыңғайлы болар еді. Программаларды жасау осылайша басталады, жоғарыда айтылғандай дискіге жазылған командалардан тұратын файл нағыз прграмманың өзі болып табылады. Сонымен, прграмма дегеніміз командалардың реттелген тізімі. Программа үшін оған қандай командалардың кіретіндігі ғана емес, сонымен бірге олардың қандай ретпен берілетіндігі де маңызды.
Программаны арнайы дайындықтан өткен адамдар жасайды. Оларды программалаушылар деп атайды. Программаны қалай жасайды? – деген сұраққа жауап беру қиын. Программалаушыллардың шеберлігінің көптеген құпиялары бар, бірақ олардың бәрі мына төмендегідей екі нәрсені пайдаланады:
программалау саймандары
программалар кітапханасы
Достарыңызбен бөлісу: |