Орта мектептегі паскаль тілі программасын оқытудың әдістемелік ерекшеліктері
КІРІСПЕ
1 ОРТА МЕКТЕПТЕ ПАСКАЛЬ ТІЛІ ПРОГРАММАСЫН ОҚЫТУДЫҢ ӘДІСТЕМЕЛІК ЕРЕКШЕЛІКТЕРІ
1.1 Паскаль тілі программасының негізгі ұғымдар
1.2 Сызықтық құрылымды алгоритмдерді программалау
1.3 Тармақталу алгоритмдерді программалау
1.4 Циклдік құрылымды алгоритмдерді программалау
1.5 Бір және екі өлшемді жиымдар
1.6 Графикалық объектілерді программалау
1.7 Процедуралар және функциялар
1.8 Символдық шамалармен жұмыс істеу
2 ОРТА МЕКТЕПТЕ ПАСКАЛЬ ТІЛІ ПРОГРАММАСЫН ОҚЫТУДЫҢ ӘДІСТЕМЕЛІК ҮЛГІЛЕРІ
2.1 Деңгейлеп оқыту
2.2 Жаттығуларды шешу жолдары
2.3 Сабақ жоспары
2.4 Тест тапсырмаларын ұсыну
2.5 Орта мектепте Паскаль тілі программасын оқытуда интелект. картаны қолдану
ҚОРЫТЫНДЫ
ӘДЕБИЕТТЕР ТІЗІМІ
ҚОСЫМША А
ҚОСЫМША Ә
ҚОСЫМША Б
ҚОСЫМША В
ҚОСЫМША Г
ҚОСЫМША Ғ
ҚОСЫМША Д
ҚОСЫМША Е
1 ОРТА МЕКТЕПТЕ ПАСКАЛЬ ТІЛІ ПРОГРАММАСЫН ОҚЫТУДЫҢ ӘДІСТЕМЕЛІК ЕРЕКШЕЛІКТЕРІ
1.1 Паскаль тілі программасының негізгі ұғымдар
1.2 Сызықтық құрылымды алгоритмдерді программалау
1.3 Тармақталу алгоритмдерді программалау
1.4 Циклдік құрылымды алгоритмдерді программалау
1.5 Бір және екі өлшемді жиымдар
1.6 Графикалық объектілерді программалау
1.7 Процедуралар және функциялар
1.8 Символдық шамалармен жұмыс істеу
2 ОРТА МЕКТЕПТЕ ПАСКАЛЬ ТІЛІ ПРОГРАММАСЫН ОҚЫТУДЫҢ ӘДІСТЕМЕЛІК ҮЛГІЛЕРІ
2.1 Деңгейлеп оқыту
2.2 Жаттығуларды шешу жолдары
2.3 Сабақ жоспары
2.4 Тест тапсырмаларын ұсыну
2.5 Орта мектепте Паскаль тілі программасын оқытуда интелект. картаны қолдану
ҚОРЫТЫНДЫ
ӘДЕБИЕТТЕР ТІЗІМІ
ҚОСЫМША А
ҚОСЫМША Ә
ҚОСЫМША Б
ҚОСЫМША В
ҚОСЫМША Г
ҚОСЫМША Ғ
ҚОСЫМША Д
ҚОСЫМША Е
КІРІСПЕ
Қазіргі кезде Паскаль тілі кез-келген күрделі есептерді шығара алатын, кең таралған стандартты оқу тіліне айналды. Сондықтан жалпы білім беретін мектептерде программалауды оқытуда осы Паскаль тілі таңдалып алынған.
Біздің негізгі мақсатымыз – мектеп курсындағы жаңа бағдарлама бойынша 2005-2006 оқу жылында ғана Информатика пәніне енгізілген 9-сынып оқулығындағы Паскаль тілі программасының оқытудың әдістемелік ерекшеліктеріне тоқталамыз және көкейтесті бірнеше мәселелерді қарастырып, шешу жолдарын ұсынамыз. Ойымыз дәлелді болу үшін жоғарғы оқу орнының материалдарымен салыстырып, айырмашылықтарына баса назар аударып, ондағы қолданатын тәсілдерді мектеп деңгейінде қарастырамыз.
Күнтізбелік жоспар бойынша 9-сыныпта Паскаль тілін оқытуға (алгоритмдерді қоса есептегенде) бар-жоғы 24-26 сағат ғана бөлінген.
Жобаның өзектілігі: Сондықтан оқушылардың материалды толық меңгеруге- сағаттардың аздығы, игеретін материалдардың тығыздығы өте үлкен әсер етіп отыр.
Практикалық маңызы: Қосымша мұғалімдерге арналған әдістемелік оқулық, ал оқушыларға арналған есептер мен жаттығулар жинағы бар, бірақ есептер деңгейлерге бөлінбеген, шығару жолдары көрсетілмеген. Осы себептен біз осы жұмыста есептерді 3 деңгейге бөліп қарастырдық және әрбір тараудан кейін тест тапсырмасын беріп отырмыз. Сондай-ақ біз жаңа материалдарды түсіндіргенге интелект картаны ұсынып отырмыз.
Қазіргі кезде Паскаль тілі кез-келген күрделі есептерді шығара алатын, кең таралған стандартты оқу тіліне айналды. Сондықтан жалпы білім беретін мектептерде программалауды оқытуда осы Паскаль тілі таңдалып алынған.
Біздің негізгі мақсатымыз – мектеп курсындағы жаңа бағдарлама бойынша 2005-2006 оқу жылында ғана Информатика пәніне енгізілген 9-сынып оқулығындағы Паскаль тілі программасының оқытудың әдістемелік ерекшеліктеріне тоқталамыз және көкейтесті бірнеше мәселелерді қарастырып, шешу жолдарын ұсынамыз. Ойымыз дәлелді болу үшін жоғарғы оқу орнының материалдарымен салыстырып, айырмашылықтарына баса назар аударып, ондағы қолданатын тәсілдерді мектеп деңгейінде қарастырамыз.
Күнтізбелік жоспар бойынша 9-сыныпта Паскаль тілін оқытуға (алгоритмдерді қоса есептегенде) бар-жоғы 24-26 сағат ғана бөлінген.
Жобаның өзектілігі: Сондықтан оқушылардың материалды толық меңгеруге- сағаттардың аздығы, игеретін материалдардың тығыздығы өте үлкен әсер етіп отыр.
Практикалық маңызы: Қосымша мұғалімдерге арналған әдістемелік оқулық, ал оқушыларға арналған есептер мен жаттығулар жинағы бар, бірақ есептер деңгейлерге бөлінбеген, шығару жолдары көрсетілмеген. Осы себептен біз осы жұмыста есептерді 3 деңгейге бөліп қарастырдық және әрбір тараудан кейін тест тапсырмасын беріп отырмыз. Сондай-ақ біз жаңа материалдарды түсіндіргенге интелект картаны ұсынып отырмыз.
ӘДЕБИЕТТЕР ТІЗІМІ
1 С. Айнамқұлова: «Математикалық есептерді шешуге Паскаль тілінде программа құру», «Информатика негіздері» журналы
2 Б. Бөрібаев, Р. Дүзбаева, А. Махметова: «Информатика және есептеуіш техника негіздері» 9-сыныпқа арналған есептер мен жаттығулар жинағы, Алматы, 2005ж
2 Б. Бөрібаев, Б. Нақысбеков, Г. Мадиярова: «Информатика және есептеуіш техника негіздері» 9-сынып оқулық, Алматы, 2005ж.
3 Н. Ермеков, Ж. Қараев, В. Криворучка, В. Кафтупкина: «Информатика» 9- сынып оқулық, Алматы, 2001ж.
4 Я. Зайдельман : «Язык программирование», «Информатика и образование», 1987г, №5.
5 Н. Ковтун: «Программы в система Express Pascal», «Информатика и образование», 1992г, №3.
6 Ж. Масанов, Б. Бельгибаев, А. Бижанова, Қ. Мақұлов: «Turbo Pascal», Алматы, «Бастау» баспаханасы, 2004ж.
7 С. Мухамедиева, Р. Мукашева: «Паскаль тілінің негіздері», Өскемен, ШҚМУ баспасы, 2003ж.
8 Қ. Мұқанов: «Паскаль программалау тілінің бастапқы тақырыптарына арналған байқау тестісі», «Информатика негіздері» журналы, 2003ж, №.
9 Қ. Мұқанов: «Паскаль тілінде программа құруда бүтін сандарымен жұмыс істеудің арнайы әдістері», «Информатика негіздері» журналы, 2003ж, №3.
10 Б. Нақысбеков, Г. Мадиярова, А. Мұхамади: «Информатика және есептеуіш техника негіздерін оқыту» 9-сыныпқа әдістемелік нұсқау, Алматы, 2005ж.
11 Никифоов: «Программирование на языке Паскаль», часть1, учебное пособие, Усть-Каменогорск, 2002г.
12 Программалар кітапханасы: «Есептерге программа қүру», «Информатика негіздері» журналы, 2002ж, №1-2.
13 Е. Лодатко: «Рекурсивные алгоритм», «Информатика и образование», 1989г, №2.
15 Ү. Смайлова, Ә. Өтехожиева: «Turbo Pascal тілінің элементтері», «Информатика негіздері» журналы, 2003ж, №2.
16 Смайлова, Ә. Өтехожиева: «Turbo Pascal тілі бойынша тест сұрақтары», «Информатика негіздері» журналы, 2003ж, №3-4.
17 Сочнев: «Изучение алгоритмического языке в курсе информатике», «Информатика и образование», 1988г, №1.
18 Тойкенов: «Паскаль тілінде программалау», Алматы, 2001ж.
19 А. Үмбетов: «Turbo Pascal ортасы», «Информатика негіздері» журналы, 2002ж, №1-3.
20 А. Шәріпбаев: «Информатика оқу құралы», Астана, 2003ж.
1 С. Айнамқұлова: «Математикалық есептерді шешуге Паскаль тілінде программа құру», «Информатика негіздері» журналы
2 Б. Бөрібаев, Р. Дүзбаева, А. Махметова: «Информатика және есептеуіш техника негіздері» 9-сыныпқа арналған есептер мен жаттығулар жинағы, Алматы, 2005ж
2 Б. Бөрібаев, Б. Нақысбеков, Г. Мадиярова: «Информатика және есептеуіш техника негіздері» 9-сынып оқулық, Алматы, 2005ж.
3 Н. Ермеков, Ж. Қараев, В. Криворучка, В. Кафтупкина: «Информатика» 9- сынып оқулық, Алматы, 2001ж.
4 Я. Зайдельман : «Язык программирование», «Информатика и образование», 1987г, №5.
5 Н. Ковтун: «Программы в система Express Pascal», «Информатика и образование», 1992г, №3.
6 Ж. Масанов, Б. Бельгибаев, А. Бижанова, Қ. Мақұлов: «Turbo Pascal», Алматы, «Бастау» баспаханасы, 2004ж.
7 С. Мухамедиева, Р. Мукашева: «Паскаль тілінің негіздері», Өскемен, ШҚМУ баспасы, 2003ж.
8 Қ. Мұқанов: «Паскаль программалау тілінің бастапқы тақырыптарына арналған байқау тестісі», «Информатика негіздері» журналы, 2003ж, №.
9 Қ. Мұқанов: «Паскаль тілінде программа құруда бүтін сандарымен жұмыс істеудің арнайы әдістері», «Информатика негіздері» журналы, 2003ж, №3.
10 Б. Нақысбеков, Г. Мадиярова, А. Мұхамади: «Информатика және есептеуіш техника негіздерін оқыту» 9-сыныпқа әдістемелік нұсқау, Алматы, 2005ж.
11 Никифоов: «Программирование на языке Паскаль», часть1, учебное пособие, Усть-Каменогорск, 2002г.
12 Программалар кітапханасы: «Есептерге программа қүру», «Информатика негіздері» журналы, 2002ж, №1-2.
13 Е. Лодатко: «Рекурсивные алгоритм», «Информатика и образование», 1989г, №2.
15 Ү. Смайлова, Ә. Өтехожиева: «Turbo Pascal тілінің элементтері», «Информатика негіздері» журналы, 2003ж, №2.
16 Смайлова, Ә. Өтехожиева: «Turbo Pascal тілі бойынша тест сұрақтары», «Информатика негіздері» журналы, 2003ж, №3-4.
17 Сочнев: «Изучение алгоритмического языке в курсе информатике», «Информатика и образование», 1988г, №1.
18 Тойкенов: «Паскаль тілінде программалау», Алматы, 2001ж.
19 А. Үмбетов: «Turbo Pascal ортасы», «Информатика негіздері» журналы, 2002ж, №1-3.
20 А. Шәріпбаев: «Информатика оқу құралы», Астана, 2003ж.
Пән: Информатика, Программалау, Мәліметтер қоры
Жұмыс түрі: Дипломдық жұмыс
Тегін: Антиплагиат
Көлемі: 63 бет
Таңдаулыға:
Жұмыс түрі: Дипломдық жұмыс
Тегін: Антиплагиат
Көлемі: 63 бет
Таңдаулыға:
ҚАЗАҚСТАН РЕСПУБЛИКАСЫНЫҢ БІЛІМ ЖӘНЕ ҒЫЛЫМ МИНИСТРЛІГІ
РЕСПУБЛИКАЛЫҚ МЕМЛЕКЕТТІК ҚАЗЫНАЛЫҚ КӘСІПОРЫНЫ
МАТЕМАТИКА, ФИЗИКА, ТЕХНИКА ЖӘНЕ
АҚПАРАТТЫҚ ТЕХНОЛОГИЯЛАР ФАКУЛЬТЕТІ
Математикалық модельдеу және
компьютерлік технологиялар кафедрасы
ДИПЛОМДЫҚ ЖҰМЫС
Орта мектептегі Паскаль тілі программасын
оқытудың әдістемелік ерекшеліктері
Кіріспе
1 Орта мектепте Паскаль тілі программасын оқытудың
әдістемелік ерекшеліктері
1.1 Паскаль тілі программасының негізгі ұғымдар
1.2 Сызықтық құрылымды алгоритмдерді программалау
1.3 Тармақталу алгоритмдерді программалау
1.4 Циклдік құрылымды алгоритмдерді программалау
1.5 Бір және екі өлшемді жиымдар
1.6 Графикалық объектілерді программалау
1.7 Процедуралар және функциялар
1.8 Символдық шамалармен жұмыс істеу
2 Орта мектепте Паскаль тілі программасын оқытудың әдістемелік үлгілері
2.1 Деңгейлеп оқыту
2.2 Жаттығуларды шешу жолдары
2.3 Сабақ жоспары
2.4 Тест тапсырмаларын ұсыну
2.5 Орта мектепте Паскаль тілі программасын оқытуда интелект-
картаны қолдану
Қорытынды
Әдебиеттер тізімі
Қосымша а
қосымша ә
қосымша б
қосымша в
қосымша г
қосымша ғ
қосымша Д
қосымша Е
КІРІСПЕ
Қазіргі кезде Паскаль тілі кез-келген күрделі есептерді шығара
алатын, кең таралған стандартты оқу тіліне айналды. Сондықтан жалпы білім
беретін мектептерде программалауды оқытуда осы Паскаль тілі таңдалып
алынған.
Біздің негізгі мақсатымыз – мектеп курсындағы жаңа бағдарлама бойынша
2005-2006 оқу жылында ғана Информатика пәніне енгізілген 9-сынып
оқулығындағы Паскаль тілі программасының оқытудың әдістемелік
ерекшеліктеріне тоқталамыз және көкейтесті бірнеше мәселелерді қарастырып,
шешу жолдарын ұсынамыз. Ойымыз дәлелді болу үшін жоғарғы оқу орнының
материалдарымен салыстырып, айырмашылықтарына баса назар аударып, ондағы
қолданатын тәсілдерді мектеп деңгейінде қарастырамыз.
Күнтізбелік жоспар бойынша 9-сыныпта Паскаль тілін оқытуға
(алгоритмдерді қоса есептегенде) бар-жоғы 24-26 сағат ғана бөлінген.
Жобаның өзектілігі: Сондықтан оқушылардың материалды толық меңгеруге-
сағаттардың аздығы, игеретін материалдардың тығыздығы өте үлкен әсер етіп
отыр.
Практикалық маңызы: Қосымша мұғалімдерге арналған әдістемелік оқулық,
ал оқушыларға арналған есептер мен жаттығулар жинағы бар, бірақ есептер
деңгейлерге бөлінбеген, шығару жолдары көрсетілмеген. Осы себептен біз осы
жұмыста есептерді 3 деңгейге бөліп қарастырдық және әрбір тараудан кейін
тест тапсырмасын беріп отырмыз. Сондай-ақ біз жаңа материалдарды
түсіндіргенге интелект картаны ұсынып отырмыз.
1 Орта мектептегі Паскаль тілі программасын
оқытудың әдістемелік ерекшеліктері
1.1 Паскаль тілі программасының негізгі ұғымдар
Паскаль тілі өзінің қарапайымдылығының және тиімділігінің арқасында
дүние жүзіне тез таралды. Қазіргі кезде барлық дербес компьютерлер осы
тілде жұмыс істей алады. Паскаль тілінде жазылған программаның дұрыстығын
компьютерде тексеру және жіберілген қатені түзету оңай. Бұл тілде программа
компьютерде орындалу барысында алдымен трансляцияланады (машина тіліне
аударылады), объектік программаға түрлендіріледі де, содан кейін ғана
орындалады. Осы сәтте компьютерде программаның екі нұсқасы болады, оның
біріншісі-алгоритмдік тілдегі алғашқы түпнұсқасы, ал екіншісі-объектік
кодтағы жазылған программа. Есеп нәтижесін машиналық кодта жазылған алғашқы
нұсқасы өңделеді.
Паскаль тілін 1970 жылы Швейцария ғалымы Н. Вирт программалау
әдістерін оқыту мақсатында арнайы жасаған .
Қазіргі кезде Паскаль тілі қолданбалы программалар жасау үшін және
жүйелі программалау ретінде де кеңінен қолданылады. Сонымен бірге көптеген
мини және макрокомпьютерлерді қамтамасыз ету осы тілде жазылған. Паскаль
тілі бұрын құрылған (Фортран, Алгол және тағы басқа) программалау
тілдерінен маңызды ерекшелігі ол құрылымдық прграммалау идеясын өмірге
біртіндеп енгізу. Паскаль тілінің тағы бір ерекшелігі ол деректер
құрылымның концепсиясының алгоритм түсінігімен қатар программалаудың
негізінде жатқан фундаментальды түсініктер қатарына кіруі [18].
Қазіргі заманда адам көп есепті компьютерді пайдалану арқылы
атқарады. Кез-келген міндетті орындау алгоритмнің болуын, яғни нәтиже алуға
жеткізетін әрекеттердің алдын ала жазылып қоюын қажет етеді. Алгоритмнің
негізінде программа түзіледі, яғни есеп шешуінің алгоритмі оны компьютерде
орындауға жарамды түрде жазылады. Осыдан барып компьютердің көмегімен
есепті шешу процесінің мәні алгоритмді құру екені көрінеді. Алгоритмдік
алдын ала жазбаларды құрастыру процесі алгоритмдеу деп аталады. Алгоритм
сөзі IX ғасырдағы Орта Азияның ұлы математигі Әл-Хорезми атының латынша
жазылу –algoritmi қалпынан шыққан [4].
Қазіргі кезде алгоритм ұғымы тек математикалық есеп шешу әдісімен
шектелмейді. Оның мағынасы әлдеқайда кең. Әрбір компьютер алдын ала
берілген алгоритмен, яғни жоспарлы жұмыс істейді. Алгоритмді реттелген
амалдар жиыны, кезекпен орындалатын операциялар тізімі деп ұғынған жөн.
Оның көптеген анықтамасы бар. Соның бірі: алгоритм-берілген есептің шығару
жолын реттелген амалдар тізбегі түріне келтіру. Кез-келген есепті қарапайым
амалдарды тізбектей орындау арқылы шығаруға болады. Алгоритмді компьютерде
орындау үшін оны программа түрінде жазып шығу керек [3].
Алгоритмнің жеке қадамдардан құрыла алатын қасиеті дискреттігі деп
аталады. Алгоритмнің әр ұйғарымы немесе командасы орындаушыға түсінікті
болуға тиіс, яғни олар бір мағынада түсініліп, қайталанатын алғашқы
деректер бойынша бірыңғай нәтижелерге әкелуге тиіс. Алгоритмнің бұл қасиеті
анықтығы деп аталады [4].
Алгоритмдерді компьютерде орындау үшін оларды алдын ала жазып алу
керек, яғни ол белгілі бір заңдылықпен өңделуі тиіс. Жалпы жағдайда,
алгоритм жазудың келесі түрлері қабылданған:
1) табиғи тілдегі жазылуы;
2) белгілі бір түйінді сөздер-терминдер (псевдокодтар-жалған кодтар)
арқылы қысқаша тізбекті түрде жазу, мұны қарапайым алгоритмдік тіл
деп те айтады.
3) Графиктік жолмен (блок-схема арқылы) жазу;
4) Программалау тілдеріндегі жазылуы.
Бірақ табиғи тілде жазылған алгоритм компьютерде орындалмайды,
өйткені бұл жағдайда дәлдік, нақтылық сақталмайды. Ал алгоритмді екінші
көрсетілген жолмен жазу, қарапайым алгоритмдік тіл деп аталып, қолданылып
жүр. Мұны олардың ағылшын тіліне негізделіп жасалған программалау
тілдеріне жақындығымен түсіндіруге болады.
Алгоритмдерді графиктік жолмен жазу, кейіннен оны программалау тіліндегі
программаға айналдыру жұмысы мелекеттік стандартпен бекітіліп, ақпарат
өңдеу жұмысында қолданылады [3].
Кесте 1 Алгоритм блок-схемаларының арнайы белгілері
Іс-әрекеттің аталуы Блок пішімі Атқаратын жұмысы
Процесс Математикалық
өрнектерді есептеу
Таңдау Есеп шығару жолын
таңдау
Модификация
Цикл (қайталау) басы
Құжат
Нәтижені шығару,
Енгізу, шығару қағазға басу
Мәліметтерді енгізу,
Бастау, аяқтау (шығару)
Алгоритмдердің
Қосалқы программа басталуы, аяқталуы
Қосалқы программаларға
Түсініктеме кіру және шығу
Схеманы, формулаларды
түсіндіру
Алгоритмдік тіл команда және шамалардан тұрады. Командының өзі жай
(меншіктеу, арг, нәтиже, көмекші алгоритм) және құрама (серия, тармақталу,
таңдау, қайталау, параметрлі қайталау) деп екіге бөлінеді, ал шамалар
тұрақты сандар (натурал, бүтін, нақты) және айнымалы (литерлік, графикалық-
геометриялық фигуралар және сызықтар) болып екәге бөлінеді [17]. Мысалы:
Фибоначчи сандардың қосындысын есептеу алгоритмін қарастырайық.
Алг нат Фибоначчи ( нат к)
Басы егер к=2
Онда мән:=1
әйтпесе мән:= Фибоначчи
(к-1) + Фибоначчи (к-2)
болды
соңы
Алг Фибоначчи-цикл( нат к, натz )
Арг к
Рез , z
Басы нат х,у; бүт і
X:=1; z:=1
Егер k2
Онда і үшін 3-ден к-ға дейін
Цб y:=x x:=z z:=x+y
цс
болды
соңы [14].
Тапсырма қойылымы, алгоритм, бағдарлама тексті, нәтиже (ықшамдалған
түрі). Атаулар (идентификаторлар):
Дұрысы Дұрыс емес
№135, А 325 ав
(цифрдан басталған)
data6 mas a 121 (ашық
аралық бар)
Alpha_1 bb# 1 (арнайы символдар бар)
[19].
Паскаль тіліндегі программа үш бөліктен тұрады: тақырып, сипаттау
бөлімі және операторлар бөлімі.
Кез келген программаның алғашқы жолы PROGRAM сөзінен басталатын оның
тақырыбынан тұрады. Одан кейін программаның ішкі объектілерінің сипаттау
бөлімі жазылады. Бұл бөлім программадағы айнымалылар, тұрақтылар тәрізді
объектілердің жалпы қасиеттерін алдын ала анықтап алуға көмектеседі.
Сипаттау бөлімі бірнеше бөліктерден тұрады, бірақ программаның
күрделілігіне байланысты көбінесе ол бір немесе екі ғана бөліктен тұруы
мүмкін.
Программаның соңғы және негізгі бөлімі операторлар бөлімі болып
табылады. Орындалатын іс-әрекеттер, командалар осы бөлімде орналасады. Ол
begin түйінді сөзінен басталып, барлық атқарылатын операторлар
(командалар) тізбегі жеке-жеке жолдарға біткен соң end түйінді сөзімен
аяқталады.
Тілдің алфавиті программаның элементтерін құруда қолдануға болатын
символдар жиынынан тұрады. Оған әріптер, цифрлар және арнайы белгілер
(символдар) жатады [3].
Латын алфавитінің 26 әрпі (ағылшынша A-Z).
10 араб цифрлары: 0 1 2 3 4 5 6 7 8 9.
Операциялар таңбалары: +,-, *,, ,,,=,=.:,=.
Ажырату белгілері: ‘ () [] {} (**) : .
Арнайы белгілері: ^ # $ @ % ! & [2].
Паскаль программалау тілінің артықшылығы кең көлемде берілгендердің
әртүрлі типтерімен жұмыс істей алу мүмкіндігінде. Типтердің ішінде есеп
шығаруда көп қолданылатыны-бүтін типті сан [10].
Турбо Паскаль тілінде алдын ала программалары жасалып стандартты
модульге жинақталып қойылған, қажет кезінде пайдалануға болатын объектілер
бар. Солардың бірі стандартты функциялар болып табылады. Олар жиі
кездесетін математикалық және басқа да функцияларды есептеу үшін
қолданылады [3].
Паскальда бүтін типті деректерге нәтижесі де бүтін сан болатын
негізгі операциялар анықталған:
DIV –Бүтін қылып бөлу;
MOD- бөлшектің қалдығы;
SHR – берілген биттер санына оңға жылжу;
SHL- – берілген биттер санына солға жылжу;
TRUNC(X)- нақты Х шамасының бүтін бөлігін қайтарады;
ROUND(X)- нақты Х шамасының бүтін мәнге дейін дөңгелектейді [18].
Xn- ді дәрежеге шығару амалын белгілейтін арнайы белгі болмағанмен,
программалауда төмендегідей жазып көрсетуге болады:
Xn=exp(n*ln(x))
Кесте 2 Стандартты функциялар
МатематикадағыПаскаль Атқаратын қызметі Функция типі
жазылуы тілінде
жазылуы
׀х׀ Abs(x) Аргументтің абсолюттік Х-тің
шамасы типіндей
Arctgx Arctan(x) Аргументтің арктангенсі
Cosx Cos(x) Аргументтің косинусы Нақты
Sinx Sin(x) Аргументтің синусы Нақты
ex Exp(x) Е-нің х дәрежесі Нақты
Frac(x) Х санының бөлшек бөлігі Нақты
[x] Int(x) Х санының бүтін бөлігі Нақты
lnx Ln(x) Х санының натурал Нақты (бүтін)
π Pi логарифмі Нақты
x2 Sqr(x) Π- дің мәні pi=3.14159265Нақты
Sqrt(x) Х-тің квадраты Х-тің
Х-тің квадрат түбірі типіндей
Нақты
Логикалық шамалар TRUE (ақиқат) немесе FALSE (жалған) мәндерінің
бірін ғана қабылдайды. Логикалық типтегі шамаларға мына амалдар
қолданылады: and – (ЖӘНЕ), or –(НЕМЕСЕ).
Мысалы: Логикалық өрнектердің мәндерін анықта:Y = (A and B) or C при
A=TRUE, B=FALSE, C=TRUE.
program name; {Программаның аты}
uses CRT; {Модульды іске қосу}
var a,b,c,y:boolean; {а,в,с логикалық типті айнымалылар}
BEGIN
clrscr; {экранды тазалау}
a:=true; b:=false; c:=true; {а-ақиқат, в-жалған, с-ақиқат}
y:=(a and b) or c; {а және в немесе с }
writeln('y=',y); {у-ті шығару}
readln; {мәліметтерді оқу}
END. [12].
1.2 Сызықтық құрылымды алгоритмдерді программалау
Сызықтық алгоритмдерді программалауға ерекше көңіл бөлу керек.
V=pi*R2H цилиндрдің көлемінің формуласы, конустың көлемі 13 цилиндрдің
көлеміндей V=pi*R2*H3, pi=3.14159263. Осыған программа құру керек.
Program VOL; {Кез келген атты жазуға болады}
Const pi=3.14159263; {Тұрақтыны хабарлап тұр}
Var
V1,V2:Real; {цилиндрдің және конустың көлемдері. Real-нақты сан
екенін көрсетеді}
R,h:Integer; { R,h-бүтін сан }
Begin
Write(‘Радиус пен биіктікті енгіз:’);
Readln(R,h); { R,h-мәндерді енгізу }
V1:=pi*Sqr(R)*h; { цилиндрдің көлемінің формуласы }
V2:=V13; { конустың көлемінің формуласы }
Writeln(‘цилиндрдің көлемі’,V1);
Writeln(‘ конустың көлемі’, V2);
End. [8].
Стандарт функцияларды қолданып, өрнектің мәнін есептеңдер:
Program S_pr;
USES CRT;
VAR a,b:Integer; y:real;
Begin
clrscr;
writeln (' 2 санды енгіз');
Readln(a,b);
y:=sqrt(sqr(a)-abs(b));
writeln('y=',y:2:3);
readln;
END. [1].
Арифметикалық операцияларды және санның типтерін ажырата білу
программаны құруда маңызы зор. Төмендегіде келтірілген мысал оған дәлел
болады:
Дұрыс дұрыс емес
1) Var 1) Var
a, b: integer; a, b: integer;
r: integer; r: integer;
s: integer; r:= ab; {бөлуге
болмайды}
r:=adivb; s:=a*b;
2) Var 2) Var
a: integer; b, c: real a: integer; b,
c: real
c:=a+b a:=b+c {сол
жағында едәуір кең тип тұруы керек}
1.3 Тармақталу алгоритмдерді программалау
Тармақталу операторларының үш түрі бар (қосымшадан қараңыз).
Тармақталу алгоритмдерді программалауда блок-схемаларды қолдану міндетті
деп есептейміз. Себебі программа құрғанда блок-схемалар көп көмегін
тигізеді. Мысалы, ах2+вх+с=0 квадрат теңдеуін шешу программасын блок-
схеманының көмегімен құрып көрейік. Бұл есепті шешу үшін математикалық
білім керек және 8-сыныптағы Алгебра пәнінде қарастырған материалды еске
түсіріп, оның маңыздылығын сезінуге баулау тәрбиелеу оқытудың бір көрінісі.
Сызба 1 Квадрат теңдеуін шешу блок-схемасы
Program Kvadrat tendey;
Var a, b, c, D: integer;
X, X1, X2: real;
Begin
Writeln (‘a, b, c-engiz’); {нақты айнымалыларды
шығару}
Begin
Writeln (‘a, b, c-engiz’);
Readln (a, b, c);
D:=sqr(b)-4*a*c; {Формуланы жазу }
Writeln(‘D=’, D);
If D0 then
Begin
X1:= (-b-sqrt(D))2*a;
X2:= (-b+sqrt(D))2*a;
Writeln (‘X1=’, X1:5:2, ‘X2=’, X2:5:2);
End else
If D0 then
Begin
Writeln (‘Теңдеудің бір түбірі бар’);
X:= -b2*a;
Writeln (‘X=’, X:5:2); {5 орынды санды 2 орынға дөңгелектеу}
End else
Writeln (‘Теңдеудің түбірі жоқ’);
Readln;
End.
Есепті таңдау case операторын қолданып шешу тиімді әдістердің бірі
болып табылады. Себебі мүмкін болатын жағдай екеу емес, одан да көп бола
береді. Мысалы, жыл мезгілдерін анықтайтын программа құрайық .
program Мезгіл; {Кез келген атты жазуға болады}
uses CRT;
var m:Integer; { m- бүтін типті екенін көрсетеді}
BEGIN
clrscr;
writeln('Айдың аттарын енгіз:');
readln(m);
case m of
1,2,12: writeln('Қыс');
3,4,5: writeln('Көктем');
6,7,8: writeln('Жаз');
9,10,11: writeln('Күз');
end;
readln;
END. [7].
Мынандай бір қызықты есепті енгізіп отырмыз:
Қазақша жыл қайыру алгоритміне программа құрып көрейік. Ол үшін ең алдымен
төмендегідей белгілеулерді енгіземіз: Мк=13+(к-1)*12, мұндағы к=1, 2, 3,
..., Мк-мүшел сандар. Қазақ жыл қайыру күнтізбесі бойынша мүшел есебін
дұрыс және тез шешу үшін мүшел жылдарының кестелік рет санын және жыл
жануарлары аттарын жатқа білу шарт.
Г- қазіргі (григориандық) жыл саны, М- мүшел саны.
1- қадам: А=Г+9 2- қадам: А=12* n+к, к=0, 1, 2, 3, 4, 5, 6, 7, 8, 9,
10, 11
3- қадам: Мүшел бойынша қай жыл екенін анықтау.
Ескерту: Егер қалдық к=0 болса, онда к= доңыз жылы деп аталады.
Мүшел алгоритмнің Паскаль тіліндегі программасы:
PROGRAM GYL;
VAR А, G, к: integer;
BEGIN
Write (‘G жылды енгіз’); {Туған жылды енгізу}
read(G); А: =G+9; {оған 9 санын қосамыз}
k:=Amod12; case k of {шыққан нәтижені 12-ге бөлу}
0:write (A’= доңыз жылы’); {0-жыл- доңыз жылы }
1:write (A’= тышқан жылы’); {1-жыл- тышқан жылы }
2:write (A’= сиыр жылы’); {2-жыл- сиыр жылы }
3: write (A’= барыс жылы’); {3-жыл- ,барыс жылы }
4^ write (A’= қоян жылы’); {4-жыл- қоян жылы }
5: write (A’= ұлу жылы’); {5-жыл- ұлу жылы }
6: write (A’= жылан жылы’); {6-жыл- жылан жылы }
7: write (A’= жылқы жылы’); {7-жыл- жылқы жылы }
8: write (A’= қой жылы’); {8-жыл- қой жылы }
9: write (A’= мешін жылы’); {9-жыл- мешін жылы }
10: write (A’= тауық жылы’); {10-жыл- тауық жылы }
11: write (A’= ит жылы’); end; {11-жыл- ит жылы }
end.
1.4 Циклдік құрылымды алгоритмдерді программалау
Көп жағдайда аргументтердің әртүрлі мәні бойынша алгоритмнің белгілі
бір бөліктерін бірнеше рет қайталауға тура келеді. Лсындай процестерді
ұйымдастыру үшін циклдік құрылымды алгоритмдер – қайталау операторлары
қолданылады. Олар әр түрлі заңдылық негізіндегі ереже бойынша құрылады.
Циклдік операторлардың үш түрі бар (қосымшадағы материалдан
қараңыз). Параметрлі қайталау командасының жазылу форматы:
FOR P:= NV TO KV DO A немесе
FOR P:= NV DOWNTO KV DO А, мұндағы Р-циклдік парметрі, NV-
цикл параметрінің алғашқы мәні, KV- цикл параметрінің соңғы мәні, А-
қарапайым немесе құрама оператор.
Бір есепті циклдік оператордың қайсысымен де шығаруға болады.
Мысалы, есептеңдер: у=х2, мұндағы х=2, 4, 6, 8, 10.
1) Цикл -әзір (While) үлгісімен құрылған программасы:
Program cikl1;
Var X,Y:Integer; { x,y - бүтін типті екенін
көрсетеді}
Begin
X:=2; { алғашқы 2 мәнін
меншіктейміз}
While x=10 Do { 10-ға дейіні}
Begin
Y:=Sqr(X); { х-тің квадрат түбірі}
Writeln(‘X=’,X:3, ‘Y=’,Y:5);
X:=X+2; { циклдің қадамы 2-ге тең}
End;
End.
2) Цикл – Repeat үлгісімен құрылған программасы:
Program cikl3;
Var x,y:Integer; { x,y - бүтін типті екенін көрсетеді}
Begin
X:=2; { алғашқы 2 мәнін меншіктейміз}
Repeat { шартты соңынан тексереді}
Y:=Sqr(x); { х-тің квадрат түбірі}
Writeln(x:3,y:5);
X:=x+2; { циклдің қадамы 2-ге тең}
Until x10; { 10-нан артық}
End.
For – параметрлі қайталау оператордың жазылу түрлерін төмендегі
кестеден көріп, дұрысын ажырата білуіміз керек:
Оператордың жазылуы Нәтижесі
For k:=-1 to 6 Do Write (x, ‘,’) -1, 0, 1, 2, 3, 4, 5, 6
For k:=3 to 3 Do Write (x, ‘,’) 3
For k:=1 to 9 Do Write (x, ‘,’) 1, 2, ...,9
For k:=-1 to -6 Do Write (x, ‘,’) цикл орындалмайды
For k:=10 downto 6 Do Write (x, 10, 9, 8, 7, 6
‘,’) 0, -1
For k:=0 downto -1 Do Write (x, цикл орындалмайды
‘,’)
For k:=1 downto 16 Do Write (x,
‘,’)
1.5 Бір және екіөлшемді жиымдар
Жиымдар – бір атаумен белгіленген бір типті шамалардың нөмірленген
тізімі. Жиымның элементтері сәйкес тібектелген ұяшықтарға орналастырылады,
жиым өзінің атауымен және индексімен белгіленеді. Жиымды құрайтын әрбір мән
оның элементі деп аталады.
Программада жиымға атау беріледі, ол арқылы жиымның элементін
пайдалануға болады. Жиымның элементтерін құрайтын айнымалылар индексті
айнымалылар деп аталады. Жиым элементтері болатын индекстер константа
(тұрақты), айнымалы немесе өрнек түрінде берілу мүмкін.
Жиымға төмендегі қасиеттер тән:
1) Жиымның әр компоненті айқын түрде белгілене алады және оған
тікелейқатынас бар;
2) Жиымның компоненттерінің саны онысипаттаған кездеанықталады және
одан кейін өзгермейді.
Егер жиымның әрбір элементіне реттік нөмір бекітілген болса, онда
жиым сызықтық деп аталады. Жалпы жиым элементінің индекстерінің саны
жиымның өлшемін анықтайды. Осыған байланысты бірөлшемді (сызықтық),
екіөлшемді, үшөлшемді және т.с.с. болып бөлінеді.
Мысал. Жиым элементтерінің қосындысын есептейтін программа.
Алдымен 10 нақты сан енгізіліп, олар жиым элементтері ретінде
сақталады, сонан кейін енгізілген сандардың қосындысы есептеліп нәтиже
ретінде шығарылады.
Programm PRIMER;
Var
M: Array[1..10] of real; {жиымды сипаттау }
I: integer; { For операторының
параметрі}
S: real; { элементтер
қосындысы}
Begin
For i:=1 to 10 do { Жиымды толтыру}
Begin
Write(‘Жиымның ’, I, ‘-элементін енгізіңдер:’);
Readln(m[i]);
End;
S:=0; {Қосынды санауышын
тазалау}
For i:=1 to 10 do s:=s+m[i]; {Қосынды есептеу}
Write(‘Жиым элементтерінің қосындысы=’, s);
Readln;
End.
Матрицалар жиымдардың ішінде екіөлшемді жиымдар, оларды кейде
тікбұрышты (квадрат) кестелер немесе матрицалар деп атайды. Матрица
элементері екі индекс арқылы сипатталады. Мысалы, мұндағы бірінші индекс
–жолдың нөмірі, екіншісі – бағананың нөмірі. а1,3 – а бір бүтін оннан үш
емес а бір де үш деп оқылады. Паскаль тіліндегі программада сәйкесінше
а[1, 3] түріндегі құрылым қолданылады.
Матрицаларды өңдеу үшін параметрлі қабаттасқан циклдерді қолданған
ыңғайлы. Төмендегі 4*5 матрицасын пернетақтадан бүтін сандармен толтыруға
арналған программа фрагменті келтірілген.
For i:=1 to 4 do
For j:=1 to 5 do
Begin
Write(I, ‘’,j, ’ ’);
Readln a[I, j];
End;
Turbo Pascal жүйесінде өлшемдері бірдей жиымдар үшін жиымды жиымға
меншіктеу операциясын қолдануға болады. Мысалы, екі жиым төмендегідей
сипатталса:
Var
A, B: array[1..50, 1..60] of real;
Онда А:=В; меншіктеу операциясын жазуға болады.
1.6 Графиктік объектілерді программалау
Графикалық режімде экранның нүктесін түрлі түске бояп, сол түстер
арқылы сызықтар, мәтіндер және әр түрлі бейнелер тұрғызатын мүмкіндіктер
бар. Графкалық программалау процесін тиімдірек ету мақсатында Borland
International фирмасы GRAPH арнайы программалар кітапханасын жасап шығарған
болатын, онда қазіргі кездегі мониторлардың барлық типтерімен жұмыс істей
отырып, экранда түрлі мөлшердегі қаріптер шығара алатын драйверлер жиыны
бар.
Экранда мәлімет шығаруды аппараттық жағынан сүйемелдеу екі модуль –
бейнеадаптер және бейнемонитор арқылы қамтамасыз етіледі.
Жалпы бейнеадаптер екі бөліктен – электрондық сәулелік түтікше
контроллерінен (CRT контроллері) және бейнебуферден тұрады. Жетілдірілген
қазіргі кездегі адаптерлер бұлардан басқа графика контроллерімен де
жабдықталады.
CRT (Cathod ray tube – электронды-сәулелік трубка) жиі
қолданылатын модульдің бірі. CRT модулі – мәліметтерді экранға шығару,
пернетақтадан енгізу, сонымен бірге дыбыстық сигналдарды басқаруға
негізделген процедуралар мен функциялардан тұрады.
CRT модулі арқылы экранмен жұмыс жасағанда бүкіл экран жеке жолдарға
бөлінеді. Ал әр жол жеке позицияларға бөлінеді. Әр позицияға бір символ
орналастыруға болады.
Нүкте салу операторы. Экранның кез келген жеріне нүкте салуға
болады, GRAPH модулінде нүкте PutPixel процедурасы арқылы салынады, оның
пішімі PutPixel(X, Y: integer; color: word); мұндағы X,Y-нүкте
координаталары, оның түсін анықтайды. Экран бетіндегі бұрын салынған
нүктенің орнын анықтау үшін GetPixel(X, Y: integer):word; функциясы
қолданылады.
Түзу сызық салу процедурасы экранда екі ұшының координаталары
бойынша кесінді сызу ісін атқарады. Оның пішімі Line(X1, Y1, X2, Y2:
integer); мұнда ағымдағы түс бойынша координаталары X1, Y1 нүктесінен X2,
Y2 нүктесіне дейін кесінді сызылады.
Бастапқы нүкте көрсетілмесе, онда Lineto(X, Y: integer); - меңзер
тұрған орыннан бастап координаталары X, Y болатын нүктеге дейін түзу сызық
сызатын процедураны қолдануға болады.
LineRel(DX, DY: integer); - ағымдағы нүктеден қашықтығы
координаталар өсімшесіне DX, DY сәйкес келетін жаңа нүктеге дейін түзу
сызық сызады.
SetLineStyle(T, P, Th: word); сызық қалыңдығы мен стилін орнату.
Көпбұрыш сызу процедуралары көпбұрыштардың бірнеше түрін салу
мүмкінігін береді, олардың түсі, стилі келісім бойынша орнатылады.
Rectangle (x1, y1, x2, y2); - сол жақ жоғарғы (х1, у1) және оң жақ
төменгі төбелерінің координаталары (х2, у2) бойынша төртбұрыш сызады.
For i:=1 to 100 do
Begin
SetColor(Green); Rectangle(200, Random(300), 250, 300);
Delay(50);
ClearDevice
End.
Bar (x1, y1, x2, y2); - мұнда ағымдағы түспен іші боялған
тіктөртбұрыш сызылады.
SetFillStyle (Pattern, Color: word) – объектінің ішін бояйды.
Floodfill(x, y: integer; Bor: word) – таңдалған стиль бойынша тұйық
фигураның ішін бояйды.
Мысал: Әр түрлі стильмен сызылған төртбұрыштар сызу керек.
Program tortbur;
Uses graph, crt;
Var d, m: integer;
Begin
D:= detect; initgraph(d, m, ‘’);
Setbkcolor(1);
Rectangle(150, 150, 300, 320);
Setfillstyle(8, 6);
Floodfill(160, 200, 15);
Setfillstyle(1, 3);
Bar(350, 150, 500, 320);
Readln; closegraph
End.
1.7 Процедуралар және функциялар
Практикалық есептерге программа құрғанда үлкен программаның белгілі
бір бөлігін әр түрлі мәндер бойынша бірнеше рет қайталап пайдалануға тура
келеді. Мұндайй бір типтес программа бөлігін программаның әр бөлігінде
қайталап жаза бермеу үшін оны жеке қосалқы программа ретінде бөліп жазған
ыңғайлы.
Жеке программа түрінде бөлек жазылған, қажет кезінде оған оралып,
оны пайдаланып отыруға болатын негізгі программаның арнайы бөлігін қосалқы
программа дейді. Қосалқы программаға автоматты түрде енуге және одан шығуға
болады.
Қосалқы программаны пайдалану төмендегідей мүмкіндіктер береді:
1) негізгі программаның көлемі кішірейеді;
2) негізгі программада пайдаланылған айнымалыларды қосалқы
программада пайдалануға болады;
3)қосалқы программаны пайдалану құрылымдық программалауға мүмкіндік
береді.
Паскаль тілінде алгоритмдік тіл тәрізді қосалқы программаның
екі түрі пайданылады. Олар: процедура және функция. Бір программада бір
немесе бірнеше процедура немесе функция пайдалануға болады.
Кез келген процедура – процедура аты және процкдура мәтінінен, яғни
тұлғасынан тұрады. Процедура тұлғасы негізгі программа тәрізді:
айнымалыларды сипаттау және операторлар бөлімнен тұрады. Процедураны
сипаттаудың жалпы түрі:
PROCEDURE аты(формальды параметрлер тізбегі);
Формальды параметрлер тізбегі процедура мен негізгі программа
арасындағы байланыс үшін қажет. Тізбекте процедураның енгізілетін және
шығарылатын параметрлері және олардың типтері жазылады.
Турбо Паскальда процедура тақырыбын формальды параметрлер
тізбегінсіз жазуға да болады:
PROCEDURE аты;
Процедураны сипаттау өздігінен ешқандай іс-әрекет орындамайды.
Процедурада жазылған операторлар орындалу үшін, негізгі программаның қажет
жерінде процедураны шақыру операторын жазу керек.
Процедураны шақыру операторының жалпы түрі:
процедура аты (фактіге негізделген параметрлер тізбегі);
Процедура орындалу барысында нақты, яғни фактілі параметрлер
формальді параметрлерді алмастырады. Нақты параметрлер негізінде
тұрақтылар, айнымалылар және өрнек алынуы мүмкін.
Мысалы: аnдәрежесін есептеу программасын құр, мұндағы n-дәреже
көрсеткіші, а-дәреже негізі. Мәндерді пернетақтадан енгізу керек.
Ең алдымен процедураға жеке программаны жазайық:
Procedure Degree ( х ,у: integer; Vаr st: Longint); {
процедура аты }
Var i :integer; {Жазылу
бөлігі }
Begin
{ процедураның тұлғасы}
st:=1;
For i:=1 to y do
St:=st*х;
End;
Программаның толықтай жазылуы келесі түрде болады:
Program Ехатр1е;
Var a, n: Integer; s: Longint;
Procedure Degree ( х ,у:; Уаr st: Longint);
Var i : integer;
Begin
st:=1;
For i:=1 to y do
St:=st*х;
End;
Begin
Writeln(екі санды енгізу); {мәндерді енгізу }
Readln(а,n);
Degree (а,n,s); {процедураны шақыру }
Writeln ('Нәтиже ',s); {мәндерді шығару аn }
Readln;
Еnd.
Функцияның процедурадан айырмашылығы, функция жұмысының нәтижесі
негізгі программаға функция мәні ретінде қайтады. Сондықтан функция үшін
нәтиже типі көрсетіліп, ал функция тұлғасында сол жағында функция аты
көрсетілген меншіктеу операторы болу керек.
Функция нәтижесі негізгі программаға функция аты арқылы қайтып
оралатын болғандықтан, функцияны шақыруды стандартты функцияға ұқсас, өрнек
операнд (аргументі) түрінде жазуға болады:
функция аты (формальды параметрлер тізбегі);
Формальды параметрлер мен фактілі параметрлер арасындағы байланыс
процедурадағы байланыс ережесімен сәйкес.
Мысалы: формуласын есептейтін программа құр.
n, k —берілген сандарды сақтау айнымалылар;
С — нәтижені сақтау айнымалы.
Берілге формуланы есептеу үшін, n!, (n— к)!, k! әрқайсысын жеке
есептеу керек. n! Факториал санын (n!=1*2*...*n) түрде жазамыз.
Function fасtоriа1(n:intеger):Lопgint; { функцияның аты}
Var i: integer; rez: longint; {жазылу бөлігі
}
Begin
{ функция тұлғасы}
Rez:=1;
For i:=1 То n do
Rez:=rez * i;
fасtоriа1:=rez; { функция
мәндерін меншіктеу}
Еnd;
Енді программаны құрайық:
Рrogram Ехатр1е_1;
Уаr n,к: integer; а1, а2, а3, с: lопgint;
Function fасtоriаl (n :intеger):Lопgint; { функцияның аты
}
Var I: integer; rez: longint; {
жазылу бөлігі }
Begin
{ функция тұлғасы }
Rez:=1;
For i:=1 То n do
Rez:=:rez*i;
fасtоriа1:=rez; {
функция мәндерін меншіктеу }
Еnd;
Begin
Writeln(' n және k мәндерін енгізу, Сnk ‘);
Readl n(n, k) ;
а1:=fасtorial(n);
{ n.'-ді есептеу}
а2:= fасtorial(k);
{ k! -ді есептеу }
аЗ:= fасtorial(п (n-k); {
(n- k)! -ді есептеу }
с:=а1div (а2 * аЗ);
{нәтиже }
writeln (c);
end.
1.8 Символдық шамалармен жұмыс жасау
Турбо Паскаль жүйесінде мәтіндік мәліметтер мәндердің екі түрлі
типімен берілуі мүмкін: символдық (CHAR) және жолдық немесе тіркестік
(STRING). Тіркес – бұл символдар тізбегі.
Компьютердің ішкі жадында әр символ 1 байт орын алады.
Мәндерді енгізгенде кез келген сан емес перненің барлығы символ
ретінде қабылданатындығын есте сақтау керек. Сонымен бірге Enter пернесі
де символ ретінде қабылданады.
1-Мысал. a=’I’; b=’_’; c=’j ‘ айнымалыларын енгізуді және экранға
шығаруды ұйымдастыратын программа фрагменті
Program stroki;
Var a, b, c: char;
Begin
Writeln(‘Бастапқы мәндерді енгізіңдер’);
Readln(a, b, c);
Write(a, b, c);
Writeln;
End.
Пернетақтадан символдарды енгізгенде апострофсыз тереміз:
I_ j Enter
Нәтиже: I_ j
Турбо Паскаль жүйесінде символдар реттеоген, сондықтан оларға
қатынас (, , =, =, =) операцияларын қолдануға болады. Бұл шартты
операторда символдық мәндер арқылы логикалық өрнектер жазуға мүмкіндік
береді, мысалы:
If ch=’!’ then ch:=’.’;
Символдық мәндер үшін параметрлі For операторын қолдануға болады.
For ch:=’a’ to ‘d’ write(ch);
Writeln;
Нәтижесінде экранда abcd символдары тізбегі шығады.
2 Орта мектептегі Паскаль тілі программасын
оқытудың әдістемелік үлгілері
2.1 Деңгейлеп оқыту
Бірінші деңгей:
1) кез-келген с-символмен А-бүтін саны берілген. Осы с-символының
алдындағы символды және А-санынан кейінгі санды анықтау керек.
PRED (‘C’)= ‘Succ (A)’=;
2) С-символынан кейінгі символды А-санының алдындағы санды анықтау
керек. Succ (С)= PRED (А)=;
3) Х-бүтін саны берілген. Реттік нөмірі х болатын символды анықтау
керек. X: integer; CHR (x)= S: char;
4) S-символы берілсе, оның реттік нөмірін анықтау керек: ORD (S);
5) а-нақты саны берілген. Оның бүтін бөлігін анықтау керек:
A:Real; TRUNC (A)=;
6) берілген а-нақты санын жақын орналасқан бүтін санға дейін
дөңгелекте: A:Real; ROUND (A)=;
7) Кез келген логика типтес айнымалының алдындағы айнымалыны анықта:
PRED (True);
8) ORD (CHR(49)); Succ('B'); неге тең? ORD (CHR(49)) =’49’; Succ('B')
)=’С’;
9) PRED('B'); CHR(ORD('*'))-неге тең?: PRED(‘B’)=’A’; CHR(ORD('*'))=
('*').
10) Word типті айнымаының мәні: 0-65535.
11) Егер а және в айнымалылары Integer типті болса, x:=ab*100
арқылы х айнымалысы қандай типті? (Real)
12) Программада қандай бөлім міндетті түрде болу керек? (begin..end)
13) Қайсы жағдайда программа құрылысы дұрыс анықталған?
A) Program P1; B) Program P2;
Const n=15; type massiv:
array[1..n] of Integer
type massiv: array[1..n] of Integer Const n=15;
var a, b: massiv; var a, b:
massiv;
14) Тіркес типті а айнымалысын айқындау қайсы жағдайда қате береді?
A) a: string[255] ; B) a:
string[256] ;
15) Төмендегі әрекеттердің нәтижесінде S2 айнымалысының мәні қандай
болады?
S1:=’ABC’; S2:=S1+’DEF’;
A) ABCDEF B) ABC+DEF
Екінші деңгей:
1) а және в-бүтін сандары берілген. А-санын в санына бөлу нәтижесінің
бүтін бөлігін анықта? а,в: integer; adivb;
2) х және у бүтін сандарының бөліндісінің қалдығын анықта? х,у:
integer; xmody;
3) с және d-нақты сандар берілген. cd бөліндінің бүтін
бөлігінанықта? C,d:real; cdivd TRUNC(cd);
4) А-нақты сан және М-бүтін сандар берілген. А-санын бүтін бөлігіне
дейін дөңгелектеп, оны М-санына бөлудің қалдығын анықта? А:real; М:
integer; (ROUND(A))modM;
5) А-бүтін сан, С-нақты сан берілген. С-саныныңң бүтін бөлігін
анықтап, А-санының анықталған нәтижеге бөлудің бүтін бөлігін анықта? А:
integer; С: real; (ROUND(C))divA;
6) К-бүтін сан, одан кейінгі санды анықтап (N), NК-бөліндісінің
қалдығын анықта? К: integer; Succ (К)= N, NmodК;
7) С-символдық айнымалысы, М-бүтін сан берілген. С-айнымалысының
реттік номерін М-ге бөлудің қалдығын анықта? (ORD(С))modM; М: integer;
C:char;
8) С және S символдық айнымалысы берілген. Олардың реттік номерлерін
анықтап, нәтижелердің қатынастарының бүтін бөлігін анықта? C,S:char;
ORD(S); TRUNC(ORD(C))ORD(S);
9) С-символдық айнымалысы берілген, А-нақты сан. С-символының реттік
номерлерін анықтап,А-санын дөңгелкте. Табылған нәтижелердің қатынастарының
қалдығын анықта? C:char; А:real; ORD(C)modROUND(A);
10) М-бүтін сан. MK қатынасының бүтін бөлігін және нәтижені М-санына
бөлудіңң қалдығын анықта? М: integer; к:real; (MdivK)modM.
11) Төмендегі амалдардың орындалу нәтижесі қайсы?
D:=6; a:=d5; Writeln (a);
1) d5; 2) false; 3) true; 4) 65.
12) Төмендегі цикл қанша рет орындалады:
n:=1; While n1 do x:=n+1; (ешбір рет)
13) Төмендегі цикл қанша ретқайталанады және циклдаг шыққанда а, в, с
айнымалыларының мәндері қандай?
a:=1; b:=1; while a+b8 do begin a:=a+1; b:=b+2; end;
c:=a+b; writeln(a, b, c) (2 рет, a=3 b=5 c=8).
14) Төмендегі программа қандай нәтиже береді?
Program P14;
Var c, d: Char;
Procedure P (x: Integer); const y=true;
Begin Writeln (x, ‘ ’, y); end;
Procedure Q (x: Integer);
Var y: Char;
Begin x:=succ (x); y:=’*’;Writeln (x, ‘ ’, y); end;
Begin x:=’a’; y:=’5’; P(8); Writeln (x, ‘ ’, y);
Q(6); Writeln (x, ‘ ’, y); end. (8 true
a 5 7+ a 5 ).
15) Төмендегі программа қандай нәтиже береді?
Program P15;
Var i: Integer;
Procedure Proc;
Begin i:=100 end;
Begin i:=1; proc; Writeln ( ‘i= ’, i); end. (100)
Үшінші деңгей:
1) ұзындығы L-болатын маятник тербелісінің периодын анықта? Периодты
есептеу үшін T=2π, g=9.81 формуласын қолдан.
program Period;
var const g=9.81; const pi=3.14; L:integer; T:real;
BEGIN
read (L); { Мәнді енгізу}
T:=2*pi*sqrt(Lg); { Формуланы жазу}
writeln(' Period '); { Периодты шығару}
writeln('T=',T);
END.
2) Массалары M1 және M2 болатын бір-бірінен к-қашықтықта орналасқан
денелердің F тартылыс күшін анықта? F=,G=6.67*10-11.
program Kush;
const G=6.67*10-11 { Тұрақтыны сипаттау}
var M1,M2:integer; F,R:real; { Айнымалыларды сипаттау}
BEGIN
read (M1,M2,R); { Мәндерді енгізу}
F:=((M1*M2)sqr(R))*G; { Формуланы жазу}
writeln('F=',F); { Күшті шығару}
END.
3) Радиусы R-болатын шеңберге сырттай сызылған n-бұрышты көпбұрыштың
периметрін тап, P=2*n*R*tan(πn) бойынша есептеңдер. n,k:integer; p;real;
4) Үшбұрыштың үш қабырғасы берілген. Герон формуласы бойынша ауданын
табыңдар? а, b, с:integer; р, s:real; p=(a+b+c)2; S:=sqrt((p-a)*(p-b)*(p-
c));
5) Координаттары (х1, у1) және (х2, у2) болатын екі нүктенің ара
қашықтығын анықта? х1, у1,х2, у2:integer; d:real; d:=sqrt(sqr(c)-sqr(b)).
2.2 Жаттығуларды шешу жолдары
Есеп №1. x, y, z нақты сандары берілген. Төмендегі өрнектердің
мәндерін есептейтін программа құр?
а).
program Esep_1;
var x, y:integer; s:real; {
Айнымалыларды сипаттау}
BEGIN
readln('x,y'); { Мәнді
енгізу}
writeln('Үшбұрыштың ауданы'); { Мәнді шығару}
writeln('S=',S:4:2);
END.
Қалған есептердің программасы осы типтес болады , сондықтан біз
өрнектердің Паскаль тіліндегі жазылуын ғана көрсетеміз.
a) 1+х+, S=1+x+sqr(x)2;
b) 1+׀x+1׀+׀x׀, S=1+abs(x)+abs(x+1);
c) , S= sqrt(1+sqrt(abs(x)));
d) , S=(x+z)(y+z)-2.5;
e) z+ , S=z+((x+y-1.7)x)(z+y+0.5);
f) , S=(1+sqrt(1+sin(abs(x))))2;
Есеп №2. Тең қабырғалы үшбұрштың қабырғаларының ұзындығы берілсе,
үшбұрыштың ауданын табу программасын құр?
program name;
uses CRT;
var a:integer; s:real; { Айнымалыларды
сипаттау}
BEGIN
clrscr;
readln('а-ны енгіз'); { Мәнді енгізу}
S:=(sqr(a)*sqrt(3))4;
writeln('Үшбұрыштың ауданы'); { Мәнді шығару}
writeln('S=',S);
END.
Есеп №3. Тікбұрышты үшбұрыштың гипотенузасы мен катеті берілсе,
екінші катетін табыңдар. C, b:integer; a:real; a:=sqrt(sqr(c)-sqr(b)).
Бұл есеп жоғарғыға ұқсас шешілетіндіктен, оның программасын жазған жоқпыз,
тек Паскаль тіліндегі жазылуын көрсетуімен шектелдік.
Есеп №4. Үшбұрыштың үш қабырғасыберілсе, оның медианаларын
табыңдар. а, в, с – үшбұрыштың қабырғалары.
ma:=0.5*sqrt(2*sqr(b)+2*sqr(c)-sqr( a)); mb:= 0.5*sqrt(2*sqr(a)+2*sqr(c)-
sqr(b));
mc:= 0.5*sqrt(2*sqr(b)+2*sqr(a)-sqr(c));
Бұл есеп жоғарғыға ұқсас шешілетіндіктен, оның программасын жазған жоқпыз,
тек Паскаль тіліндегі жазылуын көрсетуімен шектелдік.
Есеп №5. х, у нақты сандар берілген.
А) Max(x,y); ә) min(x,y); табыңдар
x,y:real; x,y:real;
if xy then x:=max if xy then x:=min
else y:=max else y:=min
Есеп №6. х, у, z нақты сандар берілген. Бұл сандардың ең кішісін тап.
Program kishi;
Var x, y, z, min: integer; {бүтін айнымалыларды
сипаттау}
Writeln(‘x’, ‘y’, ‘z’); {бүтін айнымалыларды
шығару}
Read(x, y, z); {бүтін айнымалыларды
енгізу}
If xy then min:=x else min:=y {нақты сандардың ең кішісін
анықтау }
If zmin then min:=z
Writeln(‘min=’, ‘min’); { ең кішісін шығару }
End.
Есеп №7. х, у, z нақты сандар берілген. Бұл сандардың ең үлкенін тап.
Program ylken;
Var x, y, z, max: integer; {бүтін айнымалыларды
сипаттау}
Writeln(‘x’, ‘y’, ‘z’); {бүтін айнымалыларды
шығару}
Read(x, y, z); {бүтін айнымалыларды
енгізу}
If xy then max:=x else max:=y { нақты сандардың ең үлкенін
анықтау }
If zmax then max:=z
Writeln(‘max=’, ‘max’); { ең үлкенін ... жалғасы
РЕСПУБЛИКАЛЫҚ МЕМЛЕКЕТТІК ҚАЗЫНАЛЫҚ КӘСІПОРЫНЫ
МАТЕМАТИКА, ФИЗИКА, ТЕХНИКА ЖӘНЕ
АҚПАРАТТЫҚ ТЕХНОЛОГИЯЛАР ФАКУЛЬТЕТІ
Математикалық модельдеу және
компьютерлік технологиялар кафедрасы
ДИПЛОМДЫҚ ЖҰМЫС
Орта мектептегі Паскаль тілі программасын
оқытудың әдістемелік ерекшеліктері
Кіріспе
1 Орта мектепте Паскаль тілі программасын оқытудың
әдістемелік ерекшеліктері
1.1 Паскаль тілі программасының негізгі ұғымдар
1.2 Сызықтық құрылымды алгоритмдерді программалау
1.3 Тармақталу алгоритмдерді программалау
1.4 Циклдік құрылымды алгоритмдерді программалау
1.5 Бір және екі өлшемді жиымдар
1.6 Графикалық объектілерді программалау
1.7 Процедуралар және функциялар
1.8 Символдық шамалармен жұмыс істеу
2 Орта мектепте Паскаль тілі программасын оқытудың әдістемелік үлгілері
2.1 Деңгейлеп оқыту
2.2 Жаттығуларды шешу жолдары
2.3 Сабақ жоспары
2.4 Тест тапсырмаларын ұсыну
2.5 Орта мектепте Паскаль тілі программасын оқытуда интелект-
картаны қолдану
Қорытынды
Әдебиеттер тізімі
Қосымша а
қосымша ә
қосымша б
қосымша в
қосымша г
қосымша ғ
қосымша Д
қосымша Е
КІРІСПЕ
Қазіргі кезде Паскаль тілі кез-келген күрделі есептерді шығара
алатын, кең таралған стандартты оқу тіліне айналды. Сондықтан жалпы білім
беретін мектептерде программалауды оқытуда осы Паскаль тілі таңдалып
алынған.
Біздің негізгі мақсатымыз – мектеп курсындағы жаңа бағдарлама бойынша
2005-2006 оқу жылында ғана Информатика пәніне енгізілген 9-сынып
оқулығындағы Паскаль тілі программасының оқытудың әдістемелік
ерекшеліктеріне тоқталамыз және көкейтесті бірнеше мәселелерді қарастырып,
шешу жолдарын ұсынамыз. Ойымыз дәлелді болу үшін жоғарғы оқу орнының
материалдарымен салыстырып, айырмашылықтарына баса назар аударып, ондағы
қолданатын тәсілдерді мектеп деңгейінде қарастырамыз.
Күнтізбелік жоспар бойынша 9-сыныпта Паскаль тілін оқытуға
(алгоритмдерді қоса есептегенде) бар-жоғы 24-26 сағат ғана бөлінген.
Жобаның өзектілігі: Сондықтан оқушылардың материалды толық меңгеруге-
сағаттардың аздығы, игеретін материалдардың тығыздығы өте үлкен әсер етіп
отыр.
Практикалық маңызы: Қосымша мұғалімдерге арналған әдістемелік оқулық,
ал оқушыларға арналған есептер мен жаттығулар жинағы бар, бірақ есептер
деңгейлерге бөлінбеген, шығару жолдары көрсетілмеген. Осы себептен біз осы
жұмыста есептерді 3 деңгейге бөліп қарастырдық және әрбір тараудан кейін
тест тапсырмасын беріп отырмыз. Сондай-ақ біз жаңа материалдарды
түсіндіргенге интелект картаны ұсынып отырмыз.
1 Орта мектептегі Паскаль тілі программасын
оқытудың әдістемелік ерекшеліктері
1.1 Паскаль тілі программасының негізгі ұғымдар
Паскаль тілі өзінің қарапайымдылығының және тиімділігінің арқасында
дүние жүзіне тез таралды. Қазіргі кезде барлық дербес компьютерлер осы
тілде жұмыс істей алады. Паскаль тілінде жазылған программаның дұрыстығын
компьютерде тексеру және жіберілген қатені түзету оңай. Бұл тілде программа
компьютерде орындалу барысында алдымен трансляцияланады (машина тіліне
аударылады), объектік программаға түрлендіріледі де, содан кейін ғана
орындалады. Осы сәтте компьютерде программаның екі нұсқасы болады, оның
біріншісі-алгоритмдік тілдегі алғашқы түпнұсқасы, ал екіншісі-объектік
кодтағы жазылған программа. Есеп нәтижесін машиналық кодта жазылған алғашқы
нұсқасы өңделеді.
Паскаль тілін 1970 жылы Швейцария ғалымы Н. Вирт программалау
әдістерін оқыту мақсатында арнайы жасаған .
Қазіргі кезде Паскаль тілі қолданбалы программалар жасау үшін және
жүйелі программалау ретінде де кеңінен қолданылады. Сонымен бірге көптеген
мини және макрокомпьютерлерді қамтамасыз ету осы тілде жазылған. Паскаль
тілі бұрын құрылған (Фортран, Алгол және тағы басқа) программалау
тілдерінен маңызды ерекшелігі ол құрылымдық прграммалау идеясын өмірге
біртіндеп енгізу. Паскаль тілінің тағы бір ерекшелігі ол деректер
құрылымның концепсиясының алгоритм түсінігімен қатар программалаудың
негізінде жатқан фундаментальды түсініктер қатарына кіруі [18].
Қазіргі заманда адам көп есепті компьютерді пайдалану арқылы
атқарады. Кез-келген міндетті орындау алгоритмнің болуын, яғни нәтиже алуға
жеткізетін әрекеттердің алдын ала жазылып қоюын қажет етеді. Алгоритмнің
негізінде программа түзіледі, яғни есеп шешуінің алгоритмі оны компьютерде
орындауға жарамды түрде жазылады. Осыдан барып компьютердің көмегімен
есепті шешу процесінің мәні алгоритмді құру екені көрінеді. Алгоритмдік
алдын ала жазбаларды құрастыру процесі алгоритмдеу деп аталады. Алгоритм
сөзі IX ғасырдағы Орта Азияның ұлы математигі Әл-Хорезми атының латынша
жазылу –algoritmi қалпынан шыққан [4].
Қазіргі кезде алгоритм ұғымы тек математикалық есеп шешу әдісімен
шектелмейді. Оның мағынасы әлдеқайда кең. Әрбір компьютер алдын ала
берілген алгоритмен, яғни жоспарлы жұмыс істейді. Алгоритмді реттелген
амалдар жиыны, кезекпен орындалатын операциялар тізімі деп ұғынған жөн.
Оның көптеген анықтамасы бар. Соның бірі: алгоритм-берілген есептің шығару
жолын реттелген амалдар тізбегі түріне келтіру. Кез-келген есепті қарапайым
амалдарды тізбектей орындау арқылы шығаруға болады. Алгоритмді компьютерде
орындау үшін оны программа түрінде жазып шығу керек [3].
Алгоритмнің жеке қадамдардан құрыла алатын қасиеті дискреттігі деп
аталады. Алгоритмнің әр ұйғарымы немесе командасы орындаушыға түсінікті
болуға тиіс, яғни олар бір мағынада түсініліп, қайталанатын алғашқы
деректер бойынша бірыңғай нәтижелерге әкелуге тиіс. Алгоритмнің бұл қасиеті
анықтығы деп аталады [4].
Алгоритмдерді компьютерде орындау үшін оларды алдын ала жазып алу
керек, яғни ол белгілі бір заңдылықпен өңделуі тиіс. Жалпы жағдайда,
алгоритм жазудың келесі түрлері қабылданған:
1) табиғи тілдегі жазылуы;
2) белгілі бір түйінді сөздер-терминдер (псевдокодтар-жалған кодтар)
арқылы қысқаша тізбекті түрде жазу, мұны қарапайым алгоритмдік тіл
деп те айтады.
3) Графиктік жолмен (блок-схема арқылы) жазу;
4) Программалау тілдеріндегі жазылуы.
Бірақ табиғи тілде жазылған алгоритм компьютерде орындалмайды,
өйткені бұл жағдайда дәлдік, нақтылық сақталмайды. Ал алгоритмді екінші
көрсетілген жолмен жазу, қарапайым алгоритмдік тіл деп аталып, қолданылып
жүр. Мұны олардың ағылшын тіліне негізделіп жасалған программалау
тілдеріне жақындығымен түсіндіруге болады.
Алгоритмдерді графиктік жолмен жазу, кейіннен оны программалау тіліндегі
программаға айналдыру жұмысы мелекеттік стандартпен бекітіліп, ақпарат
өңдеу жұмысында қолданылады [3].
Кесте 1 Алгоритм блок-схемаларының арнайы белгілері
Іс-әрекеттің аталуы Блок пішімі Атқаратын жұмысы
Процесс Математикалық
өрнектерді есептеу
Таңдау Есеп шығару жолын
таңдау
Модификация
Цикл (қайталау) басы
Құжат
Нәтижені шығару,
Енгізу, шығару қағазға басу
Мәліметтерді енгізу,
Бастау, аяқтау (шығару)
Алгоритмдердің
Қосалқы программа басталуы, аяқталуы
Қосалқы программаларға
Түсініктеме кіру және шығу
Схеманы, формулаларды
түсіндіру
Алгоритмдік тіл команда және шамалардан тұрады. Командының өзі жай
(меншіктеу, арг, нәтиже, көмекші алгоритм) және құрама (серия, тармақталу,
таңдау, қайталау, параметрлі қайталау) деп екіге бөлінеді, ал шамалар
тұрақты сандар (натурал, бүтін, нақты) және айнымалы (литерлік, графикалық-
геометриялық фигуралар және сызықтар) болып екәге бөлінеді [17]. Мысалы:
Фибоначчи сандардың қосындысын есептеу алгоритмін қарастырайық.
Алг нат Фибоначчи ( нат к)
Басы егер к=2
Онда мән:=1
әйтпесе мән:= Фибоначчи
(к-1) + Фибоначчи (к-2)
болды
соңы
Алг Фибоначчи-цикл( нат к, натz )
Арг к
Рез , z
Басы нат х,у; бүт і
X:=1; z:=1
Егер k2
Онда і үшін 3-ден к-ға дейін
Цб y:=x x:=z z:=x+y
цс
болды
соңы [14].
Тапсырма қойылымы, алгоритм, бағдарлама тексті, нәтиже (ықшамдалған
түрі). Атаулар (идентификаторлар):
Дұрысы Дұрыс емес
№135, А 325 ав
(цифрдан басталған)
data6 mas a 121 (ашық
аралық бар)
Alpha_1 bb# 1 (арнайы символдар бар)
[19].
Паскаль тіліндегі программа үш бөліктен тұрады: тақырып, сипаттау
бөлімі және операторлар бөлімі.
Кез келген программаның алғашқы жолы PROGRAM сөзінен басталатын оның
тақырыбынан тұрады. Одан кейін программаның ішкі объектілерінің сипаттау
бөлімі жазылады. Бұл бөлім программадағы айнымалылар, тұрақтылар тәрізді
объектілердің жалпы қасиеттерін алдын ала анықтап алуға көмектеседі.
Сипаттау бөлімі бірнеше бөліктерден тұрады, бірақ программаның
күрделілігіне байланысты көбінесе ол бір немесе екі ғана бөліктен тұруы
мүмкін.
Программаның соңғы және негізгі бөлімі операторлар бөлімі болып
табылады. Орындалатын іс-әрекеттер, командалар осы бөлімде орналасады. Ол
begin түйінді сөзінен басталып, барлық атқарылатын операторлар
(командалар) тізбегі жеке-жеке жолдарға біткен соң end түйінді сөзімен
аяқталады.
Тілдің алфавиті программаның элементтерін құруда қолдануға болатын
символдар жиынынан тұрады. Оған әріптер, цифрлар және арнайы белгілер
(символдар) жатады [3].
Латын алфавитінің 26 әрпі (ағылшынша A-Z).
10 араб цифрлары: 0 1 2 3 4 5 6 7 8 9.
Операциялар таңбалары: +,-, *,, ,,,=,=.:,=.
Ажырату белгілері: ‘ () [] {} (**) : .
Арнайы белгілері: ^ # $ @ % ! & [2].
Паскаль программалау тілінің артықшылығы кең көлемде берілгендердің
әртүрлі типтерімен жұмыс істей алу мүмкіндігінде. Типтердің ішінде есеп
шығаруда көп қолданылатыны-бүтін типті сан [10].
Турбо Паскаль тілінде алдын ала программалары жасалып стандартты
модульге жинақталып қойылған, қажет кезінде пайдалануға болатын объектілер
бар. Солардың бірі стандартты функциялар болып табылады. Олар жиі
кездесетін математикалық және басқа да функцияларды есептеу үшін
қолданылады [3].
Паскальда бүтін типті деректерге нәтижесі де бүтін сан болатын
негізгі операциялар анықталған:
DIV –Бүтін қылып бөлу;
MOD- бөлшектің қалдығы;
SHR – берілген биттер санына оңға жылжу;
SHL- – берілген биттер санына солға жылжу;
TRUNC(X)- нақты Х шамасының бүтін бөлігін қайтарады;
ROUND(X)- нақты Х шамасының бүтін мәнге дейін дөңгелектейді [18].
Xn- ді дәрежеге шығару амалын белгілейтін арнайы белгі болмағанмен,
программалауда төмендегідей жазып көрсетуге болады:
Xn=exp(n*ln(x))
Кесте 2 Стандартты функциялар
МатематикадағыПаскаль Атқаратын қызметі Функция типі
жазылуы тілінде
жазылуы
׀х׀ Abs(x) Аргументтің абсолюттік Х-тің
шамасы типіндей
Arctgx Arctan(x) Аргументтің арктангенсі
Cosx Cos(x) Аргументтің косинусы Нақты
Sinx Sin(x) Аргументтің синусы Нақты
ex Exp(x) Е-нің х дәрежесі Нақты
Frac(x) Х санының бөлшек бөлігі Нақты
[x] Int(x) Х санының бүтін бөлігі Нақты
lnx Ln(x) Х санының натурал Нақты (бүтін)
π Pi логарифмі Нақты
x2 Sqr(x) Π- дің мәні pi=3.14159265Нақты
Sqrt(x) Х-тің квадраты Х-тің
Х-тің квадрат түбірі типіндей
Нақты
Логикалық шамалар TRUE (ақиқат) немесе FALSE (жалған) мәндерінің
бірін ғана қабылдайды. Логикалық типтегі шамаларға мына амалдар
қолданылады: and – (ЖӘНЕ), or –(НЕМЕСЕ).
Мысалы: Логикалық өрнектердің мәндерін анықта:Y = (A and B) or C при
A=TRUE, B=FALSE, C=TRUE.
program name; {Программаның аты}
uses CRT; {Модульды іске қосу}
var a,b,c,y:boolean; {а,в,с логикалық типті айнымалылар}
BEGIN
clrscr; {экранды тазалау}
a:=true; b:=false; c:=true; {а-ақиқат, в-жалған, с-ақиқат}
y:=(a and b) or c; {а және в немесе с }
writeln('y=',y); {у-ті шығару}
readln; {мәліметтерді оқу}
END. [12].
1.2 Сызықтық құрылымды алгоритмдерді программалау
Сызықтық алгоритмдерді программалауға ерекше көңіл бөлу керек.
V=pi*R2H цилиндрдің көлемінің формуласы, конустың көлемі 13 цилиндрдің
көлеміндей V=pi*R2*H3, pi=3.14159263. Осыған программа құру керек.
Program VOL; {Кез келген атты жазуға болады}
Const pi=3.14159263; {Тұрақтыны хабарлап тұр}
Var
V1,V2:Real; {цилиндрдің және конустың көлемдері. Real-нақты сан
екенін көрсетеді}
R,h:Integer; { R,h-бүтін сан }
Begin
Write(‘Радиус пен биіктікті енгіз:’);
Readln(R,h); { R,h-мәндерді енгізу }
V1:=pi*Sqr(R)*h; { цилиндрдің көлемінің формуласы }
V2:=V13; { конустың көлемінің формуласы }
Writeln(‘цилиндрдің көлемі’,V1);
Writeln(‘ конустың көлемі’, V2);
End. [8].
Стандарт функцияларды қолданып, өрнектің мәнін есептеңдер:
Program S_pr;
USES CRT;
VAR a,b:Integer; y:real;
Begin
clrscr;
writeln (' 2 санды енгіз');
Readln(a,b);
y:=sqrt(sqr(a)-abs(b));
writeln('y=',y:2:3);
readln;
END. [1].
Арифметикалық операцияларды және санның типтерін ажырата білу
программаны құруда маңызы зор. Төмендегіде келтірілген мысал оған дәлел
болады:
Дұрыс дұрыс емес
1) Var 1) Var
a, b: integer; a, b: integer;
r: integer; r: integer;
s: integer; r:= ab; {бөлуге
болмайды}
r:=adivb; s:=a*b;
2) Var 2) Var
a: integer; b, c: real a: integer; b,
c: real
c:=a+b a:=b+c {сол
жағында едәуір кең тип тұруы керек}
1.3 Тармақталу алгоритмдерді программалау
Тармақталу операторларының үш түрі бар (қосымшадан қараңыз).
Тармақталу алгоритмдерді программалауда блок-схемаларды қолдану міндетті
деп есептейміз. Себебі программа құрғанда блок-схемалар көп көмегін
тигізеді. Мысалы, ах2+вх+с=0 квадрат теңдеуін шешу программасын блок-
схеманының көмегімен құрып көрейік. Бұл есепті шешу үшін математикалық
білім керек және 8-сыныптағы Алгебра пәнінде қарастырған материалды еске
түсіріп, оның маңыздылығын сезінуге баулау тәрбиелеу оқытудың бір көрінісі.
Сызба 1 Квадрат теңдеуін шешу блок-схемасы
Program Kvadrat tendey;
Var a, b, c, D: integer;
X, X1, X2: real;
Begin
Writeln (‘a, b, c-engiz’); {нақты айнымалыларды
шығару}
Begin
Writeln (‘a, b, c-engiz’);
Readln (a, b, c);
D:=sqr(b)-4*a*c; {Формуланы жазу }
Writeln(‘D=’, D);
If D0 then
Begin
X1:= (-b-sqrt(D))2*a;
X2:= (-b+sqrt(D))2*a;
Writeln (‘X1=’, X1:5:2, ‘X2=’, X2:5:2);
End else
If D0 then
Begin
Writeln (‘Теңдеудің бір түбірі бар’);
X:= -b2*a;
Writeln (‘X=’, X:5:2); {5 орынды санды 2 орынға дөңгелектеу}
End else
Writeln (‘Теңдеудің түбірі жоқ’);
Readln;
End.
Есепті таңдау case операторын қолданып шешу тиімді әдістердің бірі
болып табылады. Себебі мүмкін болатын жағдай екеу емес, одан да көп бола
береді. Мысалы, жыл мезгілдерін анықтайтын программа құрайық .
program Мезгіл; {Кез келген атты жазуға болады}
uses CRT;
var m:Integer; { m- бүтін типті екенін көрсетеді}
BEGIN
clrscr;
writeln('Айдың аттарын енгіз:');
readln(m);
case m of
1,2,12: writeln('Қыс');
3,4,5: writeln('Көктем');
6,7,8: writeln('Жаз');
9,10,11: writeln('Күз');
end;
readln;
END. [7].
Мынандай бір қызықты есепті енгізіп отырмыз:
Қазақша жыл қайыру алгоритміне программа құрып көрейік. Ол үшін ең алдымен
төмендегідей белгілеулерді енгіземіз: Мк=13+(к-1)*12, мұндағы к=1, 2, 3,
..., Мк-мүшел сандар. Қазақ жыл қайыру күнтізбесі бойынша мүшел есебін
дұрыс және тез шешу үшін мүшел жылдарының кестелік рет санын және жыл
жануарлары аттарын жатқа білу шарт.
Г- қазіргі (григориандық) жыл саны, М- мүшел саны.
1- қадам: А=Г+9 2- қадам: А=12* n+к, к=0, 1, 2, 3, 4, 5, 6, 7, 8, 9,
10, 11
3- қадам: Мүшел бойынша қай жыл екенін анықтау.
Ескерту: Егер қалдық к=0 болса, онда к= доңыз жылы деп аталады.
Мүшел алгоритмнің Паскаль тіліндегі программасы:
PROGRAM GYL;
VAR А, G, к: integer;
BEGIN
Write (‘G жылды енгіз’); {Туған жылды енгізу}
read(G); А: =G+9; {оған 9 санын қосамыз}
k:=Amod12; case k of {шыққан нәтижені 12-ге бөлу}
0:write (A’= доңыз жылы’); {0-жыл- доңыз жылы }
1:write (A’= тышқан жылы’); {1-жыл- тышқан жылы }
2:write (A’= сиыр жылы’); {2-жыл- сиыр жылы }
3: write (A’= барыс жылы’); {3-жыл- ,барыс жылы }
4^ write (A’= қоян жылы’); {4-жыл- қоян жылы }
5: write (A’= ұлу жылы’); {5-жыл- ұлу жылы }
6: write (A’= жылан жылы’); {6-жыл- жылан жылы }
7: write (A’= жылқы жылы’); {7-жыл- жылқы жылы }
8: write (A’= қой жылы’); {8-жыл- қой жылы }
9: write (A’= мешін жылы’); {9-жыл- мешін жылы }
10: write (A’= тауық жылы’); {10-жыл- тауық жылы }
11: write (A’= ит жылы’); end; {11-жыл- ит жылы }
end.
1.4 Циклдік құрылымды алгоритмдерді программалау
Көп жағдайда аргументтердің әртүрлі мәні бойынша алгоритмнің белгілі
бір бөліктерін бірнеше рет қайталауға тура келеді. Лсындай процестерді
ұйымдастыру үшін циклдік құрылымды алгоритмдер – қайталау операторлары
қолданылады. Олар әр түрлі заңдылық негізіндегі ереже бойынша құрылады.
Циклдік операторлардың үш түрі бар (қосымшадағы материалдан
қараңыз). Параметрлі қайталау командасының жазылу форматы:
FOR P:= NV TO KV DO A немесе
FOR P:= NV DOWNTO KV DO А, мұндағы Р-циклдік парметрі, NV-
цикл параметрінің алғашқы мәні, KV- цикл параметрінің соңғы мәні, А-
қарапайым немесе құрама оператор.
Бір есепті циклдік оператордың қайсысымен де шығаруға болады.
Мысалы, есептеңдер: у=х2, мұндағы х=2, 4, 6, 8, 10.
1) Цикл -әзір (While) үлгісімен құрылған программасы:
Program cikl1;
Var X,Y:Integer; { x,y - бүтін типті екенін
көрсетеді}
Begin
X:=2; { алғашқы 2 мәнін
меншіктейміз}
While x=10 Do { 10-ға дейіні}
Begin
Y:=Sqr(X); { х-тің квадрат түбірі}
Writeln(‘X=’,X:3, ‘Y=’,Y:5);
X:=X+2; { циклдің қадамы 2-ге тең}
End;
End.
2) Цикл – Repeat үлгісімен құрылған программасы:
Program cikl3;
Var x,y:Integer; { x,y - бүтін типті екенін көрсетеді}
Begin
X:=2; { алғашқы 2 мәнін меншіктейміз}
Repeat { шартты соңынан тексереді}
Y:=Sqr(x); { х-тің квадрат түбірі}
Writeln(x:3,y:5);
X:=x+2; { циклдің қадамы 2-ге тең}
Until x10; { 10-нан артық}
End.
For – параметрлі қайталау оператордың жазылу түрлерін төмендегі
кестеден көріп, дұрысын ажырата білуіміз керек:
Оператордың жазылуы Нәтижесі
For k:=-1 to 6 Do Write (x, ‘,’) -1, 0, 1, 2, 3, 4, 5, 6
For k:=3 to 3 Do Write (x, ‘,’) 3
For k:=1 to 9 Do Write (x, ‘,’) 1, 2, ...,9
For k:=-1 to -6 Do Write (x, ‘,’) цикл орындалмайды
For k:=10 downto 6 Do Write (x, 10, 9, 8, 7, 6
‘,’) 0, -1
For k:=0 downto -1 Do Write (x, цикл орындалмайды
‘,’)
For k:=1 downto 16 Do Write (x,
‘,’)
1.5 Бір және екіөлшемді жиымдар
Жиымдар – бір атаумен белгіленген бір типті шамалардың нөмірленген
тізімі. Жиымның элементтері сәйкес тібектелген ұяшықтарға орналастырылады,
жиым өзінің атауымен және индексімен белгіленеді. Жиымды құрайтын әрбір мән
оның элементі деп аталады.
Программада жиымға атау беріледі, ол арқылы жиымның элементін
пайдалануға болады. Жиымның элементтерін құрайтын айнымалылар индексті
айнымалылар деп аталады. Жиым элементтері болатын индекстер константа
(тұрақты), айнымалы немесе өрнек түрінде берілу мүмкін.
Жиымға төмендегі қасиеттер тән:
1) Жиымның әр компоненті айқын түрде белгілене алады және оған
тікелейқатынас бар;
2) Жиымның компоненттерінің саны онысипаттаған кездеанықталады және
одан кейін өзгермейді.
Егер жиымның әрбір элементіне реттік нөмір бекітілген болса, онда
жиым сызықтық деп аталады. Жалпы жиым элементінің индекстерінің саны
жиымның өлшемін анықтайды. Осыған байланысты бірөлшемді (сызықтық),
екіөлшемді, үшөлшемді және т.с.с. болып бөлінеді.
Мысал. Жиым элементтерінің қосындысын есептейтін программа.
Алдымен 10 нақты сан енгізіліп, олар жиым элементтері ретінде
сақталады, сонан кейін енгізілген сандардың қосындысы есептеліп нәтиже
ретінде шығарылады.
Programm PRIMER;
Var
M: Array[1..10] of real; {жиымды сипаттау }
I: integer; { For операторының
параметрі}
S: real; { элементтер
қосындысы}
Begin
For i:=1 to 10 do { Жиымды толтыру}
Begin
Write(‘Жиымның ’, I, ‘-элементін енгізіңдер:’);
Readln(m[i]);
End;
S:=0; {Қосынды санауышын
тазалау}
For i:=1 to 10 do s:=s+m[i]; {Қосынды есептеу}
Write(‘Жиым элементтерінің қосындысы=’, s);
Readln;
End.
Матрицалар жиымдардың ішінде екіөлшемді жиымдар, оларды кейде
тікбұрышты (квадрат) кестелер немесе матрицалар деп атайды. Матрица
элементері екі индекс арқылы сипатталады. Мысалы, мұндағы бірінші индекс
–жолдың нөмірі, екіншісі – бағананың нөмірі. а1,3 – а бір бүтін оннан үш
емес а бір де үш деп оқылады. Паскаль тіліндегі программада сәйкесінше
а[1, 3] түріндегі құрылым қолданылады.
Матрицаларды өңдеу үшін параметрлі қабаттасқан циклдерді қолданған
ыңғайлы. Төмендегі 4*5 матрицасын пернетақтадан бүтін сандармен толтыруға
арналған программа фрагменті келтірілген.
For i:=1 to 4 do
For j:=1 to 5 do
Begin
Write(I, ‘’,j, ’ ’);
Readln a[I, j];
End;
Turbo Pascal жүйесінде өлшемдері бірдей жиымдар үшін жиымды жиымға
меншіктеу операциясын қолдануға болады. Мысалы, екі жиым төмендегідей
сипатталса:
Var
A, B: array[1..50, 1..60] of real;
Онда А:=В; меншіктеу операциясын жазуға болады.
1.6 Графиктік объектілерді программалау
Графикалық режімде экранның нүктесін түрлі түске бояп, сол түстер
арқылы сызықтар, мәтіндер және әр түрлі бейнелер тұрғызатын мүмкіндіктер
бар. Графкалық программалау процесін тиімдірек ету мақсатында Borland
International фирмасы GRAPH арнайы программалар кітапханасын жасап шығарған
болатын, онда қазіргі кездегі мониторлардың барлық типтерімен жұмыс істей
отырып, экранда түрлі мөлшердегі қаріптер шығара алатын драйверлер жиыны
бар.
Экранда мәлімет шығаруды аппараттық жағынан сүйемелдеу екі модуль –
бейнеадаптер және бейнемонитор арқылы қамтамасыз етіледі.
Жалпы бейнеадаптер екі бөліктен – электрондық сәулелік түтікше
контроллерінен (CRT контроллері) және бейнебуферден тұрады. Жетілдірілген
қазіргі кездегі адаптерлер бұлардан басқа графика контроллерімен де
жабдықталады.
CRT (Cathod ray tube – электронды-сәулелік трубка) жиі
қолданылатын модульдің бірі. CRT модулі – мәліметтерді экранға шығару,
пернетақтадан енгізу, сонымен бірге дыбыстық сигналдарды басқаруға
негізделген процедуралар мен функциялардан тұрады.
CRT модулі арқылы экранмен жұмыс жасағанда бүкіл экран жеке жолдарға
бөлінеді. Ал әр жол жеке позицияларға бөлінеді. Әр позицияға бір символ
орналастыруға болады.
Нүкте салу операторы. Экранның кез келген жеріне нүкте салуға
болады, GRAPH модулінде нүкте PutPixel процедурасы арқылы салынады, оның
пішімі PutPixel(X, Y: integer; color: word); мұндағы X,Y-нүкте
координаталары, оның түсін анықтайды. Экран бетіндегі бұрын салынған
нүктенің орнын анықтау үшін GetPixel(X, Y: integer):word; функциясы
қолданылады.
Түзу сызық салу процедурасы экранда екі ұшының координаталары
бойынша кесінді сызу ісін атқарады. Оның пішімі Line(X1, Y1, X2, Y2:
integer); мұнда ағымдағы түс бойынша координаталары X1, Y1 нүктесінен X2,
Y2 нүктесіне дейін кесінді сызылады.
Бастапқы нүкте көрсетілмесе, онда Lineto(X, Y: integer); - меңзер
тұрған орыннан бастап координаталары X, Y болатын нүктеге дейін түзу сызық
сызатын процедураны қолдануға болады.
LineRel(DX, DY: integer); - ағымдағы нүктеден қашықтығы
координаталар өсімшесіне DX, DY сәйкес келетін жаңа нүктеге дейін түзу
сызық сызады.
SetLineStyle(T, P, Th: word); сызық қалыңдығы мен стилін орнату.
Көпбұрыш сызу процедуралары көпбұрыштардың бірнеше түрін салу
мүмкінігін береді, олардың түсі, стилі келісім бойынша орнатылады.
Rectangle (x1, y1, x2, y2); - сол жақ жоғарғы (х1, у1) және оң жақ
төменгі төбелерінің координаталары (х2, у2) бойынша төртбұрыш сызады.
For i:=1 to 100 do
Begin
SetColor(Green); Rectangle(200, Random(300), 250, 300);
Delay(50);
ClearDevice
End.
Bar (x1, y1, x2, y2); - мұнда ағымдағы түспен іші боялған
тіктөртбұрыш сызылады.
SetFillStyle (Pattern, Color: word) – объектінің ішін бояйды.
Floodfill(x, y: integer; Bor: word) – таңдалған стиль бойынша тұйық
фигураның ішін бояйды.
Мысал: Әр түрлі стильмен сызылған төртбұрыштар сызу керек.
Program tortbur;
Uses graph, crt;
Var d, m: integer;
Begin
D:= detect; initgraph(d, m, ‘’);
Setbkcolor(1);
Rectangle(150, 150, 300, 320);
Setfillstyle(8, 6);
Floodfill(160, 200, 15);
Setfillstyle(1, 3);
Bar(350, 150, 500, 320);
Readln; closegraph
End.
1.7 Процедуралар және функциялар
Практикалық есептерге программа құрғанда үлкен программаның белгілі
бір бөлігін әр түрлі мәндер бойынша бірнеше рет қайталап пайдалануға тура
келеді. Мұндайй бір типтес программа бөлігін программаның әр бөлігінде
қайталап жаза бермеу үшін оны жеке қосалқы программа ретінде бөліп жазған
ыңғайлы.
Жеке программа түрінде бөлек жазылған, қажет кезінде оған оралып,
оны пайдаланып отыруға болатын негізгі программаның арнайы бөлігін қосалқы
программа дейді. Қосалқы программаға автоматты түрде енуге және одан шығуға
болады.
Қосалқы программаны пайдалану төмендегідей мүмкіндіктер береді:
1) негізгі программаның көлемі кішірейеді;
2) негізгі программада пайдаланылған айнымалыларды қосалқы
программада пайдалануға болады;
3)қосалқы программаны пайдалану құрылымдық программалауға мүмкіндік
береді.
Паскаль тілінде алгоритмдік тіл тәрізді қосалқы программаның
екі түрі пайданылады. Олар: процедура және функция. Бір программада бір
немесе бірнеше процедура немесе функция пайдалануға болады.
Кез келген процедура – процедура аты және процкдура мәтінінен, яғни
тұлғасынан тұрады. Процедура тұлғасы негізгі программа тәрізді:
айнымалыларды сипаттау және операторлар бөлімнен тұрады. Процедураны
сипаттаудың жалпы түрі:
PROCEDURE аты(формальды параметрлер тізбегі);
Формальды параметрлер тізбегі процедура мен негізгі программа
арасындағы байланыс үшін қажет. Тізбекте процедураның енгізілетін және
шығарылатын параметрлері және олардың типтері жазылады.
Турбо Паскальда процедура тақырыбын формальды параметрлер
тізбегінсіз жазуға да болады:
PROCEDURE аты;
Процедураны сипаттау өздігінен ешқандай іс-әрекет орындамайды.
Процедурада жазылған операторлар орындалу үшін, негізгі программаның қажет
жерінде процедураны шақыру операторын жазу керек.
Процедураны шақыру операторының жалпы түрі:
процедура аты (фактіге негізделген параметрлер тізбегі);
Процедура орындалу барысында нақты, яғни фактілі параметрлер
формальді параметрлерді алмастырады. Нақты параметрлер негізінде
тұрақтылар, айнымалылар және өрнек алынуы мүмкін.
Мысалы: аnдәрежесін есептеу программасын құр, мұндағы n-дәреже
көрсеткіші, а-дәреже негізі. Мәндерді пернетақтадан енгізу керек.
Ең алдымен процедураға жеке программаны жазайық:
Procedure Degree ( х ,у: integer; Vаr st: Longint); {
процедура аты }
Var i :integer; {Жазылу
бөлігі }
Begin
{ процедураның тұлғасы}
st:=1;
For i:=1 to y do
St:=st*х;
End;
Программаның толықтай жазылуы келесі түрде болады:
Program Ехатр1е;
Var a, n: Integer; s: Longint;
Procedure Degree ( х ,у:; Уаr st: Longint);
Var i : integer;
Begin
st:=1;
For i:=1 to y do
St:=st*х;
End;
Begin
Writeln(екі санды енгізу); {мәндерді енгізу }
Readln(а,n);
Degree (а,n,s); {процедураны шақыру }
Writeln ('Нәтиже ',s); {мәндерді шығару аn }
Readln;
Еnd.
Функцияның процедурадан айырмашылығы, функция жұмысының нәтижесі
негізгі программаға функция мәні ретінде қайтады. Сондықтан функция үшін
нәтиже типі көрсетіліп, ал функция тұлғасында сол жағында функция аты
көрсетілген меншіктеу операторы болу керек.
Функция нәтижесі негізгі программаға функция аты арқылы қайтып
оралатын болғандықтан, функцияны шақыруды стандартты функцияға ұқсас, өрнек
операнд (аргументі) түрінде жазуға болады:
функция аты (формальды параметрлер тізбегі);
Формальды параметрлер мен фактілі параметрлер арасындағы байланыс
процедурадағы байланыс ережесімен сәйкес.
Мысалы: формуласын есептейтін программа құр.
n, k —берілген сандарды сақтау айнымалылар;
С — нәтижені сақтау айнымалы.
Берілге формуланы есептеу үшін, n!, (n— к)!, k! әрқайсысын жеке
есептеу керек. n! Факториал санын (n!=1*2*...*n) түрде жазамыз.
Function fасtоriа1(n:intеger):Lопgint; { функцияның аты}
Var i: integer; rez: longint; {жазылу бөлігі
}
Begin
{ функция тұлғасы}
Rez:=1;
For i:=1 То n do
Rez:=rez * i;
fасtоriа1:=rez; { функция
мәндерін меншіктеу}
Еnd;
Енді программаны құрайық:
Рrogram Ехатр1е_1;
Уаr n,к: integer; а1, а2, а3, с: lопgint;
Function fасtоriаl (n :intеger):Lопgint; { функцияның аты
}
Var I: integer; rez: longint; {
жазылу бөлігі }
Begin
{ функция тұлғасы }
Rez:=1;
For i:=1 То n do
Rez:=:rez*i;
fасtоriа1:=rez; {
функция мәндерін меншіктеу }
Еnd;
Begin
Writeln(' n және k мәндерін енгізу, Сnk ‘);
Readl n(n, k) ;
а1:=fасtorial(n);
{ n.'-ді есептеу}
а2:= fасtorial(k);
{ k! -ді есептеу }
аЗ:= fасtorial(п (n-k); {
(n- k)! -ді есептеу }
с:=а1div (а2 * аЗ);
{нәтиже }
writeln (c);
end.
1.8 Символдық шамалармен жұмыс жасау
Турбо Паскаль жүйесінде мәтіндік мәліметтер мәндердің екі түрлі
типімен берілуі мүмкін: символдық (CHAR) және жолдық немесе тіркестік
(STRING). Тіркес – бұл символдар тізбегі.
Компьютердің ішкі жадында әр символ 1 байт орын алады.
Мәндерді енгізгенде кез келген сан емес перненің барлығы символ
ретінде қабылданатындығын есте сақтау керек. Сонымен бірге Enter пернесі
де символ ретінде қабылданады.
1-Мысал. a=’I’; b=’_’; c=’j ‘ айнымалыларын енгізуді және экранға
шығаруды ұйымдастыратын программа фрагменті
Program stroki;
Var a, b, c: char;
Begin
Writeln(‘Бастапқы мәндерді енгізіңдер’);
Readln(a, b, c);
Write(a, b, c);
Writeln;
End.
Пернетақтадан символдарды енгізгенде апострофсыз тереміз:
I_ j Enter
Нәтиже: I_ j
Турбо Паскаль жүйесінде символдар реттеоген, сондықтан оларға
қатынас (, , =, =, =) операцияларын қолдануға болады. Бұл шартты
операторда символдық мәндер арқылы логикалық өрнектер жазуға мүмкіндік
береді, мысалы:
If ch=’!’ then ch:=’.’;
Символдық мәндер үшін параметрлі For операторын қолдануға болады.
For ch:=’a’ to ‘d’ write(ch);
Writeln;
Нәтижесінде экранда abcd символдары тізбегі шығады.
2 Орта мектептегі Паскаль тілі программасын
оқытудың әдістемелік үлгілері
2.1 Деңгейлеп оқыту
Бірінші деңгей:
1) кез-келген с-символмен А-бүтін саны берілген. Осы с-символының
алдындағы символды және А-санынан кейінгі санды анықтау керек.
PRED (‘C’)= ‘Succ (A)’=;
2) С-символынан кейінгі символды А-санының алдындағы санды анықтау
керек. Succ (С)= PRED (А)=;
3) Х-бүтін саны берілген. Реттік нөмірі х болатын символды анықтау
керек. X: integer; CHR (x)= S: char;
4) S-символы берілсе, оның реттік нөмірін анықтау керек: ORD (S);
5) а-нақты саны берілген. Оның бүтін бөлігін анықтау керек:
A:Real; TRUNC (A)=;
6) берілген а-нақты санын жақын орналасқан бүтін санға дейін
дөңгелекте: A:Real; ROUND (A)=;
7) Кез келген логика типтес айнымалының алдындағы айнымалыны анықта:
PRED (True);
8) ORD (CHR(49)); Succ('B'); неге тең? ORD (CHR(49)) =’49’; Succ('B')
)=’С’;
9) PRED('B'); CHR(ORD('*'))-неге тең?: PRED(‘B’)=’A’; CHR(ORD('*'))=
('*').
10) Word типті айнымаының мәні: 0-65535.
11) Егер а және в айнымалылары Integer типті болса, x:=ab*100
арқылы х айнымалысы қандай типті? (Real)
12) Программада қандай бөлім міндетті түрде болу керек? (begin..end)
13) Қайсы жағдайда программа құрылысы дұрыс анықталған?
A) Program P1; B) Program P2;
Const n=15; type massiv:
array[1..n] of Integer
type massiv: array[1..n] of Integer Const n=15;
var a, b: massiv; var a, b:
massiv;
14) Тіркес типті а айнымалысын айқындау қайсы жағдайда қате береді?
A) a: string[255] ; B) a:
string[256] ;
15) Төмендегі әрекеттердің нәтижесінде S2 айнымалысының мәні қандай
болады?
S1:=’ABC’; S2:=S1+’DEF’;
A) ABCDEF B) ABC+DEF
Екінші деңгей:
1) а және в-бүтін сандары берілген. А-санын в санына бөлу нәтижесінің
бүтін бөлігін анықта? а,в: integer; adivb;
2) х және у бүтін сандарының бөліндісінің қалдығын анықта? х,у:
integer; xmody;
3) с және d-нақты сандар берілген. cd бөліндінің бүтін
бөлігінанықта? C,d:real; cdivd TRUNC(cd);
4) А-нақты сан және М-бүтін сандар берілген. А-санын бүтін бөлігіне
дейін дөңгелектеп, оны М-санына бөлудің қалдығын анықта? А:real; М:
integer; (ROUND(A))modM;
5) А-бүтін сан, С-нақты сан берілген. С-саныныңң бүтін бөлігін
анықтап, А-санының анықталған нәтижеге бөлудің бүтін бөлігін анықта? А:
integer; С: real; (ROUND(C))divA;
6) К-бүтін сан, одан кейінгі санды анықтап (N), NК-бөліндісінің
қалдығын анықта? К: integer; Succ (К)= N, NmodК;
7) С-символдық айнымалысы, М-бүтін сан берілген. С-айнымалысының
реттік номерін М-ге бөлудің қалдығын анықта? (ORD(С))modM; М: integer;
C:char;
8) С және S символдық айнымалысы берілген. Олардың реттік номерлерін
анықтап, нәтижелердің қатынастарының бүтін бөлігін анықта? C,S:char;
ORD(S); TRUNC(ORD(C))ORD(S);
9) С-символдық айнымалысы берілген, А-нақты сан. С-символының реттік
номерлерін анықтап,А-санын дөңгелкте. Табылған нәтижелердің қатынастарының
қалдығын анықта? C:char; А:real; ORD(C)modROUND(A);
10) М-бүтін сан. MK қатынасының бүтін бөлігін және нәтижені М-санына
бөлудіңң қалдығын анықта? М: integer; к:real; (MdivK)modM.
11) Төмендегі амалдардың орындалу нәтижесі қайсы?
D:=6; a:=d5; Writeln (a);
1) d5; 2) false; 3) true; 4) 65.
12) Төмендегі цикл қанша рет орындалады:
n:=1; While n1 do x:=n+1; (ешбір рет)
13) Төмендегі цикл қанша ретқайталанады және циклдаг шыққанда а, в, с
айнымалыларының мәндері қандай?
a:=1; b:=1; while a+b8 do begin a:=a+1; b:=b+2; end;
c:=a+b; writeln(a, b, c) (2 рет, a=3 b=5 c=8).
14) Төмендегі программа қандай нәтиже береді?
Program P14;
Var c, d: Char;
Procedure P (x: Integer); const y=true;
Begin Writeln (x, ‘ ’, y); end;
Procedure Q (x: Integer);
Var y: Char;
Begin x:=succ (x); y:=’*’;Writeln (x, ‘ ’, y); end;
Begin x:=’a’; y:=’5’; P(8); Writeln (x, ‘ ’, y);
Q(6); Writeln (x, ‘ ’, y); end. (8 true
a 5 7+ a 5 ).
15) Төмендегі программа қандай нәтиже береді?
Program P15;
Var i: Integer;
Procedure Proc;
Begin i:=100 end;
Begin i:=1; proc; Writeln ( ‘i= ’, i); end. (100)
Үшінші деңгей:
1) ұзындығы L-болатын маятник тербелісінің периодын анықта? Периодты
есептеу үшін T=2π, g=9.81 формуласын қолдан.
program Period;
var const g=9.81; const pi=3.14; L:integer; T:real;
BEGIN
read (L); { Мәнді енгізу}
T:=2*pi*sqrt(Lg); { Формуланы жазу}
writeln(' Period '); { Периодты шығару}
writeln('T=',T);
END.
2) Массалары M1 және M2 болатын бір-бірінен к-қашықтықта орналасқан
денелердің F тартылыс күшін анықта? F=,G=6.67*10-11.
program Kush;
const G=6.67*10-11 { Тұрақтыны сипаттау}
var M1,M2:integer; F,R:real; { Айнымалыларды сипаттау}
BEGIN
read (M1,M2,R); { Мәндерді енгізу}
F:=((M1*M2)sqr(R))*G; { Формуланы жазу}
writeln('F=',F); { Күшті шығару}
END.
3) Радиусы R-болатын шеңберге сырттай сызылған n-бұрышты көпбұрыштың
периметрін тап, P=2*n*R*tan(πn) бойынша есептеңдер. n,k:integer; p;real;
4) Үшбұрыштың үш қабырғасы берілген. Герон формуласы бойынша ауданын
табыңдар? а, b, с:integer; р, s:real; p=(a+b+c)2; S:=sqrt((p-a)*(p-b)*(p-
c));
5) Координаттары (х1, у1) және (х2, у2) болатын екі нүктенің ара
қашықтығын анықта? х1, у1,х2, у2:integer; d:real; d:=sqrt(sqr(c)-sqr(b)).
2.2 Жаттығуларды шешу жолдары
Есеп №1. x, y, z нақты сандары берілген. Төмендегі өрнектердің
мәндерін есептейтін программа құр?
а).
program Esep_1;
var x, y:integer; s:real; {
Айнымалыларды сипаттау}
BEGIN
readln('x,y'); { Мәнді
енгізу}
writeln('Үшбұрыштың ауданы'); { Мәнді шығару}
writeln('S=',S:4:2);
END.
Қалған есептердің программасы осы типтес болады , сондықтан біз
өрнектердің Паскаль тіліндегі жазылуын ғана көрсетеміз.
a) 1+х+, S=1+x+sqr(x)2;
b) 1+׀x+1׀+׀x׀, S=1+abs(x)+abs(x+1);
c) , S= sqrt(1+sqrt(abs(x)));
d) , S=(x+z)(y+z)-2.5;
e) z+ , S=z+((x+y-1.7)x)(z+y+0.5);
f) , S=(1+sqrt(1+sin(abs(x))))2;
Есеп №2. Тең қабырғалы үшбұрштың қабырғаларының ұзындығы берілсе,
үшбұрыштың ауданын табу программасын құр?
program name;
uses CRT;
var a:integer; s:real; { Айнымалыларды
сипаттау}
BEGIN
clrscr;
readln('а-ны енгіз'); { Мәнді енгізу}
S:=(sqr(a)*sqrt(3))4;
writeln('Үшбұрыштың ауданы'); { Мәнді шығару}
writeln('S=',S);
END.
Есеп №3. Тікбұрышты үшбұрыштың гипотенузасы мен катеті берілсе,
екінші катетін табыңдар. C, b:integer; a:real; a:=sqrt(sqr(c)-sqr(b)).
Бұл есеп жоғарғыға ұқсас шешілетіндіктен, оның программасын жазған жоқпыз,
тек Паскаль тіліндегі жазылуын көрсетуімен шектелдік.
Есеп №4. Үшбұрыштың үш қабырғасыберілсе, оның медианаларын
табыңдар. а, в, с – үшбұрыштың қабырғалары.
ma:=0.5*sqrt(2*sqr(b)+2*sqr(c)-sqr( a)); mb:= 0.5*sqrt(2*sqr(a)+2*sqr(c)-
sqr(b));
mc:= 0.5*sqrt(2*sqr(b)+2*sqr(a)-sqr(c));
Бұл есеп жоғарғыға ұқсас шешілетіндіктен, оның программасын жазған жоқпыз,
тек Паскаль тіліндегі жазылуын көрсетуімен шектелдік.
Есеп №5. х, у нақты сандар берілген.
А) Max(x,y); ә) min(x,y); табыңдар
x,y:real; x,y:real;
if xy then x:=max if xy then x:=min
else y:=max else y:=min
Есеп №6. х, у, z нақты сандар берілген. Бұл сандардың ең кішісін тап.
Program kishi;
Var x, y, z, min: integer; {бүтін айнымалыларды
сипаттау}
Writeln(‘x’, ‘y’, ‘z’); {бүтін айнымалыларды
шығару}
Read(x, y, z); {бүтін айнымалыларды
енгізу}
If xy then min:=x else min:=y {нақты сандардың ең кішісін
анықтау }
If zmin then min:=z
Writeln(‘min=’, ‘min’); { ең кішісін шығару }
End.
Есеп №7. х, у, z нақты сандар берілген. Бұл сандардың ең үлкенін тап.
Program ylken;
Var x, y, z, max: integer; {бүтін айнымалыларды
сипаттау}
Writeln(‘x’, ‘y’, ‘z’); {бүтін айнымалыларды
шығару}
Read(x, y, z); {бүтін айнымалыларды
енгізу}
If xy then max:=x else max:=y { нақты сандардың ең үлкенін
анықтау }
If zmax then max:=z
Writeln(‘max=’, ‘max’); { ең үлкенін ... жалғасы
Ұқсас жұмыстар
Пәндер
- Іс жүргізу
- Автоматтандыру, Техника
- Алғашқы әскери дайындық
- Астрономия
- Ауыл шаруашылығы
- Банк ісі
- Бизнесті бағалау
- Биология
- Бухгалтерлік іс
- Валеология
- Ветеринария
- География
- Геология, Геофизика, Геодезия
- Дін
- Ет, сүт, шарап өнімдері
- Жалпы тарих
- Жер кадастрі, Жылжымайтын мүлік
- Журналистика
- Информатика
- Кеден ісі
- Маркетинг
- Математика, Геометрия
- Медицина
- Мемлекеттік басқару
- Менеджмент
- Мұнай, Газ
- Мұрағат ісі
- Мәдениеттану
- ОБЖ (Основы безопасности жизнедеятельности)
- Педагогика
- Полиграфия
- Психология
- Салық
- Саясаттану
- Сақтандыру
- Сертификаттау, стандарттау
- Социология, Демография
- Спорт
- Статистика
- Тілтану, Филология
- Тарихи тұлғалар
- Тау-кен ісі
- Транспорт
- Туризм
- Физика
- Философия
- Халықаралық қатынастар
- Химия
- Экология, Қоршаған ортаны қорғау
- Экономика
- Экономикалық география
- Электротехника
- Қазақстан тарихы
- Қаржы
- Құрылыс
- Құқық, Криминалистика
- Әдебиет
- Өнер, музыка
- Өнеркәсіп, Өндіріс
Қазақ тілінде жазылған рефераттар, курстық жұмыстар, дипломдық жұмыстар бойынша біздің қор #1 болып табылады.
Ақпарат
Қосымша
Email: info@stud.kz