деп бөлінеді.
Турақты - өзгермейтін шама,
алгоритмде өзінің меншікті
мәнімен (мысалы 10, 3.5, V , true жэне т.б.) немесе символикалық
атымен (я саны) үсынылады.
Турақты шаманың есімі, мәні және
типі әзгермейді, олардың барлыгы бір мезгілде анықталады.
Айнымалы шамалар -
алгоритмнің орындалу барысында өз
мәндерін өзгертеді жене символдык атау —
идентификатормен
үсынылады, мысалы, X, S2, COD 15, Rez жөне т.б.
болады.
Багдарлама
(аралык деректер)
92
Әйтсе де,
турацты
болсын, не
айнымалы
болсын жадыдан орын
\яшыкрхар
алады, ал олардың
мәні
осы ұяшыкта екілік кодпен
аныкталатынын окушылар білуге тиіс.
Деректердің типтері.
Багдарламалау үшін
бул угым іргелі
болып табылады. Окушылар деректер типі үғымымен электрондык
кестелерді окығанда кезігуі мүмкін.
Эр
багдарламалау
тілінде
деректер
типтерінің
өз
түжырымдамасы, өзінің типтерінің жүйесі болады. Әйтсе де, кез
келген тілге минималды қажет деректердің негізгі типтерінің жиыны
кіреді. Оларға мыналар жатады:
бутін, нақты, логикалык; және
символдық.
Шаманың типімен оның мына
уш қасиеті
байланысты:
мәндердің мумкін жиыны, амалдардың мумкін жиыны, іиікі у сыну
пішіні
(S.1-кесте).
5 Л-кесте
Типі
Мөні
Амалдар
Ішкі үсынымы
Бүтін
Кебір
диапозондағы
бүтін оң және теріс
сандар.
Мысалдар: 23, -12, 387
Арифметикалык
амалдар: +, -, х, бүтін
бөлінді алу,
калдық
any, каты нас амал дары
(<, >, - жэне т.б.).
Форматы
тиянакты
нүктелі.
Накты
Кейбір диапозонда кез
келген
(бүтін
және
бөлшек) сандар. Мы
салдар: 2.5, -0.01, 45.0,
3 , 6*109
Арифметикалык амал
дар: +,
Қатынас амалдары
Форматы жыл-
жымалы
нүктелі
Логикалық
ТІШЕ(шындық),
ҒАЬБЕ(жалған)
Логикалык
амалдар:
жэне (and), немесе (ог),
жок (not).
Қатынас
амалдары
1 бит: 1 -true;
0-false.
Символдык
Компьютерлік
алфавиттің кез келген
символы. Мысалы:
•d\ '5\ Щ Щ
Қатынас амалдары
Символдык
кодтау
кесте
кодтары.
1 символ - 1
байт
Шамалармен
орындалатын
әрекепиперді
-
алгоритм
(багдарлама)
аныктайды
жэне
мына
иерархиялық
ұғымдарға
негізделеді:
амал
—
өрнек
-
буйрық немесе оператор
-
буйрықтар
жуйесі
(5.4-сурет) [26,42].
Амал
- деректермен жасалатын ең карапайым түтас әрекет.
Деректердің негізгі типтері үшін жасалатын амалдар 5.1-кестеде
аталған.
93
Өрнек
-
кейбір
шаманы
есептеу
үшін
алгоритмде
(бағдарламада) амалдардың тізбегін анықтайтын жазба. Өрнектер -
амалдарды және дөңгелек жақшаларды қодданып, әртүрлі типті
тураңтылардан, айнымалылардан, функциялардан
құрастырылған
жазба. Өрнектің есептелу реті
жақшалармен
және операндалардың
устемділігімен
аныкталады.
Амалдар
Өрнектер —>J Бүйрыктар —
енгізу
шығару
тармакталу
5.4-сурет.
Шамалармен әрекеттерді орындау қуралдары
Буйрық
- алгоритмнің жазбасьгаа кіретін, орындаушыға кейбір
түтас әрекетті орындау нұсқамасы.
Меньиіктеу, енгізу
,
шыгару
—
Шрапайым
бүйрықтар,
тармацталу
және
циклді
-
қурамсі
немесе
іымды
бұйрықтар
Багдарламалау
р __----------- ---------- тілдерінде
амалдардың,
өрнектердің,
бүйрықтардың жазылу ережелері қатал анықталған. Алгоритмдерді
алгоритмдік тілде немесе блок-схемалар түрінде сипаггағанда
синаксистік ^ережелерді ұстану міндетті емес. Мысалы, алгоритмдік
тілде әр бұйрык жеке жолда жазылса, онда соңында нүктелі үтірді
коймаса да болады, немесе көбейту амалында математикалық: х,
бағдарламалық: * белгілері жазыла береді.
Әйтее де, алгоритм ары карай колданылатын багдарламалау
тіліне бейімделген болуы кажет. Бейсик тілінде дэрежеге шыгару
амалы бар (жазылуы: X 5), сондықтан алгоритмдік тілде
х5
немесе хА5
түрінде жазуға болады. Ал, Паскаль тілінде дэрежеге шыгару амалы
болмагандыктан, алгоритмде ол амалды қолданудың кажеті жоқ,
мына түрде: х*х*х*х*х жазуга болады. Эйтсе де, Паскаль тілінде
дэрежеге
шыгару
ехр
жэне
In:
функциялары
аркылы
ехр(у*1п(х)).
шығару
ехр
үйымдастыры лады: xv=
е?'1пх
Айнымалы ж өне менш іктеу угымдары
багдарламалауда -
түиінді
ұгамдар болып табылады. Есептелу алгоритмінің орындалу
ШЙІИІІ
-
тізбекпен
процесі
айнымалы
^
—
мәндерінщ
өзгеру
процесі.
Қорытындысында белгіленген айнымалылар ізделіген нәтижені алады
94
Меншгктеу нәтижесінде сійнымалы белгілі бір мәнді алады.
6.17-суретте ұсынылған ОБЖ-не кіретін бүйрыктардың ішінен -
енгізу
және
меншіктеу
бүйрыктары меншіктеуді орындайды.
Көбінесе
мениііктеудің мәнін
толық түсінбеудің салдарынан,
окушылардың
бағдарламалауды
толык
игере
алмайтынын,
педагогикалық тәжрибе көрсетуде. Сондыктан мүғалімдерге осы
мәселеге ерекше көңіл бөлу кажет. Меншіктеу бұйрығының түрі:
<айнымалы>
:=
<өрнек>
Бұйрықтағы «:=» белгісін, «
меншіктеу
» - деп оку кажет. Бұл
нұсқау мына әрекетгер тәртібін белгілейді:
1) өрнекті есептеу;
2) шыққан нәтижені айнымалыға меншіктеу.
Меншіктеу бұйрыгы оңнан солга қарай орындалады.
Осыған
окушылардың
назарын
аудару
қажет.
Меншіктеу
бұйрығын
математикалык теңдікпен шатастыруға болмайды!
Әдетте,
меньиіктеуді
және
теңдікті
бірдей
санайтын
окушыларға, мынадай: Х:= Х+1 бұйрык мүлдем түсініксіз болып
көрінеді. Мұндай математикалык теңдіктің болуы мүмкін емес!
Бұл бұйрыктың мәнін былай түсіндіру керек:
айнымалы Х-ң
мәніне 1 қосылады да, нәтижесі қайтадан осы X айнымалысына
меншіктеледі.
Баскаша айтканда, бұйрық X айнымалысының мәнін
бірге өсіреді. Мынадай жаттығуларды талдауға болады:
Мысалы:
мына меншіктеу бұйрыктарының тізбегі орындалу
нәтижесінде X айнымалысының акырғы мәнін аныктайық. Әр
бүйрыктың түсына фигуралык жакша ішіне X айнымалысьгаа жаңадан
меншіктелген нәтижені жазамыз:
Х - 2
{2}
Х:=Х*Х
{4}
Х:= Х*Х*Х
{64}
Бағдарламалауда
енгізу
ұғымы - деректерді кез келген сырткы
күрылғыдан жедел жадыға жіберу процесі деп түсініледі. Әйтсе де,
бағдарламалаудың бастамасында деректерді жедел жадыға енгізу
негізінен пернетакта аркылы жүзеге асады. Бұл жағдайда енгізуді
компьютер адаммен бірлесіп жасайды. Енгізу бұйрығы бойынша,
процессордың жұмысы үзіледі және пайдаланушьгаың өрекетін
тосады; пайдаланушы пернетактада енгізілетін деректерді тереді,
және пернесін басады; мөндер енгізілетін айнымалыларға
меншіктеледі.
Окыту өдістемесінде
дидактикалық принциптердің ең бастысы
т рнекілік
екені белгілі. Әрбір окылатын ұғым, окушылардың
санасында қалайда бір көзбен шолынатын бейнемен бекітілуі кажет.
95
Процессор
___ С:=А+В
е н п зу А
Пернетакта
шыгару С
Мысалы,
екі санды цосу алгоритмінің орындалуын
, окушы
мынадай түрде түсінуі керек (5.5-сурет [42]):
ал г косу
бут
басы
енгізу А
енпзу В
С:=А+В
шыгару С
соны
енпзу
В
5.5-сурет.
Есептеу алгоритмы компьютердің орындауы
Алгоритмді
ізсалу
(трассировка) тәсілімен жазбаша орьшдау
багдарламалауды тусінудің тиімді әдісшемелік крралы
болып
табылады. Ол ізсалу кестесі аркылы жүзеге асады.
Шамалармен жұмыс жасау алгоритмдерін оқытудың әдістемелік
мәселелерін талдауьш,
багдарламалау
аспектісінде карастыратын
боламыз.
Есептерді шыгару мысалдары.
«Айнымалы», «меншіктеу»
ұгымдарын бекітуге арналған бірнеше есептерді қарастырайық.
Ьмысал. Алгоритмге көп нүктенің орнына бірнеше меншіктеу
бұйрықтарын жазыңыз. Нәтижесшде енгізілген санды 4-дәрежеге
шығаратьш алгоритм пайда болады.
(А — айнымалысынан басқа
крсымша айнымалыны қолдануга болмайды
):
енгізу
А ...
шыгару
А
Шешімі.
енгізу
А
А:= А*А (А2)
А:= А*А (А4)
шыгару
А
2^щсал. Алгоритмдік тілде Ү =(І-Х 2+5Х*)2 формуласы бойынша
Ү -п есептейтін алгоритмді жазу керек, мұндағы X - берілген бүтін
сан. Мына шектеулерді ескеру қажет:
1) арифметикалық өрнектерде тек қосу, алу және көбейіу
амалдарын қолдануға болады;
2) өрнекте тек бір ғана амал болуы керек. Х=2 мәнінде
алгоритмнің ізсалуын орындау керек.
Шешімі. Оқушылар бұл есепті шешудің әртүрлі нұсқаларын
құрулары мүмкін. Аралық нәтижелер ушін қосымша айнымалы
колдануға болды. Есепті талдау барысында тек
X
және
Ү
айнымалыларьш ғана қолданып, яғнн қосымша айнымалы қолданбай
қүрылған алгоритмді қарастыру пайдалы. Онда компьютердің жады
үнемделеді.
Бұл алгоритмнің өзі және оның ізсалуы мынадай болады:
96
Бүйрық
X
Ү
Енгізу X
2
X .*= Х*Х
4
Ү := 1 -X
-3
X := X * X
16
X := 5 * X
80
Ү := Ү + X
77
Ү := Ү + Ү
5929
Шығару Ү
5929
3-мысал. Алдындағы есептің шектеулерін пайдаланып, мына
есепеулердің ең қысқа алгритмдерін жазу керек:
а) У = Щ
б)
Ү= X 10;
в)
Щ X 15; т)Ү = X 19.
Қосымша айнымалының санын минималды аз қолдануға
тырысу қажет. Алгоритмдердің ізсалуын орьшдау керек.
Шешімі. Тапсырманың г) нүсқасын орындаймыз. Алгоритмді
мына теңдікті:
Х І9=ХІ6*Х3
ескере отырып құрамыз. X мәндері (мұнда
к
= 2П
) айнымалыньщ өзіне өзі и-еселі көбейту арқылы тез есептеледі.
Алгоритм:
Ү := Х*Х
(X2)
Z := Ү*Ү
(X4)
Z - Z * Z
(X*)
Z := Z*Z
(X 16)
Z := Z*Y
я
Z := Z*X
■
Шығару Z
4-мысал. Үш
А,В,С
айнымалыларының мәндерінің циклдік
ауысу алгоритмін жазу керек. Циклдік ауысу схемасы:
л
-------- ►
в
-------- ►
с
t_______ I
Мысалы, егер ауысуға дейін
А=1, В=2, С
=
3
болса, ауысқаннан
кейін
А =3
,
B - l , С -2
болуға тиіс. Ізсалуды орындау керек.
Шешімі. Мәндерді ауыстыру үшін қосымша айнымалы керек,
оны - X деп белгілейік. Алгоритмнің өзі және оның ізсалуы мынадай
болады:
ІМЕ _________ _
Бүйрык
А
I
в
С
X
Енгізу А, В, С
1
2
3
Х:=С
3
С:=В
2
В:=А
1
А :=Х
3
Шығару А, В, С
з
Я
1 1
2
97
5.3. Багдарламалау тілін оқудын әдістемелік мәселелері
Қарастырылатын сурақтар:
•
багдарламалау информатиканың бөлімі ретінде;
■ шамалармен жұмыс жасау алгоритмдері;
• әртүрлі қүрылымды есептеу алгоритмдерін қүру;
■ Паскаль багдарламалау тілімен танысу;
■ Паскаль багдарламалау жүйесі ортасымен жұмыс істеу
тәсілдерін игеру.
Багдарламалау — информатиканың бөлімі, оның міндеті —ЭЕМ
үиіін багдарламалық қамсыздандыруды жасау.
Шын мәнінде, «і
багдарламалау
» сөзі - белгілі багдарламалау
тілінде бағдарлама жасау үрдісін белгілейді.
Жүйелік БҚ қүралдарын және жүйелік багдарламалауды
жасауды
жүйелік багдарламалау
, қолданбалы бағдарламаны жасауды
қолданбалы
багдарламалау
деп
атайды.
Багдарламаушыларда
жасайтын багдарламаларына байланысты осы принцип бойынша
бөлінеді.
-1 "
Қазір багдарламалаудың әртүрлі
парадигмалары
дамыган және
олардьщ
әрқайсысын
оқытудың
өзіндік
ерекшеліктері
бар.
Багдарламалаудың
негізгі
парадигмаларына
мыналар
жатады
(1-қосымша, 4-сызба):
■ процедуралык багдарламалау (Ассемблер, Фортран, Паскаль,
Бейсик, Си);
■ логикалык багдарламалау (Пролог);
■ функционалды багдарламалау (Лисп);
• объектілі-багытталған
багдарламалау
(Смолток,
Си++,
Делфи).
v
Жақша
ішінде
сәйкес
парадигмасы
жүзеге
асырылған
багдарламалау тілдерінің мысалдары келтірілген.
Классикалық, әмбебапты және ең көп тараган
процедуралық
парадигма
болып табылады. Мектепте көбінесе процедуралық
Паскаль немесе Бейсик тілі оқытылады. Ары қарай «багдарламалау»
сөзін дәл осы процедуралык парадигма деп түсінеміз.
Багдарламалауды оку жэне практика жүзінде игеру үрдісі үш
бөліктен түрады (5.6-сурет):
■ есептеу алгоритмдерін қүру әдістерін оқу;
■ багдарламалау тілін оқу;
берілген багдарламалау жүйесін оқу жэне практика жүзінде
игеру.
«Есептеу
алгорипімдері»
терминін
орындаушы
ЭЕМ
бағытгалған,
кез келген типті шамалармен жумыс жасайтын
алгоритмдер
деген кең мағынада түсіну кажет.
5.6-сурет.
Багдарламалауды оқудың негізгі бөлімдері
Мұғалімің алдында мына проблема пайда болады:
шамалармен
жүмыс істеу алгорипімдерін
қүру
әдістерін
оқытуды
және
багдарламалау
тілін калай байланыстыруға болады? Қарастырудың
екі нүскасы болуы мүмкін:
1) алдымен әртүрлі алгоритмдер карастырылады, оларды
сипаттау үшін блок-схемалар жэне АТ колданылады; одан соң -
багдарламалау
тілдерінің
ережелері,
қүрылган
алгоритмдерді
багдарламага аудару әдістері карастырылады.
2) алгоритмдеу жэне багдарламалау тілі катар игеріледі.
Біз
екінші
нүсқамен
қарастыру
өдістемесін
қолдануды
ұсынамыз.
Себебі
алгоритмдеуді
жэне
багдарламалауды
тек
теориялык түрде оку тиімсіз екені белгілі. Сондыктан окушылар
күрған алгоритмдерінін дүрыстыгын компьютерде тексеруге ертерек
мүмкіндік алулары кажет.
Багдарламалау тілімен танысу және
багдарламалау жүйесі ортасында жүмыс жасау тәсілдерін игеру
алгоритмдеумен қатар жүруге тиіс.
Багдарламалауға үйретуді
типтік есептердің
мысалдары
негізінде және
алгорипімдердің қүрылымын
біртіндеп күрдендіру
арқылы өткізу қажет.
Алгоритмдердің негіздік қүрылымдары
дегеніміз - шектелген
блоктардың жинақталымы
және әрекеттердің әдетп тізбектерін
орындау үшін оларды
қосудың стандартты
әдістері.
Қүрылымдык белгісі бойынша алгоритмдер мына
негіздік
қүрылымдарга
жіктелетіні белгілі:
Сызыкпіы қурылымды —
алгоритмнің бүйрыктары
үзілісті
тізбекпен, бірінен кейін бірі орындалады. Әдетте, формула бойынша
есептеу үйымдастыруға колданылады.
Тармакталу қүрылымды алгоритм
белгілі
шартқа тәуелді
үйымдастырылады. Мүндай алгоритмде, өдетге, логикалык шартты
тексеру блогы болады. Егер шарт орындалса, онда өрекеттер
тізбегінің бір тармагы орындалады, ал орындалмаса, екінші тармағы
99
орындалады. Яғни, шартқа
тәуелді
, әлде бір серияны, әйтпесе баска
серияны орьшдау керек болғанда пайдаланылады. Мысалы, бірнеше
мәндердің ең кішісін немесе ең үлкенін іздеу, тармакталған диалог
қүру, т.с.с. типтік есептердің алгоритмін үйымдастыру үшін.
Циклдік қурылымды алгориіпмдер
деп,
цикл денесі
деп аталатын
әрекеттер
тізбегін
көп рет
қайталануын
жүзеге
асыратан
алгоритмдерді атайды. Мысалы, циклдік типті алгоритмдерінің
қатарына, сандық тізбектерінің қосындысын және көбейтіндісін
есептеу, деректерді циклдік әдіспен енгізу және өңдеу, т.с.с. жатады.
Есептерді шыгару мысалдары
[26, 42]. Багдарламалау тілінің
жаңа амалдары, операторлары, т.б. күрделі қүрылымдарды, есептердің
мына типтерін шығару үшін керектігіне қарай біртіндеп енгізіліп,
бекітіліп отырады.
Паскаль тілі қолданылған бірнеше есептерді қарастырайық. Бұл
мысалдар алгоритмдік тіл мен Паскаль тілінің арасындағы ұқсастық
әдісін колдануды көрсетеді.
үш
x,y,z
санның ең үлкенш табу алгоритмш
шешу үшін құрылымы бойынша нүскасы
алгоритмдерді қү|
шешім. Ал дымен
одан соң табылған
к
және z арасындағы үлкені анықталады
Алгоритмнің қүрылымы тізбектелген екі толық тармақталудан түр«
алг 3-сан-мах (ңақ x,y,z,k,max)
Program max_3_san;
аРг x,y,z
Var х, y,zjk: real;
нәт max
m ax: reaj.
®асы
begin
writeln(‘BB.3
числа’);
енгізу x,y,z
readln(x,y,z);
erep x > y
i f x > y
онда k: = x
then k:= x
әйтпесе k : =y
else k:= y;
бітті
if k > z
Достарыңызбен бөлісу: |