# Дәріс №13

Алгоритмдеу және программалау негіздерін оқыту тәсілдері

Алгоритмдеу және программалау информатика курсының дәстүрлі тараулары болып есептеледі. Алгоритмдеу және программалау негіздерін оқытудағы маңызды мәселе – программалау тілін, алгоритмдеуді жазу тілін таңдауға байланысты. Ал, бұдан да маңызды мәселе оларды оқыту әдістерін таңдау.

Алгоритмдеу және программалау негіздерін оқытудың 3 тәсілі бар:

1. дәстүрлі

2. алгоритмдік

3. жүйелік

Дәстүрлі тәсіл программа жазуда төмендегідей әрекеттерді атқарудан тұрады: Есеп – бағдарлама – компьютер

Бұл төменгі кезеңдерді қамтиды:

· программа жазу

· бағдарламаны компьютерге енгізу

· бағдарламаны дұрыстау (өңдеу)

Бұл әдістің ең қиын кезеңі – үшіншісі. Өйткені, бағдарламадағы қателер саны авторға алдын – ала белгісіз болады. Оқытуда мұндай әдісті пайдалану – компьютерде жұмыс істеу икемділігі қалыптасып оқушылар үшін ғана тиімді.

Алгоритмдік тәсіл бағдарлама мәтінің жазғанда дейін қойылған есепті шешу алгоритмін құруға негізделген:

Есеп- алгоритм – программа – компьютер

Бұл әдіс бойынша есепті шешу төменгі кезеңдерді қамтиды:

1. алгоритм құру

2. бағдарлама жазу

3. бағдарлама компьютерге енгізу

4. бағдарлама өңдеу

Бұл тәсіл негізінен жоғарғы математиканың дайындығы бар, студенттер мен оқушылар үшін тиімді. Өйткені, алгоритм мен бағдарламадағы қателердің көпшілігі логикалық не математикалық сипатта болады.

Жүйелік тәсіл төмендегі кезеңдерді қамтиды:

Есеп – сценарий – алгоритм – бағдарлама – компьютер

Жүйелік тәсілдің авторы В. Т. Каймин. Бұл тәсіл бойынша алгоритм мен бағдарлама құруда алдын ала сценарий құрып алады. Алгоритм мен бағдарлама құруда құрылымдық программалаудың барлық ережесі мен принципі толық пайдаланылады. Бұл тәсіл машиналық графикасы бар компьютерде оқытуға арналған. Өйткені, оқушылар шығармашылықпен жұмыс істеп құрылған суреттерінің нәтижесін, бағдарламадағы қателерін түзей отырып, экраннан көре алады. Бұл тәсілді басқаша, графикалық операторларды оқыту деп атайды.

Сонымен, орта мектепте информатика курсын оқытудың мақсатына сай алгоритмдеу мен программалау бастамасының міндетіне келесі кіреді:

1. компьютер көмегімен шешуге арналған есептің қойылу техникасы жайлы ұғымды түсіндіру

2. әртүрлі мектеп пәндерінен қарапайым есептерді шешу әдісі мен моделін таңдау

3. физика, математика және басқа сабақтар бойынша компьютерде есеп шығаруда қарапайым алгоритм құру іскерлігін қалыптастыру

4. қандай да бір программалау тілінде қарапайым бағдарлама құрып, компьютерде дұрыстау іскерлігін қалыптастыру

5. қазіргі есептеу техниканың негізгі мүмкіндіктерімен оның даму болашағы жайлы білім беру

6. компьютерден алынған нәтижені талдау іскерлігін қалыптастыру.

Компьютерде есеп шығаруда дайындалу іс әрекеттері келесі:

1. есептің математикалық моделін құру

2. шығару әдісін анықтау

3. компьютерде жұмыс істеу ережесін жазу

4. есеп шығару алгоритмін құру

5. компьютерде бағдарламаны жазып дұрыстау

6. нәтижені алу

Алгоритмдеу негіздерін оқыту әдістемесі

Алгоритмдеу негіздері көлемі және маңызы жағынан мектептегі информатика курсының ең маңызды бөлімдерінің бірі. Оқушы информатика курсының негізгі ұғымы алгоритм туралы, оның қасиеттері туралы негізгі білімді, есептерді ЭЕМ-дерде шығару үшін алгоритм құрастырудың практикалық дағдыларын осы бөлімнен алады. Басқа сөзбен айтқанда, курстың осы бөлімінде (қазіргі кездегі программаға сәйкес) практикалық программалаудың негізі қаланады да, ал оның өзімен оқушы кейінірек танысады.

Алгоритм негіздерін оқытудың негізі оқу алгоритмдік тілін үйрету. Алайда, тілді оқыту болашақта программалау тілдерін оқытуға негіз болдаы деген пікір салыстырмалы, шартты түрде ғана ақиқат екендігін ескеру керек. Егер мектептегі компьютерде алгоритмдік тілдің интерпретаторы жоқ болса, онда әрине жоғарыдағы пікір орынды болады. Ал болашақта алгоритмдік тіл жақсы дамытылса және оның жақсы интерпретаторы жасалса, оқу, программалық қамтамасыз ету комплекті толығымен дайын болса, онда мектеп курсында өндірістік программалау тілдерін оқыту мүлде керек болмай қалуы мүмкін. Ол мектеп программасына тек таныстыру мақсатында ғана енгізуі мүмкін. Жалпы, мектептегі алгоритмдік тіл мен өндірістік программалау тілдерін бір біріне қарсы қою негізсіз болуы мүмкін (мектеп информатикасы информатика ғылымының бір «өндірістік» тармағы болып есептеледі).

Информатика курсы бойынша жазылған байқау оқу құралдарында алгоритмдік тілдің негізінде алгоритмдеуді оқыту екі деңгейде жүрзіліледі. Бірінші бөлімде алгоритмдеу негіздері қаланады, ал екінші бөлімде информация өңдеудің қосымша мүмкіндіктері қарастырылады. Бұл тарауларды информатика курсының үздіксіз бір блогы ретінде қарастыру тиімді, себебі олардың материалдары тығыз байланысты, оларды біріктіріп оқытқанда оқу құралдарын жазу барысында пайда болған кейбір артық нәрселер алынады. Бұл мәселелер ресми программаның дамытылған түрі болып есептелетін конкурсытқ программаның құрылым мен мазмұнында ескерілген.

Программада және оқу құралдарында ескерілген оқытудың маңызды бір ерекшелігі оқушылардың негізгі ұғымдармен (басқару, алгоритм, орындаушы, орындаушының командалар жүйесі және т.б.) және сәйкес дағдылар мен (компьютерлік сауаттылықтың құрамдас бөліктерімен) таныстыру үшін арнаулы жасалған алгоримтдердің пайдаланылуы, олар көрнекі объектілермен ғана жұмыс істейді де, шама ұғымын ешқандай пайдаланбайды. Оқытуға бағытталған мұндай алгоритмдер «жағдай» алгоритмдері деп аталады. Әрине, алгоритмдеудің бастапқы бөлімінің ерекшелігі оны оқушыларға баяндау үшін аса мұқияттылықпен таңдалған методикалық құралдарды пайдалануды қажет етеді. Бұл материалдардың тағы да бір сипаты оны төменгі жастағы балаларға баяндауға болатындығы, олай болса мұқият таңдауға қойылатын талап ода сайын күшейе түседі. Ал информатика курсын оқытудың төменгі буынына «төмендетудің» өзі жақын болашақтың ісі, яғни бұл күн тәртібіндегі методикалық мәселе.

Ақпаратты өңдеуге байланысты алгоритмдеуде шамалар ұғымы енгізу қажет. Шама дегеніміз типі анықталған мәні мен аты бар объект. Шамалар екіге бөлінеді:

1. тұрақты

2. айнымалы

Егер алгоритмнің атқарылуы барысында мәні өзгермесе, онда шама тұрақты деп атайды. Мәндері өзгеріп отыратын шамаларды айнымалы деп атайды. Шамалар типіне қарай сандық және литерлік болып бөлінеді. Сандық шамалар бүтін және нақты болып бөлінеді.

Литерлік шама деп, мәндері сөздер немесе мәтін болып келетін шаманы айтамыз.

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

Алгоритмдегі аргументте нәтиже де болмайтын. Шамаларды аралық шама деп атайды. Ол алгоритм тақырыбынан кейінгі басы көмекші сөзінен кейін жазылады.

Алгоритмнің жалпы жазылуы

алг < атауы (типтері көретілген арг мен нәтижелер тізімі) >

арг < аргументтер тізімі >

нәт < нәтижелер тізімі >

басы <типтері көрсетілген аралық шамалардың тізімі>

серия

соңы

Мысалы. Үшбұрыштың ауданын Герон формуласы бойынша есептеу керек.

Алг < аудан (бүтін a, b, c) >

арг a, b ,c

нәт S

басы P

серия P= a+ b +c/2 S=

соңы

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

Тармақталу ұғымын түсіну үшін келесі логикалық тәсілдерді қолдануға болады. Алгоритмнің негізгі құрылымдарын бөліп көрсеткеннен кейін (сызықтық, қайталану, тармақталу) бірнеше командалардың ішінен тек біреуі ғана орындалады. Қай команданың орындалатынын білу үшін тармақталу алгоритмін пайдаланамыз. Яғни, қойылған шартқа тәуелді болу керек. Тармақталу командасының түрі:

егер шарт

онда серия 1

әйтпесе серия 2

бітті

Кейбір алг және, есем, немесе сөздерімен жалғастырылған екі немесе одан да көп шарттардан құрылады.

X 2 егер x<0

y= { x+1 егер x>|1

x3 егер x=1

Алг тармақталуның саны көбейген сайын тармақталу командасын пайдалану қиынға түседі. Көп тармақтан тұратын алг жазуда таңдау командасын пайдаланамыз: case . Таңдау командасының жалпы түрі:

таңдау

1 жағдай: серия 1

2 жағдай: серия 2

.............................

m жағдай: серия m

соңы

Команданың орындалу ережесі:

Алдымен атқарушы сақталатын шарт табылғанша шарттарды ретімен тексереді. Ақиқат шарт табылғанда атқарушы оған сәйкес команданы орындайды да осымен таңдау команданың орындалуы аяқталады. Егер бірде бір шарт орындалмаса, онда бірде бір команда орындалмайды.

Қайталанатын алгоритмдер

Кейбір алгоритмдерде белгілі бір шарттардың сақталуына тәуелді командалардың қандай да бір бөлігі бірнеше рет қайталанады. Осы әрекеттерді іске асыратын командаларды қайталану командасы деп атайды.

Цб

әзір <шарт>

серия

цс

Команданың орындалу ережесі келесі:

Алдымен шарт тексеріледі. Шарт орындалғанша цикл денесі орындалады. Егер шарт орындалмаса, онда командалар бірде бір рет орындалмайды.

Үшін (FOR ) қайталану командасы

Анда кестелік шамаларды өңдеуге байланысты пайдаланатыны белгілі. Оқушыларға қандай жағдайда әзір қандай жағдайда үшін пайдалану керектігін түсіндіру керек. Егер кестелерді реті бойынша іріктеу қажет болса, (берілген қасиеті бойынша) элементтің номерін іздеу және т.с.с.. Онда әзір циклін пайдаланамыз. Егер элементтердің қосындысы максимум, минимум және т.б. іздеу керек болса, яғни барлық элементтермен біркелкі амалдар орындалатын жағдай үшін циклін пайдаланамыз.

Кестелік шамалар

Сандық алгоритмдердің кесте түрінде орындалуы

Көрнекілік материалдың түсінікті болуының алғашқы шарттарының бірі екені белгілі. Сандық алгоритмдер атқарылу процесі көрнекілікті қажет ететін материалдың бірі. А. П. Ершов бастаған зерттеушілер тобының оқулығында сандық мәліметтерімен алгоритмдер орындалу процесін көрнекі бейнелеуге мүмкіндік беретін тәсілі «кестенің атқарылуын пайдалану» тәсілі қарастырылады. Бұл тәсілі көрнекілендірудің бірден бір тәсілі. Бірақта бұл тәсіл әлі де өз мәнін жойған жоқ.

Мысалы,

а санын b санына бөлгендегі қалдықты табу.

A=13, b=5

Кесте 3.

| Алгоритмы | Жол номері № | А | В | A>B
1 | алг қалдық |  |  |  |
2 | басы бүт А, В |  |  |  |
3 | А:=13 | 3 | 13 |  |
4 | B:=5 | 4 |  | 5 |
5 | цб әзір A>B | 5 |  |  | Иә
6 | A:=A-B | 6 | 8 |  |
7 | цс | 5 |  | 5 |
8 | шығару «қалдық» А | 6 | 3 |  | Иә
9 | соңы | 5 |  |  | жоқ

Көп жағдайларда оқушылардың жіберетін қатесі цикл аяқталар алдыңдағы соңғы цикл шартын тексермейді. Циклдың соңы деген сөзін көргеннен кейін циклдың шарты орындалмайды деп циклдан шығып кетеді. Циклды қарастырайық. Егер циклды жоғарыдан төменге қарай жазылған дайын күйінде көрсетсек, онда оның қалай алынғаны түсініксіз болады. Цикл құрылу процесін келесі әдіспен түсіндіруге болады:

Мысалы, Оң элементтен тұратын бір өлшемді массивтердің қосындысын есептеу. Қадамдар мынандай тәсілмен шығарылады:

1. алдымен қосындының кезекті элементінің мәніне қайталанатындығын түсіндіреміз:

S:=S+A[1]

S:=S+A[2]

S:=S+A[3]

2. Бұл қатынастарды жалпылаймыз

S:=S+A[і ]

3. Сәйкес келетін. Егер нәтиже орындалатын әрекет ретіне тәуелсіз болса, онда үшін циклін таңдаймыз.

4. Тұжырым жасаймыз: элементтің әрбір номері қосындының мәнін элементке арттырамыз. Қайталану параметрі і 1 ден 10-ға дейінгі мәндерді қабылдайды.

5. Осы әрекетті формальды түрде жазамыз.

цб «үшін» і 1 бастап 10-ға дейін

S:=S+A[і ]

цс

6. кестедегі элементтер саны 10 емес 0 болса, онда цикл бірде бір рет орындалмай қосындының мәні 0-ге тең болатынын ескеру керек. S:=0 Олай болса қосындыны есептер алдында есептегішке 0 мәнін меншіктеу керек.

Енді командалардың пайда болу ретіне көңіл аударайық. Алдымен қайталанатын командаларды орындаймыз. Одан кейін ыңғайлы қайталану командасын таңдаймыз. Индекстің пайда болу түсіндіреміз. Тек осы әрекеттерден кейін есептегішті тазалаймыз. Яғни, 0 меншіктейміз. Егер командаларды емес жасалған талқылаудың қадамын көшірсек, оқушылардың дәптерге немесе тақтаға жазатын командаларының реті төмендегідей:

4 S:=0

2 цб «үшін» і 1 бастап 10-ға дейін

1 S:=S+A[і ]

3 цс