15.4 Академиялық тәртіп саясаты
№
Тәртіпті бағалау критерийлері
Баллдар саны
1.
Сабақтан кешігу
-2
2.
Сабақ кезінде ұялы телефонмен сөйлесу
-2
3.
Практика (семинар) сабақтарына белсене қатысу
1
4.
Басқа да критерийлер
3.
СОӨЖ тапсыр-
масын орындау
2 2 2 2 2 2
2
14
2
2
2
2
2
2
14
4.
СӨЖ тапсырма-
сын орындау
1 1 1 1 1 1
1
7
1
1
1
1
1
1
7
5.
АБ тапсырма-
сын орындау
2
3
5
2
3
5
6.
Басқалары
(
рефераттар)
1
1
2
1
1
2
Барлығы
100
100
Қорытынды нә-
тиженің бөлігі
30%
30%
23
АЛМАТЫ ЭКОНОМИКА ЖӘНЕ СТАТИСТИКА АКАДЕМИЯСЫ
«Информатика» кафедрасы
«5B070300-
Ақпараттық жүйелер» мамандығына арналған
ПРОГРАММАЛАУ ТЕХНОЛОГИЯЛАРЫ
пәнінің дәрістік кешені
АЛМАТЫ 2014
24
1-
дәріс. Алгоритмдер және оларды бейнелеу. Алгоритм қасиеттері, оларды
құрастыру және өрнектеу.
1.1 Негізгі түсініктер мен анықтамалар
Алгоритмдеу – есепті шығару алгоритмін құрастыру процесі, мұның нәтижесінде
мәліметтерді өңдеу процесінің кезеңдері айқындалады да, кезеңдер мазмұны формальды
(жасанды) түрде жазылып, солардың орындалу реттілігі анықталады.
Алгоритм – бастапқы айнымалы түрде берілген мәліметтерден қажетті нәтижеге қол
жеткізу жолында атқарылатын есептеу процесін анықтайтын дәлме-дәл нұсқаулар жиыны.
Алгоритм қасиеттері:
1.
детерминділік (анықтылық, бір мәнділік) – басқаша түсінуге жол бермей, тек қана
көрсетілген әрекеттерді айқын түрде орындауға арналған нұсқаулар дәлдігі;
2.
дискреттілік – есептеу процесін жекеленген қарапайым операцияларға бөлу қасиетінің
болуы, яғни күрделі есепті атқарылуына күдік келтіруге болмайтын шағын бөліктерге жіктеу
мүмкіндігінің болуы;
3.
нәтижелілік – белгілі бір әрекеттер саны атқарылған соң, процестің қажетті нәтижесін
алып, оны аяқтау мүмкіндігінің болуы немесе есептеу процесін ары қарай жалғастыруға
болмайтындығы жайлы мәлімет алу;
4.
жалпылық – алгоритмнің осы сияқты көптеген басқа да есептерге қолданылу
мүмкіндігінің болуы
Алгоритмдік тіл – алгоритмдерді жазуға арналған символдар мен сол символдардан
тұратын конструкцияларды құрастыру және түсіндіру ережелерінің жиыны.
Программалау тілі компьютерлерде программаларды орындау ісін атқарады.
Программа – машинаға түсінікті түрде жазылған алгоритм. Программада берілген
мәліметтердің сипаттамаларымен бірге оларды өңдейтін командалар болады. Командалар
қандай мәліметтер қандай операцияларға қатынасатынын, олар қандай реттілікпен
орындалатынын және нәтиженің қандай түрде шығарылатынын көрсетеді. Бұлар
операторлар арқылы жүзеге асырылады.
Мәліметтер – белгілі бір процесс көмегімен тасымалдап, өңдеуге болатын,
формальді түрде бейнеленген фактілер мен идеялар.
Оператор – операциялар мен мәндерді көрсететін немесе солардың элементтерінің қай
жерде орналасқанын білдіретін символдар жиыны. Мысалы:
а =
b +
с;
//
а,
b
, с
–
айнымалылар
;}
k = 2;
if (t<0) ...
Айнымалы – программа орындалуы барысында өз мәнін өзгерте алатын объект.
Айнымалы қасиеттері:
1.
айнымалы белгілі бір мәнге ие болмағанша, анықталмаған болып саналады. Оған мән
беру мынадай тәсілдермен орындалады:
•
сырттан енгізу арқылы;
•
константантаны меншіктеу арқылы;
•
бұрын анықталған айнымалының мәнін беру арқылы;
2.
кез келген сәтте айнымалының белгілі бір мәні болады немесе ол анықталмаған болып
есептеледі;
3.
айнымалыға соңғы берілген мән оның алдыңғы мәнін жойып (өшіріп) жібереді.
Айнымалыны таңдау (оқу) және оны пайдалану айнымалының мәнін өзгертпейді.
Программалау жүйесі – программалауды автоматтандыру құралдары. Олар программа-
лау тілінен, осы тілдің трансляторынан, құжаттамаларынан және де программаларды
дайындау, әрі орындау құралдарынан тұрады.
Транслятор – бір тілді екінші тілге аудару программасы. Ол интерпретатор және
компилятор сияқты екі топқа бөлінеді.
Интерпретатор – бұл командаларды аударып, оларды бірден орындауға арналған
трансляторлық программа.
25
Компилятор – бұл алгоритмдік тілдің конструкцияларын толығымен машиналық кодқа
түрлендіретін программа. Есептің нәтижесін алу түшін машиналық кодты орындау керек.
1.2 Компьютерде есеп шығару кезеңдері
Компьютерде есеп шығару күрделі процесс болып есептеледі, ол төмендегі кезеңдерден
тұрады:
1. Берілген есепті математикалық түрде өрнектеу, яғни есепті мәселе ретінде қоя білу.
2. Есепті шығарудың компьютерге ыңғайлы сандық тәсілдерін анықтау.
3. Есепті шығару жолын алгоритм түрінде бейнелеу.
4. Есепті компьютерде шығару программасын жасап, оның қателерін түзету.
5. Есепке керекті мәліметтер дайындау.
6. Компьютерде есепті шығару және шыққан нәтижені іс жүзінде қолдану.
Берілген есепті математикалық түрде өрнектеу дегеніміз – есептің берілген мәндерін
математикалық таңбаларды қолданып жаза білу және керекті математикалық
формулаларды анықтау болып саналады.
Күрделі формулаларды, теңдеулерді арифметикалық амалдар тізбегіне айналдыру есепті
шығарудың сандық тәсілдерін табу не анықтау жолы болып есептеледі. Қазіргі кезде барлық
есептердің шығару жолының сандық тәсілдері белгілі десе де болады, тек солардың ішінен
өзімізге тиімді жолын таңдап алуымыз керек. Бұл мақсатта есепті шығару дәлдігін, нәтижені
жылдам табу мүмкіндігін, мәліметтерді дайындау мен есепті шығарудың бағасын салыстыра
отырып қарастыру қажет.
Есептің алгоритмін жасағанда, оның шығару жолын тізбектелген іс-әрекеттер ретінде
схема түрінде өрнектеледі.
Есепті шығаруға керекті деректерді сұрыпталған күйінде алдын ала қағазға, әйтпесе
магниттік дискіге жазып, компьютердің жадына реттей отырып енгіземіз. Есептің нәтижесін
алған соң шешім қабылдау және оны іс жүзінде қолдану – мамандардың жұмысы. Тек солар
ғана белгілі бір шешім қабылдай алады. Бірақ оқып-үйрену барысында кездесетін, яғни
студенттерге арналған есептерде жоғарыда көрсетілген сатылардың бірсыпырасы болмайды,
өйткені олар бірден формула күйінде беріледі, шығарудың сандық тәсілі формулада айқын
көрініп тұрады (интеграл, туынды болмаса), нәтижені алған соң, оны жазып алу жеткілікті.
Мәселені шешудің немесе есеп шығарудың көрсетілген алты сатысы күрделі өндірістік
есептерде, дипломдық немесе курстық жұмыстарда жиі кездеседі.
1.3 Алгоритмдерді бейнелеу тәсілдері
Алгоритмдерді бейнелеудің негізгі тәсілдеріне оларды жазудың келесідей түрлері
жатады:
•
табиғи тіл сөздері арқылы;
•
формулалық-сөздік тәсіл арқылы;
•
графикалық түрде бейнелейтін блок-схемалар арқылы;
•
псевдокодтар арқылы;
•
программалау тілі арқылы.
Алгоритмдерді
табиғи тіл сөздері арқылы бейнелеуде – есептеу кезеңдері мазмұны
кез келген түрде табиғи тілде жазылады.
Программалау тілдері – программаларды компьютерде тікелей орындауға арналған
алгоритмдерді жазу тәсілі. Программа – алгоритмнің компьютерге түсінікті түрде
жазылуы.
Бақылау сұрақтары
1. Алгоритм және программа дегеніміз не, олардың қандай ұқсастықтары мен
айырмашылықтары бар?
2. Компьютерде орындалатын алгоритмдердің қандай қасиеттері болады?
3. Алгоритмдерді өрнектеу жолдары.
4. Компьютерде есеп шығару кезеңдері.
5. Алгоритм схемаларының әр түрлі блоктары, олардың бейнеленуі, байланыстары.
26
2
дәріс. Циклдік алгоритмдер құру
Математикада, экономикада көптеген есептерді шығару кезеңінде бір теңдеуді пайда-
ланып, ондағы айнымалының өзгеруіне байланысты оны бірнеше рет қайталап есептеуге ту-
ра келетін сәттер де жиі кездеседі. Осындай қайталап орындалатын есептеу процесінің
белгілі бір бөліктерін цикл деп атайды. Осы бірнеше рет қайталанатын бөлігі бар
алгоритмдер тобы циклдік алгоритмдерге жатады. Циклдік алгоритмдерді пайдалану оларды
кейіннен программаларда цикл операторы түрінде қысқартып жазу мүмкіндігін береді.
Циклдер қайталану санының алдын ала белгілі және белгісіз болуына байланысты екі топқа
бөлінеді. Қайталану сандары алдын ала белгілі болып келген циклдер тобы арифметикалық
цикл болып есептеледі, ал орындалу саны белгісіз циклдер – қадамдық (итерация) цикл
болып аталады.
Практикада белгілі бір айнымалының сандық мәніне байланысты орындалатын арифметикалық
циклдер жиі кездеседі. Мұнда арифметикалық прогрессияға ұқсас болып келетін циклдер ең
қарапайым арифметикалық цикл болып табылады.
Оны басқару қайталану кезеңінде прогрессияның заңына сәйкес тұрақты шамаға өзгеріп отыра-
тын цикл параметрінің сандық мәнімен байланысты болуы тиіс.
Цикл орындалуы алдында оның айнымалы аргументі –
параметрі алғашқы мәнге ие болуы керек, сонан кейін
қайталану кезеңінде цикл параметрі белгілі бір шамаға
(қадамға) өзгере отырып, ол алдын ала берілген ең соңғы
мәнге дейін жетуі қажет.
Алгоритмнің орындалу барысында цикл параметрі,
мысалы, х өзінің ең алғашқы х0 мәнінен ең соңғы хk мәніне
дейін тұрақты шамаға ( dx) өзгеріп отырады. Осының
нәтижесінде х мынадай мәндерді қабылдайды: x0 , x0 +dx,
x0 +2 dx, ..., x0 +(n-1 )dx, xk,
мұндағы n – циклдің қайталану
саны, ол былай анықталады:
1
0
-
=
+
dx
x
xk
n
,
мұнда [...] – өрнектің бүтін бөлігі алынатынын көрсетеді, n
–
циклдің қайталану саны әрқашанда бүтін натурал сан
болуы тиіс, егер ол аралас сан болса, онда оның бөлшегі
алынып тасталады. Арифметикалық цикл үшін y=f(x)
функциясының есептелу жолы алгоритм ретінде 2.1-
суретте көрсетілген. Мұндағы 3-ші, 4-ші, 7-блоктар циклді
ұйымдастыру үшін қажет. Олар цикл параметрінің
алғашқы мәнін, өзгеру қадамын белгілеп және оның ең
соңғы мәніне жеткен-жетпегенін тексереді. Ал 5- және 6-
блоктар бірнеше рет қайталанып циклдің өзін құрайды. 4-
блок шартты тексеріп қайталану процесін ұйымдастырады.
Алгоритм схемасын салуды және программаны
жазуды жеңілдету үшін цикл алгоритмдері ықшамдалған
түрде "модификатор" немесе "цикл басы" блогын
пайдалану арқылы жазылады. Онда 1.6-суретте көрсетілген 3-ші, 4-ші, 7-блоктардың орнына
"цикл басы" блогы орналасады.
2.1-
сурет. Қарапайым
циклдік алгоритм
x
;
соңы
y:=f(x
)
басы
x0
,xк,dx енг.
x := x0
х≤ xk
жоқ
иә
8
2
3
5
x
:=
x
+
d
6
7
1
4
27
Ол алтыбұрыш тәрізді геометриялық фигу-
радан тұрады және оның міндетті түрде екі кіру
және екі шығу сызығы болуға тиіс. Осы блокты
пайдалану арқылы жоғарыда келтірілген алго-
ритм 2.2-суретте көрсетілген түрде кескінделеді.
Параметрдің алғашқы х мәні оның соңғы х мәні-
нен кем болса, онда оның қадамы dx оң сан болады. Керісінше, параметрдің алғашқы
мәні оның соңғы мәнінен артық болса, онда қадам теріс сан болады.
4. Қадамдық циклдер. Циклді орындаудың алдында, оның қайталану саны
белгісіз болған жағдайда қадамдық циклдер пайдаланылады. Мұнда циклді жазу үшін
тек қана "шартты тексеру" блогын қолдану қажет, ол циклді аяқтау үшін белгілі бір
шартты тексереді. Қадамдық циклдердің схемасын сызғанда модификаторды (алтыбұ-
рышты) қолдана алмаймыз, себебі алдын ала циклдің неше рет қайталанатыны бізге
белгісіз. Енді осындай циклдер жұмысына мысал келтірейік.
3-
мысал.
2
k
k
x
Z
=
функциясының мәндерін k = 1, 2, 3, ... және Z 0.0001-ден артық
болған жағдайда есептейік, мұндағы 0 ≤ х ≤ 1. Бұл мысалда алдын ала цикл неше рет
қайталанатынын айта алмаймыз, өйткені бізде тек k параметрінің алғашқы мәні мен
қадамы ғана белгілі. Сонымен қатар Z функциясының 0.0001-ден артық болуы циклді
қайталау шарты болып есептеледі ( Z > 0.001). 2.3-суретте осы есептің алгоритм
схемасы көрсетілген.
1.6 Программалау тілдері
Алгоритмдерді компьютерге түсінікті мәтін ретінде жазуға арналған қарапайым
жасанды тіл программалау тілдері деп аталады. Әрбір компьютердің өзінің
машиналық программалау тілі болады, оны командалар тілі немесе кодтар (арнайы
таңбалау) тілі дейді. Компьютер тек өз ана тілінде, яғни машиналық тілде жазылған
программаларды ғана орындай алады. Алайда, машина тілінде программа жазу өте
күрделі жұмыс, өйткені ол тек екілік (он алтылық) жүйедегі кодтардан тұрады және
әр машинада әр түрлі машиналық тіл қолданылады.
3
2.2-
сурет. Модификаторлы
циклдік алгоритм
y: = f (x)
x, y
соңы
x0 ,
xк, dx енгізу
x: =x0 ,xk,dx
2
4
6
5
басы
1
x-
ті енгізу
2
k : = 1
3
k, z
соңы
басы
z>10
-4
жоқ
иә
8
k: =k+1
5
6
1
7
4
z: =
2
/ k
x
k
x
k
k
/
2
2.3-
сурет. Қадамдық цикл
алгоритмі
28
Программа жазуды жеңілдету үшін математикалық формулаларды кеңінен
қолданатын, ағылшын тілінің негізінде жасалған алгоритмдік тілдер Бейсик, Паскаль,
Фортран, Си, т.б. кеңінен қолданылады. Алгоритмдік немесе программалау тілі – жазу
ережелері қарапайым жасанды тіл. Оның машина тілдерінен айырмашылығы – табиғи
ағылшын тілі негізге алынып, кең тараған математикалық таңбалармен толықтырылып
жасалған. Сондықтан алгоритмдік тілдерде программа жасау адамдарға әрі жеңіл, әрі
ыңғайлы болып келеді. Алгоритмдік тілдер автоматты түрде компьютердің көмегімен
аудармашы программалар арқылы машиналық тілге көшіріледі.
Алгоритмдік тілдер машинаға және проблемаға бағытталған болып екіге бөлінеді.
Машинаға бағытталған тілдердің машина тілінен айырмашылығы, олар компьютердің
ерекшеліктерін есепке ала отырып әріптерді де пайдаланады. Қазіргі кезде машинаға
бағытталған тілдерде маман программалаушылар жұмыс істейді. Оларға – автокод,
макроассемблер, ассемблер тәрізді тілдер жатады.
Проблемаға бағытталған тілдер шығарылатын есептердің ерекшеліктерін еске ала
отырып, есептің математикада жазылу тіліне жақындастырылады. Бұларға – Бейсик,
Фортран, Паскаль, С/С++, т.с.с. тілдер жатады.
Негізінде компьютерде кез келген программалау тілінде жазылған есеп машина
тіліне аударылып барып орындалады. Есептің орындалу кезеңдерін 2.4-суретте
көрсетілген схема түрінде көрсетуге болады.
Қазіргі кезде бес жүзге жуық алгоритмдік тілдер тараған. Олардың әрқайсысы
белгілі бір мақсаттарда қолданылады. Мысалы, Фортран – ғылыми-техникалық
(инженерлік) есептерді шығару үшін, Паскаль – оқып үйренуде, ал С/С++ тілі үйрену
үшін де, өндірістік есептерде де, операциялық жүйелер жазу үшін де қолданыла
беретін кең қолданыстағы тіл болып табылады.
Әр түрлі процессорлар типтерінің машиналық командалары да әр түрлі болады.
Егер программалау тілі нақты бір процессор типінің ерекшеліктерін есепке ала
отырып жұмыс істейтін болса, онда ол төменгі деңгейдегі программмалау тілі деп
аталады. Ең төменгі деңгейдегі программалау тілі ассемблер болып саналады, ол
машиналық кодтың әрбір командасын мнемоника деп аталатын арнайы символдық
белгілермен жазып шығады. Төменгі деңгейдегі программалау тілдері көмегімен өте
тиімді және ықшам программалар жасалады, мұнда программалаушы процессордың
барлық мүмкіндіктерін толық пайдалана алады. Жоғары деңгейдегі программалау
тілдері нақты бір компьютерлік архитектура ерекшеліктерін есепке алмай жұмыс
істейді, сондықтан олар процессорға сәйкес транслятор жазылған басқа
компьютерлерге оңай көшіріледі. Жоғары деңгейдегі программалау тілдерінде
программа жазу машиналық тілдерге қарағанда анағұрлым жеңіл.
Бақылау сұрақтары
1. Алгоритм және программа дегеніміз не, олардың қандай ұқсастықтары мен
айырмашылықтары бар?
2.
Компьютерде орындалатын алгоритмдердің қандай қасиеттері болады?
3. Алгоритмдерді өрнектеу жолдары.
4.
Компьютерде есеп шығару кезеңдері.
5. Алгоритм схемаларының әр түрлі блоктары, олардың бейнеленуі, байланыстары.
Есептің программа-
лау тілінде жазылуы
Транслятор
(аудармашы)
Есептің машина
тілінде жазылуы
Есепті
шығару
2.4-
сурет. Есепті шығару кезеңдері
29
3
дәріс. С тілінде программалау негіздері
C тілі өткен ғасырдың 70-жылдары басында АҚШ-та Bell Telephon Laboratories
компаниясының қызметкері Дэннис Ритчидің бастауымен дүниеге келді. Бұл тілдің
негізі Алголдан басталып, Паскаль және ПЛ/1 тілдерімен қатар пайда болды.
С тілінің негізінде 1983-жылы С++ тілі жасалып шықты, сол кезден бері тілдің
бірнеше нұсқалары пайда болып, ол қазіргі ең көп тараған тілдердің біріне айналды.
Бірсыпыра фирмалар осы тілге арнап компиляторлар жазды, мысалы, Borland
International фирмасы 1989 ж. жасаған біріктірілген программалау ортасы TurboC++
жүйесін дүниеге келтірді. Ол DOS ортасында жақсы жұмыс істеді. Ал 1992 ж.
жасалған Borland C++ жүйесі Windows ортасында да жұмыс істейтін жақсы
компилятор болып табылады.
Сонымен С/С++ программалары Паскаль тілінің біріктірілген (интегралданған)
ортасы сияқты DOS ортасында да және Windows жүйесінде де жұмыс істей береді.
3
.1 С++ тілінде жазылған программаның құрылымы
Кез келген программа бір немесе бірнеше функциялардан тұрады. Олар
программа құруға керекті негізгі модульдер болып табылады. Кез келген
программаның жазылған алғашқы мәтіні бастапқы код деп аталады. Оны
біріктірілген программалау ортасында теріп, сонан соң компилятор арқылы
машиналық кодқа түрлендіріп орындаймыз.
Келесі суретте С программасының жалпы құрылымы көрсетілген.
Сонымен, С программасы бірнеше функциялардан (
main, f1, f2
…
) құралады
және олардың біреуі міндетті түрде
main()
болуы қажет.
Қарапайым программаның мысалын қарастырайық. Жалпы кез келген функция
оның тақырыбы мен тұлғасынан (денесінен) тұрады.
Функция тұлғасы операторлардан тұрады, олар жүйелі жақшалармен шектеледі.
Әрбір оператордан кейін ; таңбасы қойылады.
Енді бір программа мысалын келтірейік:
/* Герон формуласы арқылы үшбұрыш ауданын табу */
#include
/* енгізу/шығару директивасы */
Достарыңызбен бөлісу: |