АЛГОРИТМНІҢ ПРОГРАММАЛАУ НЕГІЗДЕРІНДЕГІ РОЛІ
Кіріспе ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . 3
I тарау. Алгоритмнің программалау негіздеріндегі ролі
Алгоритмдеуді кәсіптік орта білім беру курсында оқытудың
маңызы ... ... ...
Алгоритм туралы ұғым ... ... ... ... ... ... ... ... ... ... ... ... ...
Блок-схема түрінде алгоритмдердің бейнеленуі ... ... ... ... ...
II тарау. паскаль тілі программасын оқытудың әдістемелік
ерекшеліктері
Паскаль тілі программасының негізгі ұғымдары ... ... ... ... ...
Сызықтық құрылымды алгоритмдерді және тармақталу алгоритмін
программалау ... ... ... .
Циклдік құрылымды алгоритмдерді программалау ... ... ... ... .
Бір және екі өлшемді жиымдар ... ... ... ... ... ... ... ... ... ... ..
Графикалық объектілерді программалау ... ... ... ... ... ... ... ..
Процедуралар және функциялар ... ... ... ... ... ... ... ... ... ...
Символдық шамалармен жұмыс ... ... ... ... ... ... ... ... ... ..
IІI тарау. паскаль тілі программасын оқытудың әдістемелік
үлгілері
Деңгейлеп оқыту ... ... ... ... ... ... ... .. ... ... ... ... ...
... ... ... ... ..
Жаттығуларды шешу жолдары, cабақ жоспары, тест тапсырмаларын
ұсыну ... ... ... ... ... ... ... ... ... ... ... ... ... ..
Паскаль тілі программасын оқытуда интелект- картаны
қолдану ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
Программалау негіздерін оқытудағы көп нұсқалық әдіс ... ..
Программалау тілдерін оқытудың модульдік технологиясы ... ..
Программалау тілдерін оқытуда дидактикалық материалдарды пайдалану
Қорытынды ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .
Пайдаланылған әдебиеттер ... ... ... ... ... ... ... ... ... ... ... ... ...
Қосымшалар ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
Кіріспе
Қазіргі заманда адам көп істі компьютер пайдалану арқылы атқарады. Кез
келген міндетті орындау алгоритмінің болуын, яғни нәтиже алуға жеткізетін
әрекеттердің алдын-ала жазылуын қажет етеді. Алгоритмнің негізінде
программа түзіледі, яғни есеп шешуінің алгоритмі оны компьютерде орындауға
жарамды түрде жазылады. Осыдан барып компьютердің көмегімен есепті шешу
процесінің мәні алгоритмдерді құру екені көрінеді.
Қазіргі қоғам өміріндегі алгоритмдеудің ролі оны пайдаланудың
техникалық аспектілермен ғана айқындалмайды. Алгоритмдік қатынас адамның
күнделікті өмірінен, олардың әдеттегі жұмысынан айырғысыз. Басым көп
жағдайларда адам қызметінің нәтижесі оның өз әрекеттерінің алгоритмдік
мәнін қаншалықты дәл білетіндігіне тәуелді: әр мезетте, қандай ретте не
істеу керек; әрекеттер қорытындысы қандай болу керек. Бұл белгілі дәрежеде
алдгоритмдерді құрастыру мен пайдалана білуге қатысты.
Информатика және есептеуіш техника негіздері пән ретінде қалыптасқан
ғылымның бір саласы. Мұнда алгоритм құрастыру, жазу түсініктері беріліп,
қазіргі кезде кең тараған программалау тілінің бірі - Паскаль тілінің
ерекшеліктері қарастырылып, оны пайдаланып математика, физика есептерін
шығаруды компьютерде орындау жүзеге асырылады.
Информатика пәні негізінен мынадай тақырыптарды қамтиды:
• Алгоритм, программа ұғымы.
• Алгоритмдерді қарапайым тілде, блок-схема түрінде жазу.
• Паскаль тілінде мәліметтерді сипаттау, программалар құру, оларды
компьютерде орындау.
• Әр түрлі операторларды жазу, функциялар мен процедураларды
пайдалану жолдары т.б.
Қазіргі кезде Паскаль тілі кез-келген күрделі есептерді шығара алатын,
кең таралған стандартты оқу тіліне айналды. Сондықтан жалпы білім беретін
кәсіптік орта білім беру жүйесінде программалауды оқытуда осы Паскаль тілі
таңдалып алынған.
Біздің негізгі мақсатымыз – кәсіптік орта білім беру жүйесінде
курсындағы жаңа бағдарлама бойынша 2005-2006 оқу жылында ғана Информатика
пәніне енгізілген оқулықтағығы Паскаль тілі программасының оқытудың
әдістемелік ерекшеліктеріне тоқталамыз және көкейтесті бірнеше мәселелерді
қарастырып, шешу жолдарын ұсынамыз. Ойымыз дәлелді болу үшін жоғарғы оқу
орнының материалдарымен салыстырып, айырмашылықтарына баса назар аударып,
ондағы қолданатын тәсілдерді кәсіптік орта білім беру жүйесінде деңгейінде
қарастырамыз.
Күнтізбелік жоспар бойынша Паскаль тілін оқытуға (алгоритмдерді
қоса есептегенде) бар-жоғы 24-26 сағат ғана бөлінген.
Жобаның өзектілігі: Сондықтан оқушылардың материалды толық меңгеруге-
сағаттардың аздығы, игеретін материалдардың тығыздығы өте үлкен әсер етіп
отыр.
Практикалық маңызы: Қосымша мұғалімдерге арналған әдістемелік оқулық,
ал оқушыларға арналған есептер мен жаттығулар жинағы бар, бірақ есептер
деңгейлерге бөлінбеген, шығару жолдары көрсетілмеген. Осы себептен біз осы
жұмыста есептерді 3 деңгейге бөліп қарастырдық және әрбір тараудан кейін
тест тапсырмасын беріп отырмыз. Сондай-ақ біз жаңа материалдарды
түсіндіргенге интелект картаны ұкәсіптік орта білім беру жүйесінде отырмыз.
I ТАРАУ. АЛГОРИТМНІҢ ПРОГРАММАЛАУ НЕГІЗДЕРІНДЕГІ РОЛІ
1.1 Алгоритмдеуді кәсіптік орта білім беру жүйесінде курсында оқытудың
маңызы
Бүгінгі күн талабына сәйкес кез келген сала мамандары ақпараттық
технологияларды толыққанды пайдаланушылар бола алуы тиіс. Ал ақпараттық
технологияларды жаңа деңгейге көтеруге және оларды дамытуда алгроритмдеудің
орны ерекше. Сондықтан алгоритмдеу негіздерін кәсіптік орта білім беру
жүйесіндете дұрыстап жіне жаңартуға, жаңа заман, қоғам талабына сай
мамандар дайындауға мүмкіндік береді деген сөз.
Программаға қажетті негізгі қасиет – дамыған алгоритмдік ойлау болып
табылады. Бұл қасиеттің дамуы профессионалдық қана емес, жалпы
педагогикалық мағынаны білдіреді.
Жалпы алгоритм ұғымы информатикада ақпарат сияқты іргелі ұғымдар
қатарына жатады. Бұл атаудың мағынасын түсіну үшін оған жан-жақты талдау
жасаған жөн. Алгоритм атауы атақты араб математигі Әбу Жафар Мұхамед ибн әл-
Хорезми (763-850 жж.) есімінің латынша Algorithmy (Алгоритми) болып
жазылуынан шыққан. Қазіргі кезде Алгоритм ұғымы тек математикалық есеп
шешу әдісімен ғана шектелмейді. Әрбір компьютер алдын ала берілген
алгоритммен, яғни жоспарлы жұмыс істейді. Алгоритмді реттелген амалдар
жиыны, кезекпен орындалатын операциялар тізімі деп ұғынған жөн. Оның
көптеген анықтамасы бар. Соның бірі: алгоритм-берілген есептің шығару жолын
реттелген амалдар тізбегі түріне келтіру.
Сонымен алгоритм дегеніміз атқарушы нақты мақсатқа жету үшін
орындайтын әрекеттер тізбегі. Ал атқарушы дегеніміз белгілі бір әрекеттер
жиынтығын орындайтын объект.
Алгоритмді компьютерде орындау үшін оны программа түрінде жазып шығару
керек. Программа компьютерге түсінікті командалардан тұрады. Осы командалар
тізбегін орындау соңында есептің нәтижесі шығады. Әрбір компьютер алдын ала
жазылған программамен жұмыс істейді. Процессор программаның құрамындағы
командаларды кезекпен орындап отырады.
Командалар тізбегін – программа деп атауға болады. Программалық
басқару орындаушыларымен таныса отырып, оқушылар құрылымдық программмалау
әдістерін меңгереді. Бірақ бұл жағдайда өлшем түсінігі қарастырылған жоқ.
Алайда оқушылар бұл түсінікпен электрондық кестелерді оқыған кезде танысқан
болатын. Енді осы ретте құрылымдық алгоритмдеу және өлшемдермен жұмыс
істеу дағдыларын біріктіру қажет.
Электронды есептеуіш машинада алгоритмдеуді оқытудың екі жағы бар:
• Алгоритмдер құрылымының құрылымдық әдісін оқыту.
• Өлшемдермен жұмыс әдістерін оқыту.
ЭЕМ – алгоритмді орындаушы болып табылады. Біздің білуімізше әрбір
алгоритм (Программа) белгілі бір орындаушының өзіне қажетті нәтижені алу
үшін қолданылатын командалар жүйесі. Ал орындаушы компьютер болып табылады.
Программалаушы өзіне ыңғайлы болатын тілді таңдап алады. Программалау
процесі үш кезеңге бөлінеді:
1. Есептің шешу алгоритмін құру.
2. Программалау тілінде программа құру.
3. Программаны өңдеу және тексеру.
Жұмыс алгоритмін сипаттау үшін блок-схемалар мен алгоритмдік тілді
пайдалану керек.Блок-схема тілі алгоритмді жазудың символдық тәсілдерінің
бірі болып табылады.
Құрылымдық блок-схема – алгоритм сызбасы алгоритмнің сызба түріндегі
графикалық бейнесі және олар өзара блок-меңзер арқылы байланысқан. Блок
ішіне сәйкес әрекеттің сипаттамасы беріледі. Алгоритмнің графикалық
бейнеленуі көрнекілік ретінде пайдаланылады. Өйткені көзбен қабылдау
программаны жазудыжеңілдетеді, оның мүмкін қатесін түзету ақпаратты өңдеу
процесі кезінде анықталады. Әрбір блок белгілі бір әрекетті білдіреді.
1.2 Алгоритм туралы ұғым
Егер сіз берілген есепті шешу үшін қандай да бір программалау тілінде
программа жазғыңыз келсе, онда алдымен есепті шешудің алгоритмін құруыңыз
керек. Алгоритм – математикадағы ең бір іргелі ұғымдардың бірі. Алгоритм
сөзі ІХ ғасырда өмір сүрген, адамдардың квадрат теңдеулерді жүйелей құрып
оны шеше білуге үйреткен ұлы математик Әл- Хорезмидің атының латынша
жазылуы algorithmi сөзінен алынған. Осылайша алгоритм ұғымы математикада
ертеден қолданыла бастағанымен, математикалық теорианың объектісі ретінде
кейбір проблемаларды зерттеуге байланысты ХХ ғасырдың 30-шы жылдарында
зерттеле бастады.
Алгоритм деп берілген есепті шешудегі жасалатын әректтерді дәл және
қарапайым етіп жазуды айтамыз. Басқаша айтқанда алға қойылған мақсатқа
жетуде немесе берілген есепті шешуде орындаушыға біртіндеп қандай әректтер
жасау керектігін дәл көрсететін нұсқауларды немесе іздеп отырған нәтижені
алу мақсатында деректермен атқарылатын әрекеттерін орындалу реттілігін
анықтайтын жарлықты алгоритм дейміз. Алгоритм белгілі бір реттіліепен
бірінен соң бірі орындалатын бірнеше қадамдардан тұрады. Алгоритмнің әрбір
қадамы бір немесе бірнеше қарапайым операцияларды қамтиды. Алгоритм ұғымның
мәнін аша түсетін оның мынадай қасиеттері бар:
1. Алгоритм дискретті информациялармен жасалатын әрекеттерді
тағайындайды және өрнектейді. Алгоритмге қатысты әрекеттердің бәрі
дискретті болады. Алгоритмнің жұмысына қажетті материалдар ретінде
символдық мәтіндер және сандар пайдаланылады.
2. Алгоритм біздің қалауымызға қарай өзгертуге болмайтын нақты нұсқау
алгоритмде не істеу керектігі алдын-ала айқын береді. Мысалы, бір есепті
шешудің алгоритмі берілсе онда ойланбай-ақ алгоритмде қандай нұсқаулар
берілсе, сол нұсқауларды берілу ретімен орындасақ, есеп шығады. Алгоритмнің
осы қасиетін оның анықталғандық қасиеті дейміз. Бұл жағдай адам сияқты емес
ойлау қабілеті жоқ құрылғылардың мысалы, компьютердің көмегімен есептерді
шешу мүмкіндігіне кепілдік берді. Мұндай құрылғылар алгоритмнің жарлықтарын
ойланбастан формальды орындайды. Сондықтан алгоритмді есепті шығаруға
қажеттінің бәрі бір мәнді анықталу және атқарушыға түсінікті әрі нақты
болуы тиіс.
3. Бір алгоритмнің өзін бірнеше есептің шешімін табу үшін пайдалану
мүмкіндігі, яғни бастапқы деректер мәндерінің жиынына пайдаланылу
мүмкіндігі бар.
Алгоритмнің мұндай қасиетін көпшілікке бірдейлік, басқаша айтқанда,
жалпылық қасиеті деп атайды.
4. Әрбір алгоритм белгілі бір бастапқы деректердің болуын талап етеді
және іздеген нәтижені алуға жеткізеді. Мысалы, екі санды қосу алгоритмнде
қосылғыштар бастапқы деректерге, ал қосынды нәтижеге жатады. Осылайша,
алгоритмдегі әрекеттердің белгілі бір санның орындалуынан кейін қажетті
нәтиже алу мүмкіндігі алгоритімнің нәтижелілігі деп аталады.
Осы айтылғандардан алгоритім бастапқы деректерді пайдаланып іздеген
нәтижеге қол жеткізетін реттелген әрекеттер тізбегі деген қлрытынды жасруға
болады. Мұндай әректтер тізбегінің орындалуы алгоритмдік процесс, ал әрбір
әрекет оның қадамы, әрбір нұсқау алгоритмнің қалыптасуы болып табылады.
Алгоритмнің ең маңызды қасиеті жоғарыда анықталғандық қасиетінде
айтылғандай оның орындалу нәтижесінің атқарушыға тәуелсіздігі.
Сонымен алгоритм туралы мына төмендегідей тұжырымдар жасауға болады:
• алгоритмдер әртүрлі есептерді шешу үшін пайдаланылады;
• алгоритмді атқарушыдан аз білім талап етілетіндіктен есеп
шығаруды айтарлықтай оңайлатады;
• әрбір алгоритм толық аяқталған әрекеттерді орындайтын атқарушыға
арналған командалардан тұрады;
• атқарушы орындайтын командалардың жиынын атқарушының командалар
жүйесі д.а.
• алгоритмдегі командалар атқарушының командалар жүйесінен алынады;
• алгоритмдегі командалар тізбегінің орындалуы алгоритмдік процесс
д.а;
• алгоритмдегі әрбір команда оның қадамы д.а;
• санаулы әрекеттен кейін ғана алгоритмде іздеген нәтижеге қол
жетеді;
• алгоритмдегі әрбір әрекет атқарушыға түсінікті және нақты болуы
керек;
• бірнеше есептің шешімін табу үшін бір ғана алгоритмді пайдалануға
болады;
• құрылған алгоритмді атқару есептің мазмұнына ой жүгіртіп оны
талдауды қажет етпейді, тек командаларды формальді орындай береді;
• алгоритм әрбір атқарушыға арналып құрылады;
• алгоритмнің командалары атқарушыға түсінікті және орындалатын
болуы тиіс;
• алгоритмді атқаруды тек адамға емес компьютерге де жүктеуге
болатындығы есептеу процесін автоматтандыруға мүмкүндік береді;
Алгоритмнің құрамы дараланып және оның әрекеттері анықталғаннан кейін
алгоритмді жазып көрсету тәсілін және тілін білу керек
Алгоритмдік тілді падалану оны құрушының өзіне ғана түсінікті
командаларды көпшілік қауымның пайдалануына мүмкіндік береді.
Алгоритмді жазудың бірнеше тәсілдері бар.Төменде алгоритмді бейнелеу
әдістерінің логикалық құрылымы көрсетілген.
Алгоритмді бейнелеу әдістерінің ішінен біз блок – схема мен кәсіптік орта
білім беру жүйесіндетік алгоритмдік тілді пайдаланамыз.
1.3 Блок-схема түрінде алгоритмдердің бейнеленуі
Блок схема компьютерге программалар жасау практикасында кеңінен
қолданылатын алгоритмдерді жазудың графикалық тәсілі, басқаша айтқанда,
алгоритмнің логикалық құрылымын график түрінде бейнелейтін тіл десек
болады. Есепті шешу алгоритімінің блок схемасын құрған кезде есепті шығару
процесі кезең дерге бөлініді. Әрбір кезең есептелетін операцияның сипатына
байланысты белгілі конфигурациясы бар бір геометриялық фигурамен (блокпен)
белгіленеді. Мысалы, жұмыр (сопақ), параллелограмм, тіктөртбұрыш, ромб
т.с.с.
Блок деп аталатын мұндай фигуралардың ішіне кезеңдердің мазмұны
жазылады. Есептелу процесінің бағыты блоктарды қосатын стрелкалармен
көрсетіледі. Осы аталғандардың бәрі блок – схема тілінің алфавитін құрайды
және олардың мағынасы алдын ала келісілген келісім бойынша беріледі.
Төмендегі 1-кестеде стандартты блок – схема тілінің алфавиті берілген.
Әрбір блок схеманың басы және соңы деп аталатын блоктары болады.
Басы, соңы блоктарынан басқа әрбір блоктың бір ену және бір – екі шығу
сызықтары болады.
Атқаратын қызметі жағынан блоктар негізгі және қосымша болып бөлінеді.
Негізгі блоктар енгізіу мен баспаға шығару және информацияларды өңдеу
әрекеттерін білдіреді, ал қосымша блоктар блок – схеманы түсіндіру және
байланыстарды таңбалау үшін пайдаланылады.
Блоктардың анықтайтын әрекеттері, яғни түсініктер блокты бейнелейтін
геометриялық фигураның ішіне жазылады.
Деректерді енгізу блогы есептеу есептерін шешуде айнымалылардың сандық
мәндерін компьютердің жадына енгізу үшін қолданылады.
Деректерді өңдеу блогы қандай да бір формула бойынша айнымалының мәнін
есептеу процесін білдіреді. Мұнда есептелген шамалар оларға сәйкес
айнымалылар жаңа мәндер қабылдағанша сақталады.
Бұл блокта формуланың сол жағында тұрған айнымалылар оның жағына да
қатыса алады, бұл дегеніміз айнымалының жаңа мәнін бұрын есептелген ескі
мәнінен шығарып алудың қажеттігін көрсетеді.
Шартты тексеру блогы есептелу процесінің барысы тікелей кейбір шартқа
тәуелді болатын есептелу процесінде анықталатын тармақталу алгоритмін
бейнелейді.
Аталуы Бейнеленуі
Мазмұны
Жұмыр Алгоритмнің
басы.
Деректерді енгізу немесе
Параллеограм шығару.
Тіктөртбұрыш Меншіктеу амалы
немесе
кез
келген әрекет.
Жоғары жағы Массивті
хабарлаушы
жиектелген процедура.
тіктөртбұрыш
Екі шеті Бағыныңқы
программа
жиектелген
тіктөртбұрыш
Магниттік диск Информацияны
ИСТ – на
ендіру және одан оқу
Ия Жоқ
Шартты тармақталу
Ромб
Жұмыр
Алгоритмнің соңы
Түйін Бірнеше
сызықтарды
біріктіру.
Байланыссыз Сызықтардың
екі сызықтың қиылысуы
қиылысуы
Блоктарды қосатын
Сызықтар ағыны сызықтар және
олардың
бағыттары
Сызықтар
ағынының бағытын
Сызықтардың
өзгерту
бағыты
Түсініктеме --------
Ендіру немесе есептеу
блоктарын түсіндіру.
Сызықтық алгоритм
Егер алгоритмнің N қадамы болса және олардың барлығы басынан аяғына
дейін бірінен соң бірі тізбектеле орындалатын болса, онда ондай алгоритмді
сызықтық алгоритм деп атаймыз. Сызықтық алгоритмнің блок – схемасы мына
суретте бейнеленген.
Алгоритмнің басы
Мәліметтерді енгізу
Осы алгритмнің барлық N қадамы жоғары-
дан төмен қарай тізбектеле орындалады.
Нәтижелерді шығару
Алгоритмнің соңы
Мысалы, табаны В, биіктігі Н үшбұрышьң ауданын табатын алгоритмді
келтірейік.
Тармақталушы алгоритм
Егер алгоритм қадамдарының тізбектеле орындалуы қандай да бір
шартқа тәуелді өзгеретін болса, онда ондай алгоритмді тармақталушы алгоритм
дейміз.
Алгоритм орындалғанда "иә" немесе " жоқ " деген мәндердің бірі
қабылждай алатын логикалық өрнекті шарт деп атаймыз.
Кез келген шарт мынадай үш бөлімнен тұрады:
сол жақ бөлігі;
салыстыру таңбасы;
оң жақ бөлігі.
Мысалдар келтірейік: А 0, Х А+С, К = 6
Мына төменде алгоритмнің тармақталушының бөлігінің жалпы түрі
келтірілген.
егер шарт
онда "иә" тармағы
әйтпесе " жоқ " тармағы
бітті
Мұнда егер, онда, әйтпесе, бітті – қызметші сөздер, егер
команданың басын, ал бітті команданың аяқталуын білдіреді.
↓
иә жоқ
↓
Тармақталу командасы мына тшөмендегідей қысқаша түрде
пайдаланылады:
егер шарт
онда
"иә" тармағы
бітті
↓
жоқ иә
↓
Шартты тексеру блогын сіздер блок – схемада ромбымен таңбалаймыз. Егер
шарт дұрыс болса, онда есепті шешу үшін "иә" тармағы пайдаланылады, ал оған
кері жағдайда - "жоқ" тармағы пайдаланылады.
Мысал үшін ах + вх + с = 0 квадрат теңдеуінің нақты түбірлерін табуға
және нақты түбірлері болмаған жағдайда оған сәйкес хабарды баспаға
шығаратын тармақталу алгоритмнің блок – схемасын келтірейік.
↓
↓
↓
↓
иә жоқ
↓
↓
Қайталанушы алгоритм
Егер берілген шамаға тәуелді алгоритмнің белгілі бір тізбектелген
қадамдарды бірнеше рет орындалатын болса, онда ондай алгоритмді қайталанушы
(циклдік) алгоритм дейміз. Бұл берілген шама цикл параметрі деп аталады.
Кез келген қайталанушы алгогритмде ол аяқталу үшін параметр болуы
тиіс. Параметр белгілі бір мәнге ие болған кезде цикл аяқталатын болады.
Мына төменде циклдің басында параметр үшін қойылған шартты тесеруге
арналған қайталаушы алгоритмнің алгоритмдік тілде жазылуы және блок –
схемасмының жалпы түрі берілген.
Әзір шарт
ЦБ
команадалар тізбегі
ЦС
Мұнда әзір, ЦБ (циклдің басы), ЦС (циклдің соңы) – қызметші
сөздер, ЦБ және ЦС әзірше шарт орындалғанға дейін орындалатын командалар
тізбегін таңбалайды.
↓
↓
жоқ
↓
↓
Ал мына суретте циклдің соңында параметр үшін қойылған шартты
тексеруге арналған қайталанушы алгоритмнің блок – схемасының жалпы түрі
бейнеленген.
↓
↓
↓
↓
↓
жоқ
↓
↓
Осы соңғы циклге мысал келтірейік.
S = К К- қосындысын есептейік және оның нәтижесін баспаға
шығаратын қайталанушы алгоритмнің блок – схемасы мына суреттегідей болады.
↓
↓
↓
↓
↓
↓
↓
Алгоритмдерді құрылымын негізге
ала отырып құрастыру
Компьютер есеп шығару үшін алгоритм құру арнайы дағдыны талап
ететін жұмыс. Бұл жағдайда әсіресе бөтен алгоритмдерді оқуда алгоритм
мынандай талаптарды қанағаттандыруы тиіс:
Түсінікті әрі өте жеңіл қабылданатын болуы;
Алгоритмнің жеңіл тексерлетін болуы;
Құрылымын түгел өзгерпей-ақ өзін модификациялауға мүмкіндік беруі.
Осы аталғандарға қол жеткізу үшін алгоритмдерді құруда оның
құрылымы жағынан келу деп аталатын ерекше тәсілді башылыққа алу керек.
Алгоритмдерді құрастыруға құрылымы жағынан келгенде оның жоғарыда
қарастырылған үш базалық құрылымы:
Ілесу, тармақталу және қайталану негізге алынады, яғни кез келген
күрделі алгоритм осы құрылымдардан құрастырылады. Мысал ретінде үш санның
ішінен үлкенін іздеу алгоритмін қарастырайық.
Блок-схемадан көрініп тұрғанындай бұл алгоритм екі тармақталудың
ілесуі болып табылады. Бірінші ілесуде (тармақталу командасының толық
үлгіде жазылуы) а және в сандарының үлкені ізделінеді және олардың үлкені у-
ке меншіктеледі.
Екінші ілесуде (тармақталу командасының қысқаша түрде жазылуы) у-тің
мәні үшінші сан с-мен салыстырылады. Егер ус болса, онда у-ке с
меншіктеледі, ал керісінше болса, онда у өзгерісіз қалады. Осылайша
алгоритм орындалғанда айнымалы у өзінің мәні етіп а,в және с сандарының ең
үлкенін қабылдайды.
II ТАРАУ. ПАСКАЛЬ ТІЛІ ПРОГРАММАСЫН ОҚЫТУДЫҢ ӘДІСТЕМЕЛІК ЕРЕКШЕЛІКТЕРІ
2.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].
2.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 {сол
жағында едәуір кең тип тұруы керек}
Тармақталу операторларының үш түрі бар (қосымшадан қараңыз).
Тармақталу алгоритмдерді программалауда блок-схемаларды қолдану
міндетті деп есептейміз. Себебі программа құрғанда блок-схемалар көп
көмегін тигізеді. Мысалы, ах2+вх+с=0 квадрат теңдеуін шешу программасын
блок-схеманының көмегімен құрып көрейік. Бұл есепті шешу үшін математикалық
білім керек және Алгебра пәнінде қарастырған материалды еске түсіріп, оның
маңыздылығын сезінуге баулау тәрбиелеу оқытудың бір көрінісі.
Сызба 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.
2.3 Циклдік құрылымды алгоритмдерді программалау
Көп жағдайда аргументтердің әртүрлі мәні бойынша алгоритмнің белгілі
бір бөліктерін бірнеше рет қайталауға тура келеді. Лсындай процестерді
ұйымдастыру үшін циклдік құрылымды алгоритмдер – қайталау операторлары
қолданылады. Олар әр түрлі заңдылық негізіндегі ереже бойынша құрылады.
Циклдік операторлардың үш түрі бар (қосымшадағы материалдан қараңыз).
Параметрлі қайталау командасының жазылу форматы:
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,
‘,’)
2.4 Бір және екіөлшемді жиымдар
Жиымдар – бір атаумен белгіленген бір типті шамалардың нөмірленген
тізімі. Жиымның элементтері сәйкес тібектелген ұяшықтарға орналастырылады,
жиым өзінің атауымен және индексімен белгіленеді. Жиымды құрайтын әрбір мән
оның элементі деп аталады.
Программада жиымға атау беріледі, ол арқылы жиымның элементін
пайдалануға болады. Жиымның элементтерін құрайтын айнымалылар индексті
айнымалылар деп аталады. Жиым элементтері болатын индекстер константа
(тұрақты), айнымалы немесе өрнек түрінде берілу мүмкін.
Жиымға төмендегі қасиеттер тән:
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;
Онда А:=В; меншіктеу операциясын жазуға болады.
2.5 Графиктік объектілерді программалау
Графикалық режімде экранның нүктесін түрлі түске бояп, сол түстер
арқылы сызықтар, мәтіндер және әр түрлі бейнелер тұрғызатын мүмкіндіктер
бар. Графкалық программалау процесін тиімдірек ету мақсатында 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.
2.6 Процедуралар және функциялар
Практикалық есептерге программа құрғанда үлкен программаның белгілі
бір бөлігін әр түрлі мәндер бойынша бірнеше рет қайталап пайдалануға тура
келеді. Мұндайй бір типтес программа бөлігін программаның әр бөлігінде
қайталап жаза бермеу үшін оны жеке қосалқы программа ретінде бөліп жазған
ыңғайлы.
Жеке программа түрінде бөлек жазылған, қажет кезінде оған оралып, оны
пайдаланып отыруға болатын негізгі программаның арнайы бөлігін қосалқы
программа дейді. Қосалқы программаға автоматты түрде енуге және одан шығуға
болады.
Қосалқы программаны пайдалану төмендегідей мүмкіндіктер береді:
1) негізгі программаның көлемі кішірейеді;
2) негізгі программада пайдаланылған айнымалыларды қосалқы
программада пайдалануға болады;
3)қосалқы программаны пайдалану құрылымдық программалауға мүмкіндік
береді.
Паскаль тілінде алгоритмдік тіл тәрізді қосалқы
программаның екі түрі пайданылады. Олар: процедура және функция. Бір
программада бір немесе бірнеше процедура немесе функция пайдалануға болады.
Кез келген процедура – процедура аты және процкдура мәтінінен, яғни
тұлғасынан тұрады. Процедура тұлғасы негізгі программа тәрізді:
айнымалыларды сипаттау және операторлар бөлімнен тұрады. Процедураны
сипаттаудың жалпы түрі:
PROCEDURE аты(формальды параметрлер тізбегі);
Формальды параметрлер тізбегі ... жалғасы
I тарау. Алгоритмнің программалау негіздеріндегі ролі
Алгоритмдеуді кәсіптік орта білім беру курсында оқытудың
маңызы ... ... ...
Алгоритм туралы ұғым ... ... ... ... ... ... ... ... ... ... ... ... ...
Блок-схема түрінде алгоритмдердің бейнеленуі ... ... ... ... ...
II тарау. паскаль тілі программасын оқытудың әдістемелік
ерекшеліктері
Паскаль тілі программасының негізгі ұғымдары ... ... ... ... ...
Сызықтық құрылымды алгоритмдерді және тармақталу алгоритмін
программалау ... ... ... .
Циклдік құрылымды алгоритмдерді программалау ... ... ... ... .
Бір және екі өлшемді жиымдар ... ... ... ... ... ... ... ... ... ... ..
Графикалық объектілерді программалау ... ... ... ... ... ... ... ..
Процедуралар және функциялар ... ... ... ... ... ... ... ... ... ...
Символдық шамалармен жұмыс ... ... ... ... ... ... ... ... ... ..
IІI тарау. паскаль тілі программасын оқытудың әдістемелік
үлгілері
Деңгейлеп оқыту ... ... ... ... ... ... ... .. ... ... ... ... ...
... ... ... ... ..
Жаттығуларды шешу жолдары, cабақ жоспары, тест тапсырмаларын
ұсыну ... ... ... ... ... ... ... ... ... ... ... ... ... ..
Паскаль тілі программасын оқытуда интелект- картаны
қолдану ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
Программалау негіздерін оқытудағы көп нұсқалық әдіс ... ..
Программалау тілдерін оқытудың модульдік технологиясы ... ..
Программалау тілдерін оқытуда дидактикалық материалдарды пайдалану
Қорытынды ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .
Пайдаланылған әдебиеттер ... ... ... ... ... ... ... ... ... ... ... ... ...
Қосымшалар ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
Кіріспе
Қазіргі заманда адам көп істі компьютер пайдалану арқылы атқарады. Кез
келген міндетті орындау алгоритмінің болуын, яғни нәтиже алуға жеткізетін
әрекеттердің алдын-ала жазылуын қажет етеді. Алгоритмнің негізінде
программа түзіледі, яғни есеп шешуінің алгоритмі оны компьютерде орындауға
жарамды түрде жазылады. Осыдан барып компьютердің көмегімен есепті шешу
процесінің мәні алгоритмдерді құру екені көрінеді.
Қазіргі қоғам өміріндегі алгоритмдеудің ролі оны пайдаланудың
техникалық аспектілермен ғана айқындалмайды. Алгоритмдік қатынас адамның
күнделікті өмірінен, олардың әдеттегі жұмысынан айырғысыз. Басым көп
жағдайларда адам қызметінің нәтижесі оның өз әрекеттерінің алгоритмдік
мәнін қаншалықты дәл білетіндігіне тәуелді: әр мезетте, қандай ретте не
істеу керек; әрекеттер қорытындысы қандай болу керек. Бұл белгілі дәрежеде
алдгоритмдерді құрастыру мен пайдалана білуге қатысты.
Информатика және есептеуіш техника негіздері пән ретінде қалыптасқан
ғылымның бір саласы. Мұнда алгоритм құрастыру, жазу түсініктері беріліп,
қазіргі кезде кең тараған программалау тілінің бірі - Паскаль тілінің
ерекшеліктері қарастырылып, оны пайдаланып математика, физика есептерін
шығаруды компьютерде орындау жүзеге асырылады.
Информатика пәні негізінен мынадай тақырыптарды қамтиды:
• Алгоритм, программа ұғымы.
• Алгоритмдерді қарапайым тілде, блок-схема түрінде жазу.
• Паскаль тілінде мәліметтерді сипаттау, программалар құру, оларды
компьютерде орындау.
• Әр түрлі операторларды жазу, функциялар мен процедураларды
пайдалану жолдары т.б.
Қазіргі кезде Паскаль тілі кез-келген күрделі есептерді шығара алатын,
кең таралған стандартты оқу тіліне айналды. Сондықтан жалпы білім беретін
кәсіптік орта білім беру жүйесінде программалауды оқытуда осы Паскаль тілі
таңдалып алынған.
Біздің негізгі мақсатымыз – кәсіптік орта білім беру жүйесінде
курсындағы жаңа бағдарлама бойынша 2005-2006 оқу жылында ғана Информатика
пәніне енгізілген оқулықтағығы Паскаль тілі программасының оқытудың
әдістемелік ерекшеліктеріне тоқталамыз және көкейтесті бірнеше мәселелерді
қарастырып, шешу жолдарын ұсынамыз. Ойымыз дәлелді болу үшін жоғарғы оқу
орнының материалдарымен салыстырып, айырмашылықтарына баса назар аударып,
ондағы қолданатын тәсілдерді кәсіптік орта білім беру жүйесінде деңгейінде
қарастырамыз.
Күнтізбелік жоспар бойынша Паскаль тілін оқытуға (алгоритмдерді
қоса есептегенде) бар-жоғы 24-26 сағат ғана бөлінген.
Жобаның өзектілігі: Сондықтан оқушылардың материалды толық меңгеруге-
сағаттардың аздығы, игеретін материалдардың тығыздығы өте үлкен әсер етіп
отыр.
Практикалық маңызы: Қосымша мұғалімдерге арналған әдістемелік оқулық,
ал оқушыларға арналған есептер мен жаттығулар жинағы бар, бірақ есептер
деңгейлерге бөлінбеген, шығару жолдары көрсетілмеген. Осы себептен біз осы
жұмыста есептерді 3 деңгейге бөліп қарастырдық және әрбір тараудан кейін
тест тапсырмасын беріп отырмыз. Сондай-ақ біз жаңа материалдарды
түсіндіргенге интелект картаны ұкәсіптік орта білім беру жүйесінде отырмыз.
I ТАРАУ. АЛГОРИТМНІҢ ПРОГРАММАЛАУ НЕГІЗДЕРІНДЕГІ РОЛІ
1.1 Алгоритмдеуді кәсіптік орта білім беру жүйесінде курсында оқытудың
маңызы
Бүгінгі күн талабына сәйкес кез келген сала мамандары ақпараттық
технологияларды толыққанды пайдаланушылар бола алуы тиіс. Ал ақпараттық
технологияларды жаңа деңгейге көтеруге және оларды дамытуда алгроритмдеудің
орны ерекше. Сондықтан алгоритмдеу негіздерін кәсіптік орта білім беру
жүйесіндете дұрыстап жіне жаңартуға, жаңа заман, қоғам талабына сай
мамандар дайындауға мүмкіндік береді деген сөз.
Программаға қажетті негізгі қасиет – дамыған алгоритмдік ойлау болып
табылады. Бұл қасиеттің дамуы профессионалдық қана емес, жалпы
педагогикалық мағынаны білдіреді.
Жалпы алгоритм ұғымы информатикада ақпарат сияқты іргелі ұғымдар
қатарына жатады. Бұл атаудың мағынасын түсіну үшін оған жан-жақты талдау
жасаған жөн. Алгоритм атауы атақты араб математигі Әбу Жафар Мұхамед ибн әл-
Хорезми (763-850 жж.) есімінің латынша Algorithmy (Алгоритми) болып
жазылуынан шыққан. Қазіргі кезде Алгоритм ұғымы тек математикалық есеп
шешу әдісімен ғана шектелмейді. Әрбір компьютер алдын ала берілген
алгоритммен, яғни жоспарлы жұмыс істейді. Алгоритмді реттелген амалдар
жиыны, кезекпен орындалатын операциялар тізімі деп ұғынған жөн. Оның
көптеген анықтамасы бар. Соның бірі: алгоритм-берілген есептің шығару жолын
реттелген амалдар тізбегі түріне келтіру.
Сонымен алгоритм дегеніміз атқарушы нақты мақсатқа жету үшін
орындайтын әрекеттер тізбегі. Ал атқарушы дегеніміз белгілі бір әрекеттер
жиынтығын орындайтын объект.
Алгоритмді компьютерде орындау үшін оны программа түрінде жазып шығару
керек. Программа компьютерге түсінікті командалардан тұрады. Осы командалар
тізбегін орындау соңында есептің нәтижесі шығады. Әрбір компьютер алдын ала
жазылған программамен жұмыс істейді. Процессор программаның құрамындағы
командаларды кезекпен орындап отырады.
Командалар тізбегін – программа деп атауға болады. Программалық
басқару орындаушыларымен таныса отырып, оқушылар құрылымдық программмалау
әдістерін меңгереді. Бірақ бұл жағдайда өлшем түсінігі қарастырылған жоқ.
Алайда оқушылар бұл түсінікпен электрондық кестелерді оқыған кезде танысқан
болатын. Енді осы ретте құрылымдық алгоритмдеу және өлшемдермен жұмыс
істеу дағдыларын біріктіру қажет.
Электронды есептеуіш машинада алгоритмдеуді оқытудың екі жағы бар:
• Алгоритмдер құрылымының құрылымдық әдісін оқыту.
• Өлшемдермен жұмыс әдістерін оқыту.
ЭЕМ – алгоритмді орындаушы болып табылады. Біздің білуімізше әрбір
алгоритм (Программа) белгілі бір орындаушының өзіне қажетті нәтижені алу
үшін қолданылатын командалар жүйесі. Ал орындаушы компьютер болып табылады.
Программалаушы өзіне ыңғайлы болатын тілді таңдап алады. Программалау
процесі үш кезеңге бөлінеді:
1. Есептің шешу алгоритмін құру.
2. Программалау тілінде программа құру.
3. Программаны өңдеу және тексеру.
Жұмыс алгоритмін сипаттау үшін блок-схемалар мен алгоритмдік тілді
пайдалану керек.Блок-схема тілі алгоритмді жазудың символдық тәсілдерінің
бірі болып табылады.
Құрылымдық блок-схема – алгоритм сызбасы алгоритмнің сызба түріндегі
графикалық бейнесі және олар өзара блок-меңзер арқылы байланысқан. Блок
ішіне сәйкес әрекеттің сипаттамасы беріледі. Алгоритмнің графикалық
бейнеленуі көрнекілік ретінде пайдаланылады. Өйткені көзбен қабылдау
программаны жазудыжеңілдетеді, оның мүмкін қатесін түзету ақпаратты өңдеу
процесі кезінде анықталады. Әрбір блок белгілі бір әрекетті білдіреді.
1.2 Алгоритм туралы ұғым
Егер сіз берілген есепті шешу үшін қандай да бір программалау тілінде
программа жазғыңыз келсе, онда алдымен есепті шешудің алгоритмін құруыңыз
керек. Алгоритм – математикадағы ең бір іргелі ұғымдардың бірі. Алгоритм
сөзі ІХ ғасырда өмір сүрген, адамдардың квадрат теңдеулерді жүйелей құрып
оны шеше білуге үйреткен ұлы математик Әл- Хорезмидің атының латынша
жазылуы algorithmi сөзінен алынған. Осылайша алгоритм ұғымы математикада
ертеден қолданыла бастағанымен, математикалық теорианың объектісі ретінде
кейбір проблемаларды зерттеуге байланысты ХХ ғасырдың 30-шы жылдарында
зерттеле бастады.
Алгоритм деп берілген есепті шешудегі жасалатын әректтерді дәл және
қарапайым етіп жазуды айтамыз. Басқаша айтқанда алға қойылған мақсатқа
жетуде немесе берілген есепті шешуде орындаушыға біртіндеп қандай әректтер
жасау керектігін дәл көрсететін нұсқауларды немесе іздеп отырған нәтижені
алу мақсатында деректермен атқарылатын әрекеттерін орындалу реттілігін
анықтайтын жарлықты алгоритм дейміз. Алгоритм белгілі бір реттіліепен
бірінен соң бірі орындалатын бірнеше қадамдардан тұрады. Алгоритмнің әрбір
қадамы бір немесе бірнеше қарапайым операцияларды қамтиды. Алгоритм ұғымның
мәнін аша түсетін оның мынадай қасиеттері бар:
1. Алгоритм дискретті информациялармен жасалатын әрекеттерді
тағайындайды және өрнектейді. Алгоритмге қатысты әрекеттердің бәрі
дискретті болады. Алгоритмнің жұмысына қажетті материалдар ретінде
символдық мәтіндер және сандар пайдаланылады.
2. Алгоритм біздің қалауымызға қарай өзгертуге болмайтын нақты нұсқау
алгоритмде не істеу керектігі алдын-ала айқын береді. Мысалы, бір есепті
шешудің алгоритмі берілсе онда ойланбай-ақ алгоритмде қандай нұсқаулар
берілсе, сол нұсқауларды берілу ретімен орындасақ, есеп шығады. Алгоритмнің
осы қасиетін оның анықталғандық қасиеті дейміз. Бұл жағдай адам сияқты емес
ойлау қабілеті жоқ құрылғылардың мысалы, компьютердің көмегімен есептерді
шешу мүмкіндігіне кепілдік берді. Мұндай құрылғылар алгоритмнің жарлықтарын
ойланбастан формальды орындайды. Сондықтан алгоритмді есепті шығаруға
қажеттінің бәрі бір мәнді анықталу және атқарушыға түсінікті әрі нақты
болуы тиіс.
3. Бір алгоритмнің өзін бірнеше есептің шешімін табу үшін пайдалану
мүмкіндігі, яғни бастапқы деректер мәндерінің жиынына пайдаланылу
мүмкіндігі бар.
Алгоритмнің мұндай қасиетін көпшілікке бірдейлік, басқаша айтқанда,
жалпылық қасиеті деп атайды.
4. Әрбір алгоритм белгілі бір бастапқы деректердің болуын талап етеді
және іздеген нәтижені алуға жеткізеді. Мысалы, екі санды қосу алгоритмнде
қосылғыштар бастапқы деректерге, ал қосынды нәтижеге жатады. Осылайша,
алгоритмдегі әрекеттердің белгілі бір санның орындалуынан кейін қажетті
нәтиже алу мүмкіндігі алгоритімнің нәтижелілігі деп аталады.
Осы айтылғандардан алгоритім бастапқы деректерді пайдаланып іздеген
нәтижеге қол жеткізетін реттелген әрекеттер тізбегі деген қлрытынды жасруға
болады. Мұндай әректтер тізбегінің орындалуы алгоритмдік процесс, ал әрбір
әрекет оның қадамы, әрбір нұсқау алгоритмнің қалыптасуы болып табылады.
Алгоритмнің ең маңызды қасиеті жоғарыда анықталғандық қасиетінде
айтылғандай оның орындалу нәтижесінің атқарушыға тәуелсіздігі.
Сонымен алгоритм туралы мына төмендегідей тұжырымдар жасауға болады:
• алгоритмдер әртүрлі есептерді шешу үшін пайдаланылады;
• алгоритмді атқарушыдан аз білім талап етілетіндіктен есеп
шығаруды айтарлықтай оңайлатады;
• әрбір алгоритм толық аяқталған әрекеттерді орындайтын атқарушыға
арналған командалардан тұрады;
• атқарушы орындайтын командалардың жиынын атқарушының командалар
жүйесі д.а.
• алгоритмдегі командалар атқарушының командалар жүйесінен алынады;
• алгоритмдегі командалар тізбегінің орындалуы алгоритмдік процесс
д.а;
• алгоритмдегі әрбір команда оның қадамы д.а;
• санаулы әрекеттен кейін ғана алгоритмде іздеген нәтижеге қол
жетеді;
• алгоритмдегі әрбір әрекет атқарушыға түсінікті және нақты болуы
керек;
• бірнеше есептің шешімін табу үшін бір ғана алгоритмді пайдалануға
болады;
• құрылған алгоритмді атқару есептің мазмұнына ой жүгіртіп оны
талдауды қажет етпейді, тек командаларды формальді орындай береді;
• алгоритм әрбір атқарушыға арналып құрылады;
• алгоритмнің командалары атқарушыға түсінікті және орындалатын
болуы тиіс;
• алгоритмді атқаруды тек адамға емес компьютерге де жүктеуге
болатындығы есептеу процесін автоматтандыруға мүмкүндік береді;
Алгоритмнің құрамы дараланып және оның әрекеттері анықталғаннан кейін
алгоритмді жазып көрсету тәсілін және тілін білу керек
Алгоритмдік тілді падалану оны құрушының өзіне ғана түсінікті
командаларды көпшілік қауымның пайдалануына мүмкіндік береді.
Алгоритмді жазудың бірнеше тәсілдері бар.Төменде алгоритмді бейнелеу
әдістерінің логикалық құрылымы көрсетілген.
Алгоритмді бейнелеу әдістерінің ішінен біз блок – схема мен кәсіптік орта
білім беру жүйесіндетік алгоритмдік тілді пайдаланамыз.
1.3 Блок-схема түрінде алгоритмдердің бейнеленуі
Блок схема компьютерге программалар жасау практикасында кеңінен
қолданылатын алгоритмдерді жазудың графикалық тәсілі, басқаша айтқанда,
алгоритмнің логикалық құрылымын график түрінде бейнелейтін тіл десек
болады. Есепті шешу алгоритімінің блок схемасын құрған кезде есепті шығару
процесі кезең дерге бөлініді. Әрбір кезең есептелетін операцияның сипатына
байланысты белгілі конфигурациясы бар бір геометриялық фигурамен (блокпен)
белгіленеді. Мысалы, жұмыр (сопақ), параллелограмм, тіктөртбұрыш, ромб
т.с.с.
Блок деп аталатын мұндай фигуралардың ішіне кезеңдердің мазмұны
жазылады. Есептелу процесінің бағыты блоктарды қосатын стрелкалармен
көрсетіледі. Осы аталғандардың бәрі блок – схема тілінің алфавитін құрайды
және олардың мағынасы алдын ала келісілген келісім бойынша беріледі.
Төмендегі 1-кестеде стандартты блок – схема тілінің алфавиті берілген.
Әрбір блок схеманың басы және соңы деп аталатын блоктары болады.
Басы, соңы блоктарынан басқа әрбір блоктың бір ену және бір – екі шығу
сызықтары болады.
Атқаратын қызметі жағынан блоктар негізгі және қосымша болып бөлінеді.
Негізгі блоктар енгізіу мен баспаға шығару және информацияларды өңдеу
әрекеттерін білдіреді, ал қосымша блоктар блок – схеманы түсіндіру және
байланыстарды таңбалау үшін пайдаланылады.
Блоктардың анықтайтын әрекеттері, яғни түсініктер блокты бейнелейтін
геометриялық фигураның ішіне жазылады.
Деректерді енгізу блогы есептеу есептерін шешуде айнымалылардың сандық
мәндерін компьютердің жадына енгізу үшін қолданылады.
Деректерді өңдеу блогы қандай да бір формула бойынша айнымалының мәнін
есептеу процесін білдіреді. Мұнда есептелген шамалар оларға сәйкес
айнымалылар жаңа мәндер қабылдағанша сақталады.
Бұл блокта формуланың сол жағында тұрған айнымалылар оның жағына да
қатыса алады, бұл дегеніміз айнымалының жаңа мәнін бұрын есептелген ескі
мәнінен шығарып алудың қажеттігін көрсетеді.
Шартты тексеру блогы есептелу процесінің барысы тікелей кейбір шартқа
тәуелді болатын есептелу процесінде анықталатын тармақталу алгоритмін
бейнелейді.
Аталуы Бейнеленуі
Мазмұны
Жұмыр Алгоритмнің
басы.
Деректерді енгізу немесе
Параллеограм шығару.
Тіктөртбұрыш Меншіктеу амалы
немесе
кез
келген әрекет.
Жоғары жағы Массивті
хабарлаушы
жиектелген процедура.
тіктөртбұрыш
Екі шеті Бағыныңқы
программа
жиектелген
тіктөртбұрыш
Магниттік диск Информацияны
ИСТ – на
ендіру және одан оқу
Ия Жоқ
Шартты тармақталу
Ромб
Жұмыр
Алгоритмнің соңы
Түйін Бірнеше
сызықтарды
біріктіру.
Байланыссыз Сызықтардың
екі сызықтың қиылысуы
қиылысуы
Блоктарды қосатын
Сызықтар ағыны сызықтар және
олардың
бағыттары
Сызықтар
ағынының бағытын
Сызықтардың
өзгерту
бағыты
Түсініктеме --------
Ендіру немесе есептеу
блоктарын түсіндіру.
Сызықтық алгоритм
Егер алгоритмнің N қадамы болса және олардың барлығы басынан аяғына
дейін бірінен соң бірі тізбектеле орындалатын болса, онда ондай алгоритмді
сызықтық алгоритм деп атаймыз. Сызықтық алгоритмнің блок – схемасы мына
суретте бейнеленген.
Алгоритмнің басы
Мәліметтерді енгізу
Осы алгритмнің барлық N қадамы жоғары-
дан төмен қарай тізбектеле орындалады.
Нәтижелерді шығару
Алгоритмнің соңы
Мысалы, табаны В, биіктігі Н үшбұрышьң ауданын табатын алгоритмді
келтірейік.
Тармақталушы алгоритм
Егер алгоритм қадамдарының тізбектеле орындалуы қандай да бір
шартқа тәуелді өзгеретін болса, онда ондай алгоритмді тармақталушы алгоритм
дейміз.
Алгоритм орындалғанда "иә" немесе " жоқ " деген мәндердің бірі
қабылждай алатын логикалық өрнекті шарт деп атаймыз.
Кез келген шарт мынадай үш бөлімнен тұрады:
сол жақ бөлігі;
салыстыру таңбасы;
оң жақ бөлігі.
Мысалдар келтірейік: А 0, Х А+С, К = 6
Мына төменде алгоритмнің тармақталушының бөлігінің жалпы түрі
келтірілген.
егер шарт
онда "иә" тармағы
әйтпесе " жоқ " тармағы
бітті
Мұнда егер, онда, әйтпесе, бітті – қызметші сөздер, егер
команданың басын, ал бітті команданың аяқталуын білдіреді.
↓
иә жоқ
↓
Тармақталу командасы мына тшөмендегідей қысқаша түрде
пайдаланылады:
егер шарт
онда
"иә" тармағы
бітті
↓
жоқ иә
↓
Шартты тексеру блогын сіздер блок – схемада ромбымен таңбалаймыз. Егер
шарт дұрыс болса, онда есепті шешу үшін "иә" тармағы пайдаланылады, ал оған
кері жағдайда - "жоқ" тармағы пайдаланылады.
Мысал үшін ах + вх + с = 0 квадрат теңдеуінің нақты түбірлерін табуға
және нақты түбірлері болмаған жағдайда оған сәйкес хабарды баспаға
шығаратын тармақталу алгоритмнің блок – схемасын келтірейік.
↓
↓
↓
↓
иә жоқ
↓
↓
Қайталанушы алгоритм
Егер берілген шамаға тәуелді алгоритмнің белгілі бір тізбектелген
қадамдарды бірнеше рет орындалатын болса, онда ондай алгоритмді қайталанушы
(циклдік) алгоритм дейміз. Бұл берілген шама цикл параметрі деп аталады.
Кез келген қайталанушы алгогритмде ол аяқталу үшін параметр болуы
тиіс. Параметр белгілі бір мәнге ие болған кезде цикл аяқталатын болады.
Мына төменде циклдің басында параметр үшін қойылған шартты тесеруге
арналған қайталаушы алгоритмнің алгоритмдік тілде жазылуы және блок –
схемасмының жалпы түрі берілген.
Әзір шарт
ЦБ
команадалар тізбегі
ЦС
Мұнда әзір, ЦБ (циклдің басы), ЦС (циклдің соңы) – қызметші
сөздер, ЦБ және ЦС әзірше шарт орындалғанға дейін орындалатын командалар
тізбегін таңбалайды.
↓
↓
жоқ
↓
↓
Ал мына суретте циклдің соңында параметр үшін қойылған шартты
тексеруге арналған қайталанушы алгоритмнің блок – схемасының жалпы түрі
бейнеленген.
↓
↓
↓
↓
↓
жоқ
↓
↓
Осы соңғы циклге мысал келтірейік.
S = К К- қосындысын есептейік және оның нәтижесін баспаға
шығаратын қайталанушы алгоритмнің блок – схемасы мына суреттегідей болады.
↓
↓
↓
↓
↓
↓
↓
Алгоритмдерді құрылымын негізге
ала отырып құрастыру
Компьютер есеп шығару үшін алгоритм құру арнайы дағдыны талап
ететін жұмыс. Бұл жағдайда әсіресе бөтен алгоритмдерді оқуда алгоритм
мынандай талаптарды қанағаттандыруы тиіс:
Түсінікті әрі өте жеңіл қабылданатын болуы;
Алгоритмнің жеңіл тексерлетін болуы;
Құрылымын түгел өзгерпей-ақ өзін модификациялауға мүмкіндік беруі.
Осы аталғандарға қол жеткізу үшін алгоритмдерді құруда оның
құрылымы жағынан келу деп аталатын ерекше тәсілді башылыққа алу керек.
Алгоритмдерді құрастыруға құрылымы жағынан келгенде оның жоғарыда
қарастырылған үш базалық құрылымы:
Ілесу, тармақталу және қайталану негізге алынады, яғни кез келген
күрделі алгоритм осы құрылымдардан құрастырылады. Мысал ретінде үш санның
ішінен үлкенін іздеу алгоритмін қарастырайық.
Блок-схемадан көрініп тұрғанындай бұл алгоритм екі тармақталудың
ілесуі болып табылады. Бірінші ілесуде (тармақталу командасының толық
үлгіде жазылуы) а және в сандарының үлкені ізделінеді және олардың үлкені у-
ке меншіктеледі.
Екінші ілесуде (тармақталу командасының қысқаша түрде жазылуы) у-тің
мәні үшінші сан с-мен салыстырылады. Егер ус болса, онда у-ке с
меншіктеледі, ал керісінше болса, онда у өзгерісіз қалады. Осылайша
алгоритм орындалғанда айнымалы у өзінің мәні етіп а,в және с сандарының ең
үлкенін қабылдайды.
II ТАРАУ. ПАСКАЛЬ ТІЛІ ПРОГРАММАСЫН ОҚЫТУДЫҢ ӘДІСТЕМЕЛІК ЕРЕКШЕЛІКТЕРІ
2.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].
2.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 {сол
жағында едәуір кең тип тұруы керек}
Тармақталу операторларының үш түрі бар (қосымшадан қараңыз).
Тармақталу алгоритмдерді программалауда блок-схемаларды қолдану
міндетті деп есептейміз. Себебі программа құрғанда блок-схемалар көп
көмегін тигізеді. Мысалы, ах2+вх+с=0 квадрат теңдеуін шешу программасын
блок-схеманының көмегімен құрып көрейік. Бұл есепті шешу үшін математикалық
білім керек және Алгебра пәнінде қарастырған материалды еске түсіріп, оның
маңыздылығын сезінуге баулау тәрбиелеу оқытудың бір көрінісі.
Сызба 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.
2.3 Циклдік құрылымды алгоритмдерді программалау
Көп жағдайда аргументтердің әртүрлі мәні бойынша алгоритмнің белгілі
бір бөліктерін бірнеше рет қайталауға тура келеді. Лсындай процестерді
ұйымдастыру үшін циклдік құрылымды алгоритмдер – қайталау операторлары
қолданылады. Олар әр түрлі заңдылық негізіндегі ереже бойынша құрылады.
Циклдік операторлардың үш түрі бар (қосымшадағы материалдан қараңыз).
Параметрлі қайталау командасының жазылу форматы:
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,
‘,’)
2.4 Бір және екіөлшемді жиымдар
Жиымдар – бір атаумен белгіленген бір типті шамалардың нөмірленген
тізімі. Жиымның элементтері сәйкес тібектелген ұяшықтарға орналастырылады,
жиым өзінің атауымен және индексімен белгіленеді. Жиымды құрайтын әрбір мән
оның элементі деп аталады.
Программада жиымға атау беріледі, ол арқылы жиымның элементін
пайдалануға болады. Жиымның элементтерін құрайтын айнымалылар индексті
айнымалылар деп аталады. Жиым элементтері болатын индекстер константа
(тұрақты), айнымалы немесе өрнек түрінде берілу мүмкін.
Жиымға төмендегі қасиеттер тән:
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;
Онда А:=В; меншіктеу операциясын жазуға болады.
2.5 Графиктік объектілерді программалау
Графикалық режімде экранның нүктесін түрлі түске бояп, сол түстер
арқылы сызықтар, мәтіндер және әр түрлі бейнелер тұрғызатын мүмкіндіктер
бар. Графкалық программалау процесін тиімдірек ету мақсатында 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.
2.6 Процедуралар және функциялар
Практикалық есептерге программа құрғанда үлкен программаның белгілі
бір бөлігін әр түрлі мәндер бойынша бірнеше рет қайталап пайдалануға тура
келеді. Мұндайй бір типтес программа бөлігін программаның әр бөлігінде
қайталап жаза бермеу үшін оны жеке қосалқы программа ретінде бөліп жазған
ыңғайлы.
Жеке программа түрінде бөлек жазылған, қажет кезінде оған оралып, оны
пайдаланып отыруға болатын негізгі программаның арнайы бөлігін қосалқы
программа дейді. Қосалқы программаға автоматты түрде енуге және одан шығуға
болады.
Қосалқы программаны пайдалану төмендегідей мүмкіндіктер береді:
1) негізгі программаның көлемі кішірейеді;
2) негізгі программада пайдаланылған айнымалыларды қосалқы
программада пайдалануға болады;
3)қосалқы программаны пайдалану құрылымдық программалауға мүмкіндік
береді.
Паскаль тілінде алгоритмдік тіл тәрізді қосалқы
программаның екі түрі пайданылады. Олар: процедура және функция. Бір
программада бір немесе бірнеше процедура немесе функция пайдалануға болады.
Кез келген процедура – процедура аты және процкдура мәтінінен, яғни
тұлғасынан тұрады. Процедура тұлғасы негізгі программа тәрізді:
айнымалыларды сипаттау және операторлар бөлімнен тұрады. Процедураны
сипаттаудың жалпы түрі:
PROCEDURE аты(формальды параметрлер тізбегі);
Формальды параметрлер тізбегі ... жалғасы
Ұқсас жұмыстар
Пәндер
- Іс жүргізу
- Автоматтандыру, Техника
- Алғашқы әскери дайындық
- Астрономия
- Ауыл шаруашылығы
- Банк ісі
- Бизнесті бағалау
- Биология
- Бухгалтерлік іс
- Валеология
- Ветеринария
- География
- Геология, Геофизика, Геодезия
- Дін
- Ет, сүт, шарап өнімдері
- Жалпы тарих
- Жер кадастрі, Жылжымайтын мүлік
- Журналистика
- Информатика
- Кеден ісі
- Маркетинг
- Математика, Геометрия
- Медицина
- Мемлекеттік басқару
- Менеджмент
- Мұнай, Газ
- Мұрағат ісі
- Мәдениеттану
- ОБЖ (Основы безопасности жизнедеятельности)
- Педагогика
- Полиграфия
- Психология
- Салық
- Саясаттану
- Сақтандыру
- Сертификаттау, стандарттау
- Социология, Демография
- Спорт
- Статистика
- Тілтану, Филология
- Тарихи тұлғалар
- Тау-кен ісі
- Транспорт
- Туризм
- Физика
- Философия
- Халықаралық қатынастар
- Химия
- Экология, Қоршаған ортаны қорғау
- Экономика
- Экономикалық география
- Электротехника
- Қазақстан тарихы
- Қаржы
- Құрылыс
- Құқық, Криминалистика
- Әдебиет
- Өнер, музыка
- Өнеркәсіп, Өндіріс
Қазақ тілінде жазылған рефераттар, курстық жұмыстар, дипломдық жұмыстар бойынша біздің қор #1 болып табылады.
Ақпарат
Қосымша
Email: info@stud.kz